/* source: assets/hanhai-runtime/original-hero.css */

    @font-face {
      font-family: "WD-XL Lubrifont TC";
      src: url("/assets/fonts/hanhai-complete-site-subset.woff") format("woff");
      font-weight: 400;
      font-style: normal;
      font-display: swap;
    }
    :root {
      --ink: #111113;
      --muted: #69717d;
      --line: #e7ebf0;
      --blue: #2479bb;
      --mode-active: #4e72a3;
      --blue-deep: #062b55;
      --blue-soft: #eaf3fb;
      --surface: #f6f8fb;
      --max: 1240px;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      min-width: 320px;
      margin: 0;
      color: var(--ink);
      background: #fff;
      font-family: "MiSans", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }
    img { display: block; max-width: 100%; }
    a { color: inherit; text-decoration: none; }
    button, a { -webkit-tap-highlight-color: transparent; }
    .hanhai-page { overflow: clip; }
    .hanhai-shell { width: min(var(--max), calc(100% - 96px)); margin: 0 auto; }
    .hanhai-skip {
      position: fixed;
      left: 16px;
      top: -60px;
      z-index: 2000;
      padding: 10px 16px;
      border-radius: 8px;
      color: #fff;
      background: #111113;
      transition: top .2s ease;
    }
    .hanhai-skip:focus { top: 12px; }

    .hanhai-header {
      border-bottom: 1px solid rgba(17, 17, 19, .06);
    }
    .hanhai-logo { width: 170px; }
    .hanhai-mobile-nav { display: none; }

    .hanhai-visually-hidden {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
      border: 0;
    }
    .hanhai-hero {
      position: relative;
      height: calc(100vh - 60px);
      height: calc(100svh - 60px);
      min-height: 560px;
      overflow: hidden;
      color: var(--ink);
      background: #f2f4f7;
      isolation: isolate;
    }
    .hanhai-hero-stage {
      position: absolute;
      left: 50%;
      top: 50%;
      width: auto;
      height: max(100%, 56.25vw);
      aspect-ratio: 16 / 9;
      transform: translate(-50%, -50%);
    }
    .hanhai-hero-stage::before {
      content: "";
      display: none;
      position: absolute;
      left: 3%;
      right: 3%;
      top: 16%;
      z-index: 1;
      height: 50%;
      background: none;
      -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 10%, #000 88%, transparent 100%);
      mask-image: linear-gradient(to bottom, transparent 0, #000 10%, #000 88%, transparent 100%);
      pointer-events: none;
    }
    .hanhai-hero-stage::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      top: 79.5%;
      z-index: 5;
      height: 7%;
      background: linear-gradient(90deg,
        transparent 42.5%,
        rgba(124, 134, 143, .18) 45%,
        rgba(124, 134, 143, .18) 48%,
        rgba(124, 134, 143, .12) 51%,
        transparent 54%);
      -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 10%, #000 70%, transparent 100%);
      mask-image: linear-gradient(to bottom, transparent 0, #000 10%, #000 70%, transparent 100%);
      pointer-events: none;
    }
    .hanhai-hero-scene {
      position: absolute;
      inset: 0;
      z-index: 0;
      width: 100%;
      height: 100%;
      object-fit: fill;
      user-select: none;
      pointer-events: none;
    }
    .hanhai-engine-shell-motion {
      position: absolute;
      left: 0;
      right: 0;
      top: 8.5%;
      z-index: 2;
      width: auto;
      height: 52%;
      aspect-ratio: 1280 / 1240;
      margin-inline: auto;
      object-fit: fill;
      animation: hanhai-engine-shell-float 5.8s cubic-bezier(.42, 0, .2, 1) infinite;
      will-change: transform;
      pointer-events: none;
    }
    .hanhai-core-anchor {
      --parallax-x: 0px;
      --parallax-y: 0px;
      position: absolute;
      left: 49.84%;
      top: 34.5%;
      z-index: 3;
      width: auto;
      height: 17.4%;
      aspect-ratio: 1;
      transform: translate3d(calc(-50% + var(--parallax-x)), calc(-50% + var(--parallax-y)), 0);
      transition: transform .45s cubic-bezier(.2, .75, .25, 1);
      will-change: transform;
      pointer-events: none;
    }
    .hanhai-core-float,
    .hanhai-core-composite {
      width: 100%;
      height: 100%;
    }
    .hanhai-core-float {
      animation: hanhai-core-float 5.8s cubic-bezier(.42, 0, .2, 1) infinite;
      will-change: transform;
    }
    .hanhai-core-composite {
      position: relative;
      filter: drop-shadow(0 18px 25px rgba(4, 23, 69, .17));
    }
    .hanhai-core-aura {
      position: absolute;
      inset: -19%;
      border-radius: 50%;
      background: conic-gradient(from 35deg, transparent 0 17%, rgba(37, 206, 255, .22) 26%, transparent 38% 63%, rgba(55, 81, 255, .2) 74%, transparent 87%);
      filter: blur(11px);
      opacity: .54;
      animation: hanhai-core-aura-current 7.2s cubic-bezier(.42, .08, .28, .98) infinite alternate;
      pointer-events: none;
    }
    .hanhai-core-window {
      --breath: .18;
      position: absolute;
      inset: 0;
      overflow: hidden;
      border-radius: 50%;
      background: #06214d;
      filter: brightness(calc(.78 + var(--breath) * .38)) saturate(calc(.86 + var(--breath) * .22));
      box-shadow: inset 0 0 0 1px rgba(125, 223, 255, .33), inset 0 0 22px rgba(3, 101, 206, .3), 0 0 22px rgba(24, 143, 255, .2);
    }
    .hanhai-core-window::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 2;
      border-radius: 50%;
      opacity: calc(.05 + var(--breath) * .65);
      box-shadow: inset 0 0 18px rgba(137, 235, 255, .46), inset 0 0 38px rgba(32, 149, 255, .19);
      pointer-events: none;
    }
    .hanhai-conscious-core {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      display: block;
      user-select: none;
      pointer-events: none;
      animation: hanhai-core-turn 24s linear infinite;
      transform-origin: 50% 50%;
      will-change: transform;
    }
    .hanhai-core-rim {
      position: absolute;
      inset: -1px;
      z-index: 3;
      border: 1px solid rgba(107, 214, 255, .44);
      border-radius: 50%;
      box-shadow: inset 0 0 7px rgba(103, 224, 255, .38), 0 0 10px rgba(27, 149, 255, .22);
      pointer-events: none;
    }
    .hanhai-table-field {
      position: absolute;
      left: 1.7%;
      top: 67.7%;
      z-index: 2;
      width: 96.6%;
      height: 12%;
      overflow: hidden;
      border-radius: 3% 3% 0 0 / 20% 20% 0 0;
      opacity: 1;
      mix-blend-mode: normal;
      pointer-events: none;
    }
    .hanhai-table-field::before {
      display: none;
    }
    .hanhai-ocean-canvas {
      display: none;
    }
    .hanhai-wave-ribbon-canvas {
      position: absolute;
      inset: 0;
      z-index: 1;
      width: 100%;
      height: 100%;
      display: block;
      clip-path: polygon(13% 0, 87% 0, 99.3% 97%, .7% 97%);
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='white' stop-opacity='0'/%3E%3Cstop offset='.08' stop-color='white' stop-opacity='.04'/%3E%3Cstop offset='.18' stop-color='white' stop-opacity='.32'/%3E%3Cstop offset='.32' stop-color='white' stop-opacity='.75'/%3E%3Cstop offset='.43' stop-color='white'/%3E%3Cstop offset='1' stop-color='white'/%3E%3C/linearGradient%3E%3Cfilter id='sx' x='-10' y='0' width='120' height='100' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='3 0'/%3E%3C/filter%3E%3C/defs%3E%3Cpath d='M17 0H83L95.3 97H4.7Z' fill='url(%23g)' filter='url(%23sx)'/%3E%3C/svg%3E");
      -webkit-mask-size: 100% 100%;
      -webkit-mask-repeat: no-repeat;
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='white' stop-opacity='0'/%3E%3Cstop offset='.08' stop-color='white' stop-opacity='.04'/%3E%3Cstop offset='.18' stop-color='white' stop-opacity='.32'/%3E%3Cstop offset='.32' stop-color='white' stop-opacity='.75'/%3E%3Cstop offset='.43' stop-color='white'/%3E%3Cstop offset='1' stop-color='white'/%3E%3C/linearGradient%3E%3Cfilter id='sx' x='-10' y='0' width='120' height='100' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='3 0'/%3E%3C/filter%3E%3C/defs%3E%3Cpath d='M17 0H83L95.3 97H4.7Z' fill='url(%23g)' filter='url(%23sx)'/%3E%3C/svg%3E");
      mask-size: 100% 100%;
      mask-repeat: no-repeat;
    }
    .hanhai-hero-overlay {
      position: absolute;
      inset: 0;
      z-index: 5;
      pointer-events: none;
    }
    .hanhai-wall-brand {
      position: absolute;
      inset: 0;
      z-index: 4;
      pointer-events: none;
    }
    .hanhai-wall-glyph {
      position: absolute;
      top: 49%;
      color: rgba(128, 136, 143, .115);
      font: 400 clamp(104px, 13vw, 180px) / 1 "WD-XL Lubrifont TC", serif;
      text-shadow: none;
      mix-blend-mode: multiply;
      backface-visibility: hidden;
    }
    .hanhai-wall-glyph--han {
      left: 26.84%;
      transform: translate(-50%, -50%) perspective(340px) rotateY(18deg) rotate(-1.2deg) scaleX(.94);
      transform-origin: 100% 50%;
      -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, .63), #000 42%, #000);
      mask-image: linear-gradient(90deg, rgba(0, 0, 0, .63), #000 42%, #000);
    }
    .hanhai-wall-glyph--hai {
      left: 72.84%;
      transform: translate(-50%, -50%) perspective(340px) rotateY(-18deg) rotate(1.2deg) scaleX(.94);
      transform-origin: 0 50%;
      -webkit-mask-image: linear-gradient(270deg, rgba(0, 0, 0, .63), #000 42%, #000);
      mask-image: linear-gradient(270deg, rgba(0, 0, 0, .63), #000 42%, #000);
    }
    .hanhai-base-modes {
      position: absolute;
      left: 50%;
      top: 83.8%;
      z-index: 6;
      width: min(66%, 760px);
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      align-items: center;
      transform: translate(-50%, -50%) perspective(600px) rotateX(-4deg);
    }
    .hanhai-base-modes::before {
      content: "";
      position: absolute;
      left: 4%;
      right: 4%;
      bottom: -7px;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(116, 130, 142, .22) 9%, rgba(116, 130, 142, .22) 91%, transparent);
    }
    .hanhai-base-mode {
      position: relative;
      z-index: 1;
      padding: 11px 4px 9px;
      border: 0;
      color: rgba(71, 83, 92, .42);
      background: transparent;
      font-family: "WD-XL Lubrifont TC", "Microsoft YaHei", sans-serif;
      font-size: clamp(14px, 1.55vw, 21px);
      font-weight: 400;
      letter-spacing: .2em;
      text-indent: .2em;
      cursor: pointer;
      pointer-events: auto;
      transition: color .35s, text-shadow .35s;
    }
    .hanhai-base-mode > span {
      display: inline-block;
      transform: translateY(6px);
    }
    .hanhai-base-mode::before {
      content: "";
      position: absolute;
      left: 50%;
      bottom: -7px;
      width: 4px;
      height: 4px;
      border: 1px solid var(--mode-active);
      border-radius: 50%;
      background: rgba(248, 252, 255, .96);
      box-shadow: 0 0 0 3px rgba(78, 114, 163, .06), 0 0 7px rgba(78, 114, 163, .3);
      opacity: 0;
      transform: translate(-50%, 50%) scale(.45);
      transition: opacity .35s, transform .35s cubic-bezier(.2, .8, .2, 1);
    }
    .hanhai-base-mode::after {
      content: "";
      position: absolute;
      left: 50%;
      bottom: -7px;
      width: 0;
      height: 1px;
      border-radius: 1px;
      background: linear-gradient(90deg, transparent, var(--mode-active) 24% 76%, transparent);
      box-shadow: 0 0 6px rgba(78, 114, 163, .3);
      transform: translateX(-50%);
      transition: width .35s cubic-bezier(.2, .8, .2, 1);
    }
    .hanhai-base-mode:hover,
    .hanhai-base-mode.is-active,
    .hanhai-base-mode:focus-visible {
      color: var(--mode-active);
      text-shadow: 0 0 10px rgba(78, 114, 163, .14);
    }
    .hanhai-base-mode:hover::before,
    .hanhai-base-mode.is-active::before,
    .hanhai-base-mode:focus-visible::before {
      opacity: 1;
      transform: translate(-50%, 50%) scale(1);
    }
    .hanhai-base-mode:hover::after,
    .hanhai-base-mode.is-active::after,
    .hanhai-base-mode:focus-visible::after {
      width: 58%;
    }
    .hanhai-base-mode:focus-visible {
      outline: 1px solid rgba(78, 114, 163, .4);
      outline-offset: 2px;
    }
    .hanhai-mode-axis {
      display: none;
    }
    @media (min-width: 701px) {
      .hanhai-base-modes::before,
      .hanhai-base-mode::before,
      .hanhai-base-mode::after {
        display: none;
      }
      .hanhai-mode-axis {
        position: absolute;
        left: 50%;
        top: 87.5%;
        z-index: 7;
        width: min(66%, 760px);
        height: 1px;
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        transform: translate(-50%, -50%);
        pointer-events: none;
      }
      .hanhai-mode-axis > i {
        position: relative;
        height: 1px;
      }
      .hanhai-mode-axis > i::before {
        content: "";
        position: absolute;
        left: 50%;
        top: 0;
        width: 4px;
        height: 4px;
        border: 1px solid var(--mode-active);
        border-radius: 50%;
        background: rgba(248, 252, 255, .96);
        box-shadow: 0 0 0 3px rgba(78, 114, 163, .06), 0 0 7px rgba(78, 114, 163, .3);
        opacity: 0;
        transform: translate(-50%, -50%) scale(.45);
        transition: opacity .35s, transform .35s cubic-bezier(.2, .8, .2, 1);
      }
      .hanhai-mode-axis > i::after {
        content: "";
        position: absolute;
        left: 50%;
        top: 0;
        width: 0;
        height: 1px;
        border-radius: 1px;
        background: linear-gradient(90deg, transparent, var(--mode-active) 24% 76%, transparent);
        box-shadow: 0 0 6px rgba(78, 114, 163, .3);
        transform: translateX(-50%);
        transition: width .35s cubic-bezier(.2, .8, .2, 1);
      }
      .hanhai-hero-stage:has(.hanhai-base-mode:nth-child(1):is(:hover, .is-active, :focus-visible)) .hanhai-mode-axis > i:nth-child(1)::before,
      .hanhai-hero-stage:has(.hanhai-base-mode:nth-child(2):is(:hover, .is-active, :focus-visible)) .hanhai-mode-axis > i:nth-child(2)::before,
      .hanhai-hero-stage:has(.hanhai-base-mode:nth-child(3):is(:hover, .is-active, :focus-visible)) .hanhai-mode-axis > i:nth-child(3)::before,
      .hanhai-hero-stage:has(.hanhai-base-mode:nth-child(4):is(:hover, .is-active, :focus-visible)) .hanhai-mode-axis > i:nth-child(4)::before,
      .hanhai-hero-stage:has(.hanhai-base-mode:nth-child(5):is(:hover, .is-active, :focus-visible)) .hanhai-mode-axis > i:nth-child(5)::before {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
      }
      .hanhai-hero-stage:has(.hanhai-base-mode:nth-child(1):is(:hover, .is-active, :focus-visible)) .hanhai-mode-axis > i:nth-child(1)::after,
      .hanhai-hero-stage:has(.hanhai-base-mode:nth-child(2):is(:hover, .is-active, :focus-visible)) .hanhai-mode-axis > i:nth-child(2)::after,
      .hanhai-hero-stage:has(.hanhai-base-mode:nth-child(3):is(:hover, .is-active, :focus-visible)) .hanhai-mode-axis > i:nth-child(3)::after,
      .hanhai-hero-stage:has(.hanhai-base-mode:nth-child(4):is(:hover, .is-active, :focus-visible)) .hanhai-mode-axis > i:nth-child(4)::after,
      .hanhai-hero-stage:has(.hanhai-base-mode:nth-child(5):is(:hover, .is-active, :focus-visible)) .hanhai-mode-axis > i:nth-child(5)::after {
        width: 58%;
      }
    }
    @keyframes hanhai-core-turn {
      to { transform: rotate(360deg); }
    }
    @keyframes hanhai-core-aura-current {
      0% { transform: rotate(-16deg); opacity: .32; }
      46% { opacity: .58; }
      100% { transform: rotate(34deg); opacity: .42; }
    }
    @keyframes hanhai-core-float {
      0%, 100% { transform: translate3d(0, -4px, 0); }
      50% { transform: translate3d(0, 8px, 0); }
    }
    @keyframes hanhai-engine-shell-float {
      0%, 100% { transform: translate3d(0, -4px, 0); }
      50% { transform: translate3d(0, 8px, 0); }
    }
    @keyframes hanhai-core-breathe {
      0%, 100% { filter: brightness(.97) saturate(.94) drop-shadow(0 17px 22px rgba(9, 44, 101, .11)); }
      50% { filter: brightness(1.01) saturate(.98) drop-shadow(0 20px 26px rgba(19, 91, 168, .16)); }
    }
    @keyframes hanhai-table-breathe {
      0%, 100% { opacity: .58; }
      50% { opacity: .9; }
    }
    @keyframes hanhai-hero-enter {
      from { opacity: 0; transform: translate(-50%, 12px); }
      to { opacity: 1; transform: translate(-50%, 0); }
    }
    .hanhai-button {
      min-height: 46px;
      padding: 0 22px;
      border: 1px solid rgba(255, 255, 255, .25);
      border-radius: 999px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: #071426;
      background: #fff;
      font-size: 14px;
      font-weight: 600;
      transition: transform .2s ease, background .2s ease;
    }
    .hanhai-button:hover { transform: translateY(-2px); }
    .hanhai-button--ghost {
      color: #fff;
      background: rgba(255, 255, 255, .08);
      backdrop-filter: blur(10px);
    }
    .hanhai-button--ghost:hover { background: rgba(255, 255, 255, .14); }
    .hanhai-button:focus-visible,
    .hanhai-mobile-nav a:focus-visible {
      outline: 2px solid #74c8ff;
      outline-offset: 3px;
    }
    .hanhai-section { padding: 118px 0; }
    #model-family { scroll-margin-top: 60px; }
    .hanhai-section--soft { background: var(--surface); }
    .hanhai-section--blue {
      color: #fff;
      background:
        radial-gradient(circle at 84% 24%, rgba(63, 163, 231, .23), transparent 30%),
        linear-gradient(135deg, #051b38 0%, #073a6c 100%);
    }
    .hanhai-intro {
      display: grid;
      grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr);
      gap: clamp(60px, 9vw, 150px);
      align-items: start;
    }
    .hanhai-kicker {
      margin: 0 0 18px;
      color: var(--blue);
      font-size: 14px;
      font-weight: 700;
      letter-spacing: .12em;
    }
    .hanhai-heading {
      margin: 0;
      font-size: clamp(40px, 5vw, 72px);
      font-weight: 560;
      line-height: 1.08;
      letter-spacing: -.055em;
    }
    .hanhai-intro-copy {
      margin: 6px 0 0;
      color: #3e4651;
      font-size: clamp(20px, 2vw, 28px);
      line-height: 1.72;
      letter-spacing: -.02em;
    }
    .hanhai-intro-copy strong { color: var(--ink); font-weight: 560; }
    .hanhai-coverage {
      margin-top: 82px;
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      border-top: 1px solid var(--line);
    }
    .hanhai-coverage-item {
      min-height: 148px;
      padding: 24px 22px 20px 0;
      border-bottom: 1px solid var(--line);
    }
    .hanhai-coverage-item span {
      display: block;
      margin-bottom: 36px;
      color: #9ba3ad;
      font-size: 12px;
      letter-spacing: .14em;
    }
    .hanhai-coverage-item strong {
      font-size: 21px;
      font-weight: 560;
      letter-spacing: -.02em;
    }

    .hanhai-model-head {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 36px;
      margin-bottom: 78px;
    }
    .hanhai-section--blue .hanhai-kicker { color: #71c8ff; }
    .hanhai-model-note {
      max-width: 510px;
      margin: 0 0 4px;
      color: rgba(255, 255, 255, .66);
      font-size: 17px;
      line-height: 1.8;
    }
    .hanhai-size-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      border-top: 1px solid rgba(255, 255, 255, .22);
      border-bottom: 1px solid rgba(255, 255, 255, .22);
    }
    .hanhai-size {
      min-height: 330px;
      padding: 54px 36px 44px 0;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      border-right: 1px solid rgba(255, 255, 255, .18);
    }
    .hanhai-size:not(:first-child) { padding-left: 42px; }
    .hanhai-size:last-child { border-right: 0; }
    .hanhai-size-number {
      font-size: clamp(70px, 8vw, 126px);
      font-weight: 520;
      line-height: .9;
      letter-spacing: -.07em;
    }
    .hanhai-size-number small {
      margin-left: 5px;
      color: #75c9ff;
      font-size: .34em;
      font-weight: 650;
      letter-spacing: 0;
    }
    .hanhai-size-label {
      color: rgba(255, 255, 255, .76);
      font-size: 16px;
      letter-spacing: .04em;
    }

    .hanhai-direction-head { max-width: 800px; margin-bottom: 72px; }
    .hanhai-direction-head p:last-child {
      max-width: 700px;
      margin: 26px 0 0;
      color: var(--muted);
      font-size: 18px;
      line-height: 1.8;
    }
    .hanhai-direction-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 0;
      border-top: 1px solid var(--line);
    }
    .hanhai-direction {
      min-height: 300px;
      padding: 34px 38px 40px 0;
      border-bottom: 1px solid var(--line);
      border-right: 1px solid var(--line);
    }
    .hanhai-direction:not(:first-child) { padding-left: 38px; }
    .hanhai-direction:last-child { border-right: 0; }
    .hanhai-direction-index {
      display: inline-flex;
      width: 42px;
      height: 42px;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
      color: var(--blue);
      background: var(--blue-soft);
      font-size: 12px;
      font-weight: 700;
    }
    .hanhai-direction h3 {
      margin: 64px 0 14px;
      font-size: 27px;
      font-weight: 560;
      letter-spacing: -.03em;
    }
    .hanhai-direction p {
      margin: 0;
      color: var(--muted);
      font-size: 16px;
      line-height: 1.75;
    }

    .hanhai-science-layout {
      display: grid;
      grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr);
      gap: clamp(70px, 9vw, 150px);
      align-items: start;
    }
    .hanhai-science-copy {
      position: sticky;
      top: 110px;
    }
    .hanhai-science-copy p:last-child {
      max-width: 430px;
      margin: 26px 0 0;
      color: var(--muted);
      font-size: 17px;
      line-height: 1.8;
    }
    .hanhai-science-list { border-top: 1px solid #cfd8e2; }
    .hanhai-science-item {
      min-height: 150px;
      padding: 34px 0;
      display: grid;
      grid-template-columns: 54px 1fr;
      gap: 26px;
      align-items: center;
      border-bottom: 1px solid #cfd8e2;
    }
    .hanhai-science-item span {
      color: var(--blue);
      font-size: 13px;
      font-weight: 700;
      letter-spacing: .14em;
    }
    .hanhai-science-item h3 {
      margin: 0;
      font-size: clamp(25px, 2.5vw, 38px);
      font-weight: 540;
      line-height: 1.25;
      letter-spacing: -.035em;
    }

    .hanhai-closing {
      position: relative;
      min-height: 520px;
      padding: 120px 0;
      display: grid;
      align-items: center;
      color: #fff;
      background: #051a34;
      isolation: isolate;
    }
    .hanhai-closing::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background:
        linear-gradient(90deg, rgba(3, 19, 40, .95), rgba(4, 34, 66, .72)),
        url("/assets/images/performance/image-98c8af0fa7716279.webp") 68% center / cover no-repeat;
      opacity: .72;
    }
    .hanhai-closing-inner { max-width: 840px; }
    .hanhai-closing h2 {
      margin: 0;
      font-size: clamp(42px, 5.6vw, 80px);
      font-weight: 540;
      line-height: 1.12;
      letter-spacing: -.055em;
    }
    .hanhai-closing p {
      max-width: 650px;
      margin: 28px 0 0;
      color: rgba(255, 255, 255, .72);
      font-size: 19px;
      line-height: 1.8;
    }
    .hanhai-closing .hanhai-button { margin-top: 36px; }

    .hanhai-footer { padding: 30px 0 98px; background: #fff; }
    .hanhai-footer-inner {
      display: flex;
      justify-content: space-between;
      gap: 30px;
      color: #818893;
      font-size: 13px;
    }
    .hanhai-footer-links { display: flex; gap: 28px; }
    .hanhai-footer a:hover { color: var(--ink); }

    .hanhai-reveal {
      opacity: 0;
      transform: translateY(26px);
      transition: opacity .7s ease, transform .7s cubic-bezier(.2, .75, .25, 1);
    }
    .hanhai-reveal.is-visible { opacity: 1; transform: none; }

    @media (max-width: 980px) {
      .hanhai-shell { width: min(100% - 56px, var(--max)); }
      .hanhai-section { padding: 92px 0; }
      .hanhai-coverage { grid-template-columns: repeat(3, 1fr); }
      .hanhai-coverage-item:nth-child(3) { border-right: 0; }
      .hanhai-model-head { align-items: start; flex-direction: column; }
      .hanhai-size { min-height: 280px; }
      .hanhai-direction-grid { grid-template-columns: 1fr; }
      .hanhai-direction {
        min-height: 0;
        padding: 28px 0 30px;
        display: grid;
        grid-template-columns: 52px 210px 1fr;
        gap: 24px;
        align-items: center;
        border-right: 0;
      }
      .hanhai-direction:not(:first-child) { padding-left: 0; }
      .hanhai-direction h3 { margin: 0; }
    }

    @media (max-width: 700px) {
      body { padding-bottom: 74px; }
      .hanhai-shell { width: calc(100% - 40px); }
      .hanhai-header { display: none; }
      .hanhai-mobile-nav {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1200;
        height: 74px;
        padding: 7px 10px max(7px, env(safe-area-inset-bottom));
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 4px;
        border-top: 1px solid rgba(17, 17, 19, .08);
        background: rgba(255, 255, 255, .96);
        backdrop-filter: blur(18px);
      }
      .hanhai-mobile-nav a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        color: #747c86;
        font-size: 10px;
      }
      .hanhai-mobile-nav a[aria-current="page"] { color: #147ac1; font-weight: 650; }
      .hanhai-mobile-nav svg { width: 24px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
      .hanhai-hero {
        height: calc(100vh - 74px - env(safe-area-inset-bottom));
        height: calc(100svh - 74px - env(safe-area-inset-bottom));
        min-height: 480px;
      }
      .hanhai-base-modes { width: min(38%, calc(100vw - 32px)); }
      .hanhai-wall-glyph { font-size: clamp(72px, 18vw, 104px); }
      .hanhai-wall-glyph--han { left: 41%; }
      .hanhai-wall-glyph--hai { left: 59%; }
      #model-family { scroll-margin-top: 0; }
      .hanhai-section { padding: 76px 0; }
      .hanhai-intro,
      .hanhai-science-layout { grid-template-columns: 1fr; gap: 34px; }
      .hanhai-intro-copy { margin-top: 0; font-size: 19px; }
      .hanhai-coverage { margin-top: 54px; grid-template-columns: repeat(2, 1fr); }
      .hanhai-coverage-item { min-height: 118px; }
      .hanhai-coverage-item span { margin-bottom: 22px; }
      .hanhai-coverage-item strong { font-size: 18px; }
      .hanhai-model-head { margin-bottom: 48px; }
      .hanhai-size-grid { grid-template-columns: 1fr; }
      .hanhai-size,
      .hanhai-size:not(:first-child) {
        min-height: 170px;
        padding: 30px 0;
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: end;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .18);
      }
      .hanhai-size:last-child { border-bottom: 0; }
      .hanhai-size-number { font-size: 82px; }
      .hanhai-direction-head { margin-bottom: 42px; }
      .hanhai-direction {
        grid-template-columns: 44px 1fr;
        gap: 8px 18px;
      }
      .hanhai-direction h3 { font-size: 24px; }
      .hanhai-direction p { grid-column: 2; }
      .hanhai-science-copy { position: static; }
      .hanhai-science-item { min-height: 120px; grid-template-columns: 42px 1fr; gap: 16px; }
      .hanhai-closing { min-height: 460px; padding: 86px 0; }
      .hanhai-footer { padding-bottom: 30px; }
      .hanhai-footer-inner { flex-direction: column; gap: 16px; }
      .hanhai-footer-links { flex-wrap: wrap; gap: 14px 22px; }
    }

    @media (max-width: 420px) {
      .hanhai-shell { width: calc(100% - 32px); }
      .hanhai-button { width: 100%; }
      .hanhai-coverage { grid-template-columns: 1fr; }
      .hanhai-direction { grid-template-columns: 40px 1fr; }
      .hanhai-science-item h3 { font-size: 23px; }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      .hanhai-reveal { opacity: 1; transform: none; transition: none; }
      .hanhai-button { transition: none; }
      .hanhai-core-float { animation-duration: 6.2s; }
      .hanhai-engine-shell-motion { animation-duration: 6.2s; }
      .hanhai-conscious-core { animation-duration: 32s; }
    }
    /* V1.8.0: content styles scoped below the existing hero. */
    .hh-content { --hh-text: #424d59; --hh-border: #dce3ea; }
    .hh-content.hanhai-section--blue { --hh-text: #d8e8f5; --hh-border: #376083; }
    .hh-content .hanhai-heading { line-height: 1.2; letter-spacing: -.035em; }
    .hh-content [id] { scroll-margin-top: 100px; }
    .hh-content .hh-lead { margin: 0; color: var(--hh-text); font-size: clamp(19px, 1.65vw, 23px); line-height: 1.85; }
    .hh-content .hh-description { max-width: 970px; margin-top: 30px; }
    .hh-content .hh-note { color: var(--hh-text); font-size: 16px; line-height: 1.8; margin: 22px 0 0; }
    .hh-content .hh-family { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 24px; margin-top: 60px; }
    .hh-content .hh-family a { border-top: 2px solid #2479bb; padding: 24px 0 8px; }
    .hh-content .hh-family a:hover h3 { color: #2479bb; }
    .hh-content .hh-family a:focus-visible { outline: 2px solid #2479bb; outline-offset: 7px; }
    .hh-content .hh-family span { color: #2479bb; font-size: 14px; }
    .hh-content h3 { font-size: 24px; line-height: 1.5; margin: 0 0 18px; font-weight: 600; }
    .hh-content .hh-family h3 { font-size: 21px; margin: 18px 0 10px; }
    .hh-content .hh-family p { font-size: 16px; line-height: 1.8; color: var(--hh-text); margin: 0; }
    .hh-content .hh-band { border-block: 1px solid var(--hh-border); padding: 26px 0; margin-top: 42px; display: grid; grid-template-columns: .8fr 1.7fr; gap: 40px; align-items: start; }
    .hh-content .hh-band strong { font-size: 21px; line-height: 1.65; }
    .hh-content .hh-band p, .hh-content .hh-columns p { color: var(--hh-text); font-size: 18px; line-height: 1.9; margin: 0; }
    .hh-content .hh-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; margin-top: 46px; }
    .hh-content ul { padding-left: 1.25em; margin: 0; color: var(--hh-text); font-size: 18px; line-height: 1.9; }
    .hh-content li + li { margin-top: 9px; }
    .hh-content .hh-columns .hh-status { border-left: 3px solid #3995ce; padding-left: 18px; margin-top: 25px; font-size: 16px; }
    .hh-content .hh-status strong { display: block; color: inherit; margin-bottom: 5px; }
    .hh-content .hh-flow { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 42px; border-block: 1px solid var(--hh-border); }
    .hh-content .hh-flow span { font-size: 20px; padding: 26px 18px; text-align: center; color: #1a6492; }
    .hh-content .hh-flow span + span { border-left: 1px solid var(--hh-border); }
    .hh-content .hh-subheading { margin-top: 42px; }
    .hh-content .hh-prediction-grid { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 30px; counter-reset: prediction; }
    .hh-content .hh-prediction-grid li { margin: 0; padding: 18px 0; border-bottom: 1px solid var(--hh-border); display: flex; gap: 14px; align-items: baseline; }
    .hh-content .hh-prediction-grid li::before { counter-increment: prediction; content: counter(prediction, decimal-leading-zero); font-size: 14px; color: #2479bb; flex-shrink: 0; }
    @media (max-width: 1000px) {
      .hh-content .hh-family { grid-template-columns: repeat(3,minmax(0,1fr)); }
      .hh-content .hh-columns { gap: 36px; }
      .hh-content .hh-prediction-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    }
    @media (max-width: 700px) {
      .hh-content .hh-family { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 20px; margin-top: 38px; }
      .hh-content .hh-columns, .hh-content .hh-band { grid-template-columns: 1fr; gap: 24px; }
      .hh-content .hh-flow { grid-template-columns: repeat(2,1fr); }
      .hh-content .hh-flow span { padding: 18px 10px; font-size: 18px; }
      .hh-content .hh-flow span:nth-child(3) { border-left: 0; }
      .hh-content .hh-flow span:nth-child(n+3) { border-top: 1px solid var(--hh-border); }
      .hh-content .hh-prediction-grid { grid-template-columns: 1fr; }
      .hh-content .hh-family h3 { font-size: 19px; }
      .hh-content .hh-columns p, .hh-content .hh-band p, .hh-content ul { font-size: 17px; }
      .hh-content .hanhai-heading { font-size: 36px; }
    }
    /* V1.8.0 image-led body; all selectors exclude the hero. */
    .hh-overview { padding: 84px 0 54px; text-align: center; }
    .hh-overview .hanhai-heading { font-size: clamp(30px,3.4vw,48px); }
    .hh-overview .hh-lead { margin-top: 20px; font-size: 20px; }
    .hh-product-nav { display: flex; justify-content: center; gap: clamp(24px,6vw,90px); margin-top: 38px; }
    .hh-product-nav a { display: flex; gap: 10px; align-items: baseline; padding: 10px 0; font-size: 19px; border-bottom: 1px solid transparent; }
    .hh-product-nav a:hover { border-color: #2479bb; color: #2479bb; }
    .hh-product-nav span { font-size: 13px; color: #778794; }
    .hh-product { padding: 72px 0 48px; }
    .hh-product:nth-of-type(even) { background: #f6f8fb; }
    .hh-feature { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.25fr); gap: clamp(32px,5vw,76px); align-items: center; }
    .hh-feature-copy { min-width: 0; padding: 12px 0; }
    .hh-product .hanhai-heading { font-size: clamp(38px,4.1vw,60px); line-height: 1.18; scroll-margin-top: 190px; }
    .hh-feature-description { max-width: 390px; font-size: 19px; line-height: 1.85; color: #56616d; margin: 26px 0 24px; }
    .hh-content .hh-keywords { display: flex; flex-wrap: wrap; padding: 0; list-style: none; gap: 10px 16px; font-size: 15px; color: #246b9a; }
    .hh-content .hh-keywords li { margin: 0; }
    .hh-content .hh-keywords li + li { border-left: 1px solid #bacbd7; padding-left: 16px; }
    .hh-feature-art { margin: 0; min-width: 0; overflow: hidden; }
    .hh-feature-art figcaption { margin: 0; padding: 14px 18px; color: #b9d5e7; background: #0a1827; font-size: 14px; line-height: 1.6; letter-spacing: .035em; }
    .hh-feature-art img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
    .hh-product--reverse .hh-feature { grid-template-columns: minmax(0,1.25fr) minmax(0,.85fr); }
    .hh-product--reverse .hh-feature-art { grid-column: 1; grid-row: 1; }
    .hh-product--reverse .hh-feature-copy { grid-column: 2; grid-row: 1; }
    .hh-details { margin-top: 34px; border-top: 1px solid #dce3ea; }
    .hh-details summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; padding: 20px 0; font-size: 16px; color: #236d9f; }
    .hh-details summary::-webkit-details-marker { display: none; }
    .hh-details summary:focus-visible, .hh-product-nav a:focus-visible { outline: 2px solid #2479bb; outline-offset: 5px; }
    .hh-toggle { width: 18px; height: 18px; position: relative; flex-shrink: 0; }
    .hh-toggle::before, .hh-toggle::after { content: ''; position: absolute; background: currentColor; }
    .hh-toggle::before { height: 1px; width: 14px; top: 8px; left: 2px; }
    .hh-toggle::after { width: 1px; height: 14px; left: 8px; top: 2px; }
    .hh-details[open] .hh-toggle::after { display: none; }
    .hh-details-body { padding: 14px 0 30px; }
    .hh-details-body .hh-description { margin-top: 0; font-size: 19px; }
    .hh-service { padding: 86px 0 70px; }
    .hh-service .hanhai-kicker { color: #99cbe8; margin-bottom: 22px; }
    .hh-service h2 { font-size: clamp(34px,4.3vw,60px); }
    .hh-service .hh-service-note { font-size: 14px; color: #a8bfcd; margin-top: 25px; }
    @media (max-width: 1000px) and (min-width: 701px) {
      .hh-feature, .hh-product--reverse .hh-feature { grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 28px; }
      .hh-product .hanhai-kicker { letter-spacing: .04em; font-size: 13px; }
      .hh-content .hh-keywords { gap: 8px 10px; font-size: 14px; }
      .hh-content .hh-keywords li + li { padding-left: 10px; }
    }
    @media (max-width: 700px) {
      .hh-overview { padding: 58px 0 32px; }
      .hh-overview .hanhai-heading { font-size: 28px; }
      .hh-overview .hh-lead { font-size: 17px; }
      .hh-product-nav { gap: 0; justify-content: space-between; margin-top: 26px; }
      .hh-product-nav a { font-size: 17px; }
      .hh-product-nav span { display: none; }
      .hh-product { padding: 46px 0 28px; }
      .hh-feature, .hh-product--reverse .hh-feature { grid-template-columns: 1fr; gap: 20px; }
      .hh-product--reverse .hh-feature-copy, .hh-product--reverse .hh-feature-art { grid-column: auto; grid-row: auto; }
      .hh-product .hanhai-heading { font-size: 38px; scroll-margin-top: 100px; }
      .hh-feature-description { font-size: 18px; margin: 20px 0; max-width: none; }
      .hh-details { margin-top: 18px; }
      .hh-details summary { font-size: 15px; }
      .hh-service { padding: 62px 0; }
    }
    /* Feedback r2: specific product capabilities stay visible. */
    .hh-content .hh-capabilities { list-style: none; padding: 0; font-size: 16px; line-height: 1.8; color: #325e7a; }
    .hh-content .hh-capabilities li { padding-left: 16px; position: relative; margin: 8px 0 0; }
    .hh-content .hh-capabilities li::before { content: ''; width: 4px; height: 4px; background: #3581ae; position: absolute; top: 12px; left: 0; }
    .hh-scope-note { color: #325e7a; font-size: 16px; line-height: 1.85; max-width: 400px; }
    .hh-prediction-visible { margin-top: 36px; padding-top: 28px; border-top: 1px solid #dce3ea; }
    .hh-content .hh-prediction-visible h3 { font-size: 22px; }
    .hh-product .hh-feature-description { font-size: 18px; }
    .hh-research-status { color: #657789; font-size: 14px; line-height: 1.7; margin: 20px 0 0; }
    /* Keep the selection, its meaning and the highlighted equipment together. */
    .hh-prediction-intro { display: grid; grid-template-columns: 1fr 1.2fr; gap: 60px; align-items: end; margin-bottom: 38px; }
    .hh-prediction-intro .hh-feature-description { max-width: 650px; margin-top: 0; }
    .hh-prediction-intro .hh-scope-note { max-width: none; }
    .hh-prediction-workspace { display: grid; grid-template-columns: 300px minmax(0,1fr); align-items: start; gap: 30px; padding-top: 28px; border-top: 1px solid #dce3ea; scroll-margin-top: 84px; }
    .hh-prediction-visible { margin: 0; padding: 0; border: 0; }
    .hh-content .hh-prediction-visible h3 { margin: 0 0 10px; font-size: 20px; }
    .hh-range-help { font-size: 14px; line-height: 1.6; color: #617786; margin: 0 0 20px; }
    .hh-content .hh-prediction-options { grid-template-columns: 1fr; gap: 5px; margin: 0; }
    .hh-content .hh-prediction-options li { padding: 0; border: 0; display: block; }
    .hh-content .hh-prediction-options li::before { display: none; }
    .hh-prediction-options button { display: flex; gap: 10px; align-items: baseline; width: 100%; height: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid transparent; border-radius: 4px; background: transparent; text-align: left; font: inherit; font-size: 16px; color: #344f61; cursor: pointer; line-height: 1.5; }
    .hh-prediction-options button span { font-size: 12px; color: #7a8c9a; font-variant-numeric: tabular-nums; }
    .hh-prediction-options button:hover { background: #edf1f5; border-color: #d7e0e8; }
    .hh-prediction-options button.is-active { background: #1f6d99; border-color: #1f6d99; color: #fff; }
    .hh-prediction-options button.is-active span { color: #d4eaf7; }
    .hh-prediction-options button:focus-visible { outline: 2px solid #2479bb; outline-offset: 3px; }
    .hh-prediction-figure { background: #f6f8fb; }
    .hh-feature-art.hh-prediction-figure figcaption { color: #435c6c; background: transparent; padding: 0 0 20px; letter-spacing: 0; min-height: 116px; }
    .hh-prediction-caption-title { display: flex; align-items: center; gap: 12px; margin-bottom: 9px; }
    .hh-prediction-caption-title b { display: grid; place-items: center; width: 30px; height: 30px; flex: 0 0 30px; border-radius: 4px; background: #1f6d99; color: #fff; font-size: 13px; font-weight: 500; }
    .hh-prediction-caption-title strong { color: #1d5e88; font-size: 20px; font-weight: 600; }
    .hh-prediction-figure #hh-prediction-explanation { display: block; font-size: 15px; line-height: 1.8; }
    .hh-prediction-map { position: relative; width: min(100%,calc((100svh - 256px)*1.5)); margin: 0 auto; }
    .hh-map-region { position: absolute; border: 1.5px solid #408ab6; background: rgba(109,188,227,.07); border-radius: 6px; opacity: 0; pointer-events: none; transition: opacity .2s ease; }
    .hh-map-region.is-active { opacity: 1; }
    .hh-map-region span { position: absolute; top: 0; left: 8px; transform: translateY(-50%); white-space: nowrap; padding: 3px 7px; border-radius: 3px; color: #fff; background: #1f6d99; font-size: 13px; line-height: 1.4; }
    @media(max-width:1000px) and (min-width:701px) {
      .hh-prediction-workspace { grid-template-columns: 268px minmax(0,1fr); gap: 18px; }
      .hh-prediction-options button { font-size: 15px; padding: 10px 8px; gap: 8px; }
      .hh-prediction-intro { gap: 30px; }
      .hh-map-region span { font-size: 11px; left: 3px; padding: 2px 4px; }
    }
    @media(max-width:700px) {
      .hh-prediction-intro { grid-template-columns: 1fr; gap: 22px; margin-bottom: 28px; }
      .hh-prediction-workspace { display: flex; flex-direction: column; gap: 20px; padding-top: 20px; }
      .hh-prediction-figure { order: -1; position: sticky; top: 12px; z-index: 2; width: 100%; padding-bottom: 12px; }
      .hh-feature-art.hh-prediction-figure figcaption { min-height: 136px; padding-bottom: 16px; }
      .hh-prediction-caption-title strong { font-size: 18px; }
      .hh-prediction-map { width: 100%; }
      .hh-map-region span { font-size: 10px; padding: 2px 4px; left: 3px; }
      .hh-prediction-visible { width: 100%; }
      .hh-content .hh-prediction-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; }
      .hh-prediction-options button { padding: 9px 8px; gap: 7px; font-size: 14px; }
      .hh-range-help { margin-bottom: 12px; }
    }
  

/* source: assets/hanhai-runtime/original-integration.css */
.hanhai-hero{min-height:560px}.review-controls{position:absolute;right:20px;top:18px;z-index:12;display:flex;gap:8px}.review-controls button{border:1px solid #b3c8d7;border-radius:20px;padding:7px 13px;background:#ffffffa6;color:#48647b;cursor:pointer}
#model-layer{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;opacity:0;transform:translateY(-2%)}
.hanhai-hero:not([data-phase=initial]) #model-layer{opacity:1}
.hanhai-engine-shell-motion,.hanhai-core-anchor{transition:transform .65s ease,top .65s ease;transform-origin:50% 50%}
.hanhai-hero:not([data-phase=initial]) .hanhai-engine-shell-motion{animation:none;top:3.5%;transform:none}
.hanhai-hero:not([data-phase=initial]) .hanhai-core-anchor{top:29.5%;transform:translate(-50%,-50%)}
.hanhai-hero:not([data-phase=initial]) .hanhai-core-float{animation:none}
.scene-title{position:absolute;top:48%;width:100%;z-index:6;text-align:center;opacity:0;color:#315269}.scene-title h2{font-size:32px;letter-spacing:5px;margin:0 0 10px}.scene-title p{font-size:19px;letter-spacing:3px;margin:0}.hanhai-hero:not([data-phase=initial]) .scene-title{opacity:1}
.panels{position:absolute;left:15%;right:15%;top:68%;height:12%;display:flex;gap:18%;z-index:5;pointer-events:none}.panel{width:41%;min-width:0;padding:7px 10px;border:1px solid #bbecff;background:#377b9c35;box-shadow:inset 0 0 12px #9eddf12b;opacity:0;transition:opacity .5s}.panel h2{font-size:12px;color:#e1f8ff;font-weight:400;margin:0 0 4px}.panel-content{height:calc(100% - 20px)}.panel-content>div:last-child:not(.crop){display:none}.crop{width:100%;height:100%}.crop img,.crop svg{width:100%;height:100%;object-fit:contain;opacity:.75}.crop img{filter:grayscale(.8)}.outline{fill:#eeb35933;stroke:#f6c768;stroke-width:10}.hanhai-hero[data-phase=scan] .capture,.hanhai-hero[data-phase=result] .panel{opacity:1}.scan{display:none}
@media(max-width:760px){.review-controls{right:10px;top:10px}.scene-title h2{font-size:25px}.scene-title p{font-size:14px}.panels{left:26%;right:26%;gap:6%;height:11%}.panel{width:47%;padding:5px}.panel h2{font-size:10px}}

/* User requested no foreground panels. */
.panels{display:none!important}



/* Cover the original rear water rim only while the model occupies the water. */
.hanhai-hero .hanhai-table-field{top:67.2%;height:12.5%}
.hanhai-hero .hanhai-wave-ribbon-canvas{clip-path:polygon(19.2908% 9.0525%,79.9662% 9.0525%,81.8236% 11.6030%,84.3002% 20.9547%,98.7261% 89.8176%,98.3546% 94.0684%,1.5835% 94.0684%,1.0263% 89.8176%,15.4522% 16.7039%,17.2477% 11.6030%);-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3Cfilter%20id%3D%22edge%22%20x%3D%22-5%25%22%20y%3D%22-5%25%22%20width%3D%22110%25%22%20height%3D%22110%25%22%3E%3CfeGaussianBlur%20stdDeviation%3D%22.14%20.7%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Cpolygon%20points%3D%2219.2908%2C9.0525%2079.9662%2C9.0525%2081.8236%2C11.6030%2084.3002%2C20.9547%2098.7261%2C89.8176%2098.3546%2C94.0684%201.5835%2C94.0684%201.0263%2C89.8176%2015.4522%2C16.7039%2017.2477%2C11.6030%22%20fill%3D%22white%22%20filter%3D%22url%28%23edge%29%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3Cfilter%20id%3D%22edge%22%20x%3D%22-5%25%22%20y%3D%22-5%25%22%20width%3D%22110%25%22%20height%3D%22110%25%22%3E%3CfeGaussianBlur%20stdDeviation%3D%22.14%20.7%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Cpolygon%20points%3D%2219.2908%2C9.0525%2079.9662%2C9.0525%2081.8236%2C11.6030%2084.3002%2C20.9547%2098.7261%2C89.8176%2098.3546%2C94.0684%201.5835%2C94.0684%201.0263%2C89.8176%2015.4522%2C16.7039%2017.2477%2C11.6030%22%20fill%3D%22white%22%20filter%3D%22url%28%23edge%29%22%2F%3E%3C%2Fsvg%3E")}


.scene-title,.scene-title h2,.scene-title p{font-family:"WD-XL Lubrifont TC","Microsoft YaHei",sans-serif;font-weight:400}

.hanhai-engine-shell-motion,.hanhai-core-anchor{translate:var(--follow-x,0px) var(--follow-y,0px);transition:transform .65s ease,top .65s ease,translate .3s ease-out}

/* Keep motion independent from phase changes; never restart a float transform. */
.hanhai-engine-shell-motion{animation:hanhai-engine-shell-float 5.8s cubic-bezier(.42,0,.2,1) infinite!important}
.hanhai-core-float{animation:hanhai-core-float 5.8s cubic-bezier(.42,0,.2,1) infinite!important}
.hanhai-table-field{transition:top .3s ease,height .3s ease}
.scene-title{transition:opacity .2s ease}
#model-bridge{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;transform:translateY(-2%);opacity:0}

/* Only the inner blue sphere follows the pointer. */
.hanhai-engine-shell-motion{translate:none}

/* Follow easing is time-based in JS; avoid stacking CSS interpolation. */
.hanhai-core-anchor{transition:transform .65s ease,top .65s ease}

/* Keep the capability controls inside the visible hero on wide, short windows. */
.hanhai-base-modes{top:min(83.8%,calc(50% + 50svh - 82px));z-index:10}
.hanhai-mode-axis{top:min(87.5%,calc(50% + 50svh - 48px))}
@media(min-aspect-ratio:2/1){
.hanhai-base-modes{background:rgba(241,244,246,.88);border-radius:8px;padding:0 14px;box-shadow:0 2px 12px rgba(80,103,119,.06)}
.hanhai-base-mode{color:#687b88}
.hanhai-base-mode.is-active{color:#3276b5}
}

/* Refined glass capability dock. */
.hanhai-base-modes{
 padding:5px 8px;gap:4px;border-radius:14px;
 border:1px solid rgba(255,255,255,.82);
 background:linear-gradient(180deg,rgba(253,255,255,.82),rgba(223,234,241,.72));
 -webkit-backdrop-filter:blur(18px) saturate(115%);backdrop-filter:blur(18px) saturate(115%);
 box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(138,167,187,.22),0 7px 22px rgba(45,76,99,.13),0 1px 3px rgba(67,99,122,.1);
 transform:translate(-50%,-50%);
}
.hanhai-base-mode{min-height:42px;padding:8px 4px;border:1px solid transparent;border-radius:9px;color:#647b89;text-shadow:0 1px 0 rgba(255,255,255,.85);transition:background .25s,color .25s,box-shadow .25s,border-color .25s}
.hanhai-base-mode>span{transform:none}
.hanhai-base-mode.is-active{color:#2777ac;background:linear-gradient(180deg,rgba(255,255,255,.93),rgba(224,241,251,.82));border-color:rgba(160,202,225,.52);box-shadow:inset 0 1px 0 white,0 2px 5px rgba(58,105,137,.1);text-shadow:0 1px 0 white}
.hanhai-base-mode:hover:not(.is-active){background:rgba(255,255,255,.42);color:#365e78}
.hanhai-base-mode:focus-visible{outline:2px solid #599abc;outline-offset:1px}
.hanhai-base-modes::before,.hanhai-base-mode::before,.hanhai-base-mode::after,.hanhai-mode-axis{display:none!important}

/* Satin silver surface, continuous rather than raised glass buttons. */
.hanhai-base-modes{
 border-radius:7px;border:1px solid rgba(189,201,211,.78);padding:5px 8px;
 background:linear-gradient(180deg,#f6f8f9 0%,#e8edf0 16%,#e2e8ec 52%,#edf1f3 94%,#d4dde3 100%);
 -webkit-backdrop-filter:none;backdrop-filter:none;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 1px 0 0 rgba(255,255,255,.55),inset -1px 0 0 rgba(255,255,255,.55),0 3px 9px rgba(56,77,91,.12);
}
.hanhai-base-mode,.hanhai-base-mode.is-active{border-color:transparent;background:transparent;box-shadow:none;border-radius:3px}
.hanhai-base-mode{color:#72818a;text-shadow:0 1px 0 #fff}
.hanhai-base-mode.is-active{color:#347daa;background:radial-gradient(ellipse at 50% 100%,rgba(132,183,211,.16),transparent 72%);text-shadow:0 1px 0 #fff}
.hanhai-base-mode.is-active::after{display:block!important;bottom:1px;width:28px;height:1px;background:#639bbc;box-shadow:0 1px 0 rgba(255,255,255,.8);transform:translateX(-50%)}
.hanhai-base-mode:hover:not(.is-active){background:rgba(255,255,255,.2)}


/* source: assets/hanhai-runtime/language-integrated.css */
.hanhai-hero[data-mode="language"] .hanhai-engine-shell-motion{top:17.5%}
.hanhai-hero[data-mode="language"] .hanhai-core-anchor{top:43.5%}
.hanhai-hero[data-mode="language"] .hanhai-wall-brand{z-index:1}
.hanhai-hero .language-scene-layer .language-workspace{position:absolute;inset:0;width:100%;height:100%;z-index:5;overflow:visible;pointer-events:none}
.hanhai-hero .language-scene-layer .panel-surface{fill:url(#panel);stroke:#fff;stroke-width:1.4;filter:drop-shadow(0 2px 2px #6d8fab30)}
.hanhai-hero .language-scene-layer .card{fill:url(#card);stroke:#fafdff;stroke-width:1.2;filter:url(#shadow);transition:stroke .25s,fill .25s}
.hanhai-hero .language-scene-layer .icon-tile{fill:url(#tile);stroke:#fff;stroke-width:.8}
.hanhai-hero .language-scene-layer .icon{fill:none;stroke:#398be0;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.hanhai-hero .language-scene-layer .skeleton{fill:none;stroke:#a8bdd3;stroke-width:3;opacity:.42}
.hanhai-hero .language-scene-layer .bullets{stroke:#7eafe1;stroke-width:3}
.hanhai-hero .language-scene-layer .route{fill:none;stroke:#8bd5ff;stroke-width:1.35;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;filter:drop-shadow(0 0 3px #8bdfff)}
.hanhai-hero .language-scene-layer .internal{stroke:#79b7e6;stroke-width:1;filter:none}
.hanhai-hero .language-scene-layer .port{fill:#fff;stroke:#8bd5ff;stroke-width:1;opacity:0;filter:drop-shadow(0 0 3px #66caff)}
.hanhai-hero .language-scene-layer .node{--light:0}
.hanhai-hero .language-scene-layer .node .card{stroke:rgba(94,178,241,var(--light));fill:url(#card)}
.hanhai-hero .language-scene-layer .node .icon{opacity:calc(.72 + var(--light)*.28)}
.hanhai-hero .language-scene-layer .result-check{fill:none;stroke:#398be0;stroke-width:1.5;opacity:0}
.hanhai-hero .language-scene-layer .result-card .icon,.hanhai-hero .language-scene-layer .result-card .skeleton{opacity:calc(.14 + var(--light)*.72)}
.hanhai-hero[data-mode="language"] .scene-title{position:absolute;top:62.2%;left:34%;width:32%;z-index:6;text-align:center;color:#375b75;font-family:"WD-XL Lubrifont TC","Microsoft YaHei",sans-serif;pointer-events:none;display:flex;justify-content:center;align-items:baseline;gap:16px}
.hanhai-hero[data-mode="language"] .scene-title h2{font:400 clamp(22px,1.7vw,30px)/1.1 "WD-XL Lubrifont TC",sans-serif;letter-spacing:.2em;margin:0 0 8px;text-indent:.2em}
.hanhai-hero[data-mode="language"] .scene-title p{font-size:clamp(14px,1.1vw,20px);letter-spacing:.12em;margin:0;white-space:nowrap}
.hanhai-hero[data-mode="language"] .review-controls{position:absolute;right:20px;top:18px;z-index:12;display:flex;gap:8px}
.hanhai-hero[data-mode="language"] .review-controls button{border:1px solid #b3c8d7;border-radius:20px;padding:7px 13px;background:#ffffffb5;color:#48647b;cursor:pointer;font-family:inherit}
.hanhai-hero[data-mode="language"] .review-controls button:focus-visible{outline:2px solid #2479bb;outline-offset:3px}
.hanhai-hero[data-mode="language"][data-playing=false] .hanhai-engine-shell-motion,.hanhai-hero[data-mode="language"][data-playing=false] .hanhai-core-float{animation-play-state:paused}
.hanhai-hero[data-mode="language"] .hanhai-base-modes{top:min(83.8%,calc(50% + 50svh - 82px));z-index:10}
.hanhai-hero[data-mode="language"] .hanhai-mode-axis{top:min(87.5%,calc(50% + 50svh - 48px))}
@media(min-aspect-ratio:2/1){.hanhai-hero[data-mode="language"] .hanhai-base-modes{background:rgba(241,244,246,.88);border-radius:8px;padding:0 14px;box-shadow:0 2px 12px #5067770f}
.hanhai-hero[data-mode="language"] .hanhai-base-mode{color:#687b88}
.hanhai-hero[data-mode="language"] .hanhai-base-mode.is-active{color:#3276b5}
}
@media(max-width:700px){.hanhai-hero[data-mode="language"] .hanhai-hero-stage{height:100%;width:177.7778%;}
.hanhai-hero[data-mode="language"] .review-controls{top:12px;right:12px}
.hanhai-hero[data-mode="language"] .scene-title p{font-size:12px}
.hanhai-hero[data-mode="language"] .scene-title h2{font-size:20px}
.hanhai-hero[data-mode="language"] .scene-title{top:61%}
.hanhai-hero[data-mode="language"] .hanhai-base-modes{width:54%}
.hanhai-hero[data-mode="language"] .hanhai-base-mode{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.hanhai-hero[data-mode="language"] .hanhai-engine-shell-motion,.hanhai-hero[data-mode="language"] .hanhai-core-float,.hanhai-hero[data-mode="language"] .hanhai-conscious-core,.hanhai-hero[data-mode="language"] .hanhai-core-aura{animation:none!important}
}
.hanhai-hero .language-scene-layer .panel-art{filter:drop-shadow(0 1px 2px #7d8ea420)}
.hanhai-hero .language-scene-layer .node-focus{fill:#8fcdff;fill-opacity:calc(var(--light)*.07);stroke:#80c6f1;stroke-opacity:var(--light);stroke-width:.8}
.hanhai-hero .language-scene-layer .result-cover{fill:#f2f6fc;stroke:none;pointer-events:none}
.hanhai-hero .language-scene-layer .route{stroke:url(#route-light);stroke-width:1.4;filter:drop-shadow(0 0 2px #86d8ff)}
.hanhai-hero .language-scene-layer .internal{stroke:#b9d9ec;stroke-width:.85;filter:none}
.hanhai-hero .language-scene-layer .port{stroke:#94d9ff;stroke-width:1;filter:drop-shadow(0 0 3px #83dcff)}
.hanhai-hero .language-scene-layer .flow-pulse{fill:#fff;stroke:#a5e5ff;stroke-width:.65;opacity:0;filter:drop-shadow(0 0 2px #65cdff)}
.hanhai-hero[data-mode="language"] .scene-title{color:#416984;top:62.1%;gap:15px}
.hanhai-hero[data-mode="language"] .scene-title h2{font-size:clamp(23px,1.6vw,29px)}
.hanhai-hero[data-mode="language"] .scene-title p{font-family:"Microsoft YaHei",sans-serif;font-size:clamp(14px,.98vw,18px);font-weight:400;letter-spacing:.12em}
.hanhai-hero[data-mode="language"] .hanhai-base-mode:disabled{opacity:1}
.hanhai-hero .language-scene-layer .panel-pane{fill:url(#panel-face);stroke:#f7fcff;stroke-width:1.2;filter:drop-shadow(0 1px 1px #91a2b530)}
.hanhai-hero .language-scene-layer .card-art .node-focus{fill:none;stroke:#b3e2fa;stroke-width:.8;stroke-opacity:calc(var(--light)*.55)}
.hanhai-hero .language-scene-layer .result-cover{fill:#eff3fa}
.hanhai-hero[data-mode="language"] .hanhai-engine-shell-motion{top:19.3%}
.hanhai-hero[data-mode="language"] .hanhai-core-anchor{top:45.3%}
.hanhai-hero[data-mode="language"] .scene-title{top:63.9%}
.hanhai-hero[data-mode="language"] .scene-title h2{font-size:clamp(20px,1.55vw,29px);margin:0;line-height:1.15}
.hanhai-hero[data-mode="language"] .scene-title p{font-size:clamp(13px,.94vw,18px)}
@media(max-aspect-ratio:2/1){.hanhai-hero[data-mode="language"] .hanhai-engine-shell-motion{top:18.5%}
.hanhai-hero[data-mode="language"] .hanhai-core-anchor{top:44.5%}
}
.hanhai-hero .language-scene-layer .planar-ui{shape-rendering:geometricPrecision}
.hanhai-hero .language-scene-layer .pane-face{fill:url(#pane);stroke:#98c6e0;stroke-width:.8}
.hanhai-hero .language-scene-layer .pane-side{fill:#b9cedd;fill-opacity:.45;stroke:#d7e9f6;stroke-width:.5}
.hanhai-hero .language-scene-layer .pane-rim{fill:none;stroke:#f7fdff;stroke-width:1.4}
.hanhai-hero .language-scene-layer .chrome-line{fill:none;stroke:#b1cbdc;stroke-width:.55}
.hanhai-hero .language-scene-layer .chrome-dot{fill:#76a6c6}
.hanhai-hero .language-scene-layer .chrome-dot circle:first-child{fill:#36a7e3}
.hanhai-hero .language-scene-layer .chrome-sign{fill:none;stroke:#4d8fb7;stroke-width:1}
.hanhai-hero .language-scene-layer .card-surface{fill:url(#paper);stroke:#bed5e5;stroke-width:.65}
.hanhai-hero .language-scene-layer .rule{fill:#769db6;opacity:.66}
.hanhai-hero .language-scene-layer .rule-dark{fill:#4c7fa3;opacity:.83}
.hanhai-hero .language-scene-layer .ui-icon{fill:none;stroke:#1a80c6;stroke-width:1.15;stroke-linejoin:miter;stroke-linecap:square}
.hanhai-hero .language-scene-layer .send-icon{fill:#65bcea;fill-opacity:.16;stroke:#228bc8;stroke-width:1.1;stroke-linejoin:round}
.hanhai-hero .language-scene-layer .tiny-accent{fill:#2995d1}
.hanhai-hero .language-scene-layer .doc-band{fill:#85badb}
.hanhai-hero .language-scene-layer .card-divider{fill:none;stroke:#c9deeb;stroke-width:.55}
.hanhai-hero .language-scene-layer .doc-selection{fill:#51b9ed;opacity:.13}
.hanhai-hero .language-scene-layer .code-block{fill:#dbeef8}
.hanhai-hero .language-scene-layer .data-header{fill:#589bc8}
.hanhai-hero .language-scene-layer .table-row{fill:#e3f0f8}
.hanhai-hero .language-scene-layer .cell-value{fill:#5d93b6;opacity:.57}
.hanhai-hero .language-scene-layer .table-grid{fill:none;stroke:#b7d3e6;stroke-width:.5}
.hanhai-hero .language-scene-layer .plot-grid{fill:none;stroke:#c3dcec;stroke-width:.5}
.hanhai-hero .language-scene-layer .plot-area{fill:url(#chart-fill)}
.hanhai-hero .language-scene-layer .plot-line{fill:none;stroke:#268ecc;stroke-width:1.1;stroke-linejoin:round}
.hanhai-hero .language-scene-layer .plot-bar{fill:#168ed7}
.hanhai-hero .language-scene-layer .legend-dot{fill:#399bd3}
.hanhai-hero .language-scene-layer .donut-track{fill:none;stroke:#d3e7f3;stroke-width:6}
.hanhai-hero .language-scene-layer .donut-data{fill:none;stroke:#328fca;stroke-width:6}
.hanhai-hero .language-scene-layer .micro-code{stroke:#86aec7;stroke-width:.6;opacity:.7}
.hanhai-hero .language-scene-layer .selection-edge{fill:none;stroke:#3eb5ef;stroke-width:1.6;opacity:var(--light,0)}
.hanhai-hero .language-scene-layer .node .card-surface{stroke:color-mix(in srgb,#49b5ef calc(var(--light,0)*100%),#bed5e5)}
.hanhai-hero .language-scene-layer .node-state{fill:#2aabde;opacity:calc(.24 + var(--arrived,0)*.76)}
.hanhai-hero .language-scene-layer .intent-progress,.hanhai-hero .language-scene-layer .tool-progress{fill:none;stroke:#359fd9;stroke-width:1.3;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--arrived,0));opacity:calc(var(--arrived,0)*.78)}
.hanhai-hero .language-scene-layer .tool-track{fill:none;stroke:#c8e0ed;stroke-width:1.3}
.hanhai-hero .language-scene-layer .decision-surface{fill:#eff9ff;stroke:#8abbd7;stroke-width:.8}
.hanhai-hero .language-scene-layer .decision .ui-icon{stroke:#318cbd}
.hanhai-hero .language-scene-layer .result-content{opacity:var(--arrived,0)}
.hanhai-hero .language-scene-layer .result-tick{fill:none;stroke:#3aa4ce;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.hanhai-hero .language-scene-layer .internal{stroke:#6daed2;stroke-width:.85}
.hanhai-hero .language-scene-layer .route:not(.internal){stroke-width:1.45;filter:drop-shadow(0 0 2px #6bd4ff)}
.hanhai-hero[data-mode="language"] .scene-title h2{font-family:"Microsoft YaHei",sans-serif;font-weight:600;font-size:clamp(18px,1.4vw,27px);letter-spacing:.12em}
.hanhai-hero[data-mode="language"] .scene-title p{font-family:"Microsoft YaHei",sans-serif;color:#48728d}
.hanhai-hero .language-scene-layer .depth-panel{position:absolute;z-index:5;transform-style:preserve-3d;pointer-events:none;transform-origin:50% 50%}
.hanhai-hero .language-scene-layer .depth-panel-left{transform:perspective(900px) rotateY(15deg) rotateX(3deg)}
.hanhai-hero .language-scene-layer .depth-panel-right{transform:perspective(900px) rotateY(-15deg) rotateX(3deg)}
.hanhai-hero .language-scene-layer .glass-back{position:absolute;inset:0;border:1px solid #8bc9e8;border-radius:4px;background:#d4eafa;transform:translateZ(-4px);box-shadow:0 12px 20px -12px #26699659,0 2px 3px #7ba6bf33,inset 0 0 0 1px #f6fcff}
.hanhai-hero .language-scene-layer .panel-plane{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transform:translateZ(0)}
.hanhai-hero .language-scene-layer .pane-face{fill:url(#pane);stroke:#a4d9f4;stroke-width:1}
.hanhai-hero .language-scene-layer .pane-side{fill:#79b8dc;fill-opacity:.2;stroke:#b0dbf0;stroke-width:1}
.hanhai-hero .language-scene-layer .pane-rim{stroke:#ffffff;stroke-width:1.7}
.hanhai-hero .language-scene-layer .surface-reflection{fill:url(#glass-light);stroke:none;pointer-events:none}
.hanhai-hero .language-scene-layer .raised-card{position:absolute;overflow:visible;transform:translateZ(calc(7px + var(--lift,0px)));will-change:transform;transition:transform .22s ease-out}
.hanhai-hero .language-scene-layer .card-surface{filter:url(#card-depth);stroke:#afcfe5;stroke-width:.7}
.hanhai-hero .language-scene-layer .ui-card .card-surface{rx:3;ry:3}
.hanhai-hero .language-scene-layer .decision-surface{filter:url(#card-depth);fill:#e9f7ff;stroke:#9dcee8;stroke-width:1}
.hanhai-hero .language-scene-layer .ui-icon{stroke:#087bc8;stroke-width:1.2}
.hanhai-hero .language-scene-layer .card-divider{stroke:#c2dbe9}
.hanhai-hero .language-scene-layer .rule{fill:#648da9;opacity:.71}
.hanhai-hero .language-scene-layer .port-reference{position:absolute;width:1px;height:1px;display:block;transform:translate(-.5px,-.5px);visibility:hidden}
.hanhai-hero .language-scene-layer .language-workspace{z-index:6}
.hanhai-hero .language-scene-layer .route:not(.internal){stroke-width:1.25}
.hanhai-hero .language-scene-layer .internal{stroke:#70b2d8;stroke-width:1}
.hanhai-hero .language-scene-layer .tool-progress,.hanhai-hero .language-scene-layer .intent-progress{stroke:#0999e2;stroke-width:1.35}
.hanhai-hero .language-scene-layer .node-state{fill:#13b4ed}
@media(prefers-reduced-motion:reduce){.hanhai-hero .language-scene-layer .raised-card{transition:none}
}
.hanhai-hero .language-scene-layer .chat-bounds{fill:none;stroke:none;pointer-events:none}
.hanhai-hero .language-scene-layer .chat-message{opacity:var(--arrived,0)}
.hanhai-hero .language-scene-layer .chat-user-surface{fill:#e0f2ff;stroke:#a7d7f2;stroke-width:.8;filter:url(#card-depth)}
.hanhai-hero .language-scene-layer .chat-assistant-surface{fill:#fbfdff;stroke:#bed9e9;stroke-width:.7;filter:url(#card-depth)}
.hanhai-hero .language-scene-layer .chat-copy{font-family:"Microsoft YaHei",sans-serif;font-size:15.5px;font-weight:400;fill:#285975}
.hanhai-hero .language-scene-layer .chat-attachment{fill:#f8fcff;stroke:#c0deef;stroke-width:.6}
.hanhai-hero .language-scene-layer .attachment-copy{font-family:"Microsoft YaHei",sans-serif;font-size:11.5px;fill:#487b98}
.hanhai-hero .language-scene-layer .attachment-lines{fill:none;stroke:#8eb7cf;stroke-width:1.4;opacity:.6}
.hanhai-hero .language-scene-layer .chat-avatar{stroke:#e9f8ff;stroke-width:.7}
.hanhai-hero .language-scene-layer .user-avatar{fill:#78bce1}
.hanhai-hero .language-scene-layer .assistant-avatar{fill:#d6effe;stroke:#9acde9}
.hanhai-hero .language-scene-layer .avatar-mark{fill:none;stroke:white;stroke-width:1.05}
.hanhai-hero .language-scene-layer .assistant-mark{fill:none;stroke:#2b91ca;stroke-width:.85;stroke-linejoin:round}
.hanhai-hero .language-scene-layer .chat-done{fill:none;stroke:#36a4cf;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.hanhai-hero .language-scene-layer .composer-surface{fill:#fafdff;stroke:#a8cfe7;stroke-width:.8;filter:url(#card-depth)}
.hanhai-hero .language-scene-layer .composer-plus{fill:none;stroke:#5c96b8;stroke-width:1.1}
.hanhai-hero .language-scene-layer .composer-placeholder{font-family:"Microsoft YaHei",sans-serif;font-size:13px;fill:#81a5ba}
.hanhai-hero .language-scene-layer .composer-send{fill:#d5efff;stroke:#a7d8f2;stroke-width:.6}
.hanhai-hero .language-scene-layer .composer-send-icon{fill:none;stroke:#1589ca;stroke-width:1.15;stroke-linejoin:round}
.hanhai-hero[data-mode="language"] .hanhai-engine-shell-motion{top:17.2%}
.hanhai-hero[data-mode="language"] .hanhai-core-anchor{top:43.2%}
.hanhai-hero[data-mode="language"] .scene-title{top:61.3%;left:30%;width:40%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:"WD-XL Lubrifont TC","Microsoft YaHei",sans-serif}
.hanhai-hero[data-mode="language"] .scene-title h2{margin:0;font-family:inherit;font-size:clamp(20px,1.65vw,32px);font-weight:400;line-height:1.05;letter-spacing:.18em;text-indent:.18em;color:#375b75}
.hanhai-hero[data-mode="language"] .scene-title p{margin:0;font-family:inherit;font-size:clamp(12px,1.02vw,20px);font-weight:400;line-height:1.2;letter-spacing:.12em;text-indent:.12em;color:#567a91}

.hanhai-hero{overflow:clip}
.initial-slogan-outgoing{position:absolute;top:56%;left:20%;width:60%;margin:0;z-index:7;text-align:center;font:400 clamp(27px,2.2vw,40px)/1.15 "WD-XL Lubrifont TC","Microsoft YaHei",sans-serif;letter-spacing:.15em;text-indent:.15em;color:#315269;opacity:0;pointer-events:none}
.hanhai-hero[data-intro-leaving="true"] .initial-slogan-outgoing{animation:initial-slogan-out .3s ease both}
@keyframes initial-slogan-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}
.hanhai-hero .scene-title.caption-cut{transition:none!important}
.hanhai-hero .language-scene-layer .chat-assistant-surface{fill:#286c96;stroke:#1d5b82;stroke-width:.9}
.hanhai-hero .language-scene-layer .chat-assistant .chat-copy,.hanhai-hero .language-scene-layer .chat-complete .chat-copy{fill:#fff;font-weight:400}
.hanhai-hero .language-scene-layer .chat-complete .ui-icon,.hanhai-hero .language-scene-layer .chat-done{stroke:#e7f7ff}
.hanhai-hero .language-scene-layer .assistant-avatar{display:none}
.hanhai-hero .language-scene-layer .assistant-mark{stroke:#fff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.scene-title{transition:opacity .4s ease,transform .55s cubic-bezier(.22,.61,.36,1),filter .4s ease;transform:translateY(0);filter:blur(0)}
.hanhai-hero .scene-title.caption-changing{opacity:0!important;transform:translateY(12px);filter:blur(2px)}
.language-scene-layer{position:absolute;inset:0;z-index:5;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s ease;will-change:opacity}
.hanhai-hero[data-mode="language"] .language-scene-layer{visibility:visible;opacity:1}
.hanhai-hero[data-language-state="entering"] .language-scene-layer,.hanhai-hero[data-language-state="exiting"] .language-scene-layer{opacity:0}
.hanhai-hero[data-language-state="entering"] .language-scene-layer{transition:none!important}
.hanhai-hero .language-scene-layer .depth-panel{opacity:1;transition:translate .45s cubic-bezier(.22,.61,.36,1);translate:0 0}
.hanhai-hero[data-language-state="entering"] .depth-panel-left,.hanhai-hero[data-language-state="exiting"] .depth-panel-left{translate:28px 10px}
.hanhai-hero[data-language-state="entering"] .depth-panel-right,.hanhai-hero[data-language-state="exiting"] .depth-panel-right{translate:-28px 10px}
.hanhai-hero[data-mode="language"] .hanhai-engine-shell-motion{top:10.5%}
.hanhai-hero[data-mode="language"] .hanhai-core-anchor{top:36.5%}
.hanhai-hero[data-mode="language"] .scene-title{top:56.7%;left:25%;width:50%;gap:10px}
.hanhai-hero[data-mode="language"] .scene-title h2,.hanhai-hero[data-mode="vision"] .scene-title h2{font-size:clamp(32px,2.2vw,46px);font-weight:400;line-height:1.1;letter-spacing:.18em;text-indent:.18em;margin:0}
.hanhai-hero[data-mode="language"] .scene-title p,.hanhai-hero[data-mode="vision"] .scene-title p{font-size:clamp(20px,1.5vw,30px);font-weight:400;line-height:1.25;letter-spacing:.14em;text-indent:.14em;margin:0}
.hanhai-hero[data-mode="vision"] .scene-title{top:49.5%;display:flex;flex-direction:column;align-items:center;gap:10px}
.hanhai-hero[data-mode="language"] .hanhai-engine-shell-motion,.hanhai-hero[data-mode="language"] .hanhai-core-anchor,.hanhai-hero[data-mode="vision"] .hanhai-engine-shell-motion,.hanhai-hero[data-mode="vision"] .hanhai-core-anchor{transition:top 1.4s cubic-bezier(.22,.61,.36,1),transform 1.4s ease}
.hanhai-hero[data-language-state="entering"] .hanhai-engine-shell-motion,.hanhai-hero[data-language-state="exiting"] .hanhai-engine-shell-motion{top:8.5%}
.hanhai-hero[data-language-state="entering"] .hanhai-core-anchor,.hanhai-hero[data-language-state="exiting"] .hanhai-core-anchor{top:34.5%}
@media(min-aspect-ratio:2/1){.hanhai-hero[data-language-state="entering"] .hanhai-engine-shell-motion,.hanhai-hero[data-language-state="exiting"] .hanhai-engine-shell-motion{top:10%}.hanhai-hero[data-language-state="entering"] .hanhai-core-anchor,.hanhai-hero[data-language-state="exiting"] .hanhai-core-anchor{top:36%}}
.hanhai-hero[data-mode="initial"] .scene-title{opacity:1;top:56%;left:20%;width:60%;display:flex;flex-direction:column;align-items:center;gap:10px}
.hanhai-hero[data-mode="initial"] .scene-title h2{display:none}
.hanhai-hero[data-mode="initial"] .scene-title p{font-size:clamp(27px,2.2vw,40px);font-weight:400;line-height:1.15;letter-spacing:.15em;text-indent:.15em;margin:0}
@media(min-aspect-ratio:2/1){.hanhai-hero[data-mode="initial"] .hanhai-engine-shell-motion{top:10%}.hanhai-hero[data-mode="initial"] .hanhai-core-anchor{top:36%}}
.hanhai-hero[data-mode="language"] .scene-title{opacity:1}
.hanhai-hero[data-mode="language"] #model-layer,.hanhai-hero[data-mode="language"] #model-bridge{display:none}
.hanhai-hero[data-mode="language"] .hanhai-base-modes{padding:5px 8px;border-radius:7px;box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 3px 9px rgba(56,77,91,.12);background:linear-gradient(180deg,#f6f8f9,#e2e8ec 52%,#edf1f3 94%,#d4dde3)}
.hanhai-base-mode:disabled{cursor:default;opacity:.5}

/* Language scene follows the 450ms switch window. */
.hanhai-hero[data-mode="language"] .hanhai-engine-shell-motion,
.hanhai-hero[data-mode="language"] .hanhai-core-anchor{transition-duration:.45s,.45s}
.hanhai-hero[data-mode="language"] .scene-title{transition-duration:.25s,.35s,.25s}


/* source: assets/hanhai-runtime/vision-panels-v18.css */
/* Separate group fade keeps perspective surfaces stable. */
.vision-inspection{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .65s ease,visibility 0s .65s;will-change:opacity}
.hanhai-hero[data-mode="vision"][data-phase="enter"] .vision-inspection,.hanhai-hero[data-mode="vision"][data-phase="result"] .vision-inspection{opacity:1;visibility:visible;transition:opacity 1.1s ease .18s,visibility 0s}
.v18-defs{position:absolute;overflow:hidden}
.v18-panel{position:absolute;top:17.5%;height:27.5%;width:21%;padding:10px 12px 9px;display:flex;flex-direction:column;gap:8px;border:1px solid #a9d2e5;border-radius:5px;background:linear-gradient(135deg,#f7fcffec,#deeff7df);box-shadow:inset 0 1px 0 #fff,inset 0 -3px 0 #9dcfe34d,0 7px 15px -11px #2c6689a8;color:#345f76;font-family:"Microsoft YaHei",sans-serif}
.v18-left{left:14%;transform:perspective(1200px) rotateY(10deg) rotateX(1deg)}.v18-right{right:14%;transform:perspective(1200px) rotateY(-10deg) rotateX(1deg)}
.v18-panel header{display:flex;align-items:center;gap:9px;min-height:19px;flex:none}.v18-panel h3{font-size:clamp(11px,.82vw,17px);font-weight:400;margin:0;letter-spacing:.07em}.v18-index{font:10px Arial,sans-serif;color:#7ba7bc;letter-spacing:.08em}.v18-status{margin-left:auto;font-size:clamp(9px,.61vw,12px);color:#548caa}
.v18-capture,.v18-detail,.v18-edge{position:relative;min-height:0;overflow:hidden;border:1px solid #c3deec;border-radius:3px;background:#dceff7;margin:0;box-shadow:0 1px 2px #39658217}
.v18-capture{flex:1}.v18-panel svg{display:block;width:100%;height:100%}.v18-panel footer{flex:none;display:flex;gap:6px;align-items:center;font-size:clamp(9px,.64vw,13px);line-height:1.2}.v18-panel footer span{margin-left:auto;font-size:.8em;color:#82a3b5}.v18-panel footer i{width:4px;height:4px;background:#42a5d0;border-radius:50%}
.v18-detail{flex:1.3}.v18-edge{flex:1;background:#12354e;border-color:#5788a2}.v18-detail figcaption{position:absolute;bottom:7px;left:8px;border:1px solid #fff8;border-radius:3px;padding:3px 6px;background:#edf7fbcf;display:flex;gap:5px;align-items:center;font-size:clamp(9px,.6vw,12px);color:#48667a}.v18-detail figcaption i{width:4px;height:4px;background:#c69a58;border-radius:50%}.v18-edge figcaption{position:absolute;left:10px;top:8px;font-size:clamp(10px,.64vw,13px);letter-spacing:.08em;color:#c5eaf8;text-shadow:0 1px 2px #092940}
.v18-target{fill:none;stroke:#5cc8ea;stroke-width:4;opacity:0}.v18-mark{fill:none;stroke:#e0b66a;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0}.v18-source-scan{stroke:#83e1fa;stroke-width:12;opacity:0;filter:drop-shadow(0 0 12px #57caff)}
.v18-site{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#57afd3;stroke-width:1;opacity:0}.v18-site-box{stroke:#c99f66;stroke-width:1.2}
.hanhai-hero[data-mode="vision"][data-phase="result"] .v18-target,.hanhai-hero[data-mode="vision"][data-phase="result"] .v18-mark,.hanhai-hero[data-mode="vision"][data-phase="result"] .v18-site{animation:v18-lock 8s ease infinite}.hanhai-hero[data-mode="vision"][data-phase="result"] .v18-source-scan{animation:v18-scan 8s linear infinite}
@keyframes v18-lock{0%,22%{opacity:0}32%,84%{opacity:1}97%,100%{opacity:0}}@keyframes v18-scan{0%,5%{opacity:0;transform:translateY(0)}10%{opacity:.5}30%{opacity:.5;transform:translateY(680px)}35%,100%{opacity:0;transform:translateY(680px)}}
@media(max-width:900px){.v18-panel{width:24%;padding:7px;gap:5px}.v18-left{left:10%}.v18-right{right:10%}.v18-status,.v18-panel footer span{display:none}}
@media(prefers-reduced-motion:reduce){.vision-inspection{transition:none!important}.v18-target,.v18-mark{opacity:1}}

/* V19: thin illuminated perimeter, raised observation windows and readable scan area. */
.v18-panel{border-color:#74c6e8;border-radius:3px;background:linear-gradient(125deg,#edfaffdf,#c8e9f1b8 52%,#e7faffdb);box-shadow:inset 0 0 0 1px #ffffffad,inset 0 0 20px #70d4f322,0 0 0 3px #9ddcf321,0 3px 0 #78b8d14a,0 10px 20px -14px #18577f9c;transform-style:preserve-3d;gap:10px;padding:11px 13px 10px}
.v18-panel::before{content:"";position:absolute;inset:-2px;pointer-events:none;background:linear-gradient(#58c6ef,#58c6ef) left top/24px 2px no-repeat,linear-gradient(#58c6ef,#58c6ef) left top/2px 16px no-repeat,linear-gradient(#58c6ef,#58c6ef) right top/24px 2px no-repeat,linear-gradient(#58c6ef,#58c6ef) right top/2px 16px no-repeat,linear-gradient(#58c6ef,#58c6ef) left bottom/24px 2px no-repeat,linear-gradient(#58c6ef,#58c6ef) left bottom/2px 16px no-repeat,linear-gradient(#58c6ef,#58c6ef) right bottom/24px 2px no-repeat,linear-gradient(#58c6ef,#58c6ef) right bottom/2px 16px no-repeat;filter:drop-shadow(0 0 3px #9ce5ff99)}
.v18-panel::after{content:"";position:absolute;left:36%;right:36%;bottom:-2px;height:2px;background:#63d1fa;box-shadow:0 0 7px #77d7f8}
.v18-panel header{border-bottom:1px solid #8bbfd36b;padding-bottom:7px;position:relative}.v18-panel header::after{content:"";position:absolute;bottom:-1px;left:0;width:38px;height:1px;background:#40b9ed;box-shadow:0 0 4px #80d7f4}
.v18-index{color:#459aba}.v18-status{display:flex;align-items:center;gap:5px}.v18-status::before{content:"";width:4px;height:4px;background:#39c4ed;box-shadow:0 0 4px #65d6f5;border-radius:50%}
.v18-capture,.v18-detail,.v18-edge{border-radius:2px;border-color:#99cde0;transform:translateZ(5px);box-shadow:0 3px 6px #1d627331,inset 0 0 0 1px #d4f5ff70}
.v18-edge{flex:1.15;border-color:#5ab5d2;background:#0c314c}.v18-edge svg{height:100%;margin-top:0}.v18-edge figcaption{top:7px;left:9px;right:auto;height:auto;padding:2px 5px;background:#12394bcc;border-left:2px solid #68c6e5;font-size:clamp(9px,.62vw,12px)}

.station-scan,.station-fault{position:absolute;inset:0;width:100%;height:100%;transform:translateY(-2%);pointer-events:none}
.station-fault-content{opacity:0;transition:opacity .28s ease}
.station-association{fill:none;stroke:#64c4ec;stroke-width:1.7;stroke-dasharray:5 6;opacity:.8}
.station-lock{fill:none;stroke:#ec3348;stroke-width:4;filter:drop-shadow(0 0 3px #f0445880)}
.station-halo{fill:#ed334826;stroke:#ec3348;stroke-width:2}.station-hotspot{fill:#f02e43;stroke:#fff0f2;stroke-width:1.5;filter:drop-shadow(0 0 5px #ef3348)}
.station-leader{fill:none;stroke:#d9a45b;stroke-width:1.6}.station-fault-content rect{fill:#153c54ed;stroke:#b99863;stroke-width:1}.station-fault-content g>path{stroke:#efbb66;stroke-width:3}.station-fault text{fill:#fff0cc;font:18px "Microsoft YaHei",sans-serif;letter-spacing:1px}
.hanhai-hero[data-mode="vision"][data-phase="result"] .v18-target,.hanhai-hero[data-mode="vision"][data-phase="result"] .v18-mark{animation:none;transition:opacity .28s ease}
.hanhai-hero[data-scan-lock="true"] .station-fault-content,.hanhai-hero[data-scan-lock="true"] .v18-target,.hanhai-hero[data-scan-lock="true"] .v18-mark{opacity:1}

/* V21: scan continuously, acquire the fault, then reveal inspection panels. */
.vision-panel-reveal{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateY(12px) scale(.97);transition:opacity .36s ease,transform .48s cubic-bezier(.2,.7,.25,1),visibility 0s .36s;will-change:opacity,transform}
.hanhai-hero[data-scan-panels="true"] .vision-panel-reveal{opacity:1;visibility:visible;transform:translateY(0) scale(1);transition-delay:0s}
.station-association{opacity:0;transition:opacity .4s ease}
.hanhai-hero[data-scan-panels="true"] .station-association{opacity:.8}
.hanhai-hero[data-scan-lock="true"] .station-lock,.hanhai-hero[data-scan-lock="true"] .station-halo{animation:station-alert .95s ease-in-out infinite}
.station-lock{stroke:#ec3348;stroke-width:4}
.v18-target,.v18-mark{stroke:#ec3348}.v18-detail figcaption i{background:#ec3348}
@keyframes station-alert{0%,100%{opacity:1}50%{opacity:.2}}
.hanhai-hero[data-mode="vision"][data-phase="result"] .v18-source-scan{animation:v21-source-scan 2.8s linear infinite alternate}
@keyframes v21-source-scan{from{opacity:.5;transform:translateY(0)}to{opacity:.5;transform:translateY(680px)}}
@media(prefers-reduced-motion:reduce){.vision-panel-reveal{transform:none;transition:none}}

/* V23: layered instrument housing, cut corners and illuminated calibration rails. */
.v18-panel{padding:13px 16px 12px;gap:10px;border:0;border-radius:0;clip-path:polygon(5% 0,100% 0,100% 92%,94% 100%,0 100%,0 7%);background:radial-gradient(ellipse at 12% 0,#408daa75,transparent 62%),linear-gradient(125deg,#153e53ed,#174c65e6 58%,#0c2f46f2);box-shadow:inset 0 0 25px #52c7f525;color:#d6f4ff;filter:drop-shadow(0 5px 8px #123d5866)}
.v18-panel::before{inset:0;background:linear-gradient(110deg,#a6eaff26,transparent 37%,#c4f5ff0a 60%,transparent);filter:none;pointer-events:none}
.v18-panel::after{left:36%;right:36%;bottom:2px;height:2px;background:linear-gradient(90deg,transparent,#a0f4ff,transparent);box-shadow:0 0 9px #38bfff;animation:v23-rail 2.8s ease-in-out infinite}
.v18-panel .v23-frame{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;z-index:2}
.v23-frame path{vector-effect:non-scaling-stroke}.v23-frame-outline{stroke:#6ccbed;stroke-width:1}.v23-frame-inner{stroke:#8de2ff55;stroke-width:.6}.v23-frame-accent{stroke:#b5efff;stroke-width:2;filter:drop-shadow(0 0 3px #4fc9ff)}.v23-frame-ticks{stroke:#6ccbed;stroke-width:1;opacity:.7}.v23-frame-rail{stroke:#52c5f2;stroke-width:2}
.v18-panel header{min-height:22px;padding-bottom:7px;border-color:#91d9f338;gap:8px}
.v18-panel h3{font-weight:500;color:#e3f7ff;letter-spacing:.12em;text-shadow:0 0 10px #83dfff33}
.v18-index{padding:3px 5px;background:#51b4da24;border:1px solid #80d2ed59;color:#9ee7ff;letter-spacing:.06em;font-size:9px}
.v18-status{color:#91d9ed;font-size:clamp(8px,.59vw,11px)}.v18-status::before{width:3px;height:3px;background:#7cecff;box-shadow:0 0 5px #51d6ff}
.v18-panel header::after{width:53px;background:#89e4ff;box-shadow:0 0 6px #69d9ff}
.v18-capture,.v18-detail,.v18-edge{border:1px solid #b2e7f588;border-radius:0;box-shadow:0 0 0 3px #041d2c44,0 3px 9px #00172588;transform:translateZ(5px)}
.v18-capture::after,.v18-detail::after,.v18-edge::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 14px #06395140;border-top:1px solid #d9f7ff66}
.v18-panel footer{color:#bce9f7}.v18-panel footer span{color:#7cb5c9}.v18-panel footer i{background:#72e8ff;box-shadow:0 0 5px #65dfff}
.v18-edge figcaption{background:#092f46de;border-left-color:#86e9ff}
@keyframes v23-rail{0%,100%{opacity:.45}50%{opacity:1}}
@media(max-width:900px){.v18-panel{padding:10px 11px;gap:7px}.v18-panel header{gap:5px}.v18-status{display:none}}
@media(prefers-reduced-motion:reduce){.v18-panel::after{animation:none}}


/* source: assets/hanhai-runtime/spatial-finish-v24.css */
/* Inspection windows take their light and colour from the silver room. */
.v18-panel{top:17%;height:28.5%;padding:14px;gap:11px;border:1px solid #ffffffb8;border-radius:12px;clip-path:none;filter:none;background:linear-gradient(135deg,#ffffffba,#e9f0f5a6 58%,#f8fcffbd);backdrop-filter:blur(16px) saturate(105%);-webkit-backdrop-filter:blur(16px) saturate(105%);box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 #99afc02b,0 0 0 1px #7994aa24,0 14px 25px -15px #243b5173,0 3px 7px #516c8412;color:#344e63}
.v18-panel::before{inset:0;border-radius:inherit;background:linear-gradient(122deg,#fff5,transparent 32%,transparent 76%,#ffffff24);filter:none;pointer-events:none}
.v18-panel::after,.v18-panel .v23-frame{display:none}
.v18-panel header{padding:0 0 1px;min-height:22px;border:0;gap:8px}
.v18-panel header::after{display:none}
.v18-panel h3{color:#344e63;font-size:clamp(11px,.87vw,17px);font-weight:500;letter-spacing:.04em;text-shadow:none}
.v18-index{background:none;border:0;padding:0;color:#8b9dac;font:10px Arial,sans-serif;letter-spacing:.03em}
.v18-status{font-size:clamp(8px,.58vw,11px);color:#758c9b;gap:5px}
.v18-status::before{width:3px;height:3px;background:#5c97b7;box-shadow:none}
.v18-capture,.v18-detail,.v18-edge{border:1px solid #fff9;border-radius:6px;box-shadow:0 0 0 1px #7995aa22,0 2px 4px #344a6010;transform:none}
.v18-capture::after,.v18-detail::after,.v18-edge::after{border:0;border-radius:inherit;box-shadow:inset 0 1px 3px #20456114}
.v18-panel footer{color:#617a8d;font-size:clamp(9px,.63vw,12px);padding-top:1px}
.v18-panel footer span{color:#95a6b2}
.v18-panel footer i{background:#6d9cb8;box-shadow:none;width:3px;height:3px}
.v18-detail figcaption{background:#f4f8fae0;border:1px solid #fff8;color:#5e7381;border-radius:4px;padding:3px 5px;font-size:clamp(8px,.56vw,11px)}
.v18-edge figcaption{top:7px;left:8px;padding:2px 4px;background:#17344996;border:0;color:#c6dbe7;letter-spacing:.03em;font-size:clamp(9px,.59vw,12px)}

/* Capability labels are navigation on the plinth, independent of the windows. */
.hanhai-hero .hanhai-base-modes{width:min(52%,640px);padding:0;gap:12px;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.hanhai-hero .hanhai-base-mode{font-family:"Microsoft YaHei",sans-serif;font-size:clamp(15px,1.25vw,20px);font-weight:400;letter-spacing:.12em;text-indent:.12em;line-height:1.4;min-height:44px;padding:9px 8px;border:1px solid transparent;border-radius:22px;background:none;color:#657986;box-shadow:none;text-shadow:none;transition:color .25s,background .25s,box-shadow .25s}
.hanhai-hero .hanhai-base-mode.is-active{color:#2b607f;background:linear-gradient(150deg,#ffffffbd,#edf4f878);border-color:#fff9;box-shadow:0 3px 8px #536e8110,inset 0 1px 0 #fff9;font-weight:500;text-shadow:none}
.hanhai-hero .hanhai-base-mode.is-active::after{display:none!important}
.hanhai-hero .hanhai-base-mode:hover:not(.is-active):not(:disabled){background:#ffffff5c;color:#365e78}
.hanhai-hero .hanhai-base-mode:disabled{opacity:1;color:#8c9ba5;cursor:default}
.hanhai-hero .hanhai-base-mode:focus-visible{outline:2px solid #658ca6;outline-offset:3px}
@media(max-width:900px){.v18-panel{padding:9px;gap:7px;border-radius:9px}.v18-panel header{gap:5px;min-height:18px}.v18-status{display:none}.hanhai-hero .hanhai-base-modes{width:min(72%,600px);gap:5px}.hanhai-hero .hanhai-base-mode{font-size:14px;padding:8px 3px;min-height:40px}}

/* V25: avoid filtering the animated scene; keep navigation clear of the water rim. */
.v18-panel{backdrop-filter:none;-webkit-backdrop-filter:none}
.hanhai-hero .hanhai-base-modes{top:min(87.2%,calc(50% + 50svh - 58px));width:min(56%,680px);gap:16px}
.hanhai-hero .hanhai-base-mode,.hanhai-hero .hanhai-base-mode.is-active{border:0;border-radius:0;background:none;box-shadow:none;padding:8px 8px 12px;min-height:44px;text-shadow:none}
.hanhai-hero .hanhai-base-mode{font-size:clamp(16px,1.32vw,21px);letter-spacing:.16em;text-indent:.16em;color:#607687}
.hanhai-hero .hanhai-base-mode.is-active{color:#285e7f;font-weight:500}
.hanhai-hero .hanhai-base-mode.is-active::after{display:block!important;bottom:3px;left:50%;width:30px;height:2px;background:#3c789e;border-radius:1px;box-shadow:none;transform:translateX(-50%)}
.hanhai-hero .hanhai-base-mode:hover:not(.is-active):not(:disabled){background:none;color:#285e7f}
.station-scan{inset:auto;left:11.962%;top:43.833%;width:76.156%;height:32.639%;transform:none;opacity:0}
.station-scan-front{display:block;width:100%;height:100%;background:linear-gradient(transparent,#62d2faaa 15%,#83e5ffc9 86%,transparent) left top/2px 100% no-repeat;will-change:transform}
.hanhai-hero[data-mode="vision"][data-phase="result"] .station-scan{opacity:1}
.hanhai-hero[data-mode="vision"][data-phase="result"] .station-scan-front{animation:station-front 2.8s linear infinite alternate}
@keyframes station-front{from{transform:translateX(0)}to{transform:translateX(100%)}}
@media(max-width:900px){.hanhai-hero .hanhai-base-modes{width:72%;gap:5px}.hanhai-hero .hanhai-base-mode{font-size:15px}}

/* V26: navigation owns a readable footer region rather than the scene's rim. */
.capability-navigation{position:absolute;z-index:11;left:0;right:0;bottom:0;height:68px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#f4f7f9f5,#e9eff3fc);border-top:1px solid #ffffffd9;box-shadow:0 -5px 18px #5a748212}
.hanhai-hero .capability-navigation .hanhai-base-modes{position:relative;left:auto;top:auto;width:min(760px,76%);transform:none;margin:0;gap:20px}
.hanhai-hero .capability-navigation .hanhai-base-mode{min-height:50px;padding:10px 8px 13px;font-size:clamp(18px,1.3vw,23px);font-weight:500;color:#42596b;line-height:1.25}
.hanhai-hero .capability-navigation .hanhai-base-mode:disabled{color:#687d8d;opacity:1}
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active{color:#19618f;font-weight:600}
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active::after{height:3px;width:32px;bottom:3px;background:#246f9c}
@media(max-width:900px){.capability-navigation{height:62px}.hanhai-hero .capability-navigation .hanhai-base-modes{width:88%;gap:4px}.hanhai-hero .capability-navigation .hanhai-base-mode{font-size:17px;padding-inline:3px}}

/* V27: spend the area on inspection imagery, not window furniture. */
.vision-decoder{position:fixed;right:0;bottom:0;width:2px;height:2px;opacity:.001;pointer-events:none;z-index:1}
.v18-panel{top:19%;width:20%;height:25%;padding:6px;gap:6px;border:1px solid #ffffffa6;border-radius:7px;background:linear-gradient(125deg,#f9fcff8c,#ebf3f866);box-shadow:inset 0 1px 0 #ffffffa6,0 0 0 1px #8198ab14,0 7px 15px -11px #29465e4d}
.v18-left{left:14.5%}.v18-right{right:14.5%}
.v18-panel::before{display:none}
.v18-panel header{min-height:17px;padding:1px 3px;gap:0}
.v18-panel h3{font-size:clamp(10px,.76vw,15px);font-weight:400;color:#5b7385;letter-spacing:.05em}
.v18-index,.v18-status,.v18-panel footer{display:none}
.v18-capture,.v18-detail,.v18-edge{border:0;border-radius:4px;box-shadow:0 0 0 1px #7995aa1a}
.v18-capture::after,.v18-detail::after,.v18-edge::after{display:none}
.v18-detail figcaption{bottom:5px;left:6px;padding:2px 4px;background:#f4f8faad;border:0;border-radius:2px}
.v18-edge figcaption{top:5px;left:6px;background:#17344970;padding:1px 3px}
@media(max-width:900px){.v18-panel{width:23%;padding:5px;gap:5px}.v18-left{left:10.5%}.v18-right{right:10.5%}.v18-panel header{min-height:16px}}

/* V32: shallow observation surfaces and a separate, compact navigation dock. */
.v18-panel{top:23%;width:20.5%;height:18%;padding:7px;gap:7px;border-radius:8px;background:linear-gradient(145deg,#f7fbfce6,#e8f0f5c7);border:1px solid #ffffffcf;box-shadow:0 0 0 1px #64829824,0 10px 22px -17px #26475b70;transform:none}
.v18-left{left:13.5%}.v18-right{right:13.5%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:22px minmax(0,1fr);column-gap:8px}
.v18-panel header{min-height:22px;padding:0 3px;grid-column:1/-1}
.v18-panel h3{font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;font-size:clamp(14px,.98vw,19px);font-weight:600;line-height:1.4;letter-spacing:.025em;color:#304d61;text-shadow:none}
.v18-capture,.v18-detail,.v18-edge{border-radius:4px;min-width:0;box-shadow:none}
.v18-detail,.v18-edge{display:grid;grid-template-rows:minmax(0,1fr) 24px;background:#edf4f7;overflow:hidden}
.v18-detail svg,.v18-edge svg{min-height:0}
.v18-detail figcaption,.v18-edge figcaption{position:static;display:flex;align-items:center;gap:6px;margin:0;padding:0 8px;border:0;border-radius:0;background:#f5f9fb;color:#486478;font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;font-size:clamp(11px,.72vw,14px);font-weight:400;line-height:1.4;letter-spacing:.015em;text-shadow:none;white-space:nowrap}
.v18-detail figcaption i{flex:none;width:4px;height:4px;background:#dc4055}
.capability-navigation{height:74px;background:none;border:0;box-shadow:none;pointer-events:none}
.hanhai-hero .capability-navigation .hanhai-base-modes{width:min(640px,76%);height:52px;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:5px;box-sizing:border-box;background:linear-gradient(180deg,#fbfdfff5,#eaf0f5f5);border:1px solid #ffffffed;border-radius:11px;box-shadow:0 0 0 1px #6a83962b,0 6px 16px -9px #23425966;pointer-events:auto}
.hanhai-hero .capability-navigation .hanhai-base-mode{min-height:0;height:40px;padding:0 10px;border:0;border-radius:6px;font-family:"Microsoft YaHei",sans-serif;font-size:18px;font-weight:400;letter-spacing:.12em;line-height:40px;color:#405d71;background:none;transition:background .22s ease,color .22s ease;box-shadow:none}
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active{background:#315f7b;color:#fff;font-weight:500;box-shadow:inset 0 1px 0 #ffffff1a,0 2px 4px #24475f1a}
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active::after{display:none!important}
.hanhai-hero .capability-navigation .hanhai-base-mode:hover:not(.is-active):not(:disabled){background:#dce7ef;color:#294f68}
.hanhai-hero .capability-navigation .hanhai-base-mode:disabled{color:#718593;opacity:1}
.v18-left{transform:perspective(950px) rotateY(18deg) rotateZ(2deg);transform-origin:center;border-radius:10px 16px 16px 10px}
.v18-right{transform:perspective(950px) rotateY(-18deg) rotateZ(-2deg);transform-origin:center;border-radius:16px 10px 10px 16px}
.v18-panel{backface-visibility:hidden;filter:none}
@media(max-width:900px){.v18-panel{width:24%;height:18.5%;padding:5px;gap:5px}.v18-left{left:9%}.v18-right{right:9%;column-gap:5px;grid-template-rows:19px minmax(0,1fr)}.v18-panel header{min-height:19px}.v18-panel h3{font-size:11px}.v18-detail,.v18-edge{grid-template-rows:minmax(0,1fr) 20px}.v18-detail figcaption,.v18-edge figcaption{font-size:9px;padding:0 3px}.hanhai-hero .capability-navigation .hanhai-base-modes{width:78%;height:48px;padding:4px}.hanhai-hero .capability-navigation .hanhai-base-mode{height:38px;line-height:38px;font-size:16px;padding:0 4px}.capability-navigation{height:68px}}


/* source: assets/hanhai-runtime/language-flow-clarity.css */
/* The execution path stays legible on the silver observation surface. */
.hanhai-hero .language-scene-layer .depth-panel-right .route.internal{stroke:color-mix(in srgb,#147fbb calc(var(--flow,0)*100%),#87b7d0);stroke-width:1.65;filter:none}
.hanhai-hero .language-scene-layer .depth-panel-right .flow-pulse{r:2.5px;fill:#127caf;stroke:#f0fcff;stroke-width:1;filter:none}
.hanhai-hero .language-scene-layer .depth-panel-right .node .card-surface,
.hanhai-hero .language-scene-layer .depth-panel-right .node .decision-surface{fill:color-mix(in srgb,#98d4ef calc(var(--light,0)*65%),#f6fbff);stroke:color-mix(in srgb,#147bb2 calc(var(--light,0)*100%),#a3c4d8);stroke-width:1.15}
.hanhai-hero .language-scene-layer .depth-panel-right .ui-icon{stroke:#127bac;stroke-width:1.35}
.hanhai-hero .language-scene-layer .depth-panel-right .rule{fill:#7099b2}
.hanhai-hero .language-scene-layer .depth-panel-right .node-state{fill:#127dad;opacity:calc(.25 + var(--light,0)*.75)}
.hanhai-hero .language-scene-layer .depth-panel-right .tool-track{stroke:#bdd4e2;stroke-width:1.8}
.hanhai-hero .language-scene-layer .depth-panel-right .tool-progress{stroke:#087db9;stroke-width:2.2;stroke-linecap:round;stroke-dashoffset:calc(1 - var(--progress,0));opacity:var(--arrived,0)}
.hanhai-hero .language-scene-layer .depth-panel-right .plot-bar{fill:#167fb8;transform-box:fill-box;transform-origin:center bottom;transform:scaleY(var(--arrived,0))}
.hanhai-hero .language-scene-layer .depth-panel-right .plot-line{stroke:#0879b4;stroke-width:1.7}
.hanhai-hero .language-scene-layer .depth-panel-right .plot-area{fill:#54b3de;fill-opacity:.3}
.hanhai-hero .language-scene-layer .depth-panel-right .result-tick{stroke:#1678a7;stroke-width:1.7}

/* Keep chat glyphs on one plane instead of resampling them during card lift. */
.hanhai-hero .language-scene-layer .depth-panel-left .raised-card{transform:none;will-change:auto;transition:none}
.hanhai-hero .language-scene-layer .chat-assistant .chat-copy,
.hanhai-hero .language-scene-layer .chat-complete .chat-copy{font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;font-weight:600;fill:#fff;fill-opacity:1;filter:none;text-shadow:none;text-rendering:geometricPrecision}
.hanhai-hero .language-scene-layer .chat-assistant-surface{fill:#245f85;stroke:#225978}
.hanhai-hero .language-scene-layer .chat-text-source{opacity:0!important}
.chat-native-copy{position:absolute;z-index:8;display:block;margin:0;padding:0;white-space:nowrap;pointer-events:none;color:#fff;font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;font-weight:400;letter-spacing:0;text-shadow:none;filter:none;transform:none;opacity:0}
.chat-native-user{color:#285975}
.chat-native-attachment{color:#48758f}
.chat-native-placeholder{color:#64879e}


/* source: assets/hanhai-runtime/other-scenes.css */
.other-scene{position:absolute;inset:0;z-index:1;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .65s ease,visibility 0s .65s}
.other-scene.is-shown{opacity:1;visibility:visible;transition-delay:0s}
.scene-prediction,.scene-simulation{z-index:3}
.other-scene-model{position:absolute;pointer-events:none;filter:drop-shadow(0 3px 2px #46677b24)}
.hanhai-hero[data-still-scene="prediction"] .hanhai-table-field,.hanhai-hero[data-still-scene="simulation"] .hanhai-table-field{opacity:1;pointer-events:none}
.other-scene-image{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;transform:translateY(1.5%) scale(.92);transform-origin:center top;mask-image:linear-gradient(transparent 37%,#000 49%),linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-composite:intersect}
.other-panel-reveal{position:absolute;inset:0;opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .65s ease}
.other-scene.is-ready .other-panel-reveal{opacity:1;transform:none}
.other-panel.v18-right{display:flex}
.other-panel-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;color:#34576f;font:400 clamp(12px,.82vw,16px)/1.45 "Microsoft YaHei UI","Microsoft YaHei",sans-serif}
.other-panel h3{font-size:clamp(13px,.94vw,18px)}
.other-panel p{margin:0}
.other-panel .speech-wave{height:30px;width:100%;flex:none;stroke:#2487b8;stroke-width:2.3;stroke-linecap:round}
.speech-wave line{transform-box:fill-box;transform-origin:center;animation:speech-wave-motion .8s ease-in-out infinite alternate;animation-play-state:paused}
.speech-query{font-size:clamp(12px,.8vw,16px);color:#2d5871}
.speech-result{display:flex;align-items:center;gap:12px;flex:1;min-height:0;border-top:1px solid #b5ccdb70;padding-top:3px}
.result-label{font-size:.86em;white-space:nowrap;color:#65849a}
.speech-result .mini-chart{flex:1}
.speech-result .mini-chart>span{display:none}
.call-heading{display:flex;align-items:center;gap:6px;font-size:.9em;color:#526f82}
.call-light{width:5px;height:5px;flex:none;border-radius:50%;background:#2489b9}
.other-note{margin-left:auto;font-size:.85em;color:#7d93a2}
.transcript{display:grid;gap:7px;padding:3px 0}
.transcript p{display:flex;gap:8px;align-items:flex-start}
.transcript b{font-weight:500;color:#367b9d;white-space:nowrap;font-size:.86em;padding-top:1px}
.record-draft{display:flex;align-items:center;gap:9px;padding:5px 9px;background:#dcecf4;border-radius:4px;margin-top:auto;font-size:.88em}
.record-draft i{width:12px;height:17px;border:1px solid #6c9bb6;border-radius:2px;flex:none;background:repeating-linear-gradient(transparent 0 4px,#86aec45c 4px 5px)}
.record-draft strong{font-weight:500}
.mini-chart{flex:1;min-height:0;display:flex;align-items:center;gap:7px}
.mini-chart>span{width:62px;flex:none;font-size:.86em;color:#56768a}
.other-panel .mini-chart svg{width:0;flex:1;min-height:0;height:100%;overflow:visible}
.chart-grid{fill:none;stroke:#b6cedd;stroke-width:.7}
.history-line,.future-line{fill:none;stroke:#2b88b8;stroke-width:2;stroke-linecap:round}
.future-line{stroke:#146b9d;stroke-dasharray:5 4;animation:prediction-reveal 8s ease infinite;animation-play-state:paused}
.prediction-band{fill:#82c2e2;opacity:.23;animation:prediction-band 8s ease infinite;animation-play-state:paused}
.now-axis{stroke:#9ab6c8;stroke-width:1;stroke-dasharray:2 3}
.chart-key{display:flex;align-items:center;gap:5px;font-size:.8em;color:#6c879a}
.chart-key i{width:15px;height:2px;background:#2b88b8}.chart-key>span{margin-left:auto}.chart-key .forecast-key{padding-left:18px;background:linear-gradient(90deg,#d0e9f5 13px,transparent 13px) no-repeat left center/13px 8px}
.simulation-network{width:100%;flex:1;min-height:0;overflow:visible}.network-edge{fill:none;stroke:#93b4c8;stroke-width:1.2}.network-node{fill:#e9f5fa;stroke:#2e86b2;stroke-width:1.5}.simulation-network text{font:10px Arial,sans-serif;text-anchor:middle;fill:#53748b}.network-route{fill:none;stroke:#1f83b8;stroke-width:2.4;stroke-dasharray:1;stroke-dashoffset:1;animation:network-run 8s ease infinite;animation-play-state:paused}.network-caption{font-size:.76em;color:#7891a2;text-align:right}
.simulation-steps{display:flex;justify-content:space-between;align-items:center;font-size:.86em;color:#486d85}.simulation-steps i{font-style:normal;color:#91acbd}.scenario-options{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:3px}.scenario-options>div{display:flex;align-items:center;gap:10px}.scenario-options span{font-size:.85em;color:#6b8799;white-space:nowrap}.scenario-options svg{width:0;flex:1;height:33px}.option-base{stroke:#b6ccd9;fill:none;stroke-width:2}.option-trace{stroke:#2587b6;fill:none;stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;animation:network-run 8s ease infinite;animation-play-state:paused}.option-trace.second{animation-delay:1s;stroke:#526f9a}.simulation-summary{border-top:1px solid #b9cedc80;padding-top:5px;display:flex;justify-content:space-between;gap:6px;font-size:.8em;color:#7790a1}.simulation-summary strong{font-weight:500;color:#3b718f}
.other-scene.is-ready .speech-wave line,.other-scene.is-ready .future-line,.other-scene.is-ready .prediction-band,.other-scene.is-ready .network-route,.other-scene.is-ready .option-trace{animation-play-state:running}
.hanhai-hero[data-still-scene] .hanhai-table-field{opacity:0;pointer-events:none}
.hanhai-hero[data-still-scene] .hanhai-engine-shell-motion{z-index:2;top:3.5%;transition:top 1.4s cubic-bezier(.22,.61,.36,1)}
.hanhai-hero[data-still-scene] .hanhai-core-anchor{top:29.5%;transition:top 1.4s cubic-bezier(.22,.61,.36,1)}
.hanhai-hero[data-still-scene] .scene-title{top:43%;display:flex;flex-direction:column;align-items:center;gap:10px;opacity:1}
.hanhai-hero[data-still-scene] .scene-title h2{font-size:clamp(32px,2.2vw,46px);line-height:1.1;font-weight:400;margin:0;letter-spacing:.18em;text-indent:.18em}
.hanhai-hero[data-still-scene] .scene-title p{font-size:clamp(20px,1.5vw,30px);line-height:1.25;font-weight:400;margin:0;letter-spacing:.14em;text-indent:.14em}
.hanhai-hero[data-still-scene="speech"] .scene-title{top:42%}
@keyframes speech-wave-motion{from{transform:scaleY(.45)}to{transform:scaleY(1)}}
@keyframes prediction-reveal{0%,25%{opacity:0;clip-path:inset(0 100% 0 0)}55%,92%{opacity:1;clip-path:inset(0)}100%{opacity:0;clip-path:inset(0)}}
@keyframes prediction-band{0%,25%{opacity:0}55%,92%{opacity:.23}100%{opacity:0}}
@keyframes network-run{0%,15%{stroke-dashoffset:1;opacity:0}20%{opacity:1}65%,92%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@media(max-width:900px){.other-panel-body{gap:4px;font-size:10px}.other-panel h3{font-size:12px}.speech-wave{height:18px}.speech-query{font-size:11px}.transcript{gap:4px}.transcript p{gap:4px}.other-note{display:none}.record-draft{padding:3px 5px}.mini-chart>span{width:40px}.simulation-summary{flex-direction:column;gap:0}.scenario-options svg{height:24px}}

/* Keep the caption clear of the core and let the dispatch desk sit below it. */
.hanhai-hero[data-still-scene] .scene-title{top:46.5%}
.scene-speech .other-scene-image{transform:translateY(13.5%) scale(.78)}
.other-panel .simulation-network{height:0;flex:1}
.other-panel .scenario-options svg{height:33px;width:0}
.other-panel-body{overflow:hidden}


.hanhai-hero[data-still-scene] .hanhai-engine-shell-motion{top:1.5%}
.hanhai-hero[data-still-scene] .hanhai-core-anchor{top:27.5%}
.scene-speech .other-scene-image{transform:translateY(21.5%) scale(.68);mask-image:linear-gradient(transparent 48%,#000 52%,#000 79%,transparent 85%),linear-gradient(90deg,transparent 13%,#000 19%,#000 81%,transparent 87%)}
.scene-simulation .other-scene-image{transform:translate(2%,15%) scale(.76);mask-image:linear-gradient(transparent 38%,#000 42%,#000 81%,transparent 87%),linear-gradient(90deg,transparent 18%,#000 22%,#000 78%,transparent 82%),linear-gradient(transparent 69%,#000 76%);mask-composite:intersect,add}
@media(max-width:1400px){.other-panel-body{font-size:10px;gap:3px}.other-panel .speech-wave{height:20px}.transcript{gap:2px;padding:0}.record-draft{padding:3px 6px}.other-note{display:none}.other-panel h3{font-size:14px}}


/* V58: soften only the model water edge into the existing page water. */
.scene-simulation .other-scene-model{mask-image:linear-gradient(to bottom,#000 0%,#000 68.5%,transparent 74%)}

/* V61 uses the actual room/table image as a full environment, under live UI. */
.other-scene.scene-simulation{z-index:1}
.scene-simulation .other-scene-environment{inset:0;width:100%;height:100%;object-fit:fill;transform:none;mask-image:none;filter:none}
.hanhai-hero[data-still-scene="simulation"] .hanhai-table-field{opacity:0}

/* V65: speech and prediction share the original room/table with simulation. */
.other-scene.scene-speech,.other-scene.scene-prediction{z-index:1}
.scene-speech .other-scene-environment,.scene-prediction .other-scene-environment{inset:0;width:100%;height:100%;object-fit:fill;transform:none;mask-image:none;filter:none}
.hanhai-hero[data-still-scene="speech"] .hanhai-table-field,.hanhai-hero[data-still-scene="prediction"] .hanhai-table-field{opacity:0}

/* V68: preserve a clear gap above the widened, low-profile dispatch console. */
.hanhai-hero[data-still-scene="speech"] .scene-title{top:45.8%;gap:4px}
.scene-prediction .mini-chart>span{width:5.2em;white-space:nowrap}


/* source: assets/hanhai-runtime/panel-review-v70.css */
/* Panel repairs are scoped to the four reviewed capabilities. */
.hanhai-hero[data-mode="vision"][data-phase="enter"] .vision-inspection,
.hanhai-hero[data-mode="vision"][data-phase="result"] .vision-inspection{transition:opacity .22s ease,visibility 0s}
.vision-panel-reveal{transform:none;transition:opacity .22s ease,visibility 0s .22s;will-change:opacity}
.hanhai-hero[data-scan-panels="true"] .vision-panel-reveal{transform:none;transition-delay:0s}
.vision-inspection .v18-panel{height:20%;padding:9px;gap:7px}
.vision-inspection .v18-panel header{display:flex;align-items:center;justify-content:space-between;padding:0 2px;min-height:24px}
.vision-inspection .v18-panel h3{font-size:clamp(14px,.98vw,19px);white-space:nowrap}
.vision-inspection .v18-status{display:block;font-size:clamp(11px,.7vw,13px);white-space:nowrap;line-height:1.4}
.vision-inspection .v18-status::before{display:none}
.vision-inspection .v18-left footer{display:flex;min-height:17px;padding:0 2px;font-size:clamp(11px,.7vw,13px)}
.vision-inspection .v18-left footer span{display:block;font-size:inherit}
.vision-inspection .v18-right{grid-template-rows:24px minmax(0,1fr);column-gap:8px}
.vision-inspection .v18-detail,.vision-inspection .v18-edge{grid-template-rows:minmax(0,1fr) 23px}
.vision-inspection .v18-detail figcaption,.vision-inspection .v18-edge figcaption{padding-inline:6px;font-size:clamp(11px,.76vw,14px);white-space:nowrap}
.vision-inspection .v18-source-scan{stroke-width:5;filter:none}
.vision-inspection .v18-target{stroke-width:3}
.vision-inspection .v18-mark{stroke-width:2.2}
.vision-inspection .station-scan{clip-path:polygon(0 0,32% 0,32% 48%,68% 48%,68% 0,100% 0,100% 100%,0 100%)}
.hanhai-hero[data-scan-lock="true"] .station-lock,.hanhai-hero[data-scan-lock="true"] .station-halo{animation:none}

/* Native plan labels share the same perspective plane as the existing chat. */
.language-scene-layer .language-panel-heading{position:absolute;z-index:4;left:5%;right:5%;top:3%;display:flex;align-items:center;justify-content:space-between;font:600 clamp(13px,.9vw,17px)/1.2 "Microsoft YaHei",sans-serif;color:#34596f}
.language-panel-heading small{font-size:.74em;font-weight:400;color:#718a9c}
.language-scene-layer .interface-pane .chrome-dot,
.language-scene-layer .interface-pane .chrome-sign,
.language-scene-layer .interface-pane>.rule{display:none}
.language-plan-v70{position:absolute;left:5%;right:5%;top:12%;bottom:5%;display:grid;grid-template-rows:repeat(3,minmax(0,1fr)) minmax(0,1.12fr);gap:10px;font-family:"Microsoft YaHei",sans-serif}
.language-plan-v70 .plan-step{position:relative;display:flex;align-items:center;gap:10px;min-width:0;padding:8px 10px;border:1px solid #bed3e1;border-radius:5px;background:color-mix(in srgb,#d9edf8 calc(var(--arrived,0)*100%),#f3f8fc);box-shadow:0 2px 4px #244d6610}
.language-plan-v70 .plan-number{flex:none;color:#5686a4;font-size:clamp(11px,.75vw,14px);font-variant-numeric:tabular-nums}
.language-plan-v70 h4{margin:0 0 4px;font-size:clamp(13px,.9vw,17px);font-weight:600;line-height:1.2;color:#315e78}
.language-plan-v70 p{margin:0;font-size:clamp(11px,.75vw,14px);line-height:1.35;color:#56768b;white-space:nowrap}
.language-plan-v70 .plan-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#278cb7;transform-origin:left;transform:scaleX(var(--progress,0));border-radius:0 0 4px 4px}
.language-plan-v70 .plan-step:not(:nth-child(3))::after{content:"";position:absolute;left:50%;top:calc(100% + 2px);height:7px;border-left:1px solid #90afc3}
.language-plan-v70 .plan-output{min-width:0;display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #93bfd5;border-radius:5px;background:#d8edf7;opacity:calc(.35 + var(--arrived,0)*.65)}
.plan-output strong{font-size:clamp(14px,.92vw,18px);font-weight:600;color:#285d7b}
.plan-output p{margin-top:4px}
.plan-output-check{margin-left:auto;color:#2186af;opacity:var(--arrived,0);font-size:20px}
.plan-document{position:relative;flex:none;width:17px;height:23px;border:1.5px solid #6d9db8;border-radius:2px;background:repeating-linear-gradient(transparent 0 4px,#87aec555 4px 5px)}
.plan-document::after{content:"";position:absolute;top:4px;bottom:4px;left:3px;right:3px;border-top:1px solid #87aec5}

/* Keep the actual series and the forecast interval visible after reveal. */
.scene-prediction .other-panel,.scene-simulation .other-panel{height:19.5%;padding:10px;gap:7px}
.scene-simulation .other-panel{min-height:170px}
.scene-prediction .other-panel h3,.scene-simulation .other-panel h3{font-size:clamp(14px,.98vw,19px)}
.scene-prediction .other-panel-body,.scene-simulation .other-panel-body{gap:7px;overflow:visible;font-size:clamp(12px,.8vw,15px)}
.scene-prediction .other-panel-reveal,.scene-simulation .other-panel-reveal{transform:none;transition:opacity .24s ease}
.forecast-plot{display:flex;align-items:center;gap:9px;flex:1;min-height:0}
.forecast-name{width:5.2em;flex:none;font-size:clamp(12px,.78vw,15px);color:#426c84;white-space:nowrap}
.forecast-chart{position:relative;flex:1;min-width:0;height:100%;display:flex;flex-direction:column}
.other-panel .forecast-plot svg{display:block;flex:1;width:100%;height:0;min-height:0;overflow:visible}
.forecast-axis-row{position:relative;display:flex;justify-content:space-between;flex:none;height:14px;line-height:14px;padding-inline:3.5%;font-size:11px;color:#7791a2}
.forecast-axis-now{position:absolute;left:51.2%;transform:translateX(-50%)}
.forecast-grid{fill:none;stroke:#c6d9e5;stroke-width:1}
.forecast-history,.forecast-trace{fill:none;stroke:#287fa6;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.forecast-trace{stroke:#37739c;stroke-dasharray:4 3}
.forecast-envelope{fill:#8ec9e5;opacity:.25}
.forecast-now{stroke:#8aaabd;stroke-width:1;stroke-dasharray:2 3}
.forecast-axis{font:10px "Microsoft YaHei",sans-serif;fill:#6d899b}
.forecast-legend{flex:none;min-height:17px;display:flex;align-items:center;gap:14px;color:#678497;font-size:clamp(11px,.7vw,13px)}
.forecast-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}
.forecast-legend small{margin-left:auto;font:inherit;color:#7b929f}
.forecast-legend i{width:14px;height:2px;display:block;background:#287fa6}
.forecast-legend .key-future{height:0;background:none;border-top:2px dashed #37739c}
.forecast-legend .key-range{height:8px;background:#c7e3f0;border:1px solid #add2e3}

/* The grid and its five-stage explanation share one clock. */
.sim-map-wrap{position:relative;flex:1;min-height:0}
.other-panel .sim-map{display:block;width:100%;height:100%;overflow:visible}
.sim-edge{fill:none;stroke:#a8c0d0;stroke-width:1.5}
.sim-node{fill:#edf7fc;stroke:#649ab7;stroke-width:1.7}
.sim-flow-normal,.sim-flow-alternate{fill:none;stroke:#2383af;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.sim-flow-alternate{stroke:#3a9f92;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;transition:stroke-dashoffset .9s ease,opacity .25s ease}
.sim-fault-halo{fill:#d758581b;stroke:#d25d60;stroke-width:1.5;opacity:0}
.sim-fault-cross{fill:none;stroke:#d25d60;stroke-width:1.8;opacity:0}
.sim-map-state{position:absolute;left:0;bottom:0;font-size:clamp(11px,.72vw,13px);color:#577b90;background:#f4f8fbdd;border-radius:3px;padding:2px 5px}
.sim-map-legend{display:flex;align-items:center;gap:10px;flex:none;font-size:clamp(10px,.66vw,12px);color:#6d899b;white-space:nowrap}
.sim-map-legend span{display:flex;align-items:center;gap:4px}
.sim-map-legend i{width:12px;height:2px;display:block;background:#2383af}
.sim-map-legend .sim-key-fault{width:5px;height:5px;border-radius:50%;background:#d25d60}
.sim-map-legend small{margin-left:auto;font:inherit}
.sim-sequence{display:flex;align-items:flex-start;justify-content:space-between;list-style:none;margin:0;padding:0;gap:6px;flex:none}
.sim-sequence li{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;color:#8298a8;font-size:clamp(11px,.73vw,14px);white-space:nowrap}
.sim-sequence li:not(:last-child)::after{content:"";position:absolute;top:4px;left:calc(50% + 7px);width:calc(100% - 8px);height:1px;background:#cadbe5}
.sim-sequence i{position:relative;z-index:1;width:7px;height:7px;border-radius:50%;background:#c7d9e4;border:1px solid #a6bdcd}
.sim-sequence .is-current{color:#267ba6;font-weight:600}
.sim-sequence .is-current i,.sim-sequence .is-complete i{background:#3d94bb;border-color:#3d94bb}
.sim-current{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:4px}
.sim-current strong{font-size:clamp(15px,1vw,19px);font-weight:600;color:#335f78}
.sim-current p{margin:0!important;line-height:1.4;font-size:clamp(12px,.79vw,15px);color:#627f92}
.sim-result-lines{display:flex;gap:10px;flex:none;border-top:1px solid #c8dbe6;padding-top:5px;font-size:clamp(10px,.7vw,13px);color:#7991a1}
.sim-result-lines>span{flex:1;display:flex;gap:5px;align-items:center;white-space:nowrap}
.sim-result-lines b{font-weight:500;color:#3c728c}
.sim-result-note{font-size:clamp(10px,.65vw,12px);text-align:right;color:#8a9fab;flex:none}
.scene-simulation[data-sim-stage]:not([data-sim-stage="0"]) .sim-flow-normal{opacity:.15}
.scene-simulation[data-sim-stage]:not([data-sim-stage="0"]) .sim-fault-node{fill:#f6dede;stroke:#d25d60}
.scene-simulation[data-sim-stage]:not([data-sim-stage="0"]) .sim-fault-halo,
.scene-simulation[data-sim-stage]:not([data-sim-stage="0"]) .sim-fault-cross{opacity:1}
.scene-simulation[data-sim-stage]:not([data-sim-stage="0"]) .sim-fault-edge{stroke:#c5a3a8;stroke-dasharray:4 3}
.scene-simulation[data-sim-stage="2"] .sim-flow-alternate{opacity:.45;stroke:#bc9750;stroke-dashoffset:0}
.scene-simulation[data-sim-stage="3"] .sim-flow-alternate,
.scene-simulation[data-sim-stage="4"] .sim-flow-alternate{opacity:1;stroke-dashoffset:0}
.scene-simulation[data-sim-stage="2"] .sim-key-flow{background:#bc9750}
.scene-simulation[data-sim-stage="3"] .sim-key-flow,.scene-simulation[data-sim-stage="4"] .sim-key-flow{background:#3a9f92}

@media(max-width:1500px){
  .language-plan-v70{gap:8px}
  .language-plan-v70 .plan-step{padding:6px 8px;gap:8px}
  .language-plan-v70 h4{font-size:13px;margin-bottom:3px}
  .language-plan-v70 p{font-size:11px}
  .language-plan-v70 .plan-output{padding:7px 9px;gap:8px}
  .plan-output strong{font-size:14px}
  .scene-prediction .other-panel,.scene-simulation .other-panel{padding:8px;gap:6px}
  .scene-simulation .other-panel-body{gap:5px}
  .sim-result-lines{flex-direction:column;gap:3px;padding-top:4px}
  .sim-result-lines>span{justify-content:space-between}
  .sim-result-note{display:none}
}
@media(max-width:1000px){
  .vision-inspection .v18-panel{padding:6px;gap:5px;height:20.5%}
  .vision-inspection .v18-status{display:none}
  .vision-inspection .v18-panel header{min-height:19px}
  .vision-inspection .v18-right{grid-template-rows:19px minmax(0,1fr);column-gap:5px}
  .vision-inspection .v18-panel h3{font-size:12px}
  .vision-inspection .v18-left footer,.vision-inspection .v18-detail figcaption,.vision-inspection .v18-edge figcaption{font-size:10px}
  .language-panel-heading small{display:none}
  .language-plan-v70{left:4%;right:4%;gap:5px}
  .language-plan-v70 .plan-step{gap:5px;padding:5px}
  .language-plan-v70 .plan-number{font-size:10px}
  .language-plan-v70 h4{font-size:11px}
  .language-plan-v70 p{font-size:10px;white-space:normal;line-height:1.25}
  .forecast-name{font-size:10px}
  .forecast-legend{font-size:10px;gap:7px}
  .sim-map-legend small{display:none}
}
@media(prefers-reduced-motion:reduce){.sim-flow-alternate{transition:none}}

/* Composite the right glass and native copy before applying the panel perspective. */
.hanhai-hero .language-scene-layer .depth-panel-right{transform-style:flat}
.language-scene-layer .depth-panel-right .language-plan-v70{z-index:3}

/* Keep the forecast chart and labels above their glass surface during resize. */
.scene-prediction .other-panel{transform-style:flat}


/* source: assets/hanhai-runtime/panel-text-v73.css */
/* Text-only revision. Outer panel dimensions, positioning and perspective stay at v70. */
.scene-simulation .sim-sequence li{font-size:11px;line-height:1.4;gap:5px}
.scene-simulation .other-panel-body{gap:8px}
.scene-simulation .sim-current{gap:6px;justify-content:center}
.scene-simulation .sim-current strong{font-size:15px;line-height:1.3}
.scene-simulation .sim-current p{font-size:12px;line-height:1.6}
.scene-simulation .sim-result-lines{display:flex;flex-direction:row;gap:10px;padding-top:7px;font-size:11px;line-height:1.5}
.scene-simulation .sim-result-lines>span{display:flex;flex-direction:row;justify-content:flex-start;gap:5px}
.scene-simulation .sim-result-lines b{font-size:11px}
.scene-simulation .sim-result-note{display:none}
.scene-simulation .sim-map-state{font-size:11px;line-height:1.5}
.scene-simulation .sim-map-legend{font-size:11px;line-height:1.5;gap:12px}

.scene-speech .other-panel-body{font-size:12px;line-height:1.65;gap:8px}
.scene-speech .other-panel h3{font-size:15px;line-height:1.4}
.scene-speech .speech-query{font-size:12px;line-height:1.6}
.scene-speech .other-panel .speech-wave{height:22px}
.scene-speech .transcript{gap:10px;padding:0}
.scene-speech .transcript p{gap:10px;line-height:1.65}
.scene-speech .transcript b{font-size:11px;line-height:1.8;padding:0}
.scene-speech .call-heading{display:none}
.scene-speech .record-draft{font-size:11px;line-height:1.6;padding:6px 8px;gap:8px}
.scene-speech .record-draft br{display:none}
.scene-speech .record-draft strong{display:none}
.scene-speech .result-label{font-size:11px}
.scene-speech .speech-result{padding-top:7px;gap:10px}
.scene-speech .speech-result .mini-chart{height:100%;min-height:0}
@media(max-width:1500px){
  .scene-speech .other-panel-body{gap:6px}
  .scene-speech .record-draft{padding:5px 8px}
}

.scene-prediction .other-panel-body{gap:9px}
.forecast-name{font-size:12px;line-height:1.6}
.forecast-legend{font-size:11px;line-height:1.5;gap:13px}
.forecast-axis-row{font-size:11px;line-height:15px;height:15px}

.vision-inspection .v18-panel h3{line-height:1.5}
.vision-inspection .v18-status{line-height:1.5}
.vision-inspection .v18-detail figcaption,.vision-inspection .v18-edge figcaption{line-height:1.5}

.language-scene-layer .depth-panel-right .route.internal{display:none}
.language-plan-v70 h4{line-height:1.4;margin-bottom:5px}
.language-plan-v70 p{line-height:1.5}
.language-panel-heading{line-height:1.5}

@media(min-width:1600px){
  .scene-speech .other-panel-body,.scene-speech .speech-query{font-size:14px}
  .scene-speech .transcript{gap:12px}
  .scene-speech .record-draft,.scene-speech .transcript b{font-size:12px}
  .scene-simulation .sim-current strong{font-size:17px}
  .scene-simulation .sim-current p{font-size:14px}
  .scene-simulation .sim-result-lines,.scene-simulation .sim-result-lines b{font-size:12px}
  .scene-simulation .sim-sequence li{font-size:12px}
  .forecast-name{font-size:14px}
}

/* A retrieved equipment file replaces the speech scene's duplicate chart. */
.scene-speech .speech-file-card{display:flex;align-items:center;gap:10px;width:100%;min-width:0;padding:6px 10px;border:1px solid #a9c9db;border-radius:5px;background:linear-gradient(115deg,#f4fbffdd,#daedf7c9);box-sizing:border-box}
.speech-file-icon{position:relative;flex:none;width:23px;height:29px;border:1.5px solid #5799bc;border-radius:3px;background:#eef9ff}
.speech-file-icon::before{content:"";position:absolute;left:5px;right:5px;top:9px;height:1px;background:#80b3cc;box-shadow:0 5px #80b3cc,0 10px #80b3cc}
.speech-file-copy{flex:1;min-width:0}
.speech-file-title{display:flex;align-items:baseline;gap:8px;white-space:nowrap;color:#315c75}
.speech-file-title strong{font-size:14px;font-weight:600}
.speech-file-title>span{font-size:11px;color:#64869b}
.scene-speech .speech-file-copy p{margin:4px 0 0;font-size:11px;line-height:1.3;color:#608197;white-space:nowrap}
.speech-file-check{flex:none;color:#338eb0;font-size:19px}
@media(max-width:1400px){.scene-speech .speech-file-card{gap:8px;padding:5px 8px}.speech-file-title strong{font-size:13px}.scene-speech .speech-file-copy p{font-size:10px}}

.scene-speech .other-panel{transform-style:flat}


/* source: assets/hanhai-runtime/language-pulse-v74.css */
/* Approved v92 blue-white energy material, now shared by both connections. */
.hanhai-hero .language-scene-layer .route.input-route,
.hanhai-hero .language-scene-layer .route.output-route {
 stroke:url(#energy-link-v93);stroke-width:3.3;stroke-linecap:round;
 filter:drop-shadow(0 0 2px #4cbcff99) drop-shadow(0 0 5px #6fd1ff44);
}
.language-scene-layer .route-highlight {
 fill:none;stroke-width:3.3;stroke-linecap:round;stroke-dasharray:none;
 opacity:0;pointer-events:none;filter:blur(.45px);
}
.hanhai-hero .language-scene-layer .port.input-port,
.hanhai-hero .language-scene-layer .port.output-port {
 r:2.8px;fill:#d2f4ff;stroke:none;
 filter:drop-shadow(0 0 2px #39b7f0) drop-shadow(0 0 4px #79d7ff88);
}
.language-scene-layer .flow-pulse {display:none!important}


/* source: assets/hanhai-runtime/panel-refinements-v75.css */
/* Four requested refinements; outer panel geometry stays unchanged. */
.scene-speech .v18-right .other-panel-body{gap:8px}
.scene-speech .call-heading{display:flex;font-size:11px;line-height:1.5;flex:none}
.scene-speech .transcript{flex:1;min-height:0;grid-template-rows:1fr 1fr;align-items:center;gap:6px}
.scene-speech .transcript p{line-height:1.6}
.scene-speech .record-draft{flex:none;margin-top:0;padding:5px 8px;line-height:1.5}
.scene-speech .record-draft br{display:initial}
.scene-speech .record-draft strong{display:inline;font-size:inherit;line-height:inherit}

.scene-simulation .sim-sequence{padding:8px 7px 0}
.scene-simulation .sim-sequence li{gap:7px}
.scene-simulation .sim-current{gap:7px}
.scene-simulation .sim-result-lines>span{gap:8px}

.scene-prediction .forecast-history{stroke-width:2.1}
.scene-prediction .forecast-trace{stroke-width:2.1}
.forecast-backdrop{fill:none;stroke:#78a4bd;stroke-width:1.4;opacity:.28;vector-effect:non-scaling-stroke}
.forecast-future-backdrop{stroke-dasharray:4 3}
.forecast-band-backdrop{fill:#8ec9e5;opacity:.1}
.forecast-tracking-point{fill:#eaffff;stroke:#198eb7;stroke-width:1.6;filter:drop-shadow(0 0 2px #51d9ff);vector-effect:non-scaling-stroke}

.language-plan-v70 .plan-output{transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}
.language-plan-v70 .plan-output.is-complete{background:linear-gradient(125deg,#173d82,#2466c4);border-color:#5099ef;box-shadow:0 0 10px #347ad630}
.language-plan-v70 .plan-output.is-complete strong{color:#fff}
.language-plan-v70 .plan-output.is-complete p{color:#e3efff}
.language-plan-v70 .plan-output.is-complete .plan-output-check{color:#fff;opacity:1}
.language-plan-v70 .plan-output.is-complete .plan-document{border-color:#dfedff;background:repeating-linear-gradient(transparent 0 4px,#dfedff88 4px 5px)}
.language-plan-v70 .plan-output.is-complete .plan-document::after{border-color:#dfedff}

@media(max-width:1500px){
  .scene-speech .call-heading{display:none}
  .scene-speech .v18-right .other-panel-body{gap:6px}
  .scene-speech .v18-right .transcript p{font-size:11px;line-height:1.5}
  .scene-speech .record-draft{font-size:11px;line-height:1.5;padding:3px 8px}
  .scene-speech .record-draft strong{font-size:10px;line-height:1.4}
  .scene-simulation .other-panel-body{gap:7px}
}


/* source: assets/hanhai-runtime/scenes-hd-video.css */
.other-scene[data-video-prepared="true"]>.other-scene-environment{display:none}
.hanhai-hero[data-still-scene] .hanhai-hero-stage>.hanhai-table-field{opacity:1!important}
.other-scene[data-video-prepared="true"]{z-index:3}
.scene-hd-equipment{position:absolute;z-index:2;pointer-events:none}
.other-scene[data-video-prepared="true"]>.other-panel-reveal{z-index:3}
.other-scene[data-video-prepared="true"]{transition:opacity .18s ease,visibility 0s .18s}
.other-scene[data-video-prepared="true"].is-shown{transition-delay:0s}


/* source: assets/hanhai-runtime/engine-material-tabs-v83.css */
/* The engine's white housing, graphite inner ring and living blue core. */
.hanhai-hero .capability-navigation{height:84px}
.hanhai-hero .capability-navigation .hanhai-base-modes{
  width:min(660px,80%);height:62px;gap:6px;padding:3px;
  border:0;border-radius:0;background:none;box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.hanhai-hero .capability-navigation .hanhai-base-mode,
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active,
.hanhai-hero .capability-navigation .hanhai-base-mode:hover:not(.is-active):not(:disabled){
  position:relative;isolation:isolate;overflow:hidden;height:50px;line-height:48px;padding:0;
  border:1px solid #c2c8cf;border-radius:20px;
  background:linear-gradient(160deg,#fff 0%,#f6f7f8 33%,#d6d9de 70%,#bdc4cc 100%);
  box-shadow:inset 0 1px 1px #fff,inset 1px 0 1px #fff9,inset 0 -2px 2px #8d97a340,0 2px 1px -1px #8692a0,0 6px 9px -5px #25344266;
  color:#53606a;font-weight:400;text-shadow:0 1px 0 #fff;
  transition:color .2s,filter .2s;
}
.hanhai-hero .capability-navigation .hanhai-base-mode::before,
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active::before{
  content:"";display:block!important;position:absolute;inset:4px;
  width:auto;height:auto;transform:none;border:0;margin:0;border-radius:16px;
  background:linear-gradient(155deg,#c6cdd4,#a7b1bb 50%,#e7ebef 95%);
  box-shadow:0 1px 0 #fffd,inset 0 1px 1px #5e6b7b26;
  pointer-events:none;z-index:0;
}
.hanhai-hero .capability-navigation .hanhai-base-mode::after,
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active::after{
  content:"";display:block!important;position:absolute;inset:5.5px;
  width:auto;height:auto;transform:none;border:0;margin:0;border-radius:14px;
  background:linear-gradient(165deg,#f9fafb,#e8ecf0 78%,#dfe4e9);
  box-shadow:inset 0 1px 2px #77869725,inset 0 -1px 0 #ffffffbf;
  pointer-events:none;z-index:1;
}
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active{color:#effaff;text-shadow:0 1px 2px #00263d;font-weight:500}
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active::before{
  background:linear-gradient(165deg,#5c6a78,#d9e2e9 43%,#52677a 76%,#aec4d4);
}
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active::after{
  background:radial-gradient(ellipse at 50% 110%,#07597f,#072a43 72%);
  box-shadow:inset 0 2px 3px #001927b3,inset 0 -1px 2px #8cdafa66;
}
.hanhai-hero .capability-navigation .hanhai-base-mode>span{position:relative;z-index:4;transform:none}
.hanhai-hero .capability-navigation .tab-engine-core{
  position:absolute;inset:7px;width:calc(100% - 14px);height:calc(100% - 14px);
  z-index:2;border-radius:13px;opacity:0;pointer-events:none;
  filter:brightness(.65) saturate(.8);box-shadow:none;
  mask-image:linear-gradient(90deg,#000b,#0005 30%,#0003 50%,#0005 70%,#000b);
}
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active .tab-engine-core{opacity:.85}
.hanhai-hero .capability-navigation .hanhai-base-mode:hover:not(.is-active):not(:disabled){filter:brightness(1.035);color:#20658a}
.hanhai-hero .capability-navigation .hanhai-base-mode:focus-visible{outline:2px solid #2faedc;outline-offset:3px}
@media(max-width:900px){
  .hanhai-hero .capability-navigation{height:78px}
  .hanhai-hero .capability-navigation .hanhai-base-modes{width:calc(82% - 24px);height:58px;gap:4px;padding:3px}
  .hanhai-hero .capability-navigation .hanhai-base-mode,
  .hanhai-hero .capability-navigation .hanhai-base-mode.is-active,
  .hanhai-hero .capability-navigation .hanhai-base-mode:hover:not(.is-active):not(:disabled){height:46px;line-height:44px;font-size:16px}
}


/* source: assets/hanhai-runtime/table-integrated-tabs-v87.css */
/* A recessed control insert in the desk's front fascia. */
.hanhai-hero .capability-navigation{bottom:22px;height:70px;isolation:isolate}
.hanhai-hero .capability-navigation::before{
  content:"";position:absolute;inset:0 5%;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,#abb5c000,#abb5c024 20%,#abb5c035 50%,#abb5c024 80%,#abb5c000);
  border-top:1px solid #8e9ba322;border-bottom:1px solid #f6f8fa66;
  mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);
}
.hanhai-hero .capability-navigation .hanhai-base-modes{
  position:relative;width:min(678px,80%);height:64px;gap:5px;padding:10px;
  border:0;border-radius:0;background:none;box-shadow:none;
}
.hanhai-hero .capability-navigation .hanhai-base-modes::before{
  display:none!important;
}
.hanhai-hero .capability-navigation .hanhai-base-mode,
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active,
.hanhai-hero .capability-navigation .hanhai-base-mode:hover:not(.is-active):not(:disabled){
  height:42px;line-height:40px;border-radius:9px;border:1px solid #7687978c;
  border-bottom-color:#eef3f6c9;
  background:linear-gradient(180deg,#7e8c9a,#bbc4cc 24%,#d0d7dd 100%);
  box-shadow:inset 0 3px 4px #263b5078,inset 1px 0 2px #4b607435,inset -1px 0 2px #4b607435,0 1px 0 #faffff73;
}
.hanhai-hero .capability-navigation .hanhai-base-mode::before,
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active::before{display:none!important}
.hanhai-hero .capability-navigation .hanhai-base-mode::after,
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active::after{inset:3px 2px 1px;border-radius:6px}
.hanhai-hero .capability-navigation .hanhai-base-mode:not(.is-active)::after{
  background:linear-gradient(180deg,#aebac5,#ccd4db 42%,#d3dbe1);
  box-shadow:inset 0 2px 3px #71819169;
}
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active{
  border-color:#3c687f;border-bottom-color:#a6d9ed;
  box-shadow:inset 0 3px 5px #001c30b3,0 1px 0 #e1f8ff80;
}
.hanhai-hero .capability-navigation .tab-engine-core{
  inset:4px 3px 2px;width:calc(100% - 6px);height:calc(100% - 6px);border-radius:5px;
}
@media(max-width:900px){
  .hanhai-hero .capability-navigation{bottom:20px;height:64px}
  .hanhai-hero .capability-navigation .hanhai-base-modes{width:82%;height:58px;padding:8px;gap:4px}
  .hanhai-hero .capability-navigation .hanhai-base-mode,
  .hanhai-hero .capability-navigation .hanhai-base-mode.is-active,
  .hanhai-hero .capability-navigation .hanhai-base-mode:hover:not(.is-active):not(:disabled){height:40px;line-height:38px}
}


/* source: assets/hanhai-runtime/floating-pad-v89.css */
/* One shallow silver pad, at the original control row's screen position. */
.hanhai-hero .capability-navigation{bottom:0;height:74px;isolation:isolate}
.hanhai-hero .capability-navigation::before{display:none}
.hanhai-hero .capability-navigation .hanhai-base-modes{
  position:relative;display:grid;grid-template-columns:21.4fr 18.8fr 19.6fr 18.8fr 21.4fr;
  width:min(640px,76%);height:52px;padding:0;gap:0;border:0;border-radius:0;
  background:none;box-shadow:none;isolation:isolate;
}
.hanhai-hero .capability-navigation .hanhai-base-modes::before,
.hanhai-hero .capability-navigation .hanhai-base-mode::before,
.hanhai-hero .capability-navigation .hanhai-base-mode::after,
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active::before,
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active::after{display:none!important}
.floating-pad-material{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0;pointer-events:none}
.pad-active-zone{opacity:0;transition:opacity .22s ease}
.pad-active-zone.is-selected{opacity:1}
.hanhai-hero .capability-navigation .hanhai-base-mode,
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active,
.hanhai-hero .capability-navigation .hanhai-base-mode:hover:not(.is-active):not(:disabled){
  position:relative;z-index:1;align-self:start;height:42px;min-height:0;line-height:42px;
  padding:0;border:0;border-radius:4px;background:none;box-shadow:none;
  color:#4e5962;font-family:"WD-XL Lubrifont TC","Microsoft YaHei",sans-serif;
  font-size:21px;font-weight:400;letter-spacing:.06em;
  text-shadow:none;filter:none;overflow:visible;
  transition:color .2s;
}
.hanhai-hero .capability-navigation .hanhai-base-mode.is-active{color:#edfaff;text-shadow:none;font-weight:400}
.hanhai-hero .capability-navigation .hanhai-base-mode:hover:not(.is-active):not(:disabled){color:#137a9a}
.hanhai-hero .capability-navigation .hanhai-base-mode>span{
  display:inline-block;position:absolute;left:50%;top:var(--pad-label-y,20px);
  transform:translate(calc(-50% + var(--pad-label-x,0px)),-50%) skewX(-8deg) scaleY(.86);
  transform-origin:center;line-height:1;white-space:nowrap;z-index:2;
}
.hanhai-hero .capability-navigation .tab-engine-core{display:none}
.hanhai-hero .capability-navigation .hanhai-base-mode:focus-visible{outline:1.5px solid #239fc9;outline-offset:-5px}
@media(max-width:900px){
  .hanhai-hero .capability-navigation{height:68px;bottom:0}
  .hanhai-hero .capability-navigation .hanhai-base-modes{width:78%;height:48px;padding:0;gap:0}
  .hanhai-hero .capability-navigation .hanhai-base-mode,
  .hanhai-hero .capability-navigation .hanhai-base-mode.is-active,
  .hanhai-hero .capability-navigation .hanhai-base-mode:hover:not(.is-active):not(:disabled){height:39px;line-height:39px;font-size:19px}
}


/* source: assets/hanhai-runtime/speech-siri-v100.css */
.scene-speech .v18-left .other-panel-body{justify-content:center;gap:0;padding-bottom:5px;overflow:hidden}
.scene-speech .v18-left .speech-siri-wave{position:relative;flex:1;width:100%;min-height:54px;isolation:isolate;opacity:1}
.scene-speech .v18-left .speech-query{flex:none;text-align:center;margin:0 0 6px;line-height:1.7;letter-spacing:.035em;color:#365f76}

/* Give the transcript panel a consistent inset from its glass edge. */
.scene-speech .v18-right.other-panel{box-sizing:border-box;padding:clamp(10px,.9vw,14px) clamp(14px,1.2vw,20px)}

.scene-speech .v18-right.other-panel{height:auto;min-height:150px}
.scene-speech .v18-right .other-panel-body{flex:none;gap:6px}
.scene-speech .v18-right .transcript{flex:none;grid-template-rows:auto auto;gap:6px}

.scene-speech .v18-left>header{margin-inline:6px}

.scene-simulation .v18-right.other-panel{box-sizing:border-box;padding:clamp(12px,.9vw,16px) clamp(16px,1.2vw,22px);height:auto;min-height:180px}
.scene-simulation .v18-right .other-panel-body{gap:10px;flex:none}
.scene-simulation .v18-right .sim-current{flex:none;min-height:54px;gap:6px}
.scene-simulation .v18-right .sim-sequence{padding:5px 0 0}
.scene-simulation .v18-right .sim-result-lines{padding-top:8px}

/* Compact query hierarchy: request first, flowing signal directly beneath. */
.scene-speech .v18-left.other-panel{box-sizing:border-box;height:auto;min-height:150px;padding:14px 18px;gap:7px}
.scene-speech .v18-left>header{margin:0}
.scene-speech .v18-left .other-panel-body{flex:none;gap:3px;padding:0}
.scene-speech .v18-left .speech-query{order:-1;text-align:left;margin:2px 0 0;font-size:13px;line-height:1.6;letter-spacing:.015em;color:#41677d}
.scene-speech .v18-left .speech-siri-wave{height:76px;min-height:0;flex:none}

/* Gather the fluid voice mark and its request into one centered unit. */
.scene-speech .v18-left .speech-query{order:1;text-align:center;margin:0 0 2px;font-size:12px;line-height:1.65}
.scene-speech .v18-left .speech-siri-wave{height:88px}
.scene-speech .v18-left .other-panel-body{gap:0}

/* Restore the original animated vertical bars, keeping the simplified contents. */
.scene-speech .v18-left .other-panel-body{flex:1;gap:12px;justify-content:center;padding:12px 0 6px}
.scene-speech .v18-left .speech-query{order:0;margin:0;text-align:center}
.scene-speech .v18-left.other-panel{min-height:150px}

/* Preserve the measured 150px panel while filling it with useful query context. */
.scene-speech .v18-left.other-panel{height:150px;min-height:150px}
.scene-speech .v18-left>header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.speech-listening{display:inline-flex;align-items:center;gap:5px;color:#54899e;font-size:10px;line-height:1;white-space:nowrap;font-weight:400}
.speech-listening i{width:4px;height:4px;border-radius:50%;background:#28a9bb;box-shadow:0 0 4px #32b8cd40}
.scene-speech .v18-left .other-panel-body{padding:0;gap:5px;justify-content:center}
.scene-speech .v18-left.other-panel .speech-wave{height:42px;width:100%;stroke-width:3.2;flex:none}
.scene-speech .v18-left .speech-query{font-size:12px;line-height:1.6;margin:0}
.speech-query-scopes{display:flex;align-items:center;justify-content:center;gap:6px;flex:none}
.speech-query-scopes>span{padding:2px 7px;border:1px solid #aacbd94d;border-radius:4px;background:#e1eff566;color:#648293;font-size:10px;line-height:1.2;white-space:nowrap}

.hanhai-hero .language-scene-layer .route.input-route,.hanhai-hero .language-scene-layer .route.output-route{filter:drop-shadow(0 1px 1px #244b6926)}

.hanhai-hero .language-scene-layer .route.input-route,.hanhai-hero .language-scene-layer .route.output-route{stroke-width:5}
.hanhai-hero .language-scene-layer .route-highlight{stroke-width:4.6;filter:drop-shadow(0 0 2px #77d4ed66)}

/* Pair the chart explanations as inset notes with equal visual weight. */
.scene-prediction .prediction89-coverage{box-sizing:border-box;display:flex;align-items:center;flex:none;min-height:52px;margin:0 5px 4px;padding:8px 12px;border-top:0;border-left:2px solid #6b9fb6;border-radius:0 5px 5px 0;background:linear-gradient(90deg,#dcebf380,#e7f1f62e);font-size:clamp(11px,.76vw,13px);line-height:1.65;color:#53768b;text-wrap:balance}

.scene-speech .other-panel-reveal{translate:0 22px}

/* Equal outer geometry for the paired speech panels. */
.scene-speech .v18-left.other-panel,.scene-speech .v18-right.other-panel{box-sizing:border-box;height:150px;min-height:150px;padding:10px 18px;gap:7px}
.scene-speech .v18-right .other-panel-body{gap:4px}
.scene-speech .v18-right .call-heading{font-size:10px;line-height:1.5}
.scene-speech .v18-right .transcript{gap:4px}
.scene-speech .v18-right .transcript p{line-height:1.5}
.scene-speech .v18-right .record-draft{padding:3px 8px;font-size:10px;line-height:1.4}
.scene-speech .v18-right .record-draft strong{font-size:10px;line-height:1.4}

/* Use the same settled shell/core baseline as speech, prediction and simulation. */
.hanhai-hero[data-mode="vision"]:not([data-phase="initial"]) .hanhai-engine-shell-motion{top:1.5%}
.hanhai-hero[data-mode="vision"]:not([data-phase="initial"]) .hanhai-core-anchor{top:27.5%}


/* source: assets/hanhai-runtime/prediction-range-v87.css */
/* One continuous history-to-forecast chart per prediction topic. */
.scene-prediction.prediction-story-v86 .forecast-plot{width:100%;padding-top:4px}
.scene-prediction.prediction-story-v86 .forecast-chart{width:100%}
.scene-prediction.prediction-story-v86 .forecast-history{stroke:#7795a8;stroke-width:2}
.scene-prediction.prediction-story-v86 .forecast-trace{stroke:#1686bb;stroke-width:2.4;stroke-dasharray:5 4}
.scene-prediction.prediction-story-v86 .forecast-now{stroke:#95b4c7}
.scene-prediction.prediction-story-v86 .forecast-legend{gap:14px;margin-top:6px}
.scene-prediction.prediction-story-v86 .forecast-envelope{display:none}
.scene-prediction.prediction-story-v86 .forecast-axis-row{margin-top:5px}

.prediction-story-v86 .key-history{background:#7795a8}.prediction-story-v86 .key-future{border-color:#1686bb}

/* Match the four prediction groups in the product section below. */
.scene-prediction.prediction-range-v87 .other-panel{height:27%;min-height:235px}
.scene-prediction.prediction-range-v87 .other-panel-body{height:100%;gap:12px}
.scene-prediction.prediction-range-v87 .forecast-plot{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:0;min-height:0}
.scene-prediction.prediction-range-v87 .forecast-plot h3{margin:0;line-height:1.3;font-size:clamp(14px,.98vw,19px);flex:none}
.scene-prediction.prediction-range-v87 .forecast-chart{flex:1;min-height:0;height:0}
.scene-prediction.prediction-range-v87 .forecast-legend{margin-top:0}

.prediction89-coverage{flex:none;color:#486d84;font-size:clamp(10px,.73vw,13px);line-height:1.5;padding-top:9px;border-top:1px solid #cee0eb;white-space:normal;min-height:3em}
.prediction-range-v87 .forecast-plot h3{display:flex;align-items:baseline;justify-content:space-between;gap:7px}
.prediction89-reference{font-size:clamp(8px,.62vw,11px);font-weight:400;color:#67889c;text-decoration:none;white-space:nowrap}
.prediction89-reference:hover{text-decoration:underline}


/* source: assets/hanhai-runtime/scene-background-light-v190.css */
/* Lift only the static room background, preserving shell, core and foreground contrast. */
.hanhai-hero .hanhai-hero-scene{filter:url("/assets/hanhai-runtime/scene-tone-v194.svg#wall-light")}

/* Wall lettering sits above the room image and below every foreground scene. */
#hero.hanhai-hero .hanhai-wall-brand{z-index:0}

/* Cool silver-blue walls with a centered light pool, clear of the side strips. */
.hanhai-room-light{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;background:radial-gradient(ellipse 37% 58% at 50% 42%,#fff 0%,rgba(255,255,255,.99) 30%,rgba(255,255,255,.78) 53%,rgba(255,255,255,.25) 76%,rgba(255,255,255,0) 100%)}


/* source: assets/hanhai-runtime/model-interaction-v101.css */
.model-interaction-links{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none;overflow:visible}
.model-interaction-links path{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
.interaction-track{stroke:#497e97;stroke-width:1.15;opacity:.26}
.interaction-flow{stroke:#31b4df;stroke-width:3;filter:drop-shadow(0 0 3px #68d7f8)}
.interaction-dot{fill:#e4fbff;stroke:#299bc6;stroke-width:1.5;filter:drop-shadow(0 0 4px #4abce8)}
.hanhai-hero[data-interaction-mode] .hanhai-core-anchor::after{content:"";position:absolute;inset:-8px;border:1.5px solid #60c6f2;border-radius:50%;box-shadow:0 0 15px #45b8ef80,inset 0 0 10px #6cd6ff40;opacity:var(--interaction-energy,0);pointer-events:none}
.interaction-sample{fill:#defaff;stroke:#2c9dca;stroke-width:1.2;filter:drop-shadow(0 0 2px #3faede)}
.scene-prediction .forecast-tracking-point{fill:#d9f9ff;stroke:#248fb5;stroke-width:1.3}
.scene-simulation .sim-flow-alternate{transition:none}
.scene-simulation[data-sim-stage="1"] .sim-fault-halo{stroke:#c3903c;fill:#e5b65a25}
.scene-simulation[data-sim-stage="1"] .sim-fault-node{stroke:#bc8934;fill:#fff0d2}
.hanhai-hero[data-interaction-mode="simulation"] .hanhai-core-anchor::after{display:none}

