/* Homepage (Nov 2026 update). Uses the tokens in site.css; nothing here redefines them. */

/* hero */
.v2 .hero{padding:96px 0 var(--s-20)}
.v2 .hero h1{max-width:860px;text-wrap:balance}
@media (max-width:640px){.v2 .hero h1 br{display:none}}
.v2 .hero .lede{max-width:660px}
.v2 .hero .beta{max-width:560px;margin-left:auto;margin-right:auto;font-size:13px;line-height:1.6;color:var(--muted)}

/* section heads with a short intro paragraph */
.v2 .section-head p.intro{max-width:620px;margin-top:var(--s-4);font-size:var(--fs-body);line-height:1.65}
.v2 .section-head.stack{display:block}

/* ── evidence scene ─────────────────────────────── */
.v2 .scene{border:1px solid var(--line);border-radius:20px;background:linear-gradient(160deg,#121315,#0C0D0F);overflow:clip}
.v2 .scene-label{display:flex;align-items:center;gap:10px;padding:14px 24px;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;color:var(--muted);background:#0E0F11}
.v2 .scene-label::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}
.v2 .scene-steps{list-style:none;margin:0;padding:20px 24px 0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;counter-reset:s}
.v2 .scene-steps li{margin:0}
.v2 .scene-steps .sbtn{width:100%;text-align:left;display:flex;flex-direction:column;gap:6px;padding:10px 12px;min-height:64px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--soft);transition:border-color var(--t-fast) ease,color var(--t-fast) ease,background var(--t-fast) ease}
.v2 .scene-steps .sbtn .n{font-family:var(--font-mono);font-size:11px;color:var(--soft)}
.v2 .scene-steps .sbtn .t{font-size:13px;line-height:1.35;color:inherit}
.v2 .scene-steps .sbtn:hover{border-color:var(--line-hi);color:var(--cream)}
.v2 .scene-steps .sbtn.done{color:var(--muted)}
.v2 .scene-steps .sbtn.done .n{color:var(--gold)}
.v2 .scene-steps .sbtn[aria-current="step"]{border-color:var(--gold);color:var(--cream);background:rgba(189,162,113,.06)}
.v2 .scene-steps .sbtn[aria-current="step"] .n{color:var(--gold-hi)}
.v2 .scene-steps .sbtn[disabled]{cursor:default}
.v2 .scene-caption{margin:18px 24px 0;min-height:3.3em;font-size:15px;line-height:1.65;color:var(--cream);max-width:760px}
.v2 .scene-caption .k{font-family:var(--font-mono);font-size:12px;color:var(--gold);margin-right:10px}

.v2 .stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding:20px 24px 24px}
.v2 .panel{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:18px 20px;transition:opacity .45s cubic-bezier(.22,1,.36,1),border-color .45s ease}
.v2 .panel h3{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);margin-bottom:12px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px}
.v2 .panel h3 .tag{letter-spacing:.02em;text-transform:none;color:var(--soft)}
.v2 .panel.action{grid-column:1/-1}
.v2 .panel.result{grid-column:1/-1}
.v2 .kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 20px;margin:0;font-size:14px}
.v2 .kv dt{color:var(--soft);font-family:var(--font-mono);font-size:12px;padding-top:2px}
.v2 .kv dd{margin:0;color:var(--cream);font-family:var(--font-mono);font-size:13px;overflow-wrap:anywhere}
.v2 .kv dd.missing{color:var(--bad)}
.v2 .action-row{display:flex;flex-wrap:wrap;gap:8px 28px;font-family:var(--font-mono);font-size:13px;color:var(--cream)}
.v2 .action-row span b{font-weight:400;color:var(--soft);margin-right:8px}
.v2 .action-state{margin-top:12px;font-size:13px;color:var(--muted)}
.v2 .clause{font-size:15px;line-height:1.75;color:#D9D4CA}
.v2 .clause .src{display:block;margin-top:10px;font-family:var(--font-mono);font-size:11px;color:var(--soft)}
.v2 .clause mark{background:transparent;color:inherit;border-radius:4px;padding:1px 2px;transition:background var(--t) ease,box-shadow var(--t) ease,color var(--t) ease}
.v2 .align{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.v2 .align p{display:flex;gap:10px;align-items:baseline;font-size:13px;line-height:1.55;color:var(--muted);transition:opacity var(--t) ease}
.v2 .align p .sym{font-family:var(--font-mono);flex:none;width:16px}
.v2 .align .ok .sym{color:var(--good)}
.v2 .align .gap .sym{color:var(--bad)}
.v2 .quote{margin:10px 0 0;padding:10px 14px;border-left:2px solid var(--bad);background:rgba(227,139,108,.07);border-radius:0 8px 8px 0;font-size:14px;line-height:1.6;color:var(--cream)}
.v2 .quote cite{display:block;font-style:normal;font-family:var(--font-mono);font-size:11px;color:var(--soft);margin-top:4px}
.v2 .result-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:10px}
.v2 .result-badge{display:inline-flex;align-items:center;gap:8px;font-size:18px;font-weight:500;color:var(--cream)}
.v2 .result-badge::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--gold)}
.v2 .chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.v2 .chips li{font-family:var(--font-mono);font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:3px 8px}
.v2 .panel.result p{font-size:14px;line-height:1.65;max-width:760px}
.v2 .panel.result p+p{margin-top:8px}

/* step states: JS sets data-step on .scene; without JS it stays at 6 and everything shows */
.v2 .scene .panel{opacity:1}
.v2 .scene[data-step="1"] .p-clause,.v2 .scene[data-step="1"] .p-term,.v2 .scene[data-step="1"] .p-result,
.v2 .scene[data-step="2"] .p-term,.v2 .scene[data-step="2"] .p-result,
.v2 .scene[data-step="3"] .p-result,.v2 .scene[data-step="4"] .p-result,.v2 .scene[data-step="5"] .p-result{opacity:.22}
.v2 .scene .s4,.v2 .scene .s5{opacity:1}
.v2 .scene[data-step="1"] .s4,.v2 .scene[data-step="2"] .s4,.v2 .scene[data-step="3"] .s4,
.v2 .scene[data-step="1"] .s5,.v2 .scene[data-step="2"] .s5,.v2 .scene[data-step="3"] .s5,.v2 .scene[data-step="4"] .s5{opacity:0}
.v2 .scene[data-step="1"] .p-action,.v2 .scene[data-step="2"] .p-clause,.v2 .scene[data-step="3"] .p-term,.v2 .scene[data-step="6"] .p-result{border-color:var(--gold-line)}
.v2 .scene[data-step="4"] .p-clause,.v2 .scene[data-step="4"] .p-term{border-color:rgba(143,203,155,.4)}
.v2 .scene[data-step="5"] .p-clause,.v2 .scene[data-step="5"] .p-term{border-color:rgba(227,139,108,.45)}
.v2 .scene[data-step="2"] mark.m-price,.v2 .scene[data-step="2"] mark.m-cond{background:rgba(189,162,113,.14)}
.v2 .scene:is([data-step="4"],[data-step="5"],[data-step="6"]) mark.m-price{background:rgba(143,203,155,.14);box-shadow:inset 0 -1px 0 var(--good)}
.v2 .scene:is([data-step="5"],[data-step="6"]) mark.m-cond{background:rgba(227,139,108,.16);box-shadow:inset 0 -1px 0 var(--bad)}
.v2 .scene:is([data-step="4"],[data-step="5"],[data-step="6"]) .dd-price{color:var(--good)}
.v2 .scene-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 24px 22px}
.v2 .scene-ctl .count{margin-left:auto;font-family:var(--font-mono);font-size:12px;color:var(--soft)}
.v2 .scene-ctl[hidden]{display:none}
.v2 .scene-note{margin-top:var(--s-5);max-width:820px;font-size:13px;line-height:1.65;color:var(--muted)}
.v2 .scene-fallback{margin:14px 24px 0;font-size:13px;color:var(--muted)}
.v2 .scene.js .scene-fallback{display:none}

/* ── capabilities tabs ─────────────────────────── */
.v2 .tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:var(--s-6)}
.v2 .tabs[hidden]{display:none}
.v2 .tab{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 18px;min-width:200px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--muted);text-align:left;transition:border-color var(--t-fast) ease,color var(--t-fast) ease,background var(--t-fast) ease}
.v2 .tab .tl{font-size:16px;font-weight:500;color:inherit}
.v2 .tab .av{font-family:var(--font-mono);font-size:11px;color:var(--soft)}
.v2 .tab:hover{border-color:var(--line-hi);color:var(--cream)}
.v2 .tab[aria-selected="true"]{border-color:var(--gold);color:var(--cream);background:rgba(189,162,113,.05)}
.v2 .cap{border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad);background:linear-gradient(140deg,#141516,#0F1012)}
.v2 .cap+.cap{margin-top:var(--s-4)}
.v2 .caps.js .cap+.cap{margin-top:0}
.v2 .cap[hidden]{display:none}
.v2 .cap-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:var(--s-4)}
.v2 .cap-head h3{font-size:24px}
.v2 .avail{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:11px;letter-spacing:.02em;padding:4px 10px;border-radius:999px;border:1px solid var(--line-hi);color:var(--muted)}
.v2 .avail::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--soft)}
.v2 .avail.live{border-color:rgba(143,203,155,.4);color:var(--good)}
.v2 .avail.live::before{background:var(--good)}
.v2 .avail.proto{border-color:rgba(189,162,113,.45);color:var(--gold-hi)}
.v2 .avail.proto::before{background:var(--gold)}
.v2 .cap-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--s-8)}
.v2 .cap p{font-size:15px;line-height:1.7}
.v2 .cap p+p{margin-top:var(--s-3)}
.v2 .cap ul.facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.v2 .cap ul.facts li{font-size:14px;line-height:1.6;color:var(--muted);padding-left:18px;position:relative}
.v2 .cap ul.facts li::before{content:'';position:absolute;left:0;top:.7em;width:6px;height:1px;background:var(--gold)}
.v2 .cap .limit{margin-top:var(--s-5);border-left:2px solid var(--gold);padding-left:var(--s-4);font-size:14px;color:var(--muted)}
.v2 .linkrow{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:var(--s-6)}
.v2 .exploring{margin-top:var(--s-6);font-size:13px;color:var(--soft)}

/* ── workflow ─────────────────────────────────── */
.v2 .flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;align-items:stretch;list-style:none;margin:0;padding:0}
.v2 .flow li{position:relative;padding:22px 22px 22px;border:1px solid var(--line);background:var(--surface);margin:0}
.v2 .flow li:first-child{border-radius:14px 0 0 14px}
.v2 .flow li:last-child{border-radius:0 14px 14px 0}
.v2 .flow li+li{border-left:0}
.v2 .flow li+li::before{content:'→';position:absolute;left:-11px;top:22px;width:22px;height:22px;display:grid;place-items:center;font-size:13px;color:var(--gold);background:var(--bg);border:1px solid var(--line);border-radius:50%}
.v2 .flow .who{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.v2 .flow h3{font-size:18px;margin:10px 0 8px}
.v2 .flow p{font-size:14px;line-height:1.6}
.v2 .flow li.tanilo{background:linear-gradient(160deg,rgba(189,162,113,.07),var(--surface))}
.v2 .flow li.tanilo .who{color:var(--gold)}
.v2 .flow code{font-size:12px}
.v2 .receipt-note{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:10px}
.v2 .receipt-note div{grid-column:2/4;border:1px dashed var(--line-hi);border-radius:12px;padding:12px 16px;font-size:13px;line-height:1.6;color:var(--muted)}
.v2 .receipt-note b{font-weight:500;color:var(--cream)}
.v2 .flow-notes{margin-top:var(--s-8);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 40px;list-style:none;padding:0}
.v2 .flow-notes li{font-size:14px;line-height:1.65;color:var(--muted);padding-left:18px;position:relative}
.v2 .flow-notes li::before{content:'';position:absolute;left:0;top:.75em;width:6px;height:1px;background:var(--gold)}
.v2 .vocab{margin-top:var(--s-8);width:100%;border-collapse:collapse;font-size:14px}
.v2 .vocab caption{text-align:left;font-size:13px;color:var(--soft);padding-bottom:10px}
.v2 .vocab th,.v2 .vocab td{text-align:left;padding:10px 14px;border-top:1px solid var(--line);vertical-align:top;color:var(--muted)}
.v2 .vocab th{font-weight:500;color:var(--cream)}
.v2 .vocab thead th{font-size:12px;font-family:var(--font-mono);font-weight:400;color:var(--soft);border-top:0}
.v2 .tablewrap{overflow-x:auto}

/* ── records ──────────────────────────────────── */
.v2 .records .verify{margin-top:0;max-width:none}
.v2 .records-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--s-10);align-items:start}
.v2 .records-side p{font-size:15px;line-height:1.7}
.v2 .records-side p+p{margin-top:var(--s-4)}
.v2 .records-side .sigline{border-left:2px solid var(--gold);padding-left:var(--s-4);color:var(--cream)}
.v2 .records-side h3{font-size:18px;margin:var(--s-8) 0 var(--s-3)}
.v2 .records .verify-more{max-width:none;margin-top:var(--s-10)}
.v2 .records .demo-label{color:var(--cream)}
.v2 .demo-status{margin-top:8px;font-size:13px;color:var(--muted)}

/* ── engineering evidence ─────────────────────── */
.v2 .evid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}
.v2 .ev{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:linear-gradient(140deg,#141516,#0F1012);display:flex;flex-direction:column}
.v2 .ev .meta{font-family:var(--font-mono);font-size:11px;color:var(--soft);margin-bottom:10px}
.v2 .ev h3{font-size:19px;line-height:1.3;margin-bottom:var(--s-4)}
.v2 .ev dl{margin:0;display:flex;flex-direction:column;gap:12px}
.v2 .ev dt{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.v2 .ev dd{margin:3px 0 0;font-size:14px;line-height:1.6;color:var(--muted)}
.v2 .ev dd a{color:var(--cream);text-decoration:underline;text-decoration-color:rgba(189,162,113,.55);text-underline-offset:3px}
.v2 .ev dd a:hover{text-decoration-color:var(--gold)}
.v2 .ev .ran{color:var(--good)}
.v2 .surfaces{margin-top:var(--s-8);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-4)}
.v2 .surf{padding-top:var(--s-4);border-top:1px solid var(--line)}
.v2 .surf h3{font-size:15px;margin-bottom:6px}
.v2 .surf p{font-size:13px;line-height:1.6}
.v2 .surf code{font-size:12px}
.v2 .surf a{text-decoration:underline;text-decoration-color:rgba(189,162,113,.55);text-underline-offset:3px;color:var(--cream)}

/* ── starting point ───────────────────────────── */
.v2 .start{padding:44px;border:1px solid var(--gold-line);border-radius:var(--radius);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-10);align-items:center;background:radial-gradient(120% 140% at 100% 0%,rgba(189,162,113,.08),transparent 55%),var(--surface)}
.v2 .start h2{margin:var(--s-3) 0 var(--s-4)}
.v2 .start p{max-width:640px}
.v2 .start p+p{margin-top:var(--s-3)}
.v2 .start .fine{color:var(--soft)}

/* ── docs and trust ───────────────────────────── */
.v2 .linkgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}
.v2 .lg{display:block;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color var(--t-fast) ease}
.v2 .lg:hover{border-color:#6C6048}
.v2 .lg h3{font-size:16px;margin-bottom:6px;display:flex;justify-content:space-between;gap:10px}
.v2 .lg h3 span{color:var(--gold)}
.v2 .lg p{font-size:13px;line-height:1.6}

/* ── responsive ───────────────────────────────── */
@media (max-width:1100px){
  .v2 .scene-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v2 .evid{grid-template-columns:1fr 1fr}
  .v2 .surfaces{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .v2 .stage{grid-template-columns:1fr}
  .v2 .cap-grid,.v2 .records-grid,.v2 .stage{grid-template-columns:minmax(0,1fr)}
  .v2 .records-grid>*{min-width:0}
  .v2 .flow{grid-template-columns:1fr}
  .v2 .flow li,.v2 .flow li:first-child,.v2 .flow li:last-child{border-radius:0}
  .v2 .flow li:first-child{border-radius:14px 14px 0 0}
  .v2 .flow li:last-child{border-radius:0 0 14px 14px}
  .v2 .flow li+li{border-left:1px solid var(--line);border-top:0}
  .v2 .flow li+li::before{content:'↓';left:22px;top:-11px}
  .v2 .receipt-note{display:block}
  .v2 .flow-notes{grid-template-columns:1fr}
  .v2 .start{grid-template-columns:1fr;padding:28px}
  .v2 .linkgrid{grid-template-columns:1fr 1fr}
  .v2 .tab{min-width:0;flex:1 1 30%}
}
@media (max-width:640px){
  .v2 .hero{padding:56px 0 var(--s-14)}
  .v2 .scene-label{padding:12px 16px;font-size:11px}
  .v2 .scene-steps{grid-template-columns:repeat(6,minmax(0,1fr));padding:16px 16px 0;gap:6px}
  .v2 .scene-steps .sbtn{min-height:44px;padding:8px 0;align-items:center;justify-content:center}
  .v2 .scene-steps .sbtn .t{display:none}
  .v2 .scene-steps .sbtn .n{font-size:13px}
  .v2 .scene-caption{margin:14px 16px 0}
  .v2 .stage{padding:16px;gap:12px}
  .v2 .panel{padding:16px}
  .v2 .scene-ctl{padding:12px 16px 14px;position:sticky;bottom:0;z-index:5;background:rgba(12,13,15,.96);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .v2 .scene-ctl .tcmd{flex:1 1 auto}
  .v2 .scene-ctl .count{width:100%;margin-left:0;order:-1}
  .v2 .evid,.v2 .surfaces,.v2 .linkgrid{grid-template-columns:1fr}
  .v2 .tab{flex:1 1 100%}
  .v2 .cap{padding:22px}
  .v2 .vocab{font-size:13px}
}
/* short laptops: keep the scene inside one screen */
@media (min-width:861px) and (max-height:820px){
  .v2 .hero{padding:64px 0 var(--s-14)}
  .v2 .stage{padding-top:14px;gap:12px}
  .v2 .panel{padding:14px 18px}
  .v2 .clause{font-size:14px;line-height:1.65}
}
@media (prefers-reduced-motion:reduce){
  .v2 .panel,.v2 .clause mark,.v2 .align p,.v2 .sbtn,.v2 .tab{transition:none!important}
}

/* ── sub pages (docs index, verify, engineering) ── */
.v2 .subpage .sub-hero{padding:80px 0 var(--s-8);max-width:780px}
.v2 .subpage .sub-hero h1{font-size:clamp(40px,5vw,56px);margin:var(--s-3) 0 var(--s-5)}
.v2 .subpage .sub-hero .lede{text-align:left;margin:0;max-width:720px}
.v2 .subpage .section.tight{padding:var(--s-10) 0}
.v2 .subpage .section.tight:last-child{padding-bottom:var(--s-20)}
.v2 .h-sm{font-size:22px;margin-bottom:var(--s-4)}
.v2 .sigline-lg{border-left:2px solid var(--gold);padding-left:var(--s-4);color:var(--cream);font-size:16px;line-height:1.65;max-width:760px}
.v2 .evid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.v2 .evid.two .codebox{margin:var(--s-3) 0}
.v2 .ev .p-sm{font-size:14px;line-height:1.65;color:var(--muted)}
.v2 .ev .p-sm+.p-sm{margin-top:var(--s-3)}
.v2 .ev h3.mt{margin-top:var(--s-8)}
.v2 .ev .fine{font-size:13px;color:var(--muted);margin-top:var(--s-3)}
@media (max-width:860px){.v2 .evid.two{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.v2 .subpage .sub-hero{padding:48px 0 var(--s-6)}}
@media (max-width:520px){
  .v2 .vocab,.v2 .vocab tbody,.v2 .vocab tr,.v2 .vocab th,.v2 .vocab td,.v2 .vocab caption{display:block;width:100%}
  .v2 .vocab thead{display:none}
  .v2 .vocab tr{border-top:1px solid var(--line);padding:10px 0}
  .v2 .vocab th,.v2 .vocab td{border-top:0;padding:3px 0}
  .v2 .vocab code{overflow-wrap:anywhere}
}
