  /* Tokens aligned with the GovernedAI app (app.governedai.co): zinc
   neutrals, black/white actions, Geist type, blue focus ring. Amber is the
   logo's accent (#DD881B) and is used only as a brand highlight, never for
   actions. Status colors match the app's badge vocabulary (Tailwind 600s). */
:root{
  color-scheme: light;
  --paper:#ffffff;
  --paper-raised:#fafafa;
  --ink:#171717;
  --ink-soft:#3f3f46;
  --muted:#71717a;
  --line:#e4e4e7;
  --line-strong:#d4d4d8;
  --accent:#0a0a0a;
  --accent-strong:#27272a;
  --accent-wash:rgba(10,10,10,0.04);
  --accent-wash-strong:rgba(10,10,10,0.09);
  --on-accent:#ffffff;
  --brand:#DD881B;
  --brand-ink:#b45309;
  --good:#059669;
  --warning:#f59e0b;
  --serious:#ea580c;
  --critical:#dc2626;
  --on-chip-dark:#0a0a0a;
  --on-chip-light:#ffffff;
  --focus:#2563eb;
  --radius:4px;
  --radius-lg:8px;
  --font-display:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:"Geist Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --paper:#0a0a0a;
    --paper-raised:#18181b;
    --ink:#ededed;
    --ink-soft:#d4d4d8;
    --muted:#a1a1aa;
    --line:#27272a;
    --line-strong:#3f3f46;
    --accent:#ffffff;
    --accent-strong:#e4e4e7;
    --accent-wash:rgba(255,255,255,0.06);
    --accent-wash-strong:rgba(255,255,255,0.12);
    --on-accent:#0a0a0a;
    --brand-ink:#DD881B;
    --focus:#60a5fa;
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --paper:#0a0a0a;
  --paper-raised:#18181b;
  --ink:#ededed;
  --ink-soft:#d4d4d8;
  --muted:#a1a1aa;
  --line:#27272a;
  --line-strong:#3f3f46;
  --accent:#ffffff;
  --accent-strong:#e4e4e7;
  --accent-wash:rgba(255,255,255,0.06);
  --accent-wash-strong:rgba(255,255,255,0.12);
  --on-accent:#0a0a0a;
  --brand-ink:#DD881B;
  --focus:#60a5fa;
}

*{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--font-body);
    line-height:1.5;
  }
  a{color:var(--ink); text-underline-offset:2px;}
  :focus-visible{outline:2px solid var(--focus); outline-offset:2px;}
  h1,h2,h3{font-family:var(--font-display); font-weight:600; letter-spacing:-0.025em; text-wrap:balance; margin:0;}
  .mono{font-family:var(--font-mono); font-variant-numeric:tabular-nums;}
  .muted{color:var(--muted);}

  #app{max-width:760px; margin:0 auto; padding:0 20px 96px;}
  .brand{display:inline-flex; align-items:center; line-height:0;}
  .brand img{height:36px; width:auto;}
  .brand .logo-dark{display:none;}
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .brand .logo-light{display:none;} :root:not([data-theme="light"]) .brand .logo-dark{display:block;} }
  :root[data-theme="dark"] .brand .logo-light{display:none;}
  :root[data-theme="dark"] .brand .logo-dark{display:block;}

  /* ---- ledger progress bar ---- */
  .ledger{
    position:sticky; top:0; z-index:5;
    background:var(--paper); border-bottom:1px solid var(--line);
    padding:14px 0 12px; margin-bottom:28px;
    backdrop-filter:saturate(1.1);
  }
  .ledger-row{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px;}
  .ledger-step{font-family:var(--font-mono); font-size:13px; color:var(--muted); white-space:nowrap;}
  .ledger-step b{color:var(--ink); font-weight:600;}
  .ledger-dim{font-size:13px; font-weight:600; text-align:right;}
  .ticks{display:grid; grid-auto-flow:column; gap:3px;}
  .tick{height:4px; border-radius:2px; background:var(--line-strong);}
  .tick.done{background:var(--accent);}
  .tick.current{background:var(--ink-soft);}

  /* ---- intro ---- */
  .intro{padding-top:6px;}
  .eyebrow{
    font-family:var(--font-mono); font-size:12px; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--brand-ink); margin-bottom:14px;
  }
  .intro h1{font-size:clamp(28px,4.4vw,40px); line-height:1.15; margin-bottom:18px; max-width:16ch;}
  .intro .lede{font-size:17px; color:var(--ink-soft); max-width:56ch; margin-bottom:22px;}
  blockquote.thesis{
    margin:26px 0; padding:4px 0 4px 20px; border-left:3px solid var(--brand);
    font-family:var(--font-display); font-weight:500; font-size:19px; letter-spacing:-0.01em;
    color:var(--ink); max-width:48ch;
  }
  .meta-row{display:flex; flex-wrap:wrap; gap:18px; margin:26px 0; font-size:13px; color:var(--muted);}
  .meta-row .item{display:flex; align-items:center; gap:7px;}
  .meta-row .dot{width:5px; height:5px; border-radius:50%; background:var(--brand);}
  .dims-preview{
    display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
    gap:10px; margin:22px 0 30px;
  }
  .dims-preview .card{
    border:1px solid var(--line); border-radius:var(--radius-lg); padding:12px 13px;
    background:var(--paper-raised);
  }
  .dims-preview .code{font-family:var(--font-mono); font-size:12px; color:var(--brand-ink); font-weight:600;}
  .dims-preview .name{font-size:13.5px; font-weight:600; margin-top:3px;}

  /* ---- buttons ---- */
  .btn{
    text-decoration:none;
    font-family:var(--font-body); font-weight:600; font-size:15px;
    padding:12px 20px; border-radius:var(--radius); border:1px solid transparent;
    cursor:pointer; display:inline-flex; align-items:center; gap:8px;
    transition:background-color .15s ease, border-color .15s ease, color .15s ease;
  }
  @media (prefers-reduced-motion: reduce){ .btn{transition:none;} }
  .btn-primary{background:var(--accent); color:var(--on-accent); border-color:var(--accent);}
  .btn-primary:hover{background:var(--accent-strong); border-color:var(--accent-strong);}
  .btn-primary:disabled{background:var(--line-strong); border-color:var(--line-strong); color:var(--muted); cursor:not-allowed;}
  .btn-ghost{background:transparent; color:var(--ink); border-color:var(--line-strong);}
  .btn-ghost:hover{border-color:var(--ink-soft);}
  .btn-text{background:transparent; color:var(--accent); border:none; padding:8px 4px; font-size:14px;}

  /* ---- questions ---- */
  .q-code{font-family:var(--font-mono); font-size:12px; color:var(--brand-ink); font-weight:600; margin-bottom:8px;}
  .q-card{margin-bottom:34px;}
  .q-card h2{font-size:19px; font-weight:600; font-family:var(--font-body); line-height:1.35; margin-bottom:16px; max-width:52ch;}
  .options{display:flex; flex-direction:column; gap:8px;}
  .option{
    display:flex; align-items:flex-start; gap:12px;
    border:1px solid var(--line); border-radius:var(--radius); padding:12px 14px;
    cursor:pointer; background:var(--paper-raised);
    transition:border-color .15s ease, background-color .15s ease;
  }
  @media (prefers-reduced-motion: reduce){ .option{transition:none;} }
  .option:hover{border-color:var(--accent);}
  .option input{margin-top:3px; accent-color:var(--accent); width:16px; height:16px; flex:none;}
  .option.selected{border-color:var(--accent); background:var(--accent-wash);}
  .option .otext{font-size:14.5px; color:var(--ink-soft);}
  .option.selected .otext{color:var(--ink); font-weight:500;}

  .step-actions{display:flex; justify-content:space-between; align-items:center; margin-top:12px; padding-top:18px; border-top:1px solid var(--line);}

  /* ---- results ---- */
  .score-block{
    display:flex; flex-wrap:wrap; align-items:flex-end; gap:22px;
    padding:26px 0 6px; border-bottom:1px solid var(--line); margin-bottom:26px;
  }
  .score-num{font-family:var(--font-mono); font-size:64px; font-weight:600; line-height:1;}
  .score-num small{font-size:22px; color:var(--muted); font-weight:500;}
  .band-chip{
    display:inline-flex; align-items:center; gap:7px; padding:7px 13px;
    border-radius:20px; font-size:13px; font-weight:600; font-family:var(--font-mono);
  }
  .band-chip .dot{width:8px; height:8px; border-radius:50%; background:currentColor;}
  .narrative{font-size:16px; color:var(--ink-soft); max-width:58ch; margin:6px 0 0;}
  .context-note{font-size:12.5px; color:var(--muted); margin-top:14px; max-width:58ch;}

  .section-title{
    font-family:var(--font-mono); font-size:12px; text-transform:uppercase;
    letter-spacing:0.08em; color:var(--muted); margin:38px 0 16px;
  }

  .radar-grid{display:flex; flex-wrap:wrap; gap:28px; align-items:flex-start; margin-bottom:8px;}
  .radar-grid svg{max-width:320px; width:100%; height:auto; flex:none;}
  .dim-bars{flex:1 1 260px; min-width:240px; display:flex; flex-direction:column; gap:14px;}
  .dim-bar-row .top{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:5px; gap:8px;}
  .dim-bar-row .dname{font-size:13.5px; font-weight:600;}
  .dim-bar-row .dpct{font-family:var(--font-mono); font-size:13px;}
  .track{height:8px; border-radius:4px; background:var(--line); overflow:hidden;}
  .fill{height:100%; border-radius:4px;}

  table.data-table{width:100%; border-collapse:collapse; margin-top:20px; font-size:13.5px;}
  table.data-table caption{text-align:left; font-size:12px; color:var(--muted); margin-bottom:8px; font-family:var(--font-mono);}
  table.data-table th, table.data-table td{text-align:left; padding:8px 10px; border-bottom:1px solid var(--line);}
  table.data-table th{color:var(--muted); font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:0.04em;}
  table.data-table td.num{font-family:var(--font-mono); text-align:right;}
  .overflow-x{overflow-x:auto;}

  .rec-card{
    border:1px solid var(--line); border-left:3px solid var(--line-strong);
    border-radius:var(--radius-lg); padding:16px 18px; margin-bottom:12px; background:var(--paper-raised);
  }
  .rec-card .rhead{display:flex; align-items:center; gap:10px; margin-bottom:6px; flex-wrap:wrap;}
  .rec-card .rcode{font-family:var(--font-mono); font-size:12px; color:var(--muted);}
  .rec-card .rname{font-weight:600; font-size:14.5px;}
  .rec-card p{margin:0; font-size:14px; color:var(--ink-soft);}

  .download-row{display:flex; gap:12px; flex-wrap:wrap; margin:22px 0 6px;}

  .lead-panel{
    margin-top:44px; border:1px solid var(--line); border-radius:var(--radius-lg);
    padding:26px 24px; background:var(--paper-raised);
  }
  .lead-panel h3{font-size:20px; margin-bottom:8px;}
  .lead-panel .sub{color:var(--muted); font-size:14px; margin-bottom:20px; max-width:56ch;}
  .field-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px;}
  .field{display:flex; flex-direction:column; gap:6px;}
  .field.full{grid-column:1 / -1;}
  .field label{font-size:12.5px; font-weight:600; color:var(--ink-soft);}
  .field input, .field select, .field textarea{
    font-family:var(--font-body); font-size:14.5px; padding:10px 11px;
    border:1px solid var(--line-strong); border-radius:var(--radius); background:var(--paper);
    color:var(--ink);
  }
  .field textarea{resize:vertical; min-height:64px;}
  .field input:focus, .field select:focus, .field textarea:focus{border-color:var(--accent);}
  .privacy-note{font-size:12px; color:var(--muted); margin-top:12px; display:flex; align-items:center; gap:6px;}

  .confirm-panel{
    margin-top:18px; padding:16px 18px; border-radius:var(--radius-lg);
    border:1px solid var(--accent); background:var(--accent-wash);
    font-size:13.5px;
  }
  .confirm-panel pre{
    white-space:pre-wrap; font-family:var(--font-mono); font-size:12.5px;
    background:var(--paper); border:1px solid var(--line); border-radius:3px;
    padding:12px; margin:10px 0; color:var(--ink-soft);
  }

  footer.foot{margin-top:60px; padding-top:20px; border-top:1px solid var(--line); font-size:12.5px; color:var(--muted); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

  @media (max-width:520px){
    .field-grid{grid-template-columns:1fr;}
    .score-num{font-size:52px;}
    .radar-grid svg{max-width:260px;}
  }

  /* ---- site shell: nav + expanded hero (governedai.co) ---- */
  .site-nav{
    max-width:760px; margin:0 auto; padding:22px 20px 0;
    display:flex; align-items:center; justify-content:space-between; gap:14px;
  }
  .book-link{
    font-family:var(--font-body); font-weight:600; font-size:13.5px;
    color:var(--ink); text-decoration:none; white-space:nowrap;
    border:1px solid var(--line-strong); border-radius:3px; padding:8px 14px;
    transition:border-color .15s ease, color .15s ease;
  }
  .book-link:hover{border-color:var(--accent); color:var(--accent);}
  .hero-sub{font-size:15.5px; color:var(--ink-soft); max-width:60ch; margin:0 0 24px;}
  .stat-strip{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:16px; margin:28px 0 30px;
  }
  .stat{border-left:2px solid var(--brand); padding:2px 0 2px 14px;}
  .stat .num{font-family:var(--font-mono); font-size:23px; font-weight:600; display:block;}
  .stat .label{font-size:12.5px; color:var(--ink-soft); margin-top:2px;}
  .stat .src{font-size:11px; color:var(--muted); display:block; margin-top:3px;}
  .hero-ctas{display:flex; gap:12px; flex-wrap:wrap; margin:28px 0 6px;}
  .hero-divider{max-width:760px; margin:44px auto 0; border:none; border-top:1px solid var(--line); padding:0 20px;}

/* ======================================================================
   Multi-page site shell (Home / Platform / Pricing / Checklist).
   Everything above this line is the original single-page stylesheet,
   unchanged, so the checklist keeps its exact look.
   ====================================================================== */

.site-header{border-bottom:1px solid var(--line); background:var(--paper);}
.site-nav{
  max-width:1080px; margin:0 auto; padding:16px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
}
.brand{text-decoration:none;}
.nav-links{display:flex; align-items:center; gap:4px; flex-wrap:wrap;}
.nav-links a{
  font-size:14px; font-weight:500; color:var(--ink-soft); text-decoration:none;
  padding:7px 10px; border-radius:var(--radius); transition:color .15s ease, background-color .15s ease;
}
.nav-links a:hover{color:var(--ink); background:var(--accent-wash);}
.nav-links a[aria-current="page"]{color:var(--ink); font-weight:600; background:var(--accent-wash);}
.nav-cta{display:flex; align-items:center; gap:8px;}
.nav-cta .btn{padding:8px 14px; font-size:13.5px;}
@media (prefers-reduced-motion: reduce){ .nav-links a{transition:none;} }

.wrap{max-width:1080px; margin:0 auto; padding:0 20px;}
.section{padding:64px 0; border-bottom:1px solid var(--line);}
.section:last-of-type{border-bottom:none;}
.section-head{max-width:62ch; margin-bottom:34px;}
.section-head h2{font-size:clamp(24px,3.2vw,32px); line-height:1.2; margin-bottom:12px;}
.section-head p{color:var(--ink-soft); font-size:16px; margin:0;}

.hero{padding:72px 0 56px; border-bottom:1px solid var(--line);}
.hero h1{font-size:clamp(34px,5.4vw,54px); line-height:1.08; max-width:18ch; margin-bottom:20px;}
.hero .hero-sub{font-size:17.5px; max-width:60ch;}

.feature-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden;}
.feature{background:var(--paper-raised); padding:24px 24px 26px;}
.feature .code{font-family:var(--font-mono); font-size:12px; color:var(--brand-ink); font-weight:600; margin-bottom:8px;}
.feature h3{font-family:var(--font-body); font-size:16.5px; font-weight:600; margin-bottom:8px;}
.feature p{font-size:14.5px; color:var(--ink-soft); margin:0;}
.feature ul{margin:10px 0 0; padding-left:18px; font-size:14px; color:var(--ink-soft);}
.feature li{margin:3px 0;}

.steps{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:24px; counter-reset:step;}
.step{border-top:2px solid var(--brand); padding-top:16px;}
.step .n{font-family:var(--font-mono); font-size:12px; color:var(--muted); margin-bottom:6px;}
.step h3{font-family:var(--font-body); font-size:16px; font-weight:600; margin-bottom:6px;}
.step p{font-size:14.5px; color:var(--ink-soft); margin:0;}

.cta-band{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px;
  border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--paper-raised); padding:28px;
}
.cta-band h2{font-size:24px; margin-bottom:6px;}
.cta-band p{margin:0; color:var(--ink-soft); max-width:56ch;}
.cta-band .hero-ctas{margin:0;}

/* ---- pricing ---- */
.billing-toggle{
  display:inline-flex; border:1px solid var(--line-strong); border-radius:var(--radius); padding:3px; gap:3px;
  background:var(--paper-raised); margin-bottom:28px;
}
.billing-toggle button{
  font-family:var(--font-body); font-size:13.5px; font-weight:600; color:var(--ink-soft);
  background:transparent; border:0; border-radius:2px; padding:7px 14px; cursor:pointer;
}
.billing-toggle button[aria-pressed="true"]{background:var(--accent); color:var(--on-accent);}
.billing-toggle .save{font-family:var(--font-mono); font-weight:500; font-size:11.5px; margin-left:4px; opacity:.85;}

.price-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:16px; align-items:stretch;}
.plan{
  display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--radius-lg);
  background:var(--paper-raised); padding:26px 24px;
}
.plan.featured{border-color:var(--brand); box-shadow:0 0 0 1px var(--brand) inset;}
.plan .tag{font-family:var(--font-mono); font-size:11.5px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--brand-ink); min-height:18px;}
.plan h3{font-size:24px; margin:6px 0 6px;}
.plan .for{font-size:14px; color:var(--ink-soft); margin:0 0 18px; min-height:42px;}
.plan .price{font-family:var(--font-mono); font-size:38px; font-weight:600; line-height:1; min-height:38px; display:flex; align-items:flex-end; gap:6px;}
.plan .price small{font-size:14px; color:var(--muted); font-weight:500;}
.plan .price-note{font-size:12.5px; color:var(--muted); margin:8px 0 20px; min-height:18px;}
.plan .btn{justify-content:center; text-decoration:none;}
.plan ul{list-style:none; margin:22px 0 0; padding:18px 0 0; border-top:1px solid var(--line); font-size:14px; color:var(--ink-soft);}
.plan li{display:flex; gap:9px; margin:0 0 9px;}
.plan li::before{content:""; flex:none; width:6px; height:6px; margin-top:8px; border-radius:50%; background:var(--brand);}
.plan li.inherit{font-weight:600; color:var(--ink);}
.plan li.inherit::before{background:transparent;}
.tbd{
  font-family:var(--font-mono); font-size:.62em; font-weight:600; letter-spacing:.04em;
  color:var(--serious); border:1px dashed var(--serious); border-radius:2px; padding:1px 5px; vertical-align:middle;
}

.fine-print{font-size:13px; color:var(--muted); max-width:70ch; margin-top:22px;}

details.faq{border-bottom:1px solid var(--line); padding:16px 0;}
details.faq summary{cursor:pointer; font-weight:600; font-size:15.5px; list-style:none;}
details.faq summary::-webkit-details-marker{display:none;}
details.faq summary::after{content:"+"; float:right; font-family:var(--font-mono); color:var(--muted);}
details.faq[open] summary::after{content:"−";}
details.faq p{margin:10px 0 0; color:var(--ink-soft); font-size:14.5px; max-width:70ch;}

/* ---- checklist email gate ---- */
.gate-note{font-size:13px; color:var(--muted); margin:14px 0 0;}
.form-error{color:var(--critical); font-size:13.5px; margin-top:10px;}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}

/* ---- simple contact/program forms (mailto submit, no backend) ---- */
.site-form{display:flex; flex-direction:column; gap:16px; margin-top:8px;}
.site-form label{display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:600; color:var(--ink-soft);}
.site-form input, .site-form select, .site-form textarea{
  font-family:var(--font-body); font-size:14.5px; font-weight:400; padding:10px 11px;
  border:1px solid var(--line-strong); border-radius:var(--radius); background:var(--paper);
  color:var(--ink);
}
.site-form textarea{resize:vertical; min-height:90px;}
.site-form input:focus, .site-form select:focus, .site-form textarea:focus{border-color:var(--accent);}
.site-form button{align-self:flex-start;}

/* ---- legal pages ---- */
.draft-banner{
  border:1px solid var(--serious); background:color-mix(in srgb, var(--serious) 10%, var(--paper));
  border-radius:var(--radius); padding:14px 16px; font-size:13.5px; color:var(--ink); margin-bottom:32px;
}
.legal-body h2{font-size:19px; margin:34px 0 10px;}
.legal-body h2:first-child{margin-top:0;}
.legal-body p, .legal-body li{font-size:14.5px; line-height:1.7; color:var(--ink-soft);}
.legal-body ul{margin:10px 0 10px 20px;}
.legal-body .updated{font-size:12.5px; color:var(--muted); margin-bottom:0;}

/* ---- footer ---- */
.site-footer{border-top:1px solid var(--line); margin-top:24px;}
.site-footer .wrap{padding-top:28px; padding-bottom:40px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:18px; font-size:13px; color:var(--muted);}
.site-footer nav{display:flex; gap:16px; flex-wrap:wrap;}
.site-footer a{color:var(--muted); text-decoration:none;}
.site-footer a:hover{color:var(--ink);}

@media (max-width:640px){
  .site-nav{padding:12px 16px;}
  .wrap{padding:0 16px;}
  .hero{padding:48px 0 40px;}
  .section{padding:48px 0;}
}
