/* Fight Hub — Bible light theme (James, 2026-10-12: every page to Bible)
   Scoped to .fight-night so no other hub is touched. Mobile-first (390px);desktop (1440px) upgrades in the min-width:1024px block at the bottom. */
.fight-night{
  --fh-bg:var(--desert-bg);
  --fh-panel:var(--desert-card);
  --fh-panel2:#F3EDE0;
  --fh-line:rgba(var(--desert-ink-rgb), .12);
  --fh-text:var(--desert-ink);
  --fh-dim:rgba(var(--desert-ink-rgb), .72);
  --fh-faint:rgba(var(--desert-ink-rgb), .52);
  --fh-red:var(--desert-accent);
  --fh-red-deep:var(--desert-accent-deep);
  /* Bible light theme for this page.
     These cascade to the header, nav mount, and every hub component. */
  color-scheme:light;
  --pv-noir:var(--desert-bg);
  --pv-noir-2:var(--desert-card);
  --pv-noir-3:#F3EDE0;
  --pv-glass:rgba(255,255,255, .92);
  --pv-ivory:var(--desert-ink);
  --pv-ivory-dim:rgba(var(--desert-ink-rgb), .62);
  --pv-ivory-faint:rgba(var(--desert-ink-rgb), .38);
  --pv-rule:rgba(var(--desert-ink-rgb), .14);
  --pv-red-ink:var(--brand-red);
  --pv-red-deep:var(--desert-accent-deep);
  --pv-red-glow:rgba(var(--brand-red-rgb), .35);
  --pv-red-glow-lg:rgba(var(--brand-red-rgb), .55);
  --pv-warn:var(--color-warn);
  --pv-muted-ok:var(--color-win);
  --elv-paper:var(--desert-bg);
  --elv-paper2:var(--desert-card);
  --elv-card:var(--desert-card);
  --elv-ink:var(--desert-ink);
  --elv-ink2:rgba(var(--desert-ink-rgb), .82);
  --elv-mute:rgba(var(--desert-ink-rgb), .62);
  --elv-faint:rgba(var(--desert-ink-rgb), .45);
  --elv-line:rgba(var(--desert-ink-rgb), .12);
  --elv-red:var(--desert-accent);
  --elv-shadow:0 12px 32px rgba(var(--desert-shadow-rgb), .12), 0 2px 8px rgba(var(--desert-shadow-rgb), .08);
  --elv-shadow-sm:0 6px 18px rgba(var(--desert-shadow-rgb), .1);
  /* site-header.css aliases its colors at :root scope — Bible light values */
  --pv-hdr-bg:var(--desert-bg);
  --pv-hdr-ink:var(--desert-ink);
  --pv-hdr-dim:rgba(var(--desert-ink-rgb), .64);
  --pv-hdr-faint:rgba(var(--desert-ink-rgb), .42);
  --pv-hdr-rule:rgba(var(--desert-ink-rgb), .14);
  --pv-hdr-red:var(--brand-red);
  background:var(--fh-bg)!important;
  color:var(--fh-text)!important;
}/* nav mount uses Bible cream */
.fight-night #pvn-mount{ background:var(--desert-bg); }.fight-night .hub-wrap{ color:var(--fh-text); background:transparent; }/* ---------- hero ---------- */
.fight-night .hub-hero{
  background:var(--desert-bg);
  border:1px solid var(--fh-line);
}.fight-night .hub-hero.hero-art{
  background-image:linear-gradient(180deg,rgba(250,246,238, .55) 0%,rgba(250,246,238, .92) 100%),url("../fight/img/ed-ufc332.jpg");
}.fight-night .hub-hero .hero-veil{
  background:linear-gradient(180deg,rgba(250,246,238, .35) 0%,rgba(250,246,238, .92) 100%);
}.fight-night .hub-hero .kicker{ color:var(--fh-red); text-shadow:none; }.fight-night .hub-hero h1{ color:var(--desert-ink); letter-spacing:-1px; text-shadow:none; }.fight-night .fh-event-sub{
  margin:6px 0 0; font-size:15px; font-weight:600; color:var(--fh-dim);
}.fight-night .fh-meta{
  margin:14px 0 0; font-size:13px; color:var(--fh-dim); line-height:1.6;
}.fight-night .fh-meta b{ color:var(--desert-ink); }.fight-night .hub-hero .updated{ color:var(--fh-faint); }.fight-night .hub-hero .updated b{ color:var(--fh-dim); }.fight-night .hub-hero .art-credit{ color:var(--fh-faint); }/* ---------- countdown ---------- */
.fh-countdown{ margin:22px 0 4px; }.fh-count-label{
  font-size:11px; font-weight:800; letter-spacing:3px; text-transform:uppercase;
  color:var(--fh-red); margin:0 0 10px;
}.fh-count-tiles{ display:flex; gap:10px; }.fh-tile{
  flex:1; max-width:110px; background:var(--desert-card);
  border:1px solid var(--fh-line); border-radius:12px;
  padding:12px 6px 10px; text-align:center;
  box-shadow:inset 0 1px 0 rgba(var(--desert-card-rgb), .05);
}.fh-tile .num{
  display:block; font-size:34px; font-weight:800; line-height:1;
  color:var(--desert-ink); font-variant-numeric:tabular-nums; letter-spacing:-1px;
}.fh-tile .lbl{
  display:block; margin-top:6px; font-size:10px; font-weight:800;
  letter-spacing:2px; color:var(--fh-faint); text-transform:uppercase;
}.fh-live-now{
  display:inline-block; font-size:22px; font-weight:800; letter-spacing:2px;
  color:var(--desert-card); background:var(--fh-red); border-radius:10px; padding:12px 22px;
  animation:fh-pulse 1.6s ease-in-out infinite;
}@keyframes fh-pulse{0%,100%{opacity:1}50%{opacity:.55} }/* ---------- section heads on dark ---------- */
.fight-night .hub-sec > .sec-head h2{ color:var(--desert-card); }.fight-night .hub-sec > .sec-head .kicker{ color:var(--fh-red); }.fight-night .hub-sec > .sec-head::before{ background:var(--fh-red); }/* ---------- tale of the tape ---------- */
.fh-tape{ border:1px solid var(--fh-line); border-radius:16px; overflow:hidden; background:var(--fh-panel); }.fh-fighter{ padding:20px; }.fh-fighter + .fh-fighter{ border-top:1px solid var(--fh-line); }.fh-fighter .fname{ margin:0; font-size:22px; color:var(--desert-card); letter-spacing:-.3px; }.fh-fighter .fnick{ color:var(--fh-red); font-weight:700; }.fh-fighter .fcamp{ margin:4px 0 0; font-size:13px; color:var(--fh-dim); }.fh-fighter .frecord{
  display:inline-block; margin:12px 0 0; font-size:13px; font-weight:800;
  color:var(--desert-card); background:var(--fh-red-deep); border-radius:8px; padding:6px 12px;
  letter-spacing:1px;
}.fh-vs{
  display:flex; align-items:center; justify-content:center; gap:0;
  background:var(--desert-bg); padding:2px 0; position:relative;
}.fh-vs::before,.fh-vs::after{
  content:""; height:1px; background:var(--fh-line); flex:1;
}.fh-vs span{
  font-size:13px; font-weight:800; letter-spacing:4px; color:var(--fh-red);
  border:2px solid var(--fh-red); border-radius:50%; width:52px; height:52px;
  display:flex; align-items:center; justify-content:center; background:var(--desert-card);
  margin:10px 14px;
}.fh-tape-rows{ border-top:1px solid var(--fh-line); }.fh-row{
  display:flex; align-items:center; text-align:center;
  border-bottom:1px solid var(--fh-line); font-size:14px;
}.fh-row:last-child{ border-bottom:0; }.fh-row .cell{ flex:1; padding:11px 8px; color:var(--fh-text); font-weight:600; }.fh-row .cell.dim{ color:var(--fh-dim); font-weight:500; }.fh-row .rlab{
  flex:0 0 108px; font-size:10px; font-weight:800; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--fh-faint); padding:11px 4px;
}.fh-row .cell.hl{ color:var(--desert-card); }.fh-row .cell.hl-red{ color:var(--fh-red); font-weight:800; }.fh-form{ display:inline-flex; gap:4px; justify-content:center; }.fh-form i{
  font-style:normal; font-size:11px; font-weight:800; width:22px; height:22px;
  border-radius:6px; display:flex; align-items:center; justify-content:center;
}.fh-form i.w{ background:var(--desert-ink); color:var(--color-win); }.fh-form i.l{ background:var(--desert-ink); color:var(--brand-red-ember); }.fh-last5{ margin:2px 0 0; font-size:12px; color:var(--fh-faint); line-height:1.7; }.fh-last5 b{ color:var(--fh-dim); font-weight:600; }/* ---------- fight card ---------- */
.fh-card{ display:block; }.fh-card-group{ margin:0 0 26px; }.fh-card-group:last-child{ margin-bottom:0; }.fh-card-head{
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  margin:0 0 12px; padding-bottom:10px; border-bottom:2px solid var(--fh-red);
}.fh-card-head h3{ margin:0; font-size:17px; color:var(--desert-card); letter-spacing:-.2px; }.fh-card-head .when{ font-size:12px; color:var(--fh-dim); white-space:nowrap; }.fh-bout{
  display:flex; gap:12px; align-items:flex-start;
  background:var(--fh-panel); border:1px solid var(--fh-line); border-radius:12px;
  padding:14px; margin:0 0 10px;
}.fh-bout.is-main{
  border-color:var(--fh-red-deep);
  background:linear-gradient(160deg,var(--desert-ink),var(--desert-card) 60%);
}.fh-bout-num{
  flex:0 0 30px; height:30px; border-radius:8px; background:var(--fh-panel2);
  border:1px solid var(--fh-line); color:var(--fh-dim);
  font-size:13px; font-weight:800; display:flex; align-items:center; justify-content:center;
}.fh-bout.is-main .fh-bout-num{ background:var(--fh-red); border-color:var(--fh-red); color:var(--desert-card); }.fh-bout-body{ flex:1; min-width:0; }.fh-bout-fighters{ margin:0; font-size:15px; font-weight:700; color:var(--desert-card); line-height:1.4; }.fh-bout-fighters .vs{ color:var(--fh-faint); font-weight:500; }.fh-bout-meta{ margin:5px 0 0; font-size:12.5px; color:var(--fh-dim); }.fh-bout-tag{
  display:inline-block; margin-top:8px; font-size:10px; font-weight:800;
  letter-spacing:2px; text-transform:uppercase; color:var(--fh-red);
}.fh-card-note{ font-size:12px; color:var(--fh-faint); margin:6px 0 0; }/* ---------- existing sections on dark ---------- */
.fight-night .hub-empty{ color:var(--fh-dim); }.fight-night .poll-card{ border:1px solid var(--fh-line); }.fight-night .poll-q{ color:var(--desert-card); }.fight-night .poll-note{ color:var(--fh-faint); }.fight-night .hub-live a{ color:var(--desert-card); }.fight-night .hub-skel span{ background:var(--fh-panel2); }/* news cards rendered by hub.js */
.fight-night .hub-live .news-card,
.fight-night .hub-live article{
  background:var(--fh-panel); border:1px solid var(--fh-line);
}/* ---------- desktop (1024px+) : use the width ---------- */
@media (min-width:1024px){
  .fight-night .hub-wrap{ max-width:1280px; }

  /* hero: countdown beside the event title block */
  .fight-night .hub-hero .hero-inner{
    max-width:none; display:grid;
    grid-template-columns:1.2fr .8fr; gap:40px; align-items:center;
    padding:56px 48px;
  }
  .fight-night .hub-hero h1{ font-size:clamp(54px,5.5vw,84px); }
  .fh-countdown{ margin:0; }
  .fh-tile .num{ font-size:44px; }

  /* tape: fighters side by side, stat rows in the middle column flow */
  .fh-tape-grid{ display:grid; grid-template-columns:1fr auto 1fr; }
  .fh-fighter + .fh-fighter{ border-top:0; }
  .fh-vs{ flex-direction:column; padding:0 6px; }
  .fh-vs::before,.fh-vs::after{ width:1px; height:auto; }
  .fh-tape-rows{ display:grid; grid-template-columns:repeat(2,1fr); }
  .fh-row:nth-child(odd){ border-right:1px solid var(--fh-line); }

  /* card: main card + prelims side by side */
  .fh-card{ display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
  .fh-card-group{ margin-bottom:0; }
}/* Fighter/boxer profile pages (James, 2026-10-04) */
.fight-night .fp-profile{ max-width:760px; margin:0 auto; padding:32px 20px; }.fight-night .fp-kicker{ color:var(--fh-red,var(--brand-red)); text-transform:uppercase; letter-spacing:.12em; font-size:12px; margin:0 0 8px; }.fight-night .fp-profile h1{ font-size:clamp(36px,6vw,56px); margin:0 0 4px; }.fight-night .fp-nick{ font-size:20px; opacity:.75; margin:0 0 4px; font-style:italic; }.fight-night .fp-record{ font-size:28px; font-weight:700; margin:0 0 24px; }.fight-night .fp-profile h2{ font-size:22px; margin:32px 0 12px; }.fight-night .fp-stats{ width:100%; border-collapse:collapse; }.fight-night .fp-stats th{ text-align:left; padding:10px 12px; width:35%; color:var(--fh-red,var(--brand-red)); text-transform:uppercase; font-size:12px; letter-spacing:.08em; border-bottom:1px solid var(--fh-line,rgba(var(--desert-card-rgb), .12)); }.fight-night .fp-stats td{ padding:10px 12px; border-bottom:1px solid var(--fh-line,rgba(var(--desert-card-rgb), .12)); }.fight-night .form-row{ display:flex; gap:8px; margin:0 0 8px; }.fight-night .form-badge{ width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; font-weight:700; }.fight-night .form-badge.w{ background:var(--color-win); color:var(--desert-card); }.fight-night .form-badge.l{ background:var(--desert-accent-deep); color:var(--desert-card); }.fight-night .form-badge.d{ background:var(--desert-ink-dim); color:var(--desert-card); }.fight-night .form-names{ font-size:14px; opacity:.7; }.fight-night .fp-bout-card{ border:1px solid var(--fh-line,rgba(var(--desert-card-rgb), .12)); border-radius:12px; padding:20px; }.fight-night .fp-bout-event{ font-size:13px; opacity:.7; margin:0 0 8px; }.fight-night .fp-bout-match{ font-size:22px; font-weight:700; margin:0 0 8px; }.fight-night .fp-bout-match .vs{ color:var(--fh-red,var(--brand-red)); font-weight:400; }.fight-night .fp-bout-meta,.fight-night .fp-bout-date{ font-size:14px; opacity:.7; margin:0 0 4px; }.fight-night .fp-more a{ color:var(--fh-red,var(--brand-red)); }/* Index pages */
.fight-night .fp-index{ max-width:900px; margin:0 auto; padding:32px 20px; }.fight-night .fp-index h1{ font-size:clamp(32px,5vw,48px); margin:0 0 8px; }.fight-night .fp-index-desc{ opacity:.75; margin:0 0 24px; }.fight-night .fp-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; }.fight-night .fp-card{ display:block; padding:16px; border:1px solid var(--fh-line,rgba(var(--desert-card-rgb), .12)); border-radius:10px; text-decoration:none; color:inherit; }.fight-night .fp-card:hover{ border-color:var(--fh-red,var(--brand-red)); }.fight-night .fp-card-name{ font-weight:600; }.fight-night .fp-back{ margin-top:32px; }.fight-night .fp-back a{ color:var(--fh-red,var(--brand-red)); }/* Fight Hub roster links */
.fight-night .fp-hub-links{ display:flex; gap:12px; flex-wrap:wrap; }.fight-night .fp-hub-link{ display:inline-block; padding:14px 24px; border:1px solid var(--fh-red,var(--brand-red)); border-radius:10px; color:inherit; text-decoration:none; font-weight:600; }.fight-night .fp-hub-link:hover{ background:var(--fh-red,var(--brand-red)); color:var(--desert-card); }/* ============ ARENA REDESIGN (James, 2026-10-04 ~22:25 PDT — "stepping into a fighting arena hub")
   Appended, not rewritten: everything above still stands. All new selectors are
   scoped to .fight-night (+ .arena-* new classes), so no other page is touched.
   CSS-only atmosphere: gradients + one tiny SVG noise tile. Zero new requests. */

/* ---------- hero: the arena ---------- */
.fight-night .hub-hero.arena-hero{
  border-color:var(--desert-pressed);
  box-shadow:0 30px 80px rgba(var(--desert-shadow-rgb), .65), inset 0 0 120px rgba(var(--desert-shadow-rgb), .5);
}/* arena light rig: two warm beams + overhead spot, all pure CSS */
.fight-night .arena-hero .arena-lights{
  position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none;
}.fight-night .arena-hero .arena-lights .beam{
  position:absolute; top:-32%; height:135%; width:36%; filter:blur(26px); opacity:.55;
  background:linear-gradient(180deg, rgba(var(--desert-pressed-rgb), .13), rgba(var(--desert-pressed-rgb), .03) 55%, transparent 80%);
}.fight-night .arena-hero .arena-lights .beam-l{ left:4%; transform:skewX(-13deg); }.fight-night .arena-hero .arena-lights .beam-r{ right:4%; transform:skewX(13deg); }.fight-night .arena-hero .arena-lights .spot{
  position:absolute; left:50%; top:4%; width:64%; height:64%; transform:translateX(-50%);
  background:radial-gradient(ellipse at center, rgba(var(--desert-pressed-rgb), .10), transparent 65%);
  filter:blur(12px);
}/* vignette: darkens the edges like arena seating falling away */
.fight-night .arena-hero .arena-lights::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(115% 92% at 50% 40%, transparent 44%, rgba(var(--desert-shadow-rgb), .66) 100%);
}/* deterministic stack: lights < veil < content < grain */
.fight-night .arena-hero .hero-veil{ z-index:2; }.fight-night .arena-hero .hero-inner{ z-index:3; }/* film grain over everything: cinematic, costs one 200-byte inline SVG */
.fight-night .arena-hero .arena-grain{
  position:absolute; inset:0; z-index:4; pointer-events:none; opacity:.06; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}/* kicker becomes a fight-poster stamp (JS sets textContent — the badge survives) */
.fight-night .arena-hero .fh-hero-main .kicker{
  display:inline-block; background:var(--fh-red); color:var(--desert-card);
  font-size:11px; font-weight:800; letter-spacing:2.5px; text-transform:uppercase;
  padding:8px 16px 8px 14px; margin:0 0 4px; max-width:100%;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  transform:skewX(-10deg); text-shadow:none;
  box-shadow:0 6px 24px rgba(var(--desert-accent-rgb), .45), inset 0 1px 0 rgba(var(--desert-card-rgb), .25);
}@media (max-width:420px){.fight-night .arena-hero .fh-hero-main .kicker{ font-size:10px; letter-spacing:1.8px; }
}/* headline hits like a punch: Playfair Black, uppercase, tight (JS sets textContent — pure CSS) */
.fight-night .arena-hero .fh-hero-main h1{
  font-family:"Playfair Display", Georgia, serif;
  font-weight:900; text-transform:uppercase;
  font-size:clamp(46px, 9vw, 110px);
  line-height:.92; letter-spacing:-.015em;
  margin:16px 0 0; color:var(--desert-card);
  text-shadow:0 4px 30px rgba(var(--desert-shadow-rgb), .85), 0 0 70px rgba(var(--desert-accent-rgb), .20);
}.fight-night .arena-hero .fh-event-sub{
  margin:14px 0 0; font-size:15px; font-weight:600; color:var(--desert-ink-faint);
  text-shadow:0 2px 12px rgba(var(--desert-shadow-rgb), .8);
}.fight-night .arena-hero .fh-meta{ text-shadow:0 2px 12px rgba(var(--desert-shadow-rgb), .8); }/* ---------- countdown: the walkout clock (jumbotron glass) ---------- */
.fight-night .fh-countdown{
  background:rgba(var(--desert-card-rgb), .58);
  border:1px solid rgba(var(--desert-card-rgb), .10);
  border-radius:16px; padding:18px 16px;
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  box-shadow:0 18px 50px rgba(var(--desert-shadow-rgb), .55), inset 0 1px 0 rgba(var(--desert-card-rgb), .06);
}.fight-night .fh-count-label{ color:var(--desert-card); }.fight-night .fh-count-label::after{
  content:""; display:block; width:36px; height:2px; margin:9px 0 0;
  background:var(--fh-red); box-shadow:0 0 10px rgba(var(--desert-accent-rgb), .8);
}.fight-night .fh-tile{ border-top:1px solid var(--fh-line); }.fight-night .fh-tile .num{ text-shadow:0 0 26px rgba(var(--desert-accent-rgb), .35); }/* seconds tile burns red — walkout urgency */
.fight-night .fh-tile:last-child .num{ color:var(--fh-red); text-shadow:0 0 26px rgba(var(--desert-accent-rgb), .65); }/* fh-polish-20261014: the tiles' 2px red border-top (and the last tile's ember top) fought the tiles' own 1px border at the rounded corners and read as a broken orange line; tiles now carry their uniform 1px border, the seconds NUMBER still burns red above. *//* ---------- arena LED divider: the strip lights between zones ---------- */
.fight-night .arena-divider{
  position:relative; height:2px; margin:40px 6px 10px;
  background:linear-gradient(90deg, transparent, rgba(var(--desert-accent-rgb), .9) 18%, rgba(var(--desert-accent-rgb), .9) 82%, transparent);
  box-shadow:0 0 16px rgba(var(--desert-accent-rgb), .45);
}.fight-night .arena-divider span{
  position:absolute; left:50%; top:50%; width:9px; height:9px;
  transform:translate(-50%,-50%) rotate(45deg);
  background:var(--fh-red); box-shadow:0 0 12px rgba(var(--desert-accent-rgb), .9);
}/* ---------- arena zones: section heads with fight-night weight ---------- */
.fight-night .arena-zone > .sec-head{ margin-bottom:12px; }.fight-night .arena-zone > .sec-head h2{
  font-family:"Playfair Display", Georgia, serif;
  font-weight:800; text-transform:uppercase;
  font-size:clamp(26px, 3.6vw, 38px);
  line-height:1.05; letter-spacing:.01em;
}.fight-night .sec-lede{
  margin:0 0 22px; max-width:660px;
  color:var(--fh-dim); font-size:15px; line-height:1.65;
}/* ---------- tale of the tape: red corner / blue corner ---------- */
.fight-night .fh-tape{ box-shadow:0 24px 60px rgba(var(--desert-shadow-rgb), .45); }.fight-night .fh-tape-grid .fh-fighter:first-child{ box-shadow:inset 3px 0 0 var(--fh-red); }.fight-night .fh-tape-grid .fh-fighter:last-child{ box-shadow:inset -3px 0 0 var(--color-info); }/* ---------- the vault: history deep dives ---------- */
.fight-night .vault-grid{ display:grid; gap:16px; margin:0; }.fight-night .vault-card{
  position:relative; display:block; overflow:hidden;
  text-decoration:none; color:inherit;
  border:1px solid var(--fh-line); border-radius:18px;
  padding:30px 26px 28px;
  background:linear-gradient(165deg, var(--desert-pressed) 0%, var(--desert-card) 65%);
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}.fight-night .vault-card::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(110% 80% at 50% 0%, rgba(var(--desert-accent-rgb), .16), transparent 62%);
}.fight-night .vault-card::after{
  content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background:linear-gradient(90deg, transparent, var(--fh-red), transparent);
  box-shadow:0 0 14px rgba(var(--desert-accent-rgb), .6);
}.fight-night .vault-era{
  position:relative; margin:0 0 10px;
  font-size:11px; font-weight:800; letter-spacing:3px; text-transform:uppercase;
  color:var(--fh-red);
}.fight-night .vault-card h3{
  position:relative; margin:0 0 10px; color:var(--desert-card);
  font-family:"Playfair Display", Georgia, serif; font-weight:800;
  font-size:clamp(25px, 3.2vw, 33px); line-height:1.12;
}.fight-night .vault-dek{
  position:relative; margin:0 0 18px;
  color:var(--fh-dim); font-size:14.5px; line-height:1.65;
}.fight-night .vault-cta{
  position:relative; font-size:12.5px; font-weight:800;
  letter-spacing:2px; text-transform:uppercase; color:var(--desert-card);
}.fight-night .vault-cta span{ color:var(--fh-red); }.fight-night .vault-card:hover{
  border-color:var(--fh-red-deep); transform:translateY(-3px);
  box-shadow:0 22px 50px rgba(var(--desert-shadow-rgb), .5);
}/* ---------- locker room: roster links ---------- */
.fight-night .fp-hub-links{ display:grid; gap:12px; }.fight-night .fp-hub-link{ transition:background .2s ease, transform .2s ease, box-shadow .2s ease; }.fight-night .fp-hub-link--primary{
  background:var(--fh-red); border-color:var(--fh-red); color:var(--desert-card);
  box-shadow:0 10px 28px rgba(var(--desert-accent-rgb), .35);
}.fight-night .fp-hub-link--primary:hover{
  background:var(--desert-accent); border-color:var(--desert-accent); color:var(--desert-card); transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(var(--desert-accent-rgb), .5);
}/* ---------- desktop (1024px+): use the full arena ---------- */
@media (min-width:1024px){
  .fight-night .arena-hero .hero-inner{ padding:76px 60px; min-height:440px; }
  .fight-night .arena-hero .arena-lights .beam{ width:26%; }
  .fight-night .vault-grid{ grid-template-columns:1fr 1fr; gap:20px; }
  .fight-night .fp-hub-links{ grid-template-columns:repeat(3,1fr); }
  .fight-night .arena-divider{ margin:52px 0 12px; }
  .fight-night .sec-lede{ font-size:16px; }
}/* ============ FIGHT HUB TV (James, 2026-10-04 — "wired in, plugged in live") ============
   Broadcast-truck section: LIVE NOW banner, next-up spotlight + countdown,
   upcoming grid, recent highlights. All classes prefixed fhtv-, scoped to
   body.fight-night so nothing leaks into shared styles. */
.fight-night .fhtv-live-banner{
  display:flex; gap:16px; align-items:flex-start;
  background:linear-gradient(135deg, rgba(var(--desert-accent-rgb), .22), rgba(var(--desert-accent-rgb), .06));
  border:1px solid rgba(var(--desert-accent-rgb), .55); border-radius:14px;
  padding:18px 20px; margin:0 0 22px;
  box-shadow:0 0 34px rgba(var(--desert-accent-rgb), .25);
}.fight-night .fhtv-live-banner h3{ margin:2px 0 4px; font-size:20px; color:var(--desert-card); }.fight-night .fhtv-live-banner p{ margin:0 0 6px; color:rgba(var(--desert-ink-rgb), .82); font-size:14px; }.fight-night .fhtv-live-kicker{
  font-size:11px; font-weight:800; letter-spacing:.22em; text-transform:uppercase;
  color:var(--brand-red-ember); margin:0 0 6px;
}.fight-night .fhtv-live-dot{
  flex:none; width:10px; height:10px; border-radius:50%;
  background:var(--desert-accent); margin-top:5px;
  box-shadow:0 0 10px var(--desert-accent);
  animation:fhtv-pulse 1.4s ease-in-out infinite;
}.fight-night .fhtv-live-dot--big{ width:14px; height:14px; margin-top:6px; }@keyframes fhtv-pulse{0%,100%{ opacity:1; transform:scale(1);}50%{ opacity:.45; transform:scale(.8);} }.fight-night .fhtv-live{
  display:flex; align-items:center; gap:8px;
  font-size:12px; font-weight:800; letter-spacing:.2em; text-transform:uppercase;
  color:var(--brand-red-ember); margin:0 0 8px;
}.fight-night .fhtv-nextup{
  display:flex; flex-direction:column; gap:18px;
  background:linear-gradient(180deg, rgba(var(--desert-card-rgb), .9), rgba(var(--desert-card-rgb), .9));
  border:1px solid rgba(var(--desert-ink-rgb), .14); border-radius:14px;
  padding:22px; margin:0 0 26px;
}.fight-night .fhtv-nextup h3{ margin:2px 0 6px; font-size:24px; color:var(--desert-card); }.fight-night .fhtv-nextup-count{
  display:flex; gap:10px; flex:none;
}.fight-night .fhtv-cd{
  display:flex; flex-direction:column; align-items:center;
  background:rgba(var(--desert-accent-rgb), .12); border:1px solid rgba(var(--desert-accent-rgb), .35);
  border-radius:10px; padding:10px 0; min-width:64px; flex:1;
}.fight-night .fhtv-cd b{ font-size:26px; font-weight:800; color:var(--desert-card); font-variant-numeric:tabular-nums; }.fight-night .fhtv-cd i{ font-style:normal; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:rgba(var(--desert-ink-rgb), .55); margin-top:2px; }.fight-night .fhtv-subhead{
  font-size:13px; font-weight:800; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(var(--desert-ink-rgb), .6); margin:26px 0 14px;
  display:flex; align-items:center; gap:12px;
}.fight-night .fhtv-subhead::after{ content:""; flex:1; height:1px; background:rgba(var(--desert-ink-rgb), .14); }.fight-night .fhtv-grid{
  display:grid; gap:14px; grid-template-columns:1fr;
}.fight-night .fhtv-card{
  background:rgba(var(--desert-card-rgb), .85); border:1px solid rgba(var(--desert-ink-rgb), .12);
  border-radius:12px; padding:18px; position:relative;
}.fight-night .fhtv-card--live{ border-color:rgba(var(--desert-accent-rgb), .6); box-shadow:0 0 24px rgba(var(--desert-accent-rgb), .2); }.fight-night .fhtv-card-top{ display:flex; align-items:center; gap:10px; margin:0 0 8px; }.fight-night .fhtv-tag{
  font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  padding:3px 10px; border-radius:4px;
}.fight-night .fhtv-tag--ufc{ background:rgba(var(--desert-accent-rgb), .2); color:var(--desert-accent-soft); border:1px solid rgba(var(--desert-accent-rgb), .4); }.fight-night .fhtv-tag--boxing{ background:rgba(var(--color-warn-rgb), .14); color:var(--color-warn); border:1px solid rgba(var(--color-warn-rgb), .35); }.fight-night .fhtv-division{ font-size:12px; color:rgba(var(--desert-ink-rgb), .55); }.fight-night .fhtv-name{ margin:0 0 4px; font-size:18px; color:var(--desert-card); }.fight-night .fhtv-mainevent{ margin:0 0 4px; font-size:14px; font-weight:600; color:rgba(var(--desert-ink-rgb), .9); }.fight-night .fhtv-titlebelt{
  display:inline-block; margin:6px 0; padding:4px 12px; border-radius:999px;
  background:rgba(var(--color-warn-rgb), .14); border:1px solid rgba(var(--color-warn-rgb), .45);
  color:var(--color-warn); font-size:12px; font-weight:700; letter-spacing:.04em;
}.fight-night .fhtv-date{ margin:8px 0 2px; font-size:13px; font-weight:700; color:rgba(var(--desert-ink-rgb), .85); }.fight-night .fhtv-venue{ margin:0 0 10px; font-size:13px; color:rgba(var(--desert-ink-rgb), .55); }.fight-night .fhtv-broadcast{ margin:8px 0 2px; font-size:14px; color:rgba(var(--desert-ink-rgb), .85); }.fight-night .fhtv-broadcast-label{ color:rgba(var(--desert-ink-rgb), .55); }.fight-night .fhtv-watch{
  display:inline-block; font-weight:800; color:var(--desert-card); text-decoration:none;
  background:var(--fh-red); border-radius:8px; padding:5px 14px; font-size:13px;
  transition:background .2s ease, transform .2s ease;
}a.fhtv-watch:hover{ background:var(--desert-accent); transform:translateY(-1px); }span.fhtv-watch{ cursor:default; }.fight-night .fhtv-broadcast-detail{ margin:4px 0 0; font-size:12px; color:rgba(var(--desert-ink-rgb), .5); }.fight-night .fhtv-highlights{ margin:10px 0 0; }.fight-night .fhtv-highlights a{
  color:var(--desert-accent-soft); font-size:13px; font-weight:700; text-decoration:none;
  border-bottom:1px solid rgba(var(--desert-accent-rgb), .5);
}.fight-night .fhtv-highlights a:hover{ color:var(--desert-accent-soft); }/* ---------- desktop (1024px+): use the full arena ---------- */
@media (min-width:1024px){
  .fight-night .fhtv-nextup{ flex-direction:row; align-items:center; }
  .fight-night .fhtv-nextup-info{ flex:1; }
  .fight-night .fhtv-nextup-count{ min-width:340px; }
  .fight-night .fhtv-grid{ grid-template-columns:repeat(2,1fr); gap:16px; }
  .fight-night .fhtv-live-banner h3{ font-size:24px; }
}@media (prefers-reduced-motion: reduce){.fight-night .fhtv-live-dot{ animation:none; }
}

/* ============ LOCKER ROOM roster browser (James, 2026-10-04 — "nowhere to find them")
   Full 200-fighter roster on the Fight Hub: org pills, division select, text
   search, all client-side, champions first. Scoped to .fight-night so nothing
   else is touched. Baked champion cards ship in the HTML;the inline script
   replaces them with the live roster from data/fighters.json. */
.fight-night .fh-roster{ margin-top:4px; }.fight-night .fh-roster-filters{
  position:sticky; top:0; z-index:30;
  background:rgba(var(--desert-card-rgb), .94);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid var(--fh-line); border-radius:14px;
  padding:12px; display:flex; flex-wrap:wrap; gap:10px; align-items:center;
}.fight-night .fh-roster-search{
  flex:1 1 220px; min-width:0;
  background:var(--fh-panel); border:1px solid var(--fh-line); border-radius:10px;
  color:var(--desert-card); padding:11px 14px; font-size:15px;
}.fight-night .fh-roster-search::placeholder{ color:var(--fh-faint); }.fight-night .fh-roster-pills{ display:flex; gap:6px; flex-wrap:wrap; }.fight-night .fh-roster-pill{
  background:var(--fh-panel); border:1px solid var(--fh-line); border-radius:999px;
  color:var(--fh-dim); padding:9px 18px; font-size:13px; font-weight:700; cursor:pointer;
  transition:background .15s ease, border-color .15s ease, color .15s ease;
}.fight-night .fh-roster-pill[aria-pressed="true"]{
  background:var(--fh-red); border-color:var(--fh-red); color:var(--desert-card);
  box-shadow:0 6px 18px rgba(var(--desert-accent-rgb), .35);
}.fight-night .fh-roster-select{
  background:var(--fh-panel); border:1px solid var(--fh-line); border-radius:10px;
  color:var(--desert-card); padding:10px 12px; font-size:14px; font-weight:600; max-width:100%;
}.fight-night .fh-roster-count{
  margin:14px 2px 0; font-size:13px; color:var(--fh-faint);
}.fight-night .fh-roster-count b{ color:var(--fh-dim); font-weight:700; }.fight-night .fh-roster-grid{
  display:grid; grid-template-columns:1fr; gap:12px; margin:14px 0 0;
}@media (min-width:640px){.fight-night .fh-roster-grid{ grid-template-columns:repeat(2,1fr); }
}@media (min-width:1024px){.fight-night .fh-roster-grid{ grid-template-columns:repeat(3,1fr); gap:16px; }
}@media (min-width:1280px){.fight-night .fh-roster-grid{ grid-template-columns:repeat(4,1fr); }
}.fight-night .fh-roster-card{
  display:block; background:var(--fh-panel); border:1px solid var(--fh-line);
  border-radius:14px; padding:16px; text-decoration:none; color:inherit;
  transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}.fight-night .fh-roster-card:hover{
  border-color:var(--fh-red); transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(var(--desert-shadow-rgb), .45);
}.fight-night .fh-rc-top{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-bottom:12px;
}.fight-night .fh-rc-avatar{
  flex:0 0 54px; width:54px; height:54px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:19px; font-weight:800; letter-spacing:.5px; color:var(--desert-card);
  background:radial-gradient(circle at 32% 28%, var(--desert-pressed), var(--desert-pressed) 72%);
  border:1px solid var(--fh-line);
  box-shadow:inset 0 1px 0 rgba(var(--desert-card-rgb), .08);
}.fight-night .fh-rc-avatar--ufc{ box-shadow:inset 0 0 0 2px rgba(var(--desert-accent-rgb), .55), inset 0 1px 0 rgba(var(--desert-card-rgb), .08); }.fight-night .fh-rc-avatar--boxing{ box-shadow:inset 0 0 0 2px rgba(var(--color-warn-rgb), .5), inset 0 1px 0 rgba(var(--desert-card-rgb), .08); }.fight-night .fh-rc-badges{ display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }.fight-night .fh-badge{
  font-size:10px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase;
  padding:4px 9px; border-radius:6px; border:1px solid var(--fh-line);
  background:var(--fh-panel2); color:var(--fh-dim);
}.fight-night .fh-badge.is-ufc{
  background:rgba(var(--desert-accent-rgb), .14); color:var(--brand-red-ember); border-color:rgba(var(--desert-accent-rgb), .4);
}.fight-night .fh-badge.is-boxing{
  background:rgba(var(--color-warn-rgb), .12); color:var(--color-warn); border-color:rgba(var(--color-warn-rgb), .35);
}.fight-night .fh-badge.is-champ{ background:var(--fh-red); color:var(--desert-card); border-color:var(--fh-red); }.fight-night .fh-roster-card h3{
  margin:0; font-size:19px; color:var(--desert-card); letter-spacing:-.3px; line-height:1.25;
}.fight-night .fh-rc-nick{
  margin:3px 0 0; font-size:13.5px; color:var(--fh-red);
  font-weight:700; font-style:italic;
}.fight-night .fh-rc-record{
  margin:10px 0 0; font-size:27px; font-weight:800; color:var(--desert-card);
  font-variant-numeric:tabular-nums; letter-spacing:-.5px;
}.fight-night .fh-rc-record small{
  font-size:11px; font-weight:700; letter-spacing:2px; color:var(--fh-faint);
}.fight-night .fh-rc-div{ margin:6px 0 0; font-size:13px; color:var(--fh-dim); }.fight-night .fh-roster-empty{
  padding:34px 16px; text-align:center; color:var(--fh-faint); font-size:14px;
}.fight-night .fh-roster-links{ margin-top:24px; }/* ============ FIGHT CALENDAR — month-grouped accordion (James, 2026-10-05)
   Replaces the old endless vertical card grid for Upcoming/Recent broadcasts.
   Mobile: compact rows, tap to expand. Desktop: month groups in 2 columns. */
.fight-night .fhtv-cal{ display:grid; gap:20px; grid-template-columns:1fr; }.fight-night .fhtv-monthhead{
  font-size:12px; font-weight:800; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(var(--desert-ink-rgb), .55); margin:0 0 10px; display:flex; align-items:center; gap:8px;
}.fight-night .fhtv-count{
  font-size:11px; font-weight:700; letter-spacing:.06em; color:rgba(var(--desert-ink-rgb), .55);
  background:rgba(var(--desert-ink-rgb), .08); border-radius:999px; padding:2px 10px;
}.fight-night .fhtv-rows{ display:grid; gap:8px; }.fight-night .fhtv-item{
  background:rgba(var(--desert-card-rgb), .85); border:1px solid rgba(var(--desert-ink-rgb), .12);
  border-radius:12px; overflow:hidden;
}.fight-night .fhtv-row{
  display:flex; align-items:center; gap:12px; width:100%;
  background:none; border:0; color:inherit; font:inherit; text-align:left;
  padding:12px 14px; cursor:pointer; -webkit-tap-highlight-color:transparent;
}.fight-night .fhtv-row:focus-visible{ outline:2px solid rgba(var(--desert-accent-rgb), .7); outline-offset:-2px; }.fight-night .fhtv-row-date{
  flex:none; width:48px; height:54px; border-radius:10px;
  background:rgba(var(--desert-accent-rgb), .12); border:1px solid rgba(var(--desert-accent-rgb), .35);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
}.fight-night .fhtv-item--boxing .fhtv-row-date{
  background:rgba(var(--color-warn-rgb), .12); border-color:rgba(var(--color-warn-rgb), .35);
}.fight-night .fhtv-row-date b{ font-size:18px; font-weight:800; color:var(--desert-card); line-height:1; font-variant-numeric:tabular-nums; }.fight-night .fhtv-row-date i{
  font-style:normal; font-size:10px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:rgba(var(--desert-ink-rgb), .6); margin-top:3px;
}.fight-night .fhtv-row-main{ flex:1; min-width:0; }.fight-night .fhtv-row-kicker{ display:flex; align-items:center; gap:8px; margin-bottom:4px; flex-wrap:wrap; }.fight-night .fhtv-row-kicker .fhtv-tag{ font-size:9px; padding:2px 8px; }.fight-night .fhtv-row-kicker .fhtv-division{ font-size:11px; }.fight-night .fhtv-row-name{
  display:block; font-size:15px; font-weight:700; color:var(--desert-card); line-height:1.3;
}.fight-night .fhtv-row-sub{
  display:block; font-size:13px; color:rgba(var(--desert-ink-rgb), .62); margin-top:2px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}.fight-night .fhtv-row-side{ flex:none; display:flex; align-items:center; gap:10px; }.fight-night .fhtv-row-provider{
  font-size:11px; font-weight:700; color:rgba(var(--desert-ink-rgb), .65);
  background:rgba(var(--desert-ink-rgb), .07); padding:4px 10px; border-radius:999px; white-space:nowrap;
}.fight-night .fhtv-chev{
  flex:none; width:9px; height:9px; margin-right:3px;
  border-right:2px solid rgba(var(--desert-ink-rgb), .5); border-bottom:2px solid rgba(var(--desert-ink-rgb), .5);
  transform:rotate(-45deg); transition:transform .18s ease;
}.fight-night .fhtv-row[aria-expanded="true"] .fhtv-chev{ transform:rotate(45deg); border-color:var(--desert-card); }.fight-night .fhtv-detail{
  border-top:1px solid rgba(var(--desert-ink-rgb), .1); padding:14px;
  display:grid; gap:8px; align-content:start;
}.fight-night .fhtv-detail[hidden]{ display:none; }.fight-night .fhtv-detail .fhtv-venue{ margin:0; }.fight-night .fhtv-detail .fhtv-broadcast{ margin:0; }.fight-night .fhtv-detail .fhtv-broadcast-detail{ margin:0; }.fight-night .fhtv-detail .fhtv-titlebelt{ margin:0; justify-self:start; }.fight-night .fhtv-detail .fhtv-highlights{ margin:2px 0 0; }@media (max-width:420px){.fight-night .fhtv-row-provider{ display:none; }
}/* ---------- desktop (1024px+): month groups share the arena width ---------- */
@media (min-width:1024px){
  .fight-night .fhtv-cal{ grid-template-columns:repeat(2,1fr); gap:22px; align-items:start; }
  .fight-night .fhtv-row-sub{ white-space:normal; }
}

/* ---------- Bible red line (James 2026-10-12) ----------
   Signature 14px red rule under the site header, above the league sub-nav.
   Red resolves through the same token chain as .pv-masthead (pv-masthead.css). */
.pv-site-head{ border-bottom: 14px solid var(--red, var(--brand-red-deep, var(--brand-red, #C0391B))); }

/* R3 2026-10-12: Fight Hub H1 (was missing) — Bible cream ink, serif display */
.fh-title{font-family:var(--pv-serif,'Playfair Display',Georgia,serif);font-size:clamp(34px,4.6vw,54px);line-height:1.05;letter-spacing:-.01em;margin:22px 22px 4px;color:var(--desert-ink)}

/* In-negotiation watch entries (2026-10-13): a tracked fight that is NOT
   signed must read as unconfirmed everywhere it renders. */
.fight-night .fhtv-tag--neg{ background:rgba(var(--desert-accent-rgb), .95); color:#fff; border:1px solid rgba(var(--desert-accent-rgb), .9); }
.fight-night .fhtv-status-note{ font-size:13px; line-height:1.55; color:var(--desert-ink); background:rgba(var(--desert-accent-rgb), .07); border:1px solid rgba(var(--desert-accent-rgb), .35); border-radius:6px; padding:8px 10px; margin:6px 0; }

/* ============ DIRECTION A SKIN — WAVE 2 (2026-10-14) ============
   Fight family refinement inside Package A, The Editorial Standard:
   cream / ink / brick / sand, hairline bands, serif display, squared
   furniture. Presentation ONLY — no structure, behavior, data or copy
   changes. Poster + fighter imagery still carries the page; the
   calendar furniture stays the spine. Scoped to .fight-night (the
   fight-owned scope this file already serves). */
.fight-night{
  --fh-panel2:#F2E9D7;
  --fh-line:#E0D7C3;
  --w2f-sand:#F2E9D7;
  --w2f-hairline:#E0D7C3;
  --w2f-ink:#1B1712;
  --w2f-brick:#C0391B;
  --w2f-serif:'Playfair Display', Georgia, serif;
}
/* ---------- type: serif display on fight furniture ---------- */
.fight-night .hub-sec>.sec-head h2,
.fight-night .fh-card-head h3,
.fight-night .fh-fighter .fname,
.fight-night .fhtv-nextup h3,
.fight-night .fhtv-live-banner h3,
.fight-night .fhtv-name,
.fight-night .fh-roster-card h3,
.fight-night .fp-profile h1,
.fight-night .fp-profile h2,
.fight-night .fp-index h1,
.fight-night .ff-hero h1{
  font-family:var(--w2f-serif);
}
.fight-night .fp-profile h1{ letter-spacing:-.01em; }
.fight-night .fp-record{
  font-family:var(--w2f-serif); font-variant-numeric:tabular-nums;
}
/* fh2 calendar/results on the hub front: the page's inline style block
   sets Fraunces — outrank it on specificity (no markup change). */
.fight-night .hv2-wrap .fh2-cal-name,
.fight-night .hv2-wrap .fh2-res-event h3{
  font-family:var(--w2f-serif);
}
/* ---------- furniture: squared, hairline, sand ---------- */
.fight-night .hub-hero{ border-radius:0; }
.fight-night .fh-tile{
  border-radius:0; background:var(--w2f-sand);
  border-color:var(--w2f-hairline);
}
.fight-night .fh-countdown{ border-radius:0; }
.fight-night .fh-live-now{ border-radius:0; }
.fight-night .fh-tape{ border-radius:0; }
.fight-night .fh-fighter .frecord{ border-radius:0; }
.fight-night .fh-form i{ border-radius:0; }
.fight-night .fh-bout{ border-radius:0; }
.fight-night .fh-bout-num{ border-radius:0; background:var(--w2f-sand); }
.fight-night .fhtv-live-banner{ border-radius:0; }
.fight-night .fhtv-nextup{ border-radius:0; }
.fight-night .fhtv-cd{ border-radius:0; background:var(--w2f-sand); }
.fight-night .fhtv-card{ border-radius:0; }
.fight-night .fhtv-item{ border-radius:0; }
.fight-night .fhtv-row-date{ border-radius:0; background:var(--w2f-sand); }
.fight-night .fhtv-tag{ border-radius:0; }
.fight-night .fhtv-titlebelt{ border-radius:0; }
.fight-night .fhtv-watch{ border-radius:0; }
.fight-night .fh-roster-filters{ border-radius:0; }
.fight-night .fh-roster-search,
.fight-night .fh-roster-select{ border-radius:0; background:var(--w2f-sand); }
.fight-night .fh-roster-card{ border-radius:0; }
.fight-night .fh-badge{ border-radius:0; }
.fight-night .vault-card{ border-radius:0; }
.fight-night .fp-card{ border-radius:0; }
.fight-night .fp-bout-card{ border-radius:0; background:var(--w2f-sand); }
.fight-night .fp-hub-link{ border-radius:0; }
.fight-night .form-badge{ border-radius:0; }
.fight-night .fhtv-status-note{ border-radius:0; }
/* fighters index (ff- browser): square the cards, hairline the frame */
.fight-night .ff-card{ border-radius:0; border-color:var(--w2f-hairline); }
.fight-night .ff-badge{ border-radius:0; }
/* ---------- hairline bands: section heads ---------- */
.fight-night .hub-sec>.sec-head{
  border-bottom:1px solid var(--w2f-hairline); padding-bottom:10px;
}
/* countdown label + card heads keep the brick rule language */
.fight-night .fh-card-head{ border-bottom:2px solid var(--w2f-brick); }

/* ============ PERSONALITY SKIN — THE ARENA (2026-10-14, Phase 2) ============
   James: the Fight Hub "is still not showing me that it's a fight hub.
   There's no color. It's so stale and boring." This hub keeps the house
   bones (Bible nav, cream ground outside the bands) and gets its own
   loud identity: arena-dark bands in rhythm (masthead / hero / tape /
   poster wall), brick red used with force, gold ONLY where the data
   says a title is on the line, a systematic -8deg skew on chips and
   kickers, Fraunces 900 poster type. Append-only: everything above
   still stands; these rules win by order + specificity. Presentation
   only — no structure, behavior, data or copy changes. */
.fight-night{
  --fh-void:#100D0A;
  --fh-coal:#1B1712;
  --fh-bone:#F5EFE3;
  --fh-gold:#C9A227;
  --fh-smoke:#8A7C68;
  --fh-ember:#E06543;
  --fh-darkline:rgba(245,239,227,.16);
  --fh-display:'Fraunces','Playfair Display',Georgia,serif;
}
/* ---------- poster type: Fraunces 900 replaces the Wave 2 serif on
   fight furniture (DESIGN.md s5 — one display token, fight register) */
.fight-night .hub-sec>.sec-head h2,
.fight-night .fh-card-head h3,
.fight-night .fh-fighter .fname,
.fight-night .fhtv-nextup h3,
.fight-night .fhtv-live-banner h3,
.fight-night .fh-roster-card h3,
.fight-night .fp-profile h1,
.fight-night .fp-index h1,
.fight-night .ff-hero h1{
  font-family:var(--fh-display);
}
.fight-night .hub-sec>.sec-head h2{
  font-weight:800; text-transform:uppercase; letter-spacing:.01em;
}
.fight-night .fp-profile h2{ font-family:var(--fh-display); font-weight:700; }
.fight-night .fp-profile h1{
  font-weight:900; text-transform:uppercase; letter-spacing:0; line-height:.98;
}
.fight-night .fp-index h1{ font-weight:900; text-transform:uppercase; line-height:1; }

/* ---------- masthead: the arena band (markup: generate.py fh-arena-mast) */
.fight-night .hv2-wrap .fh-arena-mast{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg, var(--fh-void) 0%, var(--fh-coal) 78%);
  border:1px solid #000;
  padding:26px 22px 24px; margin:0 0 22px;
  display:flex; gap:22px; align-items:stretch; flex-wrap:wrap;
  box-shadow:inset 0 -2px 0 var(--fh-gold);
}
.fight-night .fh-arena-mast::before{
  content:""; position:absolute; top:-30%; bottom:-30%; left:34%;
  width:64px; background:var(--fh-red);
  transform:skewX(-16deg); opacity:.9; pointer-events:none;
}
.fight-night .fh-mast-main{ position:relative; z-index:1; flex:1 1 320px; min-width:0; }
.fight-night .fh-arena-mast .kicker{
  display:inline-block; color:var(--fh-bone); background:var(--fh-red);
  font-size:11px; font-weight:800; letter-spacing:2.5px; text-transform:uppercase;
  padding:6px 12px; margin:0 0 10px; transform:skewX(-8deg);
}
.fight-night .fh-mast-wordmark{
  margin:0; font-family:var(--fh-display); font-weight:900; text-transform:uppercase;
  font-size:clamp(58px, 9.5vw, 116px); line-height:.88; letter-spacing:-.01em;
  color:var(--fh-bone); text-shadow:0 4px 34px rgba(0,0,0,.65);
}
.fight-night .hv2-wrap .fh-arena-mast .fh2-standfirst{
  color:rgba(245,239,227,.85); margin:14px 0 0; max-width:56ch;
}
.fight-night .fh-mast-frame{
  position:relative; z-index:1; flex:0 1 300px; min-width:230px; margin:0;
  border:1px solid var(--fh-darkline); background:var(--fh-coal);
  display:flex; flex-direction:column;
}
.fight-night .fh-mast-frame::after{
  content:""; position:absolute; top:-1px; right:-1px; width:18px; height:18px;
  background:var(--fh-red); clip-path:polygon(100% 0, 0 0, 100% 100%);
}
.fight-night .fh-mast-frame img{
  width:100%; height:170px; object-fit:cover; object-position:center 22%;
  display:block; filter:sepia(.22) contrast(1.05) saturate(.95);
}
.fight-night .fh-mast-frame figcaption{ padding:10px 12px 12px; }
.fight-night .fh-mast-frame figcaption b{
  display:block; color:var(--fh-bone); font-size:14px; line-height:1.3;
}
.fight-night .fh-mast-frame figcaption span{
  display:block; color:var(--fh-smoke); font-size:12px; margin-top:2px;
}
.fight-night .fh-mast-frame--type{
  justify-content:center; padding:18px;
}
.fight-night .fh-mast-frame-name{
  margin:0; font-family:var(--fh-display); font-weight:900; text-transform:uppercase;
  color:var(--fh-bone); font-size:26px; line-height:1.02;
}
.fight-night .fh-mast-frame-meta{ margin:8px 0 0; color:var(--fh-smoke); font-size:12.5px; }

/* ---------- hero: dark arena + face-off (markup: generate.py) ---------- */
.fight-night .hv2-wrap .hub-hero{
  background:radial-gradient(110% 90% at 50% 0%, #241B12 0%, var(--fh-void) 62%);
  border:1px solid #000; color:var(--fh-bone);
  padding:26px 22px 28px; box-shadow:0 24px 60px rgba(16,13,10,.35);
}
.fight-night .hv2-wrap .hub-hero .kicker{
  display:inline-block; background:var(--fh-red); color:var(--fh-bone);
  font-size:11px; font-weight:800; letter-spacing:2.5px; text-transform:uppercase;
  padding:7px 14px; margin:0 0 6px; transform:skewX(-8deg); text-shadow:none;
}
.fight-night .hv2-wrap .hub-hero h1{
  font-family:var(--fh-display); font-weight:900; text-transform:uppercase;
  color:var(--fh-bone); letter-spacing:0; line-height:.96; text-shadow:none;
}
.fight-night .hv2-wrap .hub-hero .fh-event-sub{ color:rgba(245,239,227,.88); }
.fight-night .hv2-wrap .hub-hero .fh-meta{ color:var(--fh-smoke); }
.fight-night .hv2-wrap .hub-hero .fh-meta b{ color:var(--fh-bone); }
.fight-night .hv2-wrap .hub-hero .fh2-hero-watch{ color:var(--fh-smoke); }
.fight-night .hv2-wrap .hub-hero .fh2-watch,
.fight-night .hv2-wrap .hub-hero .fh2-watch a{
  color:var(--fh-bone); font-weight:800; text-decoration:underline;
  text-decoration-color:var(--fh-red); text-decoration-thickness:2px;
  text-underline-offset:3px;
}
.fight-night .hv2-wrap .hub-hero .fh-count-label{ color:var(--fh-ember); }
.fight-night .hv2-wrap .hub-hero .fh-tile{
  background:var(--fh-coal); border-color:var(--fh-darkline); box-shadow:none;
}
.fight-night .hv2-wrap .hub-hero .fh-tile b{
  color:var(--fh-bone); font-variant-numeric:tabular-nums;
}
.fight-night .hv2-wrap .hub-hero .fh-tile small{ color:var(--fh-smoke); }
.fight-night .hv2-wrap .hub-hero .fh-tile:last-child b{ color:var(--fh-red); }
/* face-off: two panels angled into a red seam, VS medallion on the seam */
.fight-night .fh-faceoff{
  position:relative; margin:26px 0 4px; padding-top:24px;
  border-top:1px solid var(--fh-darkline);
  display:grid; grid-template-columns:1fr auto 1fr; align-items:stretch;
}
.fight-night .fh-faceoff::before{
  content:""; position:absolute; top:24px; bottom:0; left:50%; width:10px;
  background:var(--fh-red); transform:translateX(-50%) skewX(-8deg);
}
.fight-night .fh-fo-side{
  position:relative; overflow:hidden; background:var(--fh-coal);
  min-height:158px; display:flex; align-items:flex-end;
}
.fight-night .fh-fo--photo .fh-fo-side{ min-height:250px; }
.fight-night .fh-fo-side--a{ text-align:left; }
.fight-night .fh-fo-side--b{ text-align:right; justify-content:flex-end; }
.fight-night .fh-fo-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:center 18%; filter:sepia(.26) contrast(1.06) saturate(.92);
}
.fight-night .fh-fo-side--a .fh-fo-img{ clip-path:polygon(0 0, 100% 0, 93% 100%, 0 100%); }
.fight-night .fh-fo-side--b .fh-fo-img{ clip-path:polygon(7% 0, 100% 0, 100% 100%, 0 100%); }
.fight-night .fh-fo-side::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(16,13,10,.08) 40%, rgba(16,13,10,.88) 100%);
}
.fight-night .fh-fo-init{
  position:absolute; top:2px; font-family:var(--fh-display); font-weight:900;
  font-size:158px; line-height:1; color:rgba(245,239,227,.13);
}
.fight-night .fh-fo-side--a .fh-fo-init{ left:10px; }
.fight-night .fh-fo-side--b .fh-fo-init{ right:10px; }
.fight-night .fh-fo-name{ position:relative; z-index:2; padding:14px 16px; }
.fight-night .fh-fo-sur{
  display:block; font-family:var(--fh-display); font-weight:900; text-transform:uppercase;
  font-size:clamp(30px, 4.6vw, 54px); line-height:.94; color:var(--fh-bone);
  text-shadow:0 2px 18px rgba(0,0,0,.6);
}
.fight-night .fh-fo-full{
  display:block; margin-top:5px; font-size:11.5px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--fh-smoke);
}
.fight-night .fh-fo-rec{
  display:inline-block; margin-top:8px; background:var(--fh-red); color:var(--fh-bone);
  font-size:12px; font-weight:800; letter-spacing:.06em; padding:4px 9px;
  transform:skewX(-8deg); font-variant-numeric:tabular-nums;
}
.fight-night .fh-fo-vs{ position:relative; z-index:3; align-self:center; padding:0 6px; }
.fight-night .fh-fo-vs span{
  width:56px; height:56px; border-radius:50%; background:var(--fh-red);
  border:2px solid var(--fh-void); color:var(--fh-bone);
  font-family:var(--fh-display); font-weight:900; font-size:16px; letter-spacing:.04em;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 26px rgba(0,0,0,.55);
}
.fight-night .fh-fo-belt{
  position:absolute; z-index:4; top:2px; left:50%;
  transform:translateX(-50%) skewX(-8deg);
  background:var(--fh-gold); color:var(--fh-coal);
  font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  padding:5px 13px; margin:0; white-space:nowrap;
}
.fight-night .fh-fo--title .fh-fo-name{ box-shadow:inset 0 -3px 0 var(--fh-gold); }
@media (max-width:640px){
  .fight-night .fh-fo-side{ min-height:118px; }
  .fight-night .fh-fo--photo .fh-fo-side{ min-height:168px; }
  .fight-night .fh-fo-init{ font-size:104px; }
  .fight-night .fh-fo-vs span{ width:44px; height:44px; font-size:13px; }
  .fight-night .fh-mast-frame{ flex-basis:100%; }
}

/* ---------- tale of the tape: the poster table goes dark ---------- */
.fight-night .hv2-wrap #secTape{
  background:linear-gradient(180deg, var(--fh-coal), var(--fh-void));
  border:1px solid #000; padding:22px 20px 26px;
}
.fight-night .hv2-wrap #secTape>.sec-head{ border-bottom-color:var(--fh-darkline); }
.fight-night .hv2-wrap #secTape>.sec-head h2{ color:var(--fh-bone) !important; }
.fight-night .hv2-wrap #secTape>.sec-head .kicker{ color:var(--fh-ember); }
.fight-night #secTape .fh-tape{
  background:transparent; border-color:var(--fh-darkline); box-shadow:none;
}
.fight-night #secTape .fh-fighter .fname{ color:var(--fh-bone); }
.fight-night #secTape .fh-fighter .fcamp{ color:var(--fh-smoke); }
.fight-night #secTape .fh-fighter .frecord{ color:var(--fh-bone); }
.fight-night #secTape .fh-last5{ color:var(--fh-smoke); }
.fight-night #secTape .fh-last5 b{ color:rgba(245,239,227,.75); }
.fight-night #secTape .fh-vs{ background:transparent; }
.fight-night #secTape .fh-vs::before,
.fight-night #secTape .fh-vs::after{ background:var(--fh-darkline); }
.fight-night #secTape .fh-vs span{ background:var(--fh-coal); }
.fight-night #secTape .fh-tape-rows{ border-top-color:var(--fh-darkline); }
.fight-night #secTape .fh-row{ border-bottom-color:var(--fh-darkline); }
.fight-night #secTape .fh-row .cell{ color:rgba(245,239,227,.88); }
.fight-night #secTape .fh-row .cell.hl{ color:#fff; font-weight:800; }
.fight-night #secTape .fh-row .rlab{ color:var(--fh-smoke); }
.fight-night #secTape.fh-sec--title .fh-tape{ border-color:rgba(201,162,39,.55); }
.fight-night #secTape.fh-sec--title .fh-vs span{
  border-color:var(--fh-gold); color:var(--fh-gold);
}
.fight-night #secTape.fh-sec--title .fh-row .cell.hl{ color:var(--fh-gold); }

/* ---------- watch board: next-up spotlight + live banner on dark ------ */
.fight-night .fhtv-nextup{
  background:linear-gradient(180deg, var(--fh-coal), var(--fh-void));
  border-color:#000;
}
.fight-night .fhtv-nextup h3{ color:var(--fh-bone); font-weight:800; }
.fight-night .fhtv-nextup .fhtv-mainevent{ color:rgba(245,239,227,.92); }
.fight-night .fhtv-nextup .fhtv-date{ color:var(--fh-bone); }
.fight-night .fhtv-nextup .fhtv-venue{ color:var(--fh-smoke); }
.fight-night .fhtv-nextup .fhtv-broadcast{ color:rgba(245,239,227,.85); }
.fight-night .fhtv-nextup .fhtv-broadcast-label{ color:var(--fh-smoke); }
.fight-night .fhtv-nextup .fhtv-broadcast-detail{ color:var(--fh-smoke); }
.fight-night .fhtv-cd{
  background:var(--fh-void); border-color:rgba(192,57,27,.5);
}
.fight-night .fhtv-cd b{ color:var(--fh-red); }
.fight-night .fhtv-cd i{ color:var(--fh-smoke); }
.fight-night .fhtv-titlebelt{
  background:rgba(201,162,39,.14); border-color:rgba(201,162,39,.55);
  color:var(--fh-gold);
}
.fight-night .fhtv-live-banner{
  background:linear-gradient(135deg, rgba(192,57,27,.30), rgba(16,13,10,.94));
  border-color:rgba(192,57,27,.6);
}
.fight-night .fhtv-live-banner h3{ color:var(--fh-bone); }
.fight-night .fhtv-live-banner p{ color:rgba(245,239,227,.85); }
.fight-night .fhtv-subhead{ color:var(--fh-dim); }
/* mobile accordion rows: coal cards, poster names */
.fight-night .fhtv-item{ background:var(--fh-coal); border-color:#000; }
.fight-night .fhtv-row-name{ color:var(--fh-bone); }
.fight-night .fhtv-row-sub{ color:var(--fh-smoke); }
.fight-night .fhtv-row-date{ background:rgba(192,57,27,.16); border-color:rgba(192,57,27,.45); }
.fight-night .fhtv-row-date b{ color:var(--fh-bone); }
.fight-night .fhtv-row-date i{ color:var(--fh-smoke); }
.fight-night .fhtv-item--boxing .fhtv-row-date{
  background:rgba(201,162,39,.13); border-color:rgba(201,162,39,.4);
}
.fight-night .fhtv-row-provider{
  background:rgba(245,239,227,.08); color:rgba(245,239,227,.7);
}
.fight-night .fhtv-chev{ border-color:rgba(245,239,227,.55); }
.fight-night .fhtv-detail{ background:#171310; border-top-color:var(--fh-darkline); }
.fight-night .fhtv-detail .fhtv-venue{ color:var(--fh-smoke); }
.fight-night .fhtv-detail .fhtv-broadcast{ color:rgba(245,239,227,.85); }
.fight-night .fhtv-bout-names{ color:var(--fh-bone); }
.fight-night .fhtv-bout-title{ color:var(--fh-gold); }
.fight-night .fhtv-tag{ transform:skewX(-8deg); }

/* ---------- roster browser (/sports/fight/fighters/): poster cards --- */
.fight-night .ff-hero{
  background:linear-gradient(135deg, var(--fh-void), var(--fh-coal));
  border:1px solid #000; box-shadow:inset 0 -2px 0 var(--fh-gold);
  padding:30px 22px 26px; margin-top:18px;
}
.fight-night .ff-hero h1{
  color:var(--fh-bone); font-weight:900; text-transform:uppercase; line-height:.95;
}
.fight-night .ff-hero p{ color:rgba(245,239,227,.78); }
.fight-night .ff-kicker{ color:var(--fh-ember); }
.fight-night .ff-filters{
  background:rgba(27,23,18,.97); border-color:#000;
}
.fight-night .ff-search,
.fight-night .ff-select{
  background:var(--fh-void); border-color:var(--fh-darkline); color:var(--fh-bone);
}
.fight-night .ff-search::placeholder{ color:var(--fh-smoke); }
.fight-night .ff-pill{
  background:var(--fh-coal); border-color:var(--fh-darkline); color:rgba(245,239,227,.72);
}
.fight-night .ff-pill[aria-pressed="true"]{
  background:var(--fh-red); border-color:var(--fh-red); color:var(--fh-bone);
}
.fight-night .ff-count{ color:var(--fh-smoke); }
.fight-night .ff-card{
  background:linear-gradient(180deg, var(--fh-coal), var(--fh-void));
  border-color:#000; color:var(--fh-bone); padding:0 0 16px; overflow:hidden;
}
.fight-night .ff-card:hover{
  border-color:var(--fh-red); transform:translateY(-3px);
  box-shadow:0 16px 36px rgba(16,13,10,.5);
}
.fight-night .ff-card-top{ padding:12px 14px 0; }
.fight-night .ff-img{
  height:215px; border-radius:0; margin:10px 0 0; background:var(--fh-coal);
  object-position:center 15%; filter:sepia(.2) contrast(1.05) saturate(.95);
}
.fight-night .ff-plate{
  display:flex; align-items:center; justify-content:center; height:215px;
  margin-top:10px; background:linear-gradient(160deg, #241C14, var(--fh-void));
  border-bottom:3px solid var(--fh-red);
}
.fight-night .ff-plate-init{
  font-family:var(--fh-display); font-weight:900; font-size:88px; line-height:1;
  color:rgba(245,239,227,.30);
}
.fight-night .ff-card h3{
  margin:12px 14px 2px; font-family:var(--fh-display); font-weight:900;
  text-transform:uppercase; font-size:21px; line-height:1.02; color:var(--fh-bone);
  letter-spacing:0;
}
.fight-night .ff-nick{ margin:0 14px 8px; color:var(--fh-ember); }
.fight-night .ff-record{ margin:0 14px; color:var(--fh-bone); }
.fight-night .ff-record small{ color:var(--fh-smoke); }
.fight-night .ff-div{ margin:8px 14px 0; color:var(--fh-smoke); }
.fight-night .ff-titles{ margin:8px 14px 0; color:var(--fh-gold); }
.fight-night .ff-stats{ margin:10px 14px 0; color:rgba(245,239,227,.55); }
.fight-night .ff-badge{
  background:transparent; border-color:var(--fh-darkline); color:rgba(245,239,227,.7);
  transform:skewX(-8deg);
}
.fight-night .ff-badge.ufc{ background:var(--fh-red); border-color:var(--fh-red); color:var(--fh-bone); }
.fight-night .ff-badge.boxing{ border-color:rgba(201,162,39,.6); color:var(--fh-gold); }
.fight-night .ff-badge.champ{ background:var(--fh-gold); border-color:var(--fh-gold); color:var(--fh-coal); }
.fight-night .ff-history h2{ font-family:var(--fh-display); font-weight:800; text-transform:uppercase; }

/* ---------- locker-room roster cards (fh-roster, hub legacy surface) -- */
.fight-night .fh-roster-card{
  background:linear-gradient(180deg, var(--fh-coal), var(--fh-void));
  border-color:#000; color:var(--fh-bone);
}
.fight-night .fh-roster-card h3{
  font-weight:900; text-transform:uppercase; color:var(--fh-bone); line-height:1.05;
}
.fight-night .fh-rc-record{ color:var(--fh-bone); }
.fight-night .fh-rc-record small{ color:var(--fh-smoke); }
.fight-night .fh-rc-div{ color:var(--fh-smoke); }
.fight-night .fh-rc-nick{ color:var(--fh-ember); }
.fight-night .fh-rc-avatar{ border-radius:0; }
.fight-night .fh-badge.is-champ{ background:var(--fh-gold); border-color:var(--fh-gold); color:var(--fh-coal); }

/* ---------- profiles + directories: light arena consistency --------- */
.fight-night .fp-kicker{
  display:inline-block; background:var(--fh-red); color:var(--fh-bone);
  padding:5px 11px; transform:skewX(-8deg); letter-spacing:.14em;
}
.fight-night .fp-record{ color:var(--fh-red); }
.fight-night .fp-photo{
  background:var(--fh-coal); padding:10px; border:1px solid #000; margin:0 0 22px;
  box-shadow:inset 0 -3px 0 var(--fh-red);
}
.fight-night .fp-photo img{ display:block; width:100%; }
.fight-night .fp-profile h2{
  border-left:4px solid var(--fh-red); padding-left:12px;
}
.fight-night .fp-index h1{ color:var(--desert-ink); }
.fight-night .fp-card{
  background:linear-gradient(180deg, var(--fh-coal), var(--fh-void));
  border-color:#000; color:var(--fh-bone);
}
.fight-night .fp-card:hover{ border-color:var(--fh-red); transform:translateY(-2px); }
.fight-night .fp-card-name{ color:var(--fh-bone); font-weight:700; }

/* ============ SEAMLESS REFINEMENT — ARENA2 (2026-10-14, James) ============
   "Make those black boxes borderless — try seamless flow on the page."
   The arena stays dark and loud, but its panels stop reading as separate
   black rectangles: hard 1px #000 outlines and lift-shadows come off,
   neighbouring dark zones share one tonal ground so they bleed into each
   other, and separation is carried by spacing, type and the red/gold
   accents. Structural lines that carry readability (the tape's row rules)
   are SOFTENED, not deleted. Presentation only — no structure, behavior,
   data or copy changes. */

/* ---------- masthead + hero: one continuous dark opening ---------- */
.fight-night .hv2-wrap .fh-arena-mast{
  background:linear-gradient(180deg, var(--fh-void) 0%, var(--fh-coal) 100%);
  border:0; box-shadow:none; margin:0;
}
.fight-night .fh-mast-frame{
  border:0; background:transparent;
}
.fight-night .fh-mast-frame figcaption{ background:transparent; }
.fight-night .hv2-wrap .hub-hero{
  background:linear-gradient(180deg, var(--fh-coal) 0%, #241B12 46%, var(--fh-void) 100%);
  border:0; box-shadow:none; margin-top:0;
}
/* countdown floats on the hero ground — tone, not boxes */
.fight-night .hv2-wrap .hub-hero .fh-countdown{
  background:transparent; border:0; box-shadow:none;
  -webkit-backdrop-filter:none; backdrop-filter:none; padding:0;
}
.fight-night .hv2-wrap .hub-hero .fh-tile{
  background:rgba(245,239,227,.05); border:0; box-shadow:none;
}
/* face-off sits directly on the hero ground (type variant); the red
   seam + VS medallion remain the separation */
.fight-night .fh-faceoff{ border-top:0; }
.fight-night .fh-fo-side{ background:transparent; }

/* ---------- watch board: one dark field, not floating boxes -------- */
.fight-night .hv2-wrap #secWatch{
  background:linear-gradient(180deg, var(--fh-void) 0%, var(--fh-coal) 52%, var(--fh-void) 100%);
  border:0; padding:24px 18px 28px;
}
.fight-night .hv2-wrap #secWatch>.sec-head h2{ color:var(--fh-bone) !important; }
.fight-night .hv2-wrap #secWatch>.sec-head{ border-bottom-color:rgba(245,239,227,.14); }
.fight-night #secWatch .fhtv-subhead{ color:var(--fh-smoke); }
.fight-night #secWatch .fhtv-subhead::after{ background:rgba(245,239,227,.14); }
.fight-night #secWatch .fhtv-sgrid-credit{ color:var(--fh-smoke); }
.fight-night #secWatch .fhtv-empty{ color:var(--fh-smoke); }
.fight-night .fhtv-nextup{
  background:transparent; border:0; box-shadow:none;
}
.fight-night .fhtv-cd{
  background:rgba(245,239,227,.06); border:0;
}
.fight-night .fhtv-live-banner{
  border:0; box-shadow:none;
}
.fight-night .fhtv-item{
  background:#171310; border:0; box-shadow:none;
}
.fight-night .fhtv-row-date{ border:0; }
.fight-night .fhtv-detail{
  background:rgba(16,13,10,.35); border-top-color:rgba(245,239,227,.08);
}
/* legacy roster cards on the hub: borderless, no lift shadow */
.fight-night .fh-roster-card{
  border:0; box-shadow:none;
}

/* ---------- tale of the tape: borderless band, softened rules ------- */
.fight-night .hv2-wrap #secTape{
  border:0; box-shadow:none;
}
.fight-night #secTape .fh-tape{ border-color:rgba(245,239,227,.08); }
.fight-night #secTape .fh-tape-rows{ border-top-color:rgba(245,239,227,.10); }
.fight-night #secTape .fh-row{ border-bottom-color:rgba(245,239,227,.10); }
.fight-night #secTape .fh-vs::before,
.fight-night #secTape .fh-vs::after{ background:rgba(245,239,227,.10); }

/* ---------- roster: hero + filter bar merge; cards borderless ------ */
.fight-night .ff-hero{
  background:linear-gradient(180deg, var(--fh-void), var(--fh-coal));
  border:0; box-shadow:none;
}
.fight-night .ff-filters{
  background:var(--fh-coal); border:0; margin-top:0;
}
.fight-night .ff-card{
  border:0; box-shadow:none;
}
.fight-night .ff-card:hover{
  border:0; box-shadow:none; transform:translateY(-3px);
}
.fight-night .ff-plate{ border-bottom:0; }

/* ---------- profiles + directories: frames off ---------------------- */
.fight-night .fp-photo{
  background:transparent; padding:0; border:0; box-shadow:none;
}
.fight-night .fp-card{
  border:0; box-shadow:none;
}
.fight-night .fp-card:hover{
  border:0; box-shadow:none; transform:translateY(-2px);
}

/* no-JS / fallback calendar inside the dark watch field stays readable:
   the baked fh2-cal rows ship ink-on-cream colors; on the ARENA2 dark
   field they take the dark-ground palette instead. */
.fight-night #secWatch .fh2-cal-row{ border-bottom-color:rgba(245,239,227,.12); }
.fight-night #secWatch .fh2-cal-when{ color:var(--fh-bone); }
.fight-night #secWatch .fh2-cal-when span{ color:var(--fh-smoke); }
.fight-night #secWatch .fh2-cal-name{ color:var(--fh-bone); }
.fight-night #secWatch .fh2-cal-name a{ color:var(--fh-bone); }
.fight-night #secWatch .fh2-cal-main{ color:rgba(245,239,227,.88); }
.fight-night #secWatch .fh2-cal-meta{ color:var(--fh-smoke); }

/* ============ TOP RESTORE — ARENA4 (2026-10-14, James) ============
   James's ruling on the seamless pass: he liked the FIRST section the
   ARENA1 way — the top of the hub (masthead + event-art/face-off hero)
   is its own distinct, separated block again — while the fights down
   low keep the ARENA2/3 seamless flow. This block re-asserts the
   ARENA1 values (PERSONALITY SKIN, above) for the masthead + hero
   only, overriding the ARENA2 merge for those two blocks: the 135deg
   masthead ground, the 1px #000 outlines, the gold inset hairline on
   the masthead, the framed event art, the hero's radial ground +
   lift-shadow, the separated spacing (masthead 22px bottom margin;
   hero margin-top back to the shared hub values 18px / 26px @760px —
   hubs-elevated.css, which ARENA2 zeroed), and the face-off's dark
   seam rule + coal panels. NOT touched, per the same ruling: the
   countdown float, the watch board, the tape, the roster and the
   profiles — their ARENA2/3 seamless rules above still govern.
   Presentation only — no structure, behavior, data or copy changes. */
.fight-night .hv2-wrap .fh-arena-mast{
  background:linear-gradient(135deg, var(--fh-void) 0%, var(--fh-coal) 78%);
  border:1px solid #000;
  box-shadow:inset 0 -2px 0 var(--fh-gold);
  margin:0 0 22px;
}
.fight-night .fh-mast-frame{
  border:1px solid var(--fh-darkline); background:var(--fh-coal);
}
.fight-night .hv2-wrap .hub-hero{
  background:radial-gradient(110% 90% at 50% 0%, #241B12 0%, var(--fh-void) 62%);
  border:1px solid #000;
  box-shadow:0 24px 60px rgba(16,13,10,.35);
  margin-top:18px;
}
@media (min-width:760px){
  .fight-night .hv2-wrap .hub-hero{ margin-top:26px; }
}
/* face-off: coal panels + the dark seam rule are back (the red seam
   itself never left); countdown tiles/panel keep the ARENA2 float. */
.fight-night .fh-faceoff{ border-top:1px solid var(--fh-darkline); }
.fight-night .fh-fo-side{ background:var(--fh-coal); }

/* ================= TAPE CONTEXT — ARENA5 (2026-10-14, James 20:56 PT)
   James, on the bare tape: "that's a really cool graphic but I don't
   know what it is… when is that fight?… is there a picture of anybody?
   are there any promo videos of the fight we can have around it?"
   So the tape carries its event on its face: an event plate at the top
   of the tape box (name · date · card times · venue · watch), each
   fighter's own face from the official event poster beside their name
   (poster crops zoomed per side; a unique catalog portrait runs
   full-frame; no art = the typographic side, unchanged), and the
   official promo rail (#secBuildup) directly below the tape, styled as
   its sibling dark box. Presentation + additive structure only; the
   arena4 top separation and the seamless flow below are untouched. */
.fight-night #secTape .fh-tape-ev{
  padding:16px 20px 14px; border-bottom:1px solid var(--fh-darkline);
}
.fight-night .fh-tape-evname{
  margin:0; font-family:var(--fh-display); font-weight:900;
  font-size:clamp(19px,2.2vw,25px); letter-spacing:-.2px; color:var(--fh-bone);
}
.fight-night .fh-tape-evmeta{
  margin:6px 0 0; font-size:13.5px; line-height:1.55; color:var(--fh-smoke);
}
.fight-night .fh-tape-evmeta a{
  color:var(--fh-ember); font-weight:700; text-decoration:none;
}
.fight-night .fh-tape-evmeta a:hover{ text-decoration:underline; }
.fight-night #secTape .fh-fighter{
  display:flex; gap:16px; align-items:flex-start;
}
.fight-night #secTape .fh-fmain{ flex:1 1 auto; min-width:0; }
.fight-night .fh-fphoto{
  flex:0 0 104px; width:104px; height:104px; overflow:hidden;
  background:var(--fh-coal); border:1px solid var(--fh-darkline);
}
.fight-night .fh-fphoto img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.fight-night .fh-fphoto--l img{ transform:scale(2.05); transform-origin:5% 0%; }
.fight-night .fh-fphoto--r img{ transform:scale(2.05); transform-origin:97% 0%; }
.fight-night .fh-fphoto--full img{ object-position:50% 18%; }
@media (max-width:520px){
  .fight-night .fh-fphoto{ flex-basis:84px; width:84px; height:84px; }
}
/* the build-up: official promo videos, the tape's sibling dark box */
.fight-night .hv2-wrap #secBuildup{
  background:linear-gradient(180deg, var(--fh-coal), var(--fh-void));
  border:1px solid #000; padding:22px 20px 26px;
}
.fight-night .hv2-wrap #secBuildup>.sec-head{ border-bottom-color:var(--fh-darkline); }
.fight-night .hv2-wrap #secBuildup>.sec-head h2{ color:var(--fh-bone) !important; }
.fight-night .hv2-wrap #secBuildup>.sec-head .kicker{ color:var(--fh-ember); }
.fight-night .fh-promos{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:760px){
  .fight-night .fh-promos{ grid-template-columns:1fr 1fr; }
}
.fight-night .fh-promo{
  background:var(--fh-void); border:1px solid var(--fh-darkline);
}
.fight-night .fh-promo-frame{ position:relative; aspect-ratio:16/9; background:#000; }
.fight-night .fh-promo-frame iframe{
  position:absolute; inset:0; width:100%; height:100%; border:0;
}
.fight-night .fh-promo-cap{
  margin:0; padding:12px 14px; font-size:14.5px; font-weight:600;
  color:var(--fh-bone); display:flex; gap:10px; align-items:center;
}

/* ================= TAIL PERSONALITY — ARENA6 (2026-10-14, James 21:29 PT)
   James, on the hub's lower half: "We started off the fight hub so
   good and then we just didn't end it strong at all. We have to give
   it some personality. That is just laziness after the good start."
   He was right: below the tape the page fell back to the generic light
   list skin — white bout rows, run-on ranking lines, plain directory
   links — while the top carried the arena. This block brings the
   arena DOWN the page: #secCard becomes an arena panel exactly like
   its siblings (#secTape / #secBuildup — same ground, same head
   treatment), the bout rows go borderless on that ground with faces
   and records where held data carries them (baked + JS-mirrored;
   typographic where nothing is held — never a substitute person),
   and the sidebar cards take the same dark panels: champions in the
   arena's earns-it gold (gold appears ONLY on real champions and
   their belt lines), contenders as ranked rows with numeral tiles,
   boxing belt status as a gold chip, directories as arena rows.
   A title on the line for the featured event (fh-sec--title, the
   tape's own discipline) gilds the card panel edge + main-event tile.
   Presentation only — names, rankings, records, order untouched. */

/* ---------- the card: an arena panel, like the tape + build-up ---------- */
.fight-night .hv2-wrap #secCard{
  background:linear-gradient(180deg, var(--fh-coal), var(--fh-void));
  border:1px solid #000; padding:22px 20px 26px;
}
.fight-night .hv2-wrap #secCard>.sec-head{ border-bottom-color:var(--fh-darkline); }
.fight-night .hv2-wrap #secCard>.sec-head h2{ color:var(--fh-bone) !important; }
.fight-night .hv2-wrap #secCard>.sec-head .kicker{ color:var(--fh-ember); }
.fight-night #secCard .fh-card{ background:transparent; }
.fight-night #secCard .fh-card-group{ margin:0 0 24px; }
.fight-night #secCard .fh-card-group:last-child{ margin-bottom:0; }
@media (min-width:1024px){
  /* one group (no prelim split published) spans the panel — the base
     1fr/1fr group grid otherwise halves a lone main card */
  .fight-night #secCard .fh-card-group:only-child{ grid-column:1 / -1; }
}
.fight-night #secCard .fh-card-head{
  border-bottom:2px solid var(--fh-red); padding-bottom:9px; margin:0 0 2px;
}
.fight-night #secCard .fh-card-head h3{
  font-family:var(--fh-display); font-weight:900; font-size:19px;
  letter-spacing:.01em; text-transform:uppercase; color:var(--fh-bone);
}
.fight-night #secCard .fh-card-head .when{
  font-size:11px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--fh-smoke); white-space:nowrap;
}

/* ---------- bout rows: borderless on the panel ground ---------- */
.fight-night #secCard .fh-bout{
  background:transparent; border:0; border-radius:0;
  border-bottom:1px solid rgba(245,239,227,.09);
  padding:13px 4px; margin:0; gap:13px; align-items:center;
}
.fight-night #secCard .fh-bout-num{
  flex:0 0 32px; height:32px; border-radius:0;
  background:rgba(245,239,227,.07); border:1px solid var(--fh-darkline);
  color:var(--fh-bone); font-size:13.5px; font-weight:800;
}
.fight-night #secCard .fh-bout.is-main{
  background:linear-gradient(90deg, rgba(192,57,27,.16), rgba(192,57,27,0) 62%);
  box-shadow:inset 3px 0 0 var(--fh-red);
}
.fight-night #secCard .fh-bout.is-main .fh-bout-num{
  background:var(--fh-red); border-color:var(--fh-red); color:#FFF7EA;
}
.fight-night #secCard .fh-bout-fighters{
  font-family:var(--fh-display); font-weight:700; font-size:16.5px;
  line-height:1.45; letter-spacing:0; color:var(--fh-bone); margin:0;
}
.fight-night #secCard .fh-bout-fighters .vs{
  color:var(--fh-ember); font-weight:600; font-style:italic;
  font-size:.86em; padding:0 2px;
}
.fight-night #secCard .fh-bout-f{
  display:inline-flex; align-items:center; gap:8px;
}
.fight-night #secCard .fh-bout-face{
  flex:0 0 34px; width:34px; height:34px; overflow:hidden;
  background:var(--fh-void); border:1px solid var(--fh-darkline);
}
.fight-night #secCard .fh-bout-face img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.fight-night #secCard .fh-bout-face--l img{ transform:scale(2.05); transform-origin:5% 0%; }
.fight-night #secCard .fh-bout-face--r img{ transform:scale(2.05); transform-origin:97% 0%; }
.fight-night #secCard .fh-bout-face--full img{ object-position:50% 18%; }
.fight-night #secCard .fh-bout-rec{
  font-size:11px; font-weight:800; letter-spacing:.05em; white-space:nowrap;
  color:var(--fh-bone); background:rgba(245,239,227,.08);
  border:1px solid var(--fh-darkline); padding:2.5px 7px;
}
.fight-night #secCard .fh-bout-meta{
  margin:4px 0 0; font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--fh-smoke);
}
.fight-night #secCard .fh-bout-tag{
  display:inline-block; margin-top:8px; padding:4px 9px 3px;
  background:var(--fh-red); color:#FFF7EA;
  font-size:10px; font-weight:800; letter-spacing:.16em;
  text-transform:uppercase; transform:skewX(-8deg);
}
.fight-night #secCard .fh-card-note{
  margin:12px 0 0; font-size:12px; line-height:1.6; color:var(--fh-smoke);
}
/* a title on the line gilds the panel edge + the main-event tile —
   the tape's fh-sec--title discipline, mirrored on the card */
.fight-night .hv2-wrap #secCard.fh-sec--title{ border-color:rgba(201,162,39,.55); }
.fight-night #secCard.fh-sec--title .fh-bout.is-main .fh-bout-num{
  background:var(--fh-gold); border-color:var(--fh-gold); color:var(--fh-void);
}

/* ---------- sidebar: champions & rankings + directories ---------- */
.fight-night .hv2-side .hv2-card{
  background:linear-gradient(180deg, var(--fh-coal), var(--fh-void));
  border:1px solid #000; border-radius:0;
  padding:20px 18px 22px; color:var(--fh-bone);
}
.fight-night .hv2-side .hv2-card h3{
  font-family:var(--fh-display); font-weight:900; font-size:21px;
  letter-spacing:0; color:var(--fh-bone); margin:0 0 5px;
}
.fight-night .hv2-side .hv2-card .sub{
  color:var(--fh-smoke); font-size:10.5px; letter-spacing:.14em;
  text-transform:uppercase; margin:0 0 6px;
}
.fight-night .hv2-side .fh2-rank-head{
  font:800 12px system-ui; letter-spacing:.2em; text-transform:uppercase;
  color:var(--fh-ember); margin:16px 0 4px;
}
.fight-night .hv2-side .fh2-rank-list + .fh2-rank-head{
  border-top:1px solid var(--fh-darkline); padding-top:16px;
}
.fight-night .hv2-side .fh2-rank-list li{
  position:relative; padding:11px 0 11px 13px;
  border-bottom:1px solid rgba(245,239,227,.09);
  font-size:13.5px; line-height:1.45;
}
.fight-night .hv2-side .fh2-rank-list li:last-child{ border-bottom:0; }
/* the gold bar: every row here is headed by a real champion — the one
   place gold is earned, so the one place it runs */
.fight-night .hv2-side .fh2-rank-list li::before{
  content:""; position:absolute; left:0; top:12px; bottom:12px; width:3px;
  background:linear-gradient(180deg, var(--fh-gold), rgba(201,162,39,.28));
}
.fight-night .hv2-side .fh2-div{
  display:block; margin:0 0 3px;
  font:700 10.5px system-ui; letter-spacing:.15em;
  text-transform:uppercase; color:var(--fh-smoke);
}
.fight-night .hv2-side .fh2-champ{
  font-family:var(--fh-display); font-weight:900; font-size:18.5px;
  line-height:1.2; color:var(--fh-gold); text-decoration:none;
}
.fight-night .hv2-side a.fh2-champ:hover{
  color:var(--fh-gold); text-decoration:underline; text-underline-offset:3px;
}
.fight-night .hv2-side .fh2-cont{
  display:block; margin-top:4px;
  font-size:13px; color:rgba(245,239,227,.66);
}
.fight-night .hv2-side .fh2-cont a{
  color:rgba(245,239,227,.88); font-weight:600; text-decoration:none;
}
.fight-night .hv2-side .fh2-cont a:hover{ color:var(--fh-ember); }
.fight-night .hv2-side .fh2-rn{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:17px; height:17px; padding:0 3px; margin-right:3px;
  background:rgba(245,239,227,.08); border:1px solid var(--fh-darkline);
  color:var(--fh-bone); font:800 10px system-ui; vertical-align:1px;
}
/* boxing belt status as a designed element: a gold chip, not gray text */
.fight-night .hv2-side .fh2-cont--belt{
  display:inline-block; margin-top:6px; padding:4px 9px 3px;
  border:1px solid rgba(201,162,39,.55); background:rgba(201,162,39,.09);
  color:var(--fh-gold); font:700 10px system-ui;
  letter-spacing:.13em; text-transform:uppercase;
}
.fight-night .hv2-side .fh2-rank-src{
  margin:14px 0 0; font-size:11.5px; line-height:1.6; color:var(--fh-smoke);
}
/* directories: arena rows, not plain text links */
.fight-night .hv2-side .fh2-bridge-list li{
  padding:0; border-bottom:1px solid rgba(245,239,227,.09);
}
.fight-night .hv2-side .fh2-bridge-list li:last-child{ border-bottom:0; }
.fight-night .hv2-side .fh2-bridge-list a{
  display:block; padding:12px 2px;
  font-family:var(--fh-display); font-size:16.5px; font-weight:700;
  color:var(--fh-bone); text-decoration:none;
  transition:color .15s ease, transform .15s ease;
}
.fight-night .hv2-side .fh2-bridge-list a:hover{
  color:var(--fh-ember); transform:translateX(4px);
}
/* Red stripe — brand staple, every page (2026-10-15 rollout) */
#main{border-top:14px solid #C0391B}

/* =====================================================================
   ARENA CONTRAST REPAIR — 2026-10-15 (fight-hub-contrast crew)
   James flagged the fight schedule page as unreadable: the base light
   "desert" theme rules leak ink-on-dark wherever a component renders
   inside the dark arena sections without its own override. Every rule
   below lifts a measured sub-4.5:1 element to standard on its actual
   dark ground. Secondary text stays quieter than headlines — hierarchy
   preserved, nothing invisible. Measured before/after: REPORT.md in
   ~/workspace/fight-hub-contrast-2026-10-15/.
   ===================================================================== */

/* Muted smoke #8A7C68 was 4.38:1 on void/coal. Brightened to ~6.3:1.
   --fh-smoke renders on dark grounds only — except .ff-count, which
   sits on the cream page ground and is pinned to ink-dim below. */
.fight-night{ --fh-smoke:#A5937A; }

/* — Schedule section (hub): month headers, counts, kicker, status — */
.fight-night #secWatch .fhtv-monthhead{ color:rgba(245,239,227,.82); }
.fight-night #secWatch .fhtv-count{ color:rgba(245,239,227,.82); background:rgba(245,239,227,.12); }
.fight-night #secWatch .sec-head .kicker{ color:var(--fh-ember); }
.fight-night #secWatch .fhtv-status-note{ color:rgba(245,239,227,.92); }
.fight-night #secWatch .fhtv-status-note b{ color:var(--fh-bone); }
.fight-night #secWatch .fhtv-tab-n{ color:rgba(245,239,227,.68); }

/* — Calendar rows + event cards: weight classes and promotion tags —
   (.fhtv-tag--ufc previously colored with --desert-accent-soft, a 12%
   alpha WASH token — near-invisible as text on the dark rows.) */
.fight-night .fhtv-row-kicker .fhtv-division{ color:rgba(245,239,227,.75); }
.fight-night .fhtv-row-kicker .fhtv-tag--ufc{ color:var(--fh-ember); }
.fight-night .fhtv-row-kicker .fhtv-tag--boxing{ color:var(--fh-gold); }
.fight-night .fhtv-card-top .fhtv-division{ color:rgba(245,239,227,.75); }
.fight-night .fhtv-card-top .fhtv-tag--ufc{ color:var(--fh-ember); }
.fight-night .fhtv-card-top .fhtv-tag--boxing{ color:var(--fh-gold); }

/* — Expanded event detail: broadcast lines + undercard bout list — */
.fight-night .fhtv-detail .fhtv-broadcast-label{ color:rgba(245,239,227,.72); }
.fight-night .fhtv-detail .fhtv-broadcast-detail{ color:rgba(245,239,227,.72); }
.fight-night .fhtv-bouts .fhtv-bout-name{ color:var(--fh-bone); }
.fight-night .fhtv-bouts a.fhtv-bout-name:hover{ color:var(--fh-ember); }
.fight-night .fhtv-bouts .fhtv-bout-vs{ color:rgba(245,239,227,.7); }
.fight-night .fhtv-bouts .fhtv-bout-tag{ color:var(--fh-ember); }

/* — Countdown hero: label + final (seconds) tile were brick-on-void — */
.fight-night .hv2-wrap .fh-count-label{ color:var(--fh-ember); }
.fight-night .hv2-wrap .hub-hero .fh-tile:last-child .num,
.fight-night .hv2-wrap .hub-hero .fh-tile:last-child b{ color:var(--fh-ember); }

/* — Tale of the tape: VS marker + win pips on their ink chips — */
.fight-night #secTape .fh-vs span{ color:var(--fh-ember); }
.fight-night #secTape .fh-form i.w{ color:#4CC38A; }

/* — Fighter/boxer profiles: the compare link sits on its own dark
   plate, where the brick accent was 3.45:1 — */
.fight-night a.fp-compare{ color:var(--fh-ember); }

/* — Fighters index: light sections keep light-theme values — */
.fight-night .ff-history .ff-kicker{ color:#C0391B; }
.fight-night .ff-count{ color:var(--fh-dim); }

/* — Hub "Latest" list: rank numerals were sand #D8C9AB on cream
   (1.51:1). Darkened sand keeps them quiet but readable. — */
.fight-night .hv2-latest .n{ color:#8A5A12; }

/* === ARENA CONTRAST REPAIR C2 — 2026-10-15 (follow-up pass) ===
   Four leaks the first pass's scopes missed, each measured:
   - .fh-count-label: the bare base rule (brick on void, 3.54:1) governs
     the mast countdown — the C1 rule was scoped to .hv2-wrap only.
   - .fhtv-tab-n: fight-schedule.css pins the inactive tab counts at
     rgba(bone,.45) under an ID-scoped rule (1,2,0) — this (1,3,0) rule
     outranks it; the active tab keeps its ember from fight-schedule.
   - .fh-fo-full: face-off full names computed #3D382D on void (1.66:1).
   - Pound-for-pound pages (body.p4p) run a LIGHT ground but reuse the
     dark-arena mast — wordmark/standfirst pinned back to ink there. */
.fight-night .fh-count-label{ color:var(--fh-ember); }
.fight-night #secWatch .fhtv-tab .fhtv-tab-n{ color:rgba(245,239,227,.68); }
.fight-night .fh-fo-full{ color:var(--fh-bone); }

/* === ARENA CONTRAST REPAIR C3 — 2026-10-15 (final pass) ===
   Bout-row weight labels inside event cards take the card-local smoke
   (#8A7C68, 3.8:1 on the cream card body) — pinned to ink-dim. */
.fight-night .fhtv-scard-bout-wt{ color:var(--fh-dim); }

/* === ARENA CONTRAST REPAIR C4 — 2026-10-15 ===
   The hub page's inline style block pins the countdown label brick
   with !important; this outranks it on specificity so the label holds
   ember regardless of the page file's state. */
.fight-night .hv2-wrap .fh-count-label{ color:var(--fh-ember)!important; }
