
/* ============================================================
   BITCOINWORLD DESIGN TOKENS
   Source of truth. Every value below maps to a Figma variable.
   ============================================================ */
:root{
  /* --- Colour: surfaces --- */
  --bw-bg:#0D1B2A;
  --bw-bg-deep:#0A1521;
  --bw-card:#102034;
  --bw-card-2:#152A42;
  --bw-line:#1E3450;
  --bw-line-soft:#17293F;

  /* --- Colour: brand + accent --- */
  --bw-orange:#F7931A;
  --bw-orange-dim:#C8760F;
  --bw-orange-wash:rgba(247,147,26,.10);
  --bw-blue:#1E88E5;
  --bw-blue-wash:rgba(30,136,229,.12);
  --bw-green:#2ECC71;
  --bw-red:#E74C3C;

  /* --- Colour: text --- */
  --bw-white:#FFFFFF;
  --bw-light:#B4C3DC;
  --bw-mid:#8FA1C0;   /* 6.2:1 on bg */
  --bw-dim:#8497B8;   /* 6.0:1 on bg, 4.9:1 on card-2 */
  --bw-field:#4A6285; /* 3.1:1 input borders (WCAG 1.4.11) */

  /* --- Colour: ink (text uses of accents; darkened in light theme) --- */
  --bw-orange-ink:#F7931A;
  --bw-blue-ink:#6FB6F5;
  --bw-green-ink:#2ECC71;
  --bw-red-ink:#FF8877;
  --bw-prose:#C9D6EA;
  --bw-code:#9FB4D0;
  --bw-anno:#9FCBF5;
  --bw-on-orange:#0B1420;
  --bw-nav-bg:rgba(10,21,33,.94);
  --bw-hover:rgba(255,255,255,.02);
  --bw-hatch:rgba(255,255,255,.012);
  --bw-mark-ring:rgba(255,255,255,.28); /* hairline around the round icon mark */

  /* --- Type --- */
  --font-display:'Montserrat','Helvetica Neue',Arial,sans-serif;
  --font-read:'Source Serif 4',Georgia,'Times New Roman',serif;
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --fs-2xs:.6875rem;  /* 11 */
  --fs-xs:.75rem;     /* 12 */
  --fs-sm:.8125rem;   /* 13 */
  --fs-base:.9375rem; /* 15 */
  --fs-md:1rem;       /* 16 */
  --fs-lg:1.125rem;   /* 18 */
  --fs-xl:1.375rem;   /* 22 */
  --fs-2xl:1.75rem;   /* 28 */
  --fs-3xl:2.25rem;   /* 36 */
  --fs-4xl:2.875rem;  /* 46 */
  --fs-5xl:3.625rem;  /* 58 */

  /* --- Space (4pt base) --- */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px;
  --s-6:24px; --s-8:32px; --s-10:40px; --s-12:48px; --s-16:64px; --s-20:80px;

  /* --- Radius --- */
  --r-xs:3px; --r-sm:6px; --r-md:10px; --r-lg:16px; --r-pill:999px;

  /* --- Layout --- */
  --wrap:1280px;
  --wrap-read:44rem;
  --col:12;              /* 12-col grid: 74px columns at 1240px content */
  --rail:392px;          /* 4 of 12 — every sidebar, every page */
  --gutter:var(--s-8);   /* 32px — the one gutter, used by every grid */
  --band:var(--s-16);    /* vertical rhythm between page sections */

  --shadow-lift:0 1px 0 rgba(255,255,255,.03), 0 12px 32px -18px rgba(0,0,0,.9);
}
:root:not([data-theme="light"]){color-scheme:dark}

/* ============================================================
   LIGHT THEME
   Only tokens are overridden — no component rule is duplicated.
   Brand fills (#F7931A buttons, rules, dots) stay identical in
   both themes; only the *text* uses of accents darken, because
   #F7931A on white is 2.2:1 and fails AA.
   ============================================================ */
[data-theme="light"]{
  color-scheme:light;

  --bw-bg:#FFFFFF;
  --bw-bg-deep:#F3F6FA;
  --bw-card:#F8FAFD;
  --bw-card-2:#EBF1F8;
  --bw-line:#DBE3ED;
  --bw-line-soft:#E8EDF4;

  --bw-orange-wash:rgba(247,147,26,.13);
  --bw-blue-wash:rgba(30,136,229,.10);

  --bw-white:#0C1A2B;   /* text-strong */
  --bw-light:#2E4058;   /* body */
  --bw-mid:#4F6382;     /* secondary  — 6.2:1 */
  --bw-dim:#56698A;     /* dim        — 5.6:1 white, 4.9:1 card-2 */
  --bw-field:#8A9AB0;   /* 3.0:1 input borders */

  --bw-orange-ink:#985600;  /* 5.7:1 white, 5.2:1 on chip */
  --bw-blue-ink:#0F5FA8;    /* 6.0:1 */
  --bw-green-ink:#0E7A43;   /* 4.8:1 */
  --bw-red-ink:#C0392B;     /* 5.0:1 */
  --bw-prose:#26374D;
  --bw-code:#3E5570;
  --bw-anno:#1B5B96;
  --bw-nav-bg:rgba(255,255,255,.93);
  --bw-hover:rgba(13,27,42,.035);
  --bw-hatch:rgba(13,27,42,.022);
  --bw-mark-ring:rgba(13,27,42,.16);

  --shadow-lift:0 1px 2px rgba(13,27,42,.06), 0 14px 34px -18px rgba(13,27,42,.32);

  /* fixed-colour accents re-pinned for light backgrounds (all >=4.5:1) */
  --bw-red-ink:#B33427;
}

/* Theme toggle */
.themetoggle{
  display:inline-flex;align-items:center;gap:6px;flex:none;
  border:1px solid var(--bw-line);border-radius:var(--r-pill);
  padding:5px;background:var(--bw-card);
}
.themetoggle button{
  width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  color:var(--bw-dim);font-size:13px;line-height:1;
}
.themetoggle button[aria-pressed="true"]{background:var(--bw-orange);color:var(--bw-on-orange)}
.themetoggle button:hover{color:var(--bw-white)}
.themetoggle button[aria-pressed="true"]:hover{color:var(--bw-on-orange)}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bw-bg);
  color:var(--bw-light);
  font-family:var(--font-display);
  font-size:var(--fs-base);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4,h5{margin:0;font-weight:600;color:var(--bw-white);line-height:1.15;letter-spacing:-.015em}
p{margin:0 0 1em}
hr{border:0;border-top:1px solid var(--bw-line);margin:var(--s-8) 0}

:focus-visible{outline:2px solid var(--bw-orange);outline-offset:3px;border-radius:var(--r-xs)}
p a,.anno a,.dek a,.standfirst a,.prose a,.disclosure a,li.rail-item a{text-decoration:underline;text-underline-offset:.16em;text-decoration-thickness:1px}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--s-5)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;background:var(--bw-orange);color:#0D1B2A;padding:10px 16px;font-weight:600;z-index:999}
.skip:focus{left:8px;top:8px}

/* ---------- Utility ---------- */
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.muted{color:var(--bw-mid)}
.dim{color:var(--bw-dim)}
.up{color:var(--bw-green-ink)} .down{color:var(--bw-red-ink)}
.stack>*+*{margin-top:var(--s-4)}
.band{margin-top:var(--band)}
.band--tight{margin-top:var(--s-10)}

/* ---------- Category chip ---------- */
.chip{
  display:inline-flex;align-items:center;gap:6px;
  font-size:var(--fs-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  padding:4px 9px;border-radius:var(--r-xs);
  background:var(--bw-orange-wash);color:var(--bw-orange-ink);
  border:1px solid rgba(247,147,26,.28);
}
.chip--blue{background:var(--bw-blue-wash);color:var(--bw-blue-ink);border-color:rgba(30,136,229,.3)}
.chip--paid{background:rgba(120,140,175,.12);color:var(--bw-mid);border-color:rgba(120,140,175,.3)}
.chip--live{background:rgba(231,76,60,.14);color:#FF7A6B;border-color:rgba(231,76,60,.35)}
[data-theme="light"] .chip--live{color:#B8321F}
.chip--live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bw-red)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 18px;border-radius:var(--r-sm);
  font-size:var(--fs-sm);font-weight:600;
  background:var(--bw-orange);color:#0B1420;
  transition:background .15s ease;
}
.btn:hover{background:#FFA733}
.btn--ghost{background:transparent;color:var(--bw-white);border:1px solid var(--bw-line)}
.btn--ghost:hover{background:var(--bw-card-2);border-color:var(--bw-dim)}
.btn--sm{padding:7px 13px;font-size:var(--fs-xs)}
.pager{display:flex;gap:var(--s-2);flex-wrap:wrap;align-items:center;justify-content:center}
.pgbtn.is-on{background:var(--bw-orange);border-color:var(--bw-orange-ink);color:var(--bw-on-orange)}
.pgbtn.is-on:hover{background:#FFA733;color:var(--bw-on-orange)}
.pgbtn[disabled]{opacity:.4;cursor:default}

/* ---------- Section heading (orange rule system) ---------- */
.sec-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-4);
  border-bottom:2px solid var(--bw-line);
  padding-bottom:var(--s-3);margin-bottom:var(--s-6);position:relative;
}
.sec-head::after{content:"";position:absolute;left:0;bottom:-2px;width:72px;height:2px;background:var(--bw-orange)}
.sec-head h2{font-size:var(--fs-xl);font-weight:600}
.sec-head .more{font-size:var(--fs-xs);color:var(--bw-mid);font-weight:500}
.sec-head .more:hover{color:var(--bw-orange-ink)}

/* ============================================================
   HEADER
   ============================================================ */
.util{position:sticky;top:0;z-index:62;background:var(--bw-bg-deep);border-bottom:1px solid var(--bw-line-soft);font-size:var(--fs-xs)}
.util .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);height:34px;overflow:hidden}
.util-date{color:var(--bw-dim);white-space:nowrap}
.ticker{display:flex;overflow:hidden;flex:1;min-width:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent)}
.ticker-track{display:flex;gap:var(--s-5);white-space:nowrap;will-change:transform;animation:ticker-scroll 28s linear infinite;font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:0}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes ticker-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker-track{animation:none}.ticker{overflow-x:auto;scrollbar-width:none}}
.ticker::-webkit-scrollbar{display:none}
.tick{display:flex;align-items:center;gap:6px;white-space:nowrap}
.tick b{color:var(--bw-light);font-weight:500}

.masthead{position:sticky;top:35px;z-index:61;background:var(--bw-bg);border-bottom:1px solid var(--bw-line-soft)}
.masthead .wrap{display:flex;align-items:center;gap:var(--s-6);padding-block:var(--s-4)}
.logo img{height:44px;width:auto}
.masthead .spacer{flex:1}
.lang{position:relative;flex:none}
.lang-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px 0 8px;border:1px solid var(--bw-line);border-radius:var(--r-pill);background:var(--bw-card);color:var(--bw-white);font-family:inherit;font-size:var(--fs-xs);font-weight:600;cursor:pointer;transition:border-color .16s}
.lang-btn:hover,.lang-btn[aria-expanded="true"]{border-color:var(--bw-orange)}
.lang-globe{font-size:15px;line-height:1}
.lang-caret{font-size:10px;color:var(--bw-mid)}
.lang-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:170px;margin:0;padding:6px;list-style:none;background:var(--bw-bg);border:1px solid var(--bw-line);border-radius:var(--r-md);box-shadow:var(--shadow-lift);z-index:80}
.lang-menu li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--bw-light);cursor:pointer}
.lang-menu li:hover{background:var(--bw-card);color:var(--bw-white)}
.lang-menu li[aria-selected="true"]{color:var(--bw-orange-ink);font-weight:600}
.lang-code{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--bw-dim);width:22px}
.lang-note{background:var(--bw-orange-wash);border-bottom:1px solid var(--bw-line);font-size:var(--fs-xs);color:var(--bw-light);text-align:center;padding:8px var(--s-4)}
.lang-note[hidden]{display:none}
.gnews-badge{display:inline-flex;align-items:center;gap:8px;padding:5px 11px 5px 6px;border:1px solid var(--bw-line);border-radius:var(--r-pill);background:var(--bw-card);color:var(--bw-white);flex:none;transition:border-color .16s}
.gnews-badge:hover{border-color:var(--bw-orange);color:var(--bw-white)}
.gnews-g{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fff;color:#4285F4;font-weight:700;font-size:14px;font-family:Arial,sans-serif;flex:none}
.gnews-txt{display:flex;flex-direction:column;line-height:1.1}
.gnews-txt b{font-size:var(--fs-2xs);font-weight:600;letter-spacing:.02em}
.gnews-txt small{font-size:10px;color:var(--bw-mid)}
.searchbox{display:flex;align-items:center;gap:8px;background:var(--bw-card);border:1px solid var(--bw-line);border-radius:var(--r-sm);padding:8px 12px;min-width:220px}
.searchbox input{background:none;border:0;color:var(--bw-white);font:inherit;font-size:var(--fs-sm);width:100%;outline:none}
.searchbox input::placeholder{color:var(--bw-dim)}

/* Primary nav */
.nav{position:sticky;top:112px;z-index:60;background:var(--bw-nav-bg);backdrop-filter:blur(10px);border-bottom:1px solid var(--bw-line)}
.nav .wrap{display:flex;align-items:center;gap:var(--s-1)}
.nav a{
  padding:13px 13px;font-size:var(--fs-sm);font-weight:500;color:var(--bw-light);
  border-bottom:2px solid transparent;white-space:nowrap;
}
.nav a:hover{color:var(--bw-white)}
.nav a[aria-current="page"]{color:var(--bw-orange-ink);border-bottom-color:var(--bw-orange-ink)}
.nav .navscroll{display:flex;overflow-x:auto;scrollbar-width:none;flex:1}
.ask-toggle{
  display:inline-flex;align-items:center;gap:6px;flex:none;margin-left:auto;
  height:34px;padding:0 14px;border-radius:var(--r-pill);
  background:var(--bw-orange);color:var(--bw-on-orange);border:0;
  font-family:inherit;font-size:var(--fs-xs);font-weight:600;cursor:pointer;
  transition:background .16s;
}
.ask-toggle:hover{background:#FFA733}
.search-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;flex:none;background:none;border:0;color:var(--bw-white);font-size:20px;cursor:pointer;border-radius:var(--r-sm)}
.search-toggle:hover{background:var(--bw-card)}
/* Make the Ask AI pill unmistakable on desktop */
.ask-toggle{height:36px;padding:0 16px;font-size:var(--fs-sm);box-shadow:0 2px 10px -4px rgba(247,147,26,.6)}
.ask-toggle .spark{font-size:14px}
.ask-toggle[aria-expanded="true"]{background:var(--bw-card);color:var(--bw-white);border:1px solid var(--bw-line)}
.nav .navscroll::-webkit-scrollbar{display:none}
.nav-mini-logo{height:24px;margin-right:10px;display:none}

/* Breaking strip */
.breaking{background:var(--bw-card);border-bottom:1px solid var(--bw-line)}
.breaking .wrap{display:flex;align-items:center;gap:var(--s-4);height:42px;overflow:hidden}
.breaking .lbl{flex:none}
.breaking .roll{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}
.roll-track{display:flex;gap:var(--s-8);font-size:var(--fs-sm);white-space:nowrap;will-change:transform;animation:ticker-scroll 25s linear infinite}
.breaking .roll:hover .roll-track{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.roll-track{animation:none}.breaking .roll{overflow-x:auto;scrollbar-width:none}}
.breaking .roll::-webkit-scrollbar{display:none}
.breaking .roll a:hover{color:var(--bw-orange-ink)}

/* ============================================================
   HOME — lead block
   ============================================================ */
main{display:block;padding-bottom:var(--s-20)}
.page{display:block}

.lead-grid{
  display:grid;gap:var(--gutter);
  grid-template-columns:minmax(0,1fr) var(--rail);
  padding-block:var(--s-10);
}
.lead-main{min-width:0}
.lead-fig{position:relative;border-radius:var(--r-md);overflow:hidden;aspect-ratio:16/9;background:var(--bw-card-2)}
.lead-fig .ph{width:100%;height:100%}
.lead-main h1{font-size:var(--fs-4xl);margin:var(--s-5) 0 var(--s-3);letter-spacing:-.03em}
.lead-main .standfirst{font-family:var(--font-read);font-size:var(--fs-lg);color:var(--bw-light);line-height:1.55;max-width:36em}

/* Key takeaways — a real BitcoinWorld content pattern, promoted to a component */
.takeaways{
  border-left:3px solid var(--bw-orange);
  background:linear-gradient(90deg,var(--bw-orange-wash),transparent 70%);
  padding:var(--s-4) var(--s-5);border-radius:0 var(--r-sm) var(--r-sm) 0;margin:var(--s-5) 0;
}
.takeaways h2{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--bw-orange-ink);margin-bottom:var(--s-2)}
.takeaways ul{margin:0;padding-left:1.1em;font-size:var(--fs-base);color:var(--bw-light)}
.takeaways li{margin-bottom:6px}
.takeaways li::marker{color:var(--bw-dim)}

.byline{display:flex;align-items:center;gap:var(--s-3);font-size:var(--fs-xs);color:var(--bw-mid);flex-wrap:wrap}
.byline .av{width:26px;height:26px;border-radius:50%;background:linear-gradient(140deg,var(--bw-orange),var(--bw-orange-dim));flex:none;display:grid;place-items:center;color:#0B1420;font-weight:700;font-size:10px}
.byline a{color:var(--bw-light);font-weight:500}
.byline a:hover{color:var(--bw-orange-ink)}
.byline .sep{color:var(--bw-dim)}

/* Latest — the timestamp spine */
.spine{border-left:1px solid var(--bw-line);padding-left:var(--s-5);min-width:0}
.spine-item{position:relative;padding-bottom:var(--s-5);margin-bottom:var(--s-5);border-bottom:1px solid var(--bw-line-soft)}
.spine-item:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.spine-item::before{
  content:"";position:absolute;left:calc(-1 * var(--s-5) - 4px);top:7px;
  width:7px;height:7px;border-radius:50%;background:var(--bw-line);border:1px solid var(--bw-bg);
}
.spine-item.is-new::before{background:var(--bw-orange);box-shadow:0 0 0 3px rgba(247,147,26,.18)}
.spine-time{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--bw-dim);letter-spacing:.02em}
.spine-item h3{font-size:var(--fs-base);font-weight:500;line-height:1.35;margin-top:3px}
.spine-item h3:hover{color:var(--bw-orange-ink)}

/* ---------- Story cards ---------- */
.grid{display:grid;gap:var(--gutter)}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}

.card{min-width:0;display:flex;flex-direction:column;gap:var(--s-3)}
.card .thumb{border-radius:var(--r-sm);overflow:hidden;aspect-ratio:16/10;background:var(--bw-card-2);position:relative}
.card h3{font-size:var(--fs-md);font-weight:500;line-height:1.32}
.card:hover h3{color:var(--bw-orange-ink)}
.card .meta{font-size:var(--fs-2xs);color:var(--bw-dim);font-family:var(--font-mono)}
.card .dek{font-size:var(--fs-sm);color:var(--bw-mid);line-height:1.5}
p.addr span{display:block !important}

.card--row{flex-direction:row;gap:var(--s-4);align-items:flex-start}
.card--row .thumb{width:104px;flex:none;aspect-ratio:1}
.card--row h3{font-size:var(--fs-sm);font-weight:500}

/* ============================================================
   NEWSFLASH — short-form breaking feed on a timeline
   ============================================================ */
.flash-panel{
  border:1px solid var(--bw-line);border-radius:var(--r-lg);
  background:
    radial-gradient(90% 120% at 100% 0%, rgba(247,147,26,.07), transparent 55%),
    var(--bw-bg-deep);
  padding:var(--s-6) var(--s-6) var(--s-3);
}
/* Full-bleed band: the inset panel pushed its columns 24px out of step with
   the lead grid above it. A band keeps the tint and aligns to the page grid. */
.flash-band{
  border-block:1px solid var(--bw-line);
  background:
    radial-gradient(70% 160% at 100% 0%, rgba(247,147,26,.07), transparent 60%),
    var(--bw-bg-deep);
  padding-block:var(--s-8) var(--s-5);
}
.flash-head{display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap;margin-bottom:var(--s-5)}
.flash-head h2{font-size:var(--fs-xl);display:flex;align-items:center;gap:10px}
.flash-live{
  width:9px;height:9px;border-radius:50%;background:var(--bw-red);flex:none;
  animation:flashpulse 2.4s ease-in-out infinite;
}
@keyframes flashpulse{
  0%,100%{box-shadow:0 0 0 0 rgba(231,76,60,.55)}
  70%{box-shadow:0 0 0 7px rgba(231,76,60,0)}
}
.flash-sub{font-size:var(--fs-xs);color:var(--bw-dim);font-family:var(--font-mono)}
.flash-filters{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.flash-filters button{
  font-size:var(--fs-2xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  padding:5px 11px;border-radius:var(--r-pill);
  border:1px solid var(--bw-line);color:var(--bw-mid);background:transparent;
}
.flash-filters button:hover{color:var(--bw-white);border-color:var(--bw-dim)}
.flash-filters button[aria-pressed="true"]{background:var(--bw-orange);border-color:var(--bw-orange-ink);color:#0B1420}

.flash-grid{display:grid;grid-template-columns:minmax(0,1fr) var(--rail);gap:var(--gutter)}

.flash-feed{
  position:relative;max-height:620px;overflow-y:auto;padding-right:var(--s-4);
  scrollbar-width:thin;scrollbar-color:var(--bw-line) transparent;
}
.flash-feed::-webkit-scrollbar{width:6px}
.flash-feed::-webkit-scrollbar-thumb{background:var(--bw-line);border-radius:99px}
.flash-feed::-webkit-scrollbar-track{background:transparent}
.flash-fade{
  position:absolute;left:0;right:0;bottom:0;height:64px;pointer-events:none;
  background:linear-gradient(transparent,var(--bw-bg-deep));
}
.flash-scroll-wrap{position:relative}

.flash-day{
  position:sticky;top:0;z-index:2;background:var(--bw-bg-deep);
  font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;
  color:var(--bw-dim);padding:var(--s-3) 0 var(--s-2);
  border-bottom:1px solid var(--bw-line-soft);margin-bottom:var(--s-4);
}

.flash-item{
  display:grid;grid-template-columns:76px 1fr;gap:var(--s-4);
  padding-bottom:var(--s-5);position:relative;
}
.flash-item[hidden],.flash-day[hidden]{display:none !important}
.flash-time{
  font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--bw-mid);
  text-align:right;padding-top:1px;font-variant-numeric:tabular-nums;
}
.flash-body{padding-left:var(--s-5);position:relative}
.flash-body::before{ /* node */
  content:"";position:absolute;left:-4px;top:6px;width:9px;height:9px;border-radius:50%;
  background:var(--bw-line);border:2px solid var(--bw-bg-deep);box-sizing:content-box;
}
/* Timeline rail. Drawn on .flash-body, the same box as the node, so the
   line and the dots stay in register at every breakpoint instead of needing
   a hand-tuned left offset per media query. */
.flash-body::after{
  content:"";position:absolute;left:2px;top:20px;bottom:-26px;
  width:1px;background:var(--bw-line);
}
.flash-item:last-child .flash-body::after,
.flash-item:has(+ .flash-day) .flash-body::after,
.flash-item:has(+ .adslot) .flash-body::after{display:none}
.flash-item[data-kind="market"]     .flash-body::before{background:var(--bw-orange)}
.flash-item[data-kind="regulation"] .flash-body::before{background:var(--bw-blue)}
.flash-item[data-kind="security"]   .flash-body::before{background:var(--bw-red)}
.flash-item[data-kind="listing"]    .flash-body::before{background:var(--bw-green)}
.flash-item.is-fresh .flash-body::before{box-shadow:0 0 0 4px rgba(247,147,26,.16)}

.flash-body h3{font-size:var(--fs-base);font-weight:600;line-height:1.35;margin-bottom:4px}
.flash-body h3 a:hover{color:var(--bw-orange-ink)}
.flash-body p{font-size:var(--fs-sm);color:var(--bw-mid);line-height:1.55;margin:0 0 8px;max-width:56ch}
.flash-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-2xs)}
.flash-kind{
  letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--bw-dim);
}
.flash-item[data-kind="market"]     .flash-kind{color:var(--bw-orange-ink)}
.flash-item[data-kind="regulation"] .flash-kind{color:var(--bw-blue-ink)}
.flash-item[data-kind="security"]   .flash-kind{color:var(--bw-red-ink)}
.flash-item[data-kind="listing"]    .flash-kind{color:var(--bw-green-ink)}
.flash-src{color:var(--bw-dim)}
.flash-src a{border-bottom:1px solid var(--bw-line)}
.flash-src a:hover{color:var(--bw-light)}
.delta{
  font-family:var(--font-mono);font-weight:500;padding:2px 7px;border-radius:var(--r-xs);
  background:rgba(46,204,113,.12);color:var(--bw-green-ink);
}
.delta.is-down{background:rgba(231,76,60,.12);color:var(--bw-red-ink)}
.mover .delta,.mstat .delta{font-family:var(--font-display);font-variant-numeric:tabular-nums}

.flash-foot{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;
  border-top:1px solid var(--bw-line);margin-top:var(--s-4);padding:var(--s-4) 0;
  font-size:var(--fs-xs);color:var(--bw-dim);
}

/* Aside inside the newsflash band */
.flash-aside{display:flex;flex-direction:column;gap:var(--s-5);min-width:0}
.flash-box{border:1px solid var(--bw-line);border-radius:var(--r-md);background:var(--bw-card);padding:var(--s-5)}
.flash-box h3{
  font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--bw-mid);
  margin-bottom:var(--s-4);
}
.mover{display:flex;align-items:center;gap:var(--s-3);padding:9px 0;border-bottom:1px solid var(--bw-line-soft);font-size:var(--fs-sm)}
.mover:last-child{border-bottom:0;padding-bottom:0}
.mover .sym{font-weight:600;color:var(--bw-white);width:52px;flex:none}
.mover .px{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--bw-light);flex:1;font-size:var(--fs-xs)}
.mstat{display:flex;align-items:center;gap:var(--s-3);padding:9px 0;border-bottom:1px solid var(--bw-line-soft);font-size:var(--fs-sm)}
.mstat:last-of-type{border-bottom:0}
.mstat .ml{color:var(--bw-mid);flex:1}
.mstat .mv{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--bw-white);font-weight:500;font-size:var(--fs-xs)}
.tallies{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}
.tally .n{font-size:var(--fs-2xl);font-weight:600;color:var(--bw-white);line-height:1;letter-spacing:-.02em}
.tally .l{font-size:var(--fs-2xs);color:var(--bw-dim);margin-top:5px;line-height:1.4}

@media (max-width:1080px){
  .flash-grid{grid-template-columns:1fr}
  .flash-feed{max-height:none;overflow:visible;padding-right:0}
  .flash-fade{display:none}
}
@media (max-width:720px){
  .flash-panel{padding:var(--s-5) var(--s-4) var(--s-2)}
  .flash-item{grid-template-columns:58px 1fr;gap:var(--s-3)}
  .flash-body{padding-left:var(--s-4)}
  .flash-filters{margin-left:0;width:100%}
}

/* ============================================================
   IN-POST JUMP NAV (table of contents) + reading progress
   ============================================================ */
.progressbar{
  position:fixed;left:0;top:0;height:3px;width:0%;
  background:var(--bw-orange);z-index:120;transition:width .1s linear;
}

.toc{border:1px solid var(--bw-line);border-radius:var(--r-md);background:var(--bw-card);overflow:hidden}
.toc-head{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);
  padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--bw-line);
}
.toc-head h3{font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--bw-mid);margin:0}
.toc-head .count{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--bw-dim)}
.toc ol{list-style:none;margin:0;padding:var(--s-3) 0;counter-reset:toc}
.toc li{counter-increment:toc}
.toc a{
  display:flex;gap:10px;padding:8px var(--s-5);font-size:var(--fs-sm);line-height:1.4;
  color:var(--bw-mid);border-left:2px solid transparent;
}
.toc a::before{
  content:counter(toc,decimal-leading-zero);
  font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--bw-dim);
  flex:none;padding-top:2px;
}
.toc a:hover{color:var(--bw-white);background:var(--bw-hover)}
.toc a[aria-current="true"]{
  color:var(--bw-orange-ink);border-left-color:var(--bw-orange);
  background:var(--bw-orange-wash);font-weight:500;
}
.toc li.sub a{padding-left:calc(var(--s-5) + 18px);font-size:var(--fs-xs)}
.toc li.sub a::before{content:"—";color:var(--bw-line)}
.toc-foot{border-top:1px solid var(--bw-line);padding:var(--s-3) var(--s-5)}
.toc-foot button{font-size:var(--fs-xs);color:var(--bw-mid)}
.toc-foot button:hover{color:var(--bw-orange-ink)}

/* Mobile collapsible version */
.toc-mobile{display:none;border:1px solid var(--bw-line);border-radius:var(--r-md);background:var(--bw-card);margin-bottom:var(--s-6)}
.toc-mobile summary{padding:var(--s-4) var(--s-5);cursor:pointer;font-size:var(--fs-sm);font-weight:600;color:var(--bw-white);list-style:none}
.toc-mobile summary::-webkit-details-marker{display:none}
.toc-mobile summary::after{content:"▾";float:right;color:var(--bw-orange-ink)}
.toc-mobile[open] summary::after{content:"▴"}
.toc-mobile .toc{border:0;border-radius:0;background:none}
.toc-mobile .toc-head{display:none}

/* Anchor offset so a jumped-to heading clears the sticky nav */
.prose h2[id],.prose h3[id]{scroll-margin-top:180px}

/* ============================================================
   ASK AI
   ============================================================ */
.askfab{
  position:fixed;right:18px;bottom:18px;z-index:160;
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 14px;border-radius:var(--r-pill);opacity:.92;
  background:var(--bw-orange);color:var(--bw-on-orange);
  font-size:var(--fs-sm);font-weight:600;
  box-shadow:0 8px 28px -8px rgba(247,147,26,.5);
}
.askfab{display:inline-flex}
.askfab.is-on{display:inline-flex}
.ask-src{font-size:var(--fs-2xs);color:var(--bw-dim);margin-top:8px;padding-top:8px;border-top:1px solid var(--bw-line-soft)}
.ask-src a{color:var(--bw-mid)}
.ask-src a:hover{color:var(--bw-orange-ink)}
.askfab:hover{background:#FFA733;opacity:1}
.askfab .spark{font-size:15px}

.askpanel{
  position:fixed;right:20px;bottom:20px;z-index:170;
  width:min(400px,calc(100vw - 32px));max-height:min(640px,calc(100vh - 40px));
  display:none;flex-direction:column;
  background:var(--bw-bg);border:1px solid var(--bw-line);border-radius:var(--r-lg);
  box-shadow:var(--shadow-lift);overflow:hidden;
}
.askpanel.is-open{display:flex}
.ask-head{
  display:flex;align-items:center;gap:var(--s-3);
  padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--bw-line);
  background:var(--bw-bg-deep);flex:none;
}
.ask-head h3{font-size:var(--fs-md);margin:0}
.ask-head .sub{font-size:var(--fs-2xs);color:var(--bw-dim)}
.ask-head .x{margin-left:auto;color:var(--bw-mid);font-size:16px;width:28px;height:28px;border-radius:var(--r-sm)}
.ask-head .x:hover{background:var(--bw-card-2);color:var(--bw-white)}

.ask-log{flex:1;overflow-y:auto;padding:var(--s-5);scrollbar-width:thin;scrollbar-color:var(--bw-line) transparent}
.ask-log::-webkit-scrollbar{width:6px}
.ask-log::-webkit-scrollbar-thumb{background:var(--bw-line);border-radius:99px}

.ask-msg{margin-bottom:var(--s-5);font-size:var(--fs-sm);line-height:1.6}
.ask-msg.me{text-align:right}
.ask-msg.me span{
  display:inline-block;background:var(--bw-card-2);color:var(--bw-white);
  padding:9px 13px;border-radius:var(--r-md) var(--r-md) var(--r-xs) var(--r-md);
  max-width:88%;text-align:left;
}
.ask-msg.ai{color:var(--bw-light);white-space:pre-wrap}
.ask-msg.ai .who{
  display:flex;align-items:center;gap:7px;font-size:var(--fs-2xs);
  letter-spacing:.1em;text-transform:uppercase;color:var(--bw-orange-ink);
  margin-bottom:6px;font-weight:600;
}
.ask-msg.err{color:var(--bw-red-ink);font-size:var(--fs-xs)}

.ask-intro{font-size:var(--fs-sm);color:var(--bw-mid);margin-bottom:var(--s-4)}
.ask-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:var(--s-4)}
.ask-chips button{
  font-size:var(--fs-xs);padding:7px 11px;border-radius:var(--r-pill);
  border:1px solid var(--bw-line);color:var(--bw-light);text-align:left;line-height:1.3;
}
.ask-chips button:hover{border-color:var(--bw-orange);color:var(--bw-orange-ink)}

.ask-form{border-top:1px solid var(--bw-line);padding:var(--s-3) var(--s-4);flex:none;background:var(--bw-bg-deep)}
.ask-row{display:flex;gap:8px;align-items:flex-end}
.ask-row textarea{
  flex:1;background:var(--bw-bg);border:1px solid var(--bw-line);border-radius:var(--r-sm);
  padding:10px 12px;color:var(--bw-white);font:inherit;font-size:var(--fs-sm);
  resize:none;min-height:42px;max-height:110px;outline:none;
}
.ask-row textarea:focus{border-color:var(--bw-orange)}
.ask-send{
  width:42px;height:42px;border-radius:var(--r-sm);flex:none;
  background:var(--bw-orange);color:var(--bw-on-orange);display:grid;place-items:center;font-size:15px;
}
.ask-send[disabled]{opacity:.45;cursor:not-allowed}
.ask-stop{
  width:100%;margin-top:8px;font-size:var(--fs-xs);color:var(--bw-mid);
  border:1px solid var(--bw-line);border-radius:var(--r-sm);padding:6px;
}
.ask-stop[hidden]{display:none}
.ask-disc{font-size:var(--fs-2xs);color:var(--bw-dim);margin-top:8px;line-height:1.5}

.dots::after{content:"";animation:dots 1.4s steps(4,end) infinite}
@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}

@media (max-width:720px){
  .toc-mobile{display:block}
  .rail .toc{display:none}
  .askfab{right:14px;bottom:88px}
  .askpanel{right:8px;left:8px;bottom:8px;width:auto;max-height:calc(100vh - 90px)}
}
/* Placeholder art generator */
.ph{
  width:100%;height:100%;
  background:
    radial-gradient(120% 90% at 78% 12%, rgba(247,147,26,.30), transparent 58%),
    radial-gradient(100% 100% at 8% 96%, rgba(30,136,229,.26), transparent 60%),
    linear-gradient(160deg,#152A42,#0D1B2A);
  display:grid;place-items:center;
}
.ph span{
  font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;
  color:rgba(180,195,220,.34);text-transform:uppercase;
}
.ph--b{background:
    radial-gradient(120% 90% at 20% 10%, rgba(30,136,229,.32), transparent 58%),
    radial-gradient(100% 100% at 90% 90%, rgba(247,147,26,.20), transparent 60%),
    linear-gradient(160deg,#132539,#0D1B2A);}
.ph--g{background:
    radial-gradient(110% 90% at 50% 0%, rgba(46,204,113,.22), transparent 60%),
    linear-gradient(160deg,#122436,#0D1B2A);}

/* ============================================================
   AD SLOTS — AdSense-policy compliant labelling
   Every variant reserves its height before load. Never remove
   the min-height: unreserved slots are the #1 cause of bad CLS.
   ============================================================ */
.adslot{
  border:1px dashed var(--bw-line);border-radius:var(--r-sm);
  background:repeating-linear-gradient(135deg,var(--bw-hatch) 0 10px,transparent 10px 20px);
  display:grid;place-items:center;text-align:center;padding:var(--s-4);
}
.adslot .lbl{
  font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--bw-dim);
  display:block;margin-bottom:6px;
}
.adslot .dims{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--bw-mid)}
.adslot .note{display:block;font-size:var(--fs-2xs);color:var(--bw-dim);margin-top:5px}

.adslot--header{min-height:106px;border-radius:0;border-left:0;border-right:0}
.adslot--leader{min-height:104px}

.adslot--rect{min-height:266px}
.adslot--halfpage{min-height:616px}
.adslot--inarticle{min-height:296px;margin:var(--s-8) 0}
.adslot--footer{min-height:104px;margin-bottom:var(--s-8)}
.adslot--flash{min-height:118px;margin:var(--s-2) 0 var(--s-5)}

/* Header banner band */
.headerad{background:var(--bw-bg-deep);border-bottom:1px solid var(--bw-line-soft);padding:var(--s-3) 0}
.headerad .wrap{padding-inline:var(--s-5)}

/* In-feed native unit — sits inside a story grid, must never mimic a card */

/* Mobile anchor — dismissible, capped height, mobile only */
  position:absolute;top:-13px;right:10px;width:26px;height:26px;border-radius:50%;
  background:var(--bw-card);border:1px solid var(--bw-line);color:var(--bw-mid);
  display:grid;place-items:center;font-size:13px;line-height:1;
}

/* Ad inventory map (design system) */

@media (max-width:720px){
    body{padding-bottom:76px}
  /* Rail ad units must not vanish on mobile — reflow them inline, full width,
     so advertising inventory is still visible where the rail collapsed. */
  .rail{display:block}
  .rail .adslot{display:flex !important;min-height:120px;margin-bottom:var(--s-6)}
  .rail .adslot--rect{min-height:266px}
  .article-layout .adslot,.flash-aside .adslot{display:flex !important}
  .adslot--header{min-height:74px}
  .adslot--halfpage{min-height:296px}
}

/* ============================================================
   DISCLOSURE — Google "paid content" requirement
   ============================================================ */
.disclosure{
  border:1px solid rgba(247,147,26,.3);border-left:3px solid var(--bw-orange);
  background:var(--bw-orange-wash);border-radius:var(--r-sm);
  padding:var(--s-4) var(--s-5);font-size:var(--fs-sm);color:var(--bw-light);
}
.disclosure strong{color:var(--bw-orange-ink);display:block;margin-bottom:4px;font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase}
.disclosure--risk{border-color:rgba(231,76,60,.35);border-left-color:var(--bw-red-ink);background:rgba(231,76,60,.07)}
.disclosure--risk strong{color:var(--bw-red-ink)}
.disclosure--neutral{border-color:var(--bw-line);border-left-color:var(--bw-blue-ink);background:var(--bw-blue-wash)}
.disclosure--neutral strong{color:var(--bw-blue-ink)}

/* ============================================================
   ARTICLE TEMPLATE
   ============================================================ */
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--rail);gap:var(--gutter);padding-top:var(--s-8)}
.crumbs{font-size:var(--fs-xs);color:var(--bw-dim);margin-bottom:var(--s-4)}
.crumbs a:hover{color:var(--bw-orange-ink)}
.crumbs span:not(.dim){margin:0 6px;color:var(--bw-line)}

.article h1{font-size:var(--fs-3xl);letter-spacing:-.025em;margin-bottom:var(--s-4);max-width:20ch}
.article .standfirst{font-family:var(--font-read);font-size:var(--fs-lg);line-height:1.55;color:var(--bw-light);max-width:38em;margin-bottom:var(--s-5)}

.bylinebar{
  display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap;
  padding:var(--s-4) 0;border-top:1px solid var(--bw-line);border-bottom:1px solid var(--bw-line);
  margin-bottom:var(--s-6);font-size:var(--fs-xs);
}
.bylinebar .av{width:38px;height:38px;font-size:12px}
.bylinebar .who{line-height:1.35}
.bylinebar .who a{font-size:var(--fs-sm);color:var(--bw-white);font-weight:600}
.bylinebar .who .role{color:var(--bw-dim);font-size:var(--fs-2xs)}
.bylinebar .dates{color:var(--bw-mid);line-height:1.5}
.bylinebar .dates time{color:var(--bw-light)}
.bylinebar .share{display:flex;gap:6px;margin-left:auto}
.share-btn{width:32px;height:32px;border:1px solid var(--bw-line);border-radius:var(--r-sm);display:grid;place-items:center;font-size:12px;color:var(--bw-mid)}
.share-btn:hover{border-color:var(--bw-orange-ink);color:var(--bw-orange-ink)}

.prose{font-family:var(--font-read);font-size:1.0625rem;line-height:1.72;color:var(--bw-prose);max-width:38em}
.prose h2{font-family:var(--font-display);font-size:var(--fs-xl);margin:var(--s-10) 0 var(--s-3)}
.prose h3{font-family:var(--font-display);font-size:var(--fs-lg);margin:var(--s-8) 0 var(--s-2)}
.prose a{color:var(--bw-orange-ink);border-bottom:1px solid rgba(247,147,26,.35)}
.prose blockquote{
  margin:var(--s-8) 0;padding-left:var(--s-5);border-left:3px solid var(--bw-blue);
  font-size:var(--fs-xl);line-height:1.45;color:var(--bw-white);
}
.prose blockquote cite{display:block;font-family:var(--font-display);font-size:var(--fs-sm);font-style:normal;color:var(--bw-mid);margin-top:var(--s-3)}
.prose ul,.prose ol{padding-left:1.25em}
.prose li{margin-bottom:8px}
.figure{margin:var(--s-8) 0}
.figure .ph{aspect-ratio:16/9;border-radius:var(--r-sm)}
.figure figcaption{font-family:var(--font-display);font-size:var(--fs-xs);color:var(--bw-dim);margin-top:var(--s-2)}

.datatable{width:100%;border-collapse:collapse;font-family:var(--font-display);font-size:var(--fs-sm);margin:var(--s-6) 0}
.datatable th{text-align:left;color:var(--bw-mid);font-weight:600;font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--bw-line)}
.datatable td{padding:11px 12px;border-bottom:1px solid var(--bw-line-soft);color:var(--bw-light)}
.datatable tr:hover td{background:var(--bw-hover)}

.sources{border-top:1px solid var(--bw-line);margin-top:var(--s-10);padding-top:var(--s-5)}
.sources h3{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--bw-mid);margin-bottom:var(--s-3)}
.sources ol{margin:0;padding-left:1.2em;font-size:var(--fs-sm);color:var(--bw-mid)}
.sources a{color:var(--bw-light);border-bottom:1px solid var(--bw-line)}

.authorbox{display:flex;gap:var(--s-4);background:var(--bw-card);border:1px solid var(--bw-line);border-radius:var(--r-md);padding:var(--s-5);margin-top:var(--s-8)}
.authorbox .av{width:56px;height:56px;font-size:16px;flex:none}
.authorbox h3{font-size:var(--fs-md);margin-bottom:2px}
.authorbox .role{font-size:var(--fs-xs);color:var(--bw-orange-ink);margin-bottom:var(--s-2)}
.authorbox p{font-size:var(--fs-sm);color:var(--bw-mid);margin:0}
.authorbox .links{margin-top:var(--s-3);display:flex;gap:var(--s-3);font-size:var(--fs-xs)}
.authorbox .links a{color:var(--bw-light);border-bottom:1px solid var(--bw-line)}

.correction-cta{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;
  border:1px solid var(--bw-line);border-radius:var(--r-sm);padding:var(--s-4) var(--s-5);
  margin-top:var(--s-6);font-size:var(--fs-sm);color:var(--bw-mid);background:var(--bw-card);
}

/* Sidebar */
.rail{min-width:0}
.rail-box{background:var(--bw-card);border:1px solid var(--bw-line);border-radius:var(--r-md);padding:var(--s-5);margin-bottom:var(--s-6)}
.rail-box h3{font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--bw-white);margin-bottom:var(--s-4);padding-bottom:var(--s-3);border-bottom:1px solid var(--bw-line)}
.rail-list li{list-style:none;padding:var(--s-3) 0;border-bottom:1px solid var(--bw-line-soft);font-size:var(--fs-sm);line-height:1.4}
.rail-list{margin:0;padding:0}
.rail-list li:last-child{border-bottom:0;padding-bottom:0}
.rail-list a:hover{color:var(--bw-orange-ink)}
.rail-list .n{font-family:var(--font-mono);color:var(--bw-orange-ink);margin-right:8px;font-size:var(--fs-xs)}
.sticky{position:sticky;top:180px}

/* ============================================================
   PAGE HEADERS for section/landing pages
   ============================================================ */
.pagehead{border-bottom:1px solid var(--bw-line);padding:var(--s-6) 0 var(--s-5);margin-bottom:var(--s-6)}
.fng{text-align:center}
.fng-dial{margin:var(--s-2) 0 var(--s-4)}
.fng-num{font-size:44px;font-weight:700;line-height:1;color:var(--bw-orange-ink);font-family:var(--font-display)}
.fng-label{font-size:var(--fs-sm);color:var(--bw-mid);letter-spacing:.05em;text-transform:uppercase;margin-top:4px}
.fng-bar{position:relative;height:8px;border-radius:var(--r-pill);background:linear-gradient(90deg,#c0392b,#e08a1e,#1e8a5e);margin:var(--s-2) 0}
.fng-fill{display:none}
.fng-mark{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:var(--bw-white);border:2px solid var(--bw-bg);transform:translate(-50%,-50%);box-shadow:0 1px 4px rgba(0,0,0,.4)}
.fng-scale{display:flex;justify-content:space-between;font-size:var(--fs-2xs);color:var(--bw-dim);margin-bottom:var(--s-4)}
.fng-hist{width:100%;border-collapse:collapse;font-size:var(--fs-xs)}
.fng-hist td{padding:6px 0;border-bottom:1px solid var(--bw-line-soft);text-align:left}
.fng-hist td:nth-child(2){text-align:right;color:var(--bw-white);font-weight:500}
.fng-hist td:last-child{text-align:right;width:34%}
.fng-hist tr:last-child td{border-bottom:0}
.pagehead h1{font-size:var(--fs-3xl);letter-spacing:-.025em;margin-bottom:var(--s-3)}
.pagehead p{font-family:var(--font-read);font-size:var(--fs-lg);color:var(--bw-mid);max-width:44em;margin:0}
.pagehead .kicker{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--bw-orange-ink);margin-bottom:var(--s-3);font-weight:600}

/* ============================================================
   FORMS
   ============================================================ */
.field{margin-bottom:var(--s-4)}
.field label{display:block;font-size:var(--fs-xs);font-weight:600;color:var(--bw-light);margin-bottom:6px}
.field .hint{font-size:var(--fs-2xs);color:var(--bw-dim);margin-top:5px}
.field input,.field select,.field textarea{
  width:100%;background:var(--bw-bg-deep);border:1px solid var(--bw-line);border-radius:var(--r-sm);
  padding:11px 13px;color:var(--bw-white);font:inherit;font-size:var(--fs-sm);outline:none;
}
.field input:focus,.field select,.field textarea:focus{border-color:var(--bw-orange-ink)}
.field textarea{min-height:130px;resize:vertical}

/* ============================================================
   CONTACT CTA
   ============================================================ */
.contact-cta{
  display:grid;grid-template-columns:1fr auto;gap:var(--s-8);align-items:center;
  background:var(--bw-card);border:1px solid var(--bw-line);border-radius:var(--r-md);
  border-left:3px solid var(--bw-orange);
  padding:var(--s-8) var(--s-8) var(--s-8) calc(var(--s-8) - 2px);
}
.contact-cta .kicker{font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--bw-orange-ink);margin-bottom:var(--s-2)}
.contact-cta h2{font-size:var(--fs-xl);font-weight:600;color:var(--bw-white);margin-bottom:var(--s-3)}
.contact-cta p{font-size:var(--fs-sm);color:var(--bw-light);max-width:42em;margin:0}
.contact-cta .desks{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin-top:var(--s-5);font-size:var(--fs-xs);color:var(--bw-mid)}
.contact-cta .desks b{color:var(--bw-white);font-weight:500}
.contact-cta .desks a{color:var(--bw-mid)}
.contact-cta .desks a:hover{color:var(--bw-orange-ink)}
.contact-cta .actions{display:flex;flex-direction:column;gap:var(--s-3);flex-shrink:0}

/* ---- Split-column lead cards (Interviews / Review on home) ----
   Both columns must start their row-cards on the same line, so the lead
   card's headline and dek each occupy a fixed two lines regardless of
   how long the copy actually is. */
.card--lead{margin-bottom:var(--s-6)}
.card--lead h3{
  min-height:2.64em;               /* 2 lines at 22px/1.32 */
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.card--lead .dek{
  min-height:3em;                  /* 2 lines at 13px/1.5 */
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
#page-home .grid-2>section{display:flex;flex-direction:column}

/* ============================================================
   EVENT DIRECTORY (filterable calendar)
   ============================================================ */
.evbar{display:flex;flex-direction:column;gap:var(--s-4);margin-bottom:var(--s-6)}
.evtabs{display:flex;gap:var(--s-2);flex-wrap:wrap}
.evtab{
  padding:7px 15px;border-radius:var(--r-pill);border:1px solid var(--bw-line);
  background:transparent;color:var(--bw-mid);font-size:var(--fs-xs);font-weight:500;cursor:pointer;
}
.evtab:hover{border-color:var(--bw-dim);color:var(--bw-white)}
.evtab.is-on{background:var(--bw-orange);border-color:var(--bw-orange);color:var(--bw-on-orange)}
.evfilters{display:flex;gap:var(--s-3);flex-wrap:wrap;align-items:center}
.evfilters select,.evfilters input{
  background:var(--bw-card);color:var(--bw-white);border:1px solid var(--bw-line);
  border-radius:var(--r-sm);padding:8px 11px;font-size:var(--fs-xs);font-family:inherit;min-width:132px;
}
.evfilters input{flex:1;min-width:180px}
.evfilters select:focus,.evfilters input:focus{outline:2px solid var(--bw-orange);outline-offset:1px}
.evreset{background:none;border:none;color:var(--bw-mid);font-size:var(--fs-xs);cursor:pointer;text-decoration:underline;font-family:inherit}
.evreset:hover{color:var(--bw-orange-ink)}
.evcount{font-size:var(--fs-xs);color:var(--bw-dim);margin-bottom:var(--s-4)}

.evgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter);
  max-height:calc(2 * 470px + var(--gutter));overflow-y:auto;padding-right:var(--s-2);
  scrollbar-width:thin;scrollbar-color:var(--bw-line) transparent}
.evgrid::-webkit-scrollbar{width:8px}
.evgrid::-webkit-scrollbar-thumb{background:var(--bw-line);border-radius:var(--r-pill)}
.evgrid-wrap{position:relative}
.evgrid-wrap::after{content:"";position:absolute;left:0;right:var(--s-2);bottom:0;height:48px;pointer-events:none;
  background:linear-gradient(180deg,transparent,var(--bw-bg));opacity:0;transition:opacity .2s}
.evgrid-wrap.has-more::after{opacity:1}
.evcard{
  display:flex;flex-direction:column;background:var(--bw-card);
  border:1px solid var(--bw-line);border-radius:var(--r-md);overflow:hidden;
  transition:border-color .18s,transform .18s;
}
.evcard:hover{border-color:var(--bw-orange);transform:translateY(-3px)}
.evcard .shot{position:relative;aspect-ratio:16/9}
.evcard .shot .ph{height:100%}
.evstatus{
  position:absolute;top:10px;left:10px;z-index:2;
  font-size:var(--fs-2xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  padding:3px 9px;border-radius:var(--r-pill);backdrop-filter:blur(6px);
}
.evstatus[data-s="Ongoing"]{background:rgba(34,180,120,.92);color:#04140d}
.evstatus[data-s="Upcoming"]{background:var(--bw-orange);color:var(--bw-on-orange)}
.evstatus[data-s="Ended"]{background:rgba(120,130,145,.92);color:#0b0f16}
.evcard .body{padding:var(--s-4) var(--s-5);display:flex;flex-direction:column;gap:var(--s-3);flex:1}
.evcard .cats{display:flex;gap:6px;flex-wrap:wrap}
.evcard .cat{font-size:var(--fs-2xs);color:var(--bw-orange-ink);letter-spacing:.05em;text-transform:uppercase;font-weight:500}
.evcard h3{font-size:var(--fs-md);font-weight:600;line-height:1.3;
  min-height:2.6em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.evcard .row{display:flex;align-items:center;gap:7px;font-size:var(--fs-xs);color:var(--bw-mid)}
.evcard .row .ic{width:13px;height:13px;flex-shrink:0;opacity:.8}
.evcard .utc{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--bw-dim)}
.evcard .tags{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-top:auto;padding-top:var(--s-2)}
.evcard .tag{font-size:var(--fs-2xs);border:1px solid var(--bw-line);border-radius:var(--r-xs);padding:2px 7px;color:var(--bw-mid)}
.evcard .tag--free{border-color:rgba(34,180,120,.45);color:#3ecf92}
[data-theme="light"] .evcard .tag--free{color:#177A52;border-color:rgba(23,122,82,.5)}
.evcard .tag--paid{border-color:rgba(247,147,26,.45);color:var(--bw-orange-ink)}
.evcard .acts{display:flex;gap:var(--s-2);border-top:1px solid var(--bw-line);padding:var(--s-3) var(--s-5)}
.evcard .acts .btn{flex:1;justify-content:center;text-align:center}
.evempty{
  grid-column:1/-1;text-align:center;padding:var(--s-16) var(--s-5);
  border:1px dashed var(--bw-line);border-radius:var(--r-md);color:var(--bw-mid);font-size:var(--fs-sm);
}
@media (max-width:1080px){ .evgrid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:720px){
  .evgrid{grid-template-columns:1fr;max-height:calc(5 * 420px + 4 * var(--gutter))}
  .evfilters select,.evfilters input{flex:1 1 calc(50% - var(--s-3));min-width:0}
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--bw-bg-deep);border-top:1px solid var(--bw-line);padding-top:var(--s-12);margin-top:var(--s-20)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--s-8)}
.footer-grid>.about{min-width:0}



/* Latest column */
.latest-more{font-size:var(--fs-xs);color:var(--bw-mid);font-weight:500}
.footer h4{font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--bw-white);margin-bottom:var(--s-4)}
.footer ul{list-style:none;margin:0;padding:0;font-size:var(--fs-sm)}
.footer li{margin-bottom:9px}
.footer a{color:var(--bw-mid)}
.footer li button{font:inherit;color:var(--bw-mid);background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:left}
.footer li button:hover{color:var(--bw-orange-ink)}
.footer a:hover{color:var(--bw-orange-ink)}
.footer .about p{font-size:var(--fs-sm);color:var(--bw-mid);max-width:34em}
.footer .logo img{height:38px;margin-bottom:var(--s-4)}
.legalbar{border-top:1px solid var(--bw-line);margin-top:var(--s-10);padding:var(--s-6) 0;font-size:var(--fs-xs);color:var(--bw-dim)}
.legalbar .wrap{display:flex;justify-content:space-between;gap:var(--s-5);flex-wrap:wrap}

/* ============================================================
   COOKIE CONSENT (Consent Mode v2 pattern)
   ============================================================ */
.consent{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:200;max-width:560px;
  background:var(--bw-card);border:1px solid var(--bw-line);border-radius:var(--r-md);
  padding:var(--s-5);box-shadow:var(--shadow-lift);
}
.consent h3{font-size:var(--fs-md);margin-bottom:var(--s-2)}
.consent p{font-size:var(--fs-sm);color:var(--bw-mid);margin-bottom:var(--s-4)}
.consent .row{display:flex;gap:var(--s-3);flex-wrap:wrap}
.consent[hidden]{display:none}

/* ============================================================
   DESIGN SYSTEM PAGE
   ============================================================ */
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:var(--s-4)}
.sw{border:1px solid var(--bw-line);border-radius:var(--r-sm);overflow:hidden;background:var(--bw-card)}
.sw .chipc{height:74px}
.sw .info{padding:10px 12px;font-size:var(--fs-2xs);line-height:1.5}
.sw .info b{display:block;color:var(--bw-white);font-size:var(--fs-xs)}
.sw .info code{font-family:var(--font-mono);color:var(--bw-mid)}

.specrow{display:grid;grid-template-columns:190px 1fr;gap:var(--s-5);padding:var(--s-4) 0;border-bottom:1px solid var(--bw-line-soft);align-items:baseline}
.specrow code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--bw-orange-ink)}

.checklist{list-style:none;margin:0;padding:0}
.checklist li{display:flex;gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--bw-line-soft);font-size:var(--fs-sm)}
.checklist .tick{color:var(--bw-green-ink);flex:none;font-weight:700}
.checklist b{color:var(--bw-white);font-weight:600}

.codeblock{
  background:var(--bw-bg-deep);border:1px solid var(--bw-line);border-radius:var(--r-sm);
  padding:var(--s-4);overflow-x:auto;font-family:var(--font-mono);font-size:var(--fs-xs);
  color:var(--bw-code);line-height:1.7;white-space:pre;
}

/* Tabs (policy hub) */
.tabs{display:flex;gap:var(--s-1);border-bottom:1px solid var(--bw-line);overflow-x:auto;scrollbar-width:none;margin-bottom:var(--s-8)}
.tabs::-webkit-scrollbar{display:none}
.tabs button{padding:11px 16px;font-size:var(--fs-sm);font-weight:500;color:var(--bw-mid);border-bottom:2px solid transparent;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--bw-orange-ink);border-bottom-color:var(--bw-orange-ink)}
.tabpanel[hidden]{display:none}

/* Accordion */
.acc{border:1px solid var(--bw-line);border-radius:var(--r-sm);margin-bottom:var(--s-3);background:var(--bw-card);overflow:hidden}
.acc summary{padding:var(--s-4) var(--s-5);cursor:pointer;font-weight:500;color:var(--bw-white);font-size:var(--fs-base);list-style:none}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";float:right;color:var(--bw-orange-ink);font-weight:400}
.acc[open] summary::after{content:"−"}
.acc .body{padding:0 var(--s-5) var(--s-5);font-size:var(--fs-sm);color:var(--bw-mid);font-family:var(--font-read);line-height:1.7}

/* Event list */
.event{display:grid;grid-template-columns:78px 1fr auto;gap:var(--s-5);align-items:center;padding:var(--s-5) 0;border-bottom:1px solid var(--bw-line-soft)}
.event .cal{border:1px solid var(--bw-line);border-radius:var(--r-sm);text-align:center;padding:8px 0;background:var(--bw-card)}
.event .cal .m{font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--bw-orange-ink)}
.event .cal .d{font-size:var(--fs-xl);font-weight:600;color:var(--bw-white);line-height:1.1}
.event h3{font-size:var(--fs-md);font-weight:500;margin-bottom:3px}
.event .loc{font-size:var(--fs-xs);color:var(--bw-dim)}

/* Rate card */
.ratecard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter)}
.ratecard--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1080px){ .ratecard--4{grid-template-columns:repeat(2,minmax(0,1fr))} }
.rate{border:1px solid var(--bw-line);border-radius:var(--r-md);background:var(--bw-card);padding:var(--s-6);display:flex;flex-direction:column}
.rate.featured{border-color:rgba(247,147,26,.5);box-shadow:0 0 0 1px rgba(247,147,26,.12)}
.rate h3{font-size:var(--fs-lg);margin-bottom:var(--s-2)}
.rate .price{font-size:var(--fs-2xl);color:var(--bw-orange-ink);font-weight:600;margin-bottom:var(--s-4);font-family:var(--font-display)}
.rate .price small{font-size:var(--fs-xs);color:var(--bw-dim);font-weight:400;display:block}
.rate ul{list-style:none;margin:0 0 var(--s-5);padding:0;font-size:var(--fs-sm);flex:1}
.rate li{padding:7px 0;border-bottom:1px solid var(--bw-line-soft);color:var(--bw-light)}

/* Learn hub */
.learn-card{border:1px solid var(--bw-line);border-radius:var(--r-md);padding:var(--s-5);background:var(--bw-card);display:flex;flex-direction:column;gap:var(--s-3)}
.learn-card .lvl{font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--bw-blue-ink)}
.learn-card h3{font-size:var(--fs-md);font-weight:500}
.learn-card .count{font-size:var(--fs-xs);color:var(--bw-dim);font-family:var(--font-mono);margin-top:auto}

/* CTA band */
.ctaband{
  border:1px solid var(--bw-line);border-radius:var(--r-lg);background:
    radial-gradient(120% 140% at 88% 0%, rgba(247,147,26,.13), transparent 60%),
    var(--bw-card);
  padding:var(--s-10);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gutter);align-items:center;
}
.ctaband h2{font-size:var(--fs-2xl);margin-bottom:var(--s-3)}
.ctaband p{color:var(--bw-mid);font-size:var(--fs-base);margin:0}

/* Team */
.team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter)}
.member{border:1px solid var(--bw-line);border-radius:var(--r-md);background:var(--bw-card);padding:var(--s-5);text-align:center}
.member .av{width:64px;height:64px;border-radius:50%;margin:0 auto var(--s-3);background:linear-gradient(140deg,var(--bw-orange),var(--bw-orange-dim));display:grid;place-items:center;color:#0B1420;font-weight:700;font-size:19px}
.pt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--gutter)}
.pt-card{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-4);border:1px solid var(--bw-line);border-radius:var(--r-md);background:var(--bw-card);transition:border-color .16s,transform .16s}
.pt-card:hover{border-color:var(--bw-orange);transform:translateY(-2px)}
.pt-logo{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:var(--r-sm);background:var(--bw-card-2);color:var(--bw-orange-ink);font-family:var(--font-display);font-weight:700;font-size:var(--fs-md)}
.pt-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.pt-name{font-weight:600;color:var(--bw-white);font-size:var(--fs-sm)}
.pt-host{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--bw-dim)}
.pt-badge{display:inline-block;width:fit-content;margin-top:4px;font-size:var(--fs-2xs);font-weight:500;padding:2px 8px;border-radius:var(--r-pill)}
.pt-badge--direct{background:rgba(46,204,113,.14);color:var(--bw-green-ink)}
.pt-badge--list{background:rgba(30,136,229,.14);color:var(--bw-blue-ink)}
.pt-go{color:var(--bw-mid);font-size:16px;flex:none}
.pt-card:hover .pt-go{color:var(--bw-orange-ink)}
.brand-tile{border:1px solid var(--bw-line);border-radius:var(--r-md);overflow:hidden}
.brand-tile img{display:block;width:60%;height:auto;margin:var(--s-10) auto}
.brand-tile img.brand-icon{width:140px;height:140px;margin:var(--s-8) auto}
.brand-icon--round{border-radius:50%}
.brand-icon-sizes{display:flex;align-items:center;justify-content:center;gap:var(--s-5);padding:var(--s-10) var(--s-4);flex:1}
.brand-icon-sizes img{display:inline-block;margin:0}
.brand-icon-sizes img[width="64"]{width:64px;height:64px}
.brand-icon-sizes img[width="40"]{width:40px;height:40px}
.brand-icon-sizes img[width="24"]{width:24px;height:24px}
.brand-icon-sizes img[width="16"]{width:16px;height:16px}
.brand-tile--dark{background:#0D1B2A}
.brand-tile--light{background:#FFFFFF}
.brand-tile-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--bw-card);border-top:1px solid var(--bw-line);font-size:var(--fs-xs);color:var(--bw-mid)}
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s-4)}
.sw{border:1px solid var(--bw-line);border-radius:var(--r-md);overflow:hidden;background:var(--bw-card);font-size:var(--fs-xs)}
.sw-c{height:72px}
.sw b{display:block;padding:var(--s-3) var(--s-3) 2px;color:var(--bw-white);font-size:var(--fs-xs)}
.sw code{display:block;padding:0 var(--s-3);font-family:var(--font-mono);color:var(--bw-mid);font-size:var(--fs-2xs)}
.sw small{display:block;padding:4px var(--s-3) var(--s-3);color:var(--bw-dim);font-size:var(--fs-2xs);line-height:1.35}
.type-sample{color:var(--bw-white);margin-bottom:var(--s-3);line-height:1.1}
.member-li{display:inline-flex;align-items:center;gap:6px;margin-top:var(--s-3);font-size:var(--fs-xs);font-weight:500;color:var(--bw-mid);border:1px solid var(--bw-line);border-radius:var(--r-pill);padding:5px 11px 5px 8px;transition:color .16s,border-color .16s}
.member-li:hover{color:var(--bw-orange-ink);border-color:var(--bw-orange)}
.member-li svg{width:14px;height:14px}
.member h3{font-size:var(--fs-md);margin-bottom:2px}
.member .role{font-size:var(--fs-xs);color:var(--bw-orange-ink);margin-bottom:var(--s-3)}
.member p{font-size:var(--fs-xs);color:var(--bw-mid);margin:0;line-height:1.6}

/* Premium Partners — rail affiliate box */
.pp-list{list-style:none;margin:0;padding:0}
.pp-row{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--bw-line-soft)}
.pp-row:first-child{padding-top:0}
.pp-row:last-child{border-bottom:0;padding-bottom:0}
.pp-logo{width:34px;height:34px;border-radius:var(--r-sm);flex:none;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:var(--fs-xs);letter-spacing:-.01em}
.pp-name{flex:1;min-width:0;font-weight:600;color:var(--bw-white);font-size:var(--fs-sm)}
.pp-cta{flex:none;padding:6px 15px;border-radius:var(--r-pill);background:var(--bw-orange);color:var(--bw-on-orange);font-size:var(--fs-xs);font-weight:600;transition:background .15s}
.pp-cta:hover{background:#FFA733}

/* Stat strip */
.ga-panel{border:1px solid var(--bw-line);border-radius:var(--r-md);background:var(--bw-card);padding:var(--s-5) var(--s-6) var(--s-6);margin-bottom:var(--s-12)}
.ga-head{display:flex;align-items:center;gap:var(--s-4);margin-bottom:var(--s-5);font-size:var(--fs-2xs);color:var(--bw-mid);flex-wrap:wrap}
.ga-live{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--bw-green-ink);letter-spacing:.06em;text-transform:uppercase}
.ga-dot{width:8px;height:8px;border-radius:50%;background:var(--bw-green);animation:ga-pulse 1.8s infinite}
@keyframes ga-pulse{0%{box-shadow:0 0 0 0 rgba(46,204,113,.5)}70%{box-shadow:0 0 0 8px rgba(46,204,113,0)}100%{box-shadow:0 0 0 0 rgba(46,204,113,0)}}
.ga-upd{margin-left:auto;font-family:var(--font-mono)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gutter);border-block:1px solid var(--bw-line);padding:var(--s-8) 0}
.stat .n{font-size:var(--fs-3xl);color:var(--bw-orange-ink);font-weight:600;line-height:1;font-family:var(--font-display);letter-spacing:-.02em}
.stat .l{font-size:var(--fs-xs);color:var(--bw-mid);margin-top:var(--s-2)}

/* Annotation flags for the spec view */
.anno{
  border:1px solid rgba(30,136,229,.4);background:var(--bw-blue-wash);border-radius:var(--r-sm);
  padding:var(--s-3) var(--s-4);font-size:var(--fs-xs);color:var(--bw-anno);margin:var(--s-4) 0;
  display:flex;gap:10px;
}
.anno b{color:var(--bw-blue-ink);flex:none}
.content-label{
  display:flex;gap:var(--s-3);align-items:flex-start;
  border:1px solid var(--bw-line);border-left:3px solid var(--bw-mid);
  background:var(--bw-card);border-radius:var(--r-sm);
  padding:var(--s-4);margin:0 0 var(--s-8);
}
.content-label-tag{
  flex:none;font-size:var(--fs-2xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  color:var(--bw-mid);background:var(--bw-card-2);border-radius:var(--r-xs);padding:4px 9px;
}
.content-label p{margin:0;font-size:var(--fs-xs);color:var(--bw-light);line-height:1.5}
.content-label a{color:var(--bw-orange-ink);text-decoration:underline;text-underline-offset:.16em}
@media (max-width:720px){ .content-label{flex-direction:column;gap:var(--s-2)} }

/* ============================================================
   EVENT CALENDAR + UPCOMING (Events page upper section)
   ============================================================ */
.ev-cal-grid{display:grid;grid-template-columns:minmax(0,1fr) var(--rail);gap:var(--gutter);align-items:start;margin-top:var(--s-6)}
.calbox,.upbox{border:1px solid var(--bw-line);border-radius:var(--r-lg);background:var(--bw-card);padding:var(--s-6)}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-5)}
.cal-title{font-size:var(--fs-lg);font-weight:600;color:var(--bw-white)}
.cal-nav{display:flex;align-items:center;gap:var(--s-2)}
.cal-nav button{border:1px solid var(--bw-line);border-radius:var(--r-pill);height:34px;min-width:34px;padding:0 14px;color:var(--bw-light);font-size:var(--fs-xs);font-weight:600;display:inline-flex;align-items:center;justify-content:center;background:var(--bw-bg-deep);transition:border-color .16s,color .16s}
.cal-nav button:hover{border-color:var(--bw-orange);color:var(--bw-white)}
.cal-nav .cal-ico{padding:0;width:34px;font-size:18px;line-height:1}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s-2);margin-bottom:var(--s-2)}
.cal-dow span{font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--bw-dim);text-align:center;font-weight:600}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s-2)}
.cal-cell{position:relative;aspect-ratio:1;border:1px solid var(--bw-line-soft);border-radius:var(--r-sm);background:var(--bw-bg-deep);padding:8px;display:flex;flex-direction:column;min-width:0}
.cal-cell.is-out{background:transparent}
.cal-cell.is-out .cal-date{color:var(--bw-dim);font-weight:500}
.cal-cell.is-today{border-color:var(--bw-orange);box-shadow:inset 0 0 0 1px var(--bw-orange)}
button.cal-cell{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color .14s,background .14s,transform .14s}
button.cal-cell:hover{border-color:var(--bw-orange);background:var(--bw-hover);transform:translateY(-1px)}
.cal-cell[aria-pressed="true"],.cal-cell[aria-pressed="true"]:hover{background:var(--bw-orange);border-color:var(--bw-orange);box-shadow:none;transform:none}
.cal-cell[aria-pressed="true"] .cal-date{color:var(--bw-on-orange)}
.cal-cell[aria-pressed="true"] .cal-dot{box-shadow:0 0 0 1.5px var(--bw-on-orange)}
.cal-cell[aria-pressed="true"] .cal-cover{box-shadow:0 0 0 1.5px var(--bw-on-orange)}
.cal-date{font-size:var(--fs-sm);font-weight:600;color:var(--bw-light);font-variant-numeric:tabular-nums}
.cal-cell.has-ev .cal-date{color:var(--bw-white)}
.cal-cell.is-today .cal-date{color:var(--bw-orange-ink)}
.cal-dots{display:flex;gap:4px;flex-wrap:wrap;margin-top:auto}
.cal-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}
.cal-dot--conference{background:var(--bw-green)}
.cal-dot--policy{background:var(--bw-blue)}
.cal-dot--hackathon{background:var(--bw-orange)}
.cal-cover{position:absolute;top:6px;right:6px;width:18px;height:18px;border-radius:50%;
  background:#000 var(--bw-mark,none) center/86% auto no-repeat;box-shadow:0 0 0 1px var(--bw-mark-ring)}
.cal-legend{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--bw-line-soft);font-size:var(--fs-xs);color:var(--bw-mid)}
.cal-legend span{display:inline-flex;align-items:center;gap:7px}
.cal-legend i{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.cal-legend .lg-mark{width:16px;height:16px;border-radius:50%;background:#000 var(--bw-mark,none) center/86% auto no-repeat;box-shadow:0 0 0 1px var(--bw-mark-ring)}

/* ============================================================
   BRAND MARK BADGE
   The icon mark sits bottom-right on every post image, always as a
   round crop on black (Brand page rule). --bw-mark is set once at
   runtime from the icon embedded on the Brand page, so the PNG is
   never duplicated in the file.
   ============================================================ */
.card .thumb,.lead-fig,.iv-hero-fig,.figure>.ph{position:relative}
.card .thumb::after,.lead-fig::after,.iv-hero-fig::after,.figure>.ph::after{
  content:"";position:absolute;right:10px;bottom:10px;z-index:1;width:32px;height:32px;border-radius:50%;
  background:#000 var(--bw-mark,none) center/86% auto no-repeat;
  box-shadow:0 0 0 1.5px rgba(255,255,255,.34),0 2px 8px rgba(0,0,0,.45);pointer-events:none}
html:not(.bw-mark-on) .card .thumb::after,html:not(.bw-mark-on) .lead-fig::after,
html:not(.bw-mark-on) .iv-hero-fig::after,html:not(.bw-mark-on) .figure>.ph::after,
html:not(.bw-mark-on) .cal-cover,html:not(.bw-mark-on) .cal-legend .lg-mark{background-color:transparent;box-shadow:none}
.card--row .thumb::after{width:22px;height:22px;right:6px;bottom:6px;box-shadow:0 0 0 1px rgba(255,255,255,.34),0 1px 4px rgba(0,0,0,.4)}
.lead-fig::after,.iv-hero-fig::after,.figure>.ph::after{width:44px;height:44px;right:14px;bottom:14px}

.up-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin:0 0 var(--s-4);padding-bottom:var(--s-3);border-bottom:1px solid var(--bw-line);min-height:44px}
.up-head{font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--bw-white);margin:0}
.up-clear{flex:none;border:1px solid var(--bw-line);border-radius:var(--r-pill);height:30px;padding:0 12px;color:var(--bw-light);font-size:var(--fs-2xs);font-weight:600;background:var(--bw-bg-deep);white-space:nowrap;transition:border-color .16s,color .16s}
.up-clear:hover{border-color:var(--bw-orange);color:var(--bw-white)}
.up-empty{padding:var(--s-8) var(--s-4);text-align:center;color:var(--bw-dim);font-size:var(--fs-sm);border:1px dashed var(--bw-line);border-radius:var(--r-md)}
#ev-covered{scroll-margin-top:190px}
.up-list{display:flex;flex-direction:column;gap:var(--s-2)}
.up-row{display:flex;gap:var(--s-4);align-items:flex-start;padding:var(--s-3);border:1px solid var(--bw-line-soft);border-radius:var(--r-md);background:var(--bw-bg-deep);transition:border-color .16s,transform .16s}
.up-row:hover{border-color:var(--bw-orange);transform:translateY(-1px)}
.up-date{flex:none;text-align:center;width:44px}
.up-date .d{font-size:var(--fs-xl);font-weight:700;color:var(--bw-white);line-height:1;font-variant-numeric:tabular-nums;display:block}
.up-date .m{font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--bw-dim);margin-top:3px;display:block}
.up-body{flex:1;min-width:0}
.up-name{font-size:var(--fs-sm);font-weight:600;color:var(--bw-white);line-height:1.3;margin-bottom:5px}
.up-row:hover .up-name{color:var(--bw-orange-ink)}
.up-meta{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;font-size:var(--fs-xs);color:var(--bw-mid)}
.up-kind{display:inline-flex;align-items:center;gap:6px}
.up-badge{flex:none;align-self:center;font-size:var(--fs-2xs);font-weight:600;padding:3px 10px;border-radius:var(--r-pill);background:var(--bw-orange-wash);color:var(--bw-orange-ink);border:1px solid rgba(247,147,26,.3);white-space:nowrap}
.up-note{font-size:var(--fs-2xs);color:var(--bw-dim);margin:var(--s-4) 0 0;line-height:1.55}

@media (max-width:1080px){ .ev-cal-grid{grid-template-columns:1fr} }
@media (max-width:720px){
  .calbox,.upbox{padding:var(--s-4)}
  .cal-days,.cal-dow{gap:5px}
  .cal-cell{padding:5px;border-radius:var(--r-xs)}
  .cal-date{font-size:var(--fs-xs)}
  .cal-dot{width:6px;height:6px}
  .cal-cover{width:13px;height:13px;top:4px;right:4px}
  .cal-legend .lg-mark{width:14px;height:14px}
  .up-date{width:38px}
  .up-date .d{font-size:var(--fs-lg)}
}
/* Phones: cells are 32-45px wide, too narrow for a two-digit date and the
   mark side by side. The mark rides the cell's corner like a notification
   badge (it sits in the 5px gutter, so it never covers a neighbour). */
@media (max-width:480px){
  .cal-cover{width:15px;height:15px;top:-5px;right:-5px;z-index:2;
    box-shadow:0 0 0 1.5px var(--bw-card),0 0 0 2.5px var(--bw-mark-ring)}
  .cal-cell[aria-pressed="true"] .cal-cover{box-shadow:0 0 0 1.5px var(--bw-card),0 0 0 2.5px var(--bw-on-orange)}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .lead-grid{grid-template-columns:1fr;gap:var(--s-8)}
  .spine{border-left:0;padding-left:0;border-top:1px solid var(--bw-line);padding-top:var(--s-6)}
  .spine-item::before{display:none}
  .article-layout{grid-template-columns:minmax(0,1fr);gap:var(--s-10)}
  .flash-band{padding-block:var(--s-6) var(--s-4)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid>.about{grid-column:1/-1}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ratecard{grid-template-columns:1fr}
  .team{grid-template-columns:1fr 1fr}
  .ctaband{grid-template-columns:1fr;padding:var(--s-6)}
  .stats{grid-template-columns:1fr 1fr;gap:var(--s-5)}
}
@media (max-width:720px){
  :root{--fs-4xl:2rem;--fs-3xl:1.65rem;--fs-2xl:1.4rem}
  .grid-3,.grid-2,.grid-4{grid-template-columns:1fr}
  .masthead .wrap{gap:var(--s-3)}
  .masthead .searchbox{display:none}
  .util-date{display:none}
  .gnews-txt{display:none}
  .gnews-badge{padding:5px}
  .lang-btn{padding:0 8px}
  .lang-cur{display:none}
  /* On phones a 3-bar sticky header eats too much screen. Let the ticker and
     masthead scroll away; keep only the nav pinned for navigation. */
  .util{position:sticky;top:0}
  .masthead{position:sticky;top:35px}
  .nav{top:112px}
  .prose h2[id],.prose h3[id]{scroll-margin-top:175px}
  .team{grid-template-columns:1fr}
  .article h1{max-width:none}
  .event{grid-template-columns:64px 1fr;row-gap:var(--s-3)}
  .contact-cta{grid-template-columns:1fr;gap:var(--s-6);padding:var(--s-6)}
  .contact-cta .actions{flex-direction:row;flex-wrap:wrap}
  .nav-mini-logo{display:none}
  .logo img{height:40px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto !important}
}

/* ============================================================
   MOBILE OPTIMISATION (≤720px)
   The layout was collapsing correctly but reading as desktop-shrunk.
   These rules make phones a first-class layout, not a fallback.
   ============================================================ */
@media (max-width:720px){
  /* --- Ad slots: reserve the height, drop the developer chatter --- */
  .adslot .dims,.adslot .note{display:none}
  .adslot .lbl{margin:0}
  .adslot--header{min-height:60px}
  .adslot--footer{min-height:110px}
  .adslot{padding:var(--s-3)}

  /* --- Dev-only annotations never show on a phone --- */
  .anno{display:none}
  #page-advertise .stats + p.dim{display:none}

  /* --- Advertise page: stats go 2-up, placeholder note hidden --- */
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4)}
  .stat .n{font-size:var(--fs-2xl)}
  .ratecard,.ratecard--4{grid-template-columns:1fr}
  .datatable{font-size:var(--fs-xs)}
  .datatable th,.datatable td{padding:8px 6px}

  /* --- Tighter vertical rhythm: desktop spacing is too airy at 390px --- */
  :root{--band:var(--s-10);--s-16:48px;--s-20:56px}
  .band{margin-top:var(--s-10)}
  .sec-head{margin-bottom:var(--s-4)}
  .pagehead{padding:var(--s-5) 0 var(--s-4);margin-bottom:var(--s-5)}
  .pagehead p{font-size:var(--fs-sm)}
  .footer{margin-top:var(--s-12)}

  /* --- Mobile lists show headline only; the dek is desktop-only --- */
  .card .dek,.card--row .dek,#page-interviews .dek{display:none}
  .card--lead .dek{display:none}

  /* --- Cards: full-bleed image, comfortable text --- */
  .card h3{font-size:var(--fs-md)}
  .card--lead h3{min-height:0;-webkit-line-clamp:3}
  .card--lead .dek{min-height:0}
  .card--row{gap:var(--s-3)}
  .card--row .thumb{width:96px;flex:none}

  /* --- Event filters: fewer controls visible, search full width --- */
  .evfilters input{flex:1 1 100%}
  .evfilters select{flex:1 1 calc(50% - var(--s-2))}
  .evbar{gap:var(--s-3)}
  .evtabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;padding-bottom:2px}
  .evtabs::-webkit-scrollbar{display:none}

  /* --- Touch targets: nothing interactive under 44px tall --- */
  .btn,.evtab,.pgbtn,.flash-filters button,.nav a{min-height:44px;display:inline-flex;align-items:center}
  .flash-filters button{padding:0 14px}
  .nav a{padding:0 12px}

  /* --- Newsflash: give the timeline room --- */
  .flash-aside{margin-top:var(--s-6)}
  .flash-foot{flex-direction:column;align-items:flex-start;gap:var(--s-3)}
  .flash-foot .btn{width:100%;justify-content:center}

  /* --- Contact CTA buttons full width --- */
  .contact-cta .actions .btn{flex:1;justify-content:center}

  /* --- Breaking strip label compact --- */
  .breaking .wrap{height:38px;gap:var(--s-2)}
  .breaking .lbl{font-size:var(--fs-2xs);padding:2px 8px}

  /* --- Mobile nav: hamburger + full-height drawer --- */
  .nav .wrap{position:relative}
  .nav{backdrop-filter:none;background:var(--bw-bg)}
  .nav.is-open{z-index:210}
  .nav.is-open .wrap{position:relative;z-index:220;background:var(--bw-bg)}
  .nav-toggle{position:relative;z-index:221}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:var(--s-2);background:none;border:0;color:var(--bw-white);font-size:22px;cursor:pointer;flex:none}
  .ask-toggle .ask-toggle-label{display:none}
  .ask-toggle{width:44px;padding:0;justify-content:center;box-shadow:none}
  .search-toggle{display:inline-flex;margin-left:auto}
  #page-system .wrap{overflow-x:hidden}
  #page-system [style*="repeat(12"]{grid-template-columns:repeat(12,minmax(6px,1fr))!important}
  /* Design System page: fixed-column layout demos must not force page-wide scroll */
  #page-system [style*="repeat(12"]{overflow-x:auto}
  #page-system .codeblock{max-width:100%}
  .ask-toggle{margin-left:var(--s-2)}
  /* mobile search sheet under the nav */
  .masthead .searchbox{display:none}
  body.search-open .masthead .searchbox{
    display:flex;position:fixed;top:var(--nav-bottom,157px);left:0;right:0;z-index:190;
    margin:0;padding:var(--s-3) var(--s-4);background:var(--bw-bg);border-bottom:1px solid var(--bw-line);
    box-shadow:0 8px 24px -12px rgba(0,0,0,.4);
  }
  body.search-open .masthead .searchbox input{width:100%}
  .nav .navscroll{
    position:fixed;top:var(--nav-bottom,157px);left:0;right:0;bottom:0;z-index:200;
    flex-direction:column;overflow-y:auto;
    background:var(--bw-bg);border-top:1px solid var(--bw-line);
    padding:var(--s-3) 0 100px;
    transform:translateX(100%);visibility:hidden;
    transition:transform .22s ease,visibility 0s .22s;
  }
  .nav.is-open .navscroll{transform:translateX(0);visibility:visible;transition:transform .22s ease,visibility 0s}
  .nav .navscroll a{
    display:flex;align-items:center;min-height:52px;padding:0 var(--s-5);
    border-bottom:1px solid var(--bw-line-soft);font-size:var(--fs-md);
  }
  .nav .navscroll a[aria-current="page"]{color:var(--bw-orange-ink);border-left:3px solid var(--bw-orange);padding-left:calc(var(--s-5) - 3px)}
  body.nav-locked{overflow:hidden}
}
@media (min-width:721px){
  .nav-toggle{display:none}
}

/* ---- audit fixes: layout robustness, mobile, dead-spec cleanups ---- */
.btn{white-space:nowrap}
.nav a{padding:13px 10px}
.util{top:0}
.masthead{top:var(--util-h,35px)}
.nav{top:calc(var(--util-h,35px) + var(--mast-h,77px))}
.sticky{top:calc(var(--util-h,35px) + var(--mast-h,77px) + var(--nav-h,47px) + var(--s-5))}
.prose h2[id],.prose h3[id]{scroll-margin-top:calc(var(--util-h,35px) + var(--mast-h,77px) + var(--nav-h,47px) + var(--s-5))}
.bylinebar .av{border-radius:50%;background:linear-gradient(140deg,var(--bw-orange),var(--bw-orange-dim));display:grid;place-items:center;color:#0B1420;font-weight:700;flex:none}
.toc li.sub{counter-increment:none}
.share-btn{font:inherit;color:inherit}
.share-btn.is-done{color:var(--bw-green-ink);border-color:var(--bw-green-ink)}
a[data-pending-src]{cursor:default;text-decoration-style:dotted}
.iv-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gutter);align-items:center;border:1px solid var(--bw-line);border-radius:var(--r-lg);overflow:hidden;background:var(--bw-card);margin-bottom:var(--s-10)}
.iv-hero-body{padding:var(--s-8)}
.iv-hero-fig{aspect-ratio:4/3;align-self:stretch}
.form-msg{margin:var(--s-4) 0 0;padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);border:1px solid var(--bw-line);background:var(--bw-card);font-size:var(--fs-sm);color:var(--bw-light)}
.form-msg.is-err{border-color:rgba(231,76,60,.45);color:var(--bw-red-ink)}
.form-msg.is-ok{border-color:rgba(46,204,113,.45)}
.form-msg[hidden]{display:none}
.field input:user-invalid,.field textarea:user-invalid{border-color:var(--bw-red)}
.search-empty{font-size:var(--fs-sm)}
.search-empty a{color:var(--bw-orange-ink);text-decoration:underline}
#search-grid .card .chip{align-self:flex-start}
.tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.lang-note[hidden]{display:none}
@media (max-width:1080px){
  .iv-hero{grid-template-columns:1fr}
  .iv-hero-fig{aspect-ratio:16/9}
  .iv-hero-fig{order:-1}
}
@media (max-width:720px){
  .specrow{grid-template-columns:1fr;gap:var(--s-2)}
  .specrow>div{min-width:0}
  #page-system [style*="repeat(12"]{gap:var(--s-1)!important;overflow:hidden}
  #page-system [style*="repeat(12"]>div{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 4px}
  .iv-hero-body{padding:var(--s-5)}
  #grid-iv .card .thumb{aspect-ratio:16/10!important}
  .masthead .wrap{padding-block:var(--s-3)}
  .adslot--header{min-height:60px}
  .nav .navscroll{top:var(--nav-bottom,157px)}
  .sticky{position:static}
}

/* ============================================================
   PHONE HEADER — the logo is never squeezed (Brand rule: never
   stretch or distort the mark). The controls give up space instead.
   ============================================================ */
@media (max-width:720px){
  .masthead .logo{flex:none}
  .masthead .logo img{width:auto;max-width:none}
}
@media (max-width:480px){
  .masthead .wrap{gap:6px}
  .masthead .logo img{height:32px}
  .lang-btn{padding:0 7px;gap:3px}
  .lang-caret{display:none}
  .gnews-badge{padding:4px}
  .themetoggle{padding:3px;gap:3px}
  .themetoggle button{width:26px;height:26px}
  .masthead .btn{padding:8px 11px;font-size:var(--fs-xs)}
}
@media (max-width:360px){
  .masthead .wrap{gap:4px;padding-inline:var(--s-4)}
  .masthead .logo img{height:27px}
  .themetoggle button{width:24px;height:24px}
  .masthead .btn{padding:7px 9px}
}

/* ============================================================
   BACK NAVIGATION — every page except Home carries a Back button
   and a breadcrumb trail; phones also get a back arrow in the
   sticky nav so it is reachable while scrolled deep in a list.
   ============================================================ */
.backbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-3) var(--s-4);padding-top:var(--s-6)}
.backbar .crumbs{margin:0;min-width:0}
.backbar + .pagehead{padding-top:var(--s-4)}
.article .backbar{padding-top:0;margin-bottom:var(--s-5)}
.backbtn{
  display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px 0 11px;flex:none;
  border:1px solid var(--bw-line);border-radius:var(--r-pill);background:var(--bw-card);
  color:var(--bw-white);font-size:var(--fs-xs);font-weight:600;line-height:1;white-space:nowrap;
  max-width:100%;transition:border-color .16s ease,background .16s ease;
}
.backbtn .lbl{overflow:hidden;text-overflow:ellipsis}
.backbtn:hover{border-color:var(--bw-orange);background:var(--bw-card-2)}
.backbtn .arr{font-size:15px;color:var(--bw-orange-ink)}
.art-backfoot{display:flex;margin-top:var(--s-8)}
.nav-back{display:none}
@media (max-width:720px){
  .nav-back:not([hidden]){display:inline-flex;align-items:center;justify-content:center;width:40px;height:44px;flex:none;color:var(--bw-white);font-size:30px;line-height:1;border-radius:var(--r-sm);padding-bottom:3px}
  .nav-back:hover{background:var(--bw-card)}
  .nav-back:not([hidden]) + .nav-toggle{margin-left:0}
}
.art-note{margin-top:var(--s-6);font-family:var(--font-display);line-height:1.6}
.authorbox .av{border-radius:50%;background:linear-gradient(140deg,var(--bw-orange),var(--bw-orange-dim));display:grid;place-items:center;color:#0B1420;font-weight:700}
.bylinebar .av.av--muted{background:var(--bw-card-2);color:var(--bw-mid);border:1px solid var(--bw-line)}
.bylinebar .who .who-name{font-size:var(--fs-sm);color:var(--bw-white);font-weight:600}

/* ===== Audit fixes ===== */
[hidden]:not([hidden=until-found i]){display:none!important}
html{scroll-padding-top:176px}
.field input,.field select,.field textarea,.searchbox{border-color:var(--bw-field)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--bw-orange-ink)}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:var(--bw-red-ink)}
.field .err{font-size:var(--fs-xs);color:var(--bw-red-ink);margin-top:5px}
.askfab:not(.is-on){display:none!important}
.askfab,.askpanel{margin-bottom:env(safe-area-inset-bottom)}
.consent{padding-bottom:calc(var(--s-6) + env(safe-area-inset-bottom))}
.consent-prefs{margin:0 0 var(--s-4);padding:0;border:0}
.consent-prefs label{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--bw-line);font-size:var(--fs-sm);color:var(--bw-light);cursor:pointer}
.consent-prefs input{width:20px;height:20px;accent-color:var(--bw-orange);flex:none;margin-top:1px}
.consent-prefs small{display:block;color:var(--bw-mid);font-size:var(--fs-xs)}
.px-asof{color:var(--bw-dim);white-space:nowrap}
@media (max-width:767px){
  html{scroll-padding-top:64px}
  .util,.masthead{position:static!important}
  .nav{top:0!important}
  .prose h2[id],.prose h3[id]{scroll-margin-top:64px}
  .field input,.field select,.field textarea,.searchbox input,#askinput{font-size:16px}
  .breaking a,.bk-track a{padding-block:12px}
}


/* ============================================================
   WORDPRESS / CONTENT ADDITIONS (bitcoinworld theme, 2026-09-28)
   ============================================================ */
.masthead .logo img{height:44px;width:auto}
.searchbox{margin:0}
.nav-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;flex:none;background:none;border:0;color:var(--bw-white);font-size:20px;cursor:pointer;border-radius:var(--r-sm)}
.search-toggle{display:none}
@media (max-width:900px){
  .searchbox{display:none}
  .search-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--bw-white)}
  .nav-toggle{display:inline-flex}
  .nav .navscroll{display:none;flex-direction:column;width:100%;padding:8px 0}
  .nav.is-open .navscroll{display:flex}
  .nav a{padding:12px 8px;border-bottom:1px solid var(--bw-line-soft)}
  .masthead .wrap{gap:var(--s-3)}
}
.prose img{height:auto;border-radius:var(--r-sm)}
.prose figure,.prose .wp-caption{margin:var(--s-8) 0;max-width:100%}
.prose figcaption,.prose .wp-caption-text{font-family:var(--font-display);font-size:var(--fs-xs);color:var(--bw-dim);margin-top:var(--s-2)}
.prose iframe{max-width:100%}
.prose table{width:100%;border-collapse:collapse;font-family:var(--font-display);font-size:var(--fs-sm);margin:var(--s-6) 0}
.prose th{text-align:left;color:var(--bw-mid);font-weight:600;font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--bw-line)}
.prose td{padding:11px 12px;border-bottom:1px solid var(--bw-line-soft);color:var(--bw-light)}
.prose h1{font-family:var(--font-display);font-size:var(--fs-2xl);margin:var(--s-10) 0 var(--s-3)}
.prose h4{font-family:var(--font-display);font-size:var(--fs-md);margin:var(--s-6) 0 var(--s-2)}
.prose pre,.prose code{font-family:var(--font-mono);font-size:.9em;color:var(--bw-code)}
.prose pre{background:var(--bw-card);border:1px solid var(--bw-line);border-radius:var(--r-sm);padding:var(--s-4);overflow:auto}
/* AI-pipeline article blocks */
.prose .aeo-answer-box{border-left:3px solid var(--bw-orange);background:linear-gradient(90deg,var(--bw-orange-wash),transparent 70%);padding:var(--s-4) var(--s-5);border-radius:0 var(--r-sm) var(--r-sm) 0;margin:var(--s-5) 0;font-family:var(--font-display);font-size:var(--fs-base);color:var(--bw-light)}
.prose .aeo-faq{border-top:1px solid var(--bw-line);margin-top:var(--s-10);padding-top:var(--s-4)}
.prose .aeo-faq details,.prose details.acc{border:1px solid var(--bw-line);border-radius:var(--r-sm);background:var(--bw-card);margin:0 0 var(--s-3)}
.prose .aeo-faq summary,.prose details.acc summary{cursor:pointer;padding:var(--s-4) var(--s-5);font-family:var(--font-display);font-weight:600;color:var(--bw-white);font-size:var(--fs-base)}
.prose .aeo-faq details p{padding:0 var(--s-5) var(--s-4);margin:0;font-size:var(--fs-base)}
/* Content added by mu-plugins, restyled to the theme */
.prose .bw-disclosure{background:var(--bw-blue-wash)!important;border:1px solid var(--bw-line)!important;border-left:3px solid var(--bw-blue-ink)!important;border-radius:var(--r-sm)!important;color:var(--bw-light)!important;font-family:var(--font-display);font-size:var(--fs-sm)!important;padding:var(--s-4) var(--s-5)!important;margin:0 0 var(--s-6)!important}
.prose .bw-disclosure strong{color:var(--bw-blue-ink)}
.prose .ai-content-disclosure{background:var(--bw-card)!important;border:1px solid var(--bw-line)!important;border-left:3px solid var(--bw-orange)!important;color:var(--bw-light)!important;font-family:var(--font-display);font-size:var(--fs-sm)!important;border-radius:var(--r-sm)!important;margin:var(--s-8) 0 0!important}
.prose .ai-content-disclosure strong{color:var(--bw-white)!important;font-size:var(--fs-xs)!important;letter-spacing:.08em;text-transform:uppercase}
.prose .ai-content-disclosure a{color:var(--bw-orange-ink)}
.prose .article-sources{border-top:1px solid var(--bw-line);margin-top:var(--s-10)!important;padding-top:var(--s-5);font-family:var(--font-display);font-size:var(--fs-sm)!important;color:var(--bw-mid)!important}
.prose .article-sources strong{display:block;font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--bw-mid);margin-bottom:var(--s-2)}
.prose .article-sources a{color:var(--bw-light);border-bottom:1px solid var(--bw-line)}
.prose .bw-related-reading{border:1px solid var(--bw-line);border-radius:var(--r-md);background:var(--bw-card);padding:var(--s-5);margin:var(--s-8) 0;font-family:var(--font-display);font-size:var(--fs-sm)}
.prose .bw-related-reading h3,.prose .bw-related-reading h2,.prose .bw-related-reading strong{font-family:var(--font-display);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--bw-mid);margin:0 0 var(--s-3)}
.prose .bw-related-reading ul{margin:0;padding-left:1.1em}
.prose .bw-related-reading a{color:var(--bw-light);border-bottom:1px solid var(--bw-line)}
.prose .post-disclaimer{display:none}
/* Pagination (WordPress markup) */
.pager .nav-links{display:flex;gap:var(--s-2);flex-wrap:wrap;justify-content:center}
.pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 12px;border:1px solid var(--bw-line);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--bw-light)}
.pager .page-numbers.current{background:var(--bw-orange);border-color:var(--bw-orange-ink);color:var(--bw-on-orange)}
.pager a.page-numbers:hover{border-color:var(--bw-dim);color:var(--bw-white)}
.pager h2.screen-reader-text{position:absolute;left:-9999px}
/* Rank Math breadcrumbs */
.crumbs .rank-math-breadcrumb a,.crumbs .rank-math-breadcrumb span{color:var(--bw-dim);font-size:var(--fs-xs)}
.crumbs .rank-math-breadcrumb .separator{margin:0 6px;color:var(--bw-line)}
.crumbs .rank-math-breadcrumb .last{color:var(--bw-mid)}
/* Footer menus rendered by WP */
.footer ul.menu{list-style:none;margin:0;padding:0}
/* Events page list */
.up-list--page .up-item{display:grid;grid-template-columns:64px 1fr;gap:var(--s-4);padding:var(--s-4) 0;border-bottom:1px solid var(--bw-line-soft)}
.up-list--page .up-date{text-align:center;border:1px solid var(--bw-line);border-radius:var(--r-sm);padding:6px 0;background:var(--bw-card)}
.up-list--page .up-date b{display:block;font-size:var(--fs-xl);color:var(--bw-white);line-height:1}
.up-list--page .up-date span{font-size:var(--fs-2xs);color:var(--bw-dim);text-transform:uppercase;letter-spacing:.06em}
.up-list--page h3{font-size:var(--fs-md);font-weight:500}
.up-list--page h3 a:hover{color:var(--bw-orange-ink)}
/* Footer award line + team card link */
.footer .award{font-size:var(--fs-xs);color:var(--bw-mid)}
.member .member-li{display:inline-block;margin-top:var(--s-2);font-size:var(--fs-xs);color:var(--bw-orange-ink)}
/* WPForms inside the theme */
.bw-form .wpforms-field-label{font-size:var(--fs-xs);font-weight:600;color:var(--bw-light)}
.bw-form input[type=text],.bw-form input[type=email],.bw-form input[type=url],.bw-form select,.bw-form textarea{width:100%;background:var(--bw-bg-deep)!important;border:1px solid var(--bw-line)!important;border-radius:var(--r-sm)!important;padding:11px 13px!important;color:var(--bw-white)!important;font:inherit!important;font-size:var(--fs-sm)!important}
.bw-form button[type=submit]{background:var(--bw-orange)!important;color:var(--bw-on-orange)!important;border:0!important;border-radius:var(--r-sm)!important;padding:10px 18px!important;font-weight:600!important;font-size:var(--fs-sm)!important}
/* Hide anything the page builder still prints */
.elementor-location-header,.elementor-location-footer{display:none}

/* Real images inside fixed-ratio frames: fill and crop, never stretch */
.thumb img,.lead-fig img,.iv-hero-fig img{width:100%;height:100%;object-fit:cover;display:block}
.card .thumb,.lead-fig{position:relative}
.figure img{width:100%;height:auto;border-radius:var(--r-sm);aspect-ratio:auto}
.prose img{max-width:100%;height:auto}
.authorbox .av,.bylinebar .av,.byline .av,.member .av{flex:none}
.member img{width:72px;height:72px;border-radius:50%;object-fit:cover}
@media (max-width:1080px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.lead-grid,.article-layout{grid-template-columns:1fr}.rail .sticky{position:static}}
@media (max-width:640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.lead-main h1{font-size:var(--fs-2xl)}.article h1{font-size:var(--fs-2xl)}.card--row .thumb{width:96px}.bylinebar{gap:var(--s-3)}.util .wrap{height:auto;padding:6px 0;flex-wrap:wrap}.ticker{width:100%}.contact-cta{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.legalbar .wrap{flex-direction:column;gap:4px;align-items:flex-start}}
/* Live ad units: reserve height, no placeholder chrome */
.adslot.is-live{border:0;background:none;padding:0;display:block;text-align:center}
.adslot.is-live .lbl{margin-bottom:4px}
/* Consent banner */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;max-width:560px;margin-inline:auto;background:var(--bw-bg);border:1px solid var(--bw-line);border-radius:var(--r-lg);box-shadow:var(--shadow-lift);padding:var(--s-5) var(--s-6)}
.consent[hidden]{display:none}
.consent h3{font-size:var(--fs-md);margin-bottom:var(--s-2)}
.consent p{font-size:var(--fs-sm);color:var(--bw-mid)}
.consent .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:var(--s-3)}
.consent-prefs{border:1px solid var(--bw-line);border-radius:var(--r-sm);padding:var(--s-3) var(--s-4);margin:0 0 var(--s-3)}
.consent-prefs label{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);padding:6px 0;color:var(--bw-light)}
.consent-prefs small{display:block;color:var(--bw-dim);font-size:var(--fs-2xs)}
.footer button[data-consent-open]{color:inherit;padding:0;font:inherit}
/* Server-rendered events calendar */
.cal-dow,.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow span{font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--bw-dim);text-align:center;padding:6px 0}
.cal-day{aspect-ratio:1;display:grid;place-items:center;border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--bw-mid);border:1px solid transparent}
.cal-day.is-pad{visibility:hidden}
.cal-day.is-today{border-color:var(--bw-orange-ink);color:var(--bw-white)}
.cal-day.has-ev{background:var(--bw-orange-wash);color:var(--bw-orange-ink);font-weight:600}
.cal-day.has-ev a{display:grid;place-items:center;width:100%;height:100%}
.cal-legend{font-size:var(--fs-2xs);color:var(--bw-dim);margin-top:var(--s-3)}
.cal-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--bw-orange);margin-right:6px}
.cal-nav a{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 10px;border:1px solid var(--bw-line);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--bw-light);margin-left:6px}
.up-item-mini{padding:8px 0;border-bottom:1px solid var(--bw-line-soft);font-size:var(--fs-sm)}
.up-item-mini a:hover{color:var(--bw-orange-ink)}
/* Policy tabs */
.tabpanel[hidden]{display:none}
/* Frames match the site's real image ratio (2:1 / 16:9 uploads): near-zero cropping */
.card .thumb{aspect-ratio:16/9}
.card--row .thumb{width:128px;aspect-ratio:16/9;flex:none}
.card .thumb[style*="aspect-ratio:1"]{aspect-ratio:16/9 !important}
.iv-hero-fig{aspect-ratio:16/9}
.thumb img,.lead-fig img,.iv-hero-fig img{object-position:center}
@media (max-width:640px){.card--row .thumb{width:112px}}

/* Brand mark on the article hero figure (real <img>, not the mockup placeholder) */
.article .figure{position:relative}
.article .figure::after{content:"";position:absolute;right:14px;bottom:14px;z-index:1;width:44px;height:44px;border-radius:50%;background:#000 var(--bw-mark,none) center/86% auto no-repeat;box-shadow:0 0 0 1.5px rgba(255,255,255,.34),0 2px 8px rgba(0,0,0,.45);pointer-events:none}
.article .figure figcaption~*{display:none}
.article .figure:has(figcaption)::after{bottom:calc(14px + 1.8em)}

.nav .wrap{justify-content:flex-start}
.themetoggle button svg,.share-btn svg{display:block}
.award-mark{color:var(--bw-orange-ink)}
@media (max-width:900px){.nav .wrap{justify-content:space-between}.gnews-txt{display:none}.gnews-badge{padding:5px 6px}}

.pp-logo--img{background:#fff;overflow:hidden;display:inline-grid;place-items:center}
.pp-logo--img img{width:100%;height:100%;object-fit:contain;border-radius:inherit}

.pt-logo--img{background:#fff;display:inline-grid;place-items:center;overflow:hidden}
.pt-logo--img img{width:70%;height:70%;object-fit:contain}
