.shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.eyebrow {
      margin: 0 0 14px;
      color: var(--muted);
      font-size: .76rem;
      font-weight: 800;
      letter-spacing: .14em;
      text-transform: uppercase;
    }
.shows .eyebrow, .shows .section-head > p { color: currentColor; opacity: .65; }
.shorts-subhead .eyebrow { margin-bottom: 10px; }
.acc-head .eyebrow { margin-bottom: 10px; }
.merch-copy .eyebrow { color: #090909; opacity: .65; }
.merch-copy .eyebrow { color: #fff; opacity: .72; letter-spacing: .32em; }
.waitlist-success .eyebrow { color: var(--yellow); }
.fpl-head .eyebrow { color: var(--yellow); }
.fpl-section .eyebrow { color: var(--yellow); }
.fpl-head p:not(.eyebrow) { color: #b6b6af; max-width: 650px; margin: 18px 0 0; }
@media (max-width: 680px) {
.shell { width: min(100% - 28px, 1180px); } body.menu-open .song-fab,
      body.menu-open .back-to-top { opacity: 0 !important; pointer-events: none !important; }
}
body.merch-mode .merch-copy .eyebrow { color: var(--yellow); opacity: 1; }
body.fpl-mode .song-label { display: none; }
body.fpl-mode .fpl-head p:not(.eyebrow) { margin-left: auto; margin-right: auto; }
/* ---------- Ball Knowledge editorial view ---------- */
    .bk-back { display: none; }
.bk-section > .bk-back, .bk-section > .shell { position: relative; z-index: 1; }
body.bk-mode .bk-back {
      display: inline-block; margin: 28px 0 0 clamp(20px, 5vw, 72px);
      color: #6b655a; font-weight: 600; font-size: .95rem; text-decoration: none;
    }
body.bk-mode .bk-back:hover, body.bk-mode .bk-back:focus-visible { text-decoration: underline; }
.bk-masthead { text-align: center; max-width: 820px; margin: 0 auto; padding: clamp(48px, 7vw, 88px) 20px clamp(28px, 4vw, 48px); }
.bk-rule { width: 72px; height: 5px; background: #ffc400; margin: 0 auto 26px; border-radius: 3px; }
.bk-masthead .eyebrow { color: #1c1a16; opacity: .62; margin-bottom: 18px; }
.bk-article-head .eyebrow { color: #1c1a16; opacity: .62; margin-bottom: 18px; }
.bk-masthead h2 {
      font-family: 'Newsreader', Georgia, serif; font-weight: 500;
      font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.15; letter-spacing: -0.01em;
      margin: 0 0 16px; color: #14120e; text-wrap: balance;
    }
.bk-masthead > p { color: #6b655a; font-size: 1.05rem; margin: 0; }
.bk-card {
      max-width: 760px; margin: 12px auto 0; background: #fffdf8;
      border: 1px solid #e9e2d2; border-radius: 16px; overflow: hidden;
      box-shadow: 0 18px 50px rgba(28, 26, 22, .07); padding: 0;
      box-sizing: border-box; min-width: 0;
    }
.bk-card-media { display: block; width: 100%; border: none; padding: 0; cursor: pointer; background: #111; }
.bk-card-media img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.bk-card-body { padding: clamp(28px, 5vw, 44px); }
.bk-top-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: 32px; align-items: start; }
.bk-top-grid .bk-card { max-width: none; margin: 0; }
.bk-recent-list { display: flex; flex-direction: column; gap: 22px; }
.bk-mini { display: grid; grid-template-columns: 44% 1fr; gap: 20px; width: 100%;
      box-sizing: border-box;
      text-align: left; font: inherit; color: inherit; background: #fffdf8;
      border: 1px solid #e9e2d2; border-radius: 20px; padding: 16px; cursor: pointer;
      box-shadow: 0 18px 50px rgba(28, 26, 22, .07); }
.bk-mini:hover { border-color: #c9c0a8; }
.bk-mini-thumb { display: block; border-radius: 12px; overflow: hidden;
      aspect-ratio: 4 / 3; background: #f0ebdd; align-self: start; }
.bk-mini-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bk-mini-kicker { display: inline-block; font-size: .66rem; font-weight: 700; letter-spacing: .2em;
      text-transform: uppercase; color: #8a6d00; background: #fff3c4;
      padding: 6px 12px; border-radius: 999px; margin-bottom: 12px; }
.bk-mini-title { display: block; font-family: 'Newsreader', Georgia, serif; font-weight: 500;
      font-size: 1.35rem; line-height: 1.25; color: #14120e; margin-bottom: 10px; }
.bk-mini-dek { display: block; color: #57524a; font-size: .92rem; line-height: 1.55; margin-bottom: 14px; }
.bk-mini-meta { display: block; color: #8a8478; font-size: .78rem; }
@media (max-width: 900px) {
.bk-top-grid { grid-template-columns: 1fr; }
}
.bk-card-kicker {
      display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .22em;
      text-transform: uppercase; color: #8a6d00; background: #fff3c4;
      padding: 7px 14px; border-radius: 999px; margin-bottom: 20px;
    }
.bk-card h3 {
      font-family: 'Newsreader', Georgia, serif; font-weight: 500;
      font-size: clamp(1.7rem, 4vw, 2.4rem); line-height: 1.18; margin: 0 0 14px; color: #14120e;
    }
.bk-card .bk-dek { color: #57524a; font-size: 1.02rem; line-height: 1.65; margin: 0 0 22px; }
.bk-card-meta { color: #8a8478; font-size: .85rem; margin: 0 0 26px; }
.bk-read-btn {
      display: inline-block; background: #14120e; color: #faf8f1; border: none; cursor: pointer;
      font: 700 .92rem 'DM Sans', sans-serif; letter-spacing: .04em;
      padding: 14px 30px; border-radius: 999px; text-decoration: none;
    }
.bk-read-btn:hover, .bk-read-btn:focus-visible { background: #2b2822; }
.bk-read-btn, .bk-share-btn { transition: transform .25s ease, background .25s ease, border-color .25s ease, color .25s ease; }
.bk-read-btn:active, .bk-share-btn:active { transform: scale(.97); }
.bk-news-card { margin: 48px auto 0; max-width: 660px; text-align: center; background: #fffdf8; border: 1px solid #e9e2d2; border-radius: 20px; padding: clamp(28px, 5vw, 40px); box-shadow: 0 18px 50px rgba(28, 26, 22, .07); }
.bk-news-card h3 { font-family: 'Newsreader', Georgia, serif; font-weight: 500; font-size: 1.6rem; line-height: 1.2; margin: 0 0 10px; color: #14120e; }
.bk-news-card > p { color: #57524a; margin: 0 0 20px; line-height: 1.6; }
.bk-news-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.bk-news-form input[type="email"] { flex: 1 1 220px; max-width: 320px; padding: 12px 18px; border: 1px solid #d8d0bd; border-radius: 999px; font: inherit; font-size: .95rem; background: #fff; color: #14120e; }
.bk-news-form input[type="email"]:focus { outline: none; border-color: #8a6d00; box-shadow: 0 0 0 3px rgba(138, 109, 0, .15); }
.bk-news-msg { margin: 14px 0 0; color: #57524a; font-size: .95rem; }
.bk-discord-line { margin: 16px 0 0; color: #57524a; font-size: .95rem; }
.bk-discord-line a { color: #14120e; font-weight: 700; }
.bk-article-head .bk-rule { margin-bottom: 22px; }
.bk-reading, .bk-archive { position: relative; }
.bk-reading::before, .bk-archive::before {
      content: ""; position: absolute; inset: -40px clamp(-120px, -8vw, -16px); z-index: 0; pointer-events: none;
      background: linear-gradient(90deg, rgba(250,248,241,0) 0%, #faf8f1 16%, #faf8f1 84%, rgba(250,248,241,0) 100%);
    }
.bk-reading > *, .bk-archive > * { position: relative; z-index: 1; }
.bk-dek {
      font-family: 'Newsreader', Georgia, serif; font-style: italic;
      font-size: 1.25rem; line-height: 1.5; color: #57524a;
      max-width: 660px; margin: 0 auto 22px;
    }
@media (max-width: 900px) {
.bk-reading::before, .bk-archive::before { inset: -24px -20px; background: #faf8f1; }
}
.bk-archive { max-width: 760px; margin: 76px auto 0; text-align: center; }
.bk-archive .bk-rule { margin-bottom: 22px; }
.bk-archive .eyebrow { margin-bottom: 14px; }
.bk-archive h3 {
      font-family: 'Newsreader', Georgia, serif; font-weight: 500;
      font-size: clamp(1.6rem, 4vw, 2.2rem); line-height: 1.2; color: #14120e;
      margin: 0 0 12px;
    }
.bk-archive-note { color: #8a8478; font-style: italic; max-width: 580px; margin: 0 auto; line-height: 1.65; }
.bk-archive-list { margin: 38px 0 0; padding: 0; border-top: 1px solid #e3ddd0; text-align: left; }
.bk-archive-row { border-bottom: 1px solid #e3ddd0; }
.bk-archive-row button {
      display: flex; align-items: baseline; gap: 16px; width: 100%;
      padding: 19px 4px; background: none; border: none; cursor: pointer; text-align: left;
    }
.bk-archive-num { font: 700 .75rem 'DM Sans', sans-serif; letter-spacing: .18em; color: #b39b00; flex: 0 0 32px; }
.bk-archive-title {
      font-family: 'Newsreader', Georgia, serif; font-size: 1.28rem; line-height: 1.35;
      color: #14120e; flex: 1;
    }
.bk-archive-date { font-size: .8rem; color: #8a8478; white-space: nowrap; letter-spacing: .05em; }
.bk-archive-row button:hover .bk-archive-title,
    .bk-archive-row button:focus-visible .bk-archive-title { color: #8a6d00; }
@media (max-width: 640px) {
.bk-card { border-radius: 12px; }
}
/* ============ Ball Knowledge floating player ============ */
    .song-fab {
      position: fixed; z-index: 150;
      left: max(18px, env(safe-area-inset-left));
      bottom: max(18px, env(safe-area-inset-bottom));
      display: flex; align-items: center; gap: 10px;
      transition: opacity .25s ease;
    }
.song-btn {
      width: 54px; height: 54px; border-radius: 50%;
      border: 2px solid var(--yellow); background: #090909; color: var(--yellow);
      font-size: 1.45rem; line-height: 1; cursor: pointer;
      display: grid; place-items: center;
      box-shadow: 0 8px 20px rgba(0,0,0,.4);
      transition: background .2s, color .2s, transform .2s;
    }
.song-btn:hover { transform: scale(1.06); }
.song-btn.playing { background: var(--yellow); color: #090909; }
.song-btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.song-note { display: inline-block; transform: translateY(-1px); }
.song-label {
      background: rgba(9,9,9,.88); color: #fff;
      font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
      padding: 9px 13px; border-radius: 999px; border: 1px solid rgba(255,255,255,.16);
      white-space: nowrap;
    }
.song-now {
      position: absolute; left: 0; bottom: 64px; width: 216px;
      background: #111; color: #fff;
      border: 1px solid rgba(255,255,255,.14); border-radius: 14px;
      padding: 14px 16px;
      opacity: 0; transform: translateY(8px); pointer-events: none;
      transition: opacity .25s ease, transform .25s ease;
    }
.song-now.show { opacity: 1; transform: none; pointer-events: auto; }
.song-now-title { margin: 0; font-weight: 800; font-size: .95rem; }
.song-now-artist { margin: 3px 0 10px; font-size: .78rem; opacity: .6; }
.song-now-full { color: var(--yellow); font-size: .78rem; font-weight: 800; text-decoration: none; }
.song-now-full:hover { text-decoration: underline; }
/* ---- Standalone listing overrides (must stay last) ---- */
:root {
  --yellow: #ffc400; --yellow-bright: #ffd21f; --yellow-soft: #fff1ae;
  --ink: #090909; --muted: #62625f; --line: #d6d6cf;
}
body {
  margin: 0; background: #faf8f1; color: #1c1a16;
  font-family: "DM Sans", -apple-system, "Segoe UI", sans-serif;
  font-size: 17px; line-height: 1.6;
}
a { color: inherit; }
.bk-section { background: #faf8f1; color: #1c1a16; padding: 0 0 110px; position: relative; }
.bk-section::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    radial-gradient(ellipse 85% 60% at 50% 8%, rgba(250,248,241,.96) 0%, rgba(250,248,241,0) 70%),
    linear-gradient(rgba(250,248,241,.80), rgba(250,248,241,.80)),
    url('../bk-desk-bg.jpg');
  background-size: cover; background-position: center; background-repeat: no-repeat;
}
.bk-section > .shell { position: relative; z-index: 1; }
/* topbar + footer (mirrors article pages) */
.bk-topbar { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between;
  padding: 14px 22px; background: rgba(250,248,241,.92); backdrop-filter: blur(8px);
  border-bottom: 1px solid #e9e2d2; font-size: .82rem; letter-spacing: .14em; }
.bk-topbar a { text-decoration: none; color: #57524a; font-weight: 700; text-transform: uppercase; }
.bk-topbar a:hover { color: #14120e; }
.bk-brand { font-weight: 800; color: #14120e !important; display: inline-flex; align-items: center; }
.bk-brand img { height: 36px; width: 36px; object-fit: cover; border-radius: 8px; display: block; }
@keyframes bkPageIn {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}
.bk-section { animation: bkPageIn .55s ease both; }
@media (prefers-reduced-motion: reduce) { .bk-section { animation: none; } }
.bk-footer { text-align: center; padding: 34px 20px 60px; color: #8a8478; font-size: .9rem; }
.bk-footer a { color: #57524a; }
/* Recent rail: JS sets exact 3-card height; older stories scroll inside */
@media (min-width: 681px) {
  .bk-top-grid { align-items: start; }
  .bk-recent { min-width: 0; padding-right: 10px; }
  .bk-recent-list { min-width: 0; scrollbar-width: thin; scrollbar-color: #c9c0a8 transparent; }
  .bk-recent-list .bk-mini { min-width: 0; }
  .bk-recent-list::-webkit-scrollbar { width: 6px; }
  .bk-recent-list::-webkit-scrollbar-thumb { background: #c9c0a8; border-radius: 3px; }
}
/* Featured hero: anchor to top so heads aren't cropped */
.bk-card-media img { object-position: center top; }
@media (max-width: 680px) {
/* Compact recent cards on phones */
.bk-recent-list { gap: 16px; }
.bk-mini { grid-template-columns: 36% 1fr; gap: 14px; padding: 12px 14px; border-radius: 14px; align-items: center; }
.bk-mini-thumb { aspect-ratio: 16 / 10; border-radius: 8px; align-self: center; }
.bk-mini-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bk-mini-kicker { font-size: .58rem; padding: 4px 10px; margin-bottom: 8px; }
.bk-mini-title { font-size: 1.02rem; line-height: 1.28; margin-bottom: 6px; }
.bk-mini-dek { font-size: .8rem; line-height: 1.5; margin-bottom: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}
/* archive rows use anchors on the standalone page */
.bk-archive-row a {
  display: flex; align-items: baseline; gap: 16px; width: 100%;
  padding: 16px 4px; background: none; border: 0; cursor: pointer;
  font: inherit; color: inherit; text-align: left; text-decoration: none;
}
.bk-archive-row a:hover .bk-archive-title, .bk-archive-row a:focus-visible .bk-archive-title { color: #8a6d00; text-decoration: underline; }
/* featured + mini cards use anchors on the standalone page */
a.bk-card-media { display: block; text-decoration: none; color: inherit; }
a.bk-mini { text-decoration: none; color: inherit; }
@media (max-width: 680px) {
  .bk-top-grid { grid-template-columns: 1fr; min-width: 0; }
  .bk-top-grid > * { min-width: 0; max-width: 100%; }
  .bk-recent-list {
    flex-direction: row; gap: 14px; overflow-x: auto; overflow-y: visible;
    scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; -ms-overflow-style: none; margin: 0 -14px; padding: 0 14px;
  }
  .bk-recent-list::-webkit-scrollbar { display: none; }
  .bk-recent-list .bk-mini {
    flex: 0 0 78%; max-width: 320px; scroll-snap-align: start;
    grid-template-columns: 1fr; gap: 0; align-items: start;
  }
  .bk-recent-list .bk-mini-thumb { aspect-ratio: 16 / 9; margin-bottom: 12px; }
  .bk-recent-list .bk-mini-dek {
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  }
  .bk-section::before {
    background-image:
      linear-gradient(rgba(250,248,241,.88), rgba(250,248,241,.88)),
      url('../bk-desk-bg-mobile.jpg');
    background-position: center;
  }
}
