
  :root{
    --bg:#0F0E0C;
    --surface:#1A1815;
    --surface-2:#211E1A;
    --gold:#B5935A;
    --gold-bright:#D4B57E;
    --gold-dim:#6E5A38;
    --code:#86A9C2;
    --code-dim:#4C6577;
    --text:#E8E4DC;
    --text-dim:#7A746B;
    --line:#2A2620;
    --axis:61.8vw;
    --display:'Fraunces',Georgia,serif;
    --display-sc:'Noto Serif SC',serif;
    --body:'Inter','Noto Serif SC',sans-serif;
    --mono:'JetBrains Mono',monospace;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{background:var(--bg);color:var(--text);font-family:var(--body);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative}
  /* ===== atmospheric depth (real DOM layers, reliably rendered) ===== */
  .bg-glow{position:fixed;inset:0;z-index:0;pointer-events:none;
    background:
      radial-gradient(60vw 60vh at 78% 8%, rgba(181,147,90,0.22), transparent 55%),
      radial-gradient(52vw 55vh at 8% 92%, rgba(120,150,180,0.14), transparent 58%);
    animation:bgBreath 22s ease-in-out infinite;}
  @keyframes bgBreath{0%,100%{opacity:0.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}
  .bg-grain{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0.13;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");}
  .bg-vignette{position:fixed;inset:0;z-index:0;pointer-events:none;
    background:radial-gradient(115vw 95vh at 50% 35%, transparent 48%, rgba(0,0,0,0.5) 100%);}
  /* point-line-plane field: a slowly evolving landscape diagram */
  .bg-field{position:fixed;inset:0;z-index:0;pointer-events:none;}
  /* keep all real content above the atmosphere */
  nav,header,section,footer{position:relative;z-index:1}
  .axis-wave,.axis-fill{z-index:90}
  ::selection{background:var(--gold);color:var(--bg)}
  a{color:inherit;text-decoration:none}

  /* ===== golden axis: now a wave canvas reacting to the cursor ===== */
  .axis-wave{position:fixed;top:0;left:var(--axis);width:120px;height:100vh;transform:translateX(-50%);z-index:90;pointer-events:none}
  .axis-fill{position:fixed;left:var(--axis);top:0;width:1px;z-index:90;height:0;transform:translateX(-0.5px);
    background:linear-gradient(to bottom, rgba(212,181,126,0) 0%, rgba(212,181,126,0.9) 14%, rgba(212,181,126,0.9) 80%, rgba(212,181,126,0) 100%);
    -webkit-mask:linear-gradient(to bottom, transparent 0, #000 12px, #000 calc(100% - 26px), transparent 100%);
    mask:linear-gradient(to bottom, transparent 0, #000 12px, #000 calc(100% - 26px), transparent 100%);
    box-shadow:0 0 10px rgba(181,147,90,.5)}

  /* ===== top horizontal nav (restored) ===== */
  nav{position:fixed;top:0;left:0;right:0;z-index:95;display:flex;align-items:center;height:72px;padding:0 48px;background:linear-gradient(to bottom,rgba(15,14,12,.92),rgba(15,14,12,0));backdrop-filter:blur(3px)}
  .logo{font-family:var(--display);font-weight:600;font-size:20px;letter-spacing:-0.01em;width:var(--axis)}
  .logo span{color:var(--gold)}
  .nav-links{display:flex;gap:34px;font-family:var(--mono);font-size:13px;color:var(--text-dim);padding-left:28px}
  .nav-links a{position:relative;transition:color .25s}
  .nav-links a::before{content:'';position:absolute;left:-14px;top:50%;width:4px;height:4px;border-radius:50%;background:var(--gold);transform:translateY(-50%) scale(0);transition:transform .25s}
  .nav-links a:hover{color:var(--text)}
  .nav-links a:hover::before{transform:translateY(-50%) scale(1)}

  /* ===== hero: left WIDE (design, primary), right NARROW (code, secondary) ===== */
  .hero{min-height:100vh;position:relative}
  .hero-inner{width:100%;padding:0 56px}
  /* left column sits HIGHER — primary stage, more content */
  .hero-left{position:absolute;left:56px;top:24vh;width:calc(var(--axis) - 130px)}
  .eyebrow{font-family:var(--mono);font-size:12px;color:var(--gold);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:30px;opacity:0;animation:fadeUp .9s .2s forwards}
  .hero-display{font-family:var(--display);font-weight:400;font-size:clamp(48px,7.5vw,108px);line-height:0.96;letter-spacing:-0.025em}
  .hero-display .l1,.hero-display .l2{display:block;opacity:0;animation:fadeUp 1s forwards}
  .hero-display .l1{animation-delay:.35s}
  .hero-display .l2{color:var(--gold);font-style:italic;animation-delay:.5s}
  .hero-tagline{margin-top:34px;font-size:18px;color:var(--text-dim);max-width:560px;line-height:1.7;opacity:0;animation:fadeUp 1s .65s forwards}
  .hero-tagline b{color:var(--text);font-weight:500}
  /* left: a row of figures to add density on the primary side */
  .hero-figures{display:flex;gap:46px;margin-top:46px;opacity:0;animation:fadeUp 1s .85s forwards}
  .fig .n{font-family:var(--display);font-size:34px;font-weight:500;color:var(--text);line-height:1}
  .fig .n em{font-style:italic;color:var(--gold)}
  .fig .c{font-family:var(--mono);font-size:11px;color:var(--text-dim);letter-spacing:0.1em;margin-top:8px;text-transform:uppercase}

  /* right column sits LOWER — secondary, sparse, offset for错落 */
  .hero-right{position:absolute;left:calc(var(--axis) + 56px);top:46vh;max-width:280px;opacity:0;animation:fadeUp 1s .8s forwards}
  .hero-right .kicker{font-family:var(--mono);font-size:11px;color:var(--text-dim);letter-spacing:0.12em;margin-bottom:16px;text-transform:uppercase}
  .hero-right h2{font-family:var(--display);font-style:italic;font-size:24px;font-weight:400;color:var(--text);line-height:1.3;margin-bottom:26px}
  .hero-right .stack{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
  .chip{font-family:var(--mono);font-size:11px;color:var(--gold);border:1px solid var(--gold-dim);border-radius:20px;padding:5px 12px}

  /* miniature point-line-plane animation */
  .mini{margin:0 0 22px;width:100%;height:96px}
  .mini .m-pt{fill:var(--gold);opacity:0;animation:mPoint 6s ease-in-out infinite}
  .mini .m-pt.p2{animation-delay:.5s}
  .mini .m-pt.p3{animation-delay:1s}
  .mini .m-pt.p4{animation-delay:1.5s}
  .mini .m-line{stroke:var(--gold);stroke-width:1;fill:none;stroke-dasharray:200;stroke-dashoffset:200;animation:mLine 6s ease-in-out infinite}
  .mini .m-plane{fill:rgba(181,147,90,.10);stroke:var(--gold-dim);stroke-width:.75;opacity:0;animation:mPlane 6s ease-in-out infinite}
  @keyframes mPoint{0%{opacity:0}8%{opacity:1}70%{opacity:1}85%{opacity:0}100%{opacity:0}}
  @keyframes mLine{0%{stroke-dashoffset:200}20%{stroke-dashoffset:200}45%{stroke-dashoffset:0}70%{stroke-dashoffset:0}88%{stroke-dashoffset:200}100%{stroke-dashoffset:200}}
  @keyframes mPlane{0%{opacity:0}48%{opacity:0}62%{opacity:1}78%{opacity:1}90%{opacity:0}100%{opacity:0}}

  /* "now building" ticker — kept minimal on secondary side */
  .now{border-top:1px solid var(--line);padding-top:18px}
  .now .lbl{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:8px;margin-bottom:10px}
  .now .lbl::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold);animation:blink 2s infinite}
  @keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
  .now .what{font-family:var(--display);font-style:italic;font-size:16px;color:var(--text);min-height:24px}

  .scroll-hint{position:absolute;bottom:34px;left:56px;font-family:var(--mono);font-size:11px;color:var(--text-dim);letter-spacing:0.15em;display:flex;align-items:center;gap:10px;opacity:0;animation:fadeUp .9s 1.1s forwards}
  .scroll-hint .ln{width:34px;height:1px;background:var(--text-dim);animation:pulse 2s infinite}
  /* golden-section legend riding the axis — makes the 61.8 split read as intent */
  .axis-mark{position:absolute;left:var(--axis);top:58vh;transform:translateX(13px);font-family:var(--mono);font-size:10px;letter-spacing:0.22em;color:var(--gold-dim);writing-mode:vertical-rl;text-orientation:mixed;opacity:0;animation:fadeUp 1.2s 1.25s forwards;pointer-events:none;display:flex;align-items:center;gap:10px}
  .axis-mark .tick{width:1px;height:26px;background:var(--gold-dim)}

  @keyframes fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
  @keyframes pulse{0%,100%{opacity:.3}50%{opacity:1}}

  /* ===== point -> line -> plane sections ===== */
  .reveal{padding:140px 56px;position:relative;max-width:1340px;margin:0 auto}
  .node{position:absolute;left:calc(var(--axis) - 7px);top:140px;width:14px;height:14px;border-radius:50%;border:1px solid var(--gold);background:var(--bg);opacity:0;transform:scale(0);transition:opacity .5s,transform .6s cubic-bezier(.2,.9,.3,1.4);z-index:93}
  .node::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--gold);transform:scale(0);transition:transform .4s .2s}
  .in .node{opacity:1;transform:scale(1)}
  .in .node::after{transform:scale(1)}
  .connector{position:absolute;right:calc(100vw - var(--axis) + 7px);top:147px;height:1px;background:var(--gold);width:0;transform-origin:right;transition:width .7s .25s cubic-bezier(.4,0,.2,1)}
  .in .connector{width:90px}
  .sec-label{position:absolute;top:131px;font-family:var(--mono);font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);right:calc(100vw - var(--axis) + 108px);text-align:right;opacity:0;transform:translateX(12px);transition:opacity .5s .5s,transform .5s .5s}
  .in .sec-label{opacity:1;transform:translateX(0)}

  .plane{margin-top:64px;opacity:0;transform:translateY(40px);clip-path:inset(0 0 100% 0);transition:opacity .8s .5s,transform .8s .5s,clip-path 1s .55s cubic-bezier(.4,0,.2,1)}
  .in .plane{opacity:1;transform:translateY(0);clip-path:inset(0 0 0 0)}

  .sec-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:48px}
  .sec-head h2{font-family:var(--display);font-size:clamp(30px,4.5vw,54px);font-weight:500;letter-spacing:-0.02em}
  .sec-head h2 em{font-style:italic;color:var(--gold)}
  .sec-head .count{font-family:var(--mono);font-size:13px;color:var(--text-dim)}

  .grid{display:grid;grid-template-columns:repeat(12,1fr);gap:22px}
  .card{background:linear-gradient(160deg,#1E1B17 0%,var(--surface) 55%);border:1px solid var(--line);border-radius:14px;padding:34px;position:relative;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;min-height:260px;transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .45s,background .45s}
  .card:hover{transform:translateY(-6px);border-color:var(--gold-dim);background:var(--surface-2)}
  .card::before{content:'';position:absolute;top:0;left:0;height:1px;width:0;background:linear-gradient(to right,var(--gold),transparent);transition:width .55s cubic-bezier(.4,0,.2,1);z-index:2}
  .card:has(.card-kind.code)::before{background:linear-gradient(to right,var(--code),transparent)}
  .card:hover::before{width:100%}
  .card.soon:hover::before{width:0}
  .card.feat{grid-column:span 7;min-height:360px}
  .card.half{grid-column:span 5}
  .card.third{grid-column:span 4}
  .grid-divider{grid-column:1 / -1;display:flex;align-items:center;gap:18px;margin:14px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-dim)}
  .grid-divider::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold-dim);flex-shrink:0}
  .grid-divider::after{content:'';flex:1;height:1px;background:var(--line)}
  .card.third{min-height:230px}
  .card.third h3{font-size:25px}
  .card.third p{font-size:14px}
  .card-kind{font-family:var(--mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;display:inline-flex;align-items:center;gap:8px}
  .card-kind.design{color:var(--gold)}
  .card-kind.code{color:#86A9C2}
  .pt{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
  .card h3{font-family:var(--display);font-size:30px;font-weight:500;letter-spacing:-0.01em;margin-top:auto}
  .card.feat h3{font-size:46px;font-style:italic}
  .card p{color:var(--text-dim);font-size:15px;margin-top:14px;max-width:480px;line-height:1.7}
  .card-meta{display:flex;gap:16px;margin-top:24px;font-family:var(--mono);font-size:11px;color:var(--text-dim);flex-wrap:wrap}
  .card-meta span:not(.status)::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--gold-dim);flex-shrink:0;transition:background .45s}
  .card:has(.card-kind.code) .card-meta span:not(.status)::before{background:var(--code-dim)}
  .card:hover .card-meta span:not(.status)::before{background:var(--gold)}
  .card:has(.card-kind.code):hover .card-meta span:not(.status)::before{background:var(--code)}
  .status{margin-left:auto;padding:3px 10px;border-radius:20px;font-size:10px;letter-spacing:0.08em}
  .status.live{color:var(--gold);border:1px solid var(--gold-dim)}
  .status.wip{color:var(--text-dim);border:1px solid var(--line)}
  .card.soon{cursor:default;opacity:0.72}
  .card.soon:hover{transform:none;border-color:var(--line);background:var(--surface)}
  .card.soon .card-kind .pt{box-shadow:none;opacity:0.6}
  .card-meta span{display:flex;align-items:center;gap:6px}
  .arrow{position:absolute;top:34px;right:34px;font-size:18px;color:var(--text-dim);transition:transform .3s,color .3s}
  .card:hover .arrow{transform:translate(4px,-4px);color:var(--gold)}
  .card .idx{position:absolute;bottom:-18px;right:18px;font-family:var(--display);font-size:120px;font-weight:600;color:var(--surface-2);line-height:1;z-index:0;pointer-events:none}
  .card.feat .idx{color:rgba(181,147,90,.06)}
  .card>*{position:relative;z-index:1}

  .approach{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:8px}
  .ap{padding:40px 34px;border-right:1px solid var(--line);position:relative}
  .ap:last-child{border-right:none}
  .ap .geo{width:40px;height:40px;margin-bottom:24px}
  .ap .num{font-family:var(--mono);font-size:12px;color:var(--gold);letter-spacing:0.1em;margin-bottom:14px}
  .ap h4{font-family:var(--display);font-size:22px;font-weight:500;margin-bottom:12px}
  .ap p{font-size:14px;color:var(--text-dim);line-height:1.7}

  footer{padding:110px 56px 80px;border-top:1px solid var(--line);max-width:1340px;margin:80px auto 0;position:relative}
  footer .node{top:110px}
  footer .connector{top:117px}
  footer .sec-label{top:101px}
  .foot-grid{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:40px}
  footer h4{font-family:var(--display);font-size:clamp(36px,5vw,64px);font-weight:500;letter-spacing:-0.02em;line-height:1.05}
  footer h4 em{font-style:italic;color:var(--gold)}
  .foot-links{display:flex;gap:26px;font-family:var(--mono);font-size:13px;color:var(--text-dim)}
  .foot-links a{transition:color .25s}.foot-links a:hover{color:var(--gold)}

  /* ===== the site as a point·line·plane graph ===== */
  .sitemap{margin-top:90px;border-top:1px solid var(--line);padding-top:44px}
  .sitemap .sm-head{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
  .sitemap .sm-head::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold)}
  .sitemap .sm-sub{font-size:15px;color:var(--text-dim);margin-bottom:30px;max-width:54ch;line-height:1.7}
  .ng{width:100%;height:auto;display:block;overflow:visible}
  .ng-plane{fill:rgba(181,147,90,.045);stroke:none;transition:fill .5s}
  .ng.dim .ng-plane{fill:rgba(181,147,90,.022)}
  .ng-edge{stroke:var(--gold-dim);stroke-width:1;opacity:.55;transition:opacity .35s,stroke .35s,stroke-width .35s}
  .ng-edge.blue{stroke:var(--code-dim)}
  .ng.dim .ng-edge{opacity:.14}
  .ng-edge.lit{opacity:1;stroke:var(--gold);stroke-width:1.5}
  .ng-edge.blue.lit{stroke:var(--code)}
  .ng-cycle{fill:none;stroke:var(--gold-dim);stroke-dasharray:2 5;opacity:.55;transition:opacity .35s,stroke .35s}
  .ng.dim .ng-cycle{opacity:.16}
  .ng-cycle.lit{opacity:1;stroke:var(--gold)}
  .ng-node{cursor:pointer;transition:opacity .35s}
  .ng-node .nd{fill:var(--bg);stroke:var(--gold);stroke-width:1.2;transition:stroke .35s,r .35s}
  .ng-node.blue .nd{stroke:var(--code)}
  .ng-node .nd-core{fill:var(--gold);opacity:0;transition:opacity .35s}
  .ng-node.blue .nd-core{fill:var(--code)}
  .ng-node.home .nd-core,.ng-node:hover .nd-core,.ng-node.lit .nd-core{opacity:1}
  .ng.dim .ng-node{opacity:.4}
  .ng.dim .ng-node.lit,.ng.dim .ng-node:hover{opacity:1}
  .ng-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;fill:var(--gold-dim);text-transform:uppercase}
  .ng-node.blue .ng-eyebrow{fill:var(--code-dim)}
  .ng-name{font-family:var(--display);font-size:18px;fill:var(--text-dim);transition:fill .35s}
  .ng-node:hover .ng-name,.ng-node.lit .ng-name{fill:var(--text)}
  .ng-cyclabel{font-family:var(--mono);font-size:9px;letter-spacing:0.12em;fill:var(--gold-dim)}

  /* ===== mobile menu — hidden on desktop ===== */
  .nav-toggle{display:none;width:44px;height:44px;margin-left:auto;background:none;border:none;cursor:pointer;position:relative;z-index:130;flex:0 0 auto;-webkit-tap-highlight-color:transparent}
  .nav-toggle span{position:absolute;left:11px;right:11px;height:1.5px;background:var(--text);transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .25s}
  .nav-toggle span:nth-child(1){top:17px}
  .nav-toggle span:nth-child(2){top:23px}
  .nav-toggle span:nth-child(3){top:29px}
  body.menu-open .nav-toggle span:nth-child(1){top:23px;transform:rotate(45deg)}
  body.menu-open .nav-toggle span:nth-child(2){opacity:0}
  body.menu-open .nav-toggle span:nth-child(3){top:23px;transform:rotate(-45deg)}
  .mob-menu{position:fixed;inset:0;z-index:120;background:rgba(15,14,12,.97);backdrop-filter:blur(8px);display:flex;flex-direction:column;justify-content:center;padding:0 32px;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s;pointer-events:none}
  body.menu-open .mob-menu{opacity:1;visibility:visible;pointer-events:auto}
  .mob-menu .mm-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:30px;display:flex;align-items:center;gap:10px}
  .mob-menu .mm-eyebrow::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold)}
  .mob-menu a{font-family:var(--display);font-size:34px;font-weight:500;color:var(--text);letter-spacing:-0.01em;padding:13px 0 13px 30px;position:relative;display:flex;align-items:baseline;gap:14px;transform:translateY(14px);opacity:0;transition:transform .5s,opacity .5s,color .25s}
  .mob-menu a em{font-family:var(--mono);font-size:12px;font-style:normal;color:var(--gold-dim);letter-spacing:0.1em}
  .mob-menu a::before{content:'';position:absolute;left:0;top:50%;width:8px;height:8px;border-radius:50%;border:1px solid var(--gold-dim);transform:translateY(-50%);transition:background .3s,border-color .3s,box-shadow .3s}
  .mob-menu a:active::before,.mob-menu a:hover::before{background:var(--gold);border-color:var(--gold);box-shadow:0 0 10px rgba(181,147,90,.6)}
  /* a vertical line threading the menu points */
  .mob-menu .mm-list{position:relative;display:flex;flex-direction:column;align-items:flex-start;height:auto;padding:0;background:none;backdrop-filter:none;inset:auto}
  .mob-menu .mm-list::before{content:'';position:absolute;left:3.5px;top:18px;bottom:18px;width:1px;background:linear-gradient(to bottom,transparent,var(--gold-dim) 12%,var(--gold-dim) 88%,transparent)}
  body.menu-open .mob-menu a{transform:translateY(0);opacity:1}
  body.menu-open .mob-menu a:nth-child(1){transition-delay:.08s}
  body.menu-open .mob-menu a:nth-child(2){transition-delay:.14s}
  body.menu-open .mob-menu a:nth-child(3){transition-delay:.20s}
  body.menu-open .mob-menu a:nth-child(4){transition-delay:.26s}
  body.menu-open .mob-menu a:nth-child(5){transition-delay:.32s}
  .mob-menu .mm-foot{margin-top:48px;font-family:var(--mono);font-size:11px;letter-spacing:0.18em;color:var(--text-dim);text-transform:uppercase}

  /* ===== sm-vert: vertical 'line of points' sitemap — replaces the squished SVG graph on mobile ===== */
  .sm-vert{display:none;flex-direction:column;position:relative;padding-left:4px}
  .sm-vert::before{content:'';position:absolute;left:8.5px;top:14px;bottom:46px;width:1px;background:linear-gradient(to bottom,var(--gold-dim),var(--gold-dim) 70%,var(--code-dim))}
  .sm-vert a{position:relative;display:flex;flex-direction:column;gap:3px;padding:15px 0 15px 34px;text-decoration:none}
  .sm-vert a::before{content:'';position:absolute;left:3px;top:20px;width:11px;height:11px;border-radius:50%;background:var(--bg);border:1.5px solid var(--gold);box-shadow:0 0 0 4px var(--bg)}
  .sm-vert a.blue::before{border-color:var(--code)}
  .sm-vert a::after{content:'';position:absolute;left:7px;top:24px;width:3px;height:3px;border-radius:50%;background:var(--gold);opacity:0;transition:opacity .3s}
  .sm-vert a.blue::after{background:var(--code)}
  .sm-vert a:active::after{opacity:1}
  .sm-vert .smv-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold-dim)}
  .sm-vert a.blue .smv-eyebrow{color:var(--code-dim)}
  .sm-vert .smv-name{font-family:var(--display);font-size:21px;color:var(--text);font-weight:500;letter-spacing:-0.01em}
  .sm-vert .smv-meta{font-family:var(--mono);font-size:11px;color:var(--text-dim)}

  @media(max-width:980px){
    .card.feat,.card.half,.card.third{grid-column:span 12}
    .approach{grid-template-columns:1fr}.ap{border-right:none;border-bottom:1px solid var(--line)}.ap:last-child{border-bottom:none}
    .hero-right{max-width:240px}
  }
  @media(max-width:720px){
    :root{--axis:0px}
    .axis-wave,.axis-fill,.node,.connector,.axis-mark{display:none}
    nav{padding:0 20px;height:62px}
    .logo{width:auto;flex:0 0 auto;font-size:18px}
    .nav-links{display:none}
    .nav-toggle{display:block}
    .hero{min-height:auto;padding:104px 0 64px}
    .hero-left{position:static;width:100%;padding:0 24px}
    .hero-display{font-size:clamp(44px,13vw,68px)}
    .hero-tagline{margin-top:26px;font-size:16px}
    .hero-right{position:static;max-width:100%;margin-top:52px;padding:0 24px;left:0}
    .hero-figures{gap:30px;margin-top:38px;flex-wrap:wrap}
    .fig .n{font-size:30px}
    .reveal{padding:78px 24px}.sec-label{position:static;margin-bottom:18px;opacity:1;transform:none;text-align:left}
    .sec-head{margin-bottom:34px;padding-bottom:18px}
    .plane{margin-top:24px}.card h3{margin-top:20px}
    .card{padding:30px 26px}.card.feat{padding:32px 26px}
    .card.feat h3{font-size:38px}
    .card .idx{font-size:88px;bottom:-12px;right:14px}
    .grid{gap:18px}
    .grid-divider{margin-top:6px}
    .approach{margin-top:8px}.ap{padding:30px 24px}
    footer{padding:74px 24px}
    footer h4{font-size:clamp(34px,9vw,46px)}
    .foot-grid{gap:30px}
    .scroll-hint{display:none}
    .sitemap{margin-top:64px;padding-top:36px}
    .sitemap .ng{display:none}
    .sm-vert{display:flex}
  }
  @media(max-width:400px){
    .hero-display{font-size:clamp(40px,12vw,52px)}
    .hero-figures{gap:24px}.fig .n{font-size:26px}
    .card.feat h3{font-size:32px}
  }
  @media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;opacity:1!important;clip-path:none!important}}

/* mini-graph: persistent highlight for the current page node */
.ng-node.current .nd{stroke-width:1.8;r:10}
.ng-node.current .nd-core{opacity:1}
.ng-node.current .ng-name{fill:var(--text)}
.ng-node.current .ng-eyebrow{fill:var(--gold)}
.ng-node.blue.current .ng-eyebrow{fill:var(--code)}
