/* ==========================================================================
   PREVIOUSLY — UNIFIED BIBLE · shared system stylesheet (Phase 1 rebuild)
   "One color, one font, one universal build." Golden Hour only.

   HOW TO USE
   - Rebuilt pages add class="b-scope" to <body>. EVERY rule in this file
     (except the :root token definitions) lives under .b-scope, so nothing
     here leaks onto existing production pages.
   - All tokens are --bible-*. NEVER use --bg/--red/--ink (production owns
     those names with different meanings).
   - ZERO raw colors outside the :root token definitions below — the
     design-token gate (scripts/design-token-gate.py) holds deploys on this.
   - NO external URLs in this file (production CSP: font-src 'self').
   - The ONE approved dark surface is the breaking ticker (.b-ticker).
   ========================================================================== */

/* ---------- design tokens (the ONLY place raw colors may appear) ---------- */
:root{
  --bible-bg:#FAF6EE;
  --bible-card:#FFFDF8;
  --bible-ink:#211910;
  --bible-ink-soft:#4A4036;
  --bible-ink-dim:#6B5D4F;
  --bible-red:#C0391B;
  --bible-red-deep:#9E2E15;
  --bible-rule:#E7DCC4;
  --bible-serif:'Fraunces',Georgia,'Times New Roman',serif;
  --bible-sans:'Inter',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
  --bible-max:1180px;
  --bible-pad:24px;
  /* decorative art tokens — tokenized so the design-token gate passes */
  --bible-white:#FFFFFF;
  --bible-cream:#FFF8EC;
  --bible-cream-dim:rgba(255,248,236,.82);
  --bible-peach:#FFD9A8;
  --bible-champagne:#FFE9C9;
  --bible-fdf:#FFF3DF;
  --bible-hero-a:#E4572E;
  --bible-hero-b:#8E2A12;
  --bible-hero-c:#2A1408;
  --bible-hero-d:#241005;
  --bible-texture:rgba(255,255,255,.035);
  --bible-art-a:#D84A25;
  --bible-art-b:#7E2410;
  --bible-art-c:#331207;
  --bible-art-glow:rgba(255,255,255,.05);
  --bible-giant:rgba(255,255,255,.10);
  --bible-bigletter:rgba(255,255,255,.22);
  --bible-scrim:rgba(255,255,255,.14);
  --bible-cap-shade:rgba(20,10,4,.60);
  --bible-ncard-shade:rgba(20,10,4,.55);
  --bible-overlay:rgba(33,25,16,.55);
  --bible-ticket-c:#2A0F06;
  --bible-plbg:#101014;
  --bible-plred:#FF2D40;
  --bible-artist-a:#E8A33D;
  --bible-artist-b:#8A5A17;
  --bible-team-a:#2E5E9E;
  --bible-team-b:#14294F;
  --bible-mv-a:#2E5E8A;
  --bible-mv-b:#16283F;
  --bible-mv-c:#0A1220;
  --bible-stage-a:#3A2A1A;
  --bible-stage-b:#14100A;
  --bible-minibar:rgba(255,253,248,.98);
  --bible-indexbar:rgba(250,246,238,.96);
  --bible-tabbar:rgba(250,246,238,.97);
  --bible-shimmer:rgba(255,255,255,.55);
  --bible-win:#2E7D4F;
  --bible-shadow-soft:rgba(33,25,16,.08);
  --bible-shadow-mid:rgba(33,25,16,.18);
  --bible-shadow-deep:rgba(33,25,16,.35);
  --bible-shadow-bar:rgba(33,25,16,.12);
  --bible-shadow-avatar:rgba(33,25,16,.20);
  --bible-shadow-red:rgba(192,57,27,.35);
  --bible-shadow-live:rgba(192,57,27,.10);
  --bible-shadow-play:rgba(192,57,27,.45);
  --bible-ticket-p:rgba(255,248,236,.80);
}

/* ---------- keyframes (b- prefixed: production owns "pulse"/"shimmer") ---------- */
@keyframes b-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes b-shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}

/* ================= SCOPE BASE (body.b-scope) ================= */
.b-scope{
  font-family:var(--bible-sans);
  background:var(--bible-bg);
  color:var(--bible-ink);
  font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  scroll-behavior:smooth;
}
/* Hybrid pages (Phase 2+): legacy module subtrees are wrapped in .b-legacy.
   The bible box-model reset must NOT zero their margins/paddings — their own
   stylesheets own those. :where() keeps the reset at its original (0,1,0)
   specificity, so pure-bible pages behave exactly as before. */
.b-scope :where(:not(.b-legacy *)){margin:0;padding:0;box-sizing:border-box}
.b-scope :where(:not(.b-legacy *)) img{max-width:100%}
.b-scope :where(:not(.b-legacy *)) a{color:inherit}
.b-scope ::selection{background:var(--bible-red);color:var(--bible-white)}
.b-scope.b-locked{overflow:hidden} /* scroll lock while a b-ov overlay is open */

/* ================= TYPOGRAPHY SCALE ================= */
.b-scope .b-display{font-family:var(--bible-serif);font-weight:800;letter-spacing:-.02em;line-height:.92}
.b-scope .b-headline{font-family:var(--bible-serif);font-weight:700;letter-spacing:-.01em;line-height:1.08}
.b-scope .b-subhead{font-family:var(--bible-serif);font-style:italic;font-weight:400;line-height:1.35}
.b-scope .b-numerals{font-family:var(--bible-serif);font-style:italic;font-weight:600}
.b-scope .b-body{font-size:16px;line-height:1.7}
.b-scope .b-caption{font-size:12.5px;line-height:1.5;color:var(--bible-ink-dim)}
.b-scope .b-type-row{padding:26px 0;border-bottom:1px solid var(--bible-rule);display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:baseline}
.b-scope .b-type-row .b-tlabel{font:700 11px/1.6 var(--bible-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--bible-ink-dim)}
.b-scope .b-type-row .b-tlabel b{display:block;color:var(--bible-red)}

/* ================= UNIFIED HEADER — THE PERMANENT STANDARD =================
   James, 2026-10-12 — PERMANENT. "Make that the updated template in our
   Bible for our unified header."

   THE RULES (no exceptions):
   1. ONE "Previously." wordmark per page. Never duplicated, never stacked.
      The wordmark appears exactly once in the header. (Footer wordmark is
      separate and unaffected.)
   2. NO hamburger menu button. NO side drawer. NO slide-out menu. NO "Menu"
      button of any kind. These are DELETED from the design system —
      permanently. Do not reintroduce them under a new class name.
   3. Desktop/laptop: the top nav (.b-topnav) is the ONLY navigation.
      Wordmark once + section links. Nothing else.
   4. Mobile: the bottom tab bar (.b-tabbar) is the ONE mobile nav.
      The slim mobile header (.b-m-head) shows wordmark + date only.
      The section strip (.b-sec-strip) is a slim top row — NOT a drawer.
   5. If a page needs navigation that the top nav + tab bar don't cover,
      extend those — never build a parallel menu system.

   ENFORCEMENT:
   - .b-menu-btn is force-hidden below (defense in depth). Any markup using
     it renders nothing. Do not remove this guard.
   - PVBible.renderNav() in js/bible.js is the canonical header injector.
     New pages use it. It builds the compliant header automatically.
   ========================================================================== */

/* ================= TOP BAR (desktop) — the ONE nav ================= */
.b-scope .b-topbar{border-bottom:1px solid var(--bible-rule);background:var(--bible-bg)}
.b-scope .b-topbar__in{max-width:var(--bible-max);margin:0 auto;padding:0 var(--bible-pad);display:flex;align-items:center;gap:34px;height:72px}
.b-scope .b-wordmark{font-family:var(--bible-serif);font-weight:800;font-size:30px;letter-spacing:-.02em;text-decoration:none;line-height:1;white-space:nowrap}
.b-scope .b-wordmark em{font-style:normal;color:var(--bible-red)}
.b-scope .b-topnav{display:flex;align-items:center;gap:20px;margin-left:auto}
.b-scope .b-topnav a{font:600 12.5px/1 var(--bible-sans);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--bible-ink-soft);padding:8px 0;border-bottom:2px solid transparent;white-space:nowrap;flex-shrink:0}
.b-scope .b-topnav a:hover{color:var(--bible-ink)}
.b-scope .b-topnav a.b-active{color:var(--bible-ink);border-bottom-color:var(--bible-red)}
/* LIVE TV always-on red dot (James, 2026-10-12 — PERMANENT): the red dot shows
   AT ALL TIMES on the Live TV nav link, not only when something is live. */
.b-scope .b-nav-livedot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--bible-red);margin-left:8px;vertical-align:2px;animation:b-livepulse 1.6s infinite}
@media (prefers-reduced-motion:reduce){.b-scope .b-nav-livedot{animation:none}}
/* Narrower desktop: tighten nav gap so one-line links never overflow. */
@media (max-width:1240px){.b-scope .b-topnav{gap:14px}.b-scope .b-topbar__in{gap:22px}}
.b-scope .b-dateline{font:600 11px/1 var(--bible-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--bible-ink-dim);white-space:nowrap}
/* .b-menu-btn — DELETED 2026-10-12 (James, PERMANENT). The hamburger/menu
   button no longer exists in the design system. This guard force-hides any
   straggler markup so it can never render. Do not remove. */
.b-scope .b-menu-btn,.b-scope .b-topnav .b-menu-btn{display:none!important;visibility:hidden!important}

/* SPORTS DROPDOWN — elevated (James, 2026-10-12): wide panel, featured Zone
   card with live count, grouped icon items, keyboard accessible. Hover
   (laptop) or focus-within reveals; hidden on touch widths where the bottom
   tab bar is the nav. */
.b-scope .b-nav-drop{position:relative;display:inline-flex;align-items:stretch}
.b-scope .b-nav-dropmenu{position:absolute;top:100%;left:-16px;width:364px;max-width:calc(100vw - 32px);padding:14px 10px 10px;background:var(--bible-bg);border:1px solid var(--bible-rule);border-radius:14px;box-shadow:0 24px 60px rgba(33,25,16,.22);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity 180ms ease,transform 180ms ease,visibility 180ms;z-index:300}
@media (hover:hover){
.b-scope .b-nav-drop:hover .b-nav-dropmenu,
.b-scope .b-nav-drop:focus-within .b-nav-dropmenu{opacity:1;visibility:visible;transform:translateY(0)}
}
/* Featured Zone card */
/* Zone LIVE hooks: [hidden] MUST win. The badge display rules above (inline-flex) override the UA [hidden] rule, which made LIVE show even with zero live games. Fail closed: hidden until JS confirms live games. */
[data-zone-live][hidden],[data-zone-live-hero][hidden],[data-zone-live-count][hidden]{display:none!important}
/* Grouped menu items */
.b-scope .b-drop-group{margin-top:4px;padding:8px 2px 2px}
.b-scope .b-drop-group--div{margin-top:8px;border-top:1px solid var(--bible-rule)}
.b-scope .b-drop-glabel{display:block;padding:4px 12px 6px;font:700 10.5px/1 var(--bible-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--bible-ink-dim)}
.b-scope .b-drop-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;font:600 12px/1.25 var(--bible-sans);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--bible-ink-soft)}
.b-scope .b-drop-link:hover,.b-scope .b-drop-link:focus-visible{color:var(--bible-ink);background:rgba(33,25,16,.055);outline:none}
.b-scope .b-drop-link:focus-visible{box-shadow:inset 0 0 0 2px var(--bible-red-deep)}
.b-scope .b-drop-ic{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:rgba(158,46,21,.1);color:var(--bible-red-deep);transition:background 160ms ease,color 160ms ease}
.b-scope .b-drop-ic svg{width:16px;height:16px}
.b-scope .b-drop-link:hover .b-drop-ic,.b-scope .b-drop-link:focus-visible .b-drop-ic{background:var(--bible-red-deep);color:#FAF6EE}
.b-scope .b-drop-chev{margin-left:auto;width:14px;height:14px;color:var(--bible-ink-dim);opacity:0;transform:translateX(-4px);transition:opacity 160ms ease,transform 160ms ease}
.b-scope .b-drop-link:hover .b-drop-chev,.b-scope .b-drop-link:focus-visible .b-drop-chev{opacity:1;transform:translateX(0)}
/* Two-level menu rows (Sports rework, James 2026-10-14): a row with a
   submenu = link (goes to its own page) + chevron toggle button. Desktop:
   submenu flies out to the right of the panel on hover/focus, or on
   toggle click (.b-is-open) for touch laptops. Sub-rows are text-only —
   compact by design, no second icon column. */
.b-scope .b-drop-item{position:relative;display:flex;align-items:stretch}
.b-scope .b-drop-item>.b-drop-link{flex:1 1 auto;min-width:0}
.b-scope .b-drop-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:38px;margin:3px 0;border:0;border-radius:9px;background:transparent;color:var(--bible-ink-dim);cursor:pointer}
.b-scope .b-drop-toggle svg{width:15px;height:15px;transition:transform 160ms ease}
.b-scope .b-drop-toggle:hover,.b-scope .b-drop-toggle:focus-visible{background:rgba(33,25,16,.055);color:var(--bible-ink);outline:none}
.b-scope .b-drop-toggle:focus-visible{box-shadow:inset 0 0 0 2px var(--bible-red-deep)}
.b-scope .b-drop-sub{display:none}
.b-scope .b-nav-dropmenu .b-drop-sub{position:absolute;left:100%;top:-8px;width:230px;padding:8px;background:var(--bible-bg);border:1px solid var(--bible-rule);border-radius:12px;box-shadow:0 18px 44px rgba(33,25,16,.2);z-index:320}
@media (hover:hover){
.b-scope .b-nav-dropmenu .b-drop-item:hover .b-drop-sub,
.b-scope .b-nav-dropmenu .b-drop-item:focus-within .b-drop-sub{display:block}
}
.b-scope .b-nav-dropmenu .b-drop-item.b-is-open .b-drop-sub{display:block}
.b-scope .b-nav-dropmenu .b-drop-item.b-is-open .b-drop-toggle svg{transform:rotate(90deg)}
.b-scope .b-drop-sublink{display:flex;align-items:center;padding:9px 10px;border-radius:8px;font:600 11.5px/1.3 var(--bible-sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--bible-ink-soft)}
.b-scope .b-drop-sublink:hover,.b-scope .b-drop-sublink:focus-visible{color:var(--bible-ink);background:rgba(33,25,16,.055);outline:none}
.b-scope .b-drop-sublink:focus-visible{box-shadow:inset 0 0 0 2px var(--bible-red-deep)}
/* Section dropdowns (James, 2026-10-12): right-aligned panels for the
   right-side nav items so a 364px menu can never clip at laptop widths.
   Uniform simple-list pattern in every menu — no featured cards. */
.b-scope .b-nav-dropmenu--r{left:auto;right:-16px}
/* Zone LIVE indicator: text + pulsing dot (matches the-zone.css language). Not a pill. */
.b-scope .b-live{display:inline-flex;align-items:center;gap:7px;font:800 11px/1 var(--bible-sans);letter-spacing:.16em;color:#FAF6EE}
.b-scope .b-live-dot{width:8px;height:8px;border-radius:50%;background:#FAF6EE;animation:b-livepulse 1.6s infinite}
@keyframes b-livepulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.b-scope .b-live-dot{animation:none}}
/* THE ZONE HERO (James, 2026-10-12): hero card atop /sports/. Tap -> /sports/the-zone/. */
.b-scope .zone-hero{display:block;margin:0 0 20px;padding:24px 26px;background:var(--bible-red-deep);color:#FAF6EE;text-decoration:none}
.b-scope .zone-hero:hover{background:#7E2310;color:#FAF6EE}
.b-scope .zone-hero__t{display:flex;align-items:center;gap:12px;font:800 clamp(26px,5vw,36px)/1.1 var(--bible-serif);letter-spacing:-.01em}
.b-scope .zone-hero__d{display:block;margin-top:10px;font:400 14.5px/1.55 var(--bible-sans);color:#F3E9D2;max-width:34em}
.b-scope .zone-hero__go{display:inline-block;margin-top:14px;font:700 12px/1 var(--bible-sans);letter-spacing:.16em;text-transform:uppercase;color:#FAF6EE;border-bottom:2px solid #FAF6EE;padding-bottom:5px}
@media (max-width:640px){.b-scope .zone-hero{padding:20px 18px;margin:0 0 16px}}

/* Slim mobile header — wordmark + date only (nav lives in bottom bar) */
.b-scope .b-m-head{display:none}

/* ================= BOTTOM TAB BAR (mobile) — the ONE mobile nav ================= */
.b-scope .b-tabbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:100;background:var(--bible-tabbar);backdrop-filter:blur(12px);border-top:1px solid var(--bible-rule);padding:8px 4px calc(8px + env(safe-area-inset-bottom))}
.b-scope .b-tabbar__in{display:flex;justify-content:space-around}
.b-scope .b-tab{display:flex;flex-direction:column;align-items:center;gap:4px;font:600 10px/1 var(--bible-sans);letter-spacing:.04em;color:var(--bible-ink-dim);text-decoration:none;padding:6px 6px;min-width:44px;white-space:nowrap}
.b-scope .b-tab svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.b-scope .b-tab.b-active{color:var(--bible-red)}

/* ================= MOBILE MENU SHEET (James, 2026-10-12) =================
   The tab bar's answer to the desktop dropdowns: tapping a tab whose
   section has a menu (Sports, Podcasts, Music, Games, Free) opens that
   section's SAME grouped list as a sheet rising from the tab bar —
   rendered by PVBible.openMenuSheet from the one menu data source.
   NOT a drawer and NOT a hamburger menu: it is the section menu itself,
   summoned by the section's own tab. */
.b-scope .b-tab{position:relative}
.b-scope .b-tab-caret{position:absolute;top:3px;right:7px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:5px solid currentColor;opacity:.55}
body.b-sheet-open{overflow:hidden}
.b-scope .b-sheet{position:fixed;inset:0;z-index:400;display:none}
.b-scope .b-sheet.b-is-open{display:block}
.b-scope .b-sheet__bg{position:absolute;inset:0;background:rgba(33,25,16,.45)}
.b-scope .b-sheet__panel{position:absolute;left:0;right:0;bottom:0;max-height:78vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--bible-bg);border-top:3px solid var(--bible-red);border-radius:16px 16px 0 0;padding:6px 14px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -18px 50px rgba(33,25,16,.3)}
.b-scope .b-sheet__head{display:flex;align-items:center;justify-content:space-between;padding:10px 4px 2px}
.b-scope .b-sheet__title{font:800 13px/1 var(--bible-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--bible-ink)}
.b-scope .b-sheet__x{flex:0 0 auto;width:38px;height:38px;border:1px solid var(--bible-rule);border-radius:50%;background:transparent;color:var(--bible-ink);font-size:15px;line-height:1;cursor:pointer}
.b-scope .b-sheet__body .b-drop-group:first-child{margin-top:0}
.b-scope .b-sheet__body .b-drop-link{padding:12px}
/* Sheet accordion: the same two-level rows expand in place (tap the
   chevron toggle); the row link itself still navigates to its page. */
.b-scope .b-sheet .b-drop-item{flex-wrap:wrap}
.b-scope .b-sheet .b-drop-sub{position:static;flex:0 0 100%;width:100%;padding:0 0 8px 58px}
.b-scope .b-sheet .b-drop-item.b-is-open .b-drop-sub{display:block}
.b-scope .b-sheet .b-drop-item.b-is-open .b-drop-toggle svg{transform:rotate(90deg)}
.b-scope .b-sheet .b-drop-sublink{padding:11px 10px;font-size:12px}
@media (prefers-reduced-motion:no-preference){
  .b-scope .b-sheet.b-is-open .b-sheet__panel{animation:b-sheet-up 200ms ease}
}
@keyframes b-sheet-up{from{transform:translateY(16px);opacity:.4}to{transform:none;opacity:1}}
@media(min-width:1024px){
  .b-scope .b-sheet{display:none!important} /* desktop nav owns >=1024px */
}

/* ================= MOBILE SECTION STRIP — slim top row, no drawer ================= */
.b-scope .b-sec-strip{display:none}

/* ================= MASTHEAD — the podcast-page pattern ================= */
.b-scope .b-masthead{border-top:14px solid var(--bible-red);padding:52px 0 36px}
.b-scope .b-masthead__in{max-width:var(--bible-max);margin:0 auto;padding:0 var(--bible-pad)}
.b-scope .b-kicker{font:700 11px/1 var(--bible-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--bible-red);display:flex;align-items:center;gap:14px;margin-bottom:20px}
.b-scope .b-kicker .b-kdot{width:7px;height:7px;border-radius:50%;background:var(--bible-red)}
.b-scope .b-masthead h1{font-family:var(--bible-serif);font-weight:800;font-size:clamp(64px,10vw,148px);line-height:.92;letter-spacing:-.02em}
.b-scope .b-masthead .b-dek{font-family:var(--bible-serif);font-style:italic;font-size:clamp(18px,2.2vw,22px);color:var(--bible-ink-soft);margin-top:16px;max-width:62ch}
.b-scope .b-masthead .b-dek b{font-style:normal;color:var(--bible-ink)}
.b-scope .b-meta-row{display:flex;align-items:center;gap:16px;margin-top:20px;flex-wrap:wrap}
.b-scope .b-fresh{display:inline-flex;align-items:center;gap:8px;font:700 11px/1 var(--bible-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--bible-white);background:var(--bible-red);padding:10px 16px;border-radius:4px}
.b-scope .b-fresh .b-dot{width:7px;height:7px;border-radius:50%;background:var(--bible-white);animation:b-pulse 2s infinite}
.b-scope .b-meta-note{font-size:13px;color:var(--bible-ink-dim)}

/* ================= INDEX BAR — sticky ================= */
.b-scope .b-indexbar{position:sticky;top:0;z-index:40;background:var(--bible-indexbar);backdrop-filter:blur(10px);border-top:1px solid var(--bible-rule);border-bottom:1px solid var(--bible-rule)}
.b-scope .b-indexbar__in{max-width:var(--bible-max);margin:0 auto;padding:0 var(--bible-pad);display:flex;align-items:center;gap:28px;overflow-x:auto;scrollbar-width:none}
.b-scope .b-indexbar__in::-webkit-scrollbar{display:none}
.b-scope .b-ilink{display:inline-flex;align-items:center;gap:9px;white-space:nowrap;font:600 12px/1 var(--bible-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--bible-ink-dim);text-decoration:none;padding:16px 2px;border-bottom:2px solid transparent}
.b-scope .b-ilink .b-n{font-family:var(--bible-serif);font-style:italic;font-weight:600;font-size:14px;color:var(--bible-ink-dim);letter-spacing:0}
.b-scope .b-ilink:hover{color:var(--bible-ink)}
.b-scope .b-ilink.b-active{color:var(--bible-ink);border-bottom-color:var(--bible-red)}
.b-scope .b-ilink.b-active .b-n{color:var(--bible-red)}

/* ================= SECTIONS ================= */
.b-scope .b-wrap{max-width:var(--bible-max);margin:0 auto;padding:0 var(--bible-pad)}
.b-scope .b-block{padding:64px 0;scroll-margin-top:70px}
.b-scope .b-block + .b-block{border-top:1px solid var(--bible-rule)}
.b-scope .b-block-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:30px;flex-wrap:wrap}
.b-scope .b-block-title{font-family:var(--bible-serif);font-weight:700;font-size:clamp(28px,3.4vw,42px);line-height:1.05;letter-spacing:-.01em}
.b-scope .b-block-title .b-bnum{font-style:italic;font-weight:600;font-size:.65em;color:var(--bible-red);margin-right:12px}
.b-scope .b-block-link{font:700 12.5px/1 var(--bible-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--bible-red);text-decoration:none}
.b-scope .b-block-link:hover{text-decoration:underline}

/* ---- hero ---- */
.b-scope .b-hero{display:grid;grid-template-columns:1.25fr .9fr;gap:28px;align-items:stretch}
.b-scope .b-hero-main{position:relative;border-radius:14px;overflow:hidden;min-height:440px;display:flex;align-items:flex-end;background:radial-gradient(120% 90% at 20% 10%, var(--bible-hero-a) 0%, var(--bible-hero-b) 45%, var(--bible-hero-c) 100%)}
.b-scope .b-hero-main::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 26px,var(--bible-texture) 26px 27px)}
.b-scope .b-hero-giant{position:absolute;top:8px;right:18px;font-family:var(--bible-serif);font-weight:900;font-size:150px;line-height:1;color:var(--bible-giant);letter-spacing:-.04em;user-select:none}
.b-scope .b-hero-copy{position:relative;z-index:1;padding:36px;color:var(--bible-cream);max-width:34ch}
.b-scope .b-hero-kick{font:700 11px/1 var(--bible-sans);letter-spacing:.26em;text-transform:uppercase;color:var(--bible-peach);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.b-scope .b-live-pill{display:inline-flex;align-items:center;gap:6px;background:var(--bible-red);color:var(--bible-white);font:700 10px/1 var(--bible-sans);letter-spacing:.18em;padding:6px 10px;border-radius:4px}
.b-scope .b-live-pill i{width:6px;height:6px;border-radius:50%;background:var(--bible-white);animation:b-pulse 1.6s infinite}
.b-scope .b-hero-copy h2{font-family:var(--bible-serif);font-weight:700;font-size:clamp(30px,3.6vw,46px);line-height:1.04;letter-spacing:-.01em;margin-bottom:12px}
.b-scope .b-hero-copy p{font-size:15px;color:var(--bible-cream-dim);max-width:44ch}
.b-scope .b-hero-side{display:flex;flex-direction:column;gap:18px}
.b-scope .b-side-card{background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:12px;padding:22px;display:flex;gap:16px;align-items:center;flex:1}
.b-scope .b-side-art{width:86px;height:86px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--bible-serif);font-weight:800;font-size:34px;color:var(--bible-white)}
.b-scope .b-side-card h3{font-family:var(--bible-serif);font-weight:600;font-size:18px;line-height:1.3;margin:6px 0 4px}
.b-scope .b-side-card p{font-size:13.5px;color:var(--bible-ink-dim)}
.b-scope .b-mini-kick{font:700 10px/1 var(--bible-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--bible-red)}

/* ---- lead hero: the rebake-owned <section class="hero"> ----
   The lead train (set-lead.py --rebake, every ~15 min) surgically replaces
   this section's tag + .kicker/h1/.dek/.byline/img. NEVER rename those hooks,
   NEVER add classes to the <section> tag itself — style the existing
   structure here. data-lead-id / data-lead-published are the JS no-downgrade
   stamps; leave them alone. */
.b-scope .b-lead-wrap{max-width:var(--bible-max);margin:0 auto;padding:34px var(--bible-pad) 0}
.b-scope section.hero{
  position:relative;overflow:hidden;border-radius:14px;
  display:grid;grid-template-columns:1.05fr .95fr;gap:14px 36px;align-items:center;
  padding:40px;color:var(--bible-cream);
  background:radial-gradient(120% 90% at 20% 10%, var(--bible-hero-a) 0%, var(--bible-hero-b) 45%, var(--bible-hero-c) 100%);
}
.b-scope section.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(115deg,transparent 0 26px,var(--bible-texture) 26px 27px)}
.b-scope section.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:rgba(18,7,3,.46)}
.b-scope section.hero > *{position:relative;z-index:1}
.b-scope section.hero .kicker{
  grid-column:1;display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;
  font:700 11px/1 var(--bible-sans);letter-spacing:.26em;text-transform:uppercase;
  color:var(--bible-peach);
}
/* Headline-zone contrast guarantee (2026-10-14, hero readability): the
   cover gradient's bright stop measured 3.4:1 under the cream headline
   and 2.9:1 under the peach kicker. The ::before veil above plus this
   kicker lift put every text element in the card at >=4.5:1 against the
   gradient itself; figure and text zones remain disjoint by grid. */
.b-scope section.hero .kicker:not(.is-breaking){color:#FFE7C4}
.b-scope section.hero .kicker.is-breaking{background:var(--bible-red);color:var(--bible-white);
  padding:8px 14px;border-radius:4px}
.b-scope section.hero h1{
  grid-column:1;margin:0 0 12px;
  font-family:var(--bible-serif);font-weight:700;
  font-size:clamp(30px,3.6vw,46px);line-height:1.04;letter-spacing:-.01em;
}
.b-scope section.hero h1 a{color:inherit;text-decoration:none}
.b-scope section.hero h1 a:hover{text-decoration:underline}
.b-scope section.hero .dek{grid-column:1;margin:0 0 12px;max-width:44ch;
  font-size:15px;color:var(--bible-cream-dim)}
.b-scope section.hero .byline{grid-column:1;margin:0;
  font:600 11px/1.6 var(--bible-sans);letter-spacing:.14em;text-transform:uppercase;
  color:var(--bible-peach)}
.b-scope section.hero .byline strong{color:var(--bible-cream)}
.b-scope section.hero figure{grid-column:2;grid-row:1/span 4;margin:0;align-self:stretch;min-height:280px}
.b-scope section.hero figure img{width:100%;height:100%;object-fit:cover;border-radius:10px;display:block}
.b-scope section.hero figcaption{font-size:12px;color:var(--bible-cream-dim);padding-top:8px}
.b-scope section.hero .chips{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin-top:14px}
.b-scope section.hero .chip-label{font:700 10px/1 var(--bible-sans);letter-spacing:.22em;
  text-transform:uppercase;color:var(--bible-peach)}
.b-scope section.hero .chip{font:700 11px/1 var(--bible-sans);letter-spacing:.1em;text-transform:uppercase;
  color:var(--bible-cream);text-decoration:none;border:1px solid var(--bible-cream-dim);
  border-radius:4px;padding:9px 16px}
.b-scope section.hero .chip:hover{background:var(--bible-cream);color:var(--bible-red-deep)}
@media(max-width:899px){
  .b-scope section.hero{grid-template-columns:1fr;padding:28px}
  .b-scope section.hero figure{grid-column:1;grid-row:auto;min-height:0}
  .b-scope section.hero figure img{height:auto;max-height:320px}
}

/* ================= ONE-HERO RULE (James 2026-10-11) =================
   While a genuine breaking story owns the full-bleed banner above, the LEAD
   hero demotes to a clearly secondary card: single column, smaller headline,
   compact image, tighter padding. body.pv-has-breaking is toggled by
   buildBreakingBanner in livegrid.js. When nothing is breaking the banner
   zone stays hidden and THE LEAD is the single hero. */
body.pv-has-breaking .b-scope .b-lead-wrap{padding-top:18px}
body.pv-has-breaking .b-scope section.hero{grid-template-columns:1fr;gap:10px;padding:26px 28px}
body.pv-has-breaking .b-scope section.hero .kicker{margin-bottom:10px}
body.pv-has-breaking .b-scope section.hero h1{font-size:clamp(22px,2.6vw,30px);margin-bottom:8px}
body.pv-has-breaking .b-scope section.hero .dek{font-size:14px;margin-bottom:8px}
body.pv-has-breaking .b-scope section.hero .byline{margin-bottom:4px}
body.pv-has-breaking .b-scope section.hero figure{grid-column:1;grid-row:auto;min-height:0;align-self:start}
body.pv-has-breaking .b-scope section.hero figure img{height:auto;max-height:220px}
body.pv-has-breaking .b-scope section.hero .chips{margin-top:8px}

/* ================= PHASE 2 — hybrid bridges (bible chrome + live modules) ===
   Rebuilt pages keep their live data modules (livegrid, scoreboards, ticket)
   untouched — markup and JS stay exactly as the owning systems built them.
   These rules only dress the modules' chrome in bible tokens. */

/* Sports: the beloved ESPN league dropdown (8 leagues / 189 teams) becomes
   the section's league navigation — a static row under the bible topbar,
   NOT a competing sticky nav system. Dropdown panels/hover behavior are
   untouched (sports/css/league-nav.css still owns them). */
.b-scope .pv-league-nav{position:static}

/* Livegrid module heads → bible section chrome (serif titles, red accents).
   Colors stay with the legacy tokens so special modules (#lgScores card,
   rewind gold) keep their identity; only the type changes. */
.b-scope .lg-mod-head h2{
  font-family:var(--bible-serif);font-weight:700;font-size:22px;
  letter-spacing:-.01em;text-transform:none;
}
.b-scope .lg-mod-head h2 .lg-dot{color:var(--bible-red)}
.b-scope .lg-mod-head a{color:var(--bible-red)}
/* Score cards → bible card numerals (Fraunces tabular figures). */
.b-scope .lg-score-card .lg-s{font-family:var(--bible-serif);font-weight:700}

/* Anchored sections clear the sticky index bar. */
.b-scope [id]{scroll-margin-top:64px}

/* ---- post-rebuild entry-ad reservation (James, 2026-10-08) ----
   After the rebuild, EVERY page visit guarantees an entry ad impression.
   Pages reserve this slot now so the ad template lands without
   re-architecting templates. Empty and inert until then. */
.b-scope .b-adslot:empty{display:block}

/* ---- scores strip ---- */
.b-scope .b-scores-rail{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory;scrollbar-width:none}
.b-scope .b-scores-rail::-webkit-scrollbar{display:none}
.b-scope .b-score-card{scroll-snap-align:start;flex-shrink:0;width:290px;background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:12px;padding:20px}
.b-scope .b-score-card.b-live{border-color:var(--bible-red);box-shadow:0 4px 18px var(--bible-shadow-live)}
.b-scope .b-score-league{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font:700 10.5px/1 var(--bible-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--bible-ink-dim)}
.b-scope .b-score-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0}
.b-scope .b-score-team{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15.5px;min-width:0}
.b-scope .b-score-team .b-tdot{width:22px;height:22px;border-radius:50%;flex-shrink:0}
.b-scope .b-score-team span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b-scope .b-score-num{font-family:var(--bible-serif);font-weight:700;font-size:22px;font-variant-numeric:tabular-nums}
.b-scope .b-score-status{margin-top:12px;padding-top:12px;border-top:1px solid var(--bible-rule);font-size:13px;color:var(--bible-ink-dim);display:flex;justify-content:space-between;align-items:center}
.b-scope .b-score-status b{color:var(--bible-red);font:700 11px/1 var(--bible-sans);letter-spacing:.14em;text-transform:uppercase}

/* ---- news grid ---- */
.b-scope .b-news-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.b-scope .b-ncard{background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.b-scope .b-ncard__art{aspect-ratio:16/10;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:16px}
.b-scope .b-ncard__art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,var(--bible-ncard-shade) 100%)}
.b-scope .b-ncard__art .b-bigletter{position:absolute;top:-14px;right:6px;font-family:var(--bible-serif);font-weight:900;font-size:110px;line-height:1;color:var(--bible-bigletter)}
.b-scope .b-ncard__tag{position:relative;z-index:1;font:700 10px/1 var(--bible-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--bible-champagne)}
.b-scope .b-ncard__body{padding:18px}
.b-scope .b-ncard__body h3{font-family:var(--bible-serif);font-weight:600;font-size:18px;line-height:1.3;margin-bottom:8px}
.b-scope .b-ncard__body p{font-size:13.5px;color:var(--bible-ink-dim)}
.b-scope .b-ncard__time{margin-top:12px;font-size:12px;color:var(--bible-ink-dim);letter-spacing:.06em;text-transform:uppercase}

/* ---- podcast spotlight: the nice white player ---- */
.b-scope .b-player{background:var(--bible-white);border:1px solid var(--bible-rule);border-radius:16px;padding:34px;display:grid;grid-template-columns:220px 1fr;gap:34px;align-items:center;box-shadow:0 18px 50px var(--bible-shadow-soft)}
.b-scope .b-player__art{width:220px;height:220px;border-radius:12px;background:radial-gradient(110% 110% at 30% 20%, var(--bible-art-a) 0%, var(--bible-art-b) 55%, var(--bible-art-c) 100%);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.b-scope .b-player__art::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 22px,var(--bible-art-glow) 22px 23px)}
.b-scope .b-player__art svg{width:84px;height:84px;fill:var(--bible-fdf);position:relative;z-index:1}
.b-scope .b-player__kicker{font:700 11px/1 var(--bible-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--bible-red);margin-bottom:12px}
.b-scope .b-player h3{font-family:var(--bible-serif);font-weight:700;font-size:clamp(24px,3vw,34px);line-height:1.12;margin-bottom:6px}
.b-scope .b-player__show{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--bible-ink-dim);font-weight:600;margin-bottom:18px}
.b-scope .b-player__controls{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.b-scope .b-pbtn{width:58px;height:58px;border-radius:50%;border:0;background:var(--bible-red);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px var(--bible-shadow-red)}
.b-scope .b-pbtn:hover{background:var(--bible-red-deep)}
.b-scope .b-pbtn svg{width:20px;height:20px;fill:var(--bible-white);margin-left:2px}
.b-scope .b-pbtn--ghost{background:transparent;border:1px solid var(--bible-rule);box-shadow:none;width:44px;height:44px}
.b-scope .b-pbtn--ghost svg{fill:var(--bible-ink);margin:0;width:15px;height:15px}
.b-scope .b-pbtn--ghost:hover{border-color:var(--bible-red)}
.b-scope .b-pbtn--ghost:hover svg{fill:var(--bible-red)}
.b-scope .b-player__prog{height:6px;border-radius:4px;background:var(--bible-rule);overflow:hidden;margin-bottom:8px}
.b-scope .b-player__prog i{display:block;height:100%;width:38%;background:var(--bible-red);border-radius:4px}
.b-scope .b-player__times{display:flex;justify-content:space-between;font-size:12.5px;color:var(--bible-ink-dim);font-variant-numeric:tabular-nums}

/* ---- partner spotlight ---- */
.b-scope .b-partner{background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:16px;padding:38px;display:flex;gap:30px;align-items:center}
.b-scope .b-partner__logo{width:110px;height:110px;border-radius:22px;flex-shrink:0;background:var(--bible-plbg);display:flex;align-items:center;justify-content:center;font-family:var(--bible-serif);font-weight:900;font-size:64px;color:var(--bible-plred);box-shadow:0 10px 30px var(--bible-shadow-mid)}
.b-scope .b-partner h3{font-family:var(--bible-serif);font-weight:700;font-size:clamp(22px,2.6vw,30px);margin:8px 0}
.b-scope .b-partner p{color:var(--bible-ink-soft);max-width:58ch;margin-bottom:18px}
.b-scope .b-partner .b-ext{font-size:12px;color:var(--bible-ink-dim);margin-left:14px}

/* ---- ticket band ---- */
.b-scope .b-ticket{border-radius:16px;padding:44px;color:var(--bible-cream);position:relative;overflow:hidden;background:radial-gradient(120% 120% at 15% 10%, var(--bible-red) 0%, var(--bible-art-b) 55%, var(--bible-ticket-c) 100%)}
.b-scope .b-ticket::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 30px,var(--bible-texture) 30px 31px)}
.b-scope .b-ticket__in{position:relative;z-index:1;display:flex;align-items:center;gap:30px;flex-wrap:wrap}
.b-scope .b-ticket h3{font-family:var(--bible-serif);font-weight:700;font-size:clamp(26px,3.4vw,40px);line-height:1.08}
.b-scope .b-ticket p{color:var(--bible-ticket-p);margin-top:8px;max-width:52ch}
.b-scope .b-ticket .b-btn{background:var(--bible-cream);color:var(--bible-red-deep);margin-left:auto}
.b-scope .b-ticket .b-btn:hover{background:var(--bible-white)}

/* ================= BUTTONS ================= */
.b-scope .b-btn{display:inline-block;background:var(--bible-red);color:var(--bible-white);text-decoration:none;font:700 12.5px/1 var(--bible-sans);letter-spacing:.1em;text-transform:uppercase;padding:15px 28px;border-radius:4px;border:0;cursor:pointer}
.b-scope .b-btn:hover{background:var(--bible-red-deep)}
.b-scope .b-btn--ghost{background:transparent;color:var(--bible-ink);border:1.5px solid var(--bible-ink)}
.b-scope .b-btn--ghost:hover{background:var(--bible-ink);color:var(--bible-bg)}
.b-scope .b-pill{font:700 12px/1 var(--bible-sans);letter-spacing:.1em;text-transform:uppercase;border:1.5px solid var(--bible-rule);background:var(--bible-card);color:var(--bible-ink-soft);border-radius:4px;padding:12px 20px;cursor:pointer}
.b-scope .b-pill.b-on{background:var(--bible-ink);border-color:var(--bible-ink);color:var(--bible-bg)}
.b-scope .b-pill:hover{border-color:var(--bible-red);color:var(--bible-red)}
.b-scope .b-pill.b-on:hover{color:var(--bible-bg)}
.b-scope .b-iconbtn{width:46px;height:46px;border-radius:50%;border:1px solid var(--bible-rule);background:var(--bible-card);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--bible-ink);font-size:17px}
.b-scope .b-iconbtn:hover{border-color:var(--bible-red);color:var(--bible-red)}
.b-scope .b-remind{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--bible-rule);background:var(--bible-card);border-radius:4px;padding:11px 20px;font:700 12px/1 var(--bible-sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;color:var(--bible-ink)}
.b-scope .b-remind:hover{border-color:var(--bible-red);color:var(--bible-red)}
.b-scope .b-btnrow{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:14px}

/* ================= FOOTER — the ONE unified footer ================= */
.b-scope .b-footer{border-top:1px solid var(--bible-rule);padding:56px 0 120px;margin-top:20px}
.b-scope .b-footer__in{max-width:var(--bible-max);margin:0 auto;padding:0 var(--bible-pad)}
.b-scope .b-footer__top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:36px}
.b-scope .b-footer__cols{display:flex;gap:56px;flex-wrap:wrap}
.b-scope .b-fcol h4{font:700 11px/1 var(--bible-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--bible-ink-dim);margin-bottom:16px}
.b-scope .b-fcol a{display:block;text-decoration:none;font-size:14.5px;color:var(--bible-ink-soft);padding:5px 0}
.b-scope .b-fcol a:hover{color:var(--bible-red)}
.b-scope .b-footer__base{border-top:1px solid var(--bible-rule);padding-top:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--bible-ink-dim)}

/* ================= BREAKING TICKER — the ONE breaking band (approved dark surface) ================= */
.b-scope .b-ticker{background:var(--bible-ink);color:var(--bible-bg);border-radius:12px;padding:16px 22px;display:flex;gap:16px;align-items:center;overflow:hidden}
.b-scope .b-ticker .b-tk{font:800 11px/1 var(--bible-sans);letter-spacing:.22em;color:var(--bible-white);background:var(--bible-red);border-radius:6px;padding:8px 12px;flex-shrink:0;animation:b-pulse 2s infinite}
.b-scope .b-ticker p{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b-scope .b-ticker p b{font-family:var(--bible-serif)}

/* ================= NEWSLETTER — the ONE signup (works without JS) ================= */
.b-scope .b-newsbox{background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:16px;padding:38px;display:grid;gap:8px;max-width:640px}
.b-scope .b-newsbox h3{font-family:var(--bible-serif);font-weight:700;font-size:28px}
.b-scope .b-newsbox p{color:var(--bible-ink-dim);font-size:15px}
.b-scope .b-newsform{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.b-scope .b-newsform input{flex:1;min-width:200px;border:1.5px solid var(--bible-rule);border-radius:4px;padding:14px 22px;font:500 15px/1 var(--bible-sans);background:var(--bible-bg);color:var(--bible-ink);outline:none}
.b-scope .b-newsform input:focus{border-color:var(--bible-red)}
.b-scope .b-news-note{font-size:13.5px;color:var(--bible-ink-soft);margin-top:10px;display:none}
.b-scope .b-newsbox.b-sent .b-news-note{display:block}
.b-scope .b-newsbox.b-sent .b-newsform{display:none}

/* ================= SKELETONS — the ONE loading style ================= */
.b-scope .b-skel{position:relative;overflow:hidden;background:var(--bible-rule);border-radius:8px}
.b-scope .b-skel::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,var(--bible-shimmer) 50%,transparent 80%);animation:b-shimmer 1.6s infinite}
.b-scope .b-skel-card{background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:12px;overflow:hidden}
.b-scope .b-skel-card .b-skel{border-radius:0}
.b-scope .b-skel-body{padding:18px;display:grid;gap:10px}

/* ================= EMPTY STATES — ONE design, ONE voice ================= */
.b-scope .b-empty{border:1.5px dashed var(--bible-rule);border-radius:14px;padding:56px 28px;text-align:center;max-width:560px;margin:0 auto}
.b-scope .b-empty .b-eicon{font-size:40px;margin-bottom:14px}
.b-scope .b-empty h3{font-family:var(--bible-serif);font-weight:600;font-size:22px;margin-bottom:8px}
.b-scope .b-empty p{color:var(--bible-ink-dim);font-size:15px;max-width:40ch;margin:0 auto 18px}

/* ================= SEARCH RESULTS ================= */
.b-scope .b-sr-row{display:flex;gap:18px;align-items:center;padding:18px 6px;border-bottom:1px solid var(--bible-rule);text-decoration:none}
.b-scope .b-sr-row:hover h4{color:var(--bible-red)}
.b-scope .b-sr-art{width:74px;height:74px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--bible-serif);font-weight:800;font-size:28px;color:var(--bible-white)}
.b-scope .b-sr-row h4{font-family:var(--bible-serif);font-weight:600;font-size:18px;line-height:1.3}
.b-scope .b-sr-row p{font-size:13px;color:var(--bible-ink-dim);margin-top:4px}
.b-scope .b-sr-tag{font:700 10px/1 var(--bible-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--bible-red)}

/* ================= POP-UP OVERLAY (ONE overlay component, every pop-up) ================= */
.b-scope .b-ov{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;padding:22px}
.b-scope .b-ov.b-is-open{display:flex}
.b-scope .b-ov__bg{position:absolute;inset:0;background:var(--bible-overlay);backdrop-filter:blur(5px)}
.b-scope .b-ov__panel{position:relative;background:var(--bible-bg);border:1px solid var(--bible-rule);border-radius:16px;width:min(560px,100%);max-height:90vh;overflow-y:auto;padding:30px;box-shadow:0 30px 90px var(--bible-shadow-deep)}
.b-scope .b-ov__panel.b-wide{width:min(720px,100%)}
.b-scope .b-ov__x{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--bible-rule);background:var(--bible-card);color:var(--bible-ink);font-size:15px;cursor:pointer}
.b-scope .b-ov__x:hover{border-color:var(--bible-red);color:var(--bible-red)}
.b-scope .b-ov__kick{font:700 10.5px/1 var(--bible-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--bible-red);margin-bottom:12px}
.b-scope .b-ov__panel h3{font-family:var(--bible-serif);font-weight:700;font-size:26px;line-height:1.15;margin-bottom:8px}
.b-scope .b-ov__panel .b-dek{font-size:14.5px;color:var(--bible-ink-soft);margin-bottom:18px}
.b-scope .b-ov__row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--bible-rule);font-size:15px}
.b-scope .b-ov__row:last-child{border-bottom:0}
.b-scope .b-ov__row b{font-variant-numeric:tabular-nums}
.b-scope .b-ov__cta{display:inline-block;margin-top:18px;color:var(--bible-red);font:700 13px/1 var(--bible-sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.b-scope .b-ov__cta:hover{text-decoration:underline}
.b-scope .b-ov__note{margin-top:6px;font-size:12.5px;color:var(--bible-ink-dim)}

/* ================= TRAILER MODAL — the canonical trailer (built by PVBible.trailer) ================= */
.b-scope .b-trailer-stage{border-radius:10px;overflow:hidden;aspect-ratio:16/9;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 120% at 30% 20%, var(--bible-stage-a) 0%, var(--bible-stage-b) 70%)}
.b-scope .b-trailer-stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.b-scope .b-trailer-stage .b-bigplay{width:76px;height:76px;border-radius:50%;background:var(--bible-red);border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 34px var(--bible-shadow-play)}
.b-scope .b-trailer-stage .b-bigplay svg{width:26px;height:26px;fill:var(--bible-white);margin-left:3px}
.b-scope .b-trailer-stage .b-bigplay:hover{background:var(--bible-red-deep)}

/* ================= MINI PLAYER — docks ABOVE the mobile tab bar ================= */
.b-scope .b-minibar{position:fixed;left:0;right:0;bottom:0;z-index:150;background:var(--bible-minibar);backdrop-filter:blur(10px);border-top:1px solid var(--bible-rule);padding:12px 18px calc(12px + env(safe-area-inset-bottom));display:none;align-items:center;gap:14px;box-shadow:0 -12px 40px var(--bible-shadow-bar)}
.b-scope .b-minibar.b-is-open{display:flex}
.b-scope .b-minibar .b-mprog{position:absolute;top:-2px;left:0;right:0;height:3px;background:var(--bible-rule)}
.b-scope .b-minibar .b-mprog i{display:block;height:100%;width:34%;background:var(--bible-red)}
.b-scope .b-minibar .b-mart{width:48px;height:48px;border-radius:10px;flex-shrink:0;background:radial-gradient(110% 110% at 30% 20%, var(--bible-art-a) 0%, var(--bible-art-c) 100%)}
.b-scope .b-minibar .b-mt{flex:1;min-width:0}
.b-scope .b-minibar .b-mt b{display:block;font-family:var(--bible-serif);font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b-scope .b-minibar .b-mt span{font-size:12px;color:var(--bible-ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.b-scope .b-minibar .b-mp{width:46px;height:46px;border-radius:50%;background:var(--bible-red);border:0;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.b-scope .b-minibar .b-mp svg{width:16px;height:16px;fill:var(--bible-white);margin-left:2px}
.b-scope .b-minibar .b-mx{width:36px;height:36px;border-radius:50%;border:1px solid var(--bible-rule);background:transparent;color:var(--bible-ink-dim);cursor:pointer;flex-shrink:0;font-size:13px}
.b-scope .b-minibar .b-mx:hover{border-color:var(--bible-red);color:var(--bible-red)}

/* ================= 404 ================= */
.b-scope .b-e404{text-align:center;padding:80px 24px 100px}
.b-scope .b-e404 .b-bigno{font-family:var(--bible-serif);font-weight:900;font-size:clamp(120px,24vw,260px);line-height:1;letter-spacing:-.04em;color:var(--bible-ink)}
.b-scope .b-e404 .b-bigno em{font-style:normal;color:var(--bible-red)}
.b-scope .b-e404 h1{font-family:var(--bible-serif);font-style:italic;font-weight:600;font-size:clamp(22px,3.4vw,32px);margin:10px 0 14px;color:var(--bible-ink-soft)}

/* ================= TEMPLATE SHARED BITS ================= */
.b-scope .b-twrap{max-width:var(--bible-max);margin:0 auto;padding:0 var(--bible-pad)}
.b-scope .b-tblock{padding:56px 0;scroll-margin-top:70px}
.b-scope .b-tblock + .b-tblock{border-top:1px solid var(--bible-rule)}
.b-scope .b-thead{margin-bottom:28px}
.b-scope .b-ttitle{font-family:var(--bible-serif);font-weight:700;font-size:clamp(26px,3.2vw,40px);letter-spacing:-.01em}
.b-scope .b-ttitle .b-bnum{font-style:italic;font-weight:600;font-size:.62em;color:var(--bible-red);margin-right:12px}
.b-scope .b-tsub{color:var(--bible-ink-dim);font-size:15px;margin-top:8px;max-width:60ch}

/* ---- article ---- */
.b-scope .b-art-hero{border-radius:16px;overflow:hidden;min-height:340px;position:relative;display:flex;align-items:flex-end;background:radial-gradient(120% 100% at 25% 15%, var(--bible-hero-a) 0%, var(--bible-hero-b) 50%, var(--bible-hero-d) 100%)}
.b-scope .b-art-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,var(--bible-cap-shade) 100%)}
.b-scope .b-art-hero figcaption{position:relative;z-index:1;color:var(--bible-champagne);font-size:13px;padding:20px 26px}
.b-scope .b-byline{display:flex;align-items:center;gap:14px;margin:26px 0;padding:18px 0;border-top:1px solid var(--bible-rule);border-bottom:1px solid var(--bible-rule)}
.b-scope .b-byline .b-ava{width:46px;height:46px;border-radius:50%;background:var(--bible-red);color:var(--bible-white);display:flex;align-items:center;justify-content:center;font-family:var(--bible-serif);font-weight:800;font-size:20px}
.b-scope .b-byline b{display:block;font-size:15px}
.b-scope .b-byline span{font-size:13px;color:var(--bible-ink-dim)}
.b-scope .b-article-body{max-width:68ch;font-size:17.5px;line-height:1.75;color:var(--bible-ink)}
.b-scope .b-article-body p{margin-bottom:1.4em}
.b-scope .b-article-body p.b-lede::first-letter{font-family:var(--bible-serif);font-weight:800;font-size:3.4em;float:left;line-height:.86;margin:6px 10px 0 0;color:var(--bible-red)}
.b-scope .b-pullquote{font-family:var(--bible-serif);font-style:italic;font-size:clamp(22px,2.8vw,30px);line-height:1.35;color:var(--bible-ink);border-left:4px solid var(--bible-red);padding:6px 0 6px 24px;margin:2em 0}
.b-scope .b-keyfacts{background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:12px;padding:24px 26px;margin:2em 0}
.b-scope .b-keyfacts h4{font:700 11px/1 var(--bible-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--bible-red);margin-bottom:14px}
.b-scope .b-keyfacts li{list-style:none;padding:8px 0;border-bottom:1px solid var(--bible-rule);font-size:15px}
.b-scope .b-keyfacts li:last-child{border-bottom:0}
.b-scope .b-keyfacts li b{color:var(--bible-ink)}

/* ---- team page ---- */
.b-scope .b-team-head{display:flex;gap:26px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.b-scope .b-team-logo{width:110px;height:110px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:52px;color:var(--bible-white);background:radial-gradient(circle at 35% 30%, var(--bible-team-a) 0%, var(--bible-team-b) 100%);box-shadow:0 12px 30px var(--bible-shadow-mid)}
.b-scope .b-team-head h2{font-family:var(--bible-serif);font-weight:800;font-size:clamp(34px,5vw,58px);letter-spacing:-.02em;line-height:1}
.b-scope .b-team-meta{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.b-scope .b-chip{font:700 11px/1 var(--bible-sans);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--bible-rule);border-radius:4px;padding:9px 15px;color:var(--bible-ink-soft);background:var(--bible-card)}
.b-scope .b-chip.b-hot{background:var(--bible-red);border-color:var(--bible-red);color:var(--bible-white)}
.b-scope .b-sched{width:100%;border-collapse:collapse;background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:12px;overflow:hidden}
.b-scope .b-sched th{font:700 10.5px/1 var(--bible-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--bible-ink-dim);text-align:left;padding:14px 18px;border-bottom:1px solid var(--bible-rule)}
.b-scope .b-sched td{padding:15px 18px;border-bottom:1px solid var(--bible-rule);font-size:15px}
.b-scope .b-sched tr:last-child td{border-bottom:0}
.b-scope .b-sched .b-w{font:800 13px/1 var(--bible-sans);color:var(--bible-white);background:var(--bible-win);border-radius:6px;padding:5px 10px}
.b-scope .b-sched .b-l{font:800 13px/1 var(--bible-sans);color:var(--bible-white);background:var(--bible-red);border-radius:6px;padding:5px 10px}
.b-scope .b-numlist{list-style:none}
.b-scope .b-numlist li{display:flex;gap:18px;align-items:baseline;padding:16px 4px;border-bottom:1px solid var(--bible-rule)}
.b-scope .b-numlist .b-n{font-family:var(--bible-serif);font-style:italic;font-weight:600;font-size:22px;color:var(--bible-red);min-width:44px}
.b-scope .b-numlist h4{font-family:var(--bible-serif);font-weight:600;font-size:18px;line-height:1.35}
.b-scope .b-numlist p{font-size:13.5px;color:var(--bible-ink-dim);margin-top:4px}

/* ---- matchup viewer (THE one viewer) ---- */
.b-scope .b-mu{background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:16px;overflow:hidden}
.b-scope .b-mu-top{display:flex;align-items:center;justify-content:space-between;padding:18px 26px;border-bottom:1px solid var(--bible-rule)}
.b-scope .b-mu-top .b-lg{font:700 11px/1 var(--bible-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--bible-ink-dim)}
.b-scope .b-mu-score{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;padding:38px 26px;text-align:center}
.b-scope .b-mu-team .b-tdot{width:64px;height:64px;border-radius:50%;margin:0 auto 14px}
.b-scope .b-mu-team h3{font-family:var(--bible-serif);font-weight:700;font-size:clamp(20px,2.6vw,30px);line-height:1.15}
.b-scope .b-mu-team .b-rec{font-size:13px;color:var(--bible-ink-dim);margin-top:6px}
.b-scope .b-mu-nums .b-big{font-family:var(--bible-serif);font-weight:800;font-size:clamp(56px,8vw,96px);line-height:1;font-variant-numeric:tabular-nums}
.b-scope .b-mu-nums .b-dash{font-family:var(--bible-serif);font-size:40px;color:var(--bible-ink-dim);margin:0 10px}
.b-scope .b-mu-status{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font:700 12px/1 var(--bible-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--bible-red)}
.b-scope .b-mu-status i{width:8px;height:8px;border-radius:50%;background:var(--bible-red);animation:b-pulse 1.6s infinite}
.b-scope .b-mu-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:0 26px 30px}
.b-scope .b-mu-meta div{background:var(--bible-bg);border:1px solid var(--bible-rule);border-radius:10px;padding:16px 18px}
.b-scope .b-mu-meta h5{font:700 10px/1 var(--bible-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--bible-ink-dim);margin-bottom:8px}
.b-scope .b-mu-meta p{font-weight:600;font-size:15px}
.b-scope .b-statbar{margin:14px 0}
.b-scope .b-statbar .b-lbl{display:flex;justify-content:space-between;font-size:13.5px;font-weight:600;margin-bottom:6px}
.b-scope .b-statbar .b-lbl span:last-child{color:var(--bible-ink-dim)}
.b-scope .b-statbar .b-track{height:8px;border-radius:4px;background:var(--bible-rule);position:relative;overflow:hidden}
.b-scope .b-statbar .b-track i{position:absolute;left:0;top:0;bottom:0;background:var(--bible-red);border-radius:4px}
.b-scope .b-scoring{width:100%;border-collapse:collapse}
.b-scope .b-scoring td,.b-scope .b-scoring th{padding:11px 8px;border-bottom:1px solid var(--bible-rule);font-size:14.5px;text-align:center;font-variant-numeric:tabular-nums}
.b-scope .b-scoring th{font:700 10.5px/1 var(--bible-sans);letter-spacing:.14em;color:var(--bible-ink-dim)}
.b-scope .b-scoring td:first-child,.b-scope .b-scoring th:first-child{text-align:left;font-weight:600}

/* ---- artist ---- */
.b-scope .b-artist-head{display:flex;gap:30px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.b-scope .b-artist-ava{width:170px;height:170px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:72px;background:radial-gradient(circle at 35% 30%, var(--bible-artist-a) 0%, var(--bible-artist-b) 100%);box-shadow:0 16px 40px var(--bible-shadow-avatar)}
.b-scope .b-artist-head h2{font-family:var(--bible-serif);font-weight:800;font-size:clamp(38px,6vw,72px);letter-spacing:-.02em;line-height:1}
.b-scope .b-artist-head .b-genre{font:700 11px/1 var(--bible-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--bible-red);margin:10px 0}
.b-scope .b-artist-bio{max-width:64ch;font-size:16.5px;color:var(--bible-ink-soft);line-height:1.7}
.b-scope .b-track{display:flex;align-items:center;gap:16px;padding:14px 6px;border-bottom:1px solid var(--bible-rule)}
.b-scope .b-track .b-n{font-family:var(--bible-serif);font-style:italic;font-size:20px;color:var(--bible-ink-dim);width:36px}
.b-scope .b-track .b-tplay{width:42px;height:42px;border-radius:50%;border:1px solid var(--bible-rule);background:var(--bible-card);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.b-scope .b-track .b-tplay svg{width:14px;height:14px;fill:var(--bible-ink);margin-left:2px}
.b-scope .b-track .b-tplay:hover{border-color:var(--bible-red)}
.b-scope .b-track .b-tplay:hover svg{fill:var(--bible-red)}
.b-scope .b-track b{display:block;font-size:15.5px}
.b-scope .b-track span{font-size:13px;color:var(--bible-ink-dim)}
.b-scope .b-track .b-dur{margin-left:auto;font-size:13px;color:var(--bible-ink-dim);font-variant-numeric:tabular-nums}

/* ---- podcast show ---- */
.b-scope .b-show-head{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.b-scope .b-show-art{width:180px;height:180px;border-radius:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(110% 110% at 30% 20%, var(--bible-art-a) 0%, var(--bible-art-b) 60%, var(--bible-art-c) 100%)}
.b-scope .b-show-art svg{width:76px;height:76px;fill:var(--bible-fdf)}
.b-scope .b-show-head h2{font-family:var(--bible-serif);font-weight:800;font-size:clamp(32px,4.6vw,56px);letter-spacing:-.02em;line-height:1.05}
.b-scope .b-show-head .b-hosts{font:700 12px/1 var(--bible-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--bible-red);margin:10px 0}
.b-scope .b-follow{font:700 12px/1 var(--bible-sans);letter-spacing:.12em;text-transform:uppercase;border:1.5px solid var(--bible-ink);background:transparent;color:var(--bible-ink);border-radius:4px;padding:13px 26px;cursor:pointer}
.b-scope .b-follow:hover{background:var(--bible-ink);color:var(--bible-bg)}
.b-scope .b-ep{display:flex;gap:18px;align-items:center;padding:18px 6px;border-bottom:1px solid var(--bible-rule)}
.b-scope .b-ep .b-eplay{width:52px;height:52px;border-radius:50%;background:var(--bible-red);border:0;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.b-scope .b-ep .b-eplay svg{width:17px;height:17px;fill:var(--bible-white);margin-left:2px}
.b-scope .b-ep .b-eplay:hover{background:var(--bible-red-deep)}
.b-scope .b-ep b{display:block;font-family:var(--bible-serif);font-weight:600;font-size:17px;line-height:1.35}
.b-scope .b-ep span{font-size:13px;color:var(--bible-ink-dim)}
.b-scope .b-ep .b-dur{margin-left:auto;font-size:13px;color:var(--bible-ink-dim);font-variant-numeric:tabular-nums;flex-shrink:0}
.b-scope .b-ep .b-new{font:700 9px/1 var(--bible-sans);letter-spacing:.16em;color:var(--bible-white);background:var(--bible-red);border-radius:4px;padding:5px 8px;margin-left:10px;vertical-align:middle}

/* ---- movie detail ---- */
.b-scope .b-mv{display:grid;grid-template-columns:300px 1fr;gap:38px;align-items:start}
.b-scope .b-mv-poster{border-radius:14px;aspect-ratio:2/3;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:22px;background:linear-gradient(160deg,var(--bible-mv-a) 0%,var(--bible-mv-b) 60%,var(--bible-mv-c) 100%)}
.b-scope .b-mv-poster .b-bigletter{position:absolute;top:-20px;right:8px;font-family:var(--bible-serif);font-weight:900;font-size:170px;color:var(--bible-scrim)}
.b-scope .b-mv-poster .b-yr{position:relative;z-index:1;color:var(--bible-champagne);font:700 12px/1 var(--bible-sans);letter-spacing:.2em}
.b-scope .b-mv h2{font-family:var(--bible-serif);font-weight:800;font-size:clamp(34px,5vw,60px);letter-spacing:-.02em;line-height:1.02}
.b-scope .b-mv .b-meta{display:flex;gap:10px;margin:14px 0 18px;flex-wrap:wrap}
.b-scope .b-mv .b-syn{font-size:16.5px;color:var(--bible-ink-soft);line-height:1.7;max-width:60ch}
.b-scope .b-cast{display:flex;gap:16px;overflow-x:auto;padding:6px 0 10px;scrollbar-width:none}
.b-scope .b-cast::-webkit-scrollbar{display:none}
.b-scope .b-cperson{flex-shrink:0;width:110px;text-align:center}
.b-scope .b-cperson .b-face{width:110px;height:110px;border-radius:50%;margin-bottom:10px;display:flex;align-items:center;justify-content:center;font-family:var(--bible-serif);font-weight:700;font-size:34px;color:var(--bible-white)}
.b-scope .b-cperson b{display:block;font-size:13.5px}
.b-scope .b-cperson span{font-size:12px;color:var(--bible-ink-dim)}
.b-scope .b-watch-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.b-scope .b-watch-btn{display:inline-flex;align-items:center;gap:10px;border:1.5px solid var(--bible-ink);border-radius:4px;padding:13px 24px;font:700 12.5px/1 var(--bible-sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--bible-ink)}
.b-scope .b-watch-btn:hover{background:var(--bible-ink);color:var(--bible-bg)}
.b-scope .b-watch-btn.b-primary{background:var(--bible-red);border-color:var(--bible-red);color:var(--bible-white)}
.b-scope .b-watch-btn.b-primary:hover{background:var(--bible-red-deep)}

/* ---- ticket card ---- */
.b-scope .b-ticket-card{background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:16px;overflow:hidden;margin-bottom:22px}
.b-scope .b-ticket-card__head{padding:22px 28px;border-bottom:1px solid var(--bible-rule);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.b-scope .b-ticket-card__head h3{font-family:var(--bible-serif);font-weight:700;font-size:24px}
.b-scope .b-odds-pill{font:800 15px/1 var(--bible-sans);color:var(--bible-white);background:var(--bible-ink);border-radius:8px;padding:10px 16px;font-variant-numeric:tabular-nums}
.b-scope .b-leg{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:center;padding:18px 28px;border-bottom:1px solid var(--bible-rule)}
.b-scope .b-leg:last-child{border-bottom:0}
.b-scope .b-leg .b-ln{width:44px;height:44px;border-radius:50%;background:var(--bible-bg);border:1px solid var(--bible-rule);display:flex;align-items:center;justify-content:center;font-family:var(--bible-serif);font-style:italic;font-weight:600;font-size:18px;color:var(--bible-red)}
.b-scope .b-leg b{display:block;font-size:16px}
.b-scope .b-leg span{font-size:13.5px;color:var(--bible-ink-dim)}
.b-scope .b-leg .b-why{font-size:13px;color:var(--bible-ink-soft);margin-top:4px;max-width:52ch}
.b-scope .b-leg .b-o{font:800 16px/1 var(--bible-sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.b-scope .b-guard{background:var(--bible-bg);border:1px dashed var(--bible-rule);border-radius:12px;padding:20px 24px;font-size:14px;color:var(--bible-ink-soft)}
.b-scope .b-guard b{color:var(--bible-red)}

/* ---- live tv ---- */
.b-scope .b-tv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.b-scope .b-ch{background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:12px;padding:22px;text-align:center;position:relative}
.b-scope .b-ch .b-clogo{width:58px;height:58px;border-radius:14px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-family:var(--bible-serif);font-weight:800;font-size:24px;color:var(--bible-white)}
.b-scope .b-ch b{display:block;font-family:var(--bible-serif);font-size:17px}
.b-scope .b-ch span{font-size:12.5px;color:var(--bible-ink-dim)}
.b-scope .b-ch .b-onnow{position:absolute;top:12px;left:12px;font:700 9px/1 var(--bible-sans);letter-spacing:.16em;color:var(--bible-white);background:var(--bible-red);border-radius:4px;padding:5px 8px}

/* ---- gallery ---- */
.b-scope .b-gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.b-scope .b-gal-card{background:var(--bible-card);border:1px solid var(--bible-rule);border-radius:14px;padding:26px;text-decoration:none;display:block}
.b-scope .b-gal-card:hover{border-color:var(--bible-red);box-shadow:0 10px 30px var(--bible-shadow-soft)}
.b-scope .b-gal-card .b-n{font-family:var(--bible-serif);font-style:italic;font-weight:600;font-size:20px;color:var(--bible-red)}
.b-scope .b-gal-card h3{font-family:var(--bible-serif);font-weight:700;font-size:22px;margin:10px 0 6px}
.b-scope .b-gal-card p{font-size:14px;color:var(--bible-ink-dim)}
.b-scope .b-gal-sec{font:700 11px/1 var(--bible-sans);letter-spacing:.26em;text-transform:uppercase;color:var(--bible-ink-dim);margin:44px 0 20px}

/* ---- component specimens (docs/dev aids) ---- */
.b-scope .b-spec-sec{margin-bottom:52px}
.b-scope .b-spec-sec > h3{font-family:var(--bible-serif);font-weight:700;font-size:26px;margin-bottom:6px}
.b-scope .b-spec-sec > h3 .b-bnum{font-style:italic;font-size:.65em;color:var(--bible-red);margin-right:10px}
.b-scope .b-spec-sec > p{color:var(--bible-ink-dim);font-size:14px;margin-bottom:20px;max-width:62ch}
.b-scope .b-mockparent{max-width:var(--bible-max);margin:0 auto;padding:40px var(--bible-pad);filter:blur(2px);opacity:.5;pointer-events:none;user-select:none}
.b-scope .b-mocktag{display:inline-block;font:700 10px/1 var(--bible-sans);letter-spacing:.2em;text-transform:uppercase;background:var(--bible-ink);color:var(--bible-bg);border-radius:4px;padding:8px 12px;margin-bottom:18px}

/* ================= RESPONSIVE ================= */
@media(min-width:900px){
  :root{--bible-pad:48px}
}
@media(max-width:1023px){
  .b-scope .b-topnav a.b-nav-link{display:none}
  .b-scope .b-dateline{display:none}
  /* Mobile chrome owns EVERY width up to 1023px (James, 2026-10-12):
     the slim header + section strip + bottom tab bar used to stop at
     640px while the top links hid at 1023px, so 641-1023px — every
     landscape phone (844-932px) — had NO navigation at all. These rules
     lived in the 640px block; they live here now so portrait AND
     landscape phones always get a working nav. */
  .b-scope .b-m-head{display:flex;align-items:center;justify-content:space-between;padding:14px var(--bible-pad);border-bottom:1px solid var(--bible-rule)}
  .b-scope .b-m-head .b-wordmark{font-size:24px}
  .b-scope .b-m-head .b-dateline{display:block;font-size:10px}
  .b-scope .b-topbar .b-topnav{display:none}
  .b-scope .b-topbar__in .b-wordmark{display:none}
  .b-scope .b-topbar__in{height:0;padding:0;overflow:hidden}
  .b-scope .b-topbar{border-bottom:0}
  .b-scope .b-sec-strip{display:flex;gap:4px;align-items:center;padding:0 var(--bible-pad);border-bottom:1px solid var(--bible-rule);background:var(--bible-bg);overflow-x:auto;scrollbar-width:none}
  .b-scope .b-sec-strip::-webkit-scrollbar{display:none}
  .b-scope .b-sec-strip a{font:700 11px/1 var(--bible-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--bible-ink-dim);text-decoration:none;padding:13px 12px;white-space:nowrap;border-bottom:2px solid transparent}
  .b-scope .b-sec-strip a:hover{color:var(--bible-ink)}
  .b-scope .b-sec-strip a.b-on{color:var(--bible-ink);border-bottom-color:var(--bible-red)}
  .b-scope .b-tabbar{display:block}
  .b-scope{padding-bottom:calc(74px + env(safe-area-inset-bottom, 0px))} /* tabbar grows with safe-area; padding must match or content slides under it */
  /* mini player docks ABOVE the mobile tab bar, never under it */
  .b-scope .b-minibar{bottom:74px}
  .b-scope.b-minibar-open{padding-bottom:150px}
}
@media(max-width:899px){
  .b-scope .b-hero{grid-template-columns:1fr}
  .b-scope .b-hero-main{min-height:380px}
  .b-scope .b-news-grid{grid-template-columns:repeat(2,1fr)}
  .b-scope .b-player{grid-template-columns:1fr;padding:26px}
  .b-scope .b-player__art{width:150px;height:150px}
  .b-scope .b-partner{flex-direction:column;align-items:flex-start;padding:28px}
  .b-scope .b-ticket .b-btn{margin-left:0}
  .b-scope .b-mv{grid-template-columns:1fr}
  .b-scope .b-mv-poster{max-width:260px}
  .b-scope .b-tv-grid{grid-template-columns:repeat(2,1fr)}
  .b-scope .b-gal-grid{grid-template-columns:repeat(2,1fr)}
  .b-scope .b-mu-meta{grid-template-columns:1fr}
  .b-scope .b-mu-score{padding:28px 16px}
}
@media(max-width:640px){
  .b-scope .b-hero-giant{font-size:104px;top:2px;right:10px}
  /* Mobile nav chrome (m-head / sec-strip / tabbar) lives in the
     max-width:1023px block above — it must cover landscape phones too,
     not just portrait. Do not re-add nav rules here. */
  .b-scope .b-masthead{padding:36px 0 28px}
  .b-scope .b-news-grid{grid-template-columns:1fr}
  .b-scope .b-block{padding:48px 0}
  .b-scope .b-score-card{width:262px}
  .b-scope .b-ilink{padding:14px 2px}
  .b-scope .b-gal-grid{grid-template-columns:1fr}
  .b-scope .b-leg{grid-template-columns:36px 1fr;gap:12px;padding:16px 18px}
  .b-scope .b-leg .b-o{grid-column:2;justify-self:start}
  .b-scope .b-ov__panel{padding:24px 20px}
  .b-scope .b-artist-ava{width:120px;height:120px;font-size:52px}
  .b-scope .b-show-art{width:130px;height:130px}
  .b-scope .b-type-row{grid-template-columns:1fr;gap:8px}
}

/* ADS OFF SITE-WIDE (James 2026-10-09): hide all empty ad containers so they
   never occupy space. Remove this block when the post-rebuild ad redesign ships. */
.pv-adsense-slot,
.pv-adsense-slot--display,
.pv-adsense-slot--infeed,
ins.pv-adsense,
.b-adslot{display:none!important;height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}

/* ================= MOBILE HEADER FIT (James, 2026-10-12) =================
   Phone portrait (<=640px): the slim mobile header carries ONLY the
   wordmark + the account cluster (bell + SIGN IN / avatar). The dateline
   leaves the header - on content pages it duplicates the masthead/section
   date line directly beneath it. The account cluster compacts (smaller
   bell, tighter sign-in) so wordmark + bell + SIGN IN fit a 360px screen
   with room to spare: nothing clipped, no horizontal overflow.
   Desktop is untouched: every rule below sits inside the phone query or
   targets .b-m-head, which renders only at <=1023px. The .pv-* overrides
   carry .b-m-head specificity so they win over pv-account.css (loaded
   later, single-class selectors) without editing that file. */
@media (max-width:640px){
.b-scope .b-m-head{padding:12px 16px;gap:12px}
.b-scope .b-m-head .b-wordmark{font-size:23px}
.b-scope .b-m-head .b-dateline{display:none}
.b-scope .b-m-head .pv-acct{gap:8px}
.b-scope .b-m-head .pv-bell{width:34px;height:34px}
.b-scope .b-m-head .pv-bell svg{width:18px;height:18px}
.b-scope .b-m-head .pv-signin{height:34px;padding:0 12px;font-size:11px;letter-spacing:.08em;border-radius:4px}
.b-scope .b-m-head .pv-avatar{width:34px;height:34px}
}


/* ================= LEGIBILITY FLOOR (2026-10-12 invisible-text root fix) =================
   The /title/ detail shell once painted its body text with --desert-card
   (#FFFFFF, a SURFACE token) on the cream page ground, rescued only by a
   prefers-color-scheme:light patch — dark-scheme visitors got white text
   on cream (title, overview, genres, facts, cast). The shell is fixed at
   source; this floor stands in the shared sheet so no stale template or
   patch script can reintroduce light-on-light text in these classes.
   .td-* is used only on the cream ground (verified dark surfaces use
   .tc-* photo heroes), so forcing ink here cannot break a dark design. */
.td-title,.td-overview,.td-fact dd,.td-castm b,.td-sec,.td-err h1{color:var(--desert-ink)}
.td-meta,.td-back,.td-tagline,.td-err{color:var(--desert-ink-dim)}
.td-hero .td-genres a{color:var(--desert-ink)}
.td-trend{color:var(--desert-ink)}
.td-err button{color:var(--desert-ink)}

/* ============================================================================
   RAIDERS CONVERSION — PHASE 1 (2026-10-16): the shared Bible header +
   mobile chrome take the locked black/silver/white tokens (ground #000000,
   surfaces #101010/#1B1B1B, line #2C2C2C, text #FFFFFF, text-2 #C9CCCE,
   silver #A5ACAF, accent-text #D7DBDD, accent-deep #6E7478). Scoped to the
   chrome containers ONLY — page bodies keep their own family tokens until
   their conversion phase. The vars re-resolve every --bible-* the chrome
   subtree consumes; the few raw warm rgba paints inside the chrome get
   explicit overrides below. Rollback: delete this block
   (+ restore .bak-raiders1-20261016).
   ========================================================================== */
.b-scope .b-topbar,.b-scope .b-m-head,.b-scope .b-sec-strip,.b-scope .b-tabbar,
.b-scope .b-indexbar,.b-scope .b-minibar,.b-scope .b-sheet__panel{
  --bible-bg:#000000;--bible-card:#101010;
  --bible-ink:#A5ACAF;--bible-ink-soft:#959DA2;--bible-ink-dim:#8C9399;
  --bible-red:#FFFFFF;--bible-red-deep:#6E7478;--bible-rule:#2C2C2C;
  --bible-minibar:rgba(0,0,0,.97);--bible-indexbar:rgba(0,0,0,.96);--bible-tabbar:rgba(0,0,0,.97);
  --bible-white:#FFFFFF;--bible-cream:#FFFFFF;--bible-cream-dim:rgba(255,255,255,.82);
  --bible-shadow-bar:rgba(0,0,0,.45);
  color:#A5ACAF;
}
.b-scope .b-m-head{background:#000000}
.b-scope .b-sheet__panel{background:#000000}
.b-scope .b-topbar .b-nav-dropmenu{box-shadow:0 24px 60px rgba(0,0,0,.55)}
.b-scope .b-topbar .b-nav-dropmenu .b-drop-sub{box-shadow:0 18px 44px rgba(0,0,0,.5)}
.b-scope .b-topbar .b-drop-link:hover,.b-scope .b-topbar .b-drop-link:focus-visible,
.b-scope .b-topbar .b-drop-sublink:hover,.b-scope .b-topbar .b-drop-sublink:focus-visible,
.b-scope .b-topbar .b-drop-toggle:hover,.b-scope .b-topbar .b-drop-toggle:focus-visible{background:rgba(255,255,255,.07)}
.b-scope .b-sheet .b-drop-link:hover,.b-scope .b-sheet .b-drop-link:focus-visible{background:rgba(255,255,255,.07)}
.b-scope .b-topbar .b-drop-ic,.b-scope .b-sheet .b-drop-ic{background:rgba(255,255,255,.08)}
.b-scope .b-topbar .b-drop-link:hover .b-drop-ic,.b-scope .b-topbar .b-drop-link:focus-visible .b-drop-ic,
.b-scope .b-sheet .b-drop-link:hover .b-drop-ic{background:#6E7478;color:#FFFFFF}
.b-scope .b-topbar .b-live{color:#FFFFFF}
.b-scope .b-topbar .b-live-dot{background:#FFFFFF}
.b-scope .b-sheet__bg{background:rgba(0,0,0,.55)}
.b-scope .b-sheet__panel{box-shadow:0 -18px 50px rgba(0,0,0,.5)}
.b-scope .b-minibar .b-mp svg{fill:#000000}
.b-scope .b-topbar .pv-avatar,.b-scope .b-m-head .pv-avatar{color:#000000}

/* RAIDERS ROLE SWAP (2026-10-16 04:59 PT): text = silver, accents = white.
   League nav stopgap: .pv-league-nav is shared header chrome on sports
   pages; its --desert-* light-theme vars are pinned to the locked roles
   here so the strip never renders cream under the black header. The full
   sports-family conversion (Phase 2) reworks its own stylesheets. */
.b-scope .pv-league-nav{
  --desert-bg:#000000;--desert-card:#101010;
  --desert-ink:#A5ACAF;--desert-ink-dim:#8C9399;--desert-ink-faint:#8C9399;
  --desert-rule:#2C2C2C;--desert-accent:#FFFFFF;--desert-accent-deep:#FFFFFF;
  --desert-accent-faint:rgba(255,255,255,.08);--desert-accent-soft:rgba(255,255,255,.12);
  background:#000000;border-bottom:1px solid #2C2C2C;color:#A5ACAF;
}
body.b-scope .pv-league-nav .pv-lgdrop__tab{color:#8C9399}
body.b-scope .pv-league-nav .pv-lgdrop__tab:hover{color:#FFFFFF}
body.b-scope .pv-league-nav .pv-lgdrop__tab[aria-current="page"]{color:#FFFFFF;border-bottom-color:#FFFFFF}
body.b-scope .pv-league-nav .pv-lgdrop__inner{background:#101010;border-color:#2C2C2C;border-top-color:#FFFFFF}

/* HEADER SPEC (James, 2026-10-16 05:11 PT): the wordmark period is the
   ticker's signal red #E10600 — every header/footer wordmark occurrence. */
.b-scope .b-wordmark em{color:#E10600}
/* MARATHON FONT — PHASE 1 (2026-10-16): Bible wordmark in 'Previously Display'
   (James's Marathon Long Run face; Regular 400 ONLY — no faux bold).
   Colors deliberately untouched: silver wordmark text + signal-red period
   per the Raiders role mapping and HEADER SPEC blocks above. */
.b-scope .b-wordmark{font-family:'Previously Display',Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:0}

/* ==========================================================================
   SPORTS SHEET — GHOST GRID (James, 2026-10-16: T1 verdict + glow steer).
   Scoped to .b-sheet--sports ONLY (the phone Sports sheet; bible.js adds
   the class + runs the grid transform for key === 'sports'). The desktop
   dropdown and all other sheets are untouched. Resting state: NO tile
   boxes, NO borders/strokes, NO icon discs, NO fills, NO divider gaps —
   bare icon + label on one continuous black surface. The banned thick
   white top accent (border-top on the panel) is gone; the sheet MELTS in
   via a mask fade at the panel's top edge. Active league: white icon +
   label, signal-red period, rotated chevron — plus the soft tonal glow
   as the pressed/open atmosphere: an oversized radial that finishes
   fading in open air around the entry (never a clipped wash/pill).
   Rollback: delete this block (+ restore .bak-ghostgrid-20261016).
   ========================================================================== */
.b-scope .b-sheet--sports .b-sheet__panel{border-top:0;border-radius:0;box-shadow:none;background:#000000;padding:28px 16px calc(20px + env(safe-area-inset-bottom));overflow-x:hidden;overflow-x:clip;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0,#000000 26px);mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0,#000000 26px)}
.b-scope .b-sheet--sports .b-sheet__head{display:flex;align-items:center;justify-content:space-between;padding:8px 2px 2px}
.b-scope .b-sheet--sports .b-sheet__title{font:600 17px/1 var(--bible-sans);letter-spacing:.24em;text-transform:uppercase;color:#A5ACAF}
.b-scope .b-sheet--sports .b-sheet__title::after{content:".";color:#E10600}
.b-scope .b-sheet--sports .b-sheet__x{flex:0 0 auto;width:44px;height:44px;margin-right:-11px;border:0;border-radius:0;background:transparent;color:#A5ACAF;font-size:17px;line-height:1}
/* groups become grids; labels + spacing rhythm do the organizing */
.b-scope .b-sheet--sports .b-drop-group{margin-top:0;padding:0}
.b-scope .b-sheet--sports .b-drop-group--div{margin-top:0;border-top:0}
.b-scope .b-sheet--sports .b-drop-glabel{padding:28px 10px 12px;font:600 11px/1 var(--bible-sans);letter-spacing:.26em;text-transform:uppercase;color:#8C9399}
.b-scope .b-sheet--sports .gsp--bare{margin-top:8px}
.b-scope .b-sheet--sports .gsp--leagues,.b-scope .b-sheet--sports .gsp--features{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:18px;row-gap:12px;align-items:start}
.b-scope .b-sheet--sports .gsp--follow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:10px;row-gap:12px;align-items:start}
.b-scope .b-sheet--sports .b-drop-group>*{min-width:0}
.b-scope .b-sheet--sports .gsp--leagues .b-drop-glabel,.b-scope .b-sheet--sports .gsp--features .b-drop-glabel,.b-scope .b-sheet--sports .gsp--follow .b-drop-glabel{grid-column:1/-1}
.b-scope .b-sheet--sports .gsp-subhost{grid-column:1/-1;margin-top:12px}
/* entries: bare icon + label compositions, zero chrome */
.b-scope .b-sheet--sports .b-drop-item{flex-wrap:nowrap;align-items:stretch}
.b-scope .b-sheet--sports .b-drop-link{display:flex;align-items:center;gap:12px;min-height:58px;padding:7px 10px;border-radius:0;background:transparent;font:600 14.5px/1.25 var(--bible-sans);letter-spacing:.15em;text-transform:uppercase;text-decoration:none;color:#A5ACAF}
.b-scope .b-sheet--sports .b-drop-link:hover,.b-scope .b-sheet--sports .b-drop-link:focus-visible{background:transparent;color:#A5ACAF;outline:none}
.b-scope .b-sheet--sports .b-drop-link:focus-visible,.b-scope .b-sheet--sports .b-drop-toggle:focus-visible,.b-scope .b-sheet--sports .b-drop-sublink:focus-visible{box-shadow:inset 0 0 0 2px #FFFFFF}
.b-scope .b-sheet--sports .b-drop-ic{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:0;background:transparent;color:#A5ACAF}
.b-scope .b-sheet--sports .b-drop-ic svg{width:25px;height:25px}
.b-scope .b-sheet--sports .b-drop-link:hover .b-drop-ic{background:transparent;color:#A5ACAF}
.b-scope .b-sheet--sports .b-drop-chev{margin-left:auto;width:15px;height:15px;color:#7E858B;opacity:1;transform:none}
.b-scope .b-sheet--sports .gsp--features .b-drop-link{font-size:12.5px;min-height:54px}
.b-scope .b-sheet--sports .gsp--features .b-drop-chev{display:none}
/* toggle: bare chevron, no disc, no fill */
.b-scope .b-sheet--sports .b-drop-toggle{position:absolute;right:0;top:0;bottom:0;display:inline-flex;align-items:center;justify-content:center;width:22px;margin:0;border:0;border-radius:0;background:transparent;color:#7E858B;cursor:pointer}
/* long labels (COLLEGE, STATISTICS HUB) share the cell with the toggle
   glyph: letter-spacing steps down a touch in the league/feature grids,
   and the invisible icon box shrinks under 375px, so no label ever
   touches its chevron. */
.b-scope .b-sheet--sports .gsp--leagues .b-drop-link{font-size:14px;letter-spacing:.11em}
.b-scope .b-sheet--sports .gsp--features .b-drop-link{font-size:10.5px;letter-spacing:.04em;gap:8px}
.b-scope .b-sheet--sports .gsp--features .b-drop-ic{width:40px;height:40px}
@media (max-width:375px){
.b-scope .b-sheet--sports .gsp--leagues .b-drop-link{font-size:13px;letter-spacing:.09em}
.b-scope .b-sheet--sports .gsp--features .b-drop-link{font-size:9px;letter-spacing:.03em;gap:7px}
.b-scope .b-sheet--sports .gsp--features .b-drop-ic{width:36px;height:36px}
.b-scope .b-sheet--sports .gsp--features .b-drop-ic svg{width:22px;height:22px}
.b-scope .b-sheet--sports .gsp--leagues .b-drop-ic,.b-scope .b-sheet--sports .gsp--features .b-drop-ic,.b-scope .b-sheet--sports .gsp--bare .b-drop-ic{width:40px;height:40px}
}
.b-scope .b-sheet--sports .b-drop-toggle:hover,.b-scope .b-sheet--sports .b-drop-toggle:focus-visible{background:transparent;color:#FFFFFF;outline:none}
.b-scope .b-sheet--sports .b-drop-toggle svg{width:15px;height:15px;transition:transform 160ms ease}
.b-scope .b-sheet--sports .b-drop-item.b-is-open .b-drop-toggle svg{transform:rotate(90deg)}
/* follow-the-action: icon over label, same surface */
.b-scope .b-sheet--sports .gsp--follow .b-drop-link{flex-direction:column;justify-content:center;gap:9px;min-height:80px;padding:10px 2px;text-align:center;font-size:10.5px;letter-spacing:.11em;line-height:1.35}
.b-scope .b-sheet--sports .gsp--follow .b-drop-ic{width:40px;height:40px}
.b-scope .b-sheet--sports .gsp--follow .b-drop-ic svg{width:23px;height:23px}
.b-scope .b-sheet--sports .gsp--follow .b-drop-chev{display:none}
/* active league: white signal + red period + the soft glow bloom */
.b-scope .b-sheet--sports .b-drop-item{position:relative;isolation:isolate}
.b-scope .b-sheet--sports .b-drop-item::before{content:"";position:absolute;inset:-26px -34px;z-index:-1;background:radial-gradient(ellipse 62% 92% at 38% 50%,rgba(255,255,255,.14),rgba(255,255,255,0) 70%);opacity:0;transition:opacity 260ms ease;pointer-events:none}
.b-scope .b-sheet--sports .b-drop-item.b-is-open::before{opacity:1}
.b-scope .b-sheet--sports .b-drop-item.b-is-open .b-drop-link{color:#FFFFFF}
.b-scope .b-sheet--sports .b-drop-item.b-is-open .b-drop-ic{color:#FFFFFF;background:transparent}
.b-scope .b-sheet--sports .b-drop-item.b-is-open .b-drop-link>span:not(.b-drop-ic)::after{content:".";color:#E10600}
.b-scope .b-sheet--sports .b-drop-item.b-is-open .b-drop-toggle{color:#FFFFFF}
@media (prefers-reduced-motion:reduce){.b-scope .b-sheet--sports .b-drop-item::before{transition:none}.b-scope .b-sheet--sports .b-drop-toggle svg{transition:none}}
/* sub-menu: unfolds beneath the grid, in the same surface, faint bloom */
.b-scope .b-sheet--sports .b-drop-sub.gsp-sub{position:relative;isolation:isolate;padding:16px 8px 12px}
.b-scope .b-sheet--sports .b-drop-sub.gsp-sub::before{content:"";position:absolute;inset:-30px -20px;z-index:-1;background:radial-gradient(ellipse 72% 100% at 50% 40%,rgba(255,255,255,.09),rgba(255,255,255,0) 70%);pointer-events:none}
.b-scope .b-sheet--sports .b-drop-sub.gsp-sub.gsp-on{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:18px;row-gap:4px}
.b-scope .b-sheet--sports .b-drop-sublink{min-width:0}
.b-scope .b-sheet--sports .gsp-subhead{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;padding:0 10px 10px}
.b-scope .b-sheet--sports .gsp-subhead__name{font:600 12px/1 var(--bible-sans);letter-spacing:.22em;text-transform:uppercase;color:#FFFFFF}
.b-scope .b-sheet--sports .gsp-subhead__hint{font:500 10.5px/1 var(--bible-sans);letter-spacing:.14em;text-transform:uppercase;color:#7E858B}
.b-scope .b-sheet--sports .b-drop-sublink{display:flex;align-items:center;justify-content:space-between;min-height:50px;padding:0 10px;border-radius:0;background:transparent;font:600 13px/1.3 var(--bible-sans);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:#A5ACAF}
.b-scope .b-sheet--sports .b-drop-sublink::after{content:"\203A";color:#7E858B;font-size:14px}
.b-scope .b-sheet--sports .b-drop-sublink:hover,.b-scope .b-sheet--sports .b-drop-sublink:focus-visible{background:transparent;color:#FFFFFF;outline:none}

/* ALL-RED WORDMARK (James, 2026-10-16 06:22 PT — supersedes the 05:11
   header spec): "Previously." renders ENTIRELY in signal red #E10600 —
   letters and period — everywhere the brand mark appears. */
.b-scope .b-wordmark{color:#E10600}
.b-scope .b-wordmark em{color:#E10600}
