/* =====================================================================
   Supracited v5.1 (site/HOME-SPEC-V5-1.md for the home page and the wide-screen
   treatment; site/DESIGN-SPEC-V3.md for everything else, planner rulings binding).
   v5.1: --container steps from 1200px to 1320px at a 1600px viewport, sitewide;
   home zones are full-bleed white and tray bands (.zone, .zone--tray), never .band;
   the <details> menu takes over below 900px; paragraphs and ledes cap at 68ch.
   One family, Manrope 400/500/600/700. No mono family, no uppercase tracked
   labels, nothing set below 15px. CSP is style-src 'self': no style
   attributes anywhere; every bar position is a class (.x-N sets left: N%,
   .w-N sets width: N%), generated at the end of this file. Zero JS.
   Palette: #FFFFFF surface, #F1F5F4 tray, #0C1715 ink, #444C59 muted,
   #0B5F59 teal (links, eyebrow, the one filled button, bars, grid fills,
   ticks, footer), #084A45 teal pressed, #D5EEEA tint, #D9E0DF hairline,
   #B9C6C4 empty cell, #E6ECEB bar track. Teal is never text on the tray.
   Motion: one CSS draw-in on the annotated answer, once, under 600 ms,
   background-size and transform only, none under reduced motion.
   The marks' solid fill is drawn as a one-colour background-image so its
   size can animate; it renders as a flat fill, not a gradient.
   ===================================================================== */

@font-face{font-family:"Manrope";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/manrope-400.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/manrope-500.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/manrope-600.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/manrope-700.woff2") format("woff2")}

:root{
  --white:#FFFFFF;
  --tray:#F1F5F4;
  --ink:#0C1715;
  --muted:#444C59;
  --teal:#0B5F59;
  --teal-press:#084A45;
  --tint:#D5EEEA;
  --hair:#D9E0DF;
  --empty:#B9C6C4;
  --track:#E6ECEB;

  --font:"Manrope","Helvetica Neue",Arial,sans-serif;
  --ease-draw:cubic-bezier(0.2,0,0,1);
  --lift:0 1px 2px rgba(12,23,21,.06),0 12px 32px -8px rgba(12,23,21,.12);

  /* type: mobile value at 390px, desktop value at 1280px */
  --fs-h1:clamp(2.25rem,1.483rem + 3.146vw,4rem);          /* 36 / 64 */
  --fs-h2:clamp(1.75rem,1.421rem + 1.348vw,2.5rem);        /* 28 / 40 */
  --fs-h3:clamp(1.25rem,1.195rem + .2247vw,1.375rem);      /* 20 / 22 */
  --fs-lede:clamp(1.1875rem,1.105rem + .3371vw,1.375rem);  /* 19 / 22 */
  --fs-body:clamp(1.0625rem,1.035rem + .1124vw,1.125rem);  /* 17 / 18 */
  --fs-small:clamp(.9375rem,.9101rem + .1124vw,1rem);      /* 15 / 16 */
  --fs-stat:clamp(2.5rem,2.281rem + .8989vw,3rem);         /* 40 / 48 */
  --fs-price:clamp(2.125rem,1.961rem + .6742vw,2.5rem);    /* 34 / 40 */
  --fs-line:clamp(1.375rem,1.211rem + .6742vw,1.75rem);    /* 22 / 28 */
  --fs-q:clamp(1.125rem,1.07rem + .2247vw,1.25rem);        /* 18 / 20 */

  /* container: fluid under 1024 (the viewport is narrower than the cap), 1200 from 1024, 1320 from 1600 */
  --margin:20px;
  --container:1200px;
  --section:64px;
}
@media (min-width:720px){:root{--margin:32px}}
@media (min-width:1024px){:root{--margin:64px;--section:96px}}
@media (min-width:1600px){:root{--container:1320px}}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{font-family:"Manrope","Helvetica Neue",Arial,sans-serif;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--font);font-size:var(--fs-body);line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-wrap:break-word}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
p{text-wrap:pretty}
strong,b{font-weight:600}
code{font-family:inherit;font-weight:600}
a{color:var(--teal);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:text-decoration-thickness 150ms}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:20;background:var(--white);color:var(--ink);padding:8px 16px;border:1.5px solid var(--ink);border-radius:10px;font-weight:600}
.skip-link:focus{left:8px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.container{width:100%;max-width:calc(var(--container) + 2 * var(--margin));margin:0 auto;padding:0 var(--margin)}
.section{margin-top:var(--section)}
.stack>*+*{margin-top:16px}
.stack-sm>*+*{margin-top:8px}
.stack-gap{margin-top:16px}
.stack-gap-sm{margin-top:8px}
.stack-gap-lg{margin-top:32px}
.measure{max-width:68ch}
main p{max-width:68ch}
.nowrap{white-space:nowrap}

/* ---------- type ---------- */
.h1{font-size:var(--fs-h1);line-height:1.05;font-weight:700;letter-spacing:-.02em;text-wrap:balance}
.h2{font-size:var(--fs-h2);line-height:1.15;font-weight:700;letter-spacing:-.015em;text-wrap:balance}
.h3{font-size:var(--fs-h3);line-height:1.3;font-weight:600;text-wrap:balance}
.lede{font-size:var(--fs-lede);line-height:1.5;max-width:68ch}
.eyebrow{font-size:16px;line-height:1.5;font-weight:600;color:var(--teal)}
.cap,.meta{font-size:var(--fs-small);line-height:1.5;color:var(--muted)}
.label{font-size:var(--fs-small);line-height:1.5;font-weight:500}
.num{font-variant-numeric:tabular-nums}
.sec-head{max-width:820px;margin-bottom:32px}
.sec-head .h2{margin-top:8px}
.sec-head .eyebrow+.h2{margin-top:8px}
.sec-head>.h2:first-child{margin-top:0}
.sec-lede{margin-top:16px;max-width:68ch}
.engine-line{margin-top:12px;font-size:var(--fs-small);font-weight:500}
.footnote{margin-top:16px;font-size:var(--fs-small);line-height:1.5;color:var(--muted);max-width:68ch}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border-radius:10px;font-family:var(--font);font-size:17px;font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color 150ms,border-color 150ms,color 150ms}
.btn-fill{background:var(--teal);color:var(--white);border:0}
.btn-fill:hover,.btn-fill:active{background:var(--teal-press);color:var(--white)}
.btn-line{background:var(--white);color:var(--ink);border:1.5px solid var(--ink)}
.btn-line:hover{border-color:var(--teal);color:var(--teal)}
.btn-line:active{background:var(--tint);color:var(--ink)}
.btn-sm{min-height:44px;padding:0 16px;font-size:16px}
.link-ink{color:var(--ink);font-weight:600;text-decoration-color:var(--teal);text-decoration-thickness:2px;text-underline-offset:4px}
.link-ink:hover{text-decoration-thickness:3px}
.link-strong{font-weight:600}

/* ---------- header ---------- */
.site-header{position:relative;z-index:10;background:var(--white);border-bottom:1px solid var(--hair)}
.head{display:flex;align-items:center;justify-content:space-between;gap:16px;height:72px}
.wordmark{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:20px;font-weight:700;line-height:1;letter-spacing:-.01em;text-decoration:none}
.wordmark-mark{display:inline-block;flex:none;width:14px;height:14px;border-radius:3px;background:var(--teal)}
.nav{display:flex;align-items:center;gap:24px}
.nav-links{display:flex;align-items:center;gap:24px}
.nav-links a{color:var(--ink);font-size:16px;font-weight:500;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-offset:6px;transition:text-decoration-color 150ms}
.nav-links a:hover{text-decoration-color:var(--teal)}
.nav-links a[aria-current="page"]{text-decoration-color:var(--teal)}
.t-short{display:none}
.menu{display:none;position:static}
.menu>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 4px;font-size:16px;font-weight:600;line-height:1;cursor:pointer;list-style:none}
.menu>summary::-webkit-details-marker{display:none}
.menu>summary::after{content:"+";font-size:20px;font-weight:600;color:var(--teal);line-height:1;width:12px;text-align:center}
.menu[open]>summary::after{content:"\2212"}
.menu-list{position:absolute;left:0;right:0;top:72px;background:var(--white);border-bottom:1px solid var(--hair);padding:8px var(--margin) 16px}
.menu-list a{display:block;padding:12px 0;color:var(--ink);font-size:17px;font-weight:500;text-decoration:none;border-bottom:1px solid var(--hair)}
.menu-list li:last-child a{border-bottom:0}
.menu-list a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--teal);text-decoration-thickness:2px;text-underline-offset:6px}
@media (min-width:900px) and (max-width:1023px){.nav,.nav-links{gap:16px}}
@media (max-width:899px){
  .nav-links{display:none}
  .menu{display:block}
  .nav{gap:12px}
}
@media (max-width:719px){
  .t-full{display:none}
  .t-short{display:inline}
}
/* v5.1: wordmark, Snapshot and Menu fit from 352px; narrower, the menu carries "Free snapshot" */
@media (max-width:389px){
  .head{gap:12px}
  .nav{gap:8px}
  .nav>.btn-sm{padding:0 12px}
  .menu>summary{padding:0}
}
@media (max-width:351px){.nav>.btn{display:none}}

/* ---------- page head ---------- */
.page-head{padding-top:64px}
@media (max-width:719px){.page-head{padding-top:40px}}
.page-head .h1{max-width:18em;margin-top:12px}
.page-head .eyebrow+.h1,.page-head .status-line+.h1{margin-top:12px}
.page-head .lede{margin-top:24px}
.page-head .lede+p{margin-top:16px;max-width:68ch}
.status-line{font-size:var(--fs-small);line-height:1.5;color:var(--muted)}
.status{margin-top:24px;max-width:68ch;font-size:var(--fs-small);line-height:1.5;padding:12px 16px;border:1px solid var(--hair);border-radius:10px}
.note-box{display:inline-block;margin-top:24px;padding:12px 16px;border:1px solid var(--hair);border-radius:10px;font-size:var(--fs-small);font-weight:500;line-height:1.5}

/* ---------- home zones (v5.1): full-bleed bands, the colour change is the divider ---------- */
.zone{width:100%;border:0;border-radius:0;background:var(--white)}
.zone--tray{background:var(--tray)}
.zone--hero{padding:32px 0}
.zone--proof{padding:32px 0 48px}
.zone--census,.zone--terms,.zone--start{padding:48px 0}
@media (min-width:720px){
  .zone--hero{padding:48px 0}
  .zone--proof{padding:48px 0 64px}
  .zone--census,.zone--terms,.zone--start{padding:64px 0}
}
@media (min-width:1024px){
  .zone--hero{padding:64px 0}
  .zone--proof{padding:64px 0 96px}
  .zone--census,.zone--terms,.zone--start{padding:96px 0}
}
.site-footer.site-footer--flush{margin-top:0}

/* ---------- home hero ---------- */
.hero-title{margin-top:12px;max-width:18em}
.lede.hero-sub{margin-top:16px;max-width:34em}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:24px}
.hero-link{font-size:17px;font-weight:600}
.hero-micro{margin-top:12px}
@media (max-width:719px){.hero-actions .btn{width:100%}}
.stage-wrap{margin-top:32px}
@media (max-width:719px){.stage-wrap{margin-top:32px;padding:0}}

/* ---------- the stage: tray, answer card, counts ---------- */
.tray{background:var(--tray);border-radius:20px}
.stage{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding:40px}
.stage-cap{grid-column:1/-1}
.stage-cap-h{font-size:16px;font-weight:600;line-height:1.5}
.stage-cap-sub{font-size:15px;line-height:1.5;color:var(--muted)}
@media (min-width:1200px){
  .stage{grid-template-columns:minmax(0,760fr) minmax(0,336fr)}
}
@media (max-width:719px){
  .stage{border-radius:0;padding:24px 20px;gap:20px}
}
.stage.stage--home{padding:0;background:none;border-radius:0}
.stage--home>.stage-cap-h{grid-column:1/-1}

.answer{background:var(--white);border-radius:16px;padding:32px;box-shadow:var(--lift);min-width:0}
@media (max-width:719px){.answer{border-radius:14px;padding:20px}}
.ans-meta{font-size:15px;line-height:1.5;color:var(--muted)}
.ans-q{margin-top:6px;font-size:var(--fs-q);line-height:1.35;font-weight:600}
.ans-engine{margin-top:6px;font-size:15px;line-height:1.5;color:var(--muted)}
.ans-body{margin-top:20px;padding-top:24px;border-top:1px solid var(--hair);display:grid;grid-template-columns:minmax(0,448fr) 32px minmax(0,216fr);grid-template-rows:auto auto auto;row-gap:20px}
.ans-body::before{content:"";grid-column:2;grid-row:1/span 3;justify-self:center;width:1px;background:var(--hair)}
.ans-quote{grid-column:1;grid-row:1/span 3;display:grid;grid-template-rows:subgrid;font-size:var(--fs-body);line-height:1.65}
.ans-quote p{min-width:0}
/* Manrope's calt turns a straight apostrophe into a curly one; verbatim quotes keep the source's straight one */
.ans-quote,.feed-x{font-variant-ligatures:no-contextual}
.ans-notes{grid-column:3;grid-row:1/span 3;display:grid;grid-template-rows:subgrid}
.ans-notes>li{display:grid;align-content:start;gap:16px;min-width:0}
.note{position:relative;line-height:1.45}
.note::before{content:"";position:absolute;left:-26px;top:11px;width:20px;height:2px;background:var(--teal);transform-origin:right center}
.note-names{display:block;font-size:16px;font-weight:600;color:var(--ink)}
.note-kind{display:block;font-size:15px;font-weight:500;color:var(--ink)}
.note-count{display:block;font-size:15px;color:var(--muted)}
.note--verdict{background:var(--tint);padding:12px 14px;border-radius:8px}
.note--verdict::before{top:23px}
.verdict-line{display:block;font-size:17px;font-weight:700;line-height:1.4;color:var(--ink)}
.verdict-sub{display:block;margin-top:4px;font-size:15px;line-height:1.45;color:var(--ink)}
@media (min-width:720px) and (max-width:1199px){
  .ans-body{grid-template-columns:minmax(0,368fr) 32px minmax(0,208fr)}
}
@media (max-width:719px){
  .ans-body{display:block;padding-top:20px}
  .ans-body::before{display:none}
  .ans-quote{display:block}
  .ans-quote p+p{margin-top:16px}
  .ans-notes{display:block;margin-top:24px}
  .ans-notes>li{gap:12px}
  .ans-notes>li+li{margin-top:12px}
  .note{padding-left:15px}
  .note::before{left:0;top:0;bottom:0;width:3px;height:auto;transform-origin:center top}
  .note--verdict{padding:12px 14px 12px 17px;border-radius:0 8px 8px 0}
}

/* marks: shape carries the kind, colour is never the only cue */
.m{position:relative;z-index:0;color:inherit;background:none;padding:0 2px;white-space:nowrap}
.m-brand,.m-store{background-image:linear-gradient(var(--tint),var(--tint));background-repeat:no-repeat;background-position:0 0;background-size:100% 100%;border-radius:2px}
.m-store::after,.m-ing::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:var(--teal);transform-origin:left center}
.m-ing{padding:0}
.m-ing::after{bottom:-3px;height:0;background:none;border-bottom:2px dotted var(--teal)}

.ans-src{margin-top:24px;padding-top:20px;border-top:1px solid var(--hair)}
.ans-src-h{font-size:16px;font-weight:600;line-height:1.5}
.ans-src-list{margin-top:8px}
.ans-src-list li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:2px 16px;padding:8px 0;border-top:1px solid var(--hair)}
.ans-src-list li:first-child{border-top:0}
.src-domain{font-size:16px;font-weight:600;line-height:1.5}
.src-type{font-size:15px;line-height:1.5;color:var(--muted)}
.ans-foot{margin-top:16px;font-size:15px;line-height:1.5;color:var(--muted)}
.ans-src--line>p{font-size:16px;font-weight:600;line-height:1.6}
.ans-src--line .src-lead{font-size:15px;font-weight:400;color:var(--muted)}
.ans-src--line .src-domain{white-space:nowrap}
.ans-src--line .src-note{font-size:15px;font-weight:400;color:var(--muted)}
@media (max-width:719px){.ans-src-list li{grid-template-columns:minmax(0,1fr)}}

.counts{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-content:start;min-width:0}
.counts .tile+.tile{margin-top:0}
@media (min-width:720px) and (max-width:1199px){
  .counts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .counts--3{grid-template-columns:minmax(0,1fr)}
  .counts .stage-link{grid-column:1/-1}
}
@media (min-width:1100px) and (max-width:1199px){.counts--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:719px){.counts{gap:16px}}
.stage-link{font-size:17px}

/* ---------- tiles ---------- */
.tile{background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:24px;min-width:0}
.tile-label{font-size:var(--fs-small);font-weight:500;line-height:1.5}
.tile-fig{margin-top:8px;font-size:var(--fs-stat);line-height:1;font-weight:700;letter-spacing:-.01em;white-space:nowrap}
.tile-gloss{margin-top:12px;font-size:15px;line-height:1.5;color:var(--muted)}
.tile-src{margin-top:12px;padding-top:12px;border-top:1px solid var(--hair);font-size:15px;line-height:1.5;color:var(--muted)}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media (max-width:899px){.tiles{grid-template-columns:minmax(0,1fr)}}

/* ---------- category cards ---------- */
.cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
@media (max-width:719px){.cats{grid-template-columns:minmax(0,1fr);gap:16px}}
.cat{display:flex;flex-direction:column;align-items:flex-start;gap:12px;background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:28px;transition:border-color 150ms}
.cat:hover{border-color:var(--teal)}
@media (max-width:719px){.cat{padding:24px}}
.tag{display:inline-block;font-size:15px;font-weight:500;line-height:1.5;padding:2px 12px;border-radius:999px;color:var(--ink)}
.tag--pub{background:var(--tint)}
.tag--wait{background:var(--white);border:1px solid var(--muted);padding:1px 11px}
.cat-title{font-size:22px;line-height:1.3;font-weight:600}
@media (max-width:719px){.cat-title{font-size:20px}}
.cat-find{font-size:17px;line-height:1.55}
.cat-asked{font-size:17px;line-height:1.55}
.cat-meta{font-size:15px;line-height:1.5;color:var(--muted)}
.cat-link{margin-top:auto;padding-top:4px;font-size:16px;font-weight:600}
.cat-grid{margin-top:4px}
.qg{display:grid;grid-template-columns:repeat(20,8px);grid-auto-rows:8px;gap:2px;width:198px}
.qg--10{grid-template-columns:repeat(10,8px);width:98px}
.qg>span{display:block;width:8px;height:8px;border:1px solid var(--empty)}
.qg>span.on{background:var(--teal);border-color:var(--teal)}
.qg-cap{margin-top:8px;font-size:15px;line-height:1.5;color:var(--muted)}
.cats-more{margin-top:24px}
.cats.cats--compact{grid-template-columns:minmax(0,1fr);gap:16px}
@media (min-width:1024px){.cats.cats--compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}}
.cat--compact{position:relative}
.cat--compact .cat-title a{color:var(--ink);text-decoration-color:var(--teal);text-decoration-thickness:2px;text-underline-offset:4px}
.cat--compact .cat-title a:hover{text-decoration-thickness:3px}
.cat--compact .cat-title a::after{content:"";position:absolute;inset:0;border-radius:16px}
.cat--compact .cat-title a:focus-visible{outline:none}
.cat--compact .cat-title a:focus-visible::after{outline:2px solid var(--teal);outline-offset:2px}
.cats-divider{margin:48px 0 0;border:0;border-top:1px solid var(--hair)}
.cat--row{margin-top:24px;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;background:var(--white)}
.cat--row .cat-body{flex:1 1 420px;min-width:0}
.cat--row .cat-title{font-size:20px}
.cat--row .cat-links{display:flex;flex-wrap:wrap;gap:8px 24px}
.cat--row .cat-links a{font-size:16px;font-weight:600}

/* ---------- leaderboard ---------- */
.lb-key{margin-bottom:16px;font-size:var(--fs-small);line-height:1.5;color:var(--muted)}
.lb{border-top:1px solid var(--hair)}
.lb-row{display:grid;grid-template-columns:240px minmax(0,1fr) 264px;align-items:center;gap:8px 24px;padding:14px 0;border-bottom:1px solid var(--hair)}
.lb-name{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:16px;font-weight:600;line-height:1.4;min-width:0}
.lb-cap{font-size:var(--fs-small);line-height:1.4;color:var(--muted);text-align:right}
.lb-row.is-client{margin:0 -12px;padding:14px 12px;background:var(--tint);border-radius:8px}
.kind{display:inline-block;font-size:15px;font-weight:500;line-height:1.4;padding:1px 10px;border-radius:999px;color:var(--ink);white-space:nowrap}
.kind--brand{background:var(--tint);padding:2.5px 11.5px}
.kind--store{border:1.5px solid var(--teal)}
.kind--ingredient{border:1.5px dotted var(--muted)}
.kind--plain{border:1.5px solid var(--hair)}
@media (max-width:719px){
  .lb-row{grid-template-columns:minmax(0,1fr);gap:8px}
  .lb-cap{text-align:left}
}
.bar{position:relative;display:block;height:12px;border-radius:6px;background:var(--track)}
.bar-fill{position:absolute;top:0;bottom:0;border-radius:6px;background:var(--teal);min-width:4px}
.bar-tick{position:absolute;top:-4px;width:2px;height:20px;margin-left:-1px;background:var(--ink)}
.bar-tick.x-0{margin-left:0}
.bar-tick.x-100{margin-left:-2px}

/* ---------- sources by type ---------- */
.srcgroups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
@media (max-width:719px){.srcgroups{grid-template-columns:minmax(0,1fr);gap:16px}}
.srcgroup{border:1px solid var(--hair);border-radius:16px;padding:24px;min-width:0}
.srcgroup-h{font-size:var(--fs-h3);line-height:1.3;font-weight:600}
.srcgroup-list{margin-top:12px}
.srcgroup-list li{padding:12px 0;border-top:1px solid var(--hair)}
.srcgroup-list li:first-child{border-top:0;padding-top:4px}
.srcgroup-list .src-domain{display:block}
.srcgroup-list .src-type,.srcgroup-list .src-count{display:block;font-size:15px;line-height:1.5}
.srcgroup-list .src-type{color:var(--muted)}
.srcgroup-list .src-count{font-weight:500}
.srcgroup-empty{margin-top:12px;font-size:var(--fs-small);color:var(--muted)}

/* ---------- tables ---------- */
.table-scroll{overflow-x:auto;border:1px solid var(--hair);border-radius:16px;background:var(--white)}
.table-scroll:focus-visible{outline-offset:2px}
.data{width:100%;border-collapse:collapse;font-size:var(--fs-small);line-height:1.5}
.data caption{caption-side:top;text-align:left;padding:16px 20px;color:var(--muted);border-bottom:1px solid var(--hair)}
.data th,.data td{padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--hair)}
.data thead th{font-weight:600;background:var(--tray);color:var(--ink);vertical-align:bottom}
.data tbody th{font-weight:600}
.data tbody tr:last-child>*{border-bottom:0}
.data .num{text-align:right;font-variant-numeric:tabular-nums}
.data td.num{white-space:nowrap}
.data thead th{min-width:96px}
.data .nowrap{white-space:nowrap}
.data tr.is-client>*{background:var(--tint)}
.data .td-bar{min-width:240px;width:28%}
.data .td-bar .cap{margin-top:8px}
.data--census{min-width:980px}
.data--routes{min-width:720px}
.data--integrity{min-width:820px}
.data--sources{min-width:720px}
.data--gap{min-width:820px}
.data--pages{min-width:1080px}
.data--roadmap{min-width:1120px}
.data--roadmap .col-item{min-width:220px}
.data--roadmap .col-effort{min-width:180px}
.data--roadmap .col-effect{min-width:300px}
.scroll-hint{display:none;margin-bottom:8px}
@media (max-width:719px){.scroll-hint{display:block}}

/* full table disclosure */
.route-details{border:1px solid var(--hair);border-radius:16px;background:var(--white)}
.route-details+.route-details{margin-top:24px}
.route-details>summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 24px;font-size:18px;font-weight:600;line-height:1.4;cursor:pointer;list-style:none}
.route-details>summary::-webkit-details-marker{display:none}
.route-details>summary::after{content:"+";flex:none;width:20px;text-align:center;font-size:20px;font-weight:600;color:var(--teal);line-height:1}
.route-details[open]>summary::after{content:"\2212"}
.route-body{padding:0 24px 24px}
.route-body>p{max-width:68ch}
.route-body>*+*{margin-top:16px}
@media (max-width:719px){.route-details>summary{padding:16px 20px}.route-body{padding:0 16px 20px}}

/* ---------- process steps and why ---------- */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
@media (max-width:899px){.steps{grid-template-columns:minmax(0,1fr);gap:28px}}
.step-n{display:grid;place-items:center;width:40px;height:40px;border:1.5px solid var(--teal);border-radius:50%;font-size:17px;font-weight:700;color:var(--teal);line-height:1}
.step .h3{margin-top:16px}
.step p{margin-top:8px;font-size:17px;line-height:1.6}
.why .h3{margin-top:0}
.why .step{border-top:2px solid var(--teal);padding-top:20px}
.step .step-more{margin-top:12px;font-size:16px;font-weight:600}
.steps-after{margin-top:32px;font-size:17px}

/* ---------- prices ---------- */
.prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.prices--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:999px){.prices,.prices--2{grid-template-columns:minmax(0,1fr)}}
.price{background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:32px;min-width:0}
.price.is-hi{border:2px solid var(--teal);padding:31px;box-shadow:var(--lift)}
@media (max-width:719px){.price{padding:24px}.price.is-hi{padding:23px}}
.price-tag{display:inline-block;margin-bottom:16px;font-size:15px;font-weight:500;line-height:1.5;padding:2px 12px;border-radius:999px;background:var(--tint)}
.price-tier{font-size:20px;line-height:1.3;font-weight:600}
.price-fig{margin-top:12px;font-size:var(--fs-price);line-height:1;font-weight:700;white-space:nowrap}
.price-fig .per{font-size:var(--fs-body);font-weight:500;color:var(--muted)}
.price-scope{margin-top:16px;font-size:17px;line-height:1.5}
.price-plus{margin-top:20px;font-size:var(--fs-small);font-weight:600}
.price-list{margin-top:8px}
.price-list li,.list li{position:relative;padding-left:22px;font-size:17px;line-height:1.55}
.price-list li+li,.list li+li{margin-top:8px}
.price-list li::before,.list li::before{content:"";position:absolute;left:0;top:.75em;width:10px;height:2px;background:var(--teal)}
.price-cta{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.price-cta a:not(.btn){font-size:16px;font-weight:600}
.prices-after{margin-top:32px}
.prices-after p+p{margin-top:8px}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--hair);max-width:880px}
.qa{border-bottom:1px solid var(--hair)}
.qa>summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 0;font-size:18px;font-weight:600;line-height:1.4;cursor:pointer;list-style:none}
.qa>summary::-webkit-details-marker{display:none}
.qa>summary::after{content:"+";flex:none;width:20px;text-align:center;font-size:20px;font-weight:600;color:var(--teal);line-height:1}
.qa[open]>summary::after{content:"\2212"}
.qa-body{padding:0 0 20px;max-width:68ch;font-size:17px;line-height:1.6}
.qa-body p+p{margin-top:12px}

/* ---------- compliance block ---------- */
.comply{background:var(--tray);border-radius:20px;padding:48px}
@media (max-width:719px){.comply{padding:24px}}
.comply-label{font-size:16px;font-weight:600;line-height:1.5;color:var(--muted)}
.comply-line{margin-top:12px;max-width:30em;font-size:var(--fs-line);line-height:1.35;font-weight:600;color:var(--ink);text-wrap:pretty}
.comply-sub{margin-top:16px;font-size:17px;line-height:1.55;max-width:60ch}
.comply a{color:var(--ink);text-decoration-color:var(--teal);text-decoration-thickness:2px}

/* ---------- terms (home, v5.1): promise and price side by side on the tray zone ---------- */
.terms{display:grid;grid-template-columns:minmax(0,1fr)}
.terms-cell{min-width:0}
.terms-cell+.terms-cell{margin-top:24px;padding-top:24px;border-top:1px solid var(--hair)}
@media (min-width:720px){.terms-cell+.terms-cell{margin-top:32px;padding-top:32px}}
@media (min-width:1024px){
  .terms{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
  .terms-cell--promise{grid-column:1/8}
  .terms-cell--price,.terms-cell+.terms-cell--price{grid-column:9/13;margin-top:0;padding-top:0;border-top:0;border-left:1px solid var(--hair);padding-left:32px}
}
.terms-label{font-size:16px;font-weight:600;line-height:1.5;color:var(--muted)}
.terms-price{margin-top:12px;font-size:var(--fs-lede);line-height:1.5;font-weight:400}
.terms-price .num{font-weight:700}
.terms-link{margin-top:16px;font-size:17px}

/* ---------- band ---------- */
.band{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 48px;border:1px solid var(--hair);border-radius:16px;padding:48px}
.band>div{flex:1 1 480px;max-width:720px}
.band p{margin-top:12px;max-width:60ch}
@media (min-width:1024px){.band{flex-wrap:nowrap}.band>.btn{flex:none}}
@media (max-width:719px){.band{padding:24px}.band>.btn{width:100%}}

/* ---------- corrections, questions ---------- */
.corrections li{padding:12px 0;border-top:1px solid var(--hair);font-size:var(--fs-small);line-height:1.5;color:var(--muted);max-width:90ch}
.corrections li:first-child{border-top:0;padding-top:0}
.qlist{counter-reset:q;max-width:760px}
.qlist li{counter-increment:q;display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;padding:12px 0;border-top:1px solid var(--hair);font-size:17px;line-height:1.5}
.qlist li:first-child{border-top:0}
.qlist li::before{content:counter(q);font-weight:700;color:var(--teal)}
.qlist-after{margin-top:20px}

/* ---------- grids (method worked example) ---------- */
.sgrid{display:flex;flex-wrap:wrap;gap:10px}
.sgrid-grp{display:inline-grid;grid-template-columns:repeat(3,22px);gap:3px}
.sgrid .cell{display:block;width:22px;height:22px;border:1.5px solid var(--empty)}
.sgrid .cell.on{background:var(--teal);border-color:var(--teal)}

/* ---------- forms ---------- */
.form-card{max-width:720px;border:1px solid var(--hair);border-radius:16px;padding:32px}
@media (max-width:719px){.form-card{padding:20px}}
.field+.field{margin-top:20px}
.field label{display:block;font-size:16px;font-weight:600;line-height:1.5;margin-bottom:6px}
.field input{display:block;width:100%;min-height:48px;padding:10px 14px;font-family:var(--font);font-size:17px;color:var(--ink);background:var(--white);border:1.5px solid var(--muted);border-radius:10px}
.field input::placeholder{color:var(--muted);opacity:1}
.field input:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-color:var(--teal)}
.form-actions{margin-top:28px}
.hint{margin-top:20px;font-size:var(--fs-small);line-height:1.5;color:var(--muted)}

/* ---------- sample audit (v4.3 content, v5 look) ---------- */
.feed{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media (max-width:999px){.feed{grid-template-columns:minmax(0,1fr)}}
.feed-card{background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:12px;min-width:0}
.feed-route,.feed-foot{font-size:15px;line-height:1.5;color:var(--muted)}
.feed-q{font-size:17px;font-weight:600;line-height:1.4}
.feed-x{font-size:17px;line-height:1.65}
.feed-x p+p{margin-top:10px}
.m-client{background-image:linear-gradient(var(--tint),var(--tint));background-repeat:no-repeat;background-size:100% 100%;border-radius:2px}
.m-client::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:var(--ink)}
.lb-note{margin-top:16px}
.lb-note p+p{margin-top:8px}
.flag{font-weight:700}
.no-flag{color:var(--muted)}
.checked{margin-bottom:32px;background:var(--tray);border-radius:16px;padding:28px}
.checked .h3+p{margin-top:8px}
.checked .list{margin-top:12px}
.checked.prereg{margin-top:32px;margin-bottom:0}
.fixes{display:grid;gap:24px}
.fix{background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:28px;min-width:0}
@media (max-width:719px){.fix,.checked{padding:20px}}
.fix-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px}
.fix-num{display:inline-block;font-size:15px;font-weight:600;line-height:1.5;padding:2px 12px;border-radius:999px;border:1.5px solid var(--teal)}
.fix-dl{margin-top:16px}
.fix-dl>div{display:grid;grid-template-columns:200px minmax(0,1fr);gap:4px 24px;padding:12px 0;border-top:1px solid var(--hair)}
.fix-dl dt{font-size:var(--fs-small);font-weight:600;line-height:1.5}
.fix-dl dd{font-size:17px;line-height:1.55;min-width:0}
.fix-dl dd>*+*{margin-top:10px}
@media (max-width:719px){.fix-dl>div{grid-template-columns:minmax(0,1fr)}}
.tier-note{display:inline-block;margin-top:16px;font-size:var(--fs-small);font-weight:500;padding:2px 12px;border-radius:999px;background:var(--tint)}
.pitch{padding:16px;border-left:3px solid var(--teal);background:var(--tray);border-radius:0 8px 8px 0}
.cmd{display:block;margin-top:8px;padding:12px 16px;background:var(--tray);border-radius:10px;font-size:15px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}
.pipe{padding:0 3px}
.brief{margin-top:16px}
.brief>li{padding:16px 0;border-top:1px solid var(--hair)}
.brief>li>p+p{margin-top:6px}
.brief-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.tag--add{border:1.5px solid var(--teal);padding:1px 10.5px}
.tag--ok{background:var(--tint)}
.promises li+li{margin-top:12px}

/* ---------- 404 ---------- */
.links-row{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:24px;font-weight:600}

/* ---------- about ---------- */
.about-bio{max-width:44em}
.about-bio p{max-width:68ch}

/* ---------- footer ---------- */
.site-footer{margin-top:var(--section);background:var(--teal);color:var(--white);padding:64px 0 48px}
@media (max-width:719px){.site-footer{padding:48px 0 40px}}
.site-footer a{color:var(--white);text-decoration-thickness:1px}
.site-footer a:hover{text-decoration-thickness:2px}
.site-footer :focus-visible{outline-color:var(--white)}
.foot{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);gap:32px 48px}
@media (max-width:899px){.foot{grid-template-columns:minmax(0,1fr)}}
.site-footer .wordmark{color:var(--white)}
.site-footer .wordmark-mark{background:var(--white)}
.foot-tag{margin-top:12px;font-size:16px;line-height:1.5}
.foot-mail{margin-top:16px;font-size:16px}
.foot-links{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:16px;font-weight:500}
.foot-excl{margin-top:24px;font-size:16px;line-height:1.55;max-width:62ch}
.foot-meta{margin-top:16px;font-size:16px;line-height:1.5}

/* ---------- the one motion: draw-in on load, once, under 600 ms ---------- */
@keyframes draw-fill{from{background-size:0% 100%}}
@keyframes draw-x{from{transform:scaleX(0)}}
@keyframes draw-y{from{transform:scaleY(0)}}
@media (prefers-reduced-motion:no-preference){
  .answer .m-brand,.answer .m-store{animation:draw-fill 200ms var(--ease-draw) backwards}
  .answer .m-store::after,.answer .m-ing::after{animation:draw-x 200ms var(--ease-draw) backwards}
  .answer .note::before{animation:draw-x 200ms var(--ease-draw) backwards}
  .answer .md1,.answer .md1::after{animation-delay:40ms}
  .answer .md2,.answer .md2::after{animation-delay:80ms}
  .answer .md3,.answer .md3::after{animation-delay:120ms}
  .answer .md4,.answer .md4::after{animation-delay:160ms}
  .answer .md5,.answer .md5::after{animation-delay:200ms}
  .answer .md6,.answer .md6::after{animation-delay:240ms}
  .answer .md7,.answer .md7::after{animation-delay:280ms}
  .answer .md8,.answer .md8::after{animation-delay:320ms}
  .answer .md9,.answer .md9::after{animation-delay:360ms}
  .answer .nd0::before{animation-delay:200ms}
  .answer .nd1::before{animation-delay:260ms}
  .answer .nd2::before{animation-delay:320ms}
  .answer .nd3::before{animation-delay:380ms}
}
@media (prefers-reduced-motion:no-preference) and (max-width:719px){
  .answer .note::before{animation-name:draw-y}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none;transition:none}
}

/* ---------- bar geometry as classes (CSP: no style attributes) ---------- */
.x-0{left:0%}.x-1{left:1%}.x-2{left:2%}.x-3{left:3%}.x-4{left:4%}.x-5{left:5%}.x-6{left:6%}.x-7{left:7%}.x-8{left:8%}.x-9{left:9%}.x-10{left:10%}.x-11{left:11%}.x-12{left:12%}.x-13{left:13%}.x-14{left:14%}.x-15{left:15%}.x-16{left:16%}.x-17{left:17%}.x-18{left:18%}.x-19{left:19%}.x-20{left:20%}.x-21{left:21%}.x-22{left:22%}.x-23{left:23%}.x-24{left:24%}.x-25{left:25%}.x-26{left:26%}.x-27{left:27%}.x-28{left:28%}.x-29{left:29%}.x-30{left:30%}.x-31{left:31%}.x-32{left:32%}.x-33{left:33%}.x-34{left:34%}.x-35{left:35%}.x-36{left:36%}.x-37{left:37%}.x-38{left:38%}.x-39{left:39%}.x-40{left:40%}.x-41{left:41%}.x-42{left:42%}.x-43{left:43%}.x-44{left:44%}.x-45{left:45%}.x-46{left:46%}.x-47{left:47%}.x-48{left:48%}.x-49{left:49%}.x-50{left:50%}.x-51{left:51%}.x-52{left:52%}.x-53{left:53%}.x-54{left:54%}.x-55{left:55%}.x-56{left:56%}.x-57{left:57%}.x-58{left:58%}.x-59{left:59%}.x-60{left:60%}.x-61{left:61%}.x-62{left:62%}.x-63{left:63%}.x-64{left:64%}.x-65{left:65%}.x-66{left:66%}.x-67{left:67%}.x-68{left:68%}.x-69{left:69%}.x-70{left:70%}.x-71{left:71%}.x-72{left:72%}.x-73{left:73%}.x-74{left:74%}.x-75{left:75%}.x-76{left:76%}.x-77{left:77%}.x-78{left:78%}.x-79{left:79%}.x-80{left:80%}.x-81{left:81%}.x-82{left:82%}.x-83{left:83%}.x-84{left:84%}.x-85{left:85%}.x-86{left:86%}.x-87{left:87%}.x-88{left:88%}.x-89{left:89%}.x-90{left:90%}.x-91{left:91%}.x-92{left:92%}.x-93{left:93%}.x-94{left:94%}.x-95{left:95%}.x-96{left:96%}.x-97{left:97%}.x-98{left:98%}.x-99{left:99%}.x-100{left:100%}
.w-0{width:0%}.w-1{width:1%}.w-2{width:2%}.w-3{width:3%}.w-4{width:4%}.w-5{width:5%}.w-6{width:6%}.w-7{width:7%}.w-8{width:8%}.w-9{width:9%}.w-10{width:10%}.w-11{width:11%}.w-12{width:12%}.w-13{width:13%}.w-14{width:14%}.w-15{width:15%}.w-16{width:16%}.w-17{width:17%}.w-18{width:18%}.w-19{width:19%}.w-20{width:20%}.w-21{width:21%}.w-22{width:22%}.w-23{width:23%}.w-24{width:24%}.w-25{width:25%}.w-26{width:26%}.w-27{width:27%}.w-28{width:28%}.w-29{width:29%}.w-30{width:30%}.w-31{width:31%}.w-32{width:32%}.w-33{width:33%}.w-34{width:34%}.w-35{width:35%}.w-36{width:36%}.w-37{width:37%}.w-38{width:38%}.w-39{width:39%}.w-40{width:40%}.w-41{width:41%}.w-42{width:42%}.w-43{width:43%}.w-44{width:44%}.w-45{width:45%}.w-46{width:46%}.w-47{width:47%}.w-48{width:48%}.w-49{width:49%}.w-50{width:50%}.w-51{width:51%}.w-52{width:52%}.w-53{width:53%}.w-54{width:54%}.w-55{width:55%}.w-56{width:56%}.w-57{width:57%}.w-58{width:58%}.w-59{width:59%}.w-60{width:60%}.w-61{width:61%}.w-62{width:62%}.w-63{width:63%}.w-64{width:64%}.w-65{width:65%}.w-66{width:66%}.w-67{width:67%}.w-68{width:68%}.w-69{width:69%}.w-70{width:70%}.w-71{width:71%}.w-72{width:72%}.w-73{width:73%}.w-74{width:74%}.w-75{width:75%}.w-76{width:76%}.w-77{width:77%}.w-78{width:78%}.w-79{width:79%}.w-80{width:80%}.w-81{width:81%}.w-82{width:82%}.w-83{width:83%}.w-84{width:84%}.w-85{width:85%}.w-86{width:86%}.w-87{width:87%}.w-88{width:88%}.w-89{width:89%}.w-90{width:90%}.w-91{width:91%}.w-92{width:92%}.w-93{width:93%}.w-94{width:94%}.w-95{width:95%}.w-96{width:96%}.w-97{width:97%}.w-98{width:98%}.w-99{width:99%}.w-100{width:100%}
