/* ==========================================================================
   Truthring — design system
   Palette: F · Ledger  ·  navy ink, burnt-amber action
   ========================================================================== */

:root{
  /* ground */
  --paper:      #f6f7f9;
  --paper-2:    #eef1f5;
  --surface:    #ffffff;
  --rule:       #dfe3ea;
  --rule-2:     #c3cad6;

  /* ink — navy carries both headings and body */
  --ink:        #0f2a4a;
  --body:       #3a4a5e;
  --muted:      #4a5766;
  --faint:      #5f6d7e;

  /* action */
  --amber:      #c26a12;
  --amber-deep: #a4570b;
  --amber-wash: #fdf3e7;

  /* verdicts — never the accent, always a tinted chip */
  --synth-fg:   #a52a1e;  --synth-bg:   #fceceb;
  --human-fg:   #15613f;  --human-bg:   #e4f1ea;
  --unclear-fg: #4d5b6b;  --unclear-bg: #eef1f5;

  /* type */
  --serif: "Literata", Georgia, "Times New Roman", serif;
  --sans:  "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --mono:  "DM Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* scale */
  --measure: 66ch;
  --gutter: clamp(20px, 5vw, 40px);
  --band:   clamp(56px, 6vw, 92px);
  --ease:   cubic-bezier(.22,.61,.36,1);
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:      #0c141f;
    --paper-2:    #111c2a;
    --surface:    #16222f;
    --rule:       #22303f;
    --rule-2:     #35465a;

    --ink:        #e8eef5;
    --body:       #b8c6d4;
    --muted:      #adbccb;
    --faint:      #8b9dae;

    --amber:      #e2933f;
    --amber-deep: #f0ab5e;
    --amber-wash: #241a0f;

    --synth-fg:   #ea8a7c;  --synth-bg:   #2c1714;
    --human-fg:   #6cc79b;  --human-bg:   #10261c;
    --unclear-fg: #9aabbc;  --unclear-bg: #1a2632;
  }
}
:root[data-theme="dark"]{
  --paper:#0c141f; --paper-2:#111c2a; --surface:#16222f;
  --rule:#22303f;  --rule-2:#35465a;
  --ink:#e8eef5;   --body:#b8c6d4;  --muted:#adbccb; --faint:#8b9dae;
  --amber:#e2933f; --amber-deep:#f0ab5e; --amber-wash:#241a0f;
  --synth-fg:#ea8a7c; --synth-bg:#2c1714;
  --human-fg:#6cc79b; --human-bg:#10261c;
  --unclear-fg:#9aabbc; --unclear-bg:#1a2632;
}

/* --------------------------------------------------------- base */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--body);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}

h1,h2,h3,h4{color:var(--ink);font-family:var(--serif);margin:0;text-wrap:balance;line-height:1.14}
h1{font-size:clamp(38px,5.2vw,62px);font-weight:700;letter-spacing:-.024em}
h2{font-size:clamp(25px,3.3vw,36px);font-weight:600;letter-spacing:-.016em}
h3{font-size:20px;font-weight:600;letter-spacing:-.008em}
h4{font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:.005em}
p{margin:0;max-width:var(--measure)}

a{color:var(--amber-deep);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,var(--amber) 40%,transparent)}
a:hover{text-decoration-color:var(--amber)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:2px}

/* --------------------------------------------------------- layout */
.container{max-width:1200px;margin:0 auto;padding-inline:var(--gutter)}
.narrow{max-width:760px}
.band{padding-block:var(--band);border-bottom:1px solid var(--rule)}
.band--alt{background:var(--paper-2)}
.stack{display:flex;flex-direction:column;gap:22px}
.stack-s{display:flex;flex-direction:column;gap:12px}
.stack-l{display:flex;flex-direction:column;gap:40px}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}

/* --------------------------------------------------------- kicker */
.kicker{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:.17em;text-transform:uppercase;color:var(--amber-deep);
}
.kicker--quiet{color:var(--muted)}

/* --------------------------------------------------------- header */
.site-header{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--paper) 92%,transparent);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--rule);
}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand__word{font-family:var(--serif);font-size:21px;font-weight:600;color:var(--ink);letter-spacing:-.02em}
.nav{display:flex;align-items:center;gap:24px}
.nav a{font-size:14.5px;color:var(--body);text-decoration:none}
.nav a:hover{color:var(--ink)}
@media(max-width:840px){.nav{display:none}}

/* --------------------------------------------------------- buttons */
.btn{
  display:inline-block;font-family:var(--sans);font-size:14.5px;font-weight:600;
  padding:12px 22px;border-radius:3px;border:1px solid transparent;
  text-decoration:none;cursor:pointer;transition:background .16s var(--ease),border-color .16s var(--ease);
  min-height:44px;line-height:1.35;
}
.btn--primary{background:var(--amber);border-color:var(--amber);color:#fff}
.btn--primary:hover{background:var(--amber-deep);border-color:var(--amber-deep)}
.btn--ink{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn--ghost{background:transparent;border-color:var(--rule-2);color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink)}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* --------------------------------------------------------- verdict chips */
.chip{
  display:inline-block;font-family:var(--mono);font-size:12.5px;font-weight:500;
  padding:6px 13px;border-radius:3px;letter-spacing:.01em;
}
.chip--synthetic{color:var(--synth-fg);background:var(--synth-bg)}
.chip--human    {color:var(--human-fg);background:var(--human-bg)}
.chip--unclear  {color:var(--unclear-fg);background:var(--unclear-bg)}

/* --------------------------------------------------------- cards */
.card{
  background:var(--surface);border:1px solid var(--rule);border-radius:4px;
  padding:26px;display:flex;flex-direction:column;gap:14px;
}
.card h3{font-family:var(--sans);font-size:16px;font-weight:600}
.card p{font-size:15px;max-width:none;color:var(--body)}

/* --------------------------------------------------------- verdict card */
.verdict{background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:28px;display:flex;flex-direction:column;gap:18px}
.verdict__top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.verdict__score{font-family:var(--mono);font-size:42px;font-weight:500;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}
.verdict__label{font-family:var(--mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--faint);margin-top:6px;text-align:right}
.verdict__rows{display:flex;flex-direction:column;border-top:1px solid var(--rule);margin:0}
.verdict__row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--rule);font-size:14.5px}
.verdict__row:last-child{border-bottom:0}
.verdict__row dt{color:var(--muted);margin:0}
.verdict__row dd{margin:0;font-family:var(--mono);font-size:13px;color:var(--ink);text-align:right}

/* --------------------------------------------------------- stat */
.stat{display:flex;flex-direction:column;gap:6px}
.stat__num{font-family:var(--mono);font-size:clamp(30px,3.6vw,40px);font-weight:500;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}
.stat__txt{font-size:14.5px;color:var(--muted);max-width:32ch}
.stat__src{font-family:var(--mono);font-size:11px;color:var(--faint)}

/* --------------------------------------------------------- steps */
.step{display:flex;flex-direction:column;gap:9px}
.step__n{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--amber-deep)}
.step__meta{font-family:var(--mono);font-size:11.5px;color:var(--faint);margin-top:2px}

/* --------------------------------------------------------- tables */
.table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:4px;background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:14.5px;min-width:620px}
th,td{padding:13px 17px;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top}
tr:last-child td{border-bottom:0}
th{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);background:var(--paper-2)}
td strong{color:var(--ink);font-weight:600}
td.num{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* --------------------------------------------------------- lists */
ul.marks{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:11px;max-width:var(--measure)}
ul.marks li{padding-left:20px;position:relative}
ul.marks li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--amber)}

/* --------------------------------------------------------- faq */
.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{
  cursor:pointer;list-style:none;padding:18px 0;
  font-family:var(--sans);font-size:17px;font-weight:600;color:var(--ink);
  display:flex;justify-content:space-between;align-items:center;gap:16px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);font-size:19px;color:var(--amber-deep);font-weight:400}
.faq details[open] summary::after{content:"−"}
.faq details > div{padding-bottom:20px}
.faq details p{font-size:15.5px}

/* --------------------------------------------------------- note */
.note{border-left:2px solid var(--amber);padding-left:20px;display:flex;flex-direction:column;gap:10px}

/* --------------------------------------------------------- footer */
.site-footer{background:var(--paper-2);padding-block:52px 40px;border-top:1px solid var(--rule)}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:32px}
.footer-cols h4{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}
.footer-cols ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.footer-cols a{font-size:14px;color:var(--body);text-decoration:none}
.footer-cols a:hover{color:var(--ink);text-decoration:underline}
.footer-bottom{margin-top:40px;padding-top:24px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
.footer-bottom p{font-size:13px;color:var(--muted);max-width:70ch}

/* --------------------------------------------------------- misc */
.lede{font-size:20px;line-height:1.55;color:var(--muted);max-width:58ch}
.small{font-size:13.5px;color:var(--muted)}
.mono{font-family:var(--mono);font-size:.92em}
.hr{border:0;height:1px;background:var(--rule);margin:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ==========================================================================
   v2 — components added for the full site build
   Everything below reuses the tokens above. No new colour literals.
   ========================================================================== */

/* --------------------------------------------------------- a11y utilities */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--ink);color:var(--paper);
  padding:12px 20px;border-radius:0 0 6px 0;
  font:500 15px/1 var(--sans);text-decoration:none;
}
.skip-link:focus{left:0}

:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--amber);
  outline-offset:2px;
  border-radius:3px;
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* --------------------------------------------------------- header v2 */
.hdr{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:saturate(1.5) blur(10px);
  border-bottom:1px solid var(--rule);
}
.hdr__bar{
  display:flex;align-items:center;gap:28px;
  min-height:62px;
}
.hdr__brand{
  display:flex;align-items:center;gap:11px;
  text-decoration:none;flex:none;color:var(--amber);
}
.hdr__brand svg{width:27px;height:27px;display:block;flex:none}
.hdr__brand b{
  font:600 21px/1 var(--serif);color:var(--ink);letter-spacing:-.008em;
}
.hdr__nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.hdr__actions{display:flex;align-items:center;gap:10px;flex:none}

.navitem{position:relative}
.navitem>a,.navitem>button{
  display:inline-flex;align-items:center;gap:5px;
  padding:8px 12px;border:0;background:none;cursor:pointer;
  font:500 14.5px/1 var(--sans);color:var(--body);
  text-decoration:none;border-radius:5px;
}
.navitem>a:hover,.navitem>button:hover{color:var(--ink);background:var(--paper-2)}
.navitem>button[aria-expanded="true"]{color:var(--ink);background:var(--paper-2)}
.navitem__caret{width:9px;height:9px;flex:none;transition:transform .18s var(--ease)}
.navitem>button[aria-expanded="true"] .navitem__caret{transform:rotate(180deg)}

.navpanel{
  position:absolute;top:calc(100% + 9px);left:0;
  min-width:262px;padding:8px;
  background:var(--surface);border:1px solid var(--rule);
  border-radius:9px;box-shadow:0 14px 38px -12px rgba(15,42,74,.20), 0 2px 6px rgba(15,42,74,.06);
}
.navpanel[hidden]{display:none}
.navpanel a{
  display:block;padding:9px 12px;border-radius:6px;
  text-decoration:none;color:var(--body);font-size:14.5px;line-height:1.35;
}
.navpanel a:hover{background:var(--paper-2);color:var(--ink)}
.navpanel a span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.navpanel a:hover span{color:var(--muted)}
.navpanel__head{
  font:400 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  color:var(--faint);padding:10px 12px 6px;
}
.navpanel hr{border:0;border-top:1px solid var(--rule);margin:6px 4px}

.navtoggle{
  display:none;margin-left:auto;
  width:40px;height:40px;align-items:center;justify-content:center;
  border:1px solid var(--rule);border-radius:7px;background:var(--surface);
  cursor:pointer;color:var(--ink);
}
.navtoggle svg{width:18px;height:18px}

.drawer{display:none}

@media (max-width:1040px){
  .hdr__nav,.hdr__actions{display:none}
  .navtoggle{display:flex}
  .drawer[data-open="true"]{
    display:block;
    border-top:1px solid var(--rule);
    background:var(--paper);
    max-height:calc(100dvh - 62px);overflow-y:auto;
    padding:14px 0 26px;
  }
  .drawer details{border-bottom:1px solid var(--rule)}
  .drawer summary{
    list-style:none;cursor:pointer;
    padding:14px 2px;font:500 16px/1 var(--sans);color:var(--ink);
    display:flex;align-items:center;justify-content:space-between;
  }
  .drawer summary::-webkit-details-marker{display:none}
  .drawer summary::after{content:"+";font:400 19px/1 var(--mono);color:var(--muted)}
  .drawer details[open] summary::after{content:"\2013"}
  .drawer details>div{padding:0 0 12px}
  .drawer details a{display:block;padding:9px 0 9px 14px;color:var(--body);
    text-decoration:none;font-size:15px;border-left:2px solid var(--rule)}
  .drawer details a:hover{color:var(--ink);border-left-color:var(--amber)}
  .drawer .drawer__cta{display:flex;flex-direction:column;gap:10px;padding-top:18px}
}

/* --------------------------------------------------------- breadcrumbs */
.crumbs{padding:16px 0 0}
.crumbs ol{
  display:flex;flex-wrap:wrap;align-items:center;gap:7px;
  list-style:none;margin:0;padding:0;
  font:400 13px/1.5 var(--sans);color:var(--muted);
}
.crumbs li{display:flex;align-items:center;gap:7px}
.crumbs li+li::before{content:"/";color:var(--faint)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--amber-deep);text-decoration:underline;text-underline-offset:2px}
.crumbs [aria-current="page"]{color:var(--ink)}

/* --------------------------------------------------------- AEO answer block */
.answer{
  border-left:3px solid var(--amber);
  background:var(--amber-wash);
  padding:20px 24px;border-radius:0 7px 7px 0;
  max-width:var(--measure);
}
.answer p{font-size:17.5px;line-height:1.6;color:var(--ink);margin:0}
.answer p+p{margin-top:11px}
.answer__q{
  font:400 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  color:var(--amber-deep);display:block;margin-bottom:9px;
}

/* --------------------------------------------------------- cards */
.cards{display:grid;gap:16px}
.cards--2{grid-template-columns:repeat(2,1fr)}
.cards--3{grid-template-columns:repeat(3,1fr)}
.cards--4{grid-template-columns:repeat(4,1fr)}
.tile{
  background:var(--surface);border:1px solid var(--rule);border-radius:9px;
  padding:22px 24px;display:flex;flex-direction:column;gap:9px;
  transition:border-color .18s var(--ease), transform .18s var(--ease);
}
a.tile{text-decoration:none;color:inherit}
a.tile:hover{border-color:var(--rule-2);transform:translateY(-1px)}
.tile h3{margin:0;font:600 17.5px/1.3 var(--serif);color:var(--ink)}
.tile p{margin:0;font-size:14.5px;line-height:1.6;color:var(--body)}
.tile__meta{font:400 11.5px/1 var(--mono);letter-spacing:.08em;
  text-transform:uppercase;color:var(--faint)}
.tile__go{margin-top:auto;font-size:13.5px;color:var(--amber-deep);font-weight:500}

/* --------------------------------------------------------- waveform motif */
.wave{
  display:flex;align-items:center;gap:2px;height:44px;
  --wc:var(--rule-2);
}
.wave i{
  display:block;width:3px;border-radius:2px;background:var(--wc);
  height:var(--h,30%);
}
.wave--amber{--wc:var(--amber)}
.wave--split i:nth-child(n+13){background:var(--amber)}

/* --------------------------------------------------------- uploader */
.drop{
  border:1.5px dashed var(--rule-2);border-radius:11px;
  background:var(--surface);
  padding:44px 28px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:14px;
  transition:border-color .18s var(--ease), background .18s var(--ease);
}
.drop[data-drag="true"]{border-color:var(--amber);background:var(--amber-wash)}
.drop h3{margin:0;font:600 20px/1.3 var(--serif);color:var(--ink)}
.drop__hint{font-size:13.5px;color:var(--muted);max-width:44ch}
.drop__formats{font:400 12px/1.5 var(--mono);color:var(--faint);letter-spacing:.04em}

/* --------------------------------------------------------- steps / pipeline */
.pipeline{display:flex;flex-direction:column;gap:2px}
.pipe{
  display:grid;grid-template-columns:26px 1fr auto;gap:14px;align-items:center;
  padding:13px 16px;border:1px solid var(--rule);background:var(--surface);
}
.pipe:first-child{border-radius:8px 8px 0 0}
.pipe:last-child{border-radius:0 0 8px 8px}
.pipe+.pipe{border-top:0}
.pipe__n{font:400 12px/1 var(--mono);color:var(--faint)}
.pipe__t{font-size:14.5px;color:var(--ink)}
.pipe__s{font:400 11.5px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}

/* --------------------------------------------------------- internal links */
.linkset{
  border-top:1px solid var(--rule);padding-top:26px;
  display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
}
.linkset h4{
  margin:0 0 10px;font:400 11px/1 var(--mono);letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint);
}
.linkset ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.linkset a{font-size:14.5px;color:var(--body);text-decoration:none}
.linkset a:hover{color:var(--amber-deep);text-decoration:underline;text-underline-offset:3px}

/* --------------------------------------------------------- author byline */
.byline{
  display:flex;align-items:center;gap:13px;flex-wrap:wrap;
  padding:15px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  font-size:13.5px;color:var(--muted);
}
.byline strong{color:var(--ink);font-weight:500}
.byline time{font-family:var(--mono);font-size:12.5px}

/* --------------------------------------------------------- CTA band */
.ctaband{
  background:var(--paper-2);border:1px solid var(--rule);border-radius:11px;
  padding:clamp(28px,4vw,44px);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px;
}
.ctaband h2{margin:0;font:600 clamp(21px,2.6vw,27px)/1.25 var(--serif);color:var(--ink);max-width:22ch}
.ctaband p{margin:7px 0 0;font-size:15px;color:var(--body);max-width:46ch}

/* --------------------------------------------------------- report */
.report{
  background:var(--surface);border:1px solid var(--rule);border-radius:10px;overflow:hidden;
}
.report__head{
  padding:22px 26px;border-bottom:1px solid var(--rule);background:var(--paper-2);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;align-items:flex-start;
}
.report__id{font:500 13px/1 var(--mono);color:var(--ink);letter-spacing:.05em}
.report__body{padding:26px}
.report dl{display:grid;grid-template-columns:auto 1fr;gap:11px 22px;margin:0;font-size:14.5px}
.report dt{color:var(--muted);font:400 11.5px/1.6 var(--mono);letter-spacing:.07em;text-transform:uppercase}
.report dd{margin:0;color:var(--ink)}

/* --------------------------------------------------------- misc */
.eyebrow{font:400 11.5px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--amber-deep)}
.divider{border:0;border-top:1px solid var(--rule);margin:0}
.prose{max-width:var(--measure)}
.prose p+p{margin-top:1.05em}
.tag{
  display:inline-block;font:400 11px/1 var(--mono);letter-spacing:.07em;
  text-transform:uppercase;padding:4px 9px;border-radius:3px;
  background:var(--paper-2);color:var(--muted);border:1px solid var(--rule);
}
.verify{
  background:var(--unclear-bg);border:1px dashed var(--rule-2);
  color:var(--unclear-fg);font:400 12px/1.5 var(--mono);
  padding:3px 8px;border-radius:3px;display:inline-block;
}

@media (max-width:900px){
  .cards--3,.cards--4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:620px){
  .cards--2,.cards--3,.cards--4{grid-template-columns:1fr}
  .report dl{grid-template-columns:1fr;gap:4px 0}
  .report dd+dt{margin-top:12px}
  .ctaband{flex-direction:column;align-items:flex-start}
}

/* linkset headings are h3 for document structure, styled as small labels */
.linkset h3.linkset__h{
  margin:0 0 10px;font:400 11px/1 var(--mono);letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint);
}

/* ---------------------------------------------- WCAG 2.2 AA contrast fixes
   White on --amber measures 3.91:1, below the 4.5:1 floor for normal text.
   The primary button therefore sits on --amber-deep (5.32:1) in light mode,
   and reverses to dark ink on --amber (7.47:1) in dark mode. */
.btn--primary{ background:var(--amber-deep); border-color:var(--amber-deep); color:#fff }
.btn--primary:hover{ background:#8f4c09; border-color:#8f4c09 }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .btn--primary{
    background:var(--amber); border-color:var(--amber); color:#0c141f }
  :root:not([data-theme="light"]) .btn--primary:hover{
    background:var(--amber-deep); border-color:var(--amber-deep); color:#0c141f }
}
:root[data-theme="dark"] .btn--primary{
  background:var(--amber); border-color:var(--amber); color:#0c141f }
:root[data-theme="dark"] .btn--primary:hover{
  background:var(--amber-deep); border-color:var(--amber-deep); color:#0c141f }

/* small mono labels are still normal-size text for WCAG purposes */
.tile__meta,.stat__src,.report dt,.crumbs,.byline,.small{ color:var(--muted) }

/* auto-fit grids must not force a track wider than the viewport on small screens */
.linkset{ grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)) }
.cards{ min-width:0 }
.cards > *{ min-width:0 }
.linkset > *{ min-width:0 }

/* ------------------------------------------------- upload acceptance gate */
.gate{
  background:var(--surface);border:1px solid var(--rule-2);border-radius:9px;
  padding:20px 22px;margin-bottom:20px;display:flex;flex-direction:column;gap:13px;
}
.gate__h{margin:0;font:600 16px/1.3 var(--serif);color:var(--ink)}
.gate__row{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start;
  font-size:14.5px;line-height:1.55;cursor:pointer}
.gate__row input{width:17px;height:17px;margin-top:2px;accent-color:var(--amber-deep);cursor:pointer}
.gate__note{margin:0;font-size:13px;color:var(--muted);padding-top:3px;border-top:1px solid var(--rule)}
.drop[data-locked="true"]{opacity:.5;pointer-events:none;filter:grayscale(.35)}
.gate__state{font:400 12.5px/1 var(--mono);color:var(--muted)}
