:root{
  /* Type scale (DESIGN.md §11). Every text size is one of these; icons keep their own. */
  --fs-label:11px;   /* the floor: mono kickers, table headers, chips */
  --fs-small:12.5px; /* secondary text, metadata, help lines */
  --fs-base:14px;    /* body and UI copy */
  --fs-lead:16px;    /* lead paragraphs, important values */
  --fs-title:20px;   /* card and section titles */
  --fs-head:27px;    /* panel h1 */
  --fs-display:34px; /* website headlines */
  --teal:#1B4A3E; --teal-deep:#123128; --teal-light:#24594B;
  --gold:#D9B44A; --gold-soft:#EFE0AE;
  --paper:#F4F1E8; --paper-2:#FBF9F2; --card:#FFFFFF;
  --ink:#16231D; --ink-2:#31423A; --slate:#5E6E64; --slate-2:#5E6D60;
  --line:#E2DDCE; --line-soft:#ECE8DC; --mint:#E5EFE9; --mint-line:#B9D3C7;
  --danger:#A23A2E; --danger-bg:#FAE9E5; --warn:#93650F; --warn-bg:#FAF0DC;
  /* Gold as text or an icon on a light surface: --gold (#D9B44A) is a fill and reads 1.8:1
     as text. Text on a teal surface: white in light, near-black on dark mode's bright teal. */
  --gold-ink:#96721F; --on-teal:#FFFFFF; --prov:#4B3FB0;
  /* Gold text on the explorer band, which is dark in both themes. */
  --gold-on-dark:#E4C878;
  --maxw:1120px; --r:14px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --teal:#39B58C; --teal-deep:#0C1712; --teal-light:#3FCF9E;
    --gold:#E4C878; --gold-soft:#4A421F;
    --paper:#0E1613; --paper-2:#121D18; --card:#16231D;
    --ink:#EAF1EC; --ink-2:#C4D3CB; --slate:#9BB0A5; --slate-2:#7E9187;
    --line:#28382F; --line-soft:#20302A; --mint:#16241D; --mint-line:#2C4A3D;
    --danger:#E58A7D; --danger-bg:#3A2420; --warn:#E3B25A; --warn-bg:#2E2614;
    --gold-ink:#E4C878; --on-teal:#0E1613; --prov:#A99FF0;
  }
}
:root[data-theme="dark"]{
  --teal:#39B58C; --teal-deep:#0C1712; --teal-light:#3FCF9E;
  --gold:#E4C878; --gold-soft:#4A421F;
  --paper:#0E1613; --paper-2:#121D18; --card:#16231D;
  --ink:#EAF1EC; --ink-2:#C4D3CB; --slate:#9BB0A5; --slate-2:#7E9187;
  --line:#28382F; --line-soft:#20302A; --mint:#16241D; --mint-line:#2C4A3D;
  --danger:#E58A7D; --danger-bg:#3A2420; --warn:#E3B25A; --warn-bg:#2E2614;
  --gold-ink:#E4C878; --on-teal:#0E1613; --prov:#A99FF0;
}
*{box-sizing:border-box;}
/* `hidden` must actually hide. The UA rule for [hidden] is display:none, but it
   loses to any class that sets display — `.btn{display:inline-flex}` in
   particular, which left the "Book a walkthrough" button visible as a dead link
   whenever SCHEDULING_URL was unset. */
[hidden]{display:none!important;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{margin:0; background:var(--paper); color:var(--ink); font-family:'Inter',system-ui,sans-serif; font-size:var(--fs-lead); line-height:1.6; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Newsreader',Georgia,serif; font-weight:500; line-height:1.1; letter-spacing:-.01em; text-wrap:balance; margin:0;}
p{margin:0;}
a{color:inherit; text-decoration:none;}
.ms{display:inline-flex; align-items:center; justify-content:center; width:1em; height:1em; font-style:normal; line-height:1; vertical-align:-0.15em; flex-shrink:0;}
.ms svg{width:100%; height:100%; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
.eyebrow{font-family:'IBM Plex Mono',monospace; font-size:var(--fs-small); letter-spacing:.12em; text-transform:uppercase; color:var(--teal); font-weight:500;}
.btn{display:inline-flex; align-items:center; gap:8px; font-family:'Inter',sans-serif; font-size:var(--fs-base); font-weight:600; border-radius:10px; padding:12px 20px; cursor:pointer; border:1.5px solid transparent; transition:transform .12s ease, background .15s ease, border-color .15s;}
.btn:active{transform:translateY(1px);}
.btn-go{background:var(--gold); color:#20180A; border-color:var(--gold);}
.btn-go:hover{background:var(--gold-soft); color:var(--ink);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line);}
.btn-ghost:hover{border-color:var(--teal); color:var(--teal);}
.btn i{font-size:19px;}
.seal{width:30px;height:30px;border-radius:50%;border:1.6px solid var(--gold);display:inline-flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;}
.seal::before{content:"";position:absolute;inset:4px;border:1px solid var(--gold);opacity:.5;border-radius:50%;}
.seal i{font-size:14px;color:var(--gold-ink);}

/* ---- founding-cohort form (added for the live site) ---- */
.jf-fine{font-size:var(--fs-small); color:color-mix(in srgb, var(--on-teal) 78%, var(--teal)); margin:0;}

/* ---- draft-policy banner (privacy.html / terms.html) ---- */
.draft-banner{display:flex; align-items:flex-start; gap:10px; background:color-mix(in srgb, var(--gold) 18%, transparent); border:1px solid var(--gold); border-radius:10px; padding:13px 15px; font-size:var(--fs-base); color:var(--ink); margin-bottom:28px;}
.draft-banner i{color:var(--gold-ink); font-size:19px; flex-shrink:0;}
.legal{max-width:70ch;}
.legal h2{font-size:var(--fs-title); margin:32px 0 10px;}
.legal h3{font-size:var(--fs-lead); margin:22px 0 8px;}
.legal p, .legal li{font-size:var(--fs-lead); color:var(--ink-2); line-height:1.7;}
.legal ul{padding-left:20px; display:flex; flex-direction:column; gap:7px;}
.legal a{color:var(--teal); text-decoration:underline;}
.legal .meta{font-family:'IBM Plex Mono',monospace; font-size:var(--fs-small); color:var(--slate-2); text-transform:uppercase; letter-spacing:.06em;}
.legal blockquote{margin:14px 0; padding:12px 18px; border-radius:10px; background:var(--mint); font-size:var(--fs-lead); color:var(--ink); line-height:1.6;}
.legal .table-wrap{overflow-x:auto; margin:14px 0 6px; border:1px solid var(--line); border-radius:10px;}
.legal table.clauses{border-collapse:collapse; width:100%; min-width:640px; font-size:var(--fs-base); line-height:1.55; color:var(--ink-2);}
.legal table.clauses th, .legal table.clauses td{padding:9px 12px; border-bottom:1px solid var(--line-soft); text-align:left; vertical-align:top;}
.legal table.clauses thead th{background:var(--paper-2); color:var(--ink); font-weight:600;}
.legal table.clauses tbody th{font-family:'IBM Plex Mono',monospace; font-size:var(--fs-small); white-space:nowrap; color:var(--ink);}
.legal table.clauses tbody tr:last-child th, .legal table.clauses tbody tr:last-child td{border-bottom:0;}

/* ---- nav ---- */
header.nav{position:sticky; top:env(safe-area-inset-top,0px); z-index:40; background:color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid var(--line-soft);}
.nav-in{display:flex; align-items:center; justify-content:space-between; height:64px; gap:16px;}
.brand{display:flex; align-items:center; gap:10px; font-family:'Newsreader',serif; font-size:20px; font-weight:600; letter-spacing:.01em;}
.nav-links{display:flex; align-items:center; gap:26px;}
.nav-links a{font-size:var(--fs-base); color:var(--ink-2); font-weight:500;}
.nav-links a.btn-go{color:#20180A;}
.nav-links a:hover{color:var(--teal);}
/* The dropdown's copy of the gold CTA. Hidden by default at every width — the
   ≤860px block below reveals it once the menu is open, which is the only place
   it belongs. Without this the desktop nav renders the CTA twice. */
.nav-links .btn-go{display:none;}
/* Login is now visible at every width (the source hid it below 860px, which
   left phones with no way to sign in). On a narrow phone that extra button no
   longer fits beside the theme toggle, so the toggle goes: the OS
   prefers-color-scheme setting still drives dark mode without it. */
@media (max-width:430px){
  .nav-in{gap:10px;}
  header.nav .wrap{padding-left:14px; padding-right:14px;}
  #themeBtn{display:none;}
  /* Smaller wordmark and seal buy back the width Login costs. Without this the
     hamburger is pushed past the right edge on a 320-360px phone and the menu
     becomes unreachable. */
  header.nav .brand{font-size:16px; gap:7px;}
  header.nav .seal{width:26px; height:26px;}
}
/* iPhone SE and friends. The last few pixels that keep the hamburger on screen. */
@media (max-width:340px){
  header.nav .wrap{padding-left:8px; padding-right:8px;}
  .nav-in{gap:8px;}
}
.nav-cta{display:flex; align-items:center; gap:10px;}
.icon-btn{width:38px;height:38px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.icon-btn:hover{border-color:var(--teal);color:var(--teal);}
.icon-btn i{font-size:19px;}
#navToggle{display:none;}
@media (max-width:860px){ .nav-links{display:none;} .nav-links.open{display:flex; position:absolute; top:64px; left:0; right:0; flex-direction:column; background:var(--paper-2); border-bottom:1px solid var(--line); padding:14px 24px; gap:16px;} #navToggle{display:inline-flex;} .nav-cta .btn-go{display:none;} .nav-links.open .btn-go{display:inline-flex;} }
html,body{overflow-x:hidden;}

/* ---- hero ---- */
.hero{padding:72px 0 40px; position:relative; overflow:hidden;}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center;}
@media (max-width:900px){ .hero-grid{grid-template-columns:1fr; gap:36px;} }
.hero h1{font-size:clamp(38px,5.4vw,62px);}
.hero h1 em{font-style:italic; color:var(--teal);}
.hero-sub{font-size:var(--fs-title); color:var(--ink-2); margin-top:22px; max-width:34ch;}
.hero-cta{display:flex; gap:12px; margin-top:30px; flex-wrap:wrap;}
.hero-note{margin-top:18px; font-size:var(--fs-small); color:var(--slate); display:flex; align-items:center; gap:8px;}
.hero-note i{font-size:16px; color:var(--teal);}

/* product visual: workflow card */
.demo{background:var(--card); border:1px solid var(--line); border-radius:18px; box-shadow:0 1px 3px rgba(18,49,40,.06), 0 20px 48px -28px rgba(18,49,40,.38); overflow:hidden;}
.demo-top{display:flex; align-items:center; gap:8px; padding:12px 16px; border-bottom:1px solid var(--line-soft); background:var(--paper-2);}
.dot{width:10px;height:10px;border-radius:50%;}
.demo-title{font-family:'IBM Plex Mono',monospace; font-size:var(--fs-small); color:var(--slate-2); margin-left:6px;}
.demo-body{padding:20px;}
.demo-tabs{display:flex; gap:6px; margin-bottom:16px;}
.demo-tab{flex:1; text-align:center; font-size:var(--fs-small); font-weight:600; padding:9px 8px; border-radius:9px; border:1px solid var(--line); background:transparent; color:var(--ink-2); cursor:pointer; font-family:inherit;}
.demo-tab.on{background:var(--teal); border-color:var(--teal); color:var(--on-teal);}
.demo-tab .sub{display:block; font-size:var(--fs-label); font-weight:500; color:inherit; opacity:.85; margin-top:1px; font-family:'IBM Plex Mono',monospace;}
.flow{display:flex; flex-direction:column; gap:0;}
.flow-step{display:flex; gap:13px; align-items:flex-start; position:relative; padding-bottom:16px;}
.flow-step:last-child{padding-bottom:0;}
.flow-step::before{content:""; position:absolute; left:15px; top:30px; bottom:-2px; width:2px; background:var(--line);}
.flow-step:last-child::before{display:none;}
.flow-node{width:32px;height:32px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--mint);border:1px solid var(--mint-line);color:var(--teal);z-index:1;}
.flow-node i{font-size:18px;}
.flow-step.gold .flow-node{background:var(--gold-soft);border-color:var(--gold);color:var(--gold-ink);}
.flow-txt strong{display:block; font-size:var(--fs-base); color:var(--ink); font-weight:600;}
.flow-txt span{font-size:var(--fs-small); color:var(--slate);}
.demo-cap{margin-top:16px; font-size:var(--fs-small); color:var(--ink-2); background:var(--mint); border:1px solid var(--mint-line); border-radius:9px; padding:10px 12px; line-height:1.5;}

/* trust / standards strip */
.strip{border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); background:var(--paper-2);}
.strip-in{display:flex; align-items:center; gap:14px 34px; flex-wrap:wrap; justify-content:center; padding:22px 24px;}
.strip-label{font-family:'IBM Plex Mono',monospace; font-size:var(--fs-label); letter-spacing:.08em; text-transform:uppercase; color:var(--slate-2);}
.badge{display:inline-flex; align-items:center; gap:7px; font-size:var(--fs-base); font-weight:600; color:var(--ink-2);}
.badge i{font-size:17px; color:var(--teal);}

/* section scaffolding */
section{padding:76px 0;}
.sec-head{max-width:62ch;}
.sec-head h2{font-size:clamp(28px,3.6vw,42px); margin-top:12px;}
.sec-head p{font-size:var(--fs-lead); color:var(--ink-2); margin-top:14px;}
.center{margin-left:auto; margin-right:auto; text-align:center;}

/* problem cards */
.prob-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:40px;}
@media (max-width:820px){ .prob-grid{grid-template-columns:1fr;} }
.prob{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:24px;}
.prob i{font-size:24px; color:var(--gold-ink);}
.prob h3{font-size:var(--fs-title); margin:14px 0 8px;}
.prob p{font-size:var(--fs-base); color:var(--slate);}

/* signature: class-aware pathway explorer */
.explorer{background:var(--teal-deep); color:#EAF1EC; border-radius:24px; padding:44px; position:relative; overflow:hidden;}
:root[data-theme="dark"] .explorer{border:1px solid var(--line);}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .explorer{border:1px solid var(--line);} }
.explorer .eyebrow{color:var(--gold);}
.explorer h2{color:#fff; font-size:clamp(26px,3.4vw,38px); margin-top:10px;}
.explorer .lead{color:#B9CFC5; margin-top:12px; max-width:60ch;}
.exp-tabs{display:flex; gap:10px; flex-wrap:wrap; margin:28px 0 8px;}
.exp-tab{border:1.5px solid rgba(255,255,255,.18); background:rgba(255,255,255,.04); color:#EAF1EC; border-radius:11px; padding:12px 18px; cursor:pointer; font-family:inherit; font-size:var(--fs-base); font-weight:600; text-align:left; transition:border-color .15s, background .15s;}
.exp-tab:hover{border-color:rgba(255,255,255,.32); background:rgba(255,255,255,.08);}
.exp-tab .k{display:block; font-family:'IBM Plex Mono',monospace; font-size:var(--fs-label); color:#9DBBB0; margin-top:2px; font-weight:500;}
.exp-tab.on{border-color:var(--gold); background:rgba(217,180,74,.12);}
.exp-tab.on .k{color:var(--gold);}
.exp-track{display:flex; gap:10px; overflow-x:auto; padding:22px 2px 6px; scrollbar-width:thin;}
.exp-card{flex:0 0 auto; width:172px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:13px; padding:15px; position:relative;}
.exp-card .n{font-family:'IBM Plex Mono',monospace; font-size:var(--fs-label); color:var(--gold); letter-spacing:.06em;}
.exp-card h3{font-family:'Newsreader',serif; font-size:var(--fs-lead); font-weight:600; color:#fff; margin:6px 0 6px;}
.exp-card p{font-size:var(--fs-small); color:#B9CFC5; line-height:1.5;}
.exp-card .tag{display:inline-block; margin-top:10px; font-size:var(--fs-label); font-weight:600; padding:2px 8px; border-radius:20px; background:rgba(217,180,74,.16); color:var(--gold-on-dark);}
.exp-cap{margin-top:18px; font-size:var(--fs-base); color:#CDE0D7; display:flex; gap:9px; align-items:flex-start;}
.exp-cap i{color:var(--gold); font-size:18px; flex-shrink:0;}

/* feature bands */
.feat{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; padding:52px 0; border-top:1px solid var(--line-soft);}
.feat:nth-child(even) .feat-visual{order:-1;}
@media (max-width:860px){ .feat{grid-template-columns:1fr; gap:28px;} .feat:nth-child(even) .feat-visual{order:0;} }
.feat h3{font-size:clamp(24px,3vw,32px); margin:10px 0 14px;}
.feat p{color:var(--ink-2); font-size:var(--fs-lead);}
.feat ul{list-style:none; padding:0; margin:18px 0 0; display:flex; flex-direction:column; gap:10px;}
.feat li{display:flex; gap:10px; font-size:var(--fs-base); color:var(--ink-2);}
.feat li i{color:var(--teal); font-size:19px; flex-shrink:0;}
.feat-visual{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:20px; min-height:220px;}

/* provenance mini */
.prov-line{display:flex; gap:11px; padding:12px 0; border-bottom:1px dashed var(--line);}
.prov-line:last-child{border-bottom:none;}
.prov-line .bar{width:3px; border-radius:3px; flex-shrink:0;}
.prov-you .bar{background:var(--slate-2);} .prov-ai .bar{background:var(--prov);} .prov-ver .bar{background:var(--teal);}
.prov-line .lab{font-family:'IBM Plex Mono',monospace; font-size:var(--fs-label); letter-spacing:.05em; text-transform:uppercase; color:var(--slate-2);}
.prov-you .lab{color:var(--slate);} .prov-ai .lab{color:var(--prov);} .prov-ver .lab{color:var(--teal);}
.prov-line p{font-size:var(--fs-small); color:var(--ink-2); margin-top:2px;}

/* matrix mini */
.mini-matrix{width:100%; border-collapse:collapse; font-size:var(--fs-small);}
.mini-matrix th{text-align:left; font-family:'IBM Plex Mono',monospace; font-size:var(--fs-label); letter-spacing:.04em; text-transform:uppercase; color:var(--slate-2); font-weight:500; padding:7px 8px; border-bottom:1px solid var(--line);}
.mini-matrix td{padding:9px 8px; border-bottom:1px solid var(--line-soft); color:var(--ink-2); vertical-align:top;}
.mini-matrix tr:last-child td{border-bottom:none;}
.chip{display:inline-flex; align-items:center; gap:4px; font-size:var(--fs-label); font-weight:600; padding:2px 7px; border-radius:20px;}
.chip.ok{background:var(--mint); color:var(--teal);} .chip.gap{background:var(--danger-bg); color:var(--danger);}

/* comparison */
.cmp{width:100%; border-collapse:collapse; margin-top:34px; background:var(--card); border:1px solid var(--line); border-radius:var(--r); overflow:hidden;}
.cmp th, .cmp td{padding:14px 18px; text-align:left; border-bottom:1px solid var(--line-soft); font-size:var(--fs-base);}
.cmp thead th{font-family:'IBM Plex Mono',monospace; font-size:var(--fs-label); letter-spacing:.05em; text-transform:uppercase; color:var(--slate-2); font-weight:500; background:var(--paper-2);}
.cmp thead th.us{color:var(--teal);}
.cmp td.feat-name{font-weight:600; color:var(--ink);}
.cmp td.mid{text-align:center; width:150px;}
.cmp .yes{color:var(--teal); font-weight:700;}
.cmp .no{color:var(--slate-2);}
.cmp tr:last-child td{border-bottom:none;}
.cmp .us-col{background:color-mix(in srgb, var(--mint) 60%, transparent);}

/* pricing */
.price-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:40px; align-items:start;}
@media (max-width:980px){ .price-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .price-grid{grid-template-columns:1fr;} }
.price{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:24px; display:flex; flex-direction:column; gap:14px; height:100%;}
.price.pop{border-color:var(--gold); box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 25%, transparent);}
.price .tier{font-family:'IBM Plex Mono',monospace; font-size:var(--fs-small); letter-spacing:.06em; text-transform:uppercase; color:var(--slate-2);}
.price .amt{font-family:'Newsreader',serif; font-size:var(--fs-display); font-weight:600; color:var(--ink); line-height:1;}
.price .amt small{font-size:var(--fs-base); color:var(--slate); font-family:'Inter',sans-serif; font-weight:500;}
.price .who{font-size:var(--fs-base); color:var(--slate); min-height:38px;}
.price ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px;}
.price li{display:flex; gap:8px; font-size:var(--fs-base); color:var(--ink-2);}
.price li i{color:var(--teal); font-size:17px; flex-shrink:0;}
.pop-tag{align-self:flex-start; font-size:var(--fs-label); font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#20180A; background:var(--gold); padding:3px 10px; border-radius:20px;}
.price-note{text-align:center; margin-top:20px; font-size:var(--fs-small); color:var(--slate);}

/* testimonials placeholder */
.tst-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:36px;}
@media (max-width:820px){ .tst-grid{grid-template-columns:1fr;} }
.tst{background:var(--card); border:1px dashed var(--line); border-radius:var(--r); padding:24px; min-height:160px; display:flex; flex-direction:column; justify-content:space-between;}
.tst .quote{font-family:'Newsreader',serif; font-size:var(--fs-title); color:var(--slate-2); font-style:italic;}
.tst .who{display:flex; align-items:center; gap:10px; margin-top:18px;}
.tst .av{width:38px;height:38px;border-radius:50%;background:var(--line-soft);}
.tst .who div{height:9px; background:var(--line-soft); border-radius:4px;}

/* faq */
.faq{max-width:780px; margin:34px auto 0;}
.faq details{border:1px solid var(--line); border-radius:11px; background:var(--card); margin-bottom:10px; overflow:hidden;}
.faq summary{list-style:none; cursor:pointer; padding:18px 20px; display:flex; justify-content:space-between; align-items:center; gap:16px; font-weight:600; font-size:var(--fs-lead); color:var(--ink);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary i{color:var(--slate-2); transition:transform .18s; flex-shrink:0;}
.faq details[open] summary i{transform:rotate(45deg);}
.faq .ans{padding:0 20px 18px; color:var(--ink-2); font-size:var(--fs-base);}

/* final cta */
.cta{background:var(--teal); color:var(--on-teal); border-radius:24px; padding:56px 40px; text-align:center; position:relative; overflow:hidden;}
.cta h2{color:var(--on-teal); font-size:clamp(28px,3.6vw,44px);}
.cta p{color:color-mix(in srgb, var(--on-teal) 85%, var(--teal)); margin:14px auto 0; max-width:52ch; font-size:var(--fs-lead);}
.cta .hero-cta{justify-content:center;}
.cta .glow{position:absolute; width:420px;height:420px; border-radius:50%; background:radial-gradient(circle, rgba(217,180,74,.28), transparent 70%); top:-160px; right:-120px; pointer-events:none;}

/* footer */
footer{border-top:1px solid var(--line-soft); padding:48px 0 40px; margin-top:20px;}
.foot-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:28px;}
@media (max-width:820px){ .foot-grid{grid-template-columns:1fr 1fr;} }
.foot-grid h3{font-family:'IBM Plex Mono',monospace; font-size:var(--fs-label); letter-spacing:.08em; text-transform:uppercase; color:var(--slate-2); margin:0 0 12px; font-weight:500;}
.foot-grid a{display:block; font-size:var(--fs-base); color:var(--ink-2); margin-bottom:8px;}
.foot-grid a:hover{color:var(--teal);}
.foot-blurb{font-size:var(--fs-base); color:var(--slate); margin-top:12px; max-width:32ch;}
.foot-bottom{display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-top:36px; padding-top:20px; border-top:1px solid var(--line-soft); font-size:var(--fs-small); color:var(--slate-2);}
.disclaimer{margin-top:14px; font-size:var(--fs-label); color:var(--slate-2); max-width:80ch; line-height:1.5;}

.trustband{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:38px;}
@media (max-width:820px){ .trustband{grid-template-columns:1fr;} }
.tcard{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:22px;}
.tcard .tc-ic{width:40px;height:40px;border-radius:11px;background:var(--mint);border:1px solid var(--mint-line);color:var(--teal);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.tcard .tc-ic i{font-size:20px;}
.tcard h3{font-size:var(--fs-lead); margin:0 0 8px;}
.tcard>p{font-size:var(--fs-base); color:var(--slate); margin:0 0 4px;}
.tcard ul{list-style:none; margin:10px 0 0; padding:0;}
.tcard li{display:flex; gap:8px; align-items:flex-start; font-size:var(--fs-base); color:var(--ink-2); padding:5px 0; line-height:1.5;}
.tcard li>i{font-size:17px; color:var(--teal); flex-shrink:0; margin-top:1px;}
.tcard .st{display:inline-flex; align-items:center; gap:3px; font-size:var(--fs-label); font-weight:600; padding:1px 8px; border-radius:20px; margin-left:auto; white-space:nowrap; flex-shrink:0;}
.st.live{background:var(--mint); color:var(--teal);} .st.prog{background:color-mix(in srgb, var(--gold) 26%, transparent); color:var(--gold-ink);} .st.plan{background:var(--line-soft); color:var(--ink-2);}
.founder{display:grid; grid-template-columns:1fr 1.15fr; gap:44px; align-items:center;}
@media (max-width:860px){ .founder{grid-template-columns:1fr; gap:26px;} }
.founder-card{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:8px 26px;}
.founder-points{list-style:none; margin:0; padding:0;}
.founder-points li{display:flex; gap:11px; align-items:flex-start; font-size:var(--fs-lead); color:var(--ink-2); padding:16px 0; border-top:1px solid var(--line-soft); line-height:1.5;}
.founder-points li:first-child{border-top:none;}
.founder-points li i{color:var(--teal); flex-shrink:0; margin-top:2px;}
/* Visible at rest: the section only rises 8px into place, so it reads even if site.js
   never runs (it used to start at opacity 0). */
.reveal{transform:translateY(8px); transition:transform .25s ease-out;}
.reveal.in{transform:none;}
@media (prefers-reduced-motion:reduce){ .reveal{opacity:1; transform:none; transition:none;} }

/* ---- polish pass ---- */
.nav-links a, .btn, .brand{white-space:nowrap;}
.nav-links{gap:22px;}
.tcard li .li-t{flex:1; min-width:0;}
.tcard li>i{margin-top:3px;}
.tcard .st{margin-top:2px;}
.feat li i, .price li i, .founder-points li i{margin-top:3px;}
.feat li, .price li{align-items:flex-start;}
.btn i{font-size:18px;}
.hero-note i{font-size:16px;}
.badge i{font-size:16px;}
.foot-grid a.brand{display:inline-flex; margin-bottom:0;}
.strip-in{gap:12px 26px;}
.exp-track{gap:10px;}
.exp-card{flex:1 1 0; width:auto; min-width:140px;}
#features .sec-head{margin-bottom:28px;}
.jf-fine{text-align:center; margin-left:auto; margin-right:auto;}

/* ---- design workspace ---- */
.dw{padding:56px 0; border-top:1px solid var(--line-soft);}
.dw-head{max-width:66ch;}
.dw-head h3{font-size:clamp(24px,3vw,34px); margin:10px 0 14px;}
.dw-head p{color:var(--ink-2); font-size:var(--fs-lead);}
.dw-chain{display:flex; align-items:stretch; gap:8px; margin-top:30px;}
.dw-node{flex:1 1 0; min-width:0; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px 14px 13px; display:flex; flex-direction:column; gap:4px;}
.dw-k{font-family:'Newsreader',Georgia,serif; font-size:var(--fs-lead); font-weight:600; color:var(--ink); line-height:1.2;}
.dw-s{font-size:var(--fs-small); color:var(--slate); line-height:1.4;}
.dw-arrow{display:flex; align-items:center; color:var(--gold-ink); flex:0 0 auto;}
.dw-arrow svg{width:18px; height:18px;}
.dw-risk,.dw-feeds{display:flex; gap:10px; align-items:flex-start; margin-top:10px; padding:12px 16px; border-radius:12px; font-size:var(--fs-base); color:var(--ink-2); line-height:1.5;}
.dw-risk{background:var(--mint); border:1px solid var(--mint-line);}
.dw-feeds{background:color-mix(in srgb, var(--gold) 12%, var(--paper-2)); border:1px solid color-mix(in srgb, var(--gold) 35%, var(--line));}
.dw-risk i,.dw-feeds i{font-size:18px; color:var(--teal); margin-top:2px;}
.dw-feeds i{color:var(--gold-ink);}
.dw-cascade{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:28px;}
.dw-case{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:20px;}
.dw-case-h{display:flex; gap:12px; align-items:flex-start;}
.dw-case-h i{font-size:20px; color:var(--teal); width:36px; height:36px; padding:8px; border-radius:10px; background:var(--mint); border:1px solid var(--mint-line); box-sizing:border-box;}
.dw-case-h span{display:flex; flex-direction:column;}
.dw-case-h strong{font-size:var(--fs-lead); color:var(--ink);}
.dw-case-h em{font-style:normal; font-family:'IBM Plex Mono',monospace; font-size:var(--fs-label); color:var(--slate-2); margin-top:2px;}
.dw-case>p{font-size:var(--fs-base); color:var(--slate); margin:12px 0 12px;}
.dw-fx{list-style:none; margin:0; padding:0; border-top:1px solid var(--line-soft);}
.dw-fx li{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 0; border-bottom:1px dashed var(--line); font-size:var(--fs-small); color:var(--ink-2); font-family:'IBM Plex Mono',monospace;}
.dw-fx li:last-child{border-bottom:none;}
.dw-fx .chip{font-family:'Inter',sans-serif; white-space:nowrap; flex-shrink:0;}
.chip svg{width:11px; height:11px;}
.chip.warn{background:var(--warn-bg); color:var(--warn);}
.dw-note{font-size:var(--fs-small); color:var(--slate-2); margin-top:10px;}
.dw-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:28px;}
.dw-card{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:18px;}
.dw-card>i{font-size:20px; color:var(--teal);}
.dw-card h4{font-family:'Newsreader',Georgia,serif; font-size:var(--fs-lead); font-weight:600; margin:10px 0 6px; color:var(--ink);}
.dw-card p{font-size:var(--fs-base); color:var(--slate); line-height:1.5; margin:0;}
.dw-list{list-style:none; padding:0; margin:22px 0 0; display:flex; flex-direction:column; gap:10px;}
.dw-list li{display:flex; gap:10px; font-size:var(--fs-base); color:var(--ink-2); align-items:flex-start;}
.dw-list li i{color:var(--teal); font-size:19px; margin-top:2px;}
@media (max-width:900px){
  .dw-chain{flex-direction:column;}
  .dw-arrow{justify-content:center; transform:rotate(90deg); height:18px;}
  .dw-cascade{grid-template-columns:1fr;}
  .dw-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){ .dw-grid{grid-template-columns:1fr;} .dw-fx li{flex-direction:column; align-items:flex-start; gap:6px;} }


/* ---- free classification lookup (/tools/classification, roadmap 1.5) ---- */
.clf-form{margin:20px 0 8px;}
.clf-label{display:block; font-size:var(--fs-base); font-weight:600; margin-bottom:6px; color:var(--ink);}
.clf-row{display:flex; gap:8px; flex-wrap:wrap;}
.clf-row input{flex:1 1 220px; min-width:0; font:inherit; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--card); color:var(--ink);}
.clf-status{font-size:var(--fs-base); color:var(--slate-2); min-height:1.4em; margin:6px 0 10px;}
.clf-card{border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin:0 0 10px; background:var(--card);}
.clf-card h3{margin:0 0 8px; font-size:var(--fs-lead);}
.clf-kv{display:grid; grid-template-columns:max-content 1fr; gap:4px 14px; margin:0; font-size:var(--fs-base);}
.clf-kv dt{color:var(--slate-2);}
.clf-kv dd{margin:0; color:var(--ink);}
.clf-def{font-size:var(--fs-base); color:var(--ink-2); margin:10px 0 0;}

/* Roadmap 7.13: the free pathway calculators. */
.calc-form{margin:20px 0 8px; display:flex; flex-direction:column; gap:14px;}
.calc-form fieldset{border:1px solid var(--line); border-radius:12px; padding:12px 16px; margin:0; background:var(--card);}
.calc-form legend{font-size:var(--fs-lead); font-weight:600; color:var(--ink); padding:0 4px;}
.calc-form .hint{font-size:var(--fs-base); color:var(--slate-2); margin:2px 0 8px;}
.calc-form label{display:flex; gap:8px; align-items:flex-start; font-size:var(--fs-base); color:var(--ink-2); padding:4px 0; cursor:pointer;}
.calc-form input{margin-top:4px;}
.calc-status{font-size:var(--fs-base); color:var(--slate-2); min-height:1.4em; margin:6px 0 10px;}
.calc-card{border:1px solid var(--line); border-radius:12px; padding:16px 18px; margin:0 0 10px; background:var(--card);}
/* The verdict's colour is a dot before its label, not a side stripe (DESIGN.md §13). */
.calc-verdict::before{content:""; display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:8px; vertical-align:1px; background:var(--teal);}
.calc-card.calc-ask .calc-verdict::before{background:var(--warn);}
.calc-card.calc-unlikely .calc-verdict::before{background:var(--slate-2);}
.calc-card h3{margin:0 0 8px; font-size:var(--fs-lead);}
.calc-card h4{margin:14px 0 6px; font-size:var(--fs-base); color:var(--ink);}
.calc-verdict{font-family:'IBM Plex Mono',monospace; font-size:var(--fs-small); text-transform:uppercase; letter-spacing:.06em; color:var(--slate-2); margin:0 0 4px;}
.calc-fee{font-size:var(--fs-base); color:var(--ink); margin:12px 0 0;}
.calc-framing{font-size:var(--fs-small); color:var(--slate-2); margin:14px 0 0; padding-top:10px; border-top:1px solid var(--line-soft);}
.learn-draft{border:1px solid color-mix(in srgb, var(--warn) 35%, transparent); border-radius:10px; padding:10px 14px; background:var(--warn-bg); font-size:var(--fs-base); color:var(--ink-2); margin:12px 0 18px;}
.learn-list{list-style:none; padding:0 !important; gap:14px !important;}
.learn-list li{border:1px solid var(--line); border-radius:12px; padding:12px 16px; background:var(--card);}
.learn-list a{font-weight:600; font-size:var(--fs-lead);}
.tmpl-outline{border:1px solid var(--line); border-radius:12px; padding:12px 16px; margin:0 0 12px; background:var(--card);}
.tmpl-outline h3{margin:0 0 4px;}
