/* Quake Champions Guide — site stylesheet.
   Structure: layout, responsive behaviour, components. The token block below
   is this site's approved visual system (02-design/20260924-quake-champions/
   tokens_Quake-Champions.css, contrast-verified: PASS 73 default / PASS 37
   pairs). Everything after the token block is per-site component CSS for the
   approved composition in 视觉系统_Quake-Champions.md §3–§4.
   Class hooks consumed by check-geo.mjs / capture.cjs must survive: h1,
   .btn / .btn.primary, details, .table-wrap, footer <strong>brand</strong>,
   .byline, <time>. */

:root{
  /* --- surfaces ---------------- */
  --surface-sunken:#07080B;
  --surface-page:#0B0D11;
  --bg-subtle:#10131A;
  --surface-raised:#14171E;
  --surface-panel:#1C2029;
  --bg-hover:#232833;

  /* --- ink --------------------- */
  --ink-primary:#F4F5F7;
  --ink-secondary:#C7CCD4;
  --ink-muted:#A3AAB5;
  --ink-faint:#9096A1;

  /* --- brand ------------------- */
  --brand:#E01B2E;
  --brand-strong:#C4162A;
  --brand-text:#FF6B5A;
  --on-brand:#FFFFFF;

  /* --- accent / state ---------- */
  --accent:#4FD1E6;
  --accent-soft:#17323A;
  --state-verified:#57D08B;
  --state-pending:#E7B33C;
  --state-absent:#FF8E7F;

  /* --- borders ---------------- */
  --border-subtle:#262B36;
  --border-strong:#6B7480;

  /* --- typography ------------- */
  /* Oswald / Inter / JetBrains Mono are not requested from Google Fonts: the
     CMP contract is "no third-party resource before a consent choice", so the
     declared families stay first in the stack and the documented system
     fallbacks carry the render. */
  --font-display:"Oswald","Arial Narrow","Haettenschweiler",system-ui,sans-serif;
  --font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-mono:"JetBrains Mono","SFMono-Regular","Consolas","Liberation Mono",monospace;
  --fs-display:clamp(2.6rem,7.2vw,5.2rem);
  --fs-h1:clamp(1.9rem,4.2vw,2.9rem);
  --fs-h2:1.375rem;
  --fs-h3:1.0625rem;
  --fs-body:1rem;
  --fs-small:0.875rem;
  --fs-data:0.9375rem;
  --tracking-display:0.02em;
  --tracking-label:0.14em;

  /* --- layout ----------------- */
  --w-page:76rem;
  --w-read:46rem;
  --sp-1:0.25rem;--sp-2:0.5rem;--sp-3:0.75rem;--sp-4:1rem;
  --sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4.5rem;
  --radius-card:2px;
  --radius-chip:2px;
  --row-h:44px;

  /* --- engine contract names --- */
  --bg:var(--surface-page);
  --surface:var(--surface-raised);
  --ink:var(--ink-primary);
  --brand-ink:var(--on-brand);
  --border:var(--border-subtle);
  --radius:var(--radius-card);
  --container:var(--w-page);
  --space-section:var(--sp-8);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--surface-page)}
body{margin:0;background:var(--surface-page);color:var(--ink-primary);font:var(--fs-body)/1.65 var(--font-body)}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible,summary:focus-visible,.table-wrap:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
img{max-width:100%}
code{font:0.9em var(--font-mono);background:var(--surface-sunken);padding:2px 5px;border-radius:var(--radius-chip);color:var(--ink-secondary);overflow-wrap:anywhere}
strong{color:var(--ink-primary)}
em{color:var(--brand-text);font-style:normal;font-weight:600}
.shell{max-width:var(--container);margin:0 auto;padding:0 var(--sp-5)}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--brand);color:var(--on-brand);padding:10px 16px;z-index:99}
.skip-link:focus{left:12px;top:12px}

/* ---- header ---- */
.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--surface-page) 94%,transparent);border-bottom:1px solid var(--border-subtle);backdrop-filter:blur(8px)}
.topbar__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4);min-height:56px}
.brandmark{display:inline-flex;align-items:center;gap:10px;font:600 0.9375rem/1 var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-label)}
.brandmark__mark{width:14px;height:14px;background:var(--brand);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.topnav{display:flex;flex-wrap:wrap;gap:var(--sp-5);font-size:0.8125rem;font-weight:600}
.topnav a{min-height:var(--row-h);display:inline-flex;align-items:center;color:var(--ink-secondary)}
.topnav a[aria-current="page"]{color:var(--ink-primary);box-shadow:inset 0 -2px 0 var(--brand)}
header [data-language-switcher]{flex-basis:100%;justify-content:flex-end;gap:12px;flex-wrap:wrap}
header [data-language-switcher] [aria-current="page"]{text-decoration:underline}

/* ---- hero ---- */
.hero{border-bottom:1px solid var(--border-subtle);background:
  radial-gradient(120% 90% at 12% 0%,color-mix(in srgb,var(--brand) 12%,transparent),transparent 60%),
  linear-gradient(180deg,var(--surface-sunken),var(--surface-page))}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--sp-7);align-items:center;padding:var(--sp-8) 0}
.eyebrow{margin:0 0 var(--sp-3);font:700 0.6875rem/1.4 var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brand-text)}
.hero__title{margin:0;font:600 var(--fs-display)/0.94 var(--font-display);letter-spacing:var(--tracking-display);text-transform:uppercase}
.hero__title-line{display:block}
.vstamp{margin:var(--sp-4) 0 0;font:0.75rem/1.4 var(--font-mono);letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint)}
.hero__lede{margin:var(--sp-4) 0 0;max-width:44rem;color:var(--ink-secondary);font-size:1.0625rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin:var(--sp-5) 0 0}
.hero .byline{margin:var(--sp-5) 0 0}
.btn{display:inline-flex;min-height:44px;align-items:center;padding:12px 18px;border:1px solid var(--border-strong);border-radius:var(--radius-card);font:700 0.8125rem/1.2 var(--font-body);text-transform:uppercase;letter-spacing:0.06em;color:var(--ink-primary);background:transparent}
.btn:hover{text-decoration:none;border-color:var(--accent);color:var(--accent)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.btn.primary:hover{background:var(--brand-strong);border-color:var(--brand-strong);color:var(--on-brand)}
.btn.secondary{background:var(--surface-raised)}
.btn.ghost{color:var(--ink-secondary)}
.hero__media{display:flex;justify-content:flex-end}
.mediabox{position:relative;width:100%;max-width:26rem;aspect-ratio:4/3;display:flex;flex-direction:column;justify-content:space-between;padding:var(--sp-5);border:1px solid var(--border-subtle);border-radius:var(--radius-card);overflow:hidden;background:
  linear-gradient(color-mix(in srgb,var(--border-strong) 14%,transparent) 1px,transparent 1px) 0 0/28px 28px,
  linear-gradient(90deg,color-mix(in srgb,var(--border-strong) 14%,transparent) 1px,transparent 1px) 0 0/28px 28px,
  radial-gradient(90% 80% at 50% 110%,color-mix(in srgb,var(--brand) 30%,transparent),transparent 70%),
  var(--surface-sunken)}
.mediabox__word{font:600 clamp(1.75rem,4.4vw,2.6rem)/0.95 var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-display);color:var(--ink-primary)}
/* The meta line and the panel caption stack in the lower left/right corners
   without overlapping (they collided when the caption was absolutely
   positioned next to a long meta line). */
.mediabox__meta{margin-top:auto;font:0.6875rem/1.4 var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brand-text)}
.mediabox__note{align-self:flex-end;font:0.625rem/1.3 var(--font-mono);color:var(--ink-faint)}

/* ---- facts strip ---- */
.facts{background:var(--surface-sunken);border-bottom:1px solid var(--border-subtle);padding:var(--sp-4) 0}
.facts__label{margin:0 0 var(--sp-3);font:0.6875rem/1.4 var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-faint)}
.facts__row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--sp-4);margin:0;padding:0;list-style:none}
.facts__row li{display:flex;flex-direction:column;gap:2px;border-left:2px solid var(--border-subtle);padding-left:var(--sp-3)}
.facts__k{font:0.6875rem/1.4 var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-faint)}
.facts__v{font:500 var(--fs-data)/1.35 var(--font-mono);color:var(--ink-primary)}
.facts__asof{font:0.625rem/1.4 var(--font-mono);color:var(--ink-faint)}

/* ---- status rail (component 3) ---- */
.status{padding:var(--sp-7) 0 0}
.status-rail{border-left:3px solid var(--brand);background:var(--surface-raised);padding:var(--sp-5) var(--sp-6);border-radius:var(--radius-card)}
.status-rail__top{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin:0}
.status-rail__tag{font:700 0.6875rem/1.4 var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--state-absent)}
.status-rail__ver{font:600 1.5rem/1.1 var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-display)}
.status-rail blockquote{margin:var(--sp-4) 0;padding-left:var(--sp-4);border-left:1px solid var(--border-strong);color:var(--ink-secondary)}
.status-rail blockquote p{margin:0}
.trigger{margin:var(--sp-4) 0 0;font-size:var(--fs-small);color:var(--ink-secondary)}
.trigger__label{display:inline-block;margin-right:var(--sp-3);font:700 0.625rem/1.4 var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent)}
.status-rail__src{margin:var(--sp-3) 0 0;font:0.75rem/1.5 var(--font-mono);color:var(--ink-faint)}
.status-rail__src a{color:var(--accent)}

/* ---- fact stamps (component 1) ---- */
.fact-stamp{display:inline-flex;align-items:center;gap:6px;border:1px solid currentColor;border-radius:var(--radius-chip);padding:3px 7px;font:0.6875rem/1.4 var(--font-mono);letter-spacing:0.04em;white-space:nowrap;text-transform:uppercase}
.fact-stamp span{font-size:0.625rem;opacity:0.85}
.fact-stamp--a{color:var(--state-verified)}
.fact-stamp--b{color:var(--accent)}
.fact-stamp--c{color:var(--state-pending)}
.fact-stamp--none{color:var(--state-absent)}
.verdict__stamps{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-4)}
.stamp-note{margin:var(--sp-2) 0 0;font-size:var(--fs-small);color:var(--ink-muted)}
.src{font:0.6875rem/1.4 var(--font-mono);letter-spacing:0.03em;white-space:nowrap}
.src--a{color:var(--state-verified)}
.src--b{color:var(--accent)}
.src--c{color:var(--state-pending)}
.src--none{color:var(--state-absent)}

/* ---- sections ---- */
.section{padding:var(--space-section) 0;border-top:1px solid var(--border-subtle)}
.section--sunken{background:var(--bg-subtle)}
.section__head{margin-bottom:var(--sp-6)}
h2{font:600 var(--fs-h2)/1.2 var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-display);margin:0}
h3{font:600 var(--fs-h3)/1.3 var(--font-display);margin:0 0 var(--sp-2)}
.section__head p{margin:0}

/* ---- about (#about) ---- */
.about__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-7);align-items:start}
/* Grid items default to min-width:auto, so a 34rem data table inside the
   #about column would otherwise stretch its track (and the page) past the
   viewport; min-width:0 keeps the table inside its own scroll container. */
.about__prose,.about__table{min-width:0}
.about__prose p{margin:0 0 var(--sp-4);max-width:var(--w-read);color:var(--ink-secondary)}
.about__prose .coverage{border-top:1px solid var(--border-subtle);padding-top:var(--sp-4);font-size:var(--fs-small);color:var(--ink-muted)}
.about__prose .btn{margin-top:var(--sp-3)}

/* ---- lookup panel (component 2) ---- */
.lookup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border-subtle);border:1px solid var(--border-subtle)}
.lookup-card{display:flex;flex-direction:column;gap:var(--sp-2);min-height:8rem;padding:var(--sp-5);background:var(--surface-raised);border-radius:var(--radius-card)}
.lookup-card:hover{background:var(--bg-hover);text-decoration:none}
.lookup-card__n{font:600 1.5rem/1 var(--font-mono);color:var(--brand-text)}
.lookup-card__n small{font-size:0.625rem;letter-spacing:var(--tracking-label);color:var(--ink-faint)}
.lookup-card__t{font:600 var(--fs-h3)/1.3 var(--font-display);text-transform:uppercase;margin:0}
.lookup-card__d{margin:0;font-size:var(--fs-small);color:var(--ink-muted)}
.lookup-card__asof{margin-top:auto;font:0.625rem/1.4 var(--font-mono);color:var(--ink-faint)}
.livetools{margin-top:var(--sp-7)}
.livetools__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--sp-4);margin:0;padding:0;list-style:none}
.livetools__list a{display:grid;gap:var(--sp-2);padding:var(--sp-4);border:1px solid var(--border-subtle);background:var(--surface-raised)}
.livetools__list a:hover{background:var(--bg-hover);text-decoration:none}
.livetools__badge{justify-self:start;border:1px solid var(--state-verified);border-radius:var(--radius-chip);padding:2px 6px;font:0.625rem/1.4 var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--state-verified)}
.livetools__t{font:600 var(--fs-h3)/1.3 var(--font-display);text-transform:uppercase}
.livetools__d{font-size:var(--fs-small);color:var(--ink-muted)}

/* ---- FAQ ---- */
details{border-bottom:1px solid var(--border-subtle);padding:var(--sp-4) 0}
summary{font:600 1.0625rem/1.4 var(--font-display);cursor:pointer;min-height:var(--row-h);list-style:none;display:flex;gap:var(--sp-4);align-items:center;justify-content:space-between;text-transform:none}
summary::-webkit-details-marker{display:none}
summary:after{content:'+';font:400 1.5rem/1 var(--font-mono);color:var(--brand-text)}
details[open] summary:after{content:'−'}
details p{margin:var(--sp-3) 0 0;max-width:var(--w-read);color:var(--ink-secondary)}

/* ---- footer ---- */
footer.foot{margin-top:var(--sp-8);background:var(--surface-sunken);border-top:1px solid var(--border-subtle);padding:var(--sp-7) 0}
.foot__grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:var(--sp-7)}
.foot__grid strong{display:block;font:600 1.125rem/1.2 var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-display)}
.foot__grid h2{font-size:0.6875rem;letter-spacing:var(--tracking-label);color:var(--ink-faint);margin-bottom:var(--sp-3)}
.foot__grid p{margin:0 0 var(--sp-3);font-size:var(--fs-small);color:var(--ink-muted);max-width:34rem}
.foot__date{font:0.6875rem/1.5 var(--font-mono);color:var(--ink-faint)}
.foot__grid ul{margin:0 0 var(--sp-5);padding:0;list-style:none;display:grid;gap:var(--sp-2)}
.foot__grid a{color:var(--ink-secondary);font-size:var(--fs-small)}
.foot__grid a:hover{color:var(--accent)}

/* ---- article pages ---- */
.pagehead{border-bottom:1px solid var(--border-subtle);background:linear-gradient(180deg,var(--surface-sunken),var(--surface-page));padding:var(--sp-7) 0 var(--sp-6)}
.crumbs{margin:0 0 var(--sp-3);font:0.6875rem/1.5 var(--font-mono);letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint)}
.pagehead h1{margin:0;max-width:52rem;font:600 var(--fs-h1)/1.06 var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-display)}
.pagehead .vstamp{margin-top:var(--sp-3)}
.verdict{margin-top:var(--sp-5);border-top:3px solid var(--brand);background:var(--surface-raised);padding:var(--sp-5);border-radius:var(--radius-card);max-width:var(--w-read)}
.verdict .lead{margin:0;font-size:1.125rem;line-height:1.6;color:var(--ink-secondary)}
.article{padding:var(--sp-6) 0 var(--sp-8)}
.article .byline{margin:0 0 var(--sp-5);font:0.75rem/1.5 var(--font-mono);color:var(--ink-faint)}
.article .lead{margin:0 0 var(--sp-5);font-size:1.125rem;line-height:1.6;max-width:var(--w-read);color:var(--ink-secondary)}
.article.trust{max-width:none}
.article.trust .shell{max-width:52rem}
.jump{margin:0 0 var(--sp-6);padding:var(--sp-4);border:1px solid var(--border-subtle);background:var(--surface-raised);border-radius:var(--radius-card)}
.jump__label{display:block;margin-bottom:var(--sp-3);font:700 0.625rem/1.4 var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-faint)}
.jump ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--sp-2)}
.jump a{display:inline-flex;min-height:40px;align-items:center;font-size:var(--fs-small);color:var(--accent)}
.article h2{margin:var(--sp-7) 0 var(--sp-4);padding-top:var(--sp-5);border-top:1px solid var(--border-subtle);font:600 1.375rem/1.2 var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-display)}
.article h3{margin:var(--sp-6) 0 var(--sp-3);font:600 1.0625rem/1.3 var(--font-display)}
.article p{max-width:var(--w-read);color:var(--ink-secondary)}
.article ol,.article ul{max-width:var(--w-read);color:var(--ink-secondary)}
.article li{margin:var(--sp-2) 0}
.article .shell>p:first-of-type{margin-top:0}

/* ---- tables ---- */
.table-wrap{overflow-x:auto;border:1px solid var(--border-subtle);background:var(--surface-raised)}
table{border-collapse:collapse;width:100%;min-width:34rem;text-align:left;font-size:var(--fs-data)}
th,td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);vertical-align:top;min-height:var(--row-h)}
td{color:var(--ink-secondary);font-variant-numeric:tabular-nums}
tbody tr:nth-child(even) td{background:var(--surface-sunken)}
thead th{position:sticky;top:0;z-index:1;background:var(--surface-panel);font:700 0.6875rem/1.4 var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-muted)}
tbody th{font-weight:600;color:var(--ink-primary)}
td.num,th.num{text-align:right;font-family:var(--font-mono)}
.scroll-hint{display:none}
.stamp-note strong{color:var(--ink-muted);font:700 0.6875rem/1.4 var(--font-mono);letter-spacing:0.06em;text-transform:uppercase;margin-right:var(--sp-2)}

/* ---- related / sources ---- */
.related{border-top:1px solid var(--border-subtle);margin-top:var(--sp-7);padding-top:var(--sp-5)}
.related h2{margin:0 0 var(--sp-4);border:0;padding:0;font-size:1.0625rem}
.related ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--sp-4)}
.related a{display:block;border-top:2px solid var(--brand);padding-top:var(--sp-3);min-height:var(--row-h);font-weight:600;color:var(--ink-primary)}
.related a:hover{color:var(--brand-text)}
.sources{margin-top:var(--sp-6);font-size:var(--fs-small)}
.sources h2{border:0;padding:0;margin:0 0 var(--sp-3);font:700 0.6875rem/1.4 var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-faint)}
.sources ul{margin:0;padding-left:18px;max-width:none}
.sources li{margin:var(--sp-1) 0;color:var(--ink-muted)}
.sources a{color:var(--ink-secondary)}
blockquote.callout{margin:var(--sp-6) 0;padding:var(--sp-4) var(--sp-5);border-left:3px solid var(--brand);background:var(--surface-raised);border-radius:var(--radius-card);max-width:var(--w-read)}
blockquote.callout p{margin:0}

/* ---- consent choices entry point + section ---- */
.consent-settings-button{margin-top:var(--sp-4);padding:12px 18px;min-height:var(--row-h);border:1px solid var(--border-strong);border-radius:var(--radius-card);background:transparent;color:var(--ink-primary);font:700 0.75rem/1.2 var(--font-body);text-transform:uppercase;letter-spacing:0.06em;cursor:pointer}
.consent-settings-button:hover{border-color:var(--accent);color:var(--accent)}
.consent-choices{border:1px solid var(--border-subtle);border-radius:var(--radius-card);background:var(--surface-raised);margin-top:var(--sp-6);padding:var(--sp-5)}
.consent-choices h2{border:0;padding:0;margin:0 0 var(--sp-3);font-size:1.125rem}
.consent-choices p{margin:0;font-size:var(--fs-small);color:var(--ink-muted);max-width:var(--w-read)}

/* ---- mandatory-choice page lock (site-ads.md §6) ---- */
html.consent-choice-required,
body.consent-choice-required{overflow:hidden !important;overscroll-behavior:none}
body.consent-choice-required{position:fixed;inset:0;width:100%}

/* ---- self-hosted consent dialog ---- */
html body #tarteaucitronRoot #tarteaucitronAlertBig{border:1px solid var(--border-strong);border-radius:var(--radius-card);background:var(--surface-raised);color:var(--ink-primary);box-shadow:0 24px 90px rgba(0,0,0,.6);font-family:var(--font-body)}
html body #tarteaucitronRoot.tarteaucitronSize-middle.tarteaucitronBeforeVisible::before{background:rgba(4,5,7,.86) !important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:auto}
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig{box-sizing:border-box !important;width:min(700px,calc(100% - 48px)) !important;min-width:0 !important;max-width:700px !important;max-height:calc(100dvh - 48px);padding:clamp(30px,4.6vw,48px) !important;overflow-y:auto;border-radius:var(--radius-card)}
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig::before{display:block;margin-bottom:18px;color:var(--ink-primary);font-family:var(--font-display);font-size:clamp(29px,4.4vw,42px);font-weight:600;line-height:1.05;letter-spacing:var(--tracking-display);text-align:center;text-transform:uppercase}
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronDisclaimerAlert{display:block;max-width:58ch;margin:0 auto 26px;padding:0;color:var(--ink-secondary);font-size:18px;line-height:1.6;text-align:center}
html body #tarteaucitronRoot #tarteaucitronAlertBig button.tarteaucitronCTAButton{min-height:48px;padding:13px 18px !important;border-radius:var(--radius-card);border:1px solid var(--brand);background:var(--brand);color:var(--on-brand);font:700 0.875rem/1.3 var(--font-body);text-transform:uppercase;letter-spacing:0.06em;cursor:pointer}
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2{border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--ink-primary)}
html body #tarteaucitronRoot #tarteaucitronCloseAlert,
html body #tarteaucitronRoot #tarteaucitronPersonalize,
html body #tarteaucitronRoot #tarteaucitronPrivacyUrl,
html body #tarteaucitronRoot #tarteaucitronPrivacyUrlDialog{display:none !important}
html body #tarteaucitronRoot [data-consent-privacy-link]{display:block;width:fit-content;margin:16px auto 0;color:var(--ink-muted);font-size:0.8125rem;line-height:1.4;text-align:center;text-decoration:underline;text-underline-offset:3px}
html body #tarteaucitronRoot [data-consent-privacy-link]:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

/* ---- inert advertising placeholder (site-ads.md §4; ads are off in this batch) ---- */
.ad-slot{--ad-slot-height:120px;display:grid;place-items:center;gap:6px;min-height:var(--ad-slot-height);margin:32px 0;padding:14px;overflow:hidden;border:1px dashed var(--border-subtle);border-radius:var(--radius-card);background:var(--surface-sunken);color:var(--ink-muted);text-align:center}
.ad-slot--banner{--ad-slot-height:96px;width:100%}
.ad-slot--rectangle{--ad-slot-height:280px;width:min(100%,360px);margin-right:auto;margin-left:auto}
.ad-slot-label{font:700 11px/1.4 var(--font-mono);letter-spacing:2px;text-transform:uppercase}
.ad-consent-note{margin:0;max-width:38ch;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.ad-slot-body{width:100%;overflow-wrap:anywhere}
.ad-slot-body iframe,.ad-slot-body img,.ad-slot-body ins{max-width:100%}
.ad-slot[data-ad-state="loaded"] > .ad-consent-note{display:none}
.ad-slot[data-ad-state="error"]{border-style:solid;border-color:var(--border-subtle)}

/* ---- responsive ---- */
@media(max-width:1100px){
  .facts__row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .footer-grid,.foot__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .about__grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:900px){
  .hero__grid{grid-template-columns:1fr;gap:var(--sp-6)}
  .hero__media{justify-content:flex-start}
  .lookup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  :root{--space-section:3.25rem}
  .facts__row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lookup-grid{grid-template-columns:1fr}
  .foot__grid{grid-template-columns:1fr}
  /* Sticky headers and a horizontally scrolling container destroy each other
     (measured in the approved preview), so the header is static here. */
  thead th{position:static}
  .scroll-hint{display:block;margin:var(--sp-2) 0 0;font:0.75rem/1.5 var(--font-mono);color:var(--ink-faint)}
  .hero__grid{padding:var(--sp-7) 0}
  .hero__actions .btn{width:100%;justify-content:center}
  .jump ul{grid-template-columns:1fr}
  html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig{width:calc(100% - 20px) !important;max-height:calc(100dvh - 20px);padding:26px 14px 20px !important}
  html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig::before{margin-bottom:14px;font-size:clamp(25px,8vw,34px)}
  html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronDisclaimerAlert{margin-bottom:20px;font-size:16px;line-height:1.5}
  html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig button{width:100% !important;margin:0 0 10px !important}
  .ad-slot{margin:26px 0;padding:12px}
  .ad-slot--rectangle{--ad-slot-height:250px}
}
@media(max-width:700px){
  .topbar__inner{gap:var(--sp-2)}
  .topnav{gap:var(--sp-4);font-size:0.75rem}
  .pagehead{padding:var(--sp-6) 0 var(--sp-5)}
  .verdict{padding:var(--sp-4)}
}
