/* Self-hosted DM Sans + Source Serif 4 (latin, display=swap) */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K6z9mXg.woff2) format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K6z9mXg.woff2) format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K6z9mXg.woff2) format('woff2');
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gb8te1Xb7G.woff2) format('woff2');
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gb8te1Xb7G.woff2) format('woff2');
}

/* Baccaratin.com — Sandstone Matchday editorial publication
   Warm-paper light palette, ruled-newspaper geometry, DM Sans utility + Source Serif 4 editorial */

:root{
  --paper:#FFF8F2;
  --paper-deep:#F6EBD7;
  --surface:#FFFFFF;
  --rule:#E6DCC8;
  --rule-strong:#C9B895;
  --ink:#2A1F18;
  --ink-soft:#5C4838;
  --ink-mute:#6A5640;
  --terracotta:#B84A2A;
  --terracotta-deep:#8A371F;
  --terracotta-soft:#E3C7BC;
  --teal:#1F6F6B;
  --teal-soft:#BFD8D6;
  --amber:#C58A2E;
  --amber-soft:#EBD8B3;
  --serif: "Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;
  --sans: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --maxw: 1280px;
  --rail: 220px;
  --shadow-soft: 0 1px 0 rgba(42,31,24,0.06);
  --shadow-card: 0 1px 2px rgba(42,31,24,0.08), 0 6px 18px rgba(42,31,24,0.04);
  --radius-card: 4px;
  --radius-pill: 999px;
  --leading: 1.65;
  --leading-tight: 1.15;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  font-size:16px;
  line-height:var(--leading);
  color:var(--ink);
  background:var(--paper);
  background-image:
    linear-gradient(to bottom, rgba(230,220,200,0.18) 1px, transparent 1px);
  background-size: 100% 64px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
}
.skip{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); -webkit-clip-path:inset(50%); clip-path:inset(50%); white-space:nowrap; }
.skip:focus{ position:fixed; left:8px; top:8px; width:auto; height:auto; clip:auto; -webkit-clip-path:none; clip-path:none; background:var(--paper); padding:8px 12px; border:1px solid var(--rule-strong); z-index:90; }
img,svg,picture,video{ display:block; max-width:100%; height:auto; }
a{ color:var(--terracotta); text-decoration:none; text-underline-offset:2px; }
a:hover{ color:var(--terracotta-deep); text-decoration:underline; }
a:focus-visible{ outline:2px solid var(--terracotta); outline-offset:2px; border-radius:2px; }

h1,h2,h3,h4,h5{ font-family:var(--serif); font-weight:700; color:var(--ink); margin:0 0 .6em; line-height:var(--leading-tight); letter-spacing:-0.005em; }
h1{ font-size: clamp(34px, 4.8vw, 64px); letter-spacing:-0.015em; }
h2{ font-size: clamp(26px, 3.2vw, 38px); }
h3{ font-size: clamp(20px, 2.4vw, 26px); }
h4{ font-size: clamp(17px, 2vw, 20px); }
p{ margin:0 0 1.1em; max-width:68ch; }
p:last-child{ margin-bottom:0; }
ul,ol{ margin:0 0 1.1em; padding-left:1.4em; }
li{ margin-bottom:.4em; }

.shell{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
.shell--narrow{ max-width:880px; }

.eyebrow{
  font-family:var(--sans);
  font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-soft); font-weight:600;
}
.eyebrow--terracotta{ color:var(--terracotta); }
.byline{
  font-family:var(--sans);
  font-size:13px; color:var(--ink-soft);
}
.dateline{
  font-family:var(--sans);
  font-size:13px; color:var(--ink-mute);
}
.rule{ height:1px; background:var(--rule-strong); border:0; margin:0; }
.rule--soft{ background:var(--rule); }

/* ---------------- HEADER (utility-bar, sticky) ---------------- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:var(--paper);
  border-bottom:1px solid var(--rule-strong);
  backdrop-filter:saturate(140%);
}
/* Keep the hamburger toggle above the scrim so open→close click tests (and users) can always reach it. */
body.is-drawer-open .site-header{ z-index:90; }
.site-header__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:24px;
  height:72px;
}
.brand{ display:flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; }
.brand:hover{ text-decoration:none; color:var(--ink); }
.brand__mark{
  width:34px; height:34px; border-radius:50%;
  background:var(--terracotta);
  color:var(--paper);
  display:grid; place-items:center;
  font-family:var(--serif); font-weight:700; font-size:18px;
  letter-spacing:-0.02em;
}
.brand__name{ font-family:var(--serif); font-weight:700; font-size:20px; letter-spacing:-0.01em; }
.brand__tag{ font-family:var(--sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-mute); display:block; margin-top:2px; }

.primary-nav{ display:none; gap:28px; }
.primary-nav a{ color:var(--ink); font-size:14px; font-weight:500; padding:6px 0; border-bottom:2px solid transparent; }
.primary-nav a:hover{ color:var(--terracotta); border-bottom-color:var(--terracotta); text-decoration:none; }
.primary-nav a[aria-current="page"]{ color:var(--terracotta); border-bottom-color:var(--terracotta); }
.header-cta{ display:none; }
@media (min-width: 960px){
  .primary-nav{ display:flex; }
  .header-cta{ display:inline-flex; }
}
.hamburger{
  display:inline-flex; align-items:center; justify-content:center;
  flex:0 0 auto;
  width:44px; min-width:44px; height:44px;
  background:transparent; border:1px solid var(--rule-strong);
  border-radius:4px; cursor:pointer; color:var(--ink);
  position:relative; z-index:1;
}
.hamburger__bars{ display:inline-block; width:20px; height:14px; position:relative; }
.hamburger__bars::before,
.hamburger__bars::after,
.hamburger__bars span{
  content:""; position:absolute; left:0; right:0; height:2px; background:var(--ink);
}
.hamburger__bars::before{ top:0; }
.hamburger__bars span{ top:6px; }
.hamburger__bars::after{ bottom:0; }
/* X state on the header toggle while the drawer is open */
body.is-drawer-open [data-drawer-open] .hamburger__bars span{ opacity:0; }
body.is-drawer-open [data-drawer-open] .hamburger__bars::before{
  top:6px; transform:rotate(45deg);
}
body.is-drawer-open [data-drawer-open] .hamburger__bars::after{
  bottom:6px; transform:rotate(-45deg);
}
body.is-drawer-open [data-drawer-open] .hamburger__bars::before,
body.is-drawer-open [data-drawer-open] .hamburger__bars::after{
  transition:transform .2s ease, top .2s ease, bottom .2s ease;
}
@media (min-width: 960px){
  .hamburger{ display:none; }
  /* Drawer close stays available if drawer markup is ever shown on wide viewports */
  .mobile-drawer .hamburger.mobile-drawer__close{ display:inline-flex; }
}

.mobile-drawer{
  position:fixed; top:72px; right:0; bottom:0; left:auto;
  width:min(360px, 92vw); height:auto;
  background:var(--paper); border-left:1px solid var(--rule-strong);
  transform:translateX(100%);
  visibility:hidden;
  pointer-events:none;
  transition:transform .25s ease, visibility 0s linear .25s;
  z-index:80; display:flex; flex-direction:column;
  padding:16px 24px 24px; box-shadow:-12px 0 24px rgba(42,31,24,0.08);
  overflow-y:auto; -webkit-overflow-scrolling:touch;
}
.mobile-drawer[data-open="true"]{
  transform:translateX(0);
  visibility:visible;
  pointer-events:auto;
  transition:transform .25s ease, visibility 0s linear 0s;
}
.mobile-drawer__close{
  align-self:flex-end;
  position:relative;
  z-index:2;
  flex:0 0 auto;
}
.mobile-drawer__nav{ display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.mobile-drawer__nav a{ color:var(--ink); font-size:18px; font-family:var(--serif); font-weight:600; padding:10px 0; border-bottom:1px solid var(--rule); }
.mobile-drawer__cta{ margin-top:auto; padding-top:16px; }
.drawer-scrim{
  position:fixed; inset:0; background:rgba(42,31,24,0.32);
  opacity:0; pointer-events:none; visibility:hidden;
  transition:opacity .2s ease, visibility 0s linear .2s;
  z-index:70;
}
.drawer-scrim[data-open="true"]{
  opacity:1; pointer-events:auto; visibility:visible;
  transition:opacity .2s ease, visibility 0s linear 0s;
}
body.is-drawer-open{
  overflow:hidden !important;
  touch-action:none;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--sans); font-weight:600; font-size:14px;
  padding:11px 18px; border-radius:var(--radius-pill);
  border:1px solid transparent; cursor:pointer; text-decoration:none;
  white-space:nowrap;
  max-width:100%;
  transition:transform .12s ease, background-color .12s ease, color .12s ease, border-color .12s ease;
}
.btn:active{ transform:translateY(1px); }
.btn--primary{ background:var(--terracotta); color:var(--paper); border-color:var(--terracotta); }
.btn--primary:hover{ background:var(--terracotta-deep); border-color:var(--terracotta-deep); text-decoration:none; color:var(--paper); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--rule-strong); }
.btn--ghost:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); text-decoration:none; }
.btn--lg{ padding:14px 24px; font-size:15px; }
.btn--full{ width:100%; }

/* ---------------- HERO (asymmetric split) ---------------- */
.cover{
  display:grid;
  grid-template-columns: 1fr;
  gap:0;
  border-bottom:1px solid var(--rule-strong);
}
@media (min-width: 880px){
  .cover{ grid-template-columns: minmax(0, 58fr) minmax(0, 42fr); }
}
.cover__photo{
  position:relative;
  aspect-ratio: 16/10;
  background:var(--paper-deep);
  border-right:0;
}
@media (min-width: 880px){
  .cover__photo{ aspect-ratio: auto; min-height: 520px; border-right:1px solid var(--rule-strong); }
}
.cover__photo img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.cover__caption{
  position:absolute; left:16px; bottom:14px;
  font-family:var(--sans); font-size:12px; color:var(--paper);
  background:rgba(42,31,24,0.78); padding:4px 10px; border-radius:2px;
  max-width:60%;
}
.cover__standfirst{
  padding:36px 28px 40px;
  display:flex; flex-direction:column; gap:14px;
}
@media (min-width: 880px){ .cover__standfirst{ padding:56px 48px; } }
.cover__kicker{
  font-family:var(--sans);
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--terracotta); font-weight:700;
}
.cover__title{
  font-family:var(--serif);
  font-weight:700;
  font-size: clamp(30px, 4vw, 50px);
  line-height:1.05; letter-spacing:-0.015em;
  margin:0;
}
.cover__dek{
  font-family:var(--serif);
  font-size: clamp(16px, 1.6vw, 19px);
  line-height:1.5; color:var(--ink-soft);
  margin:0;
}
.cover__meta{
  display:flex; flex-wrap:wrap; gap:18px;
  font-family:var(--sans); font-size:13px; color:var(--ink-mute);
  border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  padding:10px 0;
}
.cover__meta strong{ color:var(--ink); font-weight:600; }
.cover__ctas{ display:flex; flex-wrap:wrap; gap:12px; margin-top:6px; }

/* ---------------- COMPLIANCE STRIP ---------------- */
.compliance{
  background:var(--paper-deep);
  border-bottom:1px solid var(--rule-strong);
}
.compliance__inner{
  display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center;
  padding:14px 24px; font-family:var(--sans); font-size:13px; color:var(--ink-soft);
}
.compliance__inner strong{ color:var(--ink); font-weight:600; }
.compliance__chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 10px; background:var(--surface); border:1px solid var(--rule);
  border-radius:var(--radius-pill); font-size:12px; color:var(--ink);
}

/* ---------------- SECTION FRAME ---------------- */
.section{ padding:64px 0; border-bottom:1px solid var(--rule-strong); }
.section--narrow .shell{ max-width:880px; }
.section--paper{ background:var(--paper); }
.section--deep{ background:var(--paper-deep); }
.section--surface{ background:var(--surface); }
.section__head{
  display:flex; flex-direction:column; gap:8px;
  margin-bottom:28px; padding-bottom:18px; border-bottom:1px solid var(--rule);
}
.section__head--row{ flex-direction:row; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:18px; }
.section__title{ margin:0; font-family:var(--serif); font-size: clamp(24px, 3vw, 36px); line-height:1.1; letter-spacing:-0.01em; }
.section__sub{ color:var(--ink-soft); font-family:var(--serif); font-size:16px; max-width:60ch; margin:0; }

/* ---------------- EDITORIAL INDEX RAIL (signature) ---------------- */
.index-rail{
  display:grid;
  grid-template-columns: 1fr;
  gap:24px;
}
@media (min-width: 880px){
  .index-rail{ grid-template-columns: minmax(0, 1fr) minmax(0, var(--rail)); }
}
.index-rail__list{
  list-style:none; padding:0; margin:0;
  border-top:1px solid var(--rule-strong);
}
.index-rail__list li{
  display:grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap:14px;
  padding:18px 0; border-bottom:1px solid var(--rule);
  align-items:baseline;
}
.index-rail__num{ font-family:var(--serif); font-size:26px; color:var(--terracotta); font-weight:700; }
.index-rail__title{ font-family:var(--serif); font-size:18px; color:var(--ink); font-weight:600; }
.index-rail__title a{ color:inherit; }
.index-rail__title a:hover{ color:var(--terracotta); text-decoration:none; }
.index-rail__time{ font-family:var(--sans); font-size:12px; color:var(--ink-mute); white-space:nowrap; }
.index-rail__aside{
  background:var(--surface); border:1px solid var(--rule-strong);
  padding:20px; border-radius:var(--radius-card);
}
.index-rail__aside h3{ font-family:var(--sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:10px; }

/* ---------------- LEDGER (two-column comparison) ---------------- */
.ledger{
  display:grid;
  grid-template-columns: 1fr;
  gap:0;
  border:1px solid var(--rule-strong);
  border-radius:var(--radius-card);
  overflow:hidden;
  background:var(--surface);
}
@media (min-width: 720px){
  .ledger{ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
.ledger__col{ padding:24px; display:flex; flex-direction:column; gap:14px; min-width:0; }
.ledger__col + .ledger__col{ border-top:1px solid var(--rule-strong); }
@media (min-width: 720px){
  .ledger__col + .ledger__col{ border-top:0; border-left:1px solid var(--rule-strong); }
}
.ledger__head{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
.ledger__title{ font-family:var(--serif); font-size:22px; margin:0; }
.verdict-chip{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  padding:4px 10px; border-radius:var(--radius-pill); font-weight:700;
}
.verdict-chip--ok{ background:var(--teal-soft); color:#14504C; }
.verdict-chip--warn{ background:var(--amber-soft); color:#7A5012; }
.verdict-chip--no{ background:var(--terracotta-soft); color:var(--terracotta-deep); }
.ledger__rule{ font-family:var(--serif); font-size:16px; color:var(--ink-soft); line-height:1.55; margin:0; }
.ledger__rows{ display:flex; flex-direction:column; gap:8px; }
.ledger__row{
  display:flex; justify-content:space-between; gap:12px; align-items:flex-start;
  padding:8px 0; border-top:1px solid var(--rule);
}
.ledger__row dt{ font-family:var(--sans); font-size:13px; color:var(--ink-mute); margin:0; min-width:0; }
.ledger__row dd{ font-family:var(--sans); font-size:14px; color:var(--ink); margin:0; text-align:right; min-width:0; }

/* ---------------- MELD CALLOUTS ---------------- */
.meld-callouts{
  display:grid;
  grid-template-columns: 1fr;
  gap:20px;
}
@media (min-width: 720px){
  .meld-callouts{ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); }
}
.meld-callout{
  background:var(--surface);
  border:1px solid var(--rule-strong);
  border-radius:var(--radius-card);
  padding:20px;
  display:flex; flex-direction:column; gap:10px;
  min-width:0;
}
.meld-callout__tag{
  font-family:var(--sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--terracotta); font-weight:700;
}
.meld-callout__title{ font-family:var(--serif); font-size:20px; margin:0; }
.meld-callout__body{ font-family:var(--serif); font-size:15px; color:var(--ink-soft); margin:0; }
.meld-callout__example{
  font-family:var(--sans); font-size:12px; color:var(--ink-mute);
  background:var(--paper); border:1px dashed var(--rule-strong); padding:8px 10px; border-radius:2px;
}

/* ---------------- TABS (format comparison ledger) ---------------- */
.tabs{ background:var(--surface); border:1px solid var(--rule-strong); border-radius:var(--radius-card); overflow:hidden; }
.tabs__bar{
  display:flex; overflow-x:auto;
  border-bottom:1px solid var(--rule-strong);
  scrollbar-width:thin;
}
.tabs__btn{
  background:transparent; border:0; padding:14px 18px;
  font-family:var(--sans); font-size:13px; font-weight:600;
  color:var(--ink-soft); cursor:pointer; white-space:nowrap;
  border-bottom:2px solid transparent;
}
.tabs__btn:hover{ color:var(--ink); }
.tabs__btn[aria-selected="true"]{ color:var(--terracotta); border-bottom-color:var(--terracotta); }
.tabs__btn:focus-visible{ outline:2px solid var(--terracotta); outline-offset:-2px; }
.tabs__panel{ display:none; padding:24px; }
.tabs__panel[hidden]{ display:none !important; }
.tabs__panel[data-active="true"]{ display:block; }
.tabs__grid{ display:grid; grid-template-columns:1fr; gap:14px; }
@media (min-width:720px){ .tabs__grid{ grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); } }
.tabs__card{
  border:1px solid var(--rule); padding:14px; border-radius:2px; background:var(--paper);
}
.tabs__card h3{ font-family:var(--sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-mute); margin:0 0 8px; }
.tabs__card p{ font-family:var(--serif); font-size:14px; color:var(--ink); margin:0; }

/* ---------------- COLLAGE ---------------- */
.collage{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:880px){ .collage{ grid-template-columns: minmax(0,1fr) minmax(0,1fr); } }
.collage__card{
  background:var(--surface); border:1px solid var(--rule-strong);
  padding:14px; display:flex; flex-direction:column; gap:10px; min-width:0;
}
.collage__card img{ aspect-ratio: 4/3; object-fit:cover; width:100%; }
.collage__caption{ font-family:var(--sans); font-size:12px; color:var(--ink-mute); border-top:1px solid var(--rule); padding-top:8px; }
.collage__annotation{
  background:var(--paper); border:1px solid var(--rule);
  padding:16px; border-radius:2px;
  font-family:var(--serif); font-size:14px; color:var(--ink-soft);
}

/* ---------------- PORTRAIT CALLOUTS + SIDE RAIL ---------------- */
.portfolio{
  display:grid;
  grid-template-columns: 1fr;
  gap:24px;
}
@media (min-width: 880px){
  .portfolio{ grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
}
.portfolio__grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; min-width:0; }
@media (max-width:520px){ .portfolio__grid{ grid-template-columns:1fr; } }
.portfolio__item{
  background:var(--surface); border:1px solid var(--rule-strong);
  padding:12px; display:flex; flex-direction:column; gap:8px; min-width:0;
}
.portfolio__item img{ aspect-ratio: 3/4; object-fit:cover; width:100%; }
.portfolio__item h4{ font-family:var(--serif); font-size:16px; margin:0; }
.portfolio__item p{ font-family:var(--serif); font-size:13px; color:var(--ink-soft); margin:0; }
.side-rail{
  background:var(--surface); border:1px solid var(--rule-strong); padding:18px;
  border-radius:var(--radius-card); min-width:0;
}
.side-rail h3{ font-family:var(--sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 10px; }
.side-rail__list{ list-style:none; padding:0; margin:0; }
.side-rail__list li{ display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--rule); font-family:var(--sans); font-size:13px; }
.side-rail__list li:last-child{ border-bottom:0; }
.side-rail__list .v{ color:var(--terracotta); font-weight:700; }

/* ---------------- LONG READ (strategy) ---------------- */
.longread{ display:grid; grid-template-columns: 1fr; gap:24px; }
@media (min-width: 880px){ .longread{ grid-template-columns: minmax(0,2fr) minmax(0,1fr); } }
.longread__main{ min-width:0; }
.longread__main p{ font-family:var(--serif); font-size:16px; line-height:1.7; color:var(--ink); }
.pull-quote{
  border-left:4px solid var(--terracotta);
  padding:14px 18px; margin:18px 0; background:var(--paper-deep);
  font-family:var(--serif); font-size:18px; color:var(--ink); font-style:italic;
}
.probability-caution{
  background:var(--paper-deep); border:1px solid var(--rule-strong);
  padding:14px 18px; border-radius:2px; font-family:var(--sans);
  font-size:13px; color:var(--ink-soft);
}
.probability-caution strong{ color:var(--terracotta-deep); font-weight:700; }
.longread__aside{ min-width:0; }
.longread__aside .side-rail{ position:sticky; top:96px; }

/* ---------------- VERDICT SHELF ---------------- */
.shelf{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:880px){ .shelf{ grid-template-columns: repeat(3, minmax(0,1fr)); } }
.shelf__card{
  background:var(--surface); border:1px solid var(--rule-strong);
  padding:18px; border-radius:var(--radius-card);
  display:flex; flex-direction:column; gap:10px; min-width:0;
}
.shelf__num{
  font-family:var(--serif); font-size:56px; font-weight:700; color:var(--terracotta);
  line-height:1; letter-spacing:-0.02em;
}
.shelf__num span{ font-family:var(--sans); font-size:18px; color:var(--ink-soft); margin-left:6px; font-weight:500; }
.shelf__title{ font-family:var(--serif); font-size:18px; margin:0; }
.shelf__body{ font-family:var(--serif); font-size:14px; color:var(--ink-soft); margin:0; }
.shelf__meta{ font-family:var(--sans); font-size:12px; color:var(--ink-mute); border-top:1px solid var(--rule); padding-top:8px; }

/* ---------------- PAPER LEDGER (KYC rows) ---------------- */
.paper-ledger{
  background:var(--surface); border:1px solid var(--rule-strong);
  border-radius:var(--radius-card); overflow:hidden;
}
.paper-ledger__row{
  display:grid; grid-template-columns: 56px minmax(0,1fr) minmax(0,1fr) auto; gap:14px;
  padding:14px 18px; border-bottom:1px solid var(--rule);
  align-items:center;
}
@media (max-width:600px){ .paper-ledger__row{ grid-template-columns: 1fr; gap:4px; } }
.paper-ledger__row:last-child{ border-bottom:0; }
.paper-ledger__row:nth-child(odd){ background:var(--paper); }
.paper-ledger__num{ font-family:var(--serif); font-size:18px; color:var(--terracotta); font-weight:700; }
.paper-ledger__name{ font-family:var(--serif); font-size:16px; color:var(--ink); font-weight:600; margin:0; }
.paper-ledger__value{ font-family:var(--sans); font-size:13px; color:var(--ink-soft); margin:0; }
.paper-ledger__check{ font-family:var(--sans); font-size:12px; color:#14504C; font-weight:700; }

/* ---------------- HELPLINE CARD ---------------- */
.helpline{
  background:var(--surface);
  border:1px solid var(--rule-strong);
  border-radius:var(--radius-card);
  padding:32px;
  display:grid; grid-template-columns: minmax(0,1fr); gap:24px;
}
.helpline > *{ min-width:0; }
.helpline__num,
.helpline__list{ min-width:0; }
@media (min-width:880px){ .helpline{ grid-template-columns: minmax(0,1fr) minmax(0,2fr); align-items:center; } }
.helpline__num{
  font-family:var(--serif); font-size:clamp(72px, 18vw, 140px); color:var(--terracotta);
  line-height:1; letter-spacing:-0.04em; font-weight:700;
  overflow-wrap:anywhere;
}
.helpline__list{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:520px){ .helpline__list{ grid-template-columns:1fr; } }
.helpline__item{ border-top:1px solid var(--rule); padding-top:10px; min-width:0; }
.helpline__item h3{ font-family:var(--sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-mute); margin:0 0 4px; }
.helpline__item p{ font-family:var(--serif); font-size:16px; color:var(--ink); margin:0; overflow-wrap:break-word; }
.helpline .btn{ white-space:normal; text-align:center; line-height:1.3; }

/* ---------------- NEWSROOM TICKER ---------------- */
.ticker{
  background:var(--surface); border:1px solid var(--rule-strong);
  border-radius:var(--radius-card); padding:0; overflow:hidden;
}
.ticker__bar{
  display:flex; align-items:center; gap:10px;
  padding:12px 18px; background:var(--ink); color:var(--paper);
}
.ticker__bar h3{ color:var(--paper); font-family:var(--serif); font-size:14px; margin:0; letter-spacing:.04em; text-transform:uppercase; }
.ticker__dot{ width:8px; height:8px; background:var(--terracotta); border-radius:50%; animation: pulse 1.6s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ opacity:1; transform:scale(1);} 50%{ opacity:.55; transform:scale(.85);} }
@media (prefers-reduced-motion: reduce){ .ticker__dot{ animation:none; } }
.ticker__item{
  display:grid; grid-template-columns: 100px minmax(0,1fr); gap:14px;
  padding:16px 18px; border-bottom:1px solid var(--rule); align-items:flex-start;
}
.ticker__item:last-child{ border-bottom:0; }
.ticker__date{ font-family:var(--sans); font-size:12px; color:var(--terracotta); font-weight:700; letter-spacing:.04em; }
.ticker__title{ font-family:var(--serif); font-size:16px; color:var(--ink); margin:0 0 4px; }
.ticker__lede{ font-family:var(--serif); font-size:13px; color:var(--ink-soft); margin:0; }

/* ---------------- READER QUESTIONS ---------------- */
.qa{ border-top:1px solid var(--rule-strong); }
.qa__item{ display:grid; grid-template-columns: 60px 1fr; gap:18px; padding:22px 0; border-bottom:1px solid var(--rule); min-width:0; }
.qa__num{ font-family:var(--serif); font-size:24px; color:var(--terracotta); font-weight:700; }
.qa__q{ font-family:var(--serif); font-size:18px; color:var(--ink); margin:0 0 8px; font-weight:700; }
.qa__a{ font-family:var(--serif); font-size:15px; color:var(--ink-soft); margin:0; }
.qa__src{ font-family:var(--sans); font-size:12px; color:var(--ink-mute); margin-top:8px; }

/* ---------------- COLOPHON ---------------- */
.colophon{
  background:var(--paper-deep); border:1px solid var(--rule-strong);
  padding:24px; border-radius:var(--radius-card);
  display:grid; grid-template-columns:1fr; gap:18px;
}
@media (min-width:880px){ .colophon{ grid-template-columns: repeat(3, minmax(0,1fr)); } }
.colophon__col h3{ font-family:var(--sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 8px; }
.colophon__col p{ font-family:var(--serif); font-size:14px; color:var(--ink); margin:0; }

/* ---------------- FOOTER ---------------- */
.site-footer{
  background:var(--ink); color:var(--paper);
  padding:48px 0 24px;
  margin-top:0;
}
.site-footer .shell{ color:var(--paper); }
.site-footer__cols{
  display:grid; grid-template-columns: 1fr; gap:24px;
  padding-bottom:24px; border-bottom:1px solid rgba(255,248,242,0.18);
}
@media (min-width:720px){ .site-footer__cols{ grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.site-footer h3{ color:var(--paper); font-family:var(--sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase; margin:0 0 10px; }
.site-footer ul{ list-style:none; padding:0; margin:0; }
.site-footer li{ margin-bottom:6px; }
.site-footer a{ color:var(--paper); font-family:var(--sans); font-size:14px; opacity:1; }
.site-footer a:hover{ color:var(--terracotta-soft); opacity:1; text-decoration:none; }
.site-footer__brand .brand__name{ color:var(--paper); }
.site-footer__brand .brand__tag{ color:rgba(255,248,242,0.88); }
.site-footer__bottom{
  display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center;
  padding-top:18px; font-family:var(--sans); font-size:12px; color:rgba(255,248,242,0.88);
}

/* ---------------- MOBILE STICKY CTA ---------------- */
.mobile-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:55;
  background:var(--paper);
  border-top:1px solid var(--rule-strong);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  display:flex; align-items:center; justify-content:center; gap:10px;
}
@media (min-width: 960px){ .mobile-cta{ display:none; } }
.mobile-cta__btn{
  flex:1 1 auto; max-width:520px;
}

/* ---------------- CONTENT BODY (child pages) ---------------- */
.crumbs{
  font-family:var(--sans); font-size:13px; color:var(--ink-mute);
  display:flex; gap:8px; flex-wrap:wrap; align-items:center;
  padding:16px 0;
}
.crumbs a{ color:var(--ink-mute); }
.crumbs a:hover{ color:var(--terracotta); }
.crumbs__sep{ color:var(--rule-strong); }

.page-hero{
  display:grid; grid-template-columns: 1fr; gap:18px;
  padding:36px 0 28px; border-bottom:1px solid var(--rule-strong);
}
@media (min-width:880px){ .page-hero{ grid-template-columns: minmax(0,3fr) minmax(0,2fr); gap:36px; align-items:end; } }
.page-hero__title{ font-family:var(--serif); font-size: clamp(28px, 4vw, 44px); margin:0; }
.page-hero__dek{ font-family:var(--serif); font-size:18px; color:var(--ink-soft); margin:0; }
.page-hero__meta{ font-family:var(--sans); font-size:13px; color:var(--ink-mute); }

.article{
  display:grid; grid-template-columns: 1fr; gap:24px;
  padding-top:28px;
}
@media (min-width: 880px){
  .article{ grid-template-columns: minmax(0, 1fr) minmax(0, 220px); gap:36px; }
}
.article__main{ min-width:0; }
.article__main h2{ margin-top:1.6em; }
.article__main h3{ margin-top:1.4em; }
.article__main p{ font-family:var(--serif); font-size:17px; line-height:1.75; color:var(--ink); max-width:none; }
.article__main ul li{ font-family:var(--serif); font-size:16px; }
.article__toc{
  background:var(--surface); border:1px solid var(--rule-strong); padding:18px; border-radius:var(--radius-card);
  position:sticky; top:96px; min-width:0;
}
.article__toc h2{ font-family:var(--sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-mute); margin:0 0 10px; }
.article__toc ol{ list-style:none; padding:0; margin:0; counter-reset: toc; }
.article__toc li{ counter-increment: toc; padding:6px 0; border-bottom:1px solid var(--rule); font-family:var(--sans); font-size:13px; }
.article__toc li::before{ content: counter(toc, decimal-leading-zero) " "; color:var(--terracotta); font-weight:700; margin-right:6px; }
.article__toc li:last-child{ border-bottom:0; }
.article__toc a{ color:var(--ink); }
.article__toc a:hover{ color:var(--terracotta); text-decoration:none; }

.figure{
  margin:24px 0;
  background:var(--surface); border:1px solid var(--rule-strong); padding:10px;
}
.figure img{ width:100%; height:auto; }
.figure figcaption{
  font-family:var(--sans); font-size:12px; color:var(--ink-mute);
  padding-top:8px; border-top:1px solid var(--rule); margin-top:8px;
}

.callout{
  border-left:4px solid var(--terracotta);
  background:var(--paper-deep); padding:14px 18px; margin:18px 0;
  font-family:var(--serif); font-size:15px; color:var(--ink);
}
.callout h4{ font-family:var(--sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--terracotta-deep); margin:0 0 6px; }

.faq details{
  border-top:1px solid var(--rule); padding:14px 0;
}
.faq details:last-of-type{ border-bottom:1px solid var(--rule); }
.faq summary{
  font-family:var(--serif); font-size:18px; font-weight:700; color:var(--ink);
  cursor:pointer; list-style:none;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; float:right; color:var(--terracotta); font-family:var(--sans); }
.faq details[open] summary::after{ content:"–"; }
.faq__body{ padding-top:10px; font-family:var(--serif); font-size:15px; color:var(--ink-soft); }

/* ---------------- RELATED/LATEST BLOCK ---------------- */
.related{ display:grid; grid-template-columns: 1fr; gap:14px; }
@media (min-width:720px){ .related{ grid-template-columns: repeat(3, minmax(0,1fr)); } }
.related__card{
  background:var(--surface); border:1px solid var(--rule-strong);
  padding:14px; display:flex; flex-direction:column; gap:8px; min-width:0;
}
.related__card img{ aspect-ratio: 16/9; object-fit:cover; }
.related__card .tag{ font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--terracotta); font-weight:700; }
.related__card h4{ font-family:var(--serif); font-size:17px; margin:0; }
.related__card h4 a{ color:var(--ink); }
.related__card h4 a:hover{ color:var(--terracotta); text-decoration:none; }

/* ---------------- RESPONSIVE SAFETY ---------------- */
.shell, .section, .cover, .longread, .portfolio, .helpline, .paper-ledger, .tabs, .ledger, .index-rail, .qa, .article, .article__main, .article__toc, .side-rail, .ticker, .colophon, .shelf, .footer, .related, .meld-callouts, .collage, .portfolio__grid, .tabs__bar, .tabs__panel, .tabs__card { min-width:0; }
img, picture, video { display:block; max-width:100%; height:auto; }
.shell{ min-width:0; }

.shell, .article, .longread, .portfolio, .helpline, .shelf, .related, .tabs__grid, .meld-callouts, .collage, .portfolio__grid { min-width:0; }
.shell > *, .section > * { min-width:0; }

/* Prevent any prose cell from collapsing to a narrow rail */
.article__main p, .article__main h2, .article__main h3, .article__main h4, .article__main ul, .article__main ol, .article__main li,
.longread__main p, .longread__main h2, .longread__main h3, .longread__main h4, .longread__main ul, .longread__main ol, .longread__main li,
.crumbs, .colophon__col p, .qa__a, .qa__q, .ledger__rule, .meld-callout__body, .tabs__card p, .shelf__body, .portfolio__item p, .helpline__item p {
  overflow-wrap: normal;
  word-break: normal;
}

/* ---------------- REDUCED MOTION ---------------- */
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}