  :root{
    --bg:#f5f7f9; --surface:#ffffff; --surface-2:#eef1f5;
    --fg:#131822; --muted:#596273; --line:#e0e5ec;
    --accent:#0c7b84; --accent-ink:#ffffff; --signal:#b5602a;
    --ok:#1f7a44; --warn:#a86200; --bad:#b3261e;
    --ok-bg:#e4f4ea; --warn-bg:#fbefd9; --bad-bg:#fbe5e3; --info-bg:#e1f1f2;
    --note-bg:#fff6c8; --note-fg:#5a4a00; --note-line:#e8d679;
    --admin:#2a3446; --admin-ink:#e9edf3;
    --display:"Sora",-apple-system,"Segoe UI",sans-serif;
    --body:"Hanken Grotesk","Noto Sans SC",-apple-system,"Segoe UI",sans-serif;
    --cjk:"Noto Sans SC",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
    --mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",monospace;
  }
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
    --bg:#0a0d12; --surface:#121824; --surface-2:#0f141e;
    --fg:#e9edf3; --muted:#8894a6; --line:#222c3b;
    --accent:#34d3c2; --accent-ink:#06211f; --signal:#e39254;
    --ok:#6fd49a; --warn:#f0b35a; --bad:#ff8a80;
    --ok-bg:#12291d; --warn-bg:#2e2310; --bad-bg:#331614; --info-bg:#0e2a2b;
    --note-bg:#2e2a10; --note-fg:#f1e3a0; --note-line:#5c5220;
    --admin:#1a2232; --admin-ink:#e9edf3;
    color-scheme:dark;
  }}
  :root[data-theme="dark"]{
    --bg:#0a0d12; --surface:#121824; --surface-2:#0f141e;
    --fg:#e9edf3; --muted:#8894a6; --line:#222c3b;
    --accent:#34d3c2; --accent-ink:#06211f; --signal:#e39254;
    --ok:#6fd49a; --warn:#f0b35a; --bad:#ff8a80;
    --ok-bg:#12291d; --warn-bg:#2e2310; --bad-bg:#331614; --info-bg:#0e2a2b;
    --note-bg:#2e2a10; --note-fg:#f1e3a0; --note-line:#5c5220;
    --admin:#1a2232; --admin-ink:#e9edf3;
    color-scheme:dark;
  }
  *{box-sizing:border-box}
  body{background:var(--bg);color:var(--fg);font-family:var(--body);line-height:1.55;font-size:15px;-webkit-font-smoothing:antialiased}
  h1,h2,h3,h4{font-family:var(--display);margin:0;line-height:1.15;text-wrap:balance;letter-spacing:-.01em}
  .zh h1,.zh h2,.zh h3{font-family:var(--cjk);letter-spacing:0}
  p{margin:0}
  a{color:var(--accent)}
  .mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
  .wrap{max-width:1180px;margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

  /* public site */
  .site{background:var(--bg)}
  .site .nav{display:flex;align-items:center;gap:1rem;padding:.8rem 1.2rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
  .brand{display:flex;align-items:center;gap:.5rem;font-family:var(--display);font-weight:700}
  .brand svg{width:22px;height:22px}
  .brand span.sub{font-weight:500;color:var(--accent)}
  .site .nav .links{display:flex;gap:1rem;margin-left:auto;font-size:.86rem;color:var(--muted);flex-wrap:wrap}
  .site .nav .links a{color:inherit;text-decoration:none;cursor:pointer}
  .lang{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;font-family:var(--mono);font-size:.72rem}
  .lang button{appearance:none;border:0;background:transparent;color:var(--muted);padding:.35em .6em;cursor:pointer;font:inherit}
  .lang button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
  .btn{display:inline-flex;align-items:center;gap:.4em;font-family:var(--display);font-weight:600;font-size:.9rem;padding:.65em 1.1em;border-radius:9px;border:1px solid transparent;cursor:pointer;text-decoration:none}
  .zh .btn{font-family:var(--cjk)}
  .btn-primary{background:var(--accent);color:var(--accent-ink)}
  .btn-ghost{background:transparent;border-color:var(--line);color:var(--fg)}
  .btn-dark{background:var(--admin);color:var(--admin-ink)}
  .btn-sm{font-size:.8rem;padding:.45em .8em}
  .eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
  .zh .eyebrow{font-family:var(--cjk);letter-spacing:.05em}
  .sec{padding:2.4rem 1.4rem;border-bottom:1px solid var(--line)}
  .sec:last-child{border-bottom:0}
  .sec h2{font-size:clamp(1.35rem,3vw,1.8rem);margin-top:.35rem}
  .sec .lead{color:var(--muted);margin-top:.6rem;max-width:62ch}
  .hero{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center}
  .hero>*{min-width:0}
  @media(max-width:820px){.hero{grid-template-columns:1fr}}
  .hero h1{font-size:clamp(1.8rem,4.6vw,2.9rem);font-weight:700}
  .hero h1 em{font-style:normal;color:var(--accent)}
  .hero .acts{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.3rem}
  .chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:1.2rem}
  .chip{font-family:var(--mono);font-size:.7rem;border:1px solid var(--line);border-radius:6px;padding:.25em .55em;color:var(--muted)}
  .zh .chip{font-family:var(--cjk)}
  /* genome coverage visual: chip-array vs WGS */
  .cov{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.1rem}
  .cov .row{display:grid;grid-template-columns:7.5rem 1fr;gap:.7rem;align-items:center;margin-top:.8rem}
  .cov .row:first-of-type{margin-top:.2rem}
  .cov .lab{font-size:.78rem;color:var(--muted)}
  .cov canvas{width:100%;height:34px;display:block;border-radius:6px;background:var(--surface-2)}
  .cov .foot{font-size:.74rem;color:var(--muted);margin-top:.8rem;font-family:var(--mono)}
  .steps4{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-top:1.4rem}
  @media(max-width:820px){.steps4{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:460px){.steps4{grid-template-columns:1fr}}
  .step{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem}
  .step .n{font-family:var(--mono);font-size:.72rem;color:var(--accent)}
  .step h3{font-size:1rem;margin-top:.3rem}
  .step p{font-size:.85rem;color:var(--muted);margin-top:.35rem}
  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:1.2rem}
  @media(max-width:820px){.grid3{grid-template-columns:1fr}}
  .pill3{padding:1rem 0;border-top:2px solid var(--accent)}
  .pill3 h3{font-size:.98rem}
  .pill3 p{font-size:.85rem;color:var(--muted);margin-top:.35rem}
  .disclaim{background:var(--surface-2);border-radius:10px;padding:.9rem 1rem;font-size:.82rem;color:var(--muted);margin-top:1.2rem}
  .wl{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem;max-width:560px}
  .wl input,.wl select{flex:1 1 200px}
  .rep5{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem;margin-top:1.2rem}
  @media(max-width:900px){.rep5{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:460px){.rep5{grid-template-columns:1fr}}
  .rep5>div{padding:1rem 0;border-top:2px solid var(--accent);min-width:0}
  .rep5 h3{font-size:.98rem}
  .rep5 p{font-size:.84rem;color:var(--muted);margin-top:.35rem}
  .faq details{border-bottom:1px solid var(--line);padding:.75rem 0}
  .faq summary{cursor:pointer;font-weight:600}
  .faq p{color:var(--muted);margin-top:.4rem;font-size:.9rem}
  .site footer{padding:1.2rem 1.4rem;font-size:.75rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;background:var(--surface-2)}

  /* forms */
  label.f{display:grid;gap:.3rem;font-size:.84rem;font-weight:500}
  input,select,textarea{font:inherit;font-size:.9rem;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.55rem .7rem;width:100%;min-width:0}
  input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
  input.code{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase}
  .formcard{max-width:640px;margin-inline:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.4rem}
  .formcard h2{font-size:1.35rem}
  .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1rem}
  .fgrid .full{grid-column:1/-1}
  @media(max-width:520px){.fgrid{grid-template-columns:1fr}}
  .checks{display:flex;flex-wrap:wrap;gap:.35rem}
  .checks label{display:inline-flex;gap:.35rem;align-items:center;font-size:.8rem;border:1px solid var(--line);border-radius:7px;padding:.3rem .55rem;font-weight:400;cursor:pointer}
  .checks input{width:auto}
  .consent{display:grid;gap:.5rem;margin-top:1rem;font-size:.82rem;color:var(--muted)}
  .consent label{display:flex;gap:.5rem;align-items:flex-start}
  .consent input{width:auto;margin-top:.2rem}
  .stepper{display:flex;gap:.3rem;margin-bottom:1rem}
  .stepper span{flex:1;height:4px;border-radius:2px;background:var(--line)}
  .stepper span.on{background:var(--accent)}
  .ok-box{background:var(--ok-bg);color:var(--ok);border-radius:10px;padding:.9rem 1rem;margin-top:1rem;font-size:.88rem}

  /* tracker */
  .tl{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;gap:0}
  .tl li{display:grid;grid-template-columns:28px 1fr auto;gap:.7rem;align-items:start;padding-bottom:1rem;position:relative}
  .tl li::before{content:"";position:absolute;left:13px;top:24px;bottom:0;width:2px;background:var(--line)}
  .tl li:last-child::before{display:none}
  .tl .b{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);background:var(--surface);display:grid;place-items:center;font-size:.72rem;font-family:var(--mono);color:var(--muted);z-index:1}
  .tl li.done .b{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
  .tl li.done::before{background:var(--accent)}
  .tl li.now .b{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 4px var(--info-bg)}
  .tl .h{font-weight:600;font-size:.92rem}
  .tl .d{font-size:.8rem;color:var(--muted)}
  .tl .w{font-family:var(--mono);font-size:.72rem;color:var(--muted)}

  /* phone mockups (activation + tracking happen on the customer's phone) */
  .phones{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:1.5rem;padding-block:.5rem 1rem}
  .mail{width:min(440px,100%);background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:.86rem}
  .mail-cap{font-family:var(--cjk);font-size:.74rem;background:var(--note-bg);color:var(--note-fg);padding:.4rem .8rem;border-bottom:1px dashed var(--note-line)}
  .mail-head{padding:.7rem .9rem;border-bottom:1px solid var(--line);display:grid;gap:.15rem;font-size:.78rem;color:var(--muted)}
  .mail-head .mk{display:inline-block;width:2.6rem;font-family:var(--mono);font-size:.7rem}
  .mail-head .subj{color:var(--fg);font-weight:600;font-size:.92rem;margin-top:.3rem}
  .mail-body{padding:1rem .9rem 1.1rem;display:grid;gap:.7rem}
  .mail-body ol{margin:0;padding-left:1.2rem;display:grid;gap:.25rem}
  .mail-id{border:1px dashed var(--accent);border-radius:10px;padding:.7rem .9rem;display:grid;gap:.2rem}
  .mail-id .k{font-size:.74rem;color:var(--muted)}
  .mail-id .v{font-size:1.4rem;font-weight:500;color:var(--accent);letter-spacing:.05em}
  .mbtn{justify-self:start;background:var(--accent);color:var(--accent-ink);border-radius:8px;padding:.5rem 1rem;font-weight:600}
  .mfine{font-size:.72rem;color:var(--muted)}
  .phone{width:min(380px,100%);border:10px solid var(--admin);border-radius:34px;background:var(--bg);overflow:hidden;box-shadow:0 30px 60px -36px rgba(0,0,0,.55)}
  .pbar{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem .9rem;background:var(--surface-2);border-bottom:1px solid var(--line);font-size:.72rem;color:var(--muted)}
  .purl{font-family:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .pbody{padding:1.1rem 1rem 1.3rem;min-height:600px;display:block}
  .pbody>div{display:grid;gap:.8rem}
  .pbody>div[hidden]{display:none}
  .ph2{font-size:1.3rem}
  .pm{font-size:.86rem;color:var(--muted)}
  .pm.small{font-size:.76rem}
  .wide{width:100%;justify-content:center}
  .btn:disabled{opacity:.45;cursor:default}
  .fgrid.one{grid-template-columns:1fr;margin-top:0}
  .kitlist{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
  .kitlist li{display:flex;gap:.6rem;align-items:center;font-size:.88rem;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:.55rem .7rem}
  .kitlist li::before{content:"✓";color:var(--ok);font-weight:700}
  .viewfinder{position:relative;height:250px;border-radius:14px;overflow:hidden;background:linear-gradient(160deg,#20262f,#0b0e13)}
  .vf-tube{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-4deg);background:#f4f6f8;border-radius:8px;padding:.45rem .6rem .35rem;width:62%}
  .vf-tube canvas{width:100%;height:34px;display:block}
  .vf-txt{font-size:.66rem;color:#131822;text-align:center;margin-top:.15rem}
  .vf-frame{position:absolute;inset:26% 10%;border:2px solid rgba(255,255,255,.75);border-radius:10px}
  .viewfinder.hit .vf-frame{border-color:#34d3c2;box-shadow:0 0 0 999px rgba(0,0,0,.25)}
  .vf-line{position:absolute;left:12%;right:12%;height:2px;background:#ff5a4e;top:50%;animation:scan 1.8s ease-in-out infinite}
  .viewfinder.hit .vf-line{display:none}
  @keyframes scan{0%,100%{top:30%}50%{top:68%}}
  .vf-hint{position:absolute;left:0;right:0;bottom:.6rem;text-align:center;color:#e9edf3;font-size:.76rem}
  .manual summary{cursor:pointer;font-size:.85rem;color:var(--accent)}
  .manual input{margin-top:.5rem}
  .err-box{background:var(--bad-bg);color:var(--bad);border-radius:10px;padding:.7rem .9rem;font-size:.84rem}
  .ok-box{margin-top:0}
  .captcha{display:flex;align-items:center;gap:.7rem;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:.6rem .7rem;font-size:.84rem}
  .captcha .cf{margin-left:auto;font-size:.6rem;color:var(--muted);text-align:right;line-height:1.2;font-family:var(--mono)}
  .cbx{width:22px;height:22px;border:2px solid var(--muted);border-radius:4px;cursor:pointer;display:grid;place-items:center;flex:none}
  .cbx[aria-checked="true"]{border-color:var(--ok);background:var(--ok)}
  .cbx[aria-checked="true"]::after{content:"✓";color:var(--surface);font-weight:700;font-size:.8rem}
  .otp{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem}
  .otp input{text-align:center;font-family:var(--mono);font-size:1.3rem;padding:.55rem 0}
  .howto{margin:0;padding-left:1.2rem;display:grid;gap:.4rem;font-size:.86rem}
  .inrow{display:flex;gap:.4rem}
  .inrow input{flex:1}
  .sess{display:flex;justify-content:space-between;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:.45rem .5rem .45rem .8rem;font-size:.82rem}
  .phone .tl{margin-top:0}
  section[data-view="adm-dash"] .frame,section[data-view="adm-dash"] .notes .note{display:none}
  .newadm{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;background:var(--surface);border:2px solid var(--accent);border-radius:14px;padding:1.4rem}
  .newadm b{font-size:1.15rem;font-family:var(--cjk)}
  .newadm p{color:var(--muted);margin-top:.4rem;font-size:.9rem;max-width:60ch}
  .lang.sm{font-size:.66rem;flex:none}
  .lang.sm button{padding:.28em .5em}
  .capt{display:grid;gap:.3rem}
  .caprow{display:flex;gap:.4rem;align-items:stretch}
  .caprow input{flex:1;min-width:0;font-size:1.05rem}
  .capimg{width:120px;height:44px;border-radius:8px;border:1px solid var(--line);cursor:pointer;flex:none}
  .capref{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:8px;width:40px;font-size:1.1rem;cursor:pointer;flex:none}
  .pbody>div.stepper{display:flex;gap:.3rem;margin-bottom:1rem}
  .idcard{background:var(--ok-bg);border-radius:12px;padding:.9rem 1rem;display:grid;gap:.35rem;justify-items:start}
  .idcard .k{font-size:.78rem;color:var(--muted)}
  .idcard .v{font-size:1.35rem;font-weight:500;color:var(--ok);letter-spacing:.04em}
  .consent input{flex:none}
  .backrow{display:flex;justify-content:space-between;align-items:center;margin-bottom:-.2rem}
  .back{appearance:none;border:0;background:transparent;color:var(--accent);font:inherit;font-size:.86rem;padding:.2rem 0;cursor:pointer;display:inline-flex;gap:.25rem;align-items:center}
  .back:hover{text-decoration:underline}
  .backrow .cnt{font-family:var(--mono);font-size:.72rem;color:var(--muted)}

  /* ===== Genomics site v2: tropical night hero + leaf/clay accents ===== */
  :root{ --night:#06201c; --night-2:#0b2e28; --night-ink:#e6f2ee; --night-mute:#8fb3aa; --leaf:#2f9e6e; --leaf-ink:#ffffff; --clay:#c8743f; --sea:#34d3c2; --paper:#f2f6f2 }
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]){ --leaf:#4cc38a; --leaf-ink:#06201c; --clay:#e39254; --paper:#0d1512 }}
  :root[data-theme="dark"]{ --leaf:#4cc38a; --leaf-ink:#06201c; --clay:#e39254; --paper:#0d1512 }
  .g2{background:var(--paper)}
  .g2nav{background:var(--night);color:var(--night-ink);border-bottom-color:rgba(255,255,255,.08)}
  .g2nav .links{color:var(--night-mute)}
  .g2nav .lang{border-color:rgba(255,255,255,.18)}
  .g2nav .lang button{color:var(--night-mute)}
  .g2nav .lang button[aria-pressed="true"]{background:var(--sea);color:var(--night)}
  .g2nav .brand .sub{color:var(--sea)}
  .btn-leaf{background:var(--leaf);color:var(--leaf-ink)}
  .btn-line{background:transparent;border-color:rgba(255,255,255,.28);color:var(--night-ink)}
  .ghero{background:radial-gradient(120% 90% at 85% 10%,#0f3d35 0%,var(--night) 55%);color:var(--night-ink);padding:2.6rem 1.4rem 2.2rem;overflow:hidden}
  .ghero-in{display:grid;grid-template-columns:1fr 1.05fr;gap:2rem;align-items:center}
  @media(max-width:860px){.ghero-in{grid-template-columns:1fr}}
  .ghero-in>*{min-width:0}
  .gk{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sea)}
  .zh .gk{font-family:var(--cjk);letter-spacing:.06em}
  .ghero h1{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:700;margin-top:.7rem;line-height:1.12}
  .ghero h1 em{font-style:normal;color:var(--sea)}
  .ghero p{color:var(--night-mute);margin-top:1rem;max-width:44ch;font-size:1.02rem}
  .ghero .acts{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.4rem}
  .karyo{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:.8rem}
  .karyo canvas{width:100%;height:auto;display:block}
  .kmeta{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:.5rem;margin-top:.6rem;border-top:1px solid rgba(255,255,255,.08);padding-top:.6rem}
  .kmeta .kl{display:block;font-size:.68rem;color:var(--night-mute)}
  .kmeta .kv{font-size:1rem;color:var(--night-ink)}
  .stories{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:1.3rem}
  @media(max-width:860px){.stories{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:520px){.stories{grid-template-columns:1fr}}
  .story{appearance:none;text-align:left;font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem 1rem .9rem;cursor:pointer;display:grid;gap:.6rem;align-content:start;min-height:9.5rem;transition:border-color .2s,transform .2s}
  .story:hover{border-color:var(--leaf);transform:translateY(-2px)}
  .story .sq{font-weight:600;font-size:.98rem;line-height:1.35}
  .story .sa{display:none;font-size:.86rem;color:var(--muted)}
  .story.open .sa{display:block}
  .story.open{border-color:var(--leaf);background:color-mix(in srgb,var(--leaf) 7%,var(--surface))}
  .story .sg{font-size:.68rem;color:var(--clay);margin-top:auto}
  .hint2{font-size:.78rem;color:var(--muted);margin-top:.8rem}
  .groots{background:var(--surface)}
  .roots-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:1.6rem;align-items:center}
  @media(max-width:860px){.roots-grid{grid-template-columns:1fr}}
  .roots-grid>*{min-width:0}
  .mapbox{border-radius:14px;background:var(--paper);border:1px solid var(--line);overflow:hidden}
  .mapbox svg{display:block;width:100%;height:auto}
  .g2cov{margin-top:1.2rem}
  .pipe{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}
  @media(max-width:760px){.pipe{grid-template-columns:1fr 1fr}}
  .pipe li{padding:1rem;display:grid;gap:.3rem;border-right:1px solid var(--line);font-size:.86rem;color:var(--muted);align-content:start}
  .pipe li:last-child{border-right:0}
  .pipe b{color:var(--fg);font-family:var(--display);font-size:1rem}
  .zh .pipe b{font-family:var(--cjk)}
  .pipe .pn{color:var(--sea);font-size:.72rem}
  .geco{background:color-mix(in srgb,var(--leaf) 9%,var(--paper))}
  .eco3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:1.3rem}
  @media(max-width:760px){.eco3{grid-template-columns:1fr}}
  .eco3 .big{font-size:2.6rem;font-weight:500;color:var(--leaf);line-height:1}
  .eco3 b{display:block;margin-top:.3rem}
  .eco3 p{font-size:.86rem;color:var(--muted);margin-top:.35rem}
  .gwl{background:var(--night);color:var(--night-ink)}
  .gwl .eyebrow{color:var(--sea)}
  .gwl input,.gwl select{background:rgba(255,255,255,.06);color:var(--night-ink);border-color:rgba(255,255,255,.18)}
  .g2 footer{background:var(--night);color:var(--night-mute);border-top:1px solid rgba(255,255,255,.08)}

  .ghero h1.vs s{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:.12em;text-decoration-color:var(--clay);color:var(--night-mute)}
  @media(max-width:960px){.g2nav .links a[data-scroll="g-stories"],.g2nav .links a[data-scroll="g-roots"],.g2nav .links a[data-scroll="g-eco"]{display:none}}
  .gvs{background:var(--night-2);color:var(--night-ink);border-bottom-color:rgba(255,255,255,.08)}
  .vs-nums{display:grid;grid-template-columns:1fr auto 1fr;gap:1.2rem;align-items:center}
  @media(max-width:700px){.vs-nums{grid-template-columns:1fr}.vn-vs{justify-self:start}}
  .vn{padding:1.1rem 1.2rem;border-radius:14px;min-width:0}
  .vn .big{font-size:clamp(3rem,9vw,5.2rem);line-height:1;font-weight:500;letter-spacing:-.03em}
  .vn .big small{font-size:.45em;margin-left:.08em}
  .vn b{display:block;margin-top:.5rem;font-size:1rem}
  .vn p{font-size:.88rem;color:var(--night-mute);margin-top:.3rem}
  .vn p b{display:inline;margin:0;font-size:inherit;color:var(--night-ink)}
  .chipn{border:1px dashed rgba(255,255,255,.18)}
  .chipn .big{color:var(--night-mute)}
  .wgsn{background:rgba(52,211,194,.08);border:1px solid rgba(52,211,194,.45);box-shadow:0 0 60px -20px rgba(52,211,194,.55)}
  .wgsn .big{color:var(--sea)}
  .vn-vs{font-size:.9rem;color:var(--night-mute);border:1px solid rgba(255,255,255,.18);border-radius:50%;width:2.6rem;height:2.6rem;display:grid;place-items:center}
  .dnapage{margin-top:1.4rem;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:.9rem;background:rgba(0,0,0,.18)}
  .dp-head{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:space-between;align-items:center}
  .dp-t{font-size:.78rem;color:var(--night-mute)}
  .dp-tog{display:inline-flex;border:1px solid rgba(255,255,255,.2);border-radius:9px;overflow:hidden}
  .dp-tog button{appearance:none;border:0;background:transparent;color:var(--night-mute);font:inherit;font-size:.8rem;padding:.4rem .8rem;cursor:pointer}
  .dp-tog button[aria-pressed="true"]{background:var(--sea);color:var(--night)}
  .dp-grid{margin-top:.7rem;font-size:9.5px;line-height:1.25;letter-spacing:.08em;word-break:break-all;color:rgba(230,242,238,.13);max-height:12.5em;overflow:hidden;user-select:none}
  .dp-grid i{font-style:normal;transition:color .5s}
  .dp-grid.on i{color:var(--sea)}
  .dp-grid i.hit{color:var(--clay);text-shadow:0 0 8px var(--clay);font-weight:700}
  .dp-cap{font-size:.84rem;margin-top:.6rem;color:var(--night-ink)}
  .vs-foot{font-size:.7rem;color:var(--night-mute);margin-top:.8rem}
  .bound4{grid-template-columns:repeat(4,1fr)}
  @media(max-width:1100px){.bound4{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:640px){.bound4{grid-template-columns:1fr}}
  .lanes svg{min-width:1200px}
  .legend2{display:flex;gap:1.2rem;font-size:.8rem;color:var(--muted);margin-top:.5rem}
  .legend2 span{display:inline-flex;align-items:center;gap:.4rem}
  .legend2 .ln{display:inline-block;width:26px;border-top:2px solid var(--muted)}
  .legend2 .ln.dash{border-top-style:dashed}
/* ===== production page shell ===== */
body{margin:0}
.wrapx{max-width:1180px;margin-inline:auto}
.site.g2{min-height:100vh}
a.btn{text-decoration:none}
.g2nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:21;background:var(--night)}
.sec,.ghero{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.sec>*,.ghero-in{max-width:1180px;margin-inline:auto}
.brand{text-decoration:none;color:inherit}
.appwrap{min-height:100vh;background:var(--paper);display:flex;flex-direction:column}
.appmain{flex:1;display:flex;justify-content:center;padding:1.2rem max(16px,env(safe-area-inset-right,0px)) 2.5rem max(16px,env(safe-area-inset-left,0px))}
.panel{width:min(460px,100%);background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.2rem 1.1rem 1.4rem}
.panel>div{display:grid;gap:.8rem}
.panel>div[hidden]{display:none}
.panel .stepper{display:flex;gap:.3rem;margin-bottom:1rem}
.panel .stepper span{flex:1;height:4px;border-radius:2px;background:var(--line)}
.panel .stepper span.on{background:var(--accent)}
.capimg2{width:120px;height:44px;border-radius:8px;border:1px solid var(--line);cursor:pointer;flex:none;background:#eef3f1;display:grid;place-items:center;overflow:hidden}
.capimg2 svg{width:120px;height:40px}
.vf-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.err-box[hidden],.ok-box[hidden]{display:none}
.foot2{padding:1rem max(16px,env(safe-area-inset-left,0px));font-size:.75rem;color:var(--night-mute);background:var(--night);display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;justify-content:center}
.foot2 a{color:inherit}
.spin{opacity:.6;pointer-events:none}
.g2nav{display:flex;align-items:center;gap:1rem;padding-top:.8rem;padding-bottom:.8rem;flex-wrap:wrap}
.g2nav .links{display:flex;gap:1rem;margin-left:auto;font-size:.86rem;flex-wrap:wrap}
.g2nav .links a{color:inherit;text-decoration:none}
.g2nav .links a:hover{color:var(--night-ink)}
@media(max-width:520px){.g2nav .links{order:3;width:100%;margin-left:0}.g2nav .lang{margin-left:auto}}
