/* Home v3: aurora hero, stats, bento work cards, one demo stage, proof list, contact. */
.home .site-header{background:color-mix(in srgb,var(--paper) 55%,transparent)}
.home main{overflow-x:clip}

/* ---------- Reveal (only when GSAP is running) ---------- */
.gs .rv{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.gs .rv.in{opacity:1;transform:none}
.gs .hero2 .rv{animation:rise .95s cubic-bezier(.2,.7,.2,1) forwards}
.gs .hero2 .rv:nth-child(2){animation-delay:.09s}.gs .hero2 .rv:nth-child(3){animation-delay:.18s}.gs .hero2 .rv:nth-child(4){animation-delay:.27s}.gs .hero2 .rv:nth-child(5){animation-delay:.36s}
@keyframes rise{to{opacity:1;transform:none}}

/* ---------- Buttons ---------- */
.btn2{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 22px;border-radius:999px;border:1px solid var(--rule-2);background:color-mix(in srgb,var(--surface) 70%,transparent);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);font:inherit;font-size:15.5px;font-weight:600;text-decoration:none;cursor:pointer;transition:transform .2s,background .2s,opacity .2s}
.btn2:hover{transform:translateY(-1px);color:var(--ink);background:var(--surface)}
.btn2.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn2.primary:hover{background:var(--ink);color:var(--paper);opacity:.88}
.btn2.sm{height:38px;padding:0 16px;font-size:14px}

/* ---------- Hero ---------- */
.hero2{position:relative;min-height:min(100svh,940px);display:grid;align-items:center;margin-top:-57px;padding-top:57px;isolation:isolate;overflow:hidden}
#aurora{position:absolute;inset:0;width:100%;height:100%;z-index:-2;display:block}
.hero2::before{content:"";position:absolute;inset:0;z-index:-3;background:
  radial-gradient(60% 50% at 20% 30%,var(--teal-soft) 0,transparent 70%),radial-gradient(50% 50% at 80% 25%,var(--stamp-soft) 0,transparent 70%),
  radial-gradient(60% 60% at 60% 80%,var(--amber-soft) 0,transparent 70%),var(--paper)}
.hero2::after{content:"";position:absolute;left:0;right:0;bottom:0;height:28%;z-index:-1;background:linear-gradient(to bottom,transparent,var(--paper))}
.grain{position:absolute;inset:0;z-index:-1;opacity:.07;pointer-events:none;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero2-inner{padding-block:96px 120px;text-align:center;display:grid;justify-items:center}
.status{display:inline-flex;align-items:center;gap:9px;padding:7px 14px;border-radius:999px;font-size:13.5px;font-weight:500;color:var(--ink-2);
  background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid color-mix(in srgb,var(--rule-2) 70%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.status b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.status .sep{color:var(--muted)}
.pulse{width:8px;height:8px;border-radius:50%;background:#22B573;box-shadow:0 0 0 0 rgba(34,181,115,.55);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(34,181,115,0)}100%{box-shadow:0 0 0 0 rgba(34,181,115,0)}}
.hero2-name{margin-top:28px;font-size:clamp(52px,9.4vw,124px);font-weight:700;letter-spacing:-.045em;line-height:.98;display:grid;justify-items:center;gap:14px}
.hero2-name .deva{font-family:var(--deva);font-size:clamp(17px,1.9vw,22px);font-weight:500;letter-spacing:0;color:var(--muted)}
.hero2-line{margin-top:22px;font-size:clamp(24px,3.2vw,40px);font-weight:600;letter-spacing:-.025em;line-height:1.15;color:var(--ink)}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.04em}
.hero2-sub{margin-top:20px;max-width:620px;font-size:clamp(16.5px,1.5vw,19px);line-height:1.55;color:var(--ink-2)}
.hero2-cta{margin-top:34px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.scroll-cue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);width:26px;height:42px;border-radius:14px;border:1.5px solid var(--rule-2)}
.scroll-cue span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--muted);animation:cue 1.8s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}

/* ---------- Stats ---------- */
.stats{padding-block:8px 40px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.stat{padding:30px 24px 30px 0;display:grid;gap:6px}
.stat+.stat{padding-left:24px;border-left:1px solid var(--rule)}
.stat b{font-size:clamp(34px,3.6vw,46px);font-weight:700;letter-spacing:-.035em;line-height:1;font-variant-numeric:tabular-nums}
.stat span{font-size:14.5px;color:var(--muted);line-height:1.4;max-width:24ch}

/* ---------- Section frame ---------- */
.sec{padding-block:clamp(72px,10vw,128px)}
.sec-h{max-width:760px;margin-bottom:44px}
.sec-h h2{margin-top:10px;font-size:clamp(32px,4.4vw,54px);letter-spacing:-.035em}
.sec-lead{margin-top:16px;font-size:18px;color:var(--ink-2)}
.sec-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}
.h-sm{font-size:clamp(26px,3vw,34px)}
.more{font-weight:600;text-decoration:none}

/* ---------- Bento ---------- */
.bento{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.card2{position:relative;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-l);padding:32px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.card2:hover{transform:translateY(-3px)}
.card2.wide{grid-column:1/-1}
.card2.wide::before{content:"";position:absolute;right:-120px;top:-140px;width:420px;height:420px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--teal) 22%,transparent),transparent);pointer-events:none}
.card2 h3{font-size:clamp(24px,2.6vw,32px);letter-spacing:-.03em}
.card2 p{color:var(--ink-2);max-width:64ch}
.card2-top{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center}
.dept-tag{font-size:13px;font-weight:600;color:var(--muted)}
.dept-tag::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:1px;background:var(--teal)}
.dept-tag.he::before{background:var(--amber)} .dept-tag.gg::before{background:var(--stamp)}
.state{font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--sunk);color:var(--ink-2)}
.state.ok{background:var(--teal-soft);color:var(--teal-deep)}
.state.pitch{background:var(--amber-soft);color:var(--amber)}
.state.live{background:var(--stamp-soft);color:var(--stamp)}
.card2-links{margin-top:auto;padding-top:6px;display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center}
.card2-links a{font-weight:600;text-decoration:none}
.demo-link{font:inherit;font-weight:600;font-size:15px;color:var(--ink);background:var(--sunk);border:0;border-radius:999px;padding:8px 16px;cursor:pointer}
.demo-link::after{content:" ▸";color:var(--teal)}
.demo-link:hover{background:var(--rule)}

/* ---------- Demo stage ---------- */
.demos-sec{background:linear-gradient(to bottom,var(--paper),var(--sunk) 18%,var(--sunk) 82%,var(--paper))}
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:999px;background:color-mix(in srgb,var(--rule) 60%,transparent);margin-bottom:18px;max-width:100%}
.seg-b{font:inherit;font-size:14.5px;font-weight:600;padding:8px 16px;border-radius:999px;border:0;background:transparent;color:var(--ink-2);cursor:pointer;transition:background .25s,color .25s,box-shadow .25s}
.seg-b[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.stage{background:var(--surface);border:1px solid var(--rule);border-radius:28px;padding:clamp(20px,3vw,36px);box-shadow:var(--shadow);min-height:460px}
.dpane{animation:fadein .45s ease}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dpane-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);gap:clamp(20px,3vw,40px);align-items:center}
.dpane-copy{display:grid;gap:12px;align-content:start}
.dpane-copy h3{font-size:clamp(24px,2.4vw,30px);letter-spacing:-.03em}
.dpane-copy p{color:var(--ink-2);font-size:16px}
.dpane-copy code,.sec code{font-family:var(--mono);font-size:.88em;background:var(--sunk);padding:1px 6px;border-radius:6px}
.pick{font-weight:600;color:var(--ink)!important;min-height:3em}
.legend{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
.legend i{flex:1;max-width:140px;height:8px;border-radius:99px;background:linear-gradient(90deg,#C9D6FF,#3B5BDB,#1A2A8A)}
.src{margin-top:18px;font-size:13px;color:var(--muted)}
.small{font-size:14px}
.three-box{position:relative;width:100%;aspect-ratio:16/11;touch-action:pan-y;cursor:grab;border-radius:18px;overflow:hidden}
.three-box:active{cursor:grabbing}
.three-box canvas{display:block;width:100%!important;height:100%!important}
.three-box .fallback{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:14px;text-align:center;padding:20px}
#bars3d{background:radial-gradient(80% 70% at 50% 35%,var(--teal-wash),transparent)}

/* race */
.race-track{position:relative;display:grid;gap:8px;padding-top:22px}
.race-row{display:grid;grid-template-columns:70px 1fr 52px;gap:10px;align-items:center;font-size:13.5px;color:var(--ink-2)}
.race-row .lane{position:relative;height:14px;background:var(--sunk);border-radius:99px;overflow:hidden}
.race-row .lane i{position:absolute;inset:0;width:0;border-radius:99px;background:linear-gradient(90deg,#7C9CFF,var(--teal));transition:width 1.6s cubic-bezier(.2,.7,.2,1)}
.race-row.late .lane i{background:linear-gradient(90deg,#FFB088,var(--amber))}
.race-row b{font-weight:600;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}
.race-row.late b{color:var(--amber)}
.race-track .promise{position:absolute;top:10px;bottom:-6px;width:0;border-left:1.5px dashed var(--stamp);pointer-events:none}
.race-track .promise span{position:absolute;top:-14px;left:6px;font-size:11.5px;font-weight:600;color:var(--stamp);white-space:nowrap}
.out{font-weight:600;font-size:15.5px;min-height:3em}

/* helpline */
.esc-ctrl label{font-size:13px;font-weight:600;color:var(--muted);margin-top:4px}
.esc-ctrl select{font:inherit;font-size:15px;padding:10px 12px;border-radius:12px;border:1px solid var(--rule-2);background:var(--paper);color:var(--ink);width:100%;min-width:0}
.row-btns{display:flex;gap:8px;margin-top:6px}
.esc-right{display:grid;gap:12px;min-width:0}
.esc-stage{border-radius:18px;background:var(--paper);border:1px solid var(--rule);padding:8px}
.esc-stage svg{width:100%;height:auto;display:block;max-height:340px}
.esc-stage text{font-family:var(--body)}
.esc-log{list-style:none;margin:0;padding:12px 14px;border-radius:14px;background:#0B0B0E;color:#D6D9E0;font-family:var(--mono);font-size:12.5px;line-height:1.7;height:132px;overflow:auto}
.esc-log li::before{content:"› ";color:#7C9CFF}

/* cool roof */
.cr-toggle{display:inline-flex;padding:4px;border-radius:999px;background:var(--sunk);gap:4px;width:max-content;max-width:100%}
.cr-toggle button{font:inherit;font-size:14px;font-weight:600;padding:8px 14px;border-radius:999px;border:0;background:transparent;color:var(--ink-2);cursor:pointer}
.cr-toggle button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.area-l{display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:var(--muted);margin-top:6px}
.area-l output{color:var(--ink);font-variant-numeric:tabular-nums}
input[type=range]{width:100%;accent-color:var(--teal)}
.cr-cost{display:grid;gap:2px;padding:14px 16px;border-radius:14px;background:var(--sunk)}
.cr-cost span,.cr-cost small{font-size:12.5px;color:var(--muted)}
.cr-cost b{font-size:26px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.gates{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.gates li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;border:1px solid var(--rule);font-size:14px;transition:border-color .3s,background .3s}
.gates li span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--sunk);font-weight:700;font-size:12px;flex:none}
.gates li.lit{border-color:color-mix(in srgb,var(--teal) 45%,transparent);background:var(--teal-wash)}
.gates li.lit span{background:var(--teal);color:#fff}
.gates li.blocked{border-color:color-mix(in srgb,var(--amber) 50%,transparent);background:var(--amber-soft)}
.gates li.blocked span{background:var(--amber);color:#fff}
.gates li.oc{font-weight:600}
.cr-scene{position:relative}
#cr-3d{background:linear-gradient(to bottom,#DDE7FF,#F7F3EE)}
:root[data-theme="dark"] #cr-3d{background:linear-gradient(to bottom,#0E1430,#151518)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) #cr-3d{background:linear-gradient(to bottom,#0E1430,#151518)}}
.cr-readout{position:absolute;right:12px;top:12px;display:grid;gap:2px;text-align:right;background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px 14px;border-radius:14px;border:1px solid var(--rule);font-size:12px;color:var(--muted)}
.cr-readout b{font-size:19px;letter-spacing:-.02em}
.cr-readout .hot{color:var(--amber)} .cr-readout .cool{color:var(--teal)}

/* terminal */
.term{border-radius:18px;overflow:hidden;background:#0B0B0E;color:#E4E6EB;border:1px solid #232329;box-shadow:0 30px 80px -40px rgba(0,0,0,.6);font-family:var(--mono);font-size:13.5px;min-width:0}
.term-bar{display:flex;align-items:center;gap:8px;padding:11px 14px;background:#141418;border-bottom:1px solid #232329}
.term-bar i{width:11px;height:11px;border-radius:50%;background:#FF5F57}
.term-bar i:nth-child(2){background:#FEBC2E} .term-bar i:nth-child(3){background:#28C840}
.term-bar span{margin-left:8px;color:#8E8E93;font-size:12px}
.term-out{padding:14px 16px 4px;height:300px;overflow:auto;line-height:1.65;white-space:pre-wrap;word-break:break-word}
.term-out .c{color:#9DB4FF} .term-out .m{color:#8E8E93} .term-out .h{color:#FFC48C} .term-out a{color:#B6C6FF}
.term-in{display:flex;align-items:center;gap:8px;padding:8px 16px 14px}
.term-in .pr{color:#9DB4FF}
.term-in input{flex:1;min-width:0;background:transparent;border:0;outline:none;color:#fff;font:inherit;caret-color:#9DB4FF}
.term-in input::placeholder{color:#55555c}
.perf{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 0}
.perf div{padding:10px 12px;border-radius:12px;background:var(--sunk)}
.perf dt{font-size:12px;color:var(--muted)} .perf dd{margin:0;font-family:var(--mono);font-weight:600;font-size:15px}

/* ---------- Proof ---------- */
.proof{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.proof-col{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-l);padding:28px;box-shadow:var(--shadow)}
.proof-col h3{font-size:15px;letter-spacing:0;font-weight:600;color:var(--muted);margin-bottom:8px}
.plist{list-style:none;margin:0;padding:0}
.plist li+li{border-top:1px solid var(--rule)}
.plist a,.plist div{display:grid;gap:2px;padding:14px 0;text-decoration:none;color:var(--ink)}
.plist a{grid-template-columns:1fr auto;column-gap:12px}
.plist a::after{content:"↗";grid-row:1/3;grid-column:2;align-self:center;color:var(--teal);font-weight:600;transition:transform .2s}
.plist a:hover::after{transform:translate(2px,-2px)}
.plist b{font-weight:600;font-size:16.5px}
.plist span{font-size:14px;color:var(--muted)}
.plist.int b::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--rule-2);margin-right:10px;vertical-align:2px}
.note{margin-top:12px;font-size:13.5px;color:var(--muted)}

/* ---------- Contact ---------- */
.contact2{position:relative;padding-block:clamp(90px,12vw,150px);text-align:center;overflow:hidden;isolation:isolate}
.contact2::before{content:"";position:absolute;inset:-20% -10%;z-index:-1;background:
  radial-gradient(40% 50% at 30% 60%,color-mix(in srgb,var(--teal) 22%,transparent),transparent 70%),
  radial-gradient(40% 50% at 70% 40%,color-mix(in srgb,var(--stamp) 20%,transparent),transparent 70%),
  radial-gradient(30% 40% at 55% 85%,color-mix(in srgb,var(--amber) 16%,transparent),transparent 70%);filter:blur(10px);animation:drift 18s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate3d(3%,-4%,0) scale(1.08)}}
.contact2-inner{display:grid;justify-items:center}
.contact2 h2{font-size:clamp(32px,5vw,60px);letter-spacing:-.04em;max-width:16ch}
.contact2 p{margin-top:16px;font-size:18px;color:var(--ink-2)}
.contact2 .mail{margin-top:18px;font-size:14px;color:var(--muted);font-family:var(--mono)}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .dpane-grid,.proof{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr 1fr}
  .stat:nth-child(3){padding-left:0;border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--rule)}
}
@media (max-width:640px){
  .bento{grid-template-columns:1fr}
  .card2{padding:24px}
  .hero2-inner{padding-block:72px 110px}
  .stat{padding:22px 14px 22px 0}.stat+.stat{padding-left:14px}
  .seg{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;border-radius:16px}
  .seg-b{white-space:nowrap;padding:8px 13px}
  .stage{border-radius:22px;min-height:0}
  .term-out{height:240px}
}
@media (prefers-reduced-motion:reduce){
  .pulse,.scroll-cue span,.contact2::before,.dpane{animation:none}
  .card2,.btn2{transition:none}
}

.status{white-space:nowrap}
.dpane-copy > .btn2{justify-self:start}
.seg{scroll-snap-type:x proximity}.seg-b{scroll-snap-align:start}
@media (max-width:640px){.status .clk{display:none}}

/* ===================== v4 ===================== */
/* hero 3D */
#hero3d{position:absolute;inset:0;z-index:-2;opacity:0;transition:opacity 1.4s ease}
#hero3d.ready{opacity:1}
#hero3d canvas{display:block;width:100%!important;height:100%!important}

.veil{position:absolute;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(42% 38% at 50% 46%,color-mix(in srgb,var(--paper) 66%,transparent) 0,color-mix(in srgb,var(--paper) 30%,transparent) 60%,transparent 100%),
  linear-gradient(to bottom,color-mix(in srgb,var(--paper) 45%,transparent),transparent 18%)}
:root[data-theme="dark"] .veil{background:radial-gradient(56% 46% at 50% 47%,rgba(0,0,0,.62) 0,rgba(0,0,0,.35) 55%,transparent 80%),linear-gradient(to bottom,rgba(0,0,0,.6),transparent 22%)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .veil{background:radial-gradient(56% 46% at 50% 47%,rgba(0,0,0,.62) 0,rgba(0,0,0,.35) 55%,transparent 80%),linear-gradient(to bottom,rgba(0,0,0,.6),transparent 22%)}}
.h3-label{position:absolute;left:0;top:0;opacity:0;pointer-events:none;display:grid;gap:1px;padding:7px 11px;border-radius:12px;white-space:nowrap;
  background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--rule);box-shadow:var(--shadow);transition:opacity .2s}
.h3-label b{font-size:13px;font-weight:700}
.h3-label span{font-size:11.5px;color:var(--teal)}
.hero-cap{position:absolute;left:24px;bottom:22px;margin:0;font-size:12.5px;color:var(--muted);max-width:280px}
.hero2::after{height:22%}

/* tenure */
.tenure{margin:-8px 0 72px;padding:20px 22px;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--rule);box-shadow:var(--shadow)}
.tenure-top{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between;font-size:15px;color:var(--ink-2)}
.tenure-top b{color:var(--ink)}
#tenure-txt{font-weight:600;color:var(--teal);font-variant-numeric:tabular-nums}
.tenure-bar{position:relative;height:10px;border-radius:99px;background:var(--sunk);margin:16px 0 26px}
.tenure-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:var(--grad);width:0}
.tenure-bar .tick{position:absolute;top:18px;font-size:12px;color:var(--muted);white-space:nowrap;transform:translateX(0)}
.tenure-bar .tick.now{transform:translateX(-50%);color:var(--ink);font-weight:600}
.tenure-bar .tick.end{transform:translateX(-100%)}
.tenure-bar .tick em{font-style:normal;color:var(--muted)}

/* chapters */
.chap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,72px);align-items:center;padding-block:clamp(36px,6vw,72px);border-top:1px solid var(--rule)}
.chap.flip{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.chap.flip .chap-copy{order:2}
.chap-n{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:12px}
.chap h3{font-size:clamp(26px,3vw,38px);letter-spacing:-.035em;line-height:1.08}
.pdr{margin:22px 0 0;display:grid;gap:14px}
.pdr div{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:baseline}
.pdr dt{font-size:12.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.pdr dd{margin:0;color:var(--ink-2);font-size:16.5px;line-height:1.5}
.pdr dd b{color:var(--ink)}
.pdr .demo-link{margin-top:8px;display:inline-block}
.chart{margin:0;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-l);padding:clamp(14px,2.4vw,26px);box-shadow:var(--shadow)}
.wchart{width:100%;height:auto;display:block;overflow:visible}
.wchart text{font-family:var(--body);fill:var(--ink)}
.wc-lab{font-size:13px;font-weight:700;fill:var(--muted)!important;letter-spacing:.02em}
.wc-sm{font-size:13px;fill:var(--ink-2)!important}
.wc-sm.b,.wc-tiny.b{font-weight:700;fill:var(--ink)!important}
.wc-tiny{font-size:11px;fill:var(--muted)!important}
.wc-big{font-size:34px;font-weight:700;letter-spacing:-.03em;fill:var(--ink)!important}
.wc-lv{font-size:18px;font-weight:800;fill:var(--stamp)!important}
.wchart .inv{fill:#fff!important}
.dot-p{fill:var(--stamp)!important}.dot-t{fill:var(--teal)!important}
.chart figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;flex-wrap:wrap}
.chart .out{min-height:0;font-size:15px}
.chart .out .warn{color:var(--amber);font-weight:600}
.fine-cap{margin-top:10px;font-size:12.5px;color:var(--muted)}

/* demos: chips, 3D wrap */
.d3-head{display:flex;flex-wrap:wrap;gap:14px 24px;justify-content:space-between;align-items:flex-end;margin-bottom:16px}
.d3-head h3{font-size:clamp(21px,2.2vw,26px);letter-spacing:-.025em}
.d3-head p{color:var(--ink-2);font-size:15px;margin-top:4px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:inherit;font-size:13.5px;font-weight:600;padding:7px 13px;border-radius:999px;border:1px solid var(--rule-2);background:transparent;color:var(--ink-2);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.chip:hover{border-color:var(--ink-2);color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.chips.sm .chip{font-size:12.5px;padding:6px 11px}
.d3-wrap{position:relative;border-radius:20px;overflow:hidden;background:radial-gradient(90% 80% at 50% 30%,var(--teal-wash),var(--sunk))}
.d3-wrap.fs{border-radius:0;background:var(--paper)}
.three-box.tall{aspect-ratio:16/9;min-height:360px;border-radius:0}
.d3-wrap.fs .three-box{height:100vh;aspect-ratio:auto}
.three-box.live{outline:2px solid color-mix(in srgb,var(--teal) 45%,transparent);outline-offset:-2px}
.d3-tools{position:absolute;left:12px;top:12px;display:flex;gap:6px;flex-wrap:wrap}
.d3-tools button{font:inherit;font-size:12.5px;font-weight:600;padding:6px 11px;border-radius:999px;border:1px solid var(--rule);background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);cursor:pointer}
.d3-tools button[aria-pressed="false"]{color:var(--muted)}
.d3-hint{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);margin:0;font-size:12px;color:var(--muted);background:color-mix(in srgb,var(--surface) 78%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:5px 12px;border-radius:999px;white-space:nowrap;pointer-events:none}
.d3-legend{position:absolute;right:12px;bottom:46px;display:grid;gap:4px;font-size:12px;color:var(--ink-2);background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 12px;border-radius:12px;border:1px solid var(--rule)}
.d3-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px;vertical-align:-1px}
.d3-card{position:absolute;right:12px;top:12px;width:min(270px,calc(100% - 24px));padding:16px;border-radius:16px;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--rule);box-shadow:var(--shadow);animation:fadein .35s ease}
.d3-card .x{position:absolute;right:8px;top:6px;border:0;background:none;font-size:22px;line-height:1;color:var(--muted);cursor:pointer}
.d3-card .k{font-size:12px;color:var(--muted);font-weight:600}
.d3-card h4{margin:2px 0 4px;font-size:20px;letter-spacing:-.02em}
.d3-card .big{font-size:30px;font-weight:700;letter-spacing:-.03em}.d3-card .big small{font-size:14px;color:var(--muted);font-weight:500}
.d3-card .brk{display:grid;grid-template-columns:auto 1fr auto;gap:5px 8px;align-items:center;font-size:12px;margin:8px 0}
.d3-card .brk i{height:6px;border-radius:9px;background:linear-gradient(90deg,var(--c) var(--w),var(--sunk) var(--w))}
.d3-card .brk em{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums}
.d3-card .ft{list-style:none;margin:6px 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;font-size:12px;color:var(--ink-2)}
.d3-card .ft b{margin-right:5px}.d3-card .ft .y{color:#18A47A}.d3-card .ft .n{color:var(--amber)}
.d3-card .bud{font-size:12px;color:var(--muted)}
.roof-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.7fr);gap:22px;align-items:start}
.roof-side{display:grid;gap:10px}
#cr-3d{background:none}
.roof-grid .d3-wrap{background:linear-gradient(to bottom,#DDE7FF,#F7F3EE)}
.roof-grid .cr-readout{top:auto;bottom:46px}
.dpane-grid.top{align-items:start}

/* name match */
.fl{font-size:12.5px;font-weight:600;color:var(--muted);margin-top:6px}
.tin{font:inherit;font-size:16px;padding:11px 13px;border-radius:12px;border:1px solid var(--rule-2);background:var(--paper);color:var(--ink);width:100%;min-width:0}
.tin:focus{outline:2px solid color-mix(in srgb,var(--teal) 50%,transparent);border-color:var(--teal)}
.nm-out{display:grid;gap:14px;min-width:0}
.nm-score{display:flex;align-items:center;gap:16px}
.nm-score svg{width:96px;height:96px;transform:rotate(-90deg);flex:none}
.nm-score circle{fill:none;stroke-width:10}
.nm-score .trk{stroke:var(--sunk)}
.nm-score .val{stroke:var(--teal);stroke-linecap:round;transition:stroke .3s}
.nm-score .val.rv{stroke:var(--amber)}.nm-score .val.no{stroke:#E5484D}
.nm-score b{display:block;font-size:34px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.nm-score span{font-weight:700;font-size:15px}
.nm-score span.ok{color:#18A47A}.nm-score span.rv{color:var(--amber)}.nm-score span.no{color:#E5484D}
.nm-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.nm-steps li{display:grid;grid-template-columns:62px minmax(0,1fr) minmax(0,1fr);gap:4px 10px;align-items:center;padding:9px 12px;border-radius:12px;background:var(--sunk);animation:fadein .4s ease both;animation-delay:var(--d)}
.nm-steps .sn{font-size:12px;font-weight:700;color:var(--muted)}
.nm-steps code{font-family:var(--mono);font-size:13px;overflow-wrap:anywhere;color:var(--ink)}
.nm-steps small{grid-column:2/-1;font-size:12px;color:var(--muted)}

/* parcel api */
.api-form{display:grid;gap:6px}
.api-form .btn2{justify-self:start;margin-top:8px}
.api-form select{font:inherit;font-size:15px;padding:10px 12px;border-radius:12px;border:1px solid var(--rule-2);background:var(--paper);color:var(--ink)}
.api-out{min-width:0;border-radius:16px;overflow:hidden;background:#0B0B0E;border:1px solid #232329}
.api-req{display:flex;align-items:center;gap:8px;padding:11px 14px;background:#141418;border-bottom:1px solid #232329;font-family:var(--mono);font-size:12.5px;color:#E4E6EB;overflow-x:auto;white-space:nowrap}
.api-req .m{color:#28C840;font-weight:700}
.api-req code{font-family:inherit}
.api-ms{margin-left:auto;color:#8E8E93}
.api-json{margin:0;padding:14px 16px;height:360px;overflow:auto;font-family:var(--mono);font-size:12.5px;line-height:1.6;color:#C7C9D1;white-space:pre-wrap;word-break:break-word}
.api-json.loading{opacity:.5}
.api-json .jk{color:#9DB4FF}.api-json .js{color:#A8E6A1}.api-json .jn{color:#FFC48C}.api-json .jb{color:#E59BFF}
.api-json .st{display:inline-block;font-weight:700;padding:1px 8px;border-radius:6px;margin-bottom:4px}
.api-json .s200{background:#16351f;color:#5BE37D}.api-json .s422{background:#3d1717;color:#FF7B7B}

@media (max-width:900px){
  .chap,.roof-grid{grid-template-columns:1fr}
  .chap.flip .chap-copy{order:0}
  .three-box.tall{aspect-ratio:4/3;min-height:300px}
  .d3-legend{bottom:44px;left:12px;right:auto}
}
@media (max-width:640px){
  .hero-cap{display:none}
  .pdr div{grid-template-columns:1fr;gap:2px}
  .d3-hint{white-space:normal;text-align:center;width:calc(100% - 24px);font-size:11.5px}
  .d3-card{top:auto;bottom:12px}
  .nm-steps li{grid-template-columns:1fr}
  .nm-steps small{grid-column:1}
  .api-json{height:300px}
  .tenure-bar .tick.now{display:none}
}
@media (prefers-reduced-motion:reduce){#hero3d{transition:none}.nm-steps li,.d3-card{animation:none}}
.cv-sheet{margin:8px auto 0;max-width:900px;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.06),0 40px 90px -40px rgba(20,20,50,.45);border:1px solid var(--rule);transform-origin:top center;animation:fadein .6s ease}
.cv-sheet img{display:block;width:100%;height:auto}

.api-req code{background:none;padding:0;color:inherit;font-size:inherit}

.status .gs-s{display:none}
@media (max-width:640px){.status{font-size:12.5px;max-width:calc(100vw - 32px)}.status .gl{display:none}.status .gs-s{display:inline}}
.hero2-inner>*{max-width:100%}
@media (max-width:640px){.race-track .promise span{left:auto;right:6px}}
@media (max-width:640px){.d3-hint{display:none}.d3-legend{position:static;margin:0;border:0;border-radius:0;background:var(--surface);padding:10px 14px}.roof-grid .cr-readout{display:none}.d3-card{max-height:70%;overflow:auto}}

/* LCP: the name is visible from the first paint; it only slides */
.gs .hero2 .hero2-name{opacity:1;animation-name:slide}
@keyframes slide{from{transform:translateY(28px)}to{transform:none}}

/* LCP: hero text is visible from the first paint and only slides in */
.gs .hero2 .rv{opacity:1;animation-name:slide}
.cv-h1{margin-top:10px;font-size:clamp(32px,4.4vw,54px);letter-spacing:-.035em}
@media print{@page{size:A4;margin:0}.site-header,.site-footer,.progress,.skip,.cv-sec .sec-h,.kbar,.toast{display:none!important}.cv-sec{padding:0!important}.cv-sec .wrap{max-width:none;padding:0}.cv-sheet{box-shadow:none;border:0;border-radius:0;max-width:none;margin:0;animation:none}}
/* FAQ */
.faq{display:grid;gap:10px;max-width:860px}
.qa{background:var(--surface);border:1px solid var(--rule);border-radius:18px;padding:0;box-shadow:var(--shadow);overflow:hidden}
.qa summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:600;font-size:17.5px;display:flex;justify-content:space-between;gap:16px;align-items:center}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";font-size:22px;font-weight:400;color:var(--muted);transition:transform .25s}
.qa[open] summary::after{transform:rotate(45deg)}
.qa p{padding:0 22px 20px;color:var(--ink-2);max-width:70ch}
.qa summary:focus-visible{outline:2px solid var(--teal);outline-offset:-2px;border-radius:18px}
.btn2.play span{font-size:12px}
.vmodal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:16px;animation:fadein .25s ease}
.vbox{position:relative;width:min(960px,100%);aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#000;box-shadow:0 40px 120px rgba(0,0,0,.6)}
.vbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vx{position:absolute;right:10px;top:8px;z-index:2;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;font-size:24px;cursor:pointer}
/* private /for/ pages */
.pitch-hero{position:relative;padding-block:clamp(70px,10vw,120px) 40px;overflow:hidden;isolation:isolate}
.pitch-hero::before{content:"";position:absolute;inset:-20% -10% auto;height:120%;z-index:-1;background:radial-gradient(40% 50% at 80% 20%,var(--teal-soft),transparent 70%),radial-gradient(35% 45% at 95% 70%,var(--stamp-soft),transparent 70%)}
.pitch-h1{margin-top:22px;font-size:clamp(36px,5.6vw,68px);letter-spacing:-.04em;max-width:18ch}
.pitch-lead{margin-top:18px;font-size:clamp(17px,1.6vw,20px);color:var(--ink-2);max-width:62ch}
.pitch-note{margin-top:22px;font-size:13px;color:var(--muted)}
.pitch-sec{padding-block:clamp(48px,7vw,84px)}
.pitch-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pitch-cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.pitch-cards .card2 h3{font-size:21px}
.plan{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.plan>li{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:24px;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--rule);box-shadow:var(--shadow)}
.plan-n{font-weight:700;color:var(--teal);font-size:15px}
.plan h3{font-size:22px;letter-spacing:-.02em}
.plan ul{margin:10px 0 0;padding-left:18px;color:var(--ink-2);display:grid;gap:6px}
.plan-out{margin-top:12px;font-size:15px;color:var(--ink)}
.why{margin:0;padding-left:20px;display:grid;gap:10px;font-size:17px;color:var(--ink-2);max-width:72ch}
.why li::marker{color:var(--teal)}
.faq-mini{margin-top:24px;max-width:860px}.faq-mini p{padding-bottom:10px}
.pitch-src{padding-bottom:60px;font-size:14px;color:var(--muted)}.pitch-src ol{padding-left:20px;display:grid;gap:4px}
@media (max-width:900px){.pitch-cards,.pitch-cards.three{grid-template-columns:1fr}.plan>li{grid-template-columns:1fr;gap:8px}}
.d3-card .kv{display:grid;grid-template-columns:1fr auto;gap:4px 10px;font-size:12.5px;margin-top:8px}.d3-card .kv span{color:var(--muted)}.d3-card .kv span.on{color:var(--ink);font-weight:600}
