/* BOUT SCOUT — theme.css: the site-wide design system, extracted from the
   Contender Series showpiece (site/static/dwcs.css — the canon). Every
   primitive is prefixed .bs- so it can never collide with the page-local
   .dw-* classes. Loads AFTER style.css (so shell rules here win) and BEFORE
   phase2.css. Dark base + green accent identity; existing CSS vars from
   style.css are the only palette. All motion is gated behind
   prefers-reduced-motion: no-preference, and reveal-hiding only applies when
   the .bs-js class is stamped on <html> (inline script in base.html), so a
   no-JS visitor always sees a fully rendered page. */

html { scroll-behavior: smooth; }

/* ============================= SHELL: NAV ============================== */
/* Roomier DWCS-feel top bar. Supersedes the .topbar/.brand/.mainnav rules
   that used to live in style.css. */
.topbar {
  display: flex; align-items: center; gap: 12px 22px; flex-wrap: wrap;
  padding: 15px 22px; border-bottom: 1px solid var(--line);
  background: #0a0e14e6; backdrop-filter: blur(8px);
  position: sticky; top: 0; z-index: 50;
}
/* The brand is the octagon mark alone — the lockup's wordmark repeated a name
   the tab title and footer already carry (owner call 2026-08-06). The site
   name survives for screen readers and crawlers via the anchor's aria-label.
   Mark colours (#00e5a0 mint, #dbe4f0) are baked into the SVG and match
   --accent/--text exactly; it is <img>-embedded on purpose, so no filter,
   opacity or colour override goes on the image itself. The octagon only
   fills 88% of its square viewBox, so it needs more height than the lockup
   did to read at the same weight. */
.brand {
  display: inline-flex; align-items: center; line-height: 0;
  text-decoration: none;
}
.brand:hover { opacity: .85; }
.brand-logo { height: 42px; width: auto; display: block; }
/* FOUR top-level items. Two are plain links, two open a panel holding the
   rest of the site — built on <details> so it works with no JavaScript and
   stays reachable by keyboard. */
.mainnav { display: flex; gap: 2px; flex-wrap: wrap; align-items: center; }
.navtop {
  display: block; padding: 9px 12px; border-radius: 6px; color: var(--dim);
  font: 600 11.5px/1 var(--mono); text-transform: uppercase; letter-spacing: .1em;
  cursor: pointer; white-space: nowrap;
}
.navtop:hover { color: var(--text); background: var(--panel2); }
.navtop.active { color: var(--accent); background: var(--accent-dim); }
.navgroup { position: relative; }
.navgroup > summary { list-style: none; }
.navgroup > summary::-webkit-details-marker { display: none; }
.navgroup > summary::after {
  content: "▾"; margin-left: 6px; font-size: 9px; opacity: .7;
  display: inline-block; transition: transform .18s ease;
}
.navgroup[open] > summary::after { transform: rotate(180deg); }
.navgroup[open] > summary { color: var(--text); background: var(--panel2); }
.navpanel {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 60;
  min-width: 250px; padding: 8px; border: 1px solid var(--line);
  border-radius: 12px; background: #0d1219f5; backdrop-filter: blur(10px);
  box-shadow: 0 18px 44px -18px #000c;
}
.navpanel a {
  display: block; padding: 10px 12px; border-radius: 8px; color: var(--text);
  font: 600 13px/1.25 var(--sans, inherit); text-transform: none; letter-spacing: 0;
}
.navpanel a em {
  display: block; margin-top: 3px; font: 400 11.5px var(--mono);
  font-style: normal; color: var(--dim); letter-spacing: .02em;
}
.navpanel a:hover { background: var(--panel2); }
.navpanel a:hover em { color: var(--text); }

@media (max-width: 860px) {
  /* Phone: brand + search share the first line, and the five nav items get a
     row of their own underneath so none of them has to be truncated. */
  .topbar { padding: 10px 12px 0; gap: 8px; }
  .brand-logo { height: 34px; }
  .navsearch { flex: 1 1 auto; max-width: none; margin-left: auto; order: 2; }
  .mainnav { order: 3; flex: 1 1 100%; gap: 0;
             justify-content: space-between; padding: 2px 0 0;
             border-top: 1px solid var(--line); margin-top: 8px; }
  .navtop { padding: 11px 4px; font-size: 10.5px; letter-spacing: .03em; }
  .navgroup { flex: 0 1 auto; }
  .navgroup > summary::after { margin-left: 2px; font-size: 8px; }
  /* the panel drops full-width under the bar rather than as a narrow menu */
  .navpanel { position: fixed; left: 8px; right: 8px; top: 108px; min-width: 0; }
}
@media (max-width: 380px) {
  .navtop { padding: 11px 2px; font-size: 9.5px; }
}

/* ============================ SHELL: FOOTER ============================ */
/* The footer is a quiet band, not an afterthought. Supersedes style.css. */
footer {
  border-top: 1px solid var(--line); margin-top: 0;
  padding: 52px 20px 58px; text-align: center;
  background: linear-gradient(180deg, transparent, #0c111966);
  color: var(--dim); font-size: 12.5px; line-height: 1.75;
}
footer .bs-kicker { display: block; margin-bottom: 12px; color: var(--accent); }
footer p { max-width: 560px; margin: 0 auto; }
footer .bs-footnote { margin-top: 10px; font: 11px var(--mono); letter-spacing: .06em; opacity: .8; }

/* ============================ PAGE + BANDS ============================= */
/* .bs-page lets full-bleed bands sit flush under the sticky nav (main has
   22px top padding). Wrap a whole banded page in it. */
.bs-page { margin-top: -22px; }

/* Full-width section. 90–140px vertical padding, one idea per band.
   Alternate band-a / band-b down the page; band-accent for the one moment
   that deserves a green wash. */
/* Vertical rhythm cut roughly in half on 2026-08-06: the old 90–140px bands
   were built for a scrolling story. This is a data site — sections still read
   as separate, they just stop costing a screen of scroll each. */
.bs-band { width: 100vw; margin-left: calc(50% - 50vw); padding: clamp(46px, 4vw + 30px, 68px) 20px; }
.bs-band-a { background: var(--bg); }
.bs-band-b { background: linear-gradient(180deg, #0c1119, #0e141f 50%, #0c1119); }
.bs-band-accent { background: linear-gradient(180deg, #0c1119, #0d1d1a 50%, #0c1119); }
.bs-wrap { max-width: 1060px; margin: 0 auto; }
.bs-wrap-narrow { max-width: 760px; margin: 0 auto; }

/* ============================ EVENT STACK ============================= */
/* Owner rule (2026-08-06): the pages people actually come for — the odds
   board and the upcoming cards — open ON the next card, not on a headline.
   Every event is a <details>; the first is `open`, the rest collapse to a
   tappable header so the whole schedule fits one thumb-scroll. No band
   padding, no centered intro, no explainer paragraph. */
.bs-evstack { display: grid; gap: 10px; }
.bs-ev { border: 1px solid var(--line); border-radius: 12px;
         background: #0c111980; overflow: hidden; }
.bs-ev[open] { border-color: #24313f; }
.bs-evhead { list-style: none; cursor: pointer; padding: 13px 15px;
             display: grid; gap: 3px; }
.bs-evhead::-webkit-details-marker { display: none; }
.bs-evhead:hover { background: var(--panel2); }
.bs-evtop { display: flex; align-items: baseline; gap: 8px; }
.bs-evdate { font: 700 10.5px var(--mono); letter-spacing: .12em;
             color: var(--accent); white-space: nowrap; }
.bs-evtoggle { margin-left: auto; font: 700 10px var(--mono); color: var(--dim); }
.bs-ev[open] .bs-evtoggle::before { content: "HIDE ▾"; }
.bs-ev:not([open]) .bs-evtoggle::before { content: "OPEN ▸"; }
.bs-evname { font: 700 18px/1.25 inherit; color: var(--text); }
.bs-evmeta { font: 600 11.5px var(--mono); color: var(--dim); }
.bs-evmeta b { color: var(--accent); }
.bs-evmeta .hot { color: var(--amber); }
.bs-evbody { padding: 0 10px 12px; }
@media (max-width: 640px) {
  .bs-evhead { padding: 12px; }
  .bs-evname { font-size: 16.5px; }
  .bs-evbody { padding: 0 7px 9px; }
}
@media (prefers-reduced-motion: no-preference) {
  .bs-ev { transition: border-color .2s; }
  .bs-evhead { transition: color .2s, background .2s; }
}

/* ============================== PAGE HEAD ============================= */
/* The tight replacement for .bs-intro on data pages (owner rule 2026-08-06:
   no editorial headline, no explainer paragraph — a label, the numbers that
   qualify it, and then the data). Anything a visitor needs to be told once
   goes in .bs-foot at the bottom, or behind a fold. */
.bs-phead { display: flex; align-items: baseline; justify-content: space-between;
            gap: 6px 16px; flex-wrap: wrap; margin-bottom: 14px; }
.bs-phead h1, .bs-phead h2 {
  font-size: clamp(20px, 5vw, 26px); font-weight: 700; letter-spacing: -.01em;
  line-height: 1.2; margin: 0; color: var(--text);
}
.bs-phead .meta { font: 600 11.5px var(--mono); color: var(--dim); }
.bs-phead .meta b { color: var(--accent); font-weight: 700; }
.bs-phead a.meta:hover { color: var(--accent); }
.bs-foot { max-width: 640px; margin: 22px auto 0; text-align: center;
           color: var(--dim); font: 11px var(--mono); letter-spacing: .06em;
           line-height: 1.7; }
.bs-sect { margin-top: 30px; }

/* ============================== KICKER ================================ */
/* Mono microlabel — the little all-caps line above everything. */
.bs-kicker {
  font: 700 10.5px var(--mono); letter-spacing: .22em;
  text-transform: uppercase; color: var(--dim);
}

/* =============================== INTRO ================================ */
/* Large light centered section intro — the conversational realty touch. */
.bs-intro { text-align: center; max-width: 780px; margin: 0 auto 26px; }
.bs-intro .bs-kicker { color: var(--accent); }
.bs-intro h2 {
  margin-top: 14px; font-weight: 300; letter-spacing: -.01em;
  font-size: clamp(28px, 4.6vw, 44px); line-height: 1.12; color: var(--text);
}
.bs-intro h2 b { font-weight: 750; }
.bs-intro h2 em { font-style: italic; font-family: Georgia, "Times New Roman", serif; color: var(--accent); }
.bs-intro p { color: var(--dim); margin-top: 14px; font-size: 16px; line-height: 1.65; }

/* ================================ CTA ================================= */
/* The big outlined button. .ghost for the quiet sibling. */
.bs-cta {
  display: inline-block; padding: 16px 34px; min-height: 44px;
  border: 1px solid var(--accent); border-radius: 8px; color: var(--accent);
  font: 700 13px var(--mono); text-transform: uppercase; letter-spacing: .14em;
  background: #00e5a00d; box-shadow: 0 0 24px #00e5a022, inset 0 0 14px #00e5a00e;
}
.bs-cta:hover { background: var(--accent-dim); box-shadow: 0 0 34px #00e5a03a; }
.bs-cta.ghost { border-color: var(--line); color: var(--dim); box-shadow: none; background: transparent; }
.bs-cta.ghost:hover { color: var(--text); border-color: var(--dim); }

/* ================================ HERO ================================ */
/* Cinematic layered header. Markup:
   <section class="bs-hero">
     <div class="bs-hero-layer bs-hero-cage" data-bs-plx=".10" aria-hidden="true"></div>
     <div class="bs-hero-layer bs-hero-grid" data-bs-plx=".16" aria-hidden="true"></div>
     <div class="bs-hero-layer bs-hero-shade" aria-hidden="true"></div>
     <div class="bs-hero-inner"> kicker / h1 / .bs-hero-sub / cta </div>
     <div class="bs-scrolldown" aria-hidden="true">scroll</div>
   </section> */
.bs-hero {
  position: relative; overflow: hidden; width: 100vw; margin-left: calc(50% - 50vw);
  min-height: min(88vh, 820px); display: flex; align-items: center;
  justify-content: center; text-align: center; padding: 120px 20px 100px;
  background: radial-gradient(1100px 520px at 50% -8%, #12303177, transparent 70%),
              radial-gradient(900px 480px at 82% 108%, #0e243855, transparent 70%),
              linear-gradient(180deg, #0a0e14 0%, #0b1119 55%, #0a0e14 100%);
}
/* A hero on a LANDING page has to introduce the page without burying it.
   .bs-hero-compact keeps the look but gets out of the way. */
.bs-hero-compact { min-height: min(46vh, 430px); padding: 62px 20px 54px; }
.bs-hero-layer { position: absolute; inset: -6% -2%; pointer-events: none; will-change: transform; }
/* the cage: reusable octagon wireframe + floor glow as a data-URI (accent
   green is baked in — data URIs can't read CSS vars) */
.bs-hero-cage {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 640' preserveAspectRatio='xMidYMid slice'%3E%3Cg transform='rotate(-2 600 360)' fill='none' stroke='%2300e5a0'%3E%3Cpolygon points='849,463 703,609 497,609 351,463 351,257 497,111 703,111 849,257' stroke-opacity='.13' stroke-width='10'/%3E%3Cpolygon points='849,463 703,609 497,609 351,463 351,257 497,111 703,111 849,257' stroke-opacity='.34' stroke-width='2'/%3E%3Cpolygon points='809,447 687,569 513,569 391,447 391,273 513,151 687,151 809,273' stroke-opacity='.09' stroke-width='1.5'/%3E%3C/g%3E%3Cellipse cx='600' cy='520' rx='430' ry='86' fill='%2300e5a0' fill-opacity='.055'/%3E%3Cg stroke='%2300e5a0' stroke-opacity='.15' stroke-width='2'%3E%3Cline x1='80' y1='600' x2='80' y2='612'/%3E%3Cline x1='160' y1='596' x2='160' y2='612'/%3E%3Cline x1='240' y1='602' x2='240' y2='612'/%3E%3Cline x1='960' y1='600' x2='960' y2='612'/%3E%3Cline x1='1040' y1='596' x2='1040' y2='612'/%3E%3Cline x1='1120' y1='602' x2='1120' y2='612'/%3E%3C/g%3E%3C/svg%3E");
  background-size: cover; background-position: center;
}
.bs-hero-grid {
  background: linear-gradient(#12202e55 1px, transparent 1px),
              linear-gradient(90deg, #12202e55 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(75% 65% at 50% 45%, #000 30%, transparent 100%);
  -webkit-mask-image: radial-gradient(75% 65% at 50% 45%, #000 30%, transparent 100%);
}
.bs-hero-shade {
  background: linear-gradient(180deg, #0a0e1488 0%, #0a0e1420 30%,
              #0a0e1444 68%, var(--bg) 98%);
}
.bs-hero-inner { position: relative; z-index: 3; max-width: 900px; width: 100%; }
.bs-hero .bs-kicker { color: var(--accent); font-size: 12px; letter-spacing: .34em; }
.bs-hero h1 {
  margin: 22px 0 10px; font-weight: 250; letter-spacing: -.02em;
  font-size: clamp(44px, 9vw, 100px); line-height: 1.0; color: var(--text);
}
.bs-hero h1 em {
  font-style: italic; font-family: Georgia, "Times New Roman", serif;
  font-weight: 400; color: var(--accent); text-shadow: 0 0 44px #00e5a055;
}
.bs-hero-sub {
  color: var(--dim); font-size: clamp(15px, 2vw, 19px); line-height: 1.6;
  max-width: 640px; margin: 18px auto 30px;
}
.bs-hero-sub b { color: var(--text); font-weight: 650; }
.bs-hero-sub .num { color: var(--accent); }
.bs-scrolldown {
  position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%);
  color: var(--dim); font: 600 10px var(--mono); letter-spacing: .3em;
  text-transform: uppercase; z-index: 3;
}
.bs-scrolldown::after {
  content: ""; display: block; width: 1px; height: 34px; margin: 8px auto 0;
  background: linear-gradient(var(--accent), transparent);
}

/* =============================== CARD ================================= */
/* Elevated panel — the building block for everything boxed. */
.bs-card {
  background: var(--panel); border: 1px solid var(--line);
  border-radius: 12px; padding: 22px 24px;
}

/* ============================== COUNTER =============================== */
/* Boxed big number. <div class="bs-counter"><b data-bs-count="97"
   data-bs-suffix="%">97%</b><span>label</span></div> — server renders the
   final value as text; JS only animates up to it. */
.bs-counters { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px;
               max-width: 900px; margin: 0 auto; }
@media (min-width: 760px) { .bs-counters { grid-template-columns: repeat(4, 1fr); } }
.bs-counter {
  text-align: center; padding: 30px 14px; background: var(--panel);
  border: 1px solid var(--line); border-radius: 12px;
}
.bs-counter b {
  display: block; font: 800 clamp(34px, 5vw, 52px)/1 var(--mono);
  color: var(--accent); text-shadow: 0 0 26px #00e5a033;
  font-variant-numeric: tabular-nums;
}
.bs-counter span {
  display: block; margin-top: 10px; color: var(--dim);
  font: 600 10.5px var(--mono); letter-spacing: .16em; text-transform: uppercase;
}
/* unboxed hero variant: a strip of live stats */
.bs-statstrip { display: flex; justify-content: center; gap: 20px 46px;
                flex-wrap: wrap; margin-top: 36px; }
.bs-stat b {
  display: block; font: 800 clamp(26px, 4vw, 40px)/1 var(--mono);
  color: var(--accent); text-shadow: 0 0 26px #00e5a033;
  font-variant-numeric: tabular-nums;
}
.bs-stat span {
  display: block; margin-top: 8px; color: var(--dim);
  font: 600 10.5px var(--mono); letter-spacing: .16em; text-transform: uppercase;
}
.bs-stat b.small { font-size: clamp(18px, 2.6vw, 26px); line-height: 1.5; }
/* centered row for a band's closing CTA */
.bs-ctarow { text-align: center; margin-top: 38px; }
/* centered narrow search (hero) */
.bs-herosearch { max-width: 460px; margin: 0 auto; }

/* =============================== METER ================================ */
/* Confidence meter. <div class="bs-meter"><i data-bs-w="72"></i></div>
   Width (0–100) fills on reveal; .lean = the softer blue call. */
.bs-meter { position: relative; height: 8px; border-radius: 4px;
            background: var(--panel2); overflow: hidden; }
.bs-meter i {
  position: absolute; inset: 0 auto 0 0; width: 0; border-radius: 4px;
  background: linear-gradient(90deg, #00e5a044, var(--accent));
  box-shadow: 0 0 12px #00e5a066;
}
.bs-meter.lean i { background: linear-gradient(90deg, #4aa8ff44, var(--blue));
                   box-shadow: 0 0 12px #4aa8ff55; }

/* ============================= DATE CHIP ============================== */
.bs-datechip {
  display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px;
  border: 1px solid var(--line); border-radius: 999px; margin-top: 18px;
  color: var(--dim); font: 600 12px var(--mono); letter-spacing: .12em;
  text-transform: uppercase;
}
.bs-datechip .dot { width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 10px var(--accent); }

/* ========================== CLICKABLE ROWS ============================ */
/* THE pattern for "every fight and pick is clickable": the ENTIRE card is
   one <a>, a chevron sits at the right edge, and a .bs-rowhint names the
   destination ("See the analysis"). Never nest another <a> inside. */
.bs-rows { display: grid; gap: 14px; max-width: 860px; margin: 0 auto; }
.bs-rowlink {
  position: relative; display: grid; grid-template-columns: 1fr auto 1fr;
  gap: 6px 14px; align-items: center; padding: 20px 46px 18px 24px;
  background: var(--panel); border: 1px solid var(--line); border-radius: 12px;
  color: var(--text);
}
.bs-rowlink::after {
  content: "\203A"; position: absolute; right: 18px; top: 50%;
  transform: translateY(-50%); font: 700 24px/1 var(--mono); color: var(--dim);
}
.bs-rowlink:hover, .bs-rowlink:focus-visible { border-color: var(--accent); background: #0f1720; }
.bs-rowlink:hover::after, .bs-rowlink:focus-visible::after {
  color: var(--accent); transform: translateY(-50%) translateX(3px); }
.bs-rowlink .wc { grid-column: 1 / -1; text-align: center; }
.bs-rowlink .fighter { font-size: clamp(16px, 2.6vw, 21px); font-weight: 650; line-height: 1.2; }
.bs-rowlink .fighter.a { text-align: right; }
.bs-rowlink .fighter.b { text-align: left; }
.bs-rowlink .fighter.won { color: var(--accent); }
.bs-rowlink .vs { color: var(--dim); font: 800 12px var(--mono); letter-spacing: .1em; }
.bs-rowlink .result-line { grid-column: 1 / -1; text-align: center; color: var(--dim);
                           font: 12.5px var(--mono); margin-top: 4px; }
.bs-rowlink .result-line b { color: var(--accent); }
.bs-rowhint {
  grid-column: 1 / -1; text-align: center; margin-top: 10px;
  font: 700 10.5px var(--mono); letter-spacing: .18em; text-transform: uppercase;
  color: var(--dim); opacity: .75;
}
.bs-rowlink:hover .bs-rowhint, .bs-rowlink:focus-visible .bs-rowhint {
  color: var(--accent); opacity: 1; }

/* ============================ LINK CARDS ============================== */
/* Grid of big destination cards (whole card is the link). */
.bs-linkgrid { display: grid; gap: 14px; max-width: 1000px; margin: 0 auto;
               grid-template-columns: 1fr; }
@media (min-width: 700px) { .bs-linkgrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 980px) { .bs-linkgrid { grid-template-columns: repeat(3, 1fr); } }
a.bs-linkcard { display: block; position: relative; padding: 26px 48px 24px 26px;
                color: var(--text); }
.bs-linkcard .bs-kicker { color: var(--accent); }
.bs-linkcard h3 { font-size: 19px; font-weight: 700; letter-spacing: -.01em;
                  margin: 10px 0 8px; }
.bs-linkcard p { color: var(--dim); font-size: 13.5px; line-height: 1.6; }
.bs-linkcard::after {
  content: "\203A"; position: absolute; right: 20px; top: 28px;
  font: 700 24px/1 var(--mono); color: var(--dim);
}
a.bs-linkcard:hover, a.bs-linkcard:focus-visible { border-color: var(--accent); background: #0f1720; }
a.bs-linkcard:hover::after, a.bs-linkcard:focus-visible::after { color: var(--accent); }

/* ===================== MOTION (all of it, gated) ====================== */
@media (prefers-reduced-motion: no-preference) {
  /* .bs-js is stamped by an inline <script> in base.html <head>; without JS
     the page renders fully visible — reveals can never hide content */
  .bs-js .bs-reveal { opacity: 0; transform: translateY(26px);
                      transition: opacity .7s ease, transform .7s ease; }
  .bs-js .bs-reveal.in { opacity: 1; transform: none; }
  .bs-reveal.d1 { transition-delay: .08s; }
  .bs-reveal.d2 { transition-delay: .16s; }
  .bs-reveal.d3 { transition-delay: .24s; }
  .bs-meter i { transition: width 1.1s cubic-bezier(.2, .7, .2, 1); }
  .bs-rowlink, .bs-rowlink::after, .bs-rowhint,
  a.bs-linkcard, a.bs-linkcard::after {
    transition: border-color .25s, background .25s, color .25s,
                opacity .25s, transform .25s; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* ============================ SMALL SCREENS =========================== */
@media (max-width: 640px) {
  .bs-band { padding: 34px 16px; }
  .bs-hero { min-height: 62vh; padding: 60px 16px 52px; }
  /* A landing hero that fills the whole phone screen means the first thing a
     visitor sees is nothing they came for. Pages marked .bs-hero-compact get
     to the content inside one screen. */
  .bs-hero-compact { min-height: 0; padding: 34px 16px 30px; }
  .bs-hero-compact h1 { font-size: clamp(30px, 9vw, 42px); }
  .bs-hero-compact .bs-hero-sub { font-size: 14px; margin-top: 10px; }
  .bs-hero-compact .bs-statstrip { margin-top: 18px; gap: 14px 20px; }
  .bs-rowlink { grid-template-columns: 1fr; text-align: center;
                padding: 18px 16px 16px; }
  .bs-rowlink .fighter.a, .bs-rowlink .fighter.b { text-align: center; }
  .bs-rowlink .vs { text-align: center; }
  .bs-rowlink::after { display: none; } /* the hint carries the affordance */
  .bs-statstrip { gap: 18px 28px; }
}
