/* Pool Hub — Previously Sports (pool-hub.css v20261012p1, restored 2026-10-13)
   Styles the pool-* classes emitted by /root/pool-hub/build_pool.py.
   Uses the sports design tokens (--pv-*) loaded by the page head. */

.pool-hub .pool-cta{display:inline-block;background:var(--pv-red,#c8102e);color:#fff;
  padding:10px 18px;border-radius:999px;font-weight:700;text-decoration:none;
  letter-spacing:.04em}
.pool-hub .pool-cta:hover{filter:brightness(1.1)}

/* lead feature */
.pool-lead .pool-facts{margin:14px 0;padding-left:20px;line-height:1.55}
.pool-lead-meta{font-weight:600;opacity:.85}
.pool-byline{opacity:.7;font-size:var(--pv-body-sm,14px)}

/* rankings board */
.pool-asof{font-size:var(--pv-body-sm,14px);opacity:.75}
.pool-board{display:flex;flex-direction:column;border-top:1px solid var(--pv-rule,rgba(0,0,0,.14))}
.pool-rank-row{display:flex;align-items:center;gap:14px;padding:9px 10px;
  border-bottom:1px solid var(--pv-rule,rgba(0,0,0,.14));text-decoration:none;color:inherit}
.pool-rank-row:hover{background:rgba(127,127,127,.08)}
.pool-rank-no{font-family:var(--pv-serif,Georgia,serif);font-size:20px;font-weight:700;
  min-width:34px;text-align:right}
.pool-avatar{width:46px;height:46px;object-fit:cover;object-position:top;
  border-radius:50%;background:#ddd}
.pool-rank-name{flex:1;font-weight:650;line-height:1.25}
.pool-rank-meta{display:block;font-weight:400;font-size:var(--pv-body-sm,14px);opacity:.7}
.pool-rank-earn{font-variant-numeric:tabular-nums;font-weight:700}

/* player cards */
.pool-pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.pool-pcard{display:flex;flex-direction:column;text-decoration:none;color:inherit;
  border:1px solid var(--pv-rule,rgba(0,0,0,.14));border-radius:14px;overflow:hidden;
  background:var(--pv-noir-2,#fff)}
.pool-pcard img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:top;background:#ddd}
.pool-pcard-rank{font-size:var(--pv-label,11px);text-transform:uppercase;
  letter-spacing:.18em;color:var(--pv-red,#c8102e);font-weight:700;padding:10px 12px 0}
.pool-pcard-name{font-family:var(--pv-serif,Georgia,serif);font-size:19px;font-weight:700;
  padding:2px 12px 0;line-height:1.2}
.pool-pcard-meta{font-size:var(--pv-body-sm,14px);opacity:.72;padding:2px 12px 12px}

/* featured matchups */
.pool-vs-grid{align-items:stretch}
.pool-vs-event{font-size:var(--pv-label,11px);text-transform:uppercase;
  letter-spacing:.18em;font-weight:700;color:var(--pv-red,#c8102e)}
.pool-vs h3{margin:6px 0}
.pool-vs-x{opacity:.5;font-weight:400;font-style:italic}
.pool-vs-note{line-height:1.5}
.pool-vs-venue{font-size:var(--pv-body-sm,14px);opacity:.72}

/* tournaments */
.pool-two{display:grid;grid-template-columns:1fr;gap:28px}
@media(min-width:860px){.pool-two{grid-template-columns:1fr 1fr}}
.pool-rail-title{font-family:var(--pv-serif,Georgia,serif);margin:0 0 10px}
.pool-evlist{list-style:none;margin:0;padding:0}
.pool-ev{padding:11px 0;border-bottom:1px solid var(--pv-rule,rgba(0,0,0,.14))}
.pool-ev-main{display:flex;flex-direction:column}
.pool-ev-name{font-weight:700}
.pool-ev-meta{font-size:var(--pv-body-sm,14px);opacity:.72}
.pool-ev-side{display:flex;justify-content:space-between;gap:12px;
  font-size:var(--pv-body-sm,14px);margin-top:3px}
.pool-ev-dates{font-weight:650;white-space:nowrap}
.pool-ev-venue{opacity:.72;text-align:right}
.pool-ev-note{margin:5px 0 0;line-height:1.5;font-size:var(--pv-body-sm,14px);opacity:.88}

/* videos */
.pool-vid-rail{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.pool-vid{margin:0}
.pool-vid-frame{position:relative;padding-top:56.25%}
.pool-vid-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:12px}
.pool-vid figcaption{font-weight:650;margin-top:8px;line-height:1.4}
.pool-vid-ch{display:block;font-weight:400;font-size:var(--pv-body-sm,14px);opacity:.7}

/* live tv card */
.pool-live{padding:22px}

/* profile pages */
.pool-profile-grid{display:grid;grid-template-columns:1fr;gap:22px;align-items:start}
@media(min-width:760px){.pool-profile-grid{grid-template-columns:320px 1fr}}
.pool-profile-photo{width:100%;border-radius:16px;object-fit:cover;background:#ddd}
.pool-facts{display:flex;flex-direction:column}
.pool-fact{display:flex;justify-content:space-between;gap:16px;padding:10px 0;
  border-bottom:1px solid var(--pv-rule,rgba(0,0,0,.14))}
.pool-fact-k{font-size:var(--pv-label,11px);text-transform:uppercase;
  letter-spacing:.16em;font-weight:700;opacity:.72;padding-top:3px}
.pool-fact-v{font-weight:650;text-align:right}
.pool-counts{display:flex;flex-wrap:wrap;gap:14px;margin:22px 0}
.pool-count{border:1px solid var(--pv-rule,rgba(0,0,0,.14));border-radius:12px;
  padding:12px 16px;min-width:130px}
.pool-count-n{display:block;font-family:var(--pv-serif,Georgia,serif);
  font-size:24px;font-weight:700}
.pool-count-l{font-size:var(--pv-body-sm,14px);opacity:.72}
.pool-note{line-height:1.65;max-width:72ch}
.pool-back{margin-top:26px}

/* feature article */
.pool-article{max-width:76ch;line-height:1.7}
.pool-article h2{font-family:var(--pv-serif,Georgia,serif);margin-top:32px}

/* ---- 2026-10-14 rebuild: hero / race / movement / big cards / stories / bridges ---- */

/* Mosconi hero */
.pool-hero{padding:0;overflow:hidden}
.pool-hero-media{margin:0;position:relative}
.pool-hero-media img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.pool-hero-media figcaption{position:absolute;right:10px;bottom:8px;font-size:11px;
  color:#fff;background:rgba(0,0,0,.55);padding:3px 9px;border-radius:999px}
.pool-hero-body{padding:22px}
.pool-hero-body h2{margin-top:4px}
.pool-hero-blurb{font-size:17px;line-height:1.55}
.pool-hero .pool-facts{margin:14px 0;padding-left:20px;line-height:1.55}
.pool-watch{margin:14px 0;padding:12px 16px;border:1px solid var(--pv-rule,rgba(0,0,0,.14));
  border-left:4px solid var(--pv-red,#c8102e);border-radius:10px;line-height:1.5}

/* countdown */
.pool-cd{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;margin:18px 0 4px}
.pool-cd-u{border:1px solid var(--pv-rule,rgba(0,0,0,.14));border-radius:12px;
  padding:8px 0;min-width:68px;text-align:center;background:var(--pv-noir-2,#fff)}
.pool-cd-n{display:block;font-family:var(--pv-serif,Georgia,serif);font-size:26px;font-weight:700}
.pool-cd-l{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  opacity:.65;font-weight:700}
.pool-cd-note{align-self:center;font-size:var(--pv-body-sm,14px);opacity:.75;margin:0}

/* race in numbers */
.pool-race{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:760px){.pool-race{grid-template-columns:1fr 1fr}}
.pool-stat{border:1px solid var(--pv-rule,rgba(0,0,0,.14));border-radius:14px;
  padding:18px;background:var(--pv-noir-2,#fff)}
.pool-stat-n{display:block;font-family:var(--pv-serif,Georgia,serif);font-size:46px;
  font-weight:700;color:var(--pv-red,#c8102e);line-height:1}
.pool-stat-l{display:block;margin-top:8px;line-height:1.5}
.pool-race-note{opacity:.85;line-height:1.6;max-width:76ch;margin-top:14px}

/* rankings movement */
.pool-move{font-weight:700;font-size:13px;white-space:nowrap}
.pool-move.up{color:#157347}
.pool-move.dn{color:var(--pv-red,#c8102e)}

/* big-ones cards */
.pool-big-grid,.pool-story-grid,.pool-bridge-grid{display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.pool-big{padding:18px}
.pool-big-dates{font-size:var(--pv-label,11px);text-transform:uppercase;
  letter-spacing:.16em;font-weight:700;color:var(--pv-red,#c8102e);margin:0}
.pool-big h3{font-family:var(--pv-serif,Georgia,serif);font-size:21px;margin:6px 0;line-height:1.25}
.pool-big-meta{font-weight:650;margin:0}
.pool-big-venue{font-size:var(--pv-body-sm,14px);opacity:.72;margin:4px 0 0}

/* stories */
.pool-story{padding:18px;text-decoration:none;color:inherit;display:block}
.pool-story-tag{font-size:var(--pv-label,11px);text-transform:uppercase;
  letter-spacing:.16em;font-weight:700;color:var(--pv-red,#c8102e);margin:0}
.pool-story h3{font-family:var(--pv-serif,Georgia,serif);font-size:20px;
  line-height:1.3;margin:6px 0}
.pool-story-dek{line-height:1.5;margin:0}
.pool-story-meta{font-size:var(--pv-body-sm,14px);opacity:.7;margin:10px 0 0}
.pool-story:hover,.pool-bridge:hover{border-color:var(--pv-red,#c8102e)}

/* bridges */
.pool-bridge{padding:16px 18px;text-decoration:none;color:inherit;display:block}
.pool-bridge h3{font-family:var(--pv-serif,Georgia,serif);font-size:19px;margin:0 0 4px}
.pool-bridge p{font-size:var(--pv-body-sm,14px);opacity:.75;margin:0}

/* ---- 2026-10-14 CREAM PAGE (James: "Can we do cream background?") ----
   Page ground = house cream --desert-bg #FAF6EE (design-tokens.css — the
   same cream the header bars already render). Cards stay --desert-card
   white, insets --desert-pressed: the Bible paper stack. The shared
   hubs-elevated.css paints body/.hub-wrap white for every hub; this
   page-scoped block re-grounds ONLY the pool pages (pool-hub.css loads
   nowhere else). body needs !important to meet hubs-elevated's body
   !important; pool-hub.css loads later, so it wins the tie. */
body{background:var(--desert-bg,#FAF6EE)!important}
.hub-wrap.pool-hub{background:var(--desert-bg,#FAF6EE)}
/* Cream-page contrast (measured on the public URL, 2026-10-14): the small
   red labels below used --pv-red #EC4634 as TEXT — 3.82:1 on white cards,
   3.55:1 on the new cream. As text on paper they take the design system's
   own paper red, --desert-accent-deep #92400E (~6.5:1 on cream). Fills are
   untouched: the big stat numerals (46px, large-text class) and the CTA
   button keep --pv-red. */
.pool-hub .pool-pcard-rank,
.pool-hub .pool-big-dates,
.pool-hub .pool-story-tag,
.pool-hub .pool-vs-event,
.pool-hub .pool-move.dn{color:var(--desert-accent-deep,#92400E)}

/* ---- 2026-10-14 ELEVATED HERO (James: "give it another elevated
   design — those pills for the countdown, they're not fitting in one
   line on mobile, that looks sloppy") ----
   Pool pages only (this sheet loads nowhere else). The hero zone is
   treated as one composition: a ruled masthead, the Mosconi card, and
   the countdown rebuilt as a single instrument band — header line
   (cap + note), hairline, then ONE row of four equal cells divided by
   hairlines. Cell widths are fluid (1fr of the band), so the row fits
   390px by construction instead of by min-width luck; numerals are the
   house serif with tabular figures so the ticking seconds never make
   the row jitter. The band is a white card on the cream page — the
   same card language as the stat tiles below it. */

/* masthead: ruled and quiet — kicker, display title, lede, ink rule */
.pool-hub .hub-masthead{padding-bottom:18px;margin-bottom:22px;
  border-bottom:2px solid var(--pv-ink,#1B1712)}
.pool-hub .hub-masthead .hub-kicker{margin:0 0 8px;font-size:11px;
  font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--desert-accent-deep,#92400E)}
.pool-hub .hub-title{font-family:var(--pv-serif,Georgia,serif);
  font-size:clamp(34px,5.2vw,48px);line-height:1.04;
  letter-spacing:-.01em;margin:0 0 10px}
.pool-hub .hub-lede{max-width:64ch;line-height:1.6;margin:0}
.pool-hero .hub-kicker{font-size:11px;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--desert-accent-deep,#92400E)}

/* hero card: breathing room, display headline */
.pool-hero-body{padding:24px 26px 26px}
.pool-hero-body h2{font-size:clamp(25px,4.2vw,33px);line-height:1.16;
  letter-spacing:-.01em}
@media(max-width:560px){.pool-hero-body{padding:20px 18px 22px}}

/* countdown instrument band (overrides the pill rules above) */
.pool-cd{display:block;margin:20px 0 6px;padding:13px 18px 15px;
  background:var(--desert-card,#fff);
  border:1px solid var(--pv-rule,rgba(0,0,0,.14));border-radius:14px}
.pool-cd-head{display:flex;align-items:baseline;justify-content:space-between;
  gap:10px 16px;flex-wrap:wrap;padding-bottom:10px;
  border-bottom:1px solid var(--pv-rule,rgba(0,0,0,.14))}
.pool-cd-cap{font-size:11px;font-weight:800;letter-spacing:.22em;
  text-transform:uppercase;color:var(--desert-accent-deep,#92400E);
  white-space:nowrap}
.pool-cd-note{align-self:auto;font-size:13px;opacity:.72;margin:0;
  text-align:right}
.pool-cd-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  padding-top:12px}
.pool-cd-u{border:0;border-radius:0;background:none;min-width:0;
  padding:0 4px;text-align:center}
.pool-cd-u + .pool-cd-u{border-left:1px solid var(--pv-rule,rgba(0,0,0,.14))}
.pool-cd-n{font-size:clamp(27px,7.5vw,38px);line-height:1.05;
  font-variant-numeric:tabular-nums}
.pool-cd-l{margin-top:3px;letter-spacing:.16em}
@media(max-width:560px){
  .pool-cd{padding:12px 12px 13px}
  .pool-cd-head{flex-direction:column;align-items:flex-start;gap:2px}
  .pool-cd-cap{font-size:10.5px;letter-spacing:.16em}
  .pool-cd-note{font-size:11.5px;text-align:left}
}

/* Elevated addendum (same pass): at 390 the masthead kicker orphaned
   its last word; tighten it onto one line. */
@media(max-width:560px){
  .pool-hub .hub-masthead .hub-kicker{font-size:10.5px;letter-spacing:.13em}
}

/* Elevated addendum 2 (same pass): masthead kicker one line at 390. */
@media(max-width:560px){
  .pool-hub .hub-masthead .hub-kicker{font-size:10px;letter-spacing:.08em}
}

/* ---- 2026-10-14 PROFILE PLATE (James: pool player profiles "attached
   to a template that fits our build and looks way more elegant") ----
   Profile pages only — these classes are emitted solely by
   build_profile in build_pool.py. One composed plate on the cream
   page in the wave2 furniture language (card paper #FFFDF8, hairline
   #D9D0BE, square corners): the player's real photo and identity
   together, the facts as a grid of labelled cells instead of hairline
   rows stretched the full width, and the titles as one stat band with
   the countdown band's 2px ink top rule. */
.pool-profile{margin-top:2px}
.pool-plate{display:grid;grid-template-columns:1fr;background:#FFFDF8;
  border:1px solid #D9D0BE}
@media(min-width:840px){.pool-plate{grid-template-columns:330px 1fr}}
.pool-plate-photo{display:block;width:100%;height:100%;max-height:380px;
  object-fit:cover;object-position:top;background:#ddd}
@media(min-width:840px){.pool-plate-photo{max-height:none}}
.pool-plate-main{padding:24px 26px 26px}
@media(max-width:560px){.pool-plate-main{padding:20px 18px 22px}}
.pool-plate-main .hub-kicker{margin:0 0 8px;font-size:11px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase}
@media(max-width:560px){.pool-plate-main .hub-kicker{font-size:10px;
  letter-spacing:.08em}}
.pool-plate-name{margin:0 0 8px}
.pool-plate-lede{font-size:17px;line-height:1.55;margin:0;opacity:.88}
.pool-pfacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 26px;margin-top:22px;padding-top:20px;
  border-top:1px solid #E0D7C3}
@media(min-width:840px){.pool-pfacts{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pool-pfact-k{display:block;font-size:11px;text-transform:uppercase;
  letter-spacing:.16em;font-weight:700;color:#C0391B;margin-bottom:3px}
.pool-pfact-v{display:block;font-size:16px;font-weight:650;line-height:1.35}
.pool-band{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  background:#FFFDF8;border:1px solid #D9D0BE;border-top:2px solid #1B1712;
  margin:18px 0 4px;padding:6px 10px}
@media(min-width:840px){.pool-band{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pool-band-c{padding:12px 14px}
@media(min-width:840px){.pool-band-c + .pool-band-c{border-left:1px solid #E0D7C3}}
@media(max-width:839px){
  .pool-band-c:nth-child(even){border-left:1px solid #E0D7C3}
  .pool-band-c:nth-child(n+3){border-top:1px solid #E0D7C3}
}
.pool-band .pool-count-n{font-size:29px}
.pool-profile .pool-note{margin:18px 0 0}

/* ---- 2026-10-14 MOSCONI CUP FEATURE (James: "the Mosconi Cup 2026
   tournament feature is very bland — we should have some artwork or
   color into that") ----
   Page-scoped components for /sports/pool/mosconi-cup-2026/ (the page's
   <main> carries .mosconi-feat; this sheet's other pages never use the
   mc-* classes). The design is the event itself: the official WNT
   artwork up top, then a duel band — Team USA in deep navy with a
   brand-red bar, Team Europe in royal blue with a gold bar — an event
   facts strip, the countdown instrument band, and designed stat /
   format modules inside the article column. Copy in the modules only
   restates facts the feature article itself states. */

.mosconi-feat .pool-article{margin-left:auto;margin-right:auto}
.mosconi-feat .pool-back{max-width:76ch;margin:26px auto 0}

/* hero: the official event artwork, full wrap width */
.mc-hero{margin:0 0 24px;position:relative;border-radius:16px;overflow:hidden;
  box-shadow:0 12px 32px rgba(27,23,18,.20)}
.mc-hero img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.mc-hero figcaption{position:absolute;right:10px;bottom:8px;font-size:11px;
  color:#fff;background:rgba(0,0,0,.55);padding:3px 9px;border-radius:999px}

/* the duel: USA vs Europe */
.mc-duel{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;
  align-items:stretch;margin:0 0 22px}
.mc-side{border-radius:16px;padding:22px 24px;color:#FBF7EC;position:relative;
  overflow:hidden}
.mc-side:before{content:"";position:absolute;top:0;left:0;right:0;height:5px}
.mc-usa{background:linear-gradient(155deg,#17335C,#0C1C33)}
.mc-usa:before{background:var(--brand-red,#EC4634)}
.mc-eur{background:linear-gradient(155deg,#1E56A8,#123763)}
.mc-eur:before{background:#C9A227}
.mc-side-k{margin:0 0 8px;font-size:11px;font-weight:800;letter-spacing:.22em;
  text-transform:uppercase;color:rgba(251,247,236,.75)}
.mc-side-big{font-family:var(--pv-serif,Georgia,serif);
  font-size:clamp(21px,2.6vw,27px);font-weight:700;line-height:1.15;
  margin:0 0 10px}
.mc-side-p{margin:0;line-height:1.55;font-size:15px;color:rgba(251,247,236,.92)}
.mc-vs{align-self:center;width:56px;height:56px;border-radius:50%;
  background:var(--desert-card,#fff);border:2px solid var(--pv-ink,#1B1712);
  display:flex;align-items:center;justify-content:center;z-index:1;
  font-family:var(--pv-serif,Georgia,serif);font-weight:700;font-size:19px;
  color:var(--pv-ink,#1B1712)}
@media(max-width:700px){
  .mc-duel{grid-template-columns:1fr;gap:0}
  .mc-vs{margin:-16px auto;position:relative}
  .mc-side{padding:20px}
}

/* event facts strip */
.mc-meta{display:flex;flex-wrap:wrap;gap:10px 38px;padding:14px 2px;
  margin:0 0 4px;border-top:1px solid var(--pv-rule,rgba(0,0,0,.14));
  border-bottom:1px solid var(--pv-rule,rgba(0,0,0,.14))}
.mc-meta-i{display:flex;flex-direction:column;gap:2px}
.mc-meta-k{font-size:10.5px;font-weight:800;letter-spacing:.18em;
  text-transform:uppercase;color:var(--desert-accent-deep,#92400E)}
.mc-meta-v{font-weight:650}

/* article modules */
.mc-stats{margin:26px 0 8px}
.mc-format{display:grid;grid-template-columns:repeat(3,1fr);margin:22px 0 6px;
  border:1px solid var(--pv-rule,rgba(0,0,0,.14));border-radius:14px;
  background:var(--desert-card,#fff);overflow:hidden}
.mc-fmt-i{padding:14px 16px;text-align:center}
.mc-fmt-i + .mc-fmt-i{border-left:1px solid var(--pv-rule,rgba(0,0,0,.14))}
.mc-fmt-n{display:block;font-family:var(--pv-serif,Georgia,serif);
  font-size:25px;font-weight:700;color:var(--desert-accent-deep,#92400E)}
.mc-fmt-l{display:block;margin-top:4px;font-size:13.5px;line-height:1.45;
  opacity:.85}
@media(max-width:560px){
  .mc-format{grid-template-columns:1fr}
  .mc-fmt-i + .mc-fmt-i{border-left:0;
    border-top:1px solid var(--pv-rule,rgba(0,0,0,.14))}
}
.mc-faces{margin-top:36px}

/* closing band: the article's own last line, set as the sign-off */
.mc-close{margin:30px 0 10px;background:var(--pv-ink,#1B1712);
  border-radius:16px;padding:32px 26px;text-align:center}
.mc-close p{margin:0 auto;max-width:34ch;
  font-family:var(--pv-serif,Georgia,serif);
  font-size:clamp(21px,3.4vw,29px);line-height:1.35;color:#FBF7EC}
.mc-close p:before{content:"";display:block;width:54px;height:4px;
  background:var(--brand-red,#EC4634);margin:0 auto 18px;border-radius:2px}

/* Profile plate addendum (same pass): at desktop widths the sticky
   league-nav band overlays the first ~108px of the page at rest
   (measured on the public URL — the untouched players index shows the
   same overlay on its masthead). The plate takes top clearance so the
   kicker and name sit below the band, the same rhythm as the Pool
   hub's own masthead. One line to remove if the nav's geometry
   changes. Mobile is unaffected (the nav is static there). */
@media(min-width:840px){.pool-profile{margin-top:56px}}

/* ============ CONTRAST FIX (20261014, stamp 20261014cf1) ============
   The plate/band/pcard system hard-codes a light card paper but set no
   text color of its own, so under a dark OS color scheme the inherited
   base color flips to white and every value rendered white-on-paper
   (measured 1.02:1 on the live Krause profile, 2026-10-14). Pin this
   family to house ink on its paper so it can never inherit a flipped
   color, in either scheme. Additive only — no existing rule changed. */
.pool-plate{color:#1B1712}
.pool-band{color:#1B1712}
.pool-profile{color:#1B1712}
.pool-pcard{background:#FFFDF8;color:#1B1712}
