/*
Theme Name: TDC Ledger
Theme URI: https://thedailycoins.io/
Description: The Daily Coins — a market-data product. Cool neutral surfaces, hairline borders, one indigo accent, tabular figures. Every number is server-rendered with its time.
Version: 2.0.0
Requires PHP: 8.1
Text Domain: tdc-ledger
*/

/* =====================================================================
   0. FONTS — Geist (UI, headlines, figures) + Geist Mono (code only).
      Self-hosted, latin subset, variable weight. The fallback faces are
      metric-matched to Geist so the swap does not move the page.
   ===================================================================== */
@font-face{font-family:"Geist";font-style:normal;font-weight:300 800;font-display:swap;src:url(assets/fonts/geist-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}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:400 600;font-display:swap;src:url(assets/fonts/geist-mono-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}
@font-face{font-family:"Geist Fallback";src:local("Arial"),local("Helvetica Neue"),local("Helvetica");size-adjust:105.7%;ascent-override:95%;descent-override:28%;line-gap-override:0%}
@font-face{font-family:"Geist Mono Fallback";src:local("Menlo"),local("Consolas"),local("Courier New");size-adjust:100%}

/* =====================================================================
   1. TOKENS — use these, never hard-coded colours.
   ===================================================================== */
:root{
  /* surfaces */
  --bg:#F6F7F9; --surface:#FFFFFF; --surface-2:#F2F4F7; --surface-3:#E8EBF0;
  /* text */
  --text:#0B0D12; --text-2:#3B4250; --muted:#5D6472; --faint:#858B97;
  /* lines */
  --line:#E3E6EB; --line-2:#CDD2DA;
  /* the one accent */
  --accent:#4F46E5; --accent-hover:#4338CA; --accent-soft:#EEF0FE; --accent-ink:#FFFFFF;
  /* market semantics — always paired with ▲/▼ and a sign; up is darker than down here */
  --up:#03653E; --up-soft:#E7F6EE; --down:#CC2A1B; --down-soft:#FFF0EE; --flat:#5D6472;
  --warn:#935209; --warn-soft:#FDF4E3;
  --focus:#4F46E5;
  /* derived */
  --hd-bg:color-mix(in srgb,var(--surface) 86%,transparent);
  --answer-bg:color-mix(in srgb,var(--accent) 4%,var(--surface));
  --answer-line:color-mix(in srgb,var(--accent) 22%,var(--line));
  --row-hover:color-mix(in srgb,var(--surface-2) 70%,var(--surface));
  --shadow-sm:0 1px 2px rgba(16,24,40,.05);
  --shadow:0 1px 2px rgba(16,24,40,.04),0 6px 16px -6px rgba(16,24,40,.08);
  --shadow-lg:0 2px 6px rgba(16,24,40,.05),0 18px 40px -12px rgba(16,24,40,.18);
  --ring:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);
  /* charts */
  --chart-line:var(--accent); --chart-grid:var(--line); --chart-axis:var(--muted);
  --map-n3:#B42318; --map-n2:#C8372B; --map-n1:#F4B4AB; --map-0:#DDE1E7; --map-p1:#A6DDBF; --map-p2:#1A7F4C; --map-p3:#05603A;
  --g1:#CC2A1B; --g2:#E8833A; --g3:#C5CAD3; --g4:#5FB585; --g5:#03653E;
  --btc:#F7931A; --alt:#4F7BEA;

  /* type */
  --font-sans:"Geist","Geist Fallback",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --font-mono:"Geist Mono","Geist Mono Fallback",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --font-display:var(--font-sans);
  --fs-11:.6875rem; --fs-12:.75rem; --fs-13:.8125rem; --fs-14:.875rem; --fs-15:.9375rem; --fs-16:1rem;
  --fs-17:1.0625rem; --fs-18:1.125rem; --fs-20:1.25rem; --fs-24:1.5rem; --fs-30:1.875rem; --fs-36:2.25rem; --fs-48:3rem;
  --fs-h1:clamp(2rem,1.45rem + 2.4vw,3.25rem);
  --fs-h2:clamp(1.375rem,1.15rem + 1vw,1.875rem);
  --fs-display:clamp(2.4rem,1.6rem + 3.6vw,4.25rem);
  --fs-figure:clamp(2.25rem,1.7rem + 2.6vw,3.5rem);

  /* space (4px base) */
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem; --sp-5:1.25rem; --sp-6:1.5rem;
  --sp-8:2rem; --sp-10:2.5rem; --sp-12:3rem; --sp-16:4rem; --sp-20:5rem;

  /* shape + layout */
  --r-xs:6px; --r-sm:8px; --r-md:10px; --r:12px; --r-lg:16px; --r-pill:999px;
  --wrap:1240px; --wrap-narrow:760px; --wrap-text:820px; --gut:16px;
  --hd-h:60px; --tape-h:38px; --hd-sticky:calc(var(--hd-h) + var(--tape-h) + 2px);
  --ease:cubic-bezier(.2,.7,.2,1); --dur:.16s;

  /* legacy aliases (templates still carry a few inline var() references) */
  --paper:var(--bg); --paper-2:var(--surface-2); --card:var(--surface); --ink:var(--text); --ink-2:var(--text-2);
  --rule:var(--line); --rule-2:var(--line-2); --up-bg:var(--up-soft); --down-bg:var(--down-soft);
  --serif:var(--font-display); --sans:var(--font-sans); --mono:var(--font-mono); --fig:var(--font-sans); --r-legacy:var(--r);

  color-scheme:light;
}
@media (min-width:768px){ :root{ --gut:24px } }
@media (min-width:1280px){ :root{ --gut:32px } }

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#09090B; --surface:#111215; --surface-2:#17191D; --surface-3:#1F2228;
    --text:#F2F4F7; --text-2:#C3C8D1; --muted:#9097A3; --faint:#6B7280;
    --line:#24272D; --line-2:#33373F;
    --accent:#8B87FF; --accent-hover:#A5A2FF; --accent-soft:#1D1C3A; --accent-ink:#0B0A1F;
    --up:#34D399; --up-soft:#0F2A20; --down:#FF6B5E; --down-soft:#341714; --flat:#9097A3;
    --warn:#F5B544; --warn-soft:#2E2410; --focus:#A5A2FF;
    --hd-bg:color-mix(in srgb,var(--bg) 82%,transparent);
    --answer-bg:color-mix(in srgb,var(--accent) 7%,var(--surface));
    --answer-line:color-mix(in srgb,var(--accent) 28%,var(--line));
    --row-hover:var(--surface-2);
    --shadow-sm:0 1px 2px rgba(0,0,0,.5);
    --shadow:0 1px 2px rgba(0,0,0,.5),0 8px 24px -8px rgba(0,0,0,.6);
    --shadow-lg:0 2px 6px rgba(0,0,0,.5),0 24px 48px -12px rgba(0,0,0,.75);
    --map-n3:#C2362B; --map-n2:#8E2A22; --map-n1:#4A2421; --map-0:#23262C; --map-p1:#173D2C; --map-p2:#1B7348; --map-p3:#188A52;
    --g1:#FF6B5E; --g2:#F59E52; --g3:#3A3F48; --g4:#3FAE78; --g5:#34D399;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#09090B; --surface:#111215; --surface-2:#17191D; --surface-3:#1F2228;
  --text:#F2F4F7; --text-2:#C3C8D1; --muted:#9097A3; --faint:#6B7280;
  --line:#24272D; --line-2:#33373F;
  --accent:#8B87FF; --accent-hover:#A5A2FF; --accent-soft:#1D1C3A; --accent-ink:#0B0A1F;
  --up:#34D399; --up-soft:#0F2A20; --down:#FF6B5E; --down-soft:#341714; --flat:#9097A3;
  --warn:#F5B544; --warn-soft:#2E2410; --focus:#A5A2FF;
  --hd-bg:color-mix(in srgb,var(--bg) 82%,transparent);
  --answer-bg:color-mix(in srgb,var(--accent) 7%,var(--surface));
  --answer-line:color-mix(in srgb,var(--accent) 28%,var(--line));
  --row-hover:var(--surface-2);
  --shadow-sm:0 1px 2px rgba(0,0,0,.5);
  --shadow:0 1px 2px rgba(0,0,0,.5),0 8px 24px -8px rgba(0,0,0,.6);
  --shadow-lg:0 2px 6px rgba(0,0,0,.5),0 24px 48px -12px rgba(0,0,0,.75);
  --map-n3:#C2362B; --map-n2:#8E2A22; --map-n1:#4A2421; --map-0:#23262C; --map-p1:#173D2C; --map-p2:#1B7348; --map-p3:#188A52;
  --g1:#FF6B5E; --g2:#F59E52; --g3:#3A3F48; --g4:#3FAE78; --g5:#34D399;
  color-scheme:dark;
}

/* =====================================================================
   2. RESET + BASE
   ===================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--hd-sticky) + 12px)}
body{margin:0;background:var(--bg);color:var(--text);font:400 var(--fs-16)/1.6 var(--font-sans);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
  overflow-wrap:break-word;overflow-x:hidden;min-height:100vh}
@supports (overflow:clip){ body{overflow-x:clip} }
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration-color:color-mix(in srgb,currentColor 30%,transparent);text-underline-offset:.2em;text-decoration-thickness:1px;transition:color var(--dur) var(--ease),text-decoration-color var(--dur) var(--ease)}
a:hover{color:var(--accent);text-decoration-color:currentColor}
:focus{outline:none}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}
::selection{background:color-mix(in srgb,var(--accent) 24%,transparent)}
h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-display);color:var(--text);font-weight:650;text-wrap:balance}
h1{font-size:var(--fs-h1);line-height:1.08;letter-spacing:-.032em}
h2{font-size:var(--fs-h2);line-height:1.18;letter-spacing:-.024em}
h3{font-size:var(--fs-18);line-height:1.3;letter-spacing:-.012em;font-weight:600}
h4{font-size:var(--fs-16);line-height:1.35;letter-spacing:-.006em;font-weight:600}
p{margin:0 0 1em}
small{font-size:.8125em}
strong,b{font-weight:600}
hr,hr.rule{border:0;border-top:1px solid var(--line);margin:var(--sp-8) 0}
hr.rule{margin:0}
code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}
kbd{display:inline-grid;place-items:center;min-width:1.5em;height:1.5em;padding:0 .35em;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:5px;background:var(--surface);color:var(--muted);font-size:.72rem;line-height:1}
button{font:inherit;color:inherit}
input,select,textarea{font:inherit;color:inherit}
table{font-variant-numeric:tabular-nums}
main{display:block;min-height:50vh}
[hidden]{display:none!important}
/* Anchored headings land below the sticky header. */
[id]{scroll-margin-top:calc(var(--hd-sticky) + 12px)}

/* =====================================================================
   3. TYPE HELPERS + UTILITIES
   ===================================================================== */
.t-display{font:700 var(--fs-display)/1.02 var(--font-display);letter-spacing:-.04em}
.t-h1{font-size:var(--fs-h1);line-height:1.08;letter-spacing:-.032em;font-weight:650}
.t-h2{font-size:var(--fs-h2);line-height:1.18;letter-spacing:-.024em;font-weight:650}
.t-h3{font-size:var(--fs-18);line-height:1.3;letter-spacing:-.012em;font-weight:600}
.t-lede{font-size:clamp(var(--fs-17),1rem + .35vw,var(--fs-20));line-height:1.55;color:var(--text-2);max-width:62ch}
.t-body{font-size:var(--fs-16)}
.t-small,.small{font-size:var(--fs-14)}
.t-micro,.micro{font-size:var(--fs-12)}
.eyebrow{display:inline-flex;align-items:center;gap:.45rem;font:600 var(--fs-12)/1.2 var(--font-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.eyebrow--accent{color:var(--accent)}
.num,.figure{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.figure{font-weight:650;letter-spacing:-.03em;line-height:1.05;color:var(--text)}
.figure--xl{font-size:var(--fs-figure)}
.figure--lg{font-size:clamp(1.75rem,1.4rem + 1.4vw,2.5rem)}
.figure--md{font-size:var(--fs-24)}
.mono{font-family:var(--font-mono)}
.muted{color:var(--muted)}
.text-2{color:var(--text-2)}
.accent{color:var(--accent)}
.nowrap{white-space:nowrap}
.center{text-align:center} .right{text-align:right}
.maxw-prose{max-width:68ch} .maxw-answer{max-width:860px}
.mt-0{margin-top:0!important} .mb-0{margin-bottom:0!important}
.mt-2{margin-top:var(--sp-2)} .mt-4{margin-top:var(--sp-4)} .mt-6{margin-top:var(--sp-6)} .mt-8{margin-top:var(--sp-8)} .mt-12{margin-top:var(--sp-12)}
.mb-2{margin-bottom:var(--sp-2)} .mb-4{margin-bottom:var(--sp-4)} .mb-6{margin-bottom:var(--sp-6)} .mb-8{margin-bottom:var(--sp-8)}
.vh{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
.skip{position:absolute;left:-9999px;top:0;background:var(--text);color:var(--bg);padding:.6rem 1rem;z-index:100;border-radius:var(--r-sm);font-weight:600;text-decoration:none}
.skip:focus{left:8px;top:8px}
/* Decorative dot-grid illustration for text-heavy heads (CSS only). */
.deco-grid{position:relative;isolation:isolate}
.deco-grid::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--text) 14%,transparent) 1px,transparent 0);background-size:18px 18px;
  -webkit-mask-image:radial-gradient(ellipse 70% 90% at 85% 0%,#000 10%,transparent 70%);mask-image:radial-gradient(ellipse 70% 90% at 85% 0%,#000 10%,transparent 70%)}

/* =====================================================================
   4. DELTAS — never colour alone: sign + arrow + colour
   ===================================================================== */
.d{font-family:var(--font-sans);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600;position:relative}
.d::before{display:inline-block;margin-right:.2em;font-size:.72em;vertical-align:.08em}
.d--up{color:var(--up)} .d--up::before{content:"▲"}
.d--down{color:var(--down)} .d--down::before{content:"▼"}
.d--flat{color:var(--flat)} .d--flat::before{content:"■";font-size:.55em;vertical-align:.18em}
.pill{display:inline-flex;align-items:center;gap:.2rem;border-radius:var(--r-xs);padding:.12rem .45rem;font-size:var(--fs-13);line-height:1.4}
.pill.d--up{background:var(--up-soft)} .pill.d--down{background:var(--down-soft)} .pill.d--flat{background:var(--surface-2)}
.result__big.d--up::before,.result__big.d--down::before{content:none}

/* =====================================================================
   5. LAYOUT PRIMITIVES
   ===================================================================== */
.wrap{max-width:calc(var(--wrap) + 2 * var(--gut));margin:0 auto;padding:0 var(--gut)}
.wrap--narrow{max-width:calc(var(--wrap-narrow) + 2 * var(--gut))}
.wrap--text{max-width:calc(var(--wrap-text) + 2 * var(--gut))}
.sec{padding:clamp(2.25rem,4.5vw,4rem) 0}
.sec--tight{padding:clamp(1.5rem,3vw,2.5rem) 0}
.sec--alt{background:var(--surface);border-block:1px solid var(--line)}
.sec__h{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem 1.5rem;margin-bottom:var(--sp-6);flex-wrap:wrap}
.sec__h h2{font-size:var(--fs-h2)}
.sec__t{min-width:0;flex:1 1 320px}
.sec__intro{margin:.45rem 0 0;color:var(--muted);max-width:64ch;font-size:var(--fs-15)}
.sec__more{display:inline-flex;align-items:center;gap:.35rem;min-height:32px;padding:0 .8rem;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);font-size:var(--fs-14);font-weight:550;text-decoration:none;white-space:nowrap;color:var(--text-2);transition:border-color var(--dur),color var(--dur),background var(--dur)}
.sec__more::after{content:"→";transition:transform var(--dur) var(--ease)}
.sec__more:hover{border-color:var(--line-2);color:var(--text);background:var(--surface-2)}
.sec__more:hover::after{transform:translateX(2px)}
.sec-block{margin:var(--sp-10) 0}
.h-sec{font-size:var(--fs-24);letter-spacing:-.02em;margin-bottom:var(--sp-4)}
.grid{display:grid;gap:var(--sp-4)}
@media (min-width:768px){ .grid{gap:var(--sp-5)} }
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-auto{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
@media (max-width:1023px){ .g4{grid-template-columns:repeat(2,minmax(0,1fr))} .g3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:639px){ .g2,.g3,.g4{grid-template-columns:minmax(0,1fr)} }
.stack{display:flex;flex-direction:column;gap:var(--stack,var(--sp-4))}
.stack>*{margin:0}
.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cluster,var(--sp-2))}
.between{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}
.split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--sp-8);align-items:start}
@media (max-width:1023px){ .split{grid-template-columns:minmax(0,1fr)} }

/* =====================================================================
   6. HEADER (sticky bar + integrated market tape)
   ===================================================================== */
.hd{position:sticky;top:0;z-index:50;background:var(--hd-bg);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--line);display:flex;flex-direction:column}
.hd__bar{position:relative}
.hd__row{display:flex;align-items:center;gap:var(--sp-4);height:var(--hd-h)}
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--text);white-space:nowrap;min-height:40px;flex:none}
.brand:hover{color:var(--text)}
.brand__mark{width:28px;height:28px;border-radius:8px;background:var(--accent);position:relative;flex:none;box-shadow:inset 0 -2px 0 rgba(0,0,0,.18),0 1px 2px rgba(16,24,40,.2)}
.brand__mark::after{content:"";position:absolute;inset:7px;border-radius:50%;border:2.5px solid var(--accent-ink);border-right-color:transparent;transform:rotate(-35deg)}
.brand__name{font:500 1.0625rem/1 var(--font-sans);letter-spacing:-.02em}
.brand__name em{font-style:normal;font-weight:700}
.nav{display:flex;align-items:center;gap:2px;margin-left:var(--sp-4)}
.nav a{display:inline-flex;align-items:center;height:36px;padding:0 .75rem;border-radius:var(--r-sm);text-decoration:none;font-weight:500;font-size:var(--fs-15);color:var(--text-2);transition:background var(--dur),color var(--dur)}
.nav a:hover{background:var(--surface-2);color:var(--text)}
.nav a[aria-current="page"]{color:var(--text);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}
.hd__tools{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}
.ibtn{width:36px;height:36px;display:inline-grid;place-items:center;flex:none;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);color:var(--text-2);cursor:pointer;transition:border-color var(--dur),background var(--dur),color var(--dur);padding:0}
.ibtn:hover{border-color:var(--line-2);color:var(--text);background:var(--surface-2)}
.ibtn svg{width:18px;height:18px}
.ibtn__dark{display:none!important}
:root[data-theme="dark"] .ibtn__light{display:none!important}
:root[data-theme="dark"] .ibtn__dark{display:grid!important}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .ibtn__light{display:none!important}
  :root:not([data-theme="light"]) .ibtn__dark{display:grid!important}
}
.ibtn__light,.ibtn__dark{display:grid;place-items:center}
.burger{display:none}
.burger .ic-close{display:none}
.burger[aria-expanded="true"] .ic-open{display:none}
.burger[aria-expanded="true"] .ic-close{display:grid}
/* search */
.srch{position:relative;display:flex;align-items:center}
.srch input{width:220px;height:36px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:var(--r-md);padding:0 2.2rem 0 2.1rem;font:inherit;font-size:var(--fs-14);transition:border-color var(--dur),background var(--dur),box-shadow var(--dur),width var(--dur) var(--ease);-webkit-appearance:none;appearance:none}
.srch input::placeholder{color:var(--muted);opacity:1}
.srch input:hover{border-color:var(--line-2)}
.srch input:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:var(--ring)}
.srch input::-webkit-search-cancel-button{-webkit-appearance:none}
.srch>svg{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted);pointer-events:none}
.srch__k{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);pointer-events:none}
.srch input:focus ~ .srch__k,.srch input:not(:placeholder-shown) ~ .srch__k{display:none}
.nav .srch{display:none}
@media (max-width:1180px){ .srch input{width:170px} }
@media (max-width:1060px){ .hd__tools .srch input{width:150px;padding-right:.6rem} .hd__tools .srch__k{display:none} .nav{margin-left:var(--sp-2)} .nav a{padding:0 .6rem} }
@media (max-width:960px){ .hd__tools .srch{display:none} }
@media (max-width:960px){
  .burger{display:inline-grid}
  .nav{position:absolute;top:100%;left:0;right:0;margin:0;flex-direction:column;align-items:stretch;gap:2px;
    background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg);
    padding:var(--sp-3) var(--gut) var(--sp-5);display:none;max-height:calc(100vh - var(--hd-h));overflow:auto;overscroll-behavior:contain}
  .nav.is-open{display:flex}
  .nav a{height:44px;padding:0 .75rem;font-size:var(--fs-16)}
  .nav .srch{display:flex;order:-1;margin-bottom:var(--sp-2)}
  .nav .srch input{width:100%;height:44px;font-size:var(--fs-16);padding-right:.8rem}
  .nav .srch__k{display:none}
}

/* the tape: key figures, static (no marquee), scrolls sideways when it must */
.tape{border-top:1px solid var(--line);position:relative}
.tape__in{display:flex;align-items:center;gap:0;height:var(--tape-h);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;position:relative;
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.tape__in::-webkit-scrollbar{display:none}
.tape__i{flex:none;display:inline-flex;align-items:baseline;gap:.45rem;padding:0 .9rem;font-size:var(--fs-13);white-space:nowrap;text-decoration:none;line-height:var(--tape-h);position:relative}
.tape__i+.tape__i::before{content:"";position:absolute;left:0;top:50%;height:14px;margin-top:-7px;border-left:1px solid var(--line)}
.tape__i:first-child{padding-left:0}
a.tape__i:hover .tape__v{color:var(--accent)}
.tape__k{color:var(--muted);font-weight:500}
.tape__v{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text);transition:color var(--dur)}
.tape__i .d{font-size:var(--fs-12)}
.tape__meta{margin-left:auto;padding-left:1.2rem;padding-right:28px;color:var(--muted);font-size:var(--fs-12);display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;flex:none}
.tape__meta time{font-variant-numeric:tabular-nums}
.live{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--up);box-shadow:0 0 0 3px var(--up-soft);flex:none}
@media (max-width:767px){
  /* On phones the tape sits above the bar and scrolls away; only the bar sticks. */
  .hd{top:calc(-1 * (var(--tape-h) + 1px))}
  .tape{order:-1;border-top:0;border-bottom:1px solid var(--line)}
  :root{--hd-sticky:calc(var(--hd-h) + 1px)}
  .brand__name{font-size:1rem}
}

/* =====================================================================
   7. BUTTONS, CHIPS, BADGES, SEGMENTED CONTROLS
   ===================================================================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:40px;padding:0 1rem;border-radius:var(--r-md);border:1px solid var(--text);background:var(--text);color:var(--bg);font:600 var(--fs-15)/1 var(--font-sans);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background var(--dur),border-color var(--dur),color var(--dur),box-shadow var(--dur),transform var(--dur)}
.btn:hover{background:color-mix(in srgb,var(--text) 86%,var(--bg));color:var(--bg)}
.btn:active{transform:translateY(1px)}
.btn svg{width:16px;height:16px}
.btn--accent,.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn--accent:hover,.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink)}
.btn--ghost{background:var(--surface);color:var(--text);border-color:var(--line-2);box-shadow:var(--shadow-sm)}
.btn--ghost:hover{background:var(--surface-2);color:var(--text);border-color:var(--line-2)}
.btn--sm{height:32px;padding:0 .75rem;font-size:var(--fs-13);border-radius:var(--r-sm)}
.btn--lg{height:48px;padding:0 1.35rem;font-size:var(--fs-16)}
.btn--block{display:flex;width:100%}
.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);position:relative}
.chip{display:inline-flex;align-items:center;gap:.4rem;min-height:32px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);padding:.2rem .8rem;font-size:var(--fs-14);text-decoration:none;font-weight:500;color:var(--text-2);transition:border-color var(--dur),background var(--dur),color var(--dur)}
a.chip:hover,.chip--on,.chip[aria-current]{border-color:var(--line-2);background:var(--surface-2);color:var(--text)}
.chip--on,.chip[aria-current]{border-color:var(--text)}
.chip svg{width:15px;height:15px;color:var(--muted);flex:none}
a.chip:hover svg{color:var(--accent)}
.chip .num{color:var(--muted);font-size:var(--fs-12)}
.chip i{display:inline-block;flex:none}
.badge,.tag-pr{display:inline-flex;align-items:center;gap:.3rem;height:22px;padding:0 .5rem;border-radius:var(--r-xs);font:600 var(--fs-11)/1 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;background:var(--surface-2);color:var(--text-2);border:1px solid var(--line);white-space:nowrap}
.badge--accent{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.badge--up{background:var(--up-soft);color:var(--up);border-color:transparent}
.badge--down{background:var(--down-soft);color:var(--down);border-color:transparent}
.badge--warn,.tag-pr{background:var(--warn-soft);color:var(--warn);border-color:transparent}
/* segmented control / pill tabs; .chart__tabs is the same component */
.seg,.chart__tabs{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);max-width:100%;overflow-x:auto;scrollbar-width:none}
.seg::-webkit-scrollbar,.chart__tabs::-webkit-scrollbar{display:none}
.seg>button,.seg>a,.chart__tabs button{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:28px;min-width:36px;padding:0 .7rem;border-radius:7px;cursor:pointer;font:600 var(--fs-13)/1 var(--font-sans);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;transition:background var(--dur),color var(--dur),box-shadow var(--dur)}
.seg>button:hover,.seg>a:hover,.chart__tabs button:hover{color:var(--text)}
.seg>[aria-pressed="true"],.seg>[aria-selected="true"],.seg>[aria-current="page"],.seg>.is-on,.chart__tabs button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm),0 0 0 1px var(--line)}
.seg>button:focus-visible,.seg>a:focus-visible,.chart__tabs button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}

/* =====================================================================
   8. CARDS, KPI STRIPS, STAT TILES
   ===================================================================== */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm);min-width:0;position:relative}
@media (min-width:768px){ .card{padding:var(--sp-6)} }
.card--flat{box-shadow:none;background:var(--surface-2)}
.card--tight{padding:var(--sp-4)}
.card--pad-lg{padding:clamp(1.25rem,3vw,2rem)}
.card--link{text-decoration:none;display:block;color:inherit;transition:border-color var(--dur),box-shadow var(--dur),transform var(--dur) var(--ease)}
.card--link:hover{border-color:var(--line-2);box-shadow:var(--shadow);transform:translateY(-2px);color:inherit}
.card--link:hover h3{color:var(--accent)}
.card__h{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap}
.card__title{font-size:var(--fs-16);font-weight:600;letter-spacing:-.01em;margin:0}
.card__foot{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--line);font-size:var(--fs-13);color:var(--muted)}
/* KPI strip: tiles divided by hairlines that survive wrapping */
/* Each tile draws its own left/top hairline; the container clips the outer
   ones, so a short last row never shows an empty grey cell. */
.kpis,.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);margin:0}
.kpis>*,.stats>div{background:var(--surface);padding:var(--sp-4) var(--sp-4) .9rem;min-width:0;margin:0;border:0!important;box-shadow:-1px 0 0 var(--line),0 -1px 0 var(--line)}
.kpis--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpis--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.kpis--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:639px){ .kpis--4,.kpis--3{grid-template-columns:repeat(2,minmax(0,1fr))} }
.kpi__k,.stats dt{display:block;font-size:var(--fs-12);color:var(--muted);font-weight:500;margin:0 0 .35rem;letter-spacing:.01em}
.kpi__v,.stats dd{display:block;margin:0;font:650 clamp(1.0625rem,.95rem + .45vw,1.25rem)/1.2 var(--font-sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.kpi__v--lg{font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem)}
.kpi__d,.stats dd .d{display:block;font-size:var(--fs-13);margin-top:.3rem;letter-spacing:0;font-weight:600}
.kpi__m{display:block;font-size:var(--fs-12);color:var(--muted);margin-top:.3rem;white-space:normal}
.kpi{min-width:0}
.tile-stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm)}
/* indicator cards */
.inst{display:flex;flex-direction:column;gap:var(--sp-2);min-height:100%}
.inst__v{font:650 clamp(1.9rem,1.5rem + 1.4vw,2.5rem)/1.05 var(--font-sans);letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.inst__l{font-weight:600;color:var(--text)}
.inst__m{font-size:var(--fs-13);color:var(--muted);margin-top:auto;padding-top:var(--sp-2)}
/* tool cards */
.tool{display:flex;flex-direction:column;gap:var(--sp-2);height:100%}
.tool__ic{width:40px;height:40px;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin-bottom:var(--sp-2);flex:none}
.tool__ic svg{width:20px;height:20px}
.tool h3{font-size:var(--fs-16);transition:color var(--dur)}
.tool p{font-size:var(--fs-14);color:var(--muted);margin:0}
.tool__v{font:650 var(--fs-15) var(--font-sans);font-variant-numeric:tabular-nums;margin-top:auto;padding-top:var(--sp-3);color:var(--text)}

/* =====================================================================
   9. PAGE HEADS, HERO, CRUMBS, STAMP
   ===================================================================== */
.crumbs{font-size:var(--fs-13);color:var(--muted);padding-top:var(--sp-5)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .4rem}
.crumbs li{display:inline-flex;align-items:center;gap:.4rem;min-width:0}
.crumbs li+li::before{content:"/";color:var(--line-2)}
.crumbs a{text-decoration:none;display:inline-flex;align-items:center;min-height:24px}
.crumbs a:hover{color:var(--accent)}
.crumbs [aria-current]{color:var(--text-2);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(60vw,48ch)}
.phead,.hero{padding:var(--sp-5) 0 var(--sp-8);position:relative}
.phead .eyebrow,.hero .eyebrow{margin-bottom:var(--sp-3)}
.phead__eyebrow::before,.hero__eyebrow::before{content:"";width:6px;height:6px;border-radius:2px;background:var(--accent)}
.phead h1,.hero h1{max-width:24ch}
.phead__lede,.hero__lede{font-size:clamp(var(--fs-17),1rem + .35vw,var(--fs-20));line-height:1.55;color:var(--text-2);max-width:64ch;margin:var(--sp-4) 0 0}
.hero{padding:clamp(1.5rem,4vw,3.5rem) 0 clamp(1.75rem,4vw,3rem)}
.hero h1{font-size:var(--fs-display);line-height:1.02;letter-spacing:-.04em;font-weight:700}
.hero__meta{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);align-items:center;margin-top:var(--sp-5)}
.stamp{display:flex;flex-wrap:wrap;align-items:center;column-gap:.4rem;row-gap:.1rem;width:fit-content;max-width:100%;font:500 var(--fs-12)/1.5 var(--font-sans);color:var(--muted);margin:var(--sp-4) 0 0;padding:.3rem .7rem;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font-variant-numeric:tabular-nums}
.stamp i{width:7px;height:7px;border-radius:50%;background:var(--up);box-shadow:0 0 0 3px var(--up-soft);margin-right:.15rem;flex:none}
.stamp time{color:var(--text-2);font-weight:550}
.stamp a{color:var(--text-2)}

/* =====================================================================
   10. THE ANSWER BOX, NOTES, CALLOUTS
   ===================================================================== */
.answer{position:relative;background:var(--answer-bg);border:1px solid var(--answer-line);border-radius:var(--r-lg);padding:var(--sp-5) var(--sp-5) var(--sp-5) calc(var(--sp-5) + 4px);margin:var(--sp-6) 0;font-size:var(--fs-17);line-height:1.6;color:var(--text);overflow-wrap:anywhere}
.answer::before{content:"";position:absolute;left:0;top:var(--sp-4);bottom:var(--sp-4);width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.answer p:last-child{margin-bottom:0}
.answer__k{display:flex;align-items:center;gap:.4rem;font:650 var(--fs-12)/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--sp-3)}
.answer__k svg{width:14px;height:14px;flex:none}
.answer ul{margin:var(--sp-3) 0 0;padding-left:1.15rem}
.answer li{margin:.3rem 0;color:var(--text-2)}
.answer li::marker{color:var(--accent)}
.note{position:relative;font-size:var(--fs-14);line-height:1.6;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-4) var(--sp-4) var(--sp-4) 2.75rem;margin:var(--sp-8) 0}
.note::before{content:"i";position:absolute;left:var(--sp-4);top:calc(var(--sp-4) + 2px);width:18px;height:18px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font:700 11px/1 var(--font-sans);color:var(--muted)}
.note strong{color:var(--text-2)}
.note a{color:var(--text-2)}
.note a:hover{color:var(--accent)}
.callout{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:var(--sp-4) var(--sp-5);margin:var(--sp-6) 0;font-size:var(--fs-15)}
.callout__t{display:block;font-weight:600;margin-bottom:.3rem;color:var(--text)}
.callout>p:last-child{margin-bottom:0}
.callout--info{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}
.callout--warn,.pr-banner{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}
.callout--up{background:var(--up-soft);border-color:color-mix(in srgb,var(--up) 30%,transparent)}
.callout--down{background:var(--down-soft);border-color:color-mix(in srgb,var(--down) 30%,transparent)}
.pr-banner{border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);border-radius:var(--r);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-14);margin:var(--sp-4) 0;color:var(--text-2)}

/* =====================================================================
   11. FAQ
   ===================================================================== */
.faq{margin:var(--sp-10) 0}
.faq>h2{margin-bottom:var(--sp-4)}
.faq__list{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.faq details{border-bottom:1px solid var(--line)}
.faq details:last-child{border-bottom:0}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);min-height:52px;color:var(--text);transition:background var(--dur)}
.faq summary:hover{background:var(--row-hover)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:9px;height:9px;border-right:1.75px solid var(--muted);border-bottom:1.75px solid var(--muted);transform:rotate(45deg) translate(-2px,-2px);transition:transform var(--dur) var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
.faq summary:focus-visible{outline-offset:-2px}
.faq details>div{padding:0 var(--sp-5) var(--sp-5);color:var(--text-2);line-height:1.65;max-width:78ch}
.faq details>div p:last-child{margin-bottom:0}

/* =====================================================================
   12. TABLES — pro-terminal: hairlines, aligned numerals, no zebra
   ===================================================================== */
.tbl-wrap{position:relative;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
.tbl-wrap--scroll{max-height:min(75vh,760px);overflow:auto}
.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-14);font-variant-numeric:tabular-nums}
.tbl th,.tbl td{padding:.7rem .9rem;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;vertical-align:middle}
.tbl thead th{font:500 var(--fs-12)/1.2 var(--font-sans);letter-spacing:.01em;color:var(--muted);background:var(--surface);position:sticky;top:0;z-index:2;border-bottom-color:var(--line-2);padding-top:.8rem;padding-bottom:.7rem}
.tbl th:first-child,.tbl td:first-child{text-align:left;padding-left:var(--sp-5)}
.tbl th:last-child,.tbl td:last-child{padding-right:var(--sp-5)}
.tbl td.l,.tbl th.l{text-align:left}
.tbl tbody th{font-weight:500;color:var(--text-2)}
.tbl tbody tr:last-child>*{border-bottom:0}
.tbl tbody tr{transition:background var(--dur)}
.tbl tbody tr:hover{background:var(--row-hover)}
.tbl tfoot td{font-weight:600;border-top:1px solid var(--line-2);border-bottom:0}
.tbl .num{font-weight:500;color:var(--text)}
.tbl td.wrap,.tbl--wrap td{white-space:normal;min-width:12ch}
.tbl__cap{caption-side:top;text-align:left;padding:var(--sp-4) var(--sp-5) 0;font-size:var(--fs-13);color:var(--muted)}
.tbl button.sort{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:.25rem;min-height:24px;border-radius:4px;color:inherit}
.tbl button.sort:hover{color:var(--text)}
.tbl button.sort:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.tbl th[aria-sort] button{color:var(--text)}
.tbl th[aria-sort="descending"] button::after{content:"↓";color:var(--accent)} .tbl th[aria-sort="ascending"] button::after{content:"↑";color:var(--accent)}
/* coin table: rank + coin columns stay put while the figures scroll on phones */
.tbl--coins .c-rank{width:3rem;min-width:3rem;max-width:3rem;color:var(--muted);font:500 var(--fs-13) var(--font-sans);font-variant-numeric:tabular-nums}
.tbl--coins .c-coin{min-width:11rem}
.tbl--coins .c-spark{width:120px}
@media (max-width:767px){
  .tbl--coins .c-rank,.tbl--coins .c-coin{position:sticky;background:var(--surface);z-index:1}
  .tbl--coins thead .c-rank,.tbl--coins thead .c-coin{z-index:3}
  .tbl--coins .c-rank{left:0;width:2.5rem;min-width:2.5rem;max-width:2.5rem;padding-left:.85rem!important;padding-right:.25rem}
  .tbl--coins .c-coin{left:2.5rem;box-shadow:1px 0 0 var(--line);min-width:8.25rem;max-width:9.25rem;padding-left:.5rem;padding-right:.6rem}
  .tbl--coins .c-coin .coin{gap:.5rem}
  .tbl--coins .c-coin .coin__dot{width:22px;height:22px;font-size:.5rem}
  .tbl--coins .c-coin .coin__s{display:block;line-height:1.2}
  .tbl--coins .c-coin .coin__n{display:block;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
  .tbl--coins tbody tr:hover .c-rank,.tbl--coins tbody tr:hover .c-coin{background:var(--row-hover)}
  .tbl th:first-child,.tbl td:first-child{padding-left:var(--sp-4)}
}
.rank{color:var(--muted);font:500 var(--fs-13) var(--font-sans);width:2.6rem}
.coin{display:flex;align-items:center;gap:.65rem;text-decoration:none;min-width:0;position:relative;color:var(--text)}
.coin>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.coin:hover .coin__n{color:var(--accent)}
.coin__dot{width:26px;height:26px;border-radius:50%;flex:none;display:grid;place-items:center;font:700 .58rem/1 var(--font-sans);color:#fff;letter-spacing:-.02em;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),inset 0 -2px 0 rgba(0,0,0,.14)}
.coin__n{font-weight:600;transition:color var(--dur)}
.coin__s{color:var(--muted);font:500 var(--fs-12) var(--font-sans);letter-spacing:.02em}
.spark{width:96px;height:30px;display:inline-block;vertical-align:middle}
.spark__ln{fill:none;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.spark__ln--up{stroke:var(--up)} .spark__ln--down{stroke:var(--down)}
td .spark{margin-left:auto}
/* key/value list */
.kv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0;margin:0}
.kv dt,.kv dd{padding:.7rem 0;border-bottom:1px solid var(--line);margin:0}
.kv dt{color:var(--muted);font-size:var(--fs-14);padding-right:var(--sp-4)}
.kv dd{font-variant-numeric:tabular-nums;text-align:right;font-size:var(--fs-14);font-weight:550;color:var(--text);min-width:0;overflow-wrap:anywhere}
.kv dt:last-of-type,.kv dd:last-of-type{border-bottom:0}
/* movers list */
.mv{list-style:none;margin:0;padding:0}
.mv li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:.65rem 0;border-bottom:1px solid var(--line);position:relative;min-height:48px}
.mv li:last-child{border-bottom:0}
.mv li>span:last-child{display:inline-flex;align-items:center;gap:.6rem;flex:none}
.mv .num{font-size:var(--fs-14);color:var(--text-2)}
/* simple link list */
.list{list-style:none;margin:0;padding:0}
.list li{border-bottom:1px solid var(--line)}
.list li:last-child{border-bottom:0}
.list a{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:.7rem 0;text-decoration:none;min-height:44px}
.list a::after{content:"→";color:var(--muted);transition:transform var(--dur)}
.list a:hover::after{transform:translateX(3px);color:var(--accent)}
/* table of contents */
.toc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);margin:var(--sp-6) 0}
.toc ol{margin:var(--sp-2) 0 0;padding-left:1.2rem;font-size:var(--fs-15);columns:2;column-gap:2rem}
.toc li{margin:.3rem 0;break-inside:avoid}
.toc li::marker{color:var(--muted);font-variant-numeric:tabular-nums}
.toc a{text-decoration:none;color:var(--text-2)}
.toc a:hover{color:var(--accent)}
@media (max-width:639px){ .toc ol{columns:1} }

/* =====================================================================
   13. CHARTS (server-rendered SVG), TREEMAP, GAUGE, BARS
   ===================================================================== */
.chart{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4);margin:var(--sp-5) 0;position:relative;box-shadow:var(--shadow-sm);min-width:0}
@media (min-width:768px){ .chart{padding:var(--sp-5)} }
.chart__h{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3)}
.chart__tabs{margin-bottom:var(--sp-3)}
.chart svg{width:100%;height:auto;overflow:visible;touch-action:pan-y}
.chart .ax{fill:var(--chart-axis);font:500 11px var(--font-sans);font-variant-numeric:tabular-nums}
.chart .gl{stroke:var(--chart-grid);stroke-width:1;stroke-dasharray:2 4}
.chart .ln{fill:none;stroke:var(--chart-line);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart .ar{opacity:1}
.chart .ar:not([fill]){fill:var(--chart-line);opacity:.1}
.ar-s0{stop-color:var(--chart-line);stop-opacity:.2}
.ar-s1{stop-color:var(--chart-line);stop-opacity:0}
.chart .hover-l{stroke:var(--muted);stroke-dasharray:3 3}
.chart .hover-d{fill:var(--chart-line);stroke:var(--surface);stroke-width:2.5}
.tip{position:absolute;left:0;top:0;pointer-events:none;background:var(--text);color:var(--bg);font:550 var(--fs-12)/1.35 var(--font-sans);font-variant-numeric:tabular-nums;padding:.4rem .6rem;border-radius:var(--r-sm);white-space:nowrap;transform:translate(-50%,calc(-100% - 10px));opacity:0;transition:opacity .1s;box-shadow:var(--shadow-lg);z-index:5;white-space:pre}
.tip.on{opacity:1}
.chart__legend{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);font-size:var(--fs-13);color:var(--muted);margin-top:var(--sp-3)}
/* market map */
.map{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-3);box-shadow:var(--shadow-sm);min-width:0}
@media (min-width:768px){ .map{padding:var(--sp-4)} }
.map__h{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);margin:0 .15rem var(--sp-3)}
.map svg{width:100%;height:auto;border-radius:var(--r-sm);overflow:hidden}
.map a rect{transition:opacity var(--dur)}
.map a:hover rect{stroke:var(--text);stroke-width:2}
.map a:focus{outline:none}
.map a:focus-visible rect{stroke:var(--focus);stroke-width:3}
.map text{font-family:var(--font-sans);pointer-events:none;font-variant-numeric:tabular-nums}
.map__key{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-3) .15rem 0;font-size:var(--fs-12);color:var(--muted)}
.map__key span{flex:1;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--map-n3),var(--map-n1),var(--map-0),var(--map-p1),var(--map-p3))}
.tm-n3{fill:var(--map-n3)} .tm-n2{fill:var(--map-n2)} .tm-n1{fill:var(--map-n1)}
.tm-z{fill:var(--map-0)} .tm-p1{fill:var(--map-p1)} .tm-p2{fill:var(--map-p2)} .tm-p3{fill:var(--map-p3)}
.tm-t{fill:#fff} .tm-t--z,.tm-t--n1,.tm-t--p1{fill:var(--text)}
/* gauge */
.gauge{width:100%;max-width:180px;height:auto}
.gauge__seg{fill:none;stroke-width:14;stroke-linecap:round}
.gauge__seg--1{stroke:var(--g1)} .gauge__seg--2{stroke:var(--g2)} .gauge__seg--3{stroke:var(--g3)} .gauge__seg--4{stroke:var(--g4)} .gauge__seg--5{stroke:var(--g5)}
.gauge__needle{stroke:var(--text);stroke-width:3;stroke-linecap:round}
.gauge__hub{fill:var(--text);stroke:var(--surface);stroke-width:3}
/* progress / split bars */
.bar{height:8px;border-radius:var(--r-pill);background:var(--surface-3);position:relative;overflow:hidden}
.bar>i{position:absolute;inset:0 auto 0 0;background:var(--text);border-radius:inherit}
.bar--split{background:linear-gradient(90deg,var(--btc) 0,var(--btc) 25%,var(--surface-3) 25%,var(--surface-3) 75%,var(--alt) 75%);overflow:visible}
.bar--split>i{background:none;width:4px!important;left:var(--at);top:-3px;bottom:-3px;background:var(--text);border-radius:2px;box-shadow:0 0 0 2px var(--surface);transform:translateX(-50%)}

/* =====================================================================
   14. FORMS, CONVERTER, CALCULATOR RESULTS
   ===================================================================== */
.field{display:grid;gap:.35rem;min-width:0}
.field label{font-size:var(--fs-13);font-weight:600;color:var(--text-2)}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:var(--sp-4)}
.input,.cv input,.cv select,.field input,.field select,.field textarea{width:100%;height:46px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface);color:var(--text);font:550 var(--fs-16) var(--font-sans);font-variant-numeric:tabular-nums;padding:0 .85rem;transition:border-color var(--dur),box-shadow var(--dur);-webkit-appearance:none;appearance:none;min-width:0}
.field textarea{height:auto;min-height:110px;padding:.7rem .85rem;line-height:1.5}
.input:hover,.cv input:hover,.cv select:hover,.field input:hover,.field select:hover{border-color:color-mix(in srgb,var(--text) 30%,var(--line-2))}
.input:focus,.cv input:focus,.cv select:focus,.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}
.cv select,.field select{font-weight:600;padding-right:2.2rem;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%238A909C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .8rem center;background-size:12px}
.field input[type="date"]{padding-right:.6rem}
.cv{display:grid;gap:var(--sp-3)}
.cv__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,132px);gap:var(--sp-2);align-items:center}
.cv__swap{justify-self:center;width:36px;height:36px}
.cv__out{display:flex;align-items:center;min-height:46px;padding:0 .2rem;font:650 clamp(1.5rem,1.2rem + 1.2vw,2rem)/1.1 var(--font-sans);letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;color:var(--text);min-width:0}
.result{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--r-lg);padding:var(--sp-5);margin-top:var(--sp-4);min-height:96px}
.result__big{font:650 clamp(1.75rem,1.4rem + 1.4vw,2.4rem)/1.1 var(--font-sans);letter-spacing:-.035em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.result p{color:var(--text-2)}

/* =====================================================================
   15. COIN / DATA PAGE BASELINE (markets.css + calculators.css refine)
   ===================================================================== */
.cp{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--sp-8);align-items:start;padding:var(--sp-5) 0 var(--sp-12)}
@media (max-width:1023px){ .cp{grid-template-columns:minmax(0,1fr)} }
.cp__title{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.cp__title .coin__dot{width:44px;height:44px;font-size:.78rem}
.cp__title h1{font-size:clamp(1.75rem,1.3rem + 2vw,2.75rem)}
.cp__price{display:flex;align-items:baseline;gap:var(--sp-3) var(--sp-4);flex-wrap:wrap;margin:var(--sp-3) 0 0}
.cp__price .big,.big{font:650 var(--fs-figure)/1 var(--font-sans);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--text)}
.side{position:sticky;top:calc(var(--hd-sticky) + 16px);display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}
@media (max-width:1023px){ .side{position:static} }
.side h2{font:600 var(--fs-16)/1.3 var(--font-sans);letter-spacing:-.01em;margin-bottom:var(--sp-3)}

/* =====================================================================
   16. HOME HERO BASELINE (home.css refines)
   ===================================================================== */
.edition{padding:clamp(1.5rem,4vw,3rem) 0 clamp(1.5rem,3vw,2.5rem)}
.edition__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,3vw,3rem);align-items:start}
@media (max-width:1023px){ .edition__grid{grid-template-columns:minmax(0,1fr)} }
.edition__date{display:flex;gap:var(--sp-3);align-items:center;margin-bottom:var(--sp-4)}
.edition h1{font-size:var(--fs-display);line-height:1.02;letter-spacing:-.04em;font-weight:700}
.edition h1 .d{font-weight:700;font-size:.9em;letter-spacing:-.04em}
.edition h1 .d::before{font-size:.45em;vertical-align:.3em}
.edition__lede{font-size:clamp(var(--fs-17),1rem + .35vw,var(--fs-20));color:var(--text-2);margin:var(--sp-4) 0 var(--sp-6);max-width:58ch;line-height:1.55}

/* =====================================================================
   17. NEWS: cards, rows, thumbnails, covers
   ===================================================================== */
.meta{display:flex;flex-wrap:wrap;gap:.3rem .6rem;align-items:center;font-size:var(--fs-13);color:var(--muted);margin-top:.45rem}
.meta>*+*::before{content:"·";margin-right:.6rem;color:var(--faint)}
.meta .cat{color:var(--accent);font-weight:600;text-decoration:none;font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.06em;min-height:24px;display:inline-flex;align-items:center}
.meta .cat:hover{text-decoration:underline}
.meta time{font-variant-numeric:tabular-nums}
.lead{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(1.25rem,3vw,2.5rem);align-items:start}
@media (max-width:899px){ .lead{grid-template-columns:minmax(0,1fr)} }
.lead__img{aspect-ratio:16/9;border-radius:var(--r-lg);overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}
.lead__img img{width:100%;height:100%;object-fit:cover}
.lead h3{font:650 clamp(1.5rem,1.2rem + 1.4vw,2.125rem)/1.15 var(--font-display);letter-spacing:-.028em;margin:var(--sp-3) 0 var(--sp-3)}
.lead h3 a,.story h3 a,.tile h3 a,.arow h2 a{text-decoration:none}
.lead h3 a:hover,.story h3 a:hover,.tile h3 a:hover,.arow h2 a:hover{color:var(--accent)}
.story{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:var(--sp-4);padding:var(--sp-4) 0;border-bottom:1px solid var(--line);align-items:start}
.story:first-child{padding-top:0}
.story:last-child{border-bottom:0}
.story h3{font-size:var(--fs-16);line-height:1.35;font-weight:600}
.story__img{aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}
.story__img img{width:100%;height:100%;object-fit:cover}
.river{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2.5vw,2rem)}
@media (max-width:1023px){ .river{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:639px){ .river{grid-template-columns:minmax(0,1fr)} }
.tile{min-width:0}
.tile__img{aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:var(--surface-2);margin-bottom:var(--sp-3);border:1px solid var(--line)}
.tile__img img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.tile:hover .tile__img img{transform:scale(1.025)}
.tile h3{font-size:var(--fs-17);line-height:1.35;font-weight:600;letter-spacing:-.012em}
.noimg{display:grid;place-items:center;height:100%;font:600 1.5rem var(--font-sans);color:var(--muted);background:var(--surface-2)}
/* typographic cover (no photo): dot grid + a quiet area-chart silhouette */
.cover{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-2);padding:clamp(.75rem,2.2vw,1.25rem);color:var(--text);overflow:hidden;
  --cv:var(--accent);
  background:
    radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--text) 11%,transparent) 1px,transparent 0) 0 0/14px 14px,
    radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--cv) 16%,transparent),transparent 60%),
    var(--surface-2)}
.cover::after{content:"";position:absolute;left:0;right:0;bottom:0;height:58%;z-index:-1;
  background:linear-gradient(to top,color-mix(in srgb,var(--cv) 4%,transparent),color-mix(in srgb,var(--cv) 26%,transparent));
  clip-path:polygon(0 72%,10% 60%,21% 66%,32% 44%,43% 52%,55% 30%,66% 38%,78% 16%,89% 26%,100% 8%,100% 100%,0 100%)}
.cover::before{content:"";position:absolute;left:0;right:0;bottom:0;height:58%;z-index:-1;opacity:.9;
  background:var(--cv);
  clip-path:polygon(0 72%,10% 60%,21% 66%,32% 44%,43% 52%,55% 30%,66% 38%,78% 16%,89% 26%,100% 8%,100% 9.5%,89% 27.5%,78% 17.5%,66% 39.5%,55% 31.5%,43% 53.5%,32% 45.5%,21% 67.5%,10% 61.5%,0 73.5%)}
.cover--1{--cv:var(--up)}
.cover--1::after,.cover--1::before{clip-path:polygon(0 40%,12% 52%,24% 34%,36% 46%,48% 22%,60% 36%,72% 18%,84% 30%,100% 12%,100% 100%,0 100%)}
.cover--1::before{clip-path:polygon(0 40%,12% 52%,24% 34%,36% 46%,48% 22%,60% 36%,72% 18%,84% 30%,100% 12%,100% 13.5%,84% 31.5%,72% 19.5%,60% 37.5%,48% 23.5%,36% 47.5%,24% 35.5%,12% 53.5%,0 41.5%)}
.cover--2{--cv:var(--text-2)}
.cover--3{--cv:var(--warn)}
.cover--3::after{clip-path:polygon(0 20%,14% 34%,28% 26%,42% 48%,56% 40%,70% 62%,84% 54%,100% 70%,100% 100%,0 100%)}
.cover--3::before{clip-path:polygon(0 20%,14% 34%,28% 26%,42% 48%,56% 40%,70% 62%,84% 54%,100% 70%,100% 71.5%,84% 55.5%,70% 63.5%,56% 41.5%,42% 49.5%,28% 27.5%,14% 35.5%,0 21.5%)}
.cover__k{font:600 var(--fs-11)/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-variant-numeric:tabular-nums}
.cover__t{font:650 clamp(1.35rem,1rem + 1.6vw,2.25rem)/1.05 var(--font-display);letter-spacing:-.035em;max-width:14ch;color:var(--text)}
.tile .cover__t{font-size:var(--fs-20)}
.cover--sm{padding:.5rem;align-items:flex-start}
.cover--sm .cover__k{font-size:.5rem;letter-spacing:.06em}
.cover__i{font:700 1.75rem/1 var(--font-display);letter-spacing:-.04em;align-self:flex-end;color:var(--text-2)}
/* archive rows */
.alist{display:grid;gap:0}
.arow{display:grid;grid-template-columns:110px minmax(0,1fr) 168px;gap:var(--sp-5);padding:var(--sp-5) 0;border-bottom:1px solid var(--line);align-items:start}
.arow:last-child{border-bottom:0}
.arow time{font:500 var(--fs-13) var(--font-sans);font-variant-numeric:tabular-nums;color:var(--muted);padding-top:.2rem}
.arow h2{font:600 var(--fs-18)/1.35 var(--font-sans);letter-spacing:-.014em}
.arow p{margin:.4rem 0 0;color:var(--text-2);font-size:var(--fs-15)}
.arow__img{aspect-ratio:16/10;border-radius:var(--r-md);overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}
.arow__img img{width:100%;height:100%;object-fit:cover}
@media (max-width:767px){ .arow{grid-template-columns:minmax(0,1fr);gap:var(--sp-2)} .arow__img{display:none} }
/* pager */
.pager{display:flex;gap:var(--sp-1);flex-wrap:wrap;margin:var(--sp-8) 0}
.pager a,.pager span{min-width:40px;height:40px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:var(--r-md);text-decoration:none;font:550 var(--fs-14) var(--font-sans);font-variant-numeric:tabular-nums;padding:0 .7rem;background:var(--surface);color:var(--text-2);transition:border-color var(--dur),background var(--dur)}
.pager a:hover{border-color:var(--line-2);background:var(--surface-2);color:var(--text)}
.pager .current{background:var(--text);color:var(--bg);border-color:var(--text)}
.pager .dots{border-color:transparent;background:none}
/* tags */
.tags{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-6) 0}
.tags a{display:inline-flex;align-items:center;min-height:30px;font-size:var(--fs-13);border:1px solid var(--line);border-radius:var(--r-pill);padding:0 .75rem;text-decoration:none;color:var(--text-2);background:var(--surface)}
.tags a:hover{border-color:var(--line-2);color:var(--text)}

/* =====================================================================
   18. ARTICLE + PROSE
   ===================================================================== */
.art{max-width:var(--wrap-narrow);margin:0 auto;padding:var(--sp-4) 0 var(--sp-12);min-width:0}
.art__h h1{font-size:clamp(2rem,1.45rem + 2.4vw,3rem);letter-spacing:-.034em;line-height:1.1}
.art__dek{font-size:clamp(var(--fs-17),1rem + .4vw,var(--fs-20));color:var(--text-2);margin:var(--sp-4) 0 0;line-height:1.55}
.byline{display:flex;align-items:center;gap:.4rem .7rem;flex-wrap:wrap;padding:var(--sp-4) 0;margin-top:var(--sp-5);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:var(--fs-14);color:var(--text-2)}
.byline__who{font-weight:600;color:var(--text)}
.byline time{font-variant-numeric:tabular-nums;color:var(--muted)}
.art__fig{margin:var(--sp-6) 0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/9;background:var(--surface-2)}
.art__fig img{width:100%;height:100%;object-fit:cover}
.prose{font-size:var(--fs-17);line-height:1.75;color:var(--text-2);min-width:0}
.prose>*{max-width:70ch}
.prose p,.prose li{overflow-wrap:anywhere}
.prose>:first-child{margin-top:0}
.prose h2{font-size:clamp(1.375rem,1.2rem + .7vw,1.75rem);margin:2.5rem 0 .8rem;color:var(--text)}
.prose h3{font-size:var(--fs-20);margin:2rem 0 .6rem;color:var(--text)}
.prose h4{margin:1.6rem 0 .5rem}
.prose strong{color:var(--text)}
.prose ul,.prose ol{padding-left:1.35rem;margin:0 0 1.1em}
.prose li{margin:.4rem 0;padding-left:.15rem}
.prose li::marker{color:var(--muted)}
.prose ol li::marker{font-variant-numeric:tabular-nums;font-weight:600}
.prose blockquote{margin:var(--sp-8) 0;padding:.2rem 0 .2rem var(--sp-5);border-left:3px solid var(--accent);font:500 var(--fs-20)/1.5 var(--font-sans);letter-spacing:-.01em;color:var(--text)}
.prose table{width:100%;border-collapse:collapse;font-size:var(--fs-15);display:block;overflow-x:auto;max-width:100%;margin:var(--sp-6) 0;border:1px solid var(--line);border-radius:var(--r);font-variant-numeric:tabular-nums}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:.6rem .8rem;text-align:left;vertical-align:top}
.prose th{background:var(--surface-2);font-size:var(--fs-13);font-weight:600;color:var(--text)}
.prose tr:last-child td{border-bottom:0}
.prose img{border-radius:var(--r);height:auto}
.prose a{color:var(--accent);text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.prose a:hover{text-decoration-color:currentColor}
.prose figure{margin:var(--sp-6) 0}
.prose figcaption{font-size:var(--fs-13);color:var(--muted);margin-top:var(--sp-2)}
.prose code{background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:.08em .35em;font-size:.86em;color:var(--text)}
.prose pre{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-4);overflow-x:auto;font-size:var(--fs-14);line-height:1.6}
.prose pre code{background:none;border:0;padding:0}
.prose hr{margin:var(--sp-10) 0}

/* =====================================================================
   19. FOOTER
   ===================================================================== */
.ft{border-top:1px solid var(--line);background:var(--surface);margin-top:var(--sp-12);padding:var(--sp-12) 0 var(--sp-8);font-size:var(--fs-14)}
.ft__grid{display:grid;grid-template-columns:1.5fr repeat(4,minmax(0,1fr));gap:var(--sp-8) var(--sp-6)}
@media (max-width:1023px){ .ft__grid{grid-template-columns:repeat(2,minmax(0,1fr))} .ft__about{grid-column:1/-1} }
.ft__about p{margin:var(--sp-4) 0 0;max-width:38ch;color:var(--muted)}
.ft__badges{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-4)}
.ft h4{font:600 var(--fs-12)/1 var(--font-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:var(--sp-3)}
.ft ul{list-style:none;margin:0;padding:0}
.ft li{margin:0}
.ft li a{display:inline-flex;align-items:center;min-height:30px;text-decoration:none;color:var(--text-2)}
.ft a:hover{color:var(--accent)}
.ft__legal{border-top:1px solid var(--line);margin-top:var(--sp-10);padding-top:var(--sp-6);font-size:var(--fs-13);color:var(--muted);display:grid;gap:var(--sp-2);line-height:1.6}
.ft__legal p{margin:0}
.ft__legal strong{color:var(--text-2)}
.ft__legal a{color:var(--text-2)}

/* =====================================================================
   20. MOTION + PRINT
   ===================================================================== */
@media (prefers-reduced-motion:no-preference){
  .live,.stamp i{animation:tl-pulse 2.4s var(--ease) infinite}
  @keyframes tl-pulse{0%,100%{box-shadow:0 0 0 3px var(--up-soft)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--up-soft) 40%,transparent)}}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
@media print{
  :root{--bg:#fff;--surface:#fff;--surface-2:#f4f5f7;--text:#000;--text-2:#222;--muted:#555;--line:#ccc;--line-2:#bbb;color-scheme:light}
  .hd,.tape,.ft__grid,.side,.chart__tabs,.seg,.burger,.srch,.skip,.sec__more{display:none!important}
  body{background:#fff;color:#000;font-size:11pt}
  .card,.chart,.tbl-wrap,.map,.kpis,.stats,.faq__list,.answer{box-shadow:none!important;break-inside:avoid}
  .tbl-wrap{overflow:visible}
  .prose a::after{content:" (" attr(href) ")";font-size:.8em;color:#555;word-break:break-all}
  .ft{margin-top:1rem;padding:1rem 0;border-top:1px solid #ccc}
}

/* scroll hints on wide tables (app.js sets data-scroll="l r") */
.tbl-wrap[data-scroll~="r"]{box-shadow:var(--shadow-sm),inset -16px 0 14px -14px color-mix(in srgb,var(--text) 28%,transparent)}
.tbl-wrap[data-scroll~="l"]{box-shadow:var(--shadow-sm),inset 16px 0 14px -14px color-mix(in srgb,var(--text) 28%,transparent)}
.tbl-wrap[data-scroll="l r"]{box-shadow:var(--shadow-sm),inset -16px 0 14px -14px color-mix(in srgb,var(--text) 28%,transparent),inset 16px 0 14px -14px color-mix(in srgb,var(--text) 28%,transparent)}

/* Shared fixes flagged by the page agents (2026-11-15). */
.chart [data-panel]{position:relative}
.cover,.cover *,a .cover,a:hover .cover{text-decoration:none}
