/* NarraSight homepage — canonical tokens (DESIGN_TOKENS_AND_CSS.md) + components + layout. */
:root{
  --bg:#0a0f1a; --panel:#111a2b; --border:#1f2d44;
  --text:#e8eef7; --muted:#9fb0c7;
  --brand:#10b981; --brand-2:#34d399; --danger:#f87171; --warn:#fbbf24; --focus:#7dd3fc;
  --on-accent:#0a0f1a; --brand-strong:#047857;
  --success-tint:rgba(16,185,129,.14); --warn-tint:rgba(251,191,36,.14);
  --danger-tint:rgba(248,113,113,.14); --info-tint:rgba(125,211,252,.14); --neutral-tint:rgba(159,176,199,.10);
  --font-sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-mono:ui-monospace,"SF Mono","Cascadia Code",Consolas,monospace;
  --fs-display:2.25rem; --fs-h1:1.9rem; --fs-h2:1.5rem; --fs-h3:1.25rem; --fs-h4:1.0625rem;
  --fs-body:1rem; --fs-small:.875rem; --fs-micro:.75rem;
  --fw-medium:500; --fw-semibold:600; --fw-bold:700; --tracking-micro:.02em;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px; --space-7:48px; --space-8:64px;
  --radius-sm:8px; --radius-md:10px; --radius-lg:14px; --radius-full:999px;
  --elev-2:0 8px 24px rgba(0,0,0,.45);
  --focus-ring:3px solid var(--focus); --focus-offset:2px;
  --motion-base:200ms; --easing:cubic-bezier(.2,0,0,1);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.55;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;}
a{color:var(--brand);}
:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);border-radius:inherit;}
.on-fill:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);box-shadow:0 0 0 2px var(--bg);}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}
}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.skip{position:absolute;left:-999px;top:0;background:var(--brand);color:var(--on-accent);padding:var(--space-3) var(--space-4);border-radius:0 0 var(--radius-sm) 0;z-index:60;font-weight:var(--fw-semibold);}
.skip:focus{left:0;}

/* Layout */
.container{width:100%;max-width:1120px;margin-inline:auto;padding-inline:clamp(16px,5vw,32px);}
.section{padding-block:var(--space-7);}
@media (min-width:768px){.section{padding-block:72px;}}
.section--tight{padding-block:var(--space-6);}
.section--panel{background:var(--panel);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.section__head{display:grid;gap:var(--space-3);margin-bottom:var(--space-6);max-width:60ch;}
h1,h2,h3,h4{margin:0;}
.h1{font-size:var(--fs-display);line-height:1.15;font-weight:var(--fw-bold);}
.h2{font-size:var(--fs-h1);line-height:1.2;font-weight:var(--fw-bold);}
.h3{font-size:var(--fs-h3);line-height:1.3;font-weight:var(--fw-semibold);}
.lede{color:var(--muted);font-size:var(--fs-body);max-width:60ch;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font:inherit;font-weight:var(--fw-semibold);line-height:1.1;padding:var(--space-3) var(--space-5);border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;text-decoration:none;max-width:100%;transition:background var(--motion-base) var(--easing),border-color var(--motion-base) var(--easing);}
.btn--primary{background:var(--brand);color:var(--on-accent);}
.btn--primary:hover{background:var(--brand-2);}
.btn--secondary{background:transparent;color:var(--text);border-color:var(--border);}
.btn--secondary:hover{border-color:var(--muted);background:var(--panel);}

/* Pills */
.pill{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--fs-micro);font-weight:var(--fw-medium);letter-spacing:var(--tracking-micro);padding:2px var(--space-3);border-radius:var(--radius-full);border:1px solid transparent;}
.pill--pass{color:var(--brand-2);background:var(--success-tint);}
.pill--review{color:var(--warn);background:var(--warn-tint);}
.pill--fail{color:var(--danger);background:var(--danger-tint);}
.pill--info{color:var(--focus);background:var(--info-tint);}

/* Card */
.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);}

/* Header / nav */
header.site{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:1px solid var(--border);}
@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){
  header.site{background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);}
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:64px;}
.wordmark{font-weight:var(--fw-semibold);font-size:1.05rem;color:var(--text);text-decoration:none;}
.wordmark .dot{color:var(--brand);}
.menu{position:relative;}
.menu__btn{list-style:none;cursor:pointer;color:var(--text);font-weight:var(--fw-semibold);font-size:var(--fs-small);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);}
.menu__btn::-webkit-details-marker{display:none;}
.nav__links{display:flex;flex-direction:column;gap:var(--space-2);position:absolute;right:0;top:calc(100% + 8px);width:min(78vw,260px);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:var(--elev-2);}
.nav__links a:not(.btn){color:var(--text);text-decoration:none;font-size:var(--fs-body);padding:var(--space-3);border-radius:var(--radius-sm);}
.nav__links a:not(.btn):hover{background:var(--neutral-tint);}
.nav__links .btn{width:100%;}
@media (min-width:768px){
  .menu__btn{display:none;}
  .nav__links{position:static;flex-direction:row;align-items:center;gap:var(--space-5);width:auto;background:none;border:0;padding:0;box-shadow:none;}
  .nav__links a:not(.btn){color:var(--muted);font-size:var(--fs-small);padding:0;}
  .nav__links a:not(.btn):hover{color:var(--text);background:none;}
  .nav__links .btn{width:auto;}
}

/* Hero */
.hero{padding-block:var(--space-8) var(--space-7);}
.hero__grid{display:grid;gap:var(--space-7);align-items:center;}
@media (min-width:960px){.hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);}}
.hero h1{font-size:clamp(1.75rem,7vw,2.25rem);line-height:1.15;font-weight:var(--fw-bold);max-width:18ch;}
.hero .lede{margin-top:var(--space-4);max-width:46ch;}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5);}
.micro{margin-top:var(--space-3);font-size:var(--fs-small);color:var(--muted);}
.overline{margin-bottom:var(--space-4);}
@media (max-width:600px){.cta-row .btn{width:100%;}}

/* Hero product card (before -> after) */
.demo{display:grid;gap:var(--space-3);box-shadow:var(--elev-2);}
.demo__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);}
.demo__mono{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--muted);}
.demo__row{display:flex;gap:var(--space-4);align-items:flex-start;}
.tile{flex:none;width:88px;height:88px;border-radius:var(--radius-md);background:var(--border);position:relative;overflow:hidden;}
.tile::before{content:"";position:absolute;width:26px;height:26px;border-radius:50%;background:var(--muted);top:14px;right:16px;opacity:.7;}
.tile::after{content:"";position:absolute;left:10px;right:10px;bottom:12px;height:0;border-left:30px solid transparent;border-right:30px solid transparent;border-bottom:40px solid var(--muted);opacity:.55;}
.demo__body{min-width:0;display:grid;gap:var(--space-2);}
code,.code{font-family:var(--font-mono);font-size:var(--fs-small);word-break:break-word;color:var(--text);}
.code .empty{color:var(--danger);}
.code .good{color:var(--brand-2);}
.demo__connector{display:flex;align-items:center;gap:var(--space-3);color:var(--muted);}
.demo__connector .chip{font-size:var(--fs-micro);background:var(--neutral-tint);border-radius:var(--radius-full);padding:2px var(--space-3);}
.demo__chevron{color:var(--brand);}
.demo__foot-rule{height:3px;border-radius:var(--radius-full);background:var(--success);}
.demo__foot{font-size:var(--fs-small);color:var(--muted);}

/* Trust strip */
.trust{display:grid;gap:var(--space-5);}
@media (min-width:768px){.trust{grid-template-columns:repeat(3,1fr);gap:var(--space-6);}}
.trust__item{display:flex;gap:var(--space-3);align-items:flex-start;}
.trust__glyph{font-size:1.1rem;line-height:1.3;flex:none;}
.trust__glyph.g-brand{color:var(--brand);} .trust__glyph.g-info{color:var(--focus);} .trust__glyph.g-warn{color:var(--warn);}
.trust__t{font-weight:var(--fw-semibold);} .trust__s{color:var(--muted);font-size:var(--fs-small);}

/* Feature grid */
.grid3{display:grid;gap:var(--space-4);}
@media (min-width:640px){.grid3{grid-template-columns:repeat(2,1fr);}}
@media (min-width:960px){.grid3{grid-template-columns:repeat(3,1fr);}}
.feature__glyph{color:var(--brand);font-size:1.3rem;}
.feature h3{margin:var(--space-3) 0 var(--space-2);font-size:var(--fs-h3);font-weight:var(--fw-semibold);}
.feature p{color:var(--muted);margin:0;max-width:46ch;}

/* How it works */
.how{display:grid;gap:var(--space-7);grid-template-columns:minmax(0,1fr);}
@media (min-width:960px){.how{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
.steps{display:grid;gap:var(--space-5);grid-template-columns:minmax(0,1fr);}
.step{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-4);min-width:0;}
.step__n{font-family:var(--font-mono);color:var(--brand);font-weight:var(--fw-bold);}
.step h3{font-size:var(--fs-h3);font-weight:var(--fw-semibold);margin:0 0 var(--space-1);}
.step p{color:var(--muted);margin:0;}
.coverage{display:grid;gap:var(--space-2);}
.coverage__head{display:flex;justify-content:space-between;align-items:baseline;}
.coverage__value{font-weight:var(--fw-bold);}
.coverage__state{font-size:var(--fs-small);color:var(--muted);}
.coverage__track{position:relative;height:12px;border-radius:var(--radius-full);background:var(--border);overflow:hidden;}
.coverage__fill{height:100%;border-radius:inherit;background:var(--success);}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-3);margin-top:var(--space-4);}
.stat{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);}
.stat__value{font-size:var(--fs-h2);font-weight:var(--fw-bold);}
.stat__label{font-size:var(--fs-small);color:var(--muted);}
.table{width:100%;border-collapse:collapse;margin-top:var(--space-4);}
.table caption{text-align:left;font-size:var(--fs-small);color:var(--muted);padding-bottom:var(--space-2);}
.table th{text-align:left;font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--muted);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);}
.table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);font-size:var(--fs-small);}
.table td.id{font-family:var(--font-mono);}
.table__scroll{overflow-x:auto;max-width:100%;}

/* Anti-overlay */
.overlay-grid{display:grid;gap:var(--space-6);}
@media (min-width:960px){.overlay-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;}}
.overlay-grid p{color:var(--muted);max-width:60ch;}
.overlay-grid p strong{color:var(--text);}
.quote{border-left:3px solid var(--brand);background:var(--neutral-tint);border-radius:0 var(--radius-lg) var(--radius-lg) 0;padding:var(--space-5);font-size:var(--fs-h2);font-weight:var(--fw-bold);line-height:1.25;}
@media (max-width:600px){.quote{font-size:var(--fs-h3);}}

/* Compare table */
.cmp-wrap{overflow-x:auto;max-width:100%;}
.cmp{width:100%;border-collapse:collapse;min-width:520px;}
.cmp caption{text-align:left;color:var(--muted);font-size:var(--fs-small);padding-bottom:var(--space-3);max-width:70ch;}
.cmp th,.cmp td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--border);vertical-align:top;font-size:var(--fs-small);}
.cmp thead th{color:var(--text);font-weight:var(--fw-bold);border-bottom:2px solid var(--border);}
.cmp tbody th{color:var(--text);font-weight:var(--fw-semibold);}
.cmp .col-ns{background:var(--success-tint);}
.cmp .yes{color:var(--brand-2);font-weight:var(--fw-semibold);}
.cmp .no{color:var(--muted);}
.cmp__badge{display:inline-block;font-size:var(--fs-micro);color:var(--on-accent);background:var(--brand);border-radius:var(--radius-full);padding:1px var(--space-2);margin-left:var(--space-2);}
.cmp-foot{color:var(--muted);font-size:var(--fs-small);margin-top:var(--space-3);max-width:70ch;}

/* FAQ */
.faq{max-width:70ch;}
.faq details{border-bottom:1px solid var(--border);}
.faq summary{cursor:pointer;list-style:none;padding:var(--space-4) 0;font-size:var(--fs-h4);font-weight:var(--fw-semibold);display:flex;justify-content:space-between;gap:var(--space-3);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";color:var(--muted);}
.faq details[open] summary::after{content:"\2212";}
.faq p{color:var(--muted);margin:0 0 var(--space-4);max-width:65ch;}

/* Closing + footer */
.closing{text-align:center;}
.closing .inner{max-width:56ch;margin-inline:auto;}
.closing .cta-row{justify-content:center;}
.foot{background:var(--bg);border-top:1px solid var(--border);}
.foot__grid{display:grid;gap:var(--space-5);padding-block:var(--space-7);}
@media (min-width:768px){.foot__grid{grid-template-columns:2fr 1fr 1fr 1fr;}}
.foot h4{font-size:var(--fs-small);color:var(--muted);text-transform:uppercase;letter-spacing:var(--tracking-micro);margin:0 0 var(--space-3);}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2);}
.foot a{color:var(--muted);text-decoration:none;font-size:var(--fs-small);}
.foot a:hover{color:var(--text);}
.foot__trust{color:var(--muted);font-size:var(--fs-small);max-width:40ch;margin-top:var(--space-3);}
