/* ============================================================================
   label.css — the "Label" brand layer (owner pick, 2026-10-07).

   WHY A LAYER, NOT A REWRITE. assets/quantsuite.css carries the shared
   components and the old near-black + emerald look. Every rule here is scoped
   under body.label and this file is linked AFTER quantsuite.css, so a page
   without class="label" on <body> is byte-for-byte unaffected. index.html was
   the first page on it; since the 2026-10-07 site-pipeline migration EVERY
   website/*.html carries it -- scripts/site/build.py renders each page from
   site_src/ through one head partial that links this file and one layout that
   sets the body class. The "Generic page body" section below re-skins the
   shared components the other pages are built from.

   THE IDEA. Every backtest should come with a label, the way food does: how
   many versions were tried, what the raw Sharpe was, and what is left once
   luck is taken out. The signature object is the Backtest Facts card; the
   palette is paper, ink and ONE signal yellow, plus a green and a red that
   only ever mean "survives" and "does not survive".

   Tokens: --lb-* are this layer's own and come from ONE source,
   design/tokens.json, rendered into the GENERATED:tokens block below (light
   values, then the dark overrides). The shared tokens (--bg, --text, ...)
   are re-pointed at them so shared components (FAQ, footer, pricing grid,
   tables) pick the palette up without being rewritten.
   ============================================================================ */

/* Archivo, variable (wdth 62-125, wght 100-900), Latin subset, BUNDLED: the
   site CSP admits fonts from 'self' only. SIL Open Font License 1.1 -- the
   licence text ships beside the file (assets/fonts/Archivo-OFL.txt). */
@font-face{
  font-family:"Archivo";
  font-style:normal;
  font-weight:100 900;
  font-stretch:62% 125%;
  font-display:swap;
  src:url("fonts/Archivo-Variable-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* GENERATED:tokens -- rendered by scripts/site/build.py from design/tokens.json.
   Edit the JSON and rebuild; a hand edit here fails build.py --check. */
body.label{
  --lb-paper:#FAF9F5;
  --lb-paper-2:#F1EFE8;
  --lb-surface:#FFFFFF;
  --lb-ink:#0D0D0B;
  --lb-ink-2:#3A3A36;
  --lb-ink-3:#5C5C56;
  --lb-hair:#E2DFD6;
  --lb-hi:#FFD60A;
  --lb-go:#0A7A45;
  --lb-stop:#C3281A;
  --lb-caveat:#8A5A00;
  --lb-info:#1F4E79;
  --lb-ai:#5B3FA8;
  --lb-btn:#0D0D0B;
  --lb-btn-ink:#FFFFFF;
  --lb-card:#FFFFFF;
  --lb-card-ink:#0D0D0B;
  --lb-card-ink-3:#55554F;
  --lb-hl:linear-gradient(transparent 60%,#FFD60A 60%,#FFD60A 94%,transparent 94%);
  --lb-hl-ink:inherit;
  --lb-font:"Archivo","Helvetica Neue",Arial,system-ui,sans-serif;
  --border2:rgba(13,13,11,.28);
  --rule:rgba(13,13,11,.45);
  --on-accent:#FFFFFF;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  html:not([data-theme="light"]) body.label{
    --lb-paper:#0F0F0D;
    --lb-paper-2:#181815;
    --lb-surface:#1A1A17;
    --lb-ink:#F5F3EC;
    --lb-ink-2:#CFCCC2;
    --lb-ink-3:#A3A097;
    --lb-hair:#2E2D29;
    --lb-go:#4CC38A;
    --lb-stop:#FF7A66;
    --lb-caveat:#E2B04A;
    --lb-info:#7FB2E5;
    --lb-ai:#C4B5FD;
    --lb-btn:#FFD60A;
    --lb-btn-ink:#0D0D0B;
    --lb-card:#F7F5EE;
    --lb-hl:none;
    --lb-hl-ink:#FFD60A;
    --border2:rgba(245,243,236,.30);
    --rule:rgba(245,243,236,.45);
    --on-accent:#0D0D0B;
    color-scheme:dark;
  }
}
html[data-theme="dark"] body.label{
  --lb-paper:#0F0F0D;
  --lb-paper-2:#181815;
  --lb-surface:#1A1A17;
  --lb-ink:#F5F3EC;
  --lb-ink-2:#CFCCC2;
  --lb-ink-3:#A3A097;
  --lb-hair:#2E2D29;
  --lb-go:#4CC38A;
  --lb-stop:#FF7A66;
  --lb-caveat:#E2B04A;
  --lb-info:#7FB2E5;
  --lb-ai:#C4B5FD;
  --lb-btn:#FFD60A;
  --lb-btn-ink:#0D0D0B;
  --lb-card:#F7F5EE;
  --lb-hl:none;
  --lb-hl-ink:#FFD60A;
  --border2:rgba(245,243,236,.30);
  --rule:rgba(245,243,236,.45);
  --on-accent:#0D0D0B;
  color-scheme:dark;
}
/* /GENERATED:tokens */

body.label{
  /* shared tokens, re-pointed at the Label palette (the theme-dependent
     ones -- --border2, --rule, --on-accent -- live in design/tokens.json) */
  --bg:var(--lb-paper);
  --band:var(--lb-paper-2);
  --panel:var(--lb-surface);
  --card:var(--lb-surface);
  --glass:var(--lb-surface);
  --border:var(--lb-hair);
  --line:var(--lb-hair);
  --text:var(--lb-ink);
  --dim:var(--lb-ink-2);
  --muted:var(--lb-ink-3);
  --accent:var(--lb-ink);
  --accent-2:var(--lb-ink-2);
  --accent-dim:var(--lb-ink);
  --gain:var(--lb-go);
  --loss:var(--lb-stop);
  --gold:var(--lb-caveat);
  --grad:var(--lb-ink);

  background:var(--lb-paper);
  color:var(--lb-ink);
  font-family:var(--lb-font);
  font-variation-settings:"wdth" 100;
}

/* The shared ground paints a dark grid and film behind every page; Label is
   flat paper. */
body.label::before,body.label::after{display:none}

body.label .wrap{width:min(1200px,100% - 48px);margin-inline:auto;padding:0}
body.label a{color:inherit;text-underline-offset:4px;text-decoration-thickness:2px}
body.label :focus-visible{outline:3px solid #2F6FEB;outline-offset:3px;border-radius:4px}
body.label .tnum,body.label .mono{font-variant-numeric:tabular-nums}
body.label .mono{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:.92em}
body.label .hl{background:var(--lb-hl);color:var(--lb-hl-ink);padding:0 .04em;
  -webkit-box-decoration-break:clone;box-decoration-break:clone}

/* ── Ticker: kept (it reads real, timestamped quotes and never a stored
   price), but it is a footnote-weight strip now, not the first thing a
   visitor reads. */
body.label .ticker{height:26px;background:var(--lb-paper-2);border-bottom:1px solid var(--lb-hair)}
body.label .ticker-tag{border-right:1px solid var(--lb-hair);font-family:var(--lb-font);font-size:10px;letter-spacing:.14em;color:var(--lb-caveat)}
body.label .ticker-tag i{background:var(--lb-caveat)}
body.label .ticker-tag.is-live{color:var(--lb-go)}
body.label .ticker-tag.is-live i{background:var(--lb-go)}
body.label .ticker-tag.is-off,body.label .ticker-tag.is-wait{color:var(--lb-ink-3)}
body.label .ticker-tag.is-off i,body.label .ticker-tag.is-wait i{background:var(--lb-ink-3)}
body.label .ticker-track{font-size:11px;color:var(--lb-ink-2)}
body.label .tk{color:var(--lb-ink)}
body.label .tk .s{color:var(--lb-ink-3)}

/* ── Nav ───────────────────────────────────────────────────────────────── */
body.label nav{background:var(--lb-paper);background:color-mix(in srgb,var(--lb-paper) 92%,transparent);
  border-bottom:1px solid var(--lb-hair);backdrop-filter:blur(10px)}
body.label nav .wrap{height:68px}
body.label .brand{font-family:var(--lb-font);font-weight:800;font-size:1.25rem;letter-spacing:-.02em;
  font-variation-settings:"wdth" 92;color:var(--lb-ink);display:inline-flex;align-items:center;gap:0;text-decoration:none}
body.label .brand b{font-weight:800;color:var(--lb-ink)}
body.label .brand .dot{width:22px;height:22px;border-radius:5px;box-shadow:none;margin-right:10px;flex:none;
  background:
    linear-gradient(#0D0D0B,#0D0D0B) 4.5px 4px/4px 14px no-repeat,
    linear-gradient(#0D0D0B,#0D0D0B) 9.5px 8px/4px 10px no-repeat,
    linear-gradient(#0D0D0B,#0D0D0B) 14.5px 12px/4px 6px no-repeat,
    var(--lb-hi)}
body.label .navlinks{background:transparent;border:0;backdrop-filter:none;gap:6px;margin-left:auto}
body.label .navlinks a{color:var(--lb-ink-2);font-weight:500;font-size:.95rem}
body.label .navlinks a:hover{color:var(--lb-ink);background:var(--lb-paper-2)}
body.label .navmenu summary{border:1.5px solid var(--lb-hair);color:var(--lb-ink);background:transparent}
body.label .navmenu .sheet{background:var(--lb-surface);border:1px solid var(--lb-hair);box-shadow:0 12px 30px rgba(0,0,0,.12)}
body.label .navmenu .sheet a{color:var(--lb-ink)}
/* .themetoggle -- the light/dark switch (roadmap 3.8 L2, 2026-10-12; markup
   and handler in site_src/partials/nav.html.j2). The hamburger's 38px circle
   with the artifact's half-disc glyph, the same in both states. It only sets
   html[data-theme], which the GENERATED:tokens block above already reads --
   the palette, and --lb-card's paper in dark (RM-65), are untouched here.
   The layout cost of a fourth item in nav .wrap's space-between row is paid
   with two auto margins: on desktop the rail (.navlinks, margin-left:auto
   above) and the switch both take one, so the rail sits between the brand and
   the switch+CTA cluster as it sat between the brand and the CTA; below 900px
   the hamburger's margin-left:auto already does that and the switch keeps a
   10px gap instead. MEASURED 2026-10-12 with the trimmed CTA below 560px: at
   375px the 343px row holds brand 157 + hamburger 46 + CTA 102, so a 38px
   circle overflows it by 8px and a 34px one by 2px; at 360px nothing fits.
   So below 560px the circle is 34px with a 6px gap (fits from 381px up), and
   at 380px and below the handler moves the SAME button into the hamburger's
   sheet, where the last rule places it. [hidden] is restated because an author
   display rule outranks the UA's [hidden]{display:none}: the button ships
   hidden and its script reveals it, so a JS-off visitor keeps the OS
   preference and sees no dead control. */
body.label .themetoggle{display:grid;place-items:center;width:38px;height:38px;margin:0 10px 0 auto;padding:0;flex:none;
  border:1.5px solid var(--lb-hair);border-radius:50%;background:transparent;color:var(--lb-ink);cursor:pointer}
body.label .themetoggle:hover,body.label .themetoggle:focus-visible{border-color:var(--lb-ink)}
body.label .themetoggle[hidden]{display:none}
@media(max-width:900px){body.label .themetoggle{margin-left:0}}
@media(max-width:560px){body.label .themetoggle{width:34px;height:34px;margin-right:6px}}
body.label .navmenu .sheet .themetoggle{margin:6px 0 2px 12px;justify-self:start}

/* ── Buttons ───────────────────────────────────────────────────────────── */
body.label .btn{font-family:var(--lb-font);font-weight:700;border-radius:999px;letter-spacing:0;text-transform:none;box-shadow:none}
body.label .btn-primary{background:var(--lb-btn);color:var(--lb-btn-ink);border:2px solid var(--lb-btn)}
body.label .btn-primary:hover{background:var(--lb-btn);transform:translateY(-1px);box-shadow:none}
body.label .btn-ghost{background:transparent;color:var(--lb-ink);border:2px solid currentColor}
body.label .btn-ghost:hover{background:var(--lb-paper-2)}
body.label .btn-lg{height:52px;padding:0 26px;font-size:1.02rem}

/* ── Type ──────────────────────────────────────────────────────────────── */
body.label h1,body.label h2,body.label h3{font-family:var(--lb-font);color:var(--lb-ink);text-wrap:balance}
body.label .lb-h1{font-weight:850;font-size:clamp(3rem,1.3rem + 5.6vw,6rem);line-height:.94;
  font-variation-settings:"wdth" 84;letter-spacing:-.035em;margin:0 0 28px}
body.label .lb-h2{font-weight:850;font-size:clamp(2.3rem,1.4rem + 3.4vw,4.2rem);line-height:.98;
  font-variation-settings:"wdth" 86;letter-spacing:-.03em;margin:0}
body.label .lb-lede{font-size:clamp(1.15rem,1.05rem + .45vw,1.42rem);line-height:1.45;color:var(--lb-ink-2);max-width:30ch;margin:0 0 36px}
body.label .lb-sec-lede{font-size:clamp(1.1rem,1rem + .35vw,1.3rem);color:var(--lb-ink-2);max-width:46ch;margin:22px 0 0;line-height:1.5}
body.label .lb-eyebrow{display:block;font-weight:800;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lb-ink-3);margin:0 0 14px}

/* ── Hero ──────────────────────────────────────────────────────────────── */
body.label .lb-hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:64px;align-items:center;padding:76px 0 96px}
body.label .lb-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px}
body.label .lb-ctas .lb-tl{font-weight:700}
body.label .lb-note{margin:22px 0 0;color:var(--lb-ink-3);font-size:.95rem;max-width:44ch}

/* ── The label (Backtest Facts) ────────────────────────────────────────── */
body.label .lb-label-wrap{justify-self:end;width:min(100%,440px)}
body.label .facts{background:var(--lb-card);color:var(--lb-card-ink);border:2px solid #0D0D0B;padding:8px 14px 12px;
  font-variant-numeric:tabular-nums;box-shadow:10px 10px 0 var(--lb-hi)}
body.label .facts h3{margin:0;color:var(--lb-card-ink);font-weight:900;font-size:clamp(2.4rem,2rem + 1.6vw,3.15rem);line-height:1;
  font-variation-settings:"wdth" 72;letter-spacing:-.01em}
body.label .facts .sub{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.86rem;padding:2px 0 6px}
body.label .facts .tag{font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;border:1.5px solid #0D0D0B;
  padding:2px 6px 1px;white-space:nowrap;color:var(--lb-card-ink)}
body.label .r12{border-top:12px solid #0D0D0B}
body.label .r6{border-top:6px solid #0D0D0B}
body.label .r1{border-top:1px solid #0D0D0B}
body.label .lrow{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:5px 0 4px;font-size:1rem;color:var(--lb-card-ink)}
body.label .lrow b{font-weight:800}
body.label .lrow .k small{font-weight:500;font-size:.8rem;color:var(--lb-card-ink-3);margin-left:4px}
body.label .lrow.big{font-size:1.5rem;font-weight:900;padding:4px 0 6px;font-variation-settings:"wdth" 88}
body.label .lrow.ind{padding-left:18px}
body.label .lrow .v{font-weight:800;white-space:nowrap}
body.label .lbar{display:flex;height:16px;margin:6px 0 8px;border:1.5px solid #0D0D0B;background:#fff}
body.label .lbar .lk{background:repeating-linear-gradient(135deg,#0D0D0B 0 1.5px,transparent 1.5px 6px);transition:width .35s ease}
body.label .lbar .lf{background:#0D0D0B;transition:width .35s ease}
body.label .lbar-key{display:flex;justify-content:space-between;font-size:.74rem;color:var(--lb-card-ink-3);margin-top:-4px}
body.label .verdict{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;color:var(--lb-card-ink)}
body.label .verdict .k{font-size:1.35rem;font-weight:900;font-variation-settings:"wdth" 88}
body.label .chip-v{display:inline-flex;align-items:center;gap:7px;padding:7px 12px 6px;border-radius:999px;font-weight:800;font-size:.92rem;
  color:#fff;background:#C3281A;white-space:nowrap}
body.label .chip-v.ok{background:#0A7A45}
body.label .chip-v svg{width:14px;height:14px}
body.label .foot-note{font-size:.78rem;line-height:1.4;color:var(--lb-card-ink-3);padding-top:6px;margin:0}
body.label .foot-note b{color:var(--lb-card-ink)}

body.label .tune{margin-top:30px}
body.label .tune label{display:block;font-weight:800;font-size:1.15rem;margin-bottom:4px}
body.label .tune input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:36px;background:transparent;margin:4px 0 0;cursor:pointer}
body.label .tune input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:var(--lb-ink)}
body.label .tune input[type=range]::-moz-range-track{height:8px;border-radius:999px;background:var(--lb-ink)}
body.label .tune input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;margin-top:-11px;border-radius:50%;background:var(--lb-hi);border:3px solid #0D0D0B}
body.label .tune input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--lb-hi);border:3px solid #0D0D0B}
body.label .picks{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
body.label .picks button{all:unset;cursor:pointer;padding:8px 15px;border-radius:999px;border:1.5px solid var(--lb-ink-3);font-weight:700;font-size:.92rem;color:var(--lb-ink)}
body.label .picks button[aria-pressed="true"]{background:var(--lb-ink);color:var(--lb-paper);border-color:var(--lb-ink)}
body.label .picks button:focus-visible{outline:3px solid #2F6FEB;outline-offset:2px}

/* ── Sections ──────────────────────────────────────────────────────────── */
body.label .lb-sec{padding:120px 0 0}
body.label .lb-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:56px}
body.label .mini{background:var(--lb-card);color:var(--lb-card-ink);border:2px solid #0D0D0B;padding:8px 14px 14px;font-variant-numeric:tabular-nums}
body.label .mini h3{margin:0 0 4px;color:var(--lb-card-ink);font-weight:900;font-size:1.7rem;line-height:1.05;font-variation-settings:"wdth" 76}
body.label .mini .lrow{font-size:.95rem}
body.label .mini .verdict{padding-top:10px}
body.label .mini .verdict .k{font-size:1.05rem}
body.label .mini-cap{margin:14px 2px 0;color:var(--lb-ink-2);font-size:1rem}
body.label .mini-cap b{color:var(--lb-ink)}

body.label .lb-feat{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:center;padding:56px 0;border-top:1px solid var(--lb-hair)}
body.label .lb-feat:first-child{border-top:0}
body.label .lb-feat.flip .txt{order:2}
body.label .lb-feat h3{margin:0;font-weight:800;font-size:clamp(1.7rem,1.2rem + 1.6vw,2.5rem);line-height:1.05;font-variation-settings:"wdth" 88;letter-spacing:-.02em}
body.label .lb-feat p{margin:16px 0 0;color:var(--lb-ink-2);font-size:1.1rem;max-width:42ch;line-height:1.55}
body.label .lb-feat p .m{font-weight:700;color:var(--lb-ink);white-space:nowrap}
body.label .lb-shot{margin:0}
body.label .lb-shot .fr{border-radius:8px;overflow:hidden;background:#0a0c10;border:1px solid #0D0D0B}
body.label .lb-shot img{display:block;width:100%;height:auto}
body.label .lb-shot figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 14px;margin-top:10px;font-size:.84rem;color:var(--lb-ink-3)}
body.label .lb-shot figcaption b{color:var(--lb-ink);font-weight:700}

/* What's inside: the module list */
body.label .lb-inside{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:48px;border-top:2px solid var(--lb-ink)}
body.label .lb-inside > div{padding:22px 22px 26px 0;border-bottom:1px solid var(--lb-hair)}
body.label .lb-inside > div + div{padding-left:22px;border-left:1px solid var(--lb-hair)}
body.label .lb-inside h3{margin:0 0 8px;font-size:1.15rem;font-weight:800}
body.label .lb-inside p{margin:0;color:var(--lb-ink-2);font-size:.98rem;line-height:1.5}
body.label .lb-count{margin:26px 0 0;color:var(--lb-ink-3);font-size:.95rem}
body.label .lb-count b{color:var(--lb-ink)}

/* ── The measured record: the shared gate-record markup, set as a second
   label (Model Facts) so the illustration and the measurement read as a
   pair -- one tagged Illustrative, one tagged Measured. */
body.label .recband{padding:120px 0 0;background:transparent;border:0}
body.label .lb-self{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:72px;align-items:start}
body.label .gaterec{background:var(--lb-card);color:var(--lb-card-ink);border:2px solid #0D0D0B;border-radius:0;padding:10px 16px 14px;
  box-shadow:10px 10px 0 var(--lb-ink)}
body.label .gaterec-head{display:flex;flex-direction:column;gap:6px;padding-bottom:10px;border-bottom:12px solid #0D0D0B;margin-bottom:6px}
body.label .measlabel{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;
  color:#0A7A45;background:none;border:1.5px solid #0A7A45;padding:3px 7px 2px;align-self:flex-start}
body.label .measlabel svg{width:13px;height:13px}
body.label .gaterec-src{font-size:.82rem;color:var(--lb-card-ink-3);font-family:inherit}
body.label .gaterec-body{display:grid;grid-template-columns:1fr;gap:0}
body.label .gnum{display:flex;flex-direction:row-reverse;justify-content:space-between;align-items:baseline;gap:12px;
  padding:7px 0 6px;border-bottom:1px solid #0D0D0B;background:none;border-radius:0}
body.label .gnum .gv{font-weight:900;font-size:1.25rem;color:var(--lb-card-ink);font-variant-numeric:tabular-nums;font-family:var(--lb-font)}
body.label .gnum .gv.accent{color:#0A7A45}
body.label .gnum .gk{font-weight:700;font-size:1rem;color:var(--lb-card-ink);text-transform:none;letter-spacing:0;font-family:var(--lb-font)}
body.label .statsnote{margin:12px 0 0;font-size:.92rem;line-height:1.5;color:var(--lb-card-ink-3)}
body.label .statsnote .mono{color:var(--lb-card-ink);font-weight:700}

/* ── Compare strip and the shared table ────────────────────────────────── */
body.label .tablewrap{border:2px solid var(--lb-ink);border-radius:0;background:var(--lb-surface);margin-top:40px;overflow-x:auto}
body.label table{color:var(--lb-ink)}
body.label thead th{background:var(--lb-paper-2);color:var(--lb-ink-2);font-family:var(--lb-font);font-weight:800;letter-spacing:.06em}
body.label tbody td{border-color:var(--lb-hair);color:var(--lb-ink-2)}
body.label .cmp th.us,body.label .cmp td.us{background:color-mix(in srgb,var(--lb-hi) 22%,transparent);color:var(--lb-ink)}

/* ── Pricing: the shared grid, re-inked. Prices and plan copy are untouched
   here on purpose (contract terms are the owner's). */
body.label .band-alt{background:var(--lb-paper-2)}
body.label #pricing{padding:110px 0}
body.label .pricegrid{gap:28px}
body.label .pcard{background:var(--lb-surface);border:2px solid var(--lb-ink);border-radius:0;box-shadow:none}
body.label .pcard.best{border-color:var(--lb-ink);background:var(--lb-surface);box-shadow:10px 10px 0 var(--lb-hi)}
body.label .badge-best{background:var(--lb-hi);color:#0D0D0B;border-radius:999px;font-weight:800}
body.label .pcard .plan{color:var(--lb-ink-2);font-weight:800}
body.label .pcard .amt{color:var(--lb-ink);font-family:var(--lb-font);font-weight:900}
body.label .pcard .per,body.label .pcard .fineprint{color:var(--lb-ink-3)}
body.label .checklist li{color:var(--lb-ink-2)}
body.label .checklist .ic{color:var(--lb-go);background:transparent;box-shadow:none}

/* ── FAQ ───────────────────────────────────────────────────────────────── */
body.label #faq{padding:110px 0}
body.label .faq-item{background:var(--lb-surface);border:1px solid var(--lb-hair);border-radius:8px}
body.label .faq-item summary{color:var(--lb-ink);font-family:var(--lb-font);font-weight:700}
body.label .faq-item .a{color:var(--lb-ink-2)}
body.label .faq-item .plus{color:var(--lb-ink-3)}

/* ── Closing band ──────────────────────────────────────────────────────── */
body.label .lb-cta{background:var(--lb-hi);color:#0D0D0B}
body.label .lb-cta-in{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px 48px;padding:88px 0}
body.label .lb-cta h2{max-width:15ch;color:#0D0D0B}
body.label .lb-cta .btn-primary{background:#0D0D0B;color:#fff;border-color:#0D0D0B}
body.label .lb-cta .btn-ghost{color:#0D0D0B}

/* ── Shared section headings still used by the kept blocks ─────────────── */
body.label .kicker{font-family:var(--lb-font);font-weight:800;letter-spacing:.12em;color:var(--lb-ink-3);font-size:.78rem}
body.label .lead{color:var(--lb-ink-2)}
body.label .shotnote{color:var(--lb-ink-3)}
body.label .dim{color:var(--lb-ink-3)}

/* ── Footer ────────────────────────────────────────────────────────────── */
body.label footer{background:var(--lb-paper);border-top:1px solid var(--lb-hair);color:var(--lb-ink-2)}
body.label footer h4{color:var(--lb-ink);font-family:var(--lb-font)}
body.label footer a{color:var(--lb-ink-2)}
body.label footer a:hover{color:var(--lb-ink)}
body.label footer .disc{color:var(--lb-ink-3)}

/* ── Generic page body ──────────────────────────────────────────────────
   The rules above were written for index.html's own lb-* markup. These
   re-skin the shared quantsuite.css components every other page is built
   from (cards, tone chips, callouts, the legal-document layout, forms), so
   the whole site reads as one paper-and-ink system with no page's markup or
   copy changed. quantsuite.css paints many of them with literal emerald or
   white-alpha values tuned for a near-black ground; on paper those become
   invisible rings and pastel text, so each is restated here in Label tokens. */
body.label{
  /* The legacy colour aliases are declared on :root in quantsuite.css as
     var(--accent), var(--gain) ... A custom property that references another
     is resolved where it is DECLARED, so on :root they still hold emerald,
     rose and amber however body.label re-points --accent. Re-declare them
     here so they follow. --sky and --vio get the Label info and AI inks. */
  --sky:var(--lb-info);
  --vio:var(--lb-ai);
  --cyan:var(--accent);
  --violet:var(--vio);
  --green:var(--gain);
  --red:var(--loss);
  --amber:var(--gold);
  /* One text face: the pixel display face and the Inter stack give way to
     the bundled Archivo. Code and figures keep --font-mono. */
  --font-body:var(--lb-font);
  --font-display:var(--lb-font);
}
body.label a[style*="var(--cyan)"],body.label a[style*="var(--accent)"]{text-decoration:underline}

/* Surfaces: flat paper cards on hairlines; no black drop shadows or glass. */
body.label .card,body.label .glasscard,body.label .famcard{box-shadow:none;border-color:var(--lb-hair);backdrop-filter:none}
body.label .card:hover,body.label .card:focus-within,
body.label .famcard:hover,body.label .famcard:focus-within{box-shadow:none;border-color:var(--rule)}
body.label .pcard:not(.best):hover,body.label .pcard:not(.best):focus-within{box-shadow:none;border-color:var(--lb-ink)}
body.label .card .ic{background:var(--lb-paper-2);border-color:var(--lb-hair);color:var(--lb-ink)}
body.label .famcard ul{color:var(--lb-ink-2)}
body.label .famcard li::before{color:var(--lb-ink-3)}
body.label .form,body.label .stats-card{border-color:var(--lb-hair)}
body.label .termframe,body.label .shotwrap{border-color:var(--lb-ink);box-shadow:none}

/* Chips and tags: a tint and a ring of their OWN ink, so every tone variant
   (and every page-local pill) stays legible on paper and in dark. */
body.label .tone,body.label .chip,body.label .pill{background:color-mix(in srgb,currentColor 8%,transparent)}
body.label .tone,body.label .chip{box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 30%,transparent)}
body.label .eyebrow,body.label .mtag,body.label .termtag{color:var(--lb-ink-2);background:var(--lb-paper-2);border-color:var(--lb-hair);backdrop-filter:none}
body.label .navlinks a[aria-current]{color:var(--lb-ink);background:var(--lb-paper-2)}

/* Callouts and bands: paper, with the left rule carrying the tone. */
body.label .callout{background:var(--lb-surface);border-color:var(--lb-hair);border-left-color:var(--lb-ink)}
body.label .callout.warn{border-left-color:var(--lb-caveat)}
body.label .cta-band{background:var(--lb-paper-2);border-color:var(--lb-hair)}

/* The legal-document layout (terms, privacy, eula, disclaimer). */
body.label .ld-hero{background:var(--lb-paper-2);border-bottom-color:var(--lb-hair)}
body.label .ld-toc{border-top-color:var(--lb-ink)}

/* Forms: admin.html paints its inputs #0b1019, which is dark-on-dark once the
   ink turns dark. Sliders, checkboxes and radios keep their own drawing. */
body.label input:not([type=range]):not([type=checkbox]):not([type=radio]),
body.label select,body.label textarea{background:var(--lb-surface);color:var(--lb-ink);border-color:var(--border2)}
body.label ::placeholder{color:var(--lb-ink-3);opacity:1}
body.label .keyout{background:var(--lb-paper-2);color:var(--lb-ink)}

/* Page-local surfaces that hardcode a near-black band or a white-alpha rule. */
body.label section.tour:nth-of-type(even){background:var(--lb-paper-2)}
body.label .docs-body section.doc-sec{border-bottom-color:var(--lb-hair)}
body.label .faq .q{border-color:var(--lb-hair)}

/* A long unbroken mono run (a file name, a stamped quote) wraps instead of
   pushing a 390px viewport sideways; break-word leaves table sizing alone. */
body.label :is(p,li,dd,figcaption,.callout) :is(.mono,code,kbd){overflow-wrap:break-word}

/* ── Entrance: html.anim is set by the page's motion gate only when motion
   is allowed and IntersectionObserver exists; without it everything is
   visible at rest. */
html.anim body.label .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
html.anim body.label .reveal.is-in{opacity:1;transform:none}

@media (max-width:1040px){
  body.label .lb-hero{grid-template-columns:minmax(0,1fr);gap:56px;padding:48px 0 72px}
  body.label .lb-label-wrap{justify-self:start}
  body.label .lb-trio{grid-template-columns:minmax(0,1fr);max-width:460px}
  body.label .lb-feat{grid-template-columns:minmax(0,1fr);gap:28px;padding:44px 0}
  body.label .lb-feat.flip .txt{order:0}
  body.label .lb-self{grid-template-columns:minmax(0,1fr);gap:44px}
  body.label .lb-inside{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.label .lb-inside > div:nth-child(3){padding-left:0;border-left:0}
}
@media (max-width:640px){
  body.label .wrap{width:calc(100% - 32px)}
  body.label .lb-sec,body.label .recband{padding-top:88px}
  body.label .facts{box-shadow:6px 6px 0 var(--lb-hi);padding:6px 12px 12px}
  body.label .facts .sub{flex-wrap:wrap}
  body.label .facts .tag{white-space:normal}
  body.label .gaterec{box-shadow:6px 6px 0 var(--lb-ink)}
  body.label .lrow.big{font-size:1.3rem}
  body.label .verdict .k{font-size:1.15rem}
  body.label .lb-inside{grid-template-columns:minmax(0,1fr)}
  body.label .lb-inside > div,body.label .lb-inside > div + div{padding-left:0;border-left:0}
  body.label .lb-cta-in{padding:64px 0}
}
@media (prefers-reduced-motion:reduce){
  body.label *,body.label *::before,body.label *::after{transition:none !important;animation:none !important}
  html.anim body.label .reveal{opacity:1;transform:none}
}
