/* Team Site Engine - design skins + finish packs (docs/TEAM-ENGINE.md).
   Each [data-design]/[data-finish] block is a scoped skin; the upgraded
   designs (wave 1: classic, neon, editorial, swiss, stadium) also carry a
   LAYOUT section — structural CSS that rearranges the shared public pages
   (index + live) into a genuinely different site shape. Layout rules are
   tokens-only, scope roster card rules under #roster (live.html's video
   frame shares the .player class), and must leave .sq-grouped rosters
   (clubs) working. Served at /themes.css, linked by api/page.mjs only for
   teams that chose a layer; bump THEMES_VER in page.mjs on every change. */

/* === classic: Classic Ballpark === */
[data-design="classic"] #mainnav{border-bottom:2px solid color-mix(in srgb,var(--red) 40%,transparent)}
[data-design="classic"] #mainnav::after{background:var(--red);height:2px;opacity:.9}
[data-design="classic"] .navlinks a::after{background:var(--red);height:3px}
[data-design="classic"] .hero::after{background:var(--red);height:5px}
[data-design="classic"] .hero h1{letter-spacing:.02em;text-shadow:0 3px 0 color-mix(in srgb,var(--red) 55%,transparent),0 6px 30px rgba(0,0,0,.35)}
[data-design="classic"] .eyebrow{letter-spacing:.28em}
[data-design="classic"] .eyebrow::before{width:44px;height:3px;background:var(--red)}
[data-design="classic"] .hero-sub b{color:var(--chalk)}
[data-design="classic"] .stat,
[data-design="classic"] .player,
[data-design="classic"] .event,
[data-design="classic"] .spon-card2,
[data-design="classic"] .bracketbar{
  background:color-mix(in srgb,var(--ink) 94%,var(--chalk) 6%);
  border:1px solid var(--line);border-radius:6px;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--chalk) 8%,transparent),0 1px 2px rgba(0,0,0,.18);
}
[data-design="classic"] .stat::before,
[data-design="classic"] .player::before,
[data-design="classic"] .spon-card2::before{height:4px;background:var(--red)}
[data-design="classic"] .player .num{color:var(--red)}
[data-design="classic"] .sec-num{border-radius:5px;border:1.5px solid var(--red);color:var(--red);letter-spacing:.12em}
[data-design="classic"] .sec-head h2{letter-spacing:.02em}
[data-design="classic"] .sec-rule{height:2px;background:var(--line)}
[data-design="classic"] .sec-rule::after{background:var(--red);height:2px}
[data-design="classic"] .game{border-radius:5px}
[data-design="classic"] .game .opp{letter-spacing:.01em}
[data-design="classic"] .res.up{border-color:var(--red);color:var(--red);border-radius:4px}
[data-design="classic"] .btn{border-radius:5px;letter-spacing:.1em}
[data-design="classic"] .btn-primary{background:var(--red);border-color:var(--red-dim)}
[data-design="classic"] .btn-ghost{border-color:color-mix(in srgb,var(--red) 45%,var(--line))}
[data-design="classic"] .ticker{background:var(--red)}
[data-design="classic"] .tile{border-radius:5px}
[data-design="classic"] .cd-cell{border-radius:5px}
[data-design="classic"] .cd-cell::before{background:var(--red)}
[data-design="classic"] .spon-cta::before{background:var(--red)}
[data-design="classic"] .foot-col h4{color:var(--red)}
[data-design="classic"] footer{border-top:4px solid var(--red)}
[data-design="classic"] .livehead h1{letter-spacing:.02em}
/* --- classic LAYOUT: the printed program — the whole page centers on a
   spine like a game-day program: centered marquee hero, centered section
   heads with a short red rule, centered story column and sponsor plate --- */
[data-design="classic"] .hero-content{text-align:center}
[data-design="classic"] .hero .eyebrow{justify-content:center}
[data-design="classic"] .eyebrow::after{content:"";width:44px;height:3px;background:var(--red)}
[data-design="classic"] .hero-sub,
[data-design="classic"] .hero-cta{justify-content:center}
[data-design="classic"] .sec-head{flex-direction:column;align-items:center;text-align:center;gap:12px}
[data-design="classic"] .sec-rule{flex:none;width:76px;height:3px;background:var(--red);overflow:visible}
[data-design="classic"] .sec-rule::after{display:none}
[data-design="classic"] .about-intro{max-width:820px;margin-left:auto;margin-right:auto;text-align:center}
[data-design="classic"] .sched-intro{text-align:center;margin-left:auto;margin-right:auto}
[data-design="classic"] #roster .player{text-align:center}
[data-design="classic"] .stat{text-align:center}
[data-design="classic"] .event--feature .event-body{text-align:center}
[data-design="classic"] .event--feature .event-body p{margin-left:auto;margin-right:auto}
[data-design="classic"] .event--feature .event-actions{justify-content:center}
[data-design="classic"] .spon-cta{flex-direction:column;text-align:center;justify-content:center;gap:16px}
[data-design="classic"] .livehead{justify-content:center;text-align:center}

/* === neon: Neon Night === */
[data-design="neon"] #mainnav{border-bottom:1px solid color-mix(in srgb,var(--red) 55%,transparent);box-shadow:0 0 22px -6px rgba(var(--red-rgb,209,31,42),.5)}
[data-design="neon"] #mainnav::after{background:linear-gradient(90deg,transparent,var(--red),var(--accent),var(--red),transparent);box-shadow:0 0 14px rgba(var(--red-rgb,209,31,42),.8)}
[data-design="neon"] .navlinks a::after{background:var(--accent);box-shadow:0 0 8px var(--accent)}
[data-design="neon"] #progress{box-shadow:0 0 14px 2px rgba(var(--red-rgb,209,31,42),.9)}
[data-design="neon"] .hero h1{color:var(--chalk);text-shadow:0 0 6px rgba(var(--chalk-rgb,245,244,241),.5),0 0 22px rgba(var(--red-rgb,209,31,42),.75),0 0 46px rgba(var(--red-rgb,209,31,42),.5)}
[data-design="neon"] .hero h1 .red{color:var(--red);text-shadow:0 0 10px var(--red),0 0 30px rgba(var(--red-rgb,209,31,42),.8)}
[data-design="neon"] .hero::after{background:linear-gradient(90deg,var(--red),var(--accent));box-shadow:0 0 20px rgba(var(--red-rgb,209,31,42),.8)}
[data-design="neon"] .eyebrow{color:var(--accent);text-shadow:0 0 10px rgba(var(--accent-rgb,255,237,0),.6)}
[data-design="neon"] .stat,
[data-design="neon"] .player,
[data-design="neon"] .event,
[data-design="neon"] .spon-card2,
[data-design="neon"] .cd-cell,
[data-design="neon"] .bracketbar{
  background:color-mix(in srgb,var(--ink) 90%,var(--red) 4%);
  border:1px solid color-mix(in srgb,var(--red) 40%,var(--line));
  border-radius:10px;
  box-shadow:inset 0 0 18px -10px rgba(var(--red-rgb,209,31,42),.6),0 0 0 1px rgba(var(--red-rgb,209,31,42),.06);
}
[data-design="neon"] .player:hover,
[data-design="neon"] .stat:hover,
[data-design="neon"] .spon-card2:hover{box-shadow:0 0 26px -6px rgba(var(--red-rgb,209,31,42),.7),inset 0 0 22px -8px rgba(var(--red-rgb,209,31,42),.7);border-color:var(--red)}
[data-design="neon"] .player .num{color:var(--accent);text-shadow:0 0 14px rgba(var(--accent-rgb,255,237,0),.7)}
[data-design="neon"] .sec-num{border-color:var(--accent);color:var(--accent);box-shadow:0 0 12px -3px rgba(var(--accent-rgb,255,237,0),.6);text-shadow:0 0 8px rgba(var(--accent-rgb,255,237,0),.6)}
[data-design="neon"] .sec-head h2{text-shadow:0 0 18px rgba(var(--red-rgb,209,31,42),.45)}
[data-design="neon"] .sec-rule::after{background:var(--accent);box-shadow:0 0 12px var(--accent)}
[data-design="neon"] .btn{border-radius:9px}
[data-design="neon"] .btn-primary{background:transparent;color:var(--red);border:1px solid var(--red);box-shadow:0 0 16px -4px rgba(var(--red-rgb,209,31,42),.8),inset 0 0 12px -6px rgba(var(--red-rgb,209,31,42),.8);text-shadow:0 0 8px rgba(var(--red-rgb,209,31,42),.7)}
[data-design="neon"] .btn-primary:hover{background:rgba(var(--red-rgb,209,31,42),.15);box-shadow:0 0 26px -3px rgba(var(--red-rgb,209,31,42),.9)}
[data-design="neon"] .btn-ghost{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));color:var(--accent)}
[data-design="neon"] .res.up{border-color:var(--accent);color:var(--accent);box-shadow:0 0 10px -3px rgba(var(--accent-rgb,255,237,0),.6)}
[data-design="neon"] .tile{border-radius:8px}
[data-design="neon"] .tile:hover{box-shadow:0 0 20px -4px rgba(var(--red-rgb,209,31,42),.7);border-color:var(--red)}
[data-design="neon"] .ticker{background:var(--red);box-shadow:0 0 20px rgba(var(--red-rgb,209,31,42),.5)}
[data-design="neon"] .livehead h1 span{text-shadow:0 0 14px rgba(var(--red-rgb,209,31,42),.8)}
[data-design="neon"] footer{border-top:1px solid var(--red);box-shadow:0 0 24px -8px rgba(var(--red-rgb,209,31,42),.6)}
@media (prefers-reduced-motion:no-preference){
  [data-design="neon"] .hero h1 .red{animation:neonflick 5s ease-in-out infinite}
  @keyframes neonflick{0%,46%,49%,92%,94%,100%{opacity:1}47.5%{opacity:.72}93%{opacity:.6}}
}
/* --- neon LAYOUT: the split stage — hero copy floats mid-stage inside a lit
   frame, the story splits against a 2x2 stat block, the roster packs six
   across, the schedule runs down a glowing timeline, and the photo wall
   becomes a swipeable marquee reel --- */
/* the floating-stage hero only exists where the base overlay hero does —
   641-1099 PORTRAIT keeps the base's stacked whole-team-in-frame photo, so
   these rules must skip it (821+ landscape, or true desktop) */
@media (min-width:821px) and (orientation:landscape),(min-width:1100px){
  [data-design="neon"] .hero{align-items:center}
  [data-design="neon"] .hero-content{padding-bottom:0}
  /* content now floats mid-photo — deepen the scrim so copy stays readable */
  [data-design="neon"] .hero-img::after{background:linear-gradient(180deg,rgba(var(--black-rgb,10,10,11),0.66) 0%,rgba(var(--black-rgb,10,10,11),0.52) 55%,rgba(var(--black-rgb,10,10,11),0.92) 100%)}
  [data-design="neon"] .hero::before{content:"";position:absolute;inset:20px;z-index:2;pointer-events:none;
    border:1px solid rgba(var(--red-rgb,209,31,42),0.4);
    box-shadow:inset 0 0 44px -18px rgba(var(--red-rgb,209,31,42),0.55),0 0 30px -12px rgba(var(--red-rgb,209,31,42),0.5)}
}
@media(min-width:821px){
  [data-design="neon"] .about{display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:start}
  [data-design="neon"] .about-intro{margin-bottom:0}
  [data-design="neon"] .stats{grid-template-columns:1fr 1fr}
}
@media(min-width:1100px){
  [data-design="neon"] #roster .roster:not(.sq-grouped),
  [data-design="neon"] #roster .sq-group-grid{grid-template-columns:repeat(6,1fr)}
  [data-design="neon"] #roster .player{padding:20px 12px;text-align:center}
  [data-design="neon"] #roster .player .num{font-size:30px}
  [data-design="neon"] #roster .player .pname{font-size:15px;margin-top:10px}
}
[data-design="neon"] .sched-list{border-top:0;margin-left:5px;border-left:2px solid color-mix(in srgb,var(--red) 55%,var(--line));padding-left:26px}
[data-design="neon"] .game{overflow:visible}
[data-design="neon"] .game::after{content:"";position:absolute;left:-31px;top:50%;margin-top:-5px;width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 12px rgba(var(--red-rgb,209,31,42),0.9)}
[data-design="neon"] .gallery{display:flex;overflow-x:auto;gap:10px;padding:4px 4px 14px;scroll-snap-type:x mandatory;scrollbar-width:thin}
[data-design="neon"] .gallery .tile{flex:0 0 min(340px,74vw);width:min(340px,74vw);aspect-ratio:4/3;object-fit:cover;scroll-snap-align:center}
[data-design="neon"] body>div.wrap>.player{box-shadow:0 0 44px -14px rgba(var(--red-rgb,209,31,42),0.55);border-color:color-mix(in srgb,var(--red) 45%,var(--line))}

/* === mono: Minimal Mono === */
[data-design="mono"] #mainnav{border-bottom:1px solid var(--line)}
[data-design="mono"] #mainnav::after{background:var(--chalk);height:1px;opacity:.25}
[data-design="mono"] #progress{background:var(--chalk);box-shadow:none}
[data-design="mono"] .navlinks a::after{background:var(--chalk)}
[data-design="mono"] .hero::after{background:var(--chalk);opacity:.35;height:2px}
[data-design="mono"] .hero-img{filter:grayscale(1) contrast(1.04)}
[data-design="mono"] .hero h1{font-weight:600;letter-spacing:.04em;text-shadow:none}
[data-design="mono"] .hero h1 .red{color:var(--chalk)}
[data-design="mono"] .eyebrow{color:var(--steel);letter-spacing:.34em;font-weight:500}
[data-design="mono"] .eyebrow::before{background:var(--steel);width:52px;height:1px}
[data-design="mono"] .hero-sub .sep{background:var(--steel)}
[data-design="mono"] .sec-num{border:1px solid var(--line);color:var(--steel);border-radius:0;font-weight:500;letter-spacing:.16em}
[data-design="mono"] .sec-head{margin-bottom:56px}
[data-design="mono"] .sec-head h2{font-weight:600;letter-spacing:.03em}
[data-design="mono"] .sec-rule{background:var(--line)}
[data-design="mono"] .sec-rule::after{background:var(--steel)}
[data-design="mono"] .stat,
[data-design="mono"] .player,
[data-design="mono"] .event,
[data-design="mono"] .spon-card2,
[data-design="mono"] .cd-cell,
[data-design="mono"] .bracketbar{background:transparent;border:1px solid var(--line);border-radius:0;box-shadow:none}
[data-design="mono"] .stat::before,
[data-design="mono"] .player::before,
[data-design="mono"] .spon-card2::before,
[data-design="mono"] .event::before,
[data-design="mono"] .game::before,
[data-design="mono"] .cd-cell::before{background:var(--chalk);opacity:.5}
[data-design="mono"] .stat .n span,
[data-design="mono"] .game .date .day,
[data-design="mono"] .game .opp .vs{color:var(--steel)}
[data-design="mono"] .player .num{color:var(--chalk);font-weight:600}
[data-design="mono"] .player:hover .num{text-shadow:none}
[data-design="mono"] .game{border-radius:0}
[data-design="mono"] .res.up{color:var(--chalk);border-color:var(--line);border-radius:0}
[data-design="mono"] .tile{filter:grayscale(1) brightness(.96);border-radius:0}
[data-design="mono"] .tile:hover{filter:grayscale(1) brightness(1.04);border-color:var(--steel)}
[data-design="mono"] .btn{border-radius:0;letter-spacing:.14em}
[data-design="mono"] .btn-primary{background:var(--chalk);color:var(--black);border-color:var(--chalk)}
[data-design="mono"] .btn-primary:hover{background:var(--steel);color:var(--black);box-shadow:none}
[data-design="mono"] .btn-ghost{border-color:var(--line);color:var(--chalk)}
[data-design="mono"] .btn-ghost:hover{border-color:var(--chalk);color:var(--chalk)}
[data-design="mono"] .ticker{background:transparent;color:var(--chalk);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
[data-design="mono"] .foot-col h4{color:var(--steel)}
[data-design="mono"] footer{border-top:1px solid var(--line)}
[data-design="mono"] .livehead h1 span{color:var(--chalk)}
/* --- mono LAYOUT: the typographic cover — the hero drops its photo entirely
   for huge quiet type on the page ground; section heads invert to tiny
   overlines; stats are bare numerals; the roster is airy text rows; photos
   step back to two large grayscale frames per row --- */
[data-design="mono"] .hero{display:flex;align-items:center;min-height:82vh;padding-top:88px}
[data-design="mono"] .hero-img{display:none}
[data-design="mono"] .hero-content{padding-bottom:64px;padding-top:0;margin-top:0;text-align:left}
[data-design="mono"] .hero h1{font-size:clamp(64px,15vw,210px)}
[data-design="mono"] .hero-sub{flex-direction:column;align-items:flex-start;gap:8px;border-top:1px solid var(--line);padding-top:18px;margin-top:26px}
[data-design="mono"] .hero-sub .sep{display:none}
[data-design="mono"] .hero-cta{justify-content:flex-start}
[data-design="mono"] .scroll-cue{display:none}
[data-design="mono"] .sec-head{display:block;border-bottom:1px solid var(--line);padding-bottom:12px}
[data-design="mono"] .sec-num{display:inline-block;border:0;padding:0;margin-right:14px}
[data-design="mono"] .sec-head h2{display:inline;font-size:15px;letter-spacing:0.3em;color:var(--steel);font-weight:500}
[data-design="mono"] .sec-rule{display:none}
[data-design="mono"] .about-intro{max-width:680px}
[data-design="mono"] .sched-intro{max-width:680px}
[data-design="mono"] .stats{display:flex;flex-wrap:wrap;gap:28px 64px}
[data-design="mono"] .stat{background:none;border:0;border-radius:0;box-shadow:none;padding:0}
[data-design="mono"] .stat::before{display:none}
[data-design="mono"] .stat:hover{background:none;transform:none}
[data-design="mono"] #roster .roster:not(.sq-grouped),
[data-design="mono"] #roster .sq-group-grid{display:grid;grid-template-columns:1fr;gap:0}
@media(min-width:641px){
  [data-design="mono"] #roster .roster:not(.sq-grouped),
  [data-design="mono"] #roster .sq-group-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
}
@media(min-width:1100px){
  [data-design="mono"] #roster .roster:not(.sq-grouped),
  [data-design="mono"] #roster .sq-group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
[data-design="mono"] #roster .player{display:flex;flex-direction:row;align-items:center;gap:12px;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px 2px;text-align:left}
[data-design="mono"] #roster .player::before{display:none}
[data-design="mono"] #roster .player:hover{background:none;transform:none}
[data-design="mono"] #roster .player .pphoto{width:36px;height:36px;aspect-ratio:1;border-radius:50%;margin:0;flex:none;object-fit:cover;filter:grayscale(1)}
[data-design="mono"] #roster .player .num{order:0;font-size:13px;font-weight:500;color:var(--steel);min-width:30px}
[data-design="mono"] #roster .player .pname{order:1;font-size:16px;margin-top:0;font-weight:500;white-space:normal;overflow:visible}
[data-design="mono"] #roster .player .pos{order:2;margin-top:0;margin-left:auto}
[data-design="mono"] .game{padding:26px 4px}
[data-design="mono"] .gallery{grid-template-columns:1fr 1fr;gap:22px}
[data-design="mono"] .livehead h1{font-weight:600}

/* === blocks: Bold Blocks === */
[data-design="blocks"] #mainnav{border-bottom:4px solid var(--red)}
[data-design="blocks"] #mainnav::after{display:none}
[data-design="blocks"] .navlinks a::after{height:4px;background:var(--red)}
[data-design="blocks"] .hero::after{height:10px;background:var(--red)}
[data-design="blocks"] .hero h1{font-weight:800;letter-spacing:-.01em;text-shadow:5px 5px 0 var(--red)}
[data-design="blocks"] .eyebrow{color:var(--red);font-weight:800;letter-spacing:.16em}
[data-design="blocks"] .eyebrow::before{width:40px;height:6px;background:var(--red)}
[data-design="blocks"] .sec-num{background:var(--red);color:var(--chalk);border:0;border-radius:0;font-weight:700}
[data-design="blocks"] .sec-head h2{font-weight:800;letter-spacing:-.01em}
[data-design="blocks"] .sec-rule{height:6px;background:var(--chalk);opacity:.9}
[data-design="blocks"] .sec-rule::after{background:var(--red);width:120px}
[data-design="blocks"] .stat{background:var(--red);border:0;border-radius:0}
[data-design="blocks"] .stat:nth-child(2n){background:var(--ink);border:4px solid var(--red)}
[data-design="blocks"] .stat .n,
[data-design="blocks"] .stat .n span,
[data-design="blocks"] .stat .l{color:var(--chalk)}
[data-design="blocks"] .stat:nth-child(2n) .n span{color:var(--red)}
[data-design="blocks"] .stat::before{display:none}
[data-design="blocks"] .player{background:var(--ink);border:4px solid var(--red);border-radius:0}
[data-design="blocks"] .player::before{height:0}
[data-design="blocks"] .player .num{color:var(--red);font-weight:800}
[data-design="blocks"] .player .pname{font-weight:700}
[data-design="blocks"] .player--join{border:4px dashed var(--red)}
[data-design="blocks"] .game{border-radius:0;border-bottom:3px solid var(--line)}
[data-design="blocks"] .game::before{width:8px;background:var(--red)}
[data-design="blocks"] .game .opp{font-weight:800}
[data-design="blocks"] .res.up{background:var(--red);color:var(--chalk);border:0;border-radius:0;font-weight:800}
[data-design="blocks"] .event,
[data-design="blocks"] .spon-card2,
[data-design="blocks"] .bracketbar{border:4px solid var(--red);border-radius:0;background:var(--ink)}
[data-design="blocks"] .event::before{width:10px}
[data-design="blocks"] .spon-card2::before{display:none}
[data-design="blocks"] .tile{border:3px solid var(--red);border-radius:0}
[data-design="blocks"] .btn{border-radius:0;font-weight:800;letter-spacing:.08em;border-width:3px}
[data-design="blocks"] .btn-primary{background:var(--red);border:3px solid var(--red);color:var(--chalk);box-shadow:5px 5px 0 color-mix(in srgb,var(--chalk) 22%,transparent)}
[data-design="blocks"] .btn-primary:hover{background:var(--red-dim);box-shadow:2px 2px 0 color-mix(in srgb,var(--chalk) 22%,transparent)}
[data-design="blocks"] .btn-ghost{border:3px solid var(--chalk);color:var(--chalk);background:transparent}
[data-design="blocks"] .btn-ghost:hover{background:var(--red);border-color:var(--red);color:var(--chalk)}
[data-design="blocks"] .ticker{background:var(--red);border-top:5px solid var(--chalk);border-bottom:5px solid var(--chalk)}
[data-design="blocks"] .cd-cell{border:3px solid var(--red);border-radius:0;background:var(--ink)}
[data-design="blocks"] .cd-cell::before{height:6px}
[data-design="blocks"] footer{border-top:10px solid var(--red)}
[data-design="blocks"] .foot-col h4{color:var(--red);font-weight:700}
[data-design="blocks"] .livehead h1{font-weight:800;text-shadow:4px 4px 0 var(--red)}
/* --- blocks LAYOUT: hard poster panels — the hero copy lives in a bordered
   slab sitting on the photo, full-bleed ink bands with thick red tops break
   the page into poster sections, the roster runs an irregular chunky grid,
   and games stack as bordered slabs with giant dates --- */
[data-design="blocks"] .hero-content{max-width:660px;margin-left:max(28px,calc(50% - 590px));margin-right:auto;background:var(--black);border:4px solid var(--chalk);box-shadow:14px 14px 0 var(--red);padding:38px 42px 42px;margin-bottom:72px}
@media(max-width:640px){
  [data-design="blocks"] .hero-content{margin:0 16px 26px;max-width:none;width:auto;padding:26px 22px 28px;box-shadow:8px 8px 0 var(--red)}
}
@media(min-width:641px) and (max-width:1099px) and (orientation:portrait){
  [data-design="blocks"] .hero-content{margin:-40px auto 48px;max-width:calc(100% - 56px)}
}
[data-design="blocks"] #about::before,
[data-design="blocks"] #roster::before,
[data-design="blocks"] #sponsors::before{content:"";position:absolute;top:0;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);background:var(--ink);border-top:8px solid var(--red);z-index:-1;opacity:1;pointer-events:none}
[data-design="blocks"] .sec-head h2{background:var(--red);color:var(--chalk);padding:4px 18px 6px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
[data-design="blocks"] .sec-rule{display:none}
@media(min-width:821px){
  [data-design="blocks"] .stats{grid-template-columns:1fr 1fr;gap:14px}
  [data-design="blocks"] .stat{padding:52px 40px}
  [data-design="blocks"] .stat .n{font-size:clamp(40px,5.5vw,84px)}
  [data-design="blocks"] #roster .roster:not(.sq-grouped),
  [data-design="blocks"] #roster .sq-group-grid{gap:14px}
  [data-design="blocks"] #roster .player:nth-child(5n+1):not(.player--join){grid-column:span 2}
}
[data-design="blocks"] .sched-list{border-top:0}
[data-design="blocks"] .game{grid-template-columns:150px 1fr auto auto;border:3px solid var(--chalk);margin-bottom:14px;padding:20px 22px}
[data-design="blocks"] .game::before{width:10px}
[data-design="blocks"] .game:hover{padding-left:22px}
[data-design="blocks"] .game .date{font-size:24px}
@media(max-width:820px){
  [data-design="blocks"] .game{grid-template-columns:auto 1fr;padding:16px}
  [data-design="blocks"] .game:hover{padding-left:16px}
  [data-design="blocks"] .game .date{font-size:18px}
}
[data-design="blocks"] .gallery{grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:820px){[data-design="blocks"] .gallery{grid-template-columns:repeat(2,1fr)}}
[data-design="blocks"] .gallery .tile{aspect-ratio:1;object-fit:cover}
[data-design="blocks"] .gallery .tile:hover{box-shadow:8px 8px 0 var(--red);transform:none}

/* === press: Vintage Press === */
[data-design="press"] #mainnav{border-bottom:2px solid var(--red)}
[data-design="press"] #mainnav::after{background:var(--red);height:2px;opacity:.5}
[data-design="press"] .hero-img{filter:sepia(.32) contrast(1.02) brightness(.96)}
[data-design="press"] .hero::after{background:var(--red);height:4px}
[data-design="press"] .hero h1{font-weight:700;letter-spacing:.01em;text-shadow:1px 1px 0 rgba(0,0,0,.35),-1px -1px 0 rgba(var(--chalk-rgb,245,244,241),.12)}
[data-design="press"] .eyebrow{font-style:italic;letter-spacing:.24em;color:var(--red)}
[data-design="press"] .eyebrow::before{background:var(--red);width:38px}
[data-design="press"] .sec-head{border-bottom:3px double color-mix(in srgb,var(--red) 60%,var(--line))}
[data-design="press"] .sec-num{border:2px solid var(--red);color:var(--red);border-radius:0;font-style:italic;letter-spacing:.1em}
[data-design="press"] .sec-head h2{font-weight:700;letter-spacing:.02em;text-shadow:1px 1px 0 rgba(0,0,0,.22)}
[data-design="press"] .sec-rule{background:color-mix(in srgb,var(--red) 45%,var(--line))}
[data-design="press"] .sec-rule::after{background:var(--red)}
[data-design="press"] .stat,
[data-design="press"] .player,
[data-design="press"] .event,
[data-design="press"] .spon-card2,
[data-design="press"] .cd-cell,
[data-design="press"] .bracketbar{
  background:color-mix(in srgb,var(--ink) 90%,var(--chalk) 10%);
  border:1px solid color-mix(in srgb,var(--red) 30%,var(--line));
  border-radius:2px;
  box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--chalk) 5%,transparent),inset 0 0 44px -20px rgba(0,0,0,.4);
}
[data-design="press"] .stat::before,
[data-design="press"] .player::before,
[data-design="press"] .spon-card2::before{background:var(--red);height:2px}
[data-design="press"] .stat .n,
[data-design="press"] .cd-cell b,
[data-design="press"] .livehead h1{font-weight:700}
[data-design="press"] .player .num{color:var(--red);font-weight:700}
[data-design="press"] .player .pname,
[data-design="press"] .game .opp{letter-spacing:.04em}
[data-design="press"] .game{border-radius:0;border-bottom:1px solid color-mix(in srgb,var(--red) 22%,var(--line))}
[data-design="press"] .game::before{background:var(--red);width:2px}
[data-design="press"] .res.up{border:1px solid var(--red);color:var(--red);border-radius:0;font-style:italic}
[data-design="press"] .tile{filter:sepia(.28) contrast(1.02);border-radius:2px;border-color:color-mix(in srgb,var(--red) 25%,var(--line))}
[data-design="press"] .btn{border-radius:2px;letter-spacing:.12em}
[data-design="press"] .btn-primary{background:var(--red);border:1px solid var(--red-dim);color:var(--chalk);box-shadow:inset 0 1px 0 rgba(var(--chalk-rgb,245,244,241),.18),0 1px 2px rgba(0,0,0,.3)}
[data-design="press"] .btn-ghost{border:1px solid color-mix(in srgb,var(--red) 45%,var(--line));color:var(--red)}
[data-design="press"] .ticker{background:var(--red);border-top:1px solid rgba(0,0,0,.3);border-bottom:1px solid rgba(0,0,0,.3)}
[data-design="press"] .ticker-seq{letter-spacing:.2em;font-style:italic}
[data-design="press"] .foot-col h4{font-style:italic;color:var(--red)}
[data-design="press"] footer{border-top:3px double var(--red)}
/* --- press LAYOUT: the program cover — the photo runs FIRST as a framed
   plate, the ornamental title page sits beneath it, story text sets
   centered-lede-over-justified-body, roster cards wear inner plate frames,
   and photos hang as matted plates --- */
[data-design="press"] .hero{min-height:0;display:flex;flex-direction:column;padding-top:clamp(84px,11vw,132px)}
[data-design="press"] .hero-img{order:1;position:relative;inset:auto;width:min(100% - 56px,1124px);margin:0 auto;aspect-ratio:1860/1091;animation:none;border:1px solid color-mix(in srgb,var(--red) 35%,var(--line));outline:3px double color-mix(in srgb,var(--red) 45%,var(--line));outline-offset:6px}
[data-design="press"] .hero-img::after{display:none}
[data-design="press"] .hero-content{order:2;margin-top:0;padding:44px 28px 56px;text-align:center}
[data-design="press"] .hero .eyebrow{justify-content:center}
[data-design="press"] .eyebrow::after{content:"";width:38px;height:2px;background:var(--red)}
[data-design="press"] .hero h1{font-size:clamp(50px,9vw,120px)}
[data-design="press"] .hero-sub,
[data-design="press"] .hero-cta{justify-content:center}
[data-design="press"] .scroll-cue{display:none}
[data-design="press"] .sec-head{flex-direction:column;align-items:center;text-align:center;gap:10px;padding-bottom:16px}
[data-design="press"] .sec-rule{display:none}
[data-design="press"] .about-intro{max-width:none}
[data-design="press"] .about .about-lead{text-align:center;font-style:italic;max-width:760px;margin-left:auto;margin-right:auto}
[data-design="press"] .about p:not(.about-lead){max-width:700px;margin-left:auto;margin-right:auto;text-align:justify}
[data-design="press"] .stats{max-width:960px;margin-left:auto;margin-right:auto}
@media(min-width:821px){
  [data-design="press"] #roster .roster:not(.sq-grouped),
  [data-design="press"] #roster .sq-group-grid{grid-template-columns:repeat(3,1fr);gap:14px}
  [data-design="press"] #roster .player{text-align:center;padding:30px 22px}
}
[data-design="press"] #roster .player{outline:1px solid color-mix(in srgb,var(--red) 25%,var(--line));outline-offset:-6px}
[data-design="press"] .sched-intro{text-align:center;margin-left:auto;margin-right:auto;font-style:italic}
[data-design="press"] .game{padding:14px 4px}
[data-design="press"] .game .opp{font-size:20px}
[data-design="press"] .gallery{grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:820px){[data-design="press"] .gallery{grid-template-columns:repeat(2,1fr);gap:14px}}
[data-design="press"] .gallery .tile{border:9px solid color-mix(in srgb,var(--chalk) 7%,var(--ink));outline:1px solid color-mix(in srgb,var(--red) 25%,var(--line));border-radius:0;aspect-ratio:4/3;object-fit:cover}
[data-design="press"] .livehead{justify-content:center;text-align:center}

/* === glass: Glass === */
[data-design="glass"] nav#mainnav{
  background:color-mix(in srgb, var(--ink) 55%, transparent);
  backdrop-filter:blur(18px) saturate(1.3);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);
  border-bottom:1px solid rgba(var(--chalk-rgb,245,244,241),0.12);
}
/* the blur above outranks index.html's mobile nav.open escape hatch and would
   re-anchor the fixed .navlinks overlay to the bar — drop it while open too */
[data-design="glass"] nav#mainnav.open{backdrop-filter:none;-webkit-backdrop-filter:none}
[data-design="glass"] .stat,
[data-design="glass"] .player,
[data-design="glass"] .event,
[data-design="glass"] .spon-card2,
[data-design="glass"] .spon-cta,
[data-design="glass"] .cd-strip,
[data-design="glass"] .bracketbar,
[data-design="glass"] .strip{
  background:color-mix(in srgb, var(--ink) 46%, transparent);
  backdrop-filter:blur(16px) saturate(1.25);
  -webkit-backdrop-filter:blur(16px) saturate(1.25);
  border:1px solid rgba(var(--chalk-rgb,245,244,241),0.14);
  border-radius:18px;
  box-shadow:0 12px 40px rgba(0,0,0,0.28), inset 0 1px 0 rgba(var(--chalk-rgb,245,244,241),0.10);
}
[data-design="glass"] .cd-cell{
  background:color-mix(in srgb, var(--ink) 38%, transparent);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(var(--chalk-rgb,245,244,241),0.14);
  border-radius:14px;
}
[data-design="glass"] .btn{border-radius:999px}
[data-design="glass"] .btn-ghost{
  background:color-mix(in srgb, var(--chalk) 8%, transparent);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-color:rgba(var(--chalk-rgb,245,244,241),0.22);
}
[data-design="glass"] .btn-primary{box-shadow:0 8px 30px rgba(var(--red-rgb,209,31,42),0.35)}
[data-design="glass"] .sec-num{
  background:color-mix(in srgb, var(--ink) 40%, transparent);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border-radius:999px;
}
[data-design="glass"] .prof-card,
[data-design="glass"] .glb img{
  border-radius:20px;
  border:1px solid rgba(var(--chalk-rgb,245,244,241),0.16);
}
[data-design="glass"] .gallery .tile{border-radius:14px}
[data-design="glass"] .hero-content{border-radius:20px}
[data-design="glass"] .hero h1{
  text-shadow:0 4px 40px rgba(0,0,0,0.5), 0 0 60px rgba(var(--chalk-rgb,245,244,241),0.06);
}
@media (prefers-reduced-motion: no-preference){
  [data-design="glass"] .stat,[data-design="glass"] .player,
  [data-design="glass"] .spon-card2,[data-design="glass"] .bracketbar{
    transition:background .3s ease, box-shadow .3s ease, border-color .3s ease;
  }
  [data-design="glass"] .stat:hover,[data-design="glass"] .player:hover,
  [data-design="glass"] .spon-card2:hover{
    box-shadow:0 18px 50px rgba(0,0,0,0.34), inset 0 1px 0 rgba(var(--chalk-rgb,245,244,241),0.16);
    border-color:rgba(var(--chalk-rgb,245,244,241),0.24);
  }
}
/* --- glass LAYOUT: the fixed backdrop — the team photo pins to the viewport
   behind everything and every section floats over it as a frosted panel with
   the photo showing through the gaps. transform:none is load-bearing: any
   transform on .hero-img would re-anchor position:fixed to the hero --- */
[data-design="glass"] .hero-img{position:fixed;inset:0;z-index:-1;animation:none;transform:none;width:auto;aspect-ratio:auto;margin:0}
[data-design="glass"] .hero-img::after{background:linear-gradient(180deg,rgba(var(--black-rgb,10,10,11),0.5) 0%,rgba(var(--black-rgb,10,10,11),0.34) 45%,rgba(var(--black-rgb,10,10,11),0.72) 100%)}
[data-design="glass"] .hero{min-height:94vh;display:flex;align-items:flex-end;padding-top:0;background:transparent}
[data-design="glass"] .hero-content{margin-top:0}
[data-design="glass"] section.wrap{background:color-mix(in srgb,var(--ink) 56%,transparent);
  backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);
  border:1px solid rgba(var(--chalk-rgb,245,244,241),0.13);border-radius:26px;
  width:min(1180px,100% - 28px);margin:26px auto;
  padding:52px clamp(20px,4vw,48px)}
[data-design="glass"] .cd-strip,
[data-design="glass"] .ticker{background:color-mix(in srgb,var(--ink) 62%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
[data-design="glass"] footer{background:color-mix(in srgb,var(--black) 72%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);margin-top:0}
[data-design="glass"] .stat,
[data-design="glass"] #roster .player,
[data-design="glass"] .event,
[data-design="glass"] .spon-card2{background:color-mix(in srgb,var(--ink) 62%,transparent)}
[data-design="glass"] body>div.wrap>.player{border-radius:18px;overflow:hidden}
/* the OBS ?clean=1 feed + sideways-phone theater pin the player full-bleed —
   the rounded frame must not clip those (same guard as stadium's margin) */
[data-design="glass"] body.clean>div.wrap>.player{border-radius:0}
@media (orientation:landscape) and (max-height:540px){
  [data-design="glass"] body.videolive>div.wrap>.player{border-radius:0}
}
[data-design="glass"] .strip{border-radius:18px}

/* === brutal: Brutalist === */
[data-design="brutal"] .stat,
[data-design="brutal"] .player,
[data-design="brutal"] .event,
[data-design="brutal"] .spon-card2,
[data-design="brutal"] .spon-cta,
[data-design="brutal"] .cd-cell,
[data-design="brutal"] .cd-strip,
[data-design="brutal"] .bracketbar,
[data-design="brutal"] .strip,
[data-design="brutal"] .prof-card{
  background:var(--ink);
  border:3px solid var(--chalk);
  border-radius:0;
  box-shadow:8px 8px 0 var(--red);
}
[data-design="brutal"] .btn{
  border-radius:0;
  border:3px solid var(--chalk);
  box-shadow:5px 5px 0 var(--red);
  text-transform:uppercase;
  letter-spacing:0.04em;
  font-weight:700;
  transition:box-shadow .12s steps(2);
}
[data-design="brutal"] .btn-primary{background:var(--red);color:var(--chalk);border-color:var(--chalk)}
[data-design="brutal"] .btn-ghost{background:var(--ink);color:var(--chalk)}
[data-design="brutal"] .btn:active{box-shadow:2px 2px 0 var(--red)}
[data-design="brutal"] nav#mainnav{
  background:var(--black);
  border-bottom:4px solid var(--chalk);
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
[data-design="brutal"] nav#mainnav::after{background:var(--red);height:0}
[data-design="brutal"] .navlinks a{text-transform:uppercase;letter-spacing:0.04em;font-weight:600}
[data-design="brutal"] .sec-num{
  border:3px solid var(--chalk);
  border-radius:0;
  color:var(--chalk);
  background:var(--red);
  letter-spacing:0.06em;
}
[data-design="brutal"] .sec-head h2{letter-spacing:-0.01em}
[data-design="brutal"] .sec-rule{background:var(--chalk)}
[data-design="brutal"] .sec-rule::after{background:var(--red)}
[data-design="brutal"] .hero h1{text-shadow:6px 6px 0 var(--red)}
[data-design="brutal"] .gallery .tile{
  border:3px solid var(--chalk);
  border-radius:0;
  filter:grayscale(0.2) contrast(1.08);
}
[data-design="brutal"] .gallery .tile:hover{box-shadow:6px 6px 0 var(--red)}
[data-design="brutal"] .game{border-radius:0;border-bottom:2px solid var(--chalk)}
[data-design="brutal"] .res{border-radius:0}
[data-design="brutal"] .stat::before,
[data-design="brutal"] .player::before,
[data-design="brutal"] .spon-card2::before,
[data-design="brutal"] .cd-cell::before{background:var(--red);opacity:1}
@media (prefers-reduced-motion: reduce){
  [data-design="brutal"] .btn{transition:none}
}
/* --- brutal LAYOUT: the raw stack — a headline too big for the page, giant
   outlined section numbers against right-set titles over thick bars, a hard
   50/50 story split with slab stats, and a bare index-table roster --- */
[data-design="brutal"] .hero h1{font-size:clamp(88px,21vw,280px);line-height:0.78;letter-spacing:-0.02em;margin-left:-0.04em}
[data-design="brutal"] .scroll-cue{display:none}
[data-design="brutal"] .sec-head{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:0 22px;border-bottom:6px solid var(--chalk);padding-bottom:10px}
[data-design="brutal"] .sec-num{font-size:clamp(56px,7vw,110px);line-height:0.8;border:0;background:transparent;padding:0;color:transparent;-webkit-text-stroke:2.5px var(--red);letter-spacing:0;align-self:end}
[data-design="brutal"] .sec-head h2{font-size:clamp(34px,6.5vw,84px);justify-self:end;text-align:right}
[data-design="brutal"] .sec-rule{display:none}
@media(min-width:821px){
  [data-design="brutal"] .about{display:grid;grid-template-columns:1.15fr 1fr;gap:0}
  [data-design="brutal"] .about-intro{margin-bottom:0;border-right:3px solid var(--chalk);padding-right:44px}
  [data-design="brutal"] .stats{grid-template-columns:1fr;gap:14px;padding-left:44px}
}
[data-design="brutal"] #roster .roster:not(.sq-grouped),
[data-design="brutal"] #roster .sq-group-grid{display:grid;grid-template-columns:1fr;gap:0;border-bottom:3px solid var(--chalk)}
@media(min-width:641px){
  [data-design="brutal"] #roster .roster:not(.sq-grouped),
  [data-design="brutal"] #roster .sq-group-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px}
}
[data-design="brutal"] #roster .player{display:flex;flex-direction:row;align-items:center;gap:14px;background:transparent;border:0;border-top:3px solid var(--chalk);border-radius:0;box-shadow:none;padding:16px 2px;text-align:left}
[data-design="brutal"] #roster .player::before{display:none}
[data-design="brutal"] #roster .player:hover{background:var(--ink);transform:none}
[data-design="brutal"] #roster .player .pphoto{width:52px;height:52px;aspect-ratio:1;border-radius:0;margin:0;flex:none;object-fit:cover;filter:grayscale(0.2) contrast(1.08)}
[data-design="brutal"] #roster .player .pname{order:1;font-size:21px;margin-top:0;white-space:normal;overflow:visible}
[data-design="brutal"] #roster .player .pos{order:1;margin-top:0}
[data-design="brutal"] #roster .player .num{order:2;margin-left:auto;font-size:34px;color:transparent;-webkit-text-stroke:2px var(--red)}
[data-design="brutal"] .sched-list{border-top:0}
@media(min-width:821px){
  [data-design="brutal"] .game{grid-template-columns:auto 1fr auto auto;border-bottom:3px solid var(--chalk);padding:20px 4px}
  [data-design="brutal"] .game::before{display:none}
  [data-design="brutal"] .game:hover{padding-left:4px;background:var(--ink)}
  [data-design="brutal"] .game .date{font-size:clamp(20px,2.4vw,32px)}
}
[data-design="brutal"] .gallery{grid-template-columns:1fr 1fr;gap:18px}

/* === deco: Art Deco === */
[data-design="deco"] .sec-head h2,
[data-design="deco"] .hero h1,
[data-design="deco"] .foot-brand{letter-spacing:0.08em}
[data-design="deco"] .stat,
[data-design="deco"] .player,
[data-design="deco"] .event,
[data-design="deco"] .spon-card2,
[data-design="deco"] .cd-cell,
[data-design="deco"] .cd-strip,
[data-design="deco"] .bracketbar,
[data-design="deco"] .prof-card{
  background:var(--ink);
  border:1px solid color-mix(in srgb, var(--accent) 55%, var(--line));
  border-radius:2px;
  box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb,255,237,0),0.12);
}
[data-design="deco"] .stat::after,
[data-design="deco"] .player::after,
[data-design="deco"] .spon-card2::after{
  content:"";position:absolute;inset:5px;pointer-events:none;
  border:1px solid rgba(var(--accent-rgb,255,237,0),0.32);
  border-radius:1px;
}
[data-design="deco"] .sec-num{
  border:1px solid var(--accent);
  color:var(--accent);
  border-radius:2px;
  background:transparent;
  letter-spacing:0.16em;
}
[data-design="deco"] .sec-rule{
  background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 70%, transparent), transparent);
  height:1px;
}
[data-design="deco"] .sec-rule::after{
  background:var(--accent);
  box-shadow:0 0 10px rgba(var(--accent-rgb,255,237,0),0.5);
}
[data-design="deco"] .btn{border-radius:2px;letter-spacing:0.14em}
[data-design="deco"] .btn-ghost{border-color:var(--accent);color:var(--accent);background:transparent}
[data-design="deco"] .btn-primary{
  background:var(--red);
  border:1px solid var(--accent);
  color:var(--chalk);
  box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb,255,237,0),0.4);
}
[data-design="deco"] nav#mainnav{border-bottom:1px solid rgba(var(--accent-rgb,255,237,0),0.4)}
[data-design="deco"] nav#mainnav::after{
  background:linear-gradient(90deg, transparent, var(--accent), transparent);
  height:2px;
}
[data-design="deco"] .navlinks a::after{background:var(--accent)}
[data-design="deco"] .hero-content{border-top:2px solid rgba(var(--accent-rgb,255,237,0),0.5)}
[data-design="deco"] .hero h1{text-shadow:0 2px 30px rgba(0,0,0,0.5);color:var(--chalk)}
[data-design="deco"] .hero h1 .red{color:var(--accent)}
[data-design="deco"] .gallery .tile{border:1px solid rgba(var(--accent-rgb,255,237,0),0.4);border-radius:2px}
[data-design="deco"] footer{border-top:2px solid var(--accent)}
[data-design="deco"] .foot-col h4{color:var(--accent)}

/* === retro80: Retro 80s === */
[data-design="retro80"] .hero::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg, transparent 52%, rgba(var(--red-rgb,209,31,42),0.30) 100%),
    repeating-linear-gradient(0deg, rgba(var(--accent-rgb,255,237,0),0.11) 0 1px, transparent 1px 42px),
    repeating-linear-gradient(90deg, rgba(var(--accent-rgb,255,237,0),0.09) 0 1px, transparent 1px 42px);
}
[data-design="retro80"] .hero h1{
  color:var(--chalk);
  text-shadow:0 0 8px rgba(var(--chalk-rgb,245,244,241),0.5),
    0 2px 0 var(--red), 0 0 24px rgba(var(--red-rgb,209,31,42),0.7);
}
[data-design="retro80"] .stat,
[data-design="retro80"] .player,
[data-design="retro80"] .event,
[data-design="retro80"] .spon-card2,
[data-design="retro80"] .cd-cell,
[data-design="retro80"] .cd-strip,
[data-design="retro80"] .bracketbar,
[data-design="retro80"] .strip,
[data-design="retro80"] .prof-card{
  background:var(--ink);
  border:1px solid rgba(var(--red-rgb,209,31,42),0.5);
  border-radius:6px;
  box-shadow:0 0 0 1px rgba(var(--accent-rgb,255,237,0),0.14),
    0 0 20px rgba(var(--red-rgb,209,31,42),0.22),
    inset 0 0 24px rgba(var(--red-rgb,209,31,42),0.08);
}
[data-design="retro80"] .sec-head h2{color:var(--chalk);text-shadow:0 0 12px rgba(var(--red-rgb,209,31,42),0.6)}
[data-design="retro80"] .sec-num{
  border:1px solid var(--accent);
  color:var(--accent);
  background:transparent;
  box-shadow:0 0 12px rgba(var(--accent-rgb,255,237,0),0.4);
}
[data-design="retro80"] .sec-rule{
  background:linear-gradient(90deg, var(--red), var(--accent));
  height:2px;
  box-shadow:0 0 8px rgba(var(--red-rgb,209,31,42),0.5);
}
[data-design="retro80"] .btn{border-radius:6px}
[data-design="retro80"] .btn-primary{
  background:linear-gradient(180deg, var(--red), var(--red-dim));
  box-shadow:0 0 18px rgba(var(--red-rgb,209,31,42),0.55);
}
[data-design="retro80"] .btn-ghost{
  border-color:var(--accent);
  color:var(--accent);
  box-shadow:inset 0 0 12px rgba(var(--accent-rgb,255,237,0),0.15), 0 0 12px rgba(var(--accent-rgb,255,237,0),0.25);
}
[data-design="retro80"] nav#mainnav{border-bottom:1px solid rgba(var(--red-rgb,209,31,42),0.5)}
[data-design="retro80"] .player .num,
[data-design="retro80"] .game .opp{text-shadow:0 0 10px rgba(var(--red-rgb,209,31,42),0.5)}
[data-design="retro80"] .gallery .tile{border:1px solid rgba(var(--red-rgb,209,31,42),0.5);border-radius:6px}
[data-design="retro80"] .gallery .tile:hover{box-shadow:0 0 22px rgba(var(--red-rgb,209,31,42),0.5);border-color:var(--accent)}
@media (prefers-reduced-motion: no-preference){
  [data-design="retro80"] .sec-num{transition:box-shadow .3s ease}
}
@media (prefers-reduced-motion: reduce){
  [data-design="retro80"] .hero::before{background-image:none}
}
/* --- retro80 LAYOUT: the synthwave horizon — a striped sun rises behind the
   hero, slanted full-bleed bands cut the page into panels, the roster
   staggers on the grid floor, and the photo wall leans on a diagonal --- */
[data-design="retro80"] .hero-img::before{content:"";position:absolute;left:55%;bottom:8%;width:min(36vw,420px);aspect-ratio:1;border-radius:50%;pointer-events:none;
  background:linear-gradient(180deg,var(--accent) 0%,var(--red) 62%,transparent 100%);opacity:0.55;
  -webkit-mask-image:repeating-linear-gradient(180deg,#000 0 11%,transparent 11% 15%);mask-image:repeating-linear-gradient(180deg,#000 0 11%,transparent 11% 15%)}
[data-design="retro80"] #about,
[data-design="retro80"] #schedule,
[data-design="retro80"] #sponsors{padding-top:104px;padding-bottom:104px}
[data-design="retro80"] #about::before,
[data-design="retro80"] #schedule::before,
[data-design="retro80"] #sponsors::before{content:"";position:absolute;top:0;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);z-index:-1;pointer-events:none;opacity:1;
  background:color-mix(in srgb,var(--red) 6%,var(--ink));
  clip-path:polygon(0 0,100% 44px,100% 100%,0 calc(100% - 44px))}
@media(min-width:821px){
  [data-design="retro80"] #roster .player:nth-child(even){transform:translateY(16px)}
  [data-design="retro80"] #roster .player:nth-child(even):hover{transform:translateY(13px)}
  [data-design="retro80"] #roster .roster:not(.sq-grouped),
  [data-design="retro80"] #roster .sq-group-grid{padding-bottom:18px}
}
@media(min-width:641px){
  [data-design="retro80"] .gallery{transform:skewY(-2deg);margin-top:26px;margin-bottom:26px}
  [data-design="retro80"] .gallery .tile{transform:skewY(2deg)}
  [data-design="retro80"] .gallery .tile:hover{transform:skewY(2deg) scale(1.025)}
}
[data-design="retro80"] .stat{text-align:center}
[data-design="retro80"] .stat .n{text-shadow:0 0 18px rgba(var(--red-rgb,209,31,42),0.55)}

/* === corporate: Clean Pro === */
[data-design="corporate"] .stat,
[data-design="corporate"] .player,
[data-design="corporate"] .event,
[data-design="corporate"] .spon-card2,
[data-design="corporate"] .spon-cta,
[data-design="corporate"] .cd-cell,
[data-design="corporate"] .cd-strip,
[data-design="corporate"] .bracketbar,
[data-design="corporate"] .strip,
[data-design="corporate"] .prof-card{
  background:var(--ink);
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 1px 2px rgba(0,0,0,0.14);
}
[data-design="corporate"] .stat::before,
[data-design="corporate"] .player::before,
[data-design="corporate"] .spon-card2::before,
[data-design="corporate"] .cd-cell::before{background:var(--line)}
[data-design="corporate"] nav#mainnav{border-bottom:1px solid var(--line)}
[data-design="corporate"] nav#mainnav::after{background:var(--red);opacity:0.85;height:2px}
[data-design="corporate"] .navlinks a{letter-spacing:0.02em}
[data-design="corporate"] .sec-num{
  border:1px solid var(--line);
  color:var(--steel);
  border-radius:6px;
  background:var(--ink);
  letter-spacing:0.08em;
}
[data-design="corporate"] .sec-head h2{text-transform:none;letter-spacing:-0.01em;font-weight:600}
[data-design="corporate"] .sec-rule{background:var(--line)}
[data-design="corporate"] .sec-rule::after{width:40px;background:var(--red);opacity:0.8}
[data-design="corporate"] .btn{border-radius:7px;letter-spacing:0.03em;text-transform:none;font-weight:600}
[data-design="corporate"] .btn-primary{background:var(--red);box-shadow:0 1px 2px rgba(0,0,0,0.18)}
[data-design="corporate"] .btn-ghost{background:var(--ink);border-color:var(--line);color:var(--chalk)}
[data-design="corporate"] .btn-ghost:hover{border-color:var(--red);color:var(--red)}
[data-design="corporate"] .hero h1{text-shadow:0 2px 24px rgba(0,0,0,0.4);letter-spacing:-0.005em}
[data-design="corporate"] .game{border-radius:6px}
[data-design="corporate"] .res{border-radius:5px}
[data-design="corporate"] .gallery .tile{border-radius:8px;border:1px solid var(--line)}
[data-design="corporate"] .spon-cta::before{background:var(--red);opacity:0.85}
[data-design="corporate"] footer{border-top:2px solid var(--red)}
[data-design="corporate"] .foot-col h4{color:var(--steel);letter-spacing:0.12em}
/* --- corporate LAYOUT: the product-launch page — split hero with the photo
   in a floating framed card, a KPI panel, an avatar-first roster, zebra
   schedule rows, a flat sponsor logo row, and a big gradient CTA panel --- */
@media(min-width:1100px){
  [data-design="corporate"] .hero{align-items:center;background:var(--black)}
  [data-design="corporate"] .hero-img{inset:auto;right:max(28px,calc(50% - 590px));top:50%;transform:translateY(-50%);width:min(44vw,600px);aspect-ratio:4/3;border-radius:18px;border:1px solid var(--line);box-shadow:0 30px 70px rgba(0,0,0,0.4);animation:none}
  [data-design="corporate"] .hero-img::after{display:none}
  [data-design="corporate"] .hero-content{padding-bottom:0}
  [data-design="corporate"] .hero-content>*{max-width:480px}
  [data-design="corporate"] .hero h1{font-size:clamp(48px,6.4vw,110px);line-height:0.92}
}
[data-design="corporate"] .stats{background:var(--ink);border:1px solid var(--line);border-radius:16px;padding:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
[data-design="corporate"] .stat{background:var(--black);border:1px solid var(--line)}
@media(min-width:1100px){
  [data-design="corporate"] #roster .roster:not(.sq-grouped),
  [data-design="corporate"] #roster .sq-group-grid{grid-template-columns:repeat(5,1fr);gap:10px}
  [data-design="corporate"] #roster .player{text-align:center;padding:24px 14px}
  [data-design="corporate"] #roster .player .num{font-size:26px}
  [data-design="corporate"] #roster .player .pname{font-size:16px;margin-top:8px}
  [data-design="corporate"] #roster .player .pphoto{width:72px;height:72px;margin:0 auto 12px}
}
[data-design="corporate"] #roster .player .pphoto{aspect-ratio:1;border-radius:50%;object-fit:cover}
[data-design="corporate"] .sched-list{border-top:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
[data-design="corporate"] .game{border-bottom:1px solid var(--line);padding:18px 20px}
[data-design="corporate"] .game:last-child{border-bottom:0}
[data-design="corporate"] .game:nth-child(even){background:var(--ink)}
[data-design="corporate"] .game:hover{padding-left:20px;background:var(--ink-hover,#1c1c1f)}
[data-design="corporate"] .spon-card2{background:transparent;border:0;box-shadow:none;padding:20px 16px}
[data-design="corporate"] .spon-card2::before{display:none}
[data-design="corporate"] .spon-cta{background:var(--grad-red);border:0;border-radius:18px;padding:36px 40px}
[data-design="corporate"] .spon-cta::before{display:none}
[data-design="corporate"] .spon-cta p{color:var(--chalk);opacity:0.85}
[data-design="corporate"] .spon-cta .btn-primary{background:transparent;border:1px solid var(--chalk);color:var(--chalk)}
[data-design="corporate"] .livehead h1{font-weight:600}

/* === sketch: Hand-Drawn === */
[data-design="sketch"] .stat,
[data-design="sketch"] .spon-card2,
[data-design="sketch"] .event,
[data-design="sketch"] .cd-cell{
  background-image:none;
  background:color-mix(in srgb, var(--chalk) 5%, var(--ink));
  border:2.5px solid var(--chalk);
  border-radius:255px 14px 225px 16px/16px 225px 18px 255px;
  box-shadow:3px 3px 0 rgba(var(--chalk-rgb,245,244,241),0.16);
}
[data-design="sketch"] .player{
  background-image:none;
  background:color-mix(in srgb, var(--chalk) 5%, var(--ink));
  border:2.5px solid var(--chalk);
  border-radius:255px 14px 225px 16px/16px 225px 18px 255px;
  box-shadow:3px 3px 0 rgba(var(--chalk-rgb,245,244,241),0.14);
}
[data-design="sketch"] .stat:nth-child(even),
[data-design="sketch"] .player:nth-child(even),
[data-design="sketch"] .spon-card2:nth-child(even){
  border-radius:14px 225px 16px 255px/255px 16px 225px 14px;
}
[data-design="sketch"] .gallery .tile{
  border:2.5px solid var(--chalk);
  border-radius:225px 16px 255px 14px/14px 255px 16px 225px;
  box-shadow:3px 3px 0 rgba(var(--chalk-rgb,245,244,241),0.16);
}
[data-design="sketch"] .btn{
  border:2.5px solid var(--chalk);
  border-radius:18px 220px 20px 220px/220px 18px 220px 20px;
  box-shadow:3px 3px 0 rgba(var(--chalk-rgb,245,244,241),0.2);
  text-transform:none;letter-spacing:0.01em;
}
[data-design="sketch"] .btn-primary{background:var(--red);color:var(--chalk);border-color:var(--red-dim)}
[data-design="sketch"] .btn-ghost{background:transparent;color:var(--chalk)}
[data-design="sketch"] .sec-num{
  border:2.5px solid var(--chalk);
  border-radius:200px 12px 200px 14px/14px 200px 12px 200px;
  color:var(--red);
}
[data-design="sketch"] .sec-head h2{
  text-decoration:underline var(--red) wavy;
  text-decoration-thickness:2px;text-underline-offset:8px;
}
[data-design="sketch"] .sec-rule{background:none;border-top:2.5px dashed var(--line)}
[data-design="sketch"] .hero h1{text-shadow:3px 3px 0 rgba(var(--red-rgb,209,31,42),0.35)}
[data-design="sketch"] .eyebrow{text-transform:uppercase;letter-spacing:0.14em}
[data-design="sketch"] .game{border-radius:10px}
[data-design="sketch"] .game .res{border-radius:200px 10px 200px 12px/12px 200px 10px 200px}
[data-design="sketch"] .cd-strip::before{background:var(--red)}

/* === editorial: Editorial === */
[data-design="editorial"] .eyebrow,
[data-design="editorial"] .etag{letter-spacing:0.34em;font-weight:600;color:var(--red)}
[data-design="editorial"] .hero h1{letter-spacing:-0.03em;font-weight:800;text-transform:none;text-shadow:none}
[data-design="editorial"] .hero-sub b{font-style:italic}
[data-design="editorial"] .about-lead{font-style:italic}
[data-design="editorial"] .sec-head h2{text-transform:none;letter-spacing:-0.02em;font-weight:800}
[data-design="editorial"] .sec-num{
  border:none;border-radius:0;font-style:italic;color:var(--red);letter-spacing:0.08em;
}
[data-design="editorial"] .sec-rule{background:var(--chalk);opacity:0.25}
[data-design="editorial"] .sec-rule::after{background:var(--red)}
[data-design="editorial"] .stat,
[data-design="editorial"] .player,
[data-design="editorial"] .spon-card2,
[data-design="editorial"] .event,
[data-design="editorial"] .cd-cell{
  background:transparent;background-image:none;
  border:1px solid var(--line);border-radius:0;box-shadow:none;
}
[data-design="editorial"] .player .num{font-style:italic}
[data-design="editorial"] .game{border-radius:0}
[data-design="editorial"] .game .opp{letter-spacing:-0.01em}
[data-design="editorial"] .game .res{border-radius:0}
[data-design="editorial"] .gallery .tile{border-radius:0}
[data-design="editorial"] .btn{border-radius:0;letter-spacing:0.16em;text-transform:uppercase;font-weight:600}
[data-design="editorial"] .btn-ghost{background:transparent;border-color:var(--chalk);color:var(--chalk)}
[data-design="editorial"] .btn-primary{background:var(--red);color:var(--chalk);border-color:var(--red)}
[data-design="editorial"] .foot-col h4{letter-spacing:0.24em}
[data-design="editorial"] .foot-brand{letter-spacing:-0.01em}
[data-design="editorial"] footer{border-top-color:var(--red)}
/* --- editorial LAYOUT: the broadsheet — a masthead cover (headline on the
   page, photo framed beneath it), section heads as full-width standfirsts,
   a two-column story with a drop cap, an inline fact strip, a masthead
   roster list, and a mosaic photo spread --- */
[data-design="editorial"] .hero{min-height:0;display:flex;flex-direction:column;padding-top:clamp(88px,12vw,150px)}
[data-design="editorial"] .hero-content{order:1;padding-top:0;padding-bottom:0;margin-top:0;text-align:left}
[data-design="editorial"] .hero-img{order:2;position:relative;inset:auto;width:min(100% - 56px,1124px);margin:34px auto 0;aspect-ratio:1860/1091;animation:none;border:1px solid var(--line)}
[data-design="editorial"] .hero-img::after{display:none}
[data-design="editorial"] .hero h1{font-size:clamp(58px,11vw,150px);line-height:0.9}
[data-design="editorial"] .hero-sub{justify-content:flex-start;border-top:1px solid var(--line);padding-top:16px;margin-top:22px}
[data-design="editorial"] .hero-cta{justify-content:flex-start}
[data-design="editorial"] .scroll-cue{display:none}
[data-design="editorial"] .sec-head{display:block;border-bottom:3px solid var(--chalk);padding-bottom:14px;margin-bottom:36px}
[data-design="editorial"] .sec-num{display:inline-block;margin-bottom:8px;padding-left:0}
[data-design="editorial"] .sec-head h2{font-size:clamp(42px,6.5vw,80px);line-height:0.95}
[data-design="editorial"] .sec-rule{display:none}
[data-design="editorial"] .about-lead::first-letter{font-family:var(--font-display,'Oswald'),sans-serif;font-size:3em;float:left;line-height:0.8;padding:8px 12px 0 0;color:var(--red)}
@media(min-width:821px){
  [data-design="editorial"] .about-intro{columns:2;column-gap:48px}
  [data-design="editorial"] .about-lead{column-span:all;margin-bottom:26px}
  /* separators self-drawn per item (::after hung 1px outside, clipped on
     row leaders by the band's overflow) so ANY stat count wraps cleanly */
  [data-design="editorial"] .stats{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}
  [data-design="editorial"] .stat{border:0;border-radius:0;background:transparent;padding:20px 46px;position:relative;overflow:visible}
  [data-design="editorial"] .stat::after{content:"";position:absolute;left:-1px;top:0;bottom:0;width:1px;background:var(--line)}
  [data-design="editorial"] .stat:hover{transform:none}
  [data-design="editorial"] .stat .n{font-size:clamp(26px,3.2vw,46px)}
}
[data-design="editorial"] #roster .roster:not(.sq-grouped),
[data-design="editorial"] #roster .sq-group-grid{display:grid;grid-template-columns:1fr;gap:0}
@media(min-width:641px){
  [data-design="editorial"] #roster .roster:not(.sq-grouped),
  [data-design="editorial"] #roster .sq-group-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px}
}
[data-design="editorial"] #roster .player{display:flex;flex-direction:row;align-items:center;gap:14px;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 2px;text-align:left}
[data-design="editorial"] #roster .player::before{display:none}
[data-design="editorial"] #roster .player:hover{transform:none;background:var(--ink)}
[data-design="editorial"] #roster .player .pphoto{order:0;width:46px;height:46px;aspect-ratio:1;border-radius:50%;margin:0;flex:none;object-fit:cover}
[data-design="editorial"] #roster .player .pname{order:1;font-size:18px;margin-top:0;white-space:normal;overflow:visible}
[data-design="editorial"] #roster .player .pos{order:2;margin-top:0}
[data-design="editorial"] #roster .player .num{order:3;margin-left:auto;font-size:22px}
[data-design="editorial"] .sched-intro{font-size:21px;font-style:italic;border-left:3px solid var(--red);padding-left:22px}
[data-design="editorial"] .game .opp{text-transform:none;font-size:26px}
[data-design="editorial"] .gallery{grid-auto-flow:dense}
[data-design="editorial"] .gallery .tile{aspect-ratio:1;object-fit:cover;width:100%}
[data-design="editorial"] .gallery .tile:nth-child(7n+1){grid-column:span 2;grid-row:span 2;aspect-ratio:auto;height:100%}
[data-design="editorial"] .livehead{display:block;border-bottom:3px solid var(--chalk);padding-bottom:12px}
[data-design="editorial"] .livehead h1{font-size:clamp(34px,7vw,60px)}
[data-design="editorial"] .livehead .onair{margin-top:10px}

/* === pop: Gradient Pop === */
[data-design="pop"] .hero-img{filter:saturate(1.35) contrast(1.05)}
[data-design="pop"] .stat,
[data-design="pop"] .player,
[data-design="pop"] .spon-card2,
[data-design="pop"] .event,
[data-design="pop"] .cd-cell{
  background-image:linear-gradient(155deg,
    color-mix(in srgb, var(--red) 16%, var(--ink)),
    color-mix(in srgb, var(--accent) 12%, var(--ink)));
  border:1px solid rgba(var(--chalk-rgb,245,244,241),0.12);
  border-radius:18px;
  box-shadow:0 10px 30px rgba(var(--red-rgb,209,31,42),0.16);
}
[data-design="pop"] .gallery .tile{border-radius:16px;filter:saturate(1.25) brightness(0.97)}
[data-design="pop"] .btn{border-radius:999px;border:none;font-weight:700}
[data-design="pop"] .btn-primary{
  background:linear-gradient(120deg, var(--red), color-mix(in srgb, var(--accent), var(--red) 42%));
  color:var(--chalk);
  box-shadow:0 8px 24px rgba(var(--red-rgb,209,31,42),0.42);
}
[data-design="pop"] .btn-ghost{
  background:color-mix(in srgb, var(--red) 14%, var(--ink));
  border:1px solid rgba(var(--red-rgb,209,31,42),0.5);color:var(--chalk);
}
[data-design="pop"] .sec-num{
  border:none;color:var(--chalk);border-radius:999px;
  background:linear-gradient(120deg, var(--red), color-mix(in srgb, var(--accent), var(--red) 40%));
}
[data-design="pop"] .player .num,
[data-design="pop"] .stat .n span,
[data-design="pop"] .sec-head h2{
  background:linear-gradient(120deg, var(--red), color-mix(in srgb, var(--accent), var(--red) 22%));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
[data-design="pop"] .game .res.up{border-radius:999px}
@media (prefers-reduced-motion: no-preference){
  [data-design="pop"] .btn-primary{animation:popHue 8s linear infinite}
  @keyframes popHue{0%,100%{filter:saturate(1.1) hue-rotate(0deg)}50%{filter:saturate(1.35) hue-rotate(12deg)}}
}

/* === luxe: Dark Luxe === */
[data-design="luxe"] .hero-img{filter:grayscale(0.35) contrast(1.1) brightness(0.86)}
[data-design="luxe"] .stat,
[data-design="luxe"] .player,
[data-design="luxe"] .spon-card2,
[data-design="luxe"] .event,
[data-design="luxe"] .cd-cell,
[data-design="luxe"] .game{
  background-image:none;
  background:color-mix(in srgb, var(--ink), #000 8%);
  border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);
  border-radius:4px;
  box-shadow:0 6px 26px rgba(0,0,0,0.4), inset 0 1px 0 rgba(var(--accent-rgb,255,237,0),0.06);
}
[data-design="luxe"] .spon-card2::after{
  content:"";position:absolute;top:9px;right:9px;width:9px;height:9px;
  border-top:1px solid var(--accent);border-right:1px solid var(--accent);pointer-events:none;
}
[data-design="luxe"] .hero h1{letter-spacing:0.01em}
[data-design="luxe"] .sec-head h2{letter-spacing:0.06em;font-weight:700}
[data-design="luxe"] .eyebrow,
[data-design="luxe"] .etag{color:var(--accent);letter-spacing:0.3em}
[data-design="luxe"] .sec-num{
  border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);
  color:var(--accent);border-radius:3px;letter-spacing:0.18em;
}
[data-design="luxe"] .player .num{
  color:transparent;-webkit-text-fill-color:transparent;
  background:linear-gradient(120deg,
    color-mix(in srgb, var(--accent), #000 30%),
    color-mix(in srgb, var(--accent), #fff 50%),
    color-mix(in srgb, var(--accent), #000 10%));
  -webkit-background-clip:text;background-clip:text;
}
[data-design="luxe"] .stat::before,
[data-design="luxe"] .player::before,
[data-design="luxe"] .spon-card2::before,
[data-design="luxe"] .game::before{background:var(--accent)}
[data-design="luxe"] .sec-rule::after{background:var(--accent)}
[data-design="luxe"] .gallery .tile{filter:grayscale(0.3) contrast(1.05) brightness(0.9);border-radius:3px}
[data-design="luxe"] .btn{border-radius:3px;letter-spacing:0.16em}
[data-design="luxe"] .btn-primary{
  background:linear-gradient(120deg,
    color-mix(in srgb, var(--accent), #000 22%),
    color-mix(in srgb, var(--accent), #fff 30%),
    color-mix(in srgb, var(--accent), #000 12%));
  color:color-mix(in srgb, var(--accent), #000 72%);border:none;
}
[data-design="luxe"] .btn-ghost{
  background:transparent;
  border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent);
}
[data-design="luxe"] footer{border-top-color:var(--accent)}
[data-design="luxe"] .foot-col h4{color:var(--accent)}
@media (prefers-reduced-motion: no-preference){
  [data-design="luxe"] .btn-primary{animation:luxeGlow 5s ease-in-out infinite}
  @keyframes luxeGlow{0%,100%{filter:brightness(1)}50%{filter:brightness(1.12)}}
}

/* === newsprint: Newsprint === */
[data-design="newsprint"] .hero-img{filter:grayscale(1) contrast(1.15) brightness(0.95)}
[data-design="newsprint"] .gallery .tile{filter:grayscale(1) contrast(1.1);border-radius:0;border-color:var(--chalk)}
[data-design="newsprint"] .hero h1{text-transform:uppercase;letter-spacing:-0.02em;font-weight:800;text-shadow:none}
[data-design="newsprint"] .eyebrow{letter-spacing:0.3em;color:var(--red)}
[data-design="newsprint"] .sec-head{border-top:3px solid var(--chalk);border-bottom:3px double var(--chalk)}
[data-design="newsprint"] .sec-head h2{text-transform:uppercase;letter-spacing:-0.01em;font-weight:800}
[data-design="newsprint"] .sec-num{border:none;border-radius:0;color:var(--red);letter-spacing:0.2em}
[data-design="newsprint"] .sec-rule{background:none}
[data-design="newsprint"] .player,
[data-design="newsprint"] .stat{
  background:transparent;background-image:none;
  border:none;border-right:1px solid var(--line);border-radius:0;box-shadow:none;
}
[data-design="newsprint"] .spon-card2,
[data-design="newsprint"] .event,
[data-design="newsprint"] .cd-cell{
  background:transparent;background-image:none;
  border:1px solid var(--line);border-radius:0;box-shadow:none;
}
[data-design="newsprint"] .sched-list{border-top:2px solid var(--chalk)}
[data-design="newsprint"] .game{border-radius:0}
[data-design="newsprint"] .game .opp{text-transform:uppercase;letter-spacing:-0.01em}
[data-design="newsprint"] .game .date .day{color:var(--red)}
[data-design="newsprint"] .game .res{border-radius:0}
[data-design="newsprint"] .btn{border-radius:0;letter-spacing:0.12em}
[data-design="newsprint"] .btn-primary{background:var(--red);color:var(--chalk);border:none}
[data-design="newsprint"] .btn-ghost{background:transparent;border:1px solid var(--chalk);color:var(--chalk)}
[data-design="newsprint"] .foot-brand{text-transform:uppercase;letter-spacing:-0.01em}
[data-design="newsprint"] footer{border-top:3px double var(--chalk)}
[data-design="newsprint"] .foot-col h4{letter-spacing:0.2em}
/* --- newsprint LAYOUT: the dense inside page — a short ruled hero, the
   story in three rule-divided columns, agate stat and fixture lines, a
   tight four-column roster list, and a photo lead in the b/w gallery --- */
@media (min-width:821px) and (orientation:landscape),(min-width:1100px){
  [data-design="newsprint"] .hero{min-height:56vh}
  [data-design="newsprint"] .hero-content{padding-bottom:44px}
}
[data-design="newsprint"] .hero h1{font-size:clamp(52px,9.5vw,120px);border-bottom:1px solid var(--chalk);padding-bottom:14px}
[data-design="newsprint"] .hero-sub{margin-top:14px}
[data-design="newsprint"] .scroll-cue{display:none}
@media(min-width:821px){
  [data-design="newsprint"] .about-intro{columns:2;column-gap:44px;column-rule:1px solid var(--line);max-width:none}
  [data-design="newsprint"] .about .about-lead{column-span:all;margin-bottom:22px}
}
@media(min-width:1100px){
  [data-design="newsprint"] .about-intro{columns:3;column-gap:40px}
}
[data-design="newsprint"] .about p:not(.about-lead){font-size:15.5px;line-height:1.65}
[data-design="newsprint"] .stats{display:flex;flex-wrap:wrap;gap:0;border-top:2px solid var(--chalk);border-bottom:2px solid var(--chalk);overflow:hidden}
[data-design="newsprint"] .stat{border:0;padding:16px 34px;position:relative;overflow:visible}
[data-design="newsprint"] .stat::after{content:"";position:absolute;left:-1px;top:0;bottom:0;width:1px;background:var(--line)}
[data-design="newsprint"] .stat:hover{background:none;transform:none}
[data-design="newsprint"] .stat .n{font-size:clamp(24px,2.6vw,38px)}
[data-design="newsprint"] .stat .l{margin-top:6px}
[data-design="newsprint"] #roster .roster:not(.sq-grouped),
[data-design="newsprint"] #roster .sq-group-grid{display:grid;grid-template-columns:1fr;gap:0}
@media(min-width:641px){
  [data-design="newsprint"] #roster .roster:not(.sq-grouped),
  [data-design="newsprint"] #roster .sq-group-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px}
}
@media(min-width:1100px){
  [data-design="newsprint"] #roster .roster:not(.sq-grouped),
  [data-design="newsprint"] #roster .sq-group-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 30px}
}
[data-design="newsprint"] #roster .player{display:flex;flex-direction:row;align-items:center;gap:9px;background:none;border:0;border-bottom:1px dotted var(--line);border-radius:0;padding:8px 2px;text-align:left}
[data-design="newsprint"] #roster .player::before{display:none}
[data-design="newsprint"] #roster .player:hover{background:none;transform:none}
[data-design="newsprint"] #roster .player .pphoto{width:28px;height:28px;aspect-ratio:1;border-radius:0;margin:0;flex:none;object-fit:cover;filter:grayscale(1)}
[data-design="newsprint"] #roster .player .pname{order:1;font-size:13.5px;margin-top:0;letter-spacing:0.03em;white-space:normal;overflow:visible}
[data-design="newsprint"] #roster .player .pos{order:2;margin-top:0;font-size:10px}
[data-design="newsprint"] #roster .player .num{order:3;margin-left:auto;font-size:14px;font-weight:700}
[data-design="newsprint"] .game{padding:12px 4px;gap:16px}
[data-design="newsprint"] .game .opp{font-size:18px}
[data-design="newsprint"] .game .date{font-size:13px}
[data-design="newsprint"] .gallery{grid-template-columns:repeat(3,1fr);grid-auto-flow:dense;gap:12px}
[data-design="newsprint"] .gallery .tile{aspect-ratio:1;object-fit:cover;width:100%}
[data-design="newsprint"] .gallery .tile:first-child{grid-column:span 2;aspect-ratio:auto;height:100%}
@media(max-width:820px){[data-design="newsprint"] .gallery{grid-template-columns:repeat(2,1fr)}}
[data-design="newsprint"] .livehead{border-bottom:3px double var(--chalk);padding-bottom:10px}

/* === y2k: Y2K === */
[data-design="y2k"] nav#mainnav{
  background-image:linear-gradient(180deg,rgba(var(--chalk-rgb),0.10),transparent 60%);
  border-bottom:1px solid rgba(var(--chalk-rgb),0.2);
  box-shadow:0 6px 22px rgba(0,0,0,0.4),inset 0 1px 0 rgba(var(--chalk-rgb),0.3);
}
[data-design="y2k"] #mainnav::after{background:linear-gradient(90deg,rgba(var(--chalk-rgb),0.5),rgba(var(--red-rgb),0.6),rgba(var(--accent-rgb),0.6))}
[data-design="y2k"] #mainnav .brand{text-shadow:0 1px 0 rgba(var(--chalk-rgb),0.4)}
[data-design="y2k"] .hero h1{
  letter-spacing:-0.015em;
  text-shadow:0 2px 0 rgba(var(--chalk-rgb),0.25),0 8px 30px rgba(var(--red-rgb),0.5);
}
[data-design="y2k"] .eyebrow{
  background-image:linear-gradient(180deg,rgba(var(--chalk-rgb),0.28),rgba(var(--red-rgb),0.28));
  border:1px solid rgba(var(--chalk-rgb),0.4);border-radius:999px;padding:7px 15px;
  box-shadow:inset 0 1px 0 rgba(var(--chalk-rgb),0.6),0 3px 10px rgba(0,0,0,0.3);
}
[data-design="y2k"] .sec-num{
  border-radius:999px;border-color:transparent;
  background-image:linear-gradient(180deg,rgba(var(--chalk-rgb),0.2),transparent 60%),var(--grad-red);
  color:var(--chalk);box-shadow:inset 0 1px 0 rgba(var(--chalk-rgb),0.5),0 3px 9px rgba(var(--red-rgb),0.4);
}
[data-design="y2k"] .stat,
[data-design="y2k"] .player,
[data-design="y2k"] .spon-card2,
[data-design="y2k"] .cd-cell,
[data-design="y2k"] .game,
[data-design="y2k"] .event,
[data-design="y2k"] .bracketbar{
  border-radius:22px;
  border:1px solid rgba(var(--chalk-rgb),0.22);
  background-image:linear-gradient(180deg,rgba(var(--chalk-rgb),0.14) 0%,transparent 44%),var(--grad-ink);
  box-shadow:inset 0 1px 0 rgba(var(--chalk-rgb),0.4),0 12px 26px rgba(0,0,0,0.34);
}
[data-design="y2k"] .tile,
[data-design="y2k"] .spon-card2-logo{border-radius:18px}
[data-design="y2k"] .btn{
  border-radius:999px;
  box-shadow:inset 0 1px 0 rgba(var(--chalk-rgb),0.55),0 5px 16px rgba(0,0,0,0.32);
}
[data-design="y2k"] .btn-primary{background-image:linear-gradient(180deg,rgba(var(--chalk-rgb),0.32),transparent 58%),var(--grad-red)}
[data-design="y2k"] .btn-ghost{background-image:linear-gradient(180deg,rgba(var(--chalk-rgb),0.18),transparent 55%),var(--grad-soft)}
[data-design="y2k"] .player .num,
[data-design="y2k"] .stat .n{text-shadow:0 1px 0 rgba(var(--chalk-rgb),0.3),0 4px 18px rgba(var(--red-rgb),0.45)}
[data-design="y2k"] .spon-cta{border-radius:22px;box-shadow:inset 0 1px 0 rgba(var(--chalk-rgb),0.35)}
[data-design="y2k"] footer{border-top-color:rgba(var(--red-rgb),0.8)}

/* === swiss: Swiss Grid === */
[data-design="swiss"] nav#mainnav{background:var(--black);backdrop-filter:none;border-bottom:2px solid var(--red)}
[data-design="swiss"] #mainnav::after{background:var(--red)}
[data-design="swiss"] .navlinks a{letter-spacing:0.02em}
[data-design="swiss"] .hero h1,
[data-design="swiss"] .sec-head h2,
[data-design="swiss"] .livehead h1{letter-spacing:-0.02em;text-shadow:none}
[data-design="swiss"] .hero::after{background:var(--red)}
[data-design="swiss"] .eyebrow{border-radius:0;text-shadow:none;letter-spacing:0.28em}
[data-design="swiss"] .sec-num{
  border-radius:0;border-color:transparent;background:var(--red);color:var(--chalk);
  padding:5px 11px;letter-spacing:0.06em;font-weight:700;
}
[data-design="swiss"] .sec-rule{background:var(--red);height:2px}
[data-design="swiss"] .sec-rule::after{display:none}
[data-design="swiss"] .stat,
[data-design="swiss"] .player,
[data-design="swiss"] .spon-card2,
[data-design="swiss"] .cd-cell,
[data-design="swiss"] .event,
[data-design="swiss"] .tile,
[data-design="swiss"] .btn,
[data-design="swiss"] .bracketbar,
[data-design="swiss"] .spon-cta{border-radius:0}
[data-design="swiss"] .stat,
[data-design="swiss"] .player,
[data-design="swiss"] .spon-card2,
[data-design="swiss"] .event{
  background:var(--ink);border:1px solid var(--line);box-shadow:none;
}
[data-design="swiss"] .stat:hover,
[data-design="swiss"] .player:hover,
[data-design="swiss"] .spon-card2:hover{box-shadow:none;border-color:var(--red)}
[data-design="swiss"] .stat::before,
[data-design="swiss"] .player::before,
[data-design="swiss"] .spon-card2::before{height:100%;width:3px;background:var(--red)}
[data-design="swiss"] .btn{border-color:var(--red);box-shadow:none}
[data-design="swiss"] .btn-primary{background:var(--red)}
[data-design="swiss"] .btn-ghost{background:transparent}
[data-design="swiss"] .game{border-radius:0}
[data-design="swiss"] .player .num,
[data-design="swiss"] .stat .n{text-shadow:none;letter-spacing:-0.01em}
[data-design="swiss"] footer{border-top:2px solid var(--red)}
/* --- swiss LAYOUT: the modular grid — a split hero (type on the solid left,
   photo on the right), a sticky title rail beside every section, and
   hairline module grids for stats, roster, and a grayscale photo wall --- */
@media(min-width:1100px){
  [data-design="swiss"] .hero{align-items:center}
  [data-design="swiss"] .hero-img{left:45%;animation:none}
  [data-design="swiss"] .hero-img::after{background:linear-gradient(90deg,var(--black) 0%,rgba(var(--black-rgb,10,10,11),0) 22%)}
  [data-design="swiss"] .hero-content{padding-bottom:0}
  [data-design="swiss"] .hero-content>*{max-width:40%}
  [data-design="swiss"] .hero h1{font-size:clamp(44px,6.2vw,104px);line-height:0.9}
  [data-design="swiss"] .hero::after{right:55%}
  [data-design="swiss"] section.wrap{display:grid;grid-template-columns:190px minmax(0,1fr);column-gap:56px;row-gap:0}
  [data-design="swiss"] section.wrap>*{grid-column:2}
  [data-design="swiss"] section.wrap>.sec-head{grid-column:1;grid-row:1/span 9;flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:0;position:sticky;top:110px;align-self:start}
  [data-design="swiss"] .sec-head h2{font-size:clamp(20px,1.9vw,28px);line-height:1.15}
  [data-design="swiss"] .sec-rule{flex:none;width:100%;align-self:auto}
  [data-design="swiss"] .foot-grid{grid-template-columns:190px repeat(3,1fr);column-gap:56px}
}
[data-design="swiss"] .stats,
[data-design="swiss"] #roster .roster:not(.sq-grouped),
[data-design="swiss"] #roster .sq-group-grid{gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
[data-design="swiss"] .stat,
[data-design="swiss"] #roster .player{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--black)}
[data-design="swiss"] .stat:hover{background:var(--ink)}
[data-design="swiss"] #roster .player:hover{background:var(--ink);transform:none}
[data-design="swiss"] .gallery{gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
[data-design="swiss"] .gallery .tile{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;aspect-ratio:1;object-fit:cover;filter:grayscale(1) brightness(.96)}
[data-design="swiss"] .gallery .tile:hover{filter:none;transform:none}
[data-design="swiss"] body>div.wrap>.player{border-radius:0}
[data-design="swiss"] .strip{border-radius:0}

/* === sunset: Sunset === */
[data-design="sunset"] nav#mainnav{
  background-image:linear-gradient(180deg,rgba(var(--red-rgb),0.14),transparent 70%);
}
[data-design="sunset"] .hero-img{filter:grayscale(0.05) contrast(1.05) saturate(1.12)}
[data-design="sunset"] .hero-img::after{
  background:linear-gradient(180deg,rgba(var(--accent-rgb),0.22) 0%,rgba(var(--red-rgb),0.28) 42%,rgba(10,10,11,0.9) 100%);
}
[data-design="sunset"] .hero::after{background:linear-gradient(90deg,var(--accent),var(--red),var(--red-dim))}
[data-design="sunset"] .hero h1,
[data-design="sunset"] .sec-head h2,
[data-design="sunset"] .livehead h1{
  background-image:linear-gradient(100deg,var(--accent),var(--red) 60%,var(--red-dim));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
}
[data-design="sunset"] .eyebrow{color:var(--accent)}
[data-design="sunset"] .sec-num{
  border-color:transparent;color:var(--chalk);
  background-image:linear-gradient(120deg,var(--accent),var(--red));
}
[data-design="sunset"] .stat,
[data-design="sunset"] .player,
[data-design="sunset"] .spon-card2,
[data-design="sunset"] .cd-cell,
[data-design="sunset"] .event,
[data-design="sunset"] .bracketbar{
  border-radius:16px;border:1px solid rgba(var(--accent-rgb),0.2);
  background-image:linear-gradient(160deg,rgba(var(--red-rgb),0.12),transparent 55%),rgba(var(--accent-rgb),0.04),var(--grad-ink);
  box-shadow:0 10px 30px rgba(var(--red-rgb),0.14);
}
[data-design="sunset"] .btn{border-radius:14px}
[data-design="sunset"] .btn-primary{background-image:linear-gradient(120deg,var(--accent),var(--red) 70%)}
[data-design="sunset"] .btn-primary:hover{box-shadow:0 8px 26px rgba(var(--accent-rgb),0.35)}
[data-design="sunset"] .btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
[data-design="sunset"] .player .num,
[data-design="sunset"] .stat .n span,
[data-design="sunset"] .game .date .day{color:var(--accent)}
[data-design="sunset"] .tile{border-radius:14px;filter:brightness(0.95) saturate(1.08)}
[data-design="sunset"] .spon-cta{border-radius:16px}
[data-design="sunset"] footer{border-top-color:var(--accent)}

/* === chalk: Chalkboard === */
[data-design="chalk"] nav#mainnav{
  background:color-mix(in srgb,var(--ink) 70%,var(--green) 6%);
  border-bottom:1px dashed rgba(var(--chalk-rgb),0.3);
}
[data-design="chalk"] .hero h1,
[data-design="chalk"] .sec-head h2,
[data-design="chalk"] .livehead h1,
[data-design="chalk"] .player .pname{
  text-shadow:0 0 1px rgba(var(--chalk-rgb),0.55),1px 1px 0 rgba(var(--chalk-rgb),0.1);
  letter-spacing:0.03em;
}
[data-design="chalk"] .eyebrow{letter-spacing:0.24em;text-shadow:0 0 1px rgba(var(--chalk-rgb),0.5)}
[data-design="chalk"] .sec-num{
  border:1px dashed rgba(var(--chalk-rgb),0.55);border-radius:4px;background:transparent;color:var(--chalk);
}
[data-design="chalk"] .sec-rule{background:transparent;border-top:1px dashed rgba(var(--chalk-rgb),0.4);height:0}
[data-design="chalk"] .sec-rule::after{background:rgba(var(--chalk-rgb),0.6)}
[data-design="chalk"] .stat,
[data-design="chalk"] .player,
[data-design="chalk"] .spon-card2,
[data-design="chalk"] .cd-cell,
[data-design="chalk"] .event,
[data-design="chalk"] .bracketbar{
  border-radius:5px;
  border:1px dashed rgba(var(--chalk-rgb),0.38);
  background:color-mix(in srgb,var(--ink) 82%,var(--green) 8%);
  box-shadow:inset 0 0 40px rgba(0,0,0,0.25);
}
[data-design="chalk"] .player{border-style:dashed}
[data-design="chalk"] .player .num,
[data-design="chalk"] .stat .n{
  color:var(--chalk);text-shadow:0 0 6px rgba(var(--chalk-rgb),0.35),1px 1px 0 rgba(var(--chalk-rgb),0.12);
}
[data-design="chalk"] .player .num .hash,
[data-design="chalk"] .player .pos,
[data-design="chalk"] .game .date .day,
[data-design="chalk"] .stat .n span{color:var(--green)}
[data-design="chalk"] .sched-list,
[data-design="chalk"] .game{border-color:rgba(var(--chalk-rgb),0.28);border-style:dashed}
[data-design="chalk"] .btn{border:1px dashed rgba(var(--chalk-rgb),0.5);border-radius:5px}
[data-design="chalk"] .btn-primary{background:transparent;color:var(--chalk);text-shadow:0 0 4px rgba(var(--chalk-rgb),0.4)}
[data-design="chalk"] .btn-ghost{background:transparent}
[data-design="chalk"] .tile{border:1px dashed rgba(var(--chalk-rgb),0.35);border-radius:5px}
[data-design="chalk"] .spon-cta{border:1px dashed rgba(var(--chalk-rgb),0.35);border-radius:5px}
[data-design="chalk"] footer{border-top:2px dashed rgba(var(--chalk-rgb),0.4)}

/* === terminal: Terminal === */
[data-design="terminal"] nav#mainnav,
[data-design="terminal"] .navlinks a,
[data-design="terminal"] .btn,
[data-design="terminal"] .sec-head h2,
[data-design="terminal"] .eyebrow,
[data-design="terminal"] .stat .n,
[data-design="terminal"] .player .num,
[data-design="terminal"] .player .pname,
[data-design="terminal"] .game .date,
[data-design="terminal"] .livehead h1{
  font-family:'Courier New',ui-monospace,monospace;letter-spacing:0.02em;
}
[data-design="terminal"] nav#mainnav{background:var(--black);border-bottom:1px solid var(--green)}
[data-design="terminal"] #mainnav::after{background:var(--green);opacity:0.7}
[data-design="terminal"] .hero h1,
[data-design="terminal"] .livehead h1{
  color:var(--green);text-shadow:0 0 8px rgba(58,209,122,0.55),0 0 24px rgba(58,209,122,0.28);
}
[data-design="terminal"] .eyebrow{color:var(--green);text-shadow:0 0 6px rgba(58,209,122,0.4)}
[data-design="terminal"] .sec-head h2::before{content:"> ";color:var(--green)}
[data-design="terminal"] .sec-num{border:1px solid var(--green);border-radius:0;color:var(--green);background:transparent}
[data-design="terminal"] .sec-rule{background:rgba(58,209,122,0.4)}
[data-design="terminal"] .sec-rule::after{background:var(--green)}
[data-design="terminal"] .stat,
[data-design="terminal"] .player,
[data-design="terminal"] .spon-card2,
[data-design="terminal"] .cd-cell,
[data-design="terminal"] .event,
[data-design="terminal"] .game,
[data-design="terminal"] .tile,
[data-design="terminal"] .btn,
[data-design="terminal"] .bracketbar,
[data-design="terminal"] .spon-cta{border-radius:0}
[data-design="terminal"] .stat,
[data-design="terminal"] .spon-card2,
[data-design="terminal"] .event,
[data-design="terminal"] .cd-cell{
  background:color-mix(in srgb,var(--black) 90%,var(--green) 6%);
  border:1px solid rgba(58,209,122,0.35);box-shadow:inset 0 0 30px rgba(0,0,0,0.4);
}
[data-design="terminal"] .player{background:color-mix(in srgb,var(--black) 90%,var(--green) 6%);border:1px solid rgba(58,209,122,0.35);border-radius:0}
[data-design="terminal"] .player .num,
[data-design="terminal"] .stat .n,
[data-design="terminal"] .stat .n span,
[data-design="terminal"] .res.up,
[data-design="terminal"] .game .date .day{color:var(--green)}
[data-design="terminal"] .stat::before,
[data-design="terminal"] .player::before,
[data-design="terminal"] .spon-card2::before{background:var(--green)}
[data-design="terminal"] .btn{border-color:var(--green);color:var(--green)}
[data-design="terminal"] .btn-primary{background:transparent;text-shadow:0 0 6px rgba(58,209,122,0.5)}
[data-design="terminal"] .btn-ghost{background:transparent}
[data-design="terminal"] .btn:hover{background:rgba(58,209,122,0.14);color:var(--green)}
[data-design="terminal"] footer{border-top:1px solid var(--green);color:var(--green)}
[data-design="terminal"] section::before,
[data-design="terminal"] .hero::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:repeating-linear-gradient(180deg,rgba(0,0,0,0.16) 0,rgba(0,0,0,0.16) 1px,transparent 1px,transparent 4px);
}
@media (prefers-reduced-motion:no-preference){
  [data-design="terminal"] .hero h1::after,
  [data-design="terminal"] .livehead h1::after{
    content:"_";color:var(--green);margin-left:0.06em;animation:termBlink 1.1s step-end infinite;
  }
}
@keyframes termBlink{0%,50%{opacity:1}51%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){
  [data-design="terminal"] .hero h1::after,
  [data-design="terminal"] .livehead h1::after{animation:none}
}
/* --- terminal LAYOUT: the console — no hero photo, the cover is a terminal
   window (traffic-light bar, ~$ prompt, blinking cursor) and every section
   renders as its own window; stats are inline status chips, the roster is
   ls-output rows, games are log lines, photos are framed monitors --- */
[data-design="terminal"] .hero{min-height:0;display:block;padding:118px 0 34px}
[data-design="terminal"] .hero-img{display:none}
[data-design="terminal"] .hero-content{margin:0 auto;width:min(1180px,100% - 28px);max-width:1180px;text-align:left;position:relative;
  border:1px solid rgba(var(--green-rgb,58,209,122),0.35);border-radius:0;padding:64px 44px 44px;
  background:color-mix(in srgb,var(--black) 93%,var(--green) 4%)}
[data-design="terminal"] .hero-content::before{content:"";position:absolute;top:0;left:0;right:0;height:34px;border-bottom:1px solid rgba(var(--green-rgb,58,209,122),0.35);
  background:radial-gradient(circle at 18px 17px,var(--red) 4.5px,transparent 5.5px),radial-gradient(circle at 36px 17px,var(--accent) 4.5px,transparent 5.5px),radial-gradient(circle at 54px 17px,var(--green) 4.5px,transparent 5.5px)}
[data-design="terminal"] .hero h1{font-size:clamp(42px,8vw,110px);font-family:'Courier New',ui-monospace,monospace}
[data-design="terminal"] .eyebrow::before{content:"~$";width:auto;height:auto;background:none;color:var(--green);font-family:'Courier New',ui-monospace,monospace;font-weight:700}
[data-design="terminal"] .hero-sub,
[data-design="terminal"] .hero-cta{justify-content:flex-start}
[data-design="terminal"] .scroll-cue{display:none}
/* z-index:0 makes each window a stacking context so a finish's negative-z
   wash (mesh) paints above the window plate instead of vanishing behind it */
[data-design="terminal"] section.wrap{position:relative;z-index:0;border:1px solid rgba(var(--green-rgb,58,209,122),0.3);width:min(1180px,100% - 28px);margin:26px auto;
  padding:96px clamp(20px,4vw,48px) 56px;background:color-mix(in srgb,var(--black) 95%,var(--green) 3%)}
[data-design="terminal"] section.wrap::after{content:"";position:absolute;top:0;left:0;right:0;height:34px;border-bottom:1px solid rgba(var(--green-rgb,58,209,122),0.3);
  background:radial-gradient(circle at 18px 17px,var(--red) 4.5px,transparent 5.5px),radial-gradient(circle at 36px 17px,var(--accent) 4.5px,transparent 5.5px),radial-gradient(circle at 54px 17px,var(--green) 4.5px,transparent 5.5px)}
[data-design="terminal"] .stats{display:flex;flex-wrap:wrap;gap:10px}
[data-design="terminal"] .stat{display:flex;align-items:baseline;gap:10px;padding:12px 16px}
[data-design="terminal"] .stat::before{display:none}
[data-design="terminal"] .stat:hover{transform:none}
[data-design="terminal"] .stat .n{font-size:22px}
[data-design="terminal"] .stat .l{margin-top:0}
[data-design="terminal"] #roster .roster:not(.sq-grouped),
[data-design="terminal"] #roster .sq-group-grid{display:grid;grid-template-columns:1fr;gap:0}
@media(min-width:641px){
  [data-design="terminal"] #roster .roster:not(.sq-grouped),
  [data-design="terminal"] #roster .sq-group-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px}
}
[data-design="terminal"] #roster .player{display:flex;flex-direction:row;align-items:center;gap:12px;background:transparent;border:0;border-bottom:1px dashed rgba(var(--green-rgb,58,209,122),0.25);border-radius:0;padding:10px 2px;text-align:left;box-shadow:none}
[data-design="terminal"] #roster .player::before{display:none}
[data-design="terminal"] #roster .player:hover{background:rgba(var(--green-rgb,58,209,122),0.07);transform:none}
[data-design="terminal"] #roster .player .pphoto{width:32px;height:32px;aspect-ratio:1;border-radius:0;margin:0;flex:none;object-fit:cover}
[data-design="terminal"] #roster .player .num{order:0;font-size:14px;min-width:36px;margin-top:0}
[data-design="terminal"] #roster .player .pname{order:1;font-size:15px;margin-top:0;white-space:normal;overflow:visible}
[data-design="terminal"] #roster .player .pos{order:2;margin-top:0}
[data-design="terminal"] .game{padding:12px 4px;gap:14px}
[data-design="terminal"] .game .date{font-size:13px}
[data-design="terminal"] .game .opp{font-size:16px;font-family:'Courier New',ui-monospace,monospace;text-transform:none}
[data-design="terminal"] .gallery{grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:820px){[data-design="terminal"] .gallery{grid-template-columns:repeat(2,1fr)}}
[data-design="terminal"] .gallery .tile{border:1px solid rgba(var(--green-rgb,58,209,122),0.4);aspect-ratio:4/3;object-fit:cover;filter:saturate(0.7) contrast(1.05)}

/* === pastel: Pastel Soft === */
[data-design="pastel"] #mainnav{border-bottom-color:color-mix(in srgb,var(--red) 16%,transparent)}
[data-design="pastel"] #mainnav::after{background:linear-gradient(90deg,color-mix(in srgb,var(--red) 55%,var(--chalk)),color-mix(in srgb,var(--accent) 55%,var(--chalk)),color-mix(in srgb,var(--green,#3ad17a) 55%,var(--chalk)))}
[data-design="pastel"] #mainnav a{text-transform:none;letter-spacing:0.02em}
[data-design="pastel"] .eyebrow,[data-design="pastel"] .hero-eyebrow{letter-spacing:0.16em;font-weight:500;color:color-mix(in srgb,var(--chalk) 80%,var(--red))}
[data-design="pastel"] .hero h1{text-shadow:0 6px 34px rgba(0,0,0,0.28);letter-spacing:0.005em}
[data-design="pastel"] .hero h1 .red{color:color-mix(in srgb,var(--red) 78%,var(--chalk))}
[data-design="pastel"] .ticker{background:color-mix(in srgb,var(--red) 62%,var(--chalk))}
[data-design="pastel"] .sec-head h2{text-transform:none;letter-spacing:0}
[data-design="pastel"] .sec-num{border-radius:999px;border-color:color-mix(in srgb,var(--red) 32%,transparent);color:color-mix(in srgb,var(--red) 80%,var(--chalk))}
[data-design="pastel"] .sec-rule{background:color-mix(in srgb,var(--chalk) 12%,transparent)}
[data-design="pastel"] .sec-rule::after{background:color-mix(in srgb,var(--red) 55%,var(--chalk))}
[data-design="pastel"] .stat,
[data-design="pastel"] .player,
[data-design="pastel"] .event,
[data-design="pastel"] .spon-card2,
[data-design="pastel"] .cd-cell{
  border-radius:20px;
  border-color:color-mix(in srgb,var(--chalk) 12%,transparent);
  background:color-mix(in srgb,var(--red) 6%,var(--ink));
  box-shadow:0 12px 30px -20px rgba(var(--red-rgb,209,31,42),0.5)}
[data-design="pastel"] .stat::before,
[data-design="pastel"] .player::before,
[data-design="pastel"] .spon-card2::before{background:linear-gradient(90deg,color-mix(in srgb,var(--red) 60%,var(--chalk)),color-mix(in srgb,var(--accent) 60%,var(--chalk)))}
[data-design="pastel"] .num,
[data-design="pastel"] .stat .n span,
[data-design="pastel"] .game .date .day{color:color-mix(in srgb,var(--red) 80%,var(--chalk))}
[data-design="pastel"] .game{border-radius:16px}
[data-design="pastel"] .game .opp{text-transform:none;letter-spacing:0}
[data-design="pastel"] .res{border-radius:999px}
[data-design="pastel"] .res.up{color:color-mix(in srgb,var(--red) 80%,var(--chalk));border-color:color-mix(in srgb,var(--red) 30%,transparent)}
[data-design="pastel"] .player--join{border-color:color-mix(in srgb,var(--red) 26%,transparent)}
[data-design="pastel"] .gallery .tile{border-radius:16px;filter:brightness(0.98) saturate(0.94)}
[data-design="pastel"] .spon-cta{border-radius:20px;border-color:color-mix(in srgb,var(--chalk) 12%,transparent)}
[data-design="pastel"] .btn{border-radius:999px;text-transform:none;letter-spacing:0.02em;font-weight:600}
[data-design="pastel"] .btn-primary{background:linear-gradient(180deg,color-mix(in srgb,var(--red) 76%,var(--chalk)),var(--red));box-shadow:0 8px 20px -10px rgba(var(--red-rgb,209,31,42),0.55)}
[data-design="pastel"] .btn-ghost{border-color:color-mix(in srgb,var(--red) 28%,transparent);background:color-mix(in srgb,var(--red) 8%,transparent)}
[data-design="pastel"] #totop{border-radius:50%;border-color:color-mix(in srgb,var(--red) 26%,transparent)}
[data-design="pastel"] footer{border-top-color:color-mix(in srgb,var(--red) 55%,var(--chalk))}
[data-design="pastel"] .bracketbar{border-radius:18px}

/* === stadium: Stadium Hype === */
[data-design="stadium"] .hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:radial-gradient(rgba(var(--chalk-rgb,245,244,241),0.10) 1px,transparent 1.5px);
  background-size:15px 15px;mix-blend-mode:overlay}
[data-design="stadium"] .eyebrow,[data-design="stadium"] .hero-eyebrow{letter-spacing:0.3em;font-weight:700}
[data-design="stadium"] .hero h1{letter-spacing:0.02em;text-shadow:0 0 34px rgba(var(--red-rgb,209,31,42),0.5),0 6px 44px rgba(0,0,0,0.65)}
[data-design="stadium"] .hero h1 .red{color:var(--red);text-shadow:0 0 26px rgba(var(--red-rgb,209,31,42),0.9)}
[data-design="stadium"] .ticker{box-shadow:0 0 26px rgba(var(--red-rgb,209,31,42),0.4)}
[data-design="stadium"] .ticker-seq{letter-spacing:0.2em}
[data-design="stadium"] .sec-head h2{letter-spacing:0.045em;text-shadow:0 2px 0 rgba(0,0,0,0.4),0 0 26px rgba(var(--red-rgb,209,31,42),0.28)}
[data-design="stadium"] .sec-num{background:var(--grad-red);color:var(--chalk);border-color:transparent;box-shadow:0 0 18px rgba(var(--red-rgb,209,31,42),0.55)}
[data-design="stadium"] .stat,
[data-design="stadium"] .player{border-color:color-mix(in srgb,var(--red) 38%,var(--line));box-shadow:inset 0 0 0 1px rgba(var(--red-rgb,209,31,42),0.14),0 16px 32px -22px rgba(0,0,0,0.85)}
[data-design="stadium"] .stat .n,
[data-design="stadium"] .player .num{text-shadow:0 0 24px rgba(var(--red-rgb,209,31,42),0.6)}
[data-design="stadium"] .player .num{letter-spacing:0.01em}
[data-design="stadium"] .cd-cell{border-color:color-mix(in srgb,var(--red) 42%,var(--line));background:color-mix(in srgb,var(--red) 5%,var(--black))}
[data-design="stadium"] .cd-cell b{text-shadow:0 0 16px rgba(var(--red-rgb,209,31,42),0.7)}
[data-design="stadium"] .game .opp{letter-spacing:0.02em}
[data-design="stadium"] .res.up{color:var(--red);border-color:var(--red);box-shadow:0 0 14px rgba(var(--red-rgb,209,31,42),0.4)}
[data-design="stadium"] .btn{letter-spacing:0.14em;font-weight:700}
[data-design="stadium"] .btn-primary{box-shadow:0 0 26px rgba(var(--red-rgb,209,31,42),0.55)}
[data-design="stadium"] .btn-ghost{border-color:color-mix(in srgb,var(--red) 48%,var(--line))}
[data-design="stadium"] .btn-ghost:hover{box-shadow:0 0 20px rgba(var(--red-rgb,209,31,42),0.35)}
[data-design="stadium"] .spon-card2{border-color:color-mix(in srgb,var(--red) 30%,var(--line))}
[data-design="stadium"] .foot-brand .red{text-shadow:0 0 22px rgba(var(--red-rgb,209,31,42),0.55)}
[data-design="stadium"] footer{border-top-width:4px}
[data-design="stadium"] .livehead h1{letter-spacing:0.02em;text-shadow:0 0 26px rgba(var(--red-rgb,209,31,42),0.5)}
[data-design="stadium"] .bracketbar{border-color:color-mix(in srgb,var(--red) 34%,var(--line))}
@media (prefers-reduced-motion:no-preference){
  [data-design="stadium"] .res.up{animation:stdResPulse 1.9s ease-in-out infinite}
  [data-design="stadium"] .cd-cell::before{animation:stdBarGlow 2.4s ease-in-out infinite}
}
@keyframes stdResPulse{0%,100%{box-shadow:0 0 0 0 rgba(var(--red-rgb,209,31,42),0.5)}50%{box-shadow:0 0 18px 2px rgba(var(--red-rgb,209,31,42),0.55)}}
@keyframes stdBarGlow{0%,100%{opacity:0.85}50%{opacity:1;box-shadow:0 0 12px rgba(var(--red-rgb,209,31,42),0.7)}}
/* --- stadium LAYOUT: the jumbotron — the next game leads the page (schedule
   moves up right after the hero), a giant centered marquee, a full-width
   stat band, matchup boards instead of list rows, an edge-to-edge photo
   wall, and a scoreboard-first live page --- */
[data-design="stadium"] body:has(>#about){display:flex;flex-direction:column}
/* flex + the sections' auto inline margins would shrink-wrap them — force
   full width (max-width still caps, margin:auto still centers) */
[data-design="stadium"] body:has(>#about)>.wrap{width:100%}
/* the cue points at #about, which no longer sits under the hero */
[data-design="stadium"] .scroll-cue{display:none}
[data-design="stadium"] #schedule{order:1}
[data-design="stadium"] #about{order:2}
[data-design="stadium"] #events{order:3}
[data-design="stadium"] #roster{order:4}
[data-design="stadium"] #photos{order:5}
[data-design="stadium"] #sponsors{order:6}
[data-design="stadium"] body>footer{order:7}
/* the platform's Powered By strip is injected before </body> (order 0 would
   jump it above the ordered sections) — keep it after the footer */
[data-design="stadium"] #psusa-badge{order:8}
[data-design="stadium"] .hero-content{text-align:center}
[data-design="stadium"] .hero .eyebrow{justify-content:center}
[data-design="stadium"] .hero h1{font-size:clamp(64px,17vw,215px);line-height:0.8}
[data-design="stadium"] .hero-sub,
[data-design="stadium"] .hero-cta{justify-content:center}
[data-design="stadium"] .sec-head{flex-direction:column;align-items:center;text-align:center;gap:12px;margin-bottom:42px}
[data-design="stadium"] .sec-num{display:none}
[data-design="stadium"] .sec-head h2{font-size:clamp(38px,6vw,66px)}
[data-design="stadium"] .sec-rule{flex:none;width:78px;height:5px;background:var(--grad-red);overflow:visible}
[data-design="stadium"] .sec-rule::after{display:none}
[data-design="stadium"] .about-intro{max-width:840px;margin-left:auto;margin-right:auto;text-align:center}
[data-design="stadium"] .stats{gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
[data-design="stadium"] .stat{background:transparent;border:0;border-radius:0;box-shadow:none;text-align:center;padding:36px 12px}
[data-design="stadium"] .stat::before{display:none}
[data-design="stadium"] .stat+.stat{border-left:1px solid var(--line)}
[data-design="stadium"] .stat .n{font-size:clamp(34px,5.6vw,86px)}
[data-design="stadium"] .stat:hover{background:var(--ink);transform:none}
/* a team's copy can carry ANY stat count — keep wrapped rows' borders sane */
@media(max-width:640px){
  [data-design="stadium"] .stat:nth-child(odd){border-left:0}
  [data-design="stadium"] .stat:nth-child(n+3){border-top:1px solid var(--line)}
}
@media(min-width:641px){
  [data-design="stadium"] .stat:nth-child(4n+1){border-left:0}
  [data-design="stadium"] .stat:nth-child(n+5){border-top:1px solid var(--line)}
}
[data-design="stadium"] .sched-intro{text-align:center;margin-left:auto;margin-right:auto}
[data-design="stadium"] .sched-list{border-top:0;display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:821px){
  [data-design="stadium"] .sched-list{grid-template-columns:1fr 1fr}
}
[data-design="stadium"] .game{grid-template-columns:1fr;gap:7px;justify-items:center;text-align:center;border:1px solid color-mix(in srgb,var(--red) 30%,var(--line));border-radius:0;padding:26px 18px;background:var(--grad-ink);transition:background .2s,transform .2s}
[data-design="stadium"] .game::before{left:0;top:0;bottom:auto;width:100%;height:4px;transform:scaleX(0);transform-origin:left}
[data-design="stadium"] .game:hover{padding-left:18px;transform:translateY(-3px)}
[data-design="stadium"] .game:hover::before{transform:scaleX(1)}
[data-design="stadium"] .game .date{font-size:18px}
[data-design="stadium"] .game .opp{grid-column:auto;grid-row:auto;font-size:27px}
[data-design="stadium"] .game .loc{grid-column:auto;grid-row:auto;text-align:center}
[data-design="stadium"] .game .res{grid-column:auto;grid-row:auto;justify-self:center}
@media(min-width:821px){
  [data-design="stadium"] #roster .roster:not(.sq-grouped),
  [data-design="stadium"] #roster .sq-group-grid{grid-template-columns:repeat(3,1fr);gap:14px}
  [data-design="stadium"] #roster .player{text-align:center;padding:36px 20px}
  [data-design="stadium"] #roster .player .num{font-size:74px}
  [data-design="stadium"] #roster .player .pname{font-size:24px}
}
[data-design="stadium"] .gallery{grid-template-columns:repeat(5,1fr);gap:3px;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
@media(max-width:820px){
  [data-design="stadium"] .gallery{grid-template-columns:repeat(3,1fr)}
}
[data-design="stadium"] .gallery .tile{border:0;border-radius:0;aspect-ratio:1;object-fit:cover}
[data-design="stadium"] .ticker-seq{font-size:17px;padding:14px 0}
[data-design="stadium"] body>div.wrap{display:flex;flex-direction:column}
[data-design="stadium"] body>div.wrap>.livehead{order:1;justify-content:center;text-align:center}
[data-design="stadium"] body>div.wrap>.strip{order:2}
[data-design="stadium"] body>div.wrap>.player{order:3;margin-top:14px}
/* the OBS ?clean=1 feed and the sideways-phone theater pin the player
   full-bleed (position:fixed) — the flow gap must not offset those frames */
[data-design="stadium"] body.clean>div.wrap>.player{margin-top:0}
@media (orientation:landscape) and (max-height:540px){
  [data-design="stadium"] body.videolive>div.wrap>.player{margin-top:0}
}
[data-design="stadium"] body>div.wrap>.bracketbar{order:4}
[data-design="stadium"] body>div.wrap>.rotatehint{order:5}
[data-design="stadium"] body>div.wrap>.sharebar{order:6}
[data-design="stadium"] body>div.wrap>.subline{order:7}

/* === serif: Elegant Serif === */
[data-design="serif"] .hero h1,
[data-design="serif"] .sec-head h2,
[data-design="serif"] .foot-brand,
[data-design="serif"] .livehead h1,
[data-design="serif"] .event h3,
[data-design="serif"] .game .opp{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-weight:500;text-transform:none;letter-spacing:0.005em}
[data-design="serif"] .eyebrow,[data-design="serif"] .hero-eyebrow{letter-spacing:0.34em;font-weight:400;color:var(--steel)}
[data-design="serif"] .eyebrow::before,[data-design="serif"] .hero-eyebrow::before{background:color-mix(in srgb,var(--red) 65%,var(--chalk));width:44px;height:1px}
[data-design="serif"] .hero h1{text-shadow:0 2px 30px rgba(0,0,0,0.5)}
[data-design="serif"] .hero h1 .red{color:color-mix(in srgb,var(--red) 72%,var(--chalk))}
[data-design="serif"] .sec-num{border-radius:2px;border-color:color-mix(in srgb,var(--chalk) 24%,transparent);color:var(--steel);background:transparent;font-family:var(--font-body,'Inter'),sans-serif;font-weight:400;letter-spacing:0.24em}
[data-design="serif"] .sec-rule{background:color-mix(in srgb,var(--chalk) 15%,transparent)}
[data-design="serif"] .sec-rule::after{width:40px;background:color-mix(in srgb,var(--red) 60%,var(--chalk))}
[data-design="serif"] .stat,
[data-design="serif"] .player,
[data-design="serif"] .event,
[data-design="serif"] .spon-card2,
[data-design="serif"] .cd-cell{background:color-mix(in srgb,var(--chalk) 3%,var(--ink));border-color:color-mix(in srgb,var(--chalk) 11%,transparent);border-radius:3px;box-shadow:none}
[data-design="serif"] .stat::before,
[data-design="serif"] .player::before,
[data-design="serif"] .spon-card2::before{height:1px;background:color-mix(in srgb,var(--red) 55%,var(--chalk))}
[data-design="serif"] .num,
[data-design="serif"] .stat .n span{color:color-mix(in srgb,var(--red) 68%,var(--chalk));font-weight:500}
[data-design="serif"] .pname{text-transform:none;letter-spacing:0.01em}
[data-design="serif"] .game{border-radius:2px}
[data-design="serif"] .game .opp .vs{font-style:italic}
[data-design="serif"] .res{border-radius:2px;font-weight:500;letter-spacing:0.12em}
[data-design="serif"] .gallery .tile{border-radius:2px}
[data-design="serif"] .spon-cta{border-radius:3px;border-color:color-mix(in srgb,var(--chalk) 11%,transparent)}
[data-design="serif"] .btn{border-radius:2px;text-transform:uppercase;letter-spacing:0.18em;font-weight:400;font-size:12px}
[data-design="serif"] .btn-primary{background:var(--red)}
[data-design="serif"] .btn-ghost{border-color:color-mix(in srgb,var(--chalk) 28%,transparent);background:transparent}
[data-design="serif"] #mainnav::after{background:color-mix(in srgb,var(--red) 55%,var(--chalk))}
[data-design="serif"] #mainnav a{letter-spacing:0.14em}
[data-design="serif"] footer{border-top-width:1px;border-top-color:color-mix(in srgb,var(--red) 55%,var(--chalk))}
[data-design="serif"] .foot-brand{text-transform:none}
[data-design="serif"] .bracketbar{border-radius:3px}

/* === comic: Comic === */
[data-design="comic"] .hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:radial-gradient(rgba(var(--chalk-rgb,245,244,241),0.16) 2px,transparent 2.5px);
  background-size:13px 13px}
[data-design="comic"] .eyebrow,[data-design="comic"] .hero-eyebrow{font-weight:700;letter-spacing:0.16em}
[data-design="comic"] .hero h1{letter-spacing:0.01em;text-shadow:4px 4px 0 rgba(var(--red-rgb,209,31,42),0.95),8px 8px 0 rgba(0,0,0,0.35)}
[data-design="comic"] .sec-head h2{text-shadow:3px 3px 0 rgba(var(--red-rgb,209,31,42),0.9)}
[data-design="comic"] .sec-num{border:3px solid var(--chalk);color:var(--chalk);border-radius:4px;box-shadow:3px 3px 0 rgba(var(--red-rgb,209,31,42),0.9);font-weight:700}
[data-design="comic"] .sec-rule{height:3px;background:var(--chalk);opacity:0.85}
[data-design="comic"] .sec-rule::after{background:var(--red)}
[data-design="comic"] .stat,
[data-design="comic"] .player,
[data-design="comic"] .event,
[data-design="comic"] .spon-card2,
[data-design="comic"] .cd-cell,
[data-design="comic"] .bracketbar{border-width:3px;border-style:solid;border-color:var(--chalk);border-radius:4px;box-shadow:5px 5px 0 rgba(var(--red-rgb,209,31,42),0.9)}
[data-design="comic"] .game{border-width:3px;border-style:solid;border-color:var(--chalk);border-radius:4px;box-shadow:4px 4px 0 rgba(var(--red-rgb,209,31,42),0.85)}
[data-design="comic"] .stat::after,
[data-design="comic"] .player::after{content:"";position:absolute;right:0;bottom:0;width:58px;height:58px;pointer-events:none;
  background-image:radial-gradient(rgba(var(--red-rgb,209,31,42),0.5) 1.5px,transparent 2px);background-size:8px 8px}
[data-design="comic"] .num,
[data-design="comic"] .stat .n span{text-shadow:2px 2px 0 rgba(0,0,0,0.4)}
[data-design="comic"] .gallery .tile{border-width:3px;border-style:solid;border-color:var(--chalk);border-radius:4px;box-shadow:4px 4px 0 rgba(var(--red-rgb,209,31,42),0.85);filter:none saturate(1.1) contrast(1.05)}
[data-design="comic"] .res{border-radius:3px;font-weight:700}
[data-design="comic"] .btn{border:2.5px solid var(--chalk);border-radius:4px;box-shadow:3px 3px 0 rgba(0,0,0,0.55);text-transform:uppercase;font-weight:700;letter-spacing:0.06em}
[data-design="comic"] .btn:active{box-shadow:1px 1px 0 rgba(0,0,0,0.55)}
[data-design="comic"] .btn-primary{background:var(--red);color:var(--chalk)}
[data-design="comic"] .btn-ghost{background:color-mix(in srgb,var(--accent) 22%,var(--ink))}
[data-design="comic"] #mainnav::after{height:4px;background:var(--red)}
[data-design="comic"] .ticker{border-top:3px solid var(--chalk);border-bottom:3px solid var(--chalk)}
[data-design="comic"] footer{border-top-width:5px}
[data-design="comic"] .foot-brand .red{text-shadow:3px 3px 0 rgba(0,0,0,0.4)}
[data-design="comic"] .livehead h1{text-shadow:3px 3px 0 rgba(var(--red-rgb,209,31,42),0.9)}

/* === industrial: Industrial === */
[data-design="industrial"] .hero::after{height:10px;background:repeating-linear-gradient(-45deg,var(--accent) 0 14px,color-mix(in srgb,var(--chalk) 6%,var(--black)) 14px 28px)}
[data-design="industrial"] .hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:repeating-linear-gradient(90deg,rgba(var(--chalk-rgb,245,244,241),0.03) 0 3px,transparent 3px 6px);mix-blend-mode:overlay}
[data-design="industrial"] .eyebrow,[data-design="industrial"] .hero-eyebrow{color:var(--chalk);letter-spacing:0.3em;font-weight:700;text-transform:uppercase}
[data-design="industrial"] .eyebrow::before,[data-design="industrial"] .hero-eyebrow::before{background:var(--accent);height:3px}
[data-design="industrial"] .hero h1{letter-spacing:0.02em;text-shadow:0 3px 0 rgba(0,0,0,0.5)}
[data-design="industrial"] .ticker{background:var(--red);border-bottom:3px solid color-mix(in srgb,var(--chalk) 6%,var(--black))}
[data-design="industrial"] .ticker-seq{letter-spacing:0.2em}
[data-design="industrial"] .sec-head h2{letter-spacing:0.08em;text-transform:uppercase}
[data-design="industrial"] .sec-num{border-radius:0;border:2px solid var(--accent);color:var(--chalk);background:transparent;font-weight:700;letter-spacing:0.14em}
[data-design="industrial"] .sec-rule{height:6px;background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--accent) 70%,transparent) 0 10px,transparent 10px 20px);opacity:0.75}
[data-design="industrial"] .sec-rule::after{display:none}
[data-design="industrial"] .stat,
[data-design="industrial"] .player,
[data-design="industrial"] .event,
[data-design="industrial"] .spon-card2,
[data-design="industrial"] .cd-cell,
[data-design="industrial"] .game{border-radius:0;border-color:color-mix(in srgb,var(--chalk) 18%,transparent);
  background-color:var(--ink);
  background-image:linear-gradient(180deg,color-mix(in srgb,var(--chalk) 4%,transparent),transparent),repeating-linear-gradient(90deg,rgba(var(--chalk-rgb,245,244,241),0.02) 0 2px,transparent 2px 4px)}
[data-design="industrial"] .stat::before,
[data-design="industrial"] .player::before,
[data-design="industrial"] .spon-card2::before{height:5px;background:repeating-linear-gradient(-45deg,var(--accent) 0 8px,color-mix(in srgb,var(--chalk) 6%,var(--black)) 8px 16px)}
[data-design="industrial"] .pname,
[data-design="industrial"] .game .opp{text-transform:uppercase;letter-spacing:0.04em}
[data-design="industrial"] .res{border-radius:0;letter-spacing:0.1em}
[data-design="industrial"] .gallery .tile{border-radius:0;filter:brightness(0.9) contrast(1.08) saturate(0.92)}
[data-design="industrial"] .spon-cta{border-radius:0}
[data-design="industrial"] .btn{border-radius:0;text-transform:uppercase;font-weight:700;letter-spacing:0.12em;border-width:2px}
[data-design="industrial"] .btn-primary{background:var(--red);border-color:color-mix(in srgb,var(--red) 55%,var(--black))}
[data-design="industrial"] .btn-ghost{border-color:var(--accent);color:var(--chalk);background:transparent}
[data-design="industrial"] .btn-ghost:hover{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--chalk);border-color:var(--accent)}
[data-design="industrial"] #mainnav{border-bottom:2px solid color-mix(in srgb,var(--chalk) 16%,transparent)}
[data-design="industrial"] #mainnav::after{height:4px;background:repeating-linear-gradient(-45deg,var(--accent) 0 12px,color-mix(in srgb,var(--chalk) 6%,var(--black)) 12px 24px)}
[data-design="industrial"] #totop{border-radius:0;border-color:var(--accent)}
[data-design="industrial"] footer{border-top:6px solid;border-image:repeating-linear-gradient(-45deg,var(--accent) 0 12px,color-mix(in srgb,var(--chalk) 6%,var(--black)) 12px 24px) 6}
[data-design="industrial"] .bracketbar{border-radius:0;border-color:color-mix(in srgb,var(--chalk) 18%,transparent)}
/* --- industrial LAYOUT: the spec sheet — registration brackets on every
   section, a hazard-railed hero readout, a parts-table roster (number cell,
   name, photo right), manifest game rows, and crop-marked photo plates --- */
[data-design="industrial"] section.wrap{position:relative}
/* html-prefixed + contested properties pinned so a finish pack sharing the
   pseudo (mesh's section.wrap::before wash) can never displace or fade the
   brackets — the blocks/retro80 band defense, on the wrap hook */
html[data-design="industrial"] section.wrap::before{content:"";position:absolute;top:16px;left:14px;right:auto;bottom:auto;width:30px;height:30px;border-top:3px solid var(--accent);border-left:3px solid var(--accent);background:none;opacity:1;z-index:auto;pointer-events:none}
html[data-design="industrial"] section.wrap::after{content:"";position:absolute;bottom:16px;right:14px;top:auto;left:auto;width:30px;height:30px;border-bottom:3px solid var(--accent);border-right:3px solid var(--accent);background:none;opacity:1;z-index:auto;pointer-events:none}
[data-design="industrial"] .hero-content{border-left:6px solid var(--accent);padding-left:34px;text-align:left}
[data-design="industrial"] .hero .eyebrow{justify-content:flex-start}
[data-design="industrial"] .hero-sub,
[data-design="industrial"] .hero-cta{justify-content:flex-start}
[data-design="industrial"] #roster .roster:not(.sq-grouped),
[data-design="industrial"] #roster .sq-group-grid{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:641px){
  [data-design="industrial"] #roster .roster:not(.sq-grouped),
  [data-design="industrial"] #roster .sq-group-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}
[data-design="industrial"] #roster .player{display:flex;flex-direction:row;align-items:stretch;gap:0;background-image:none;background:transparent;border:1px solid color-mix(in srgb,var(--chalk) 18%,transparent);border-radius:0;padding:0;text-align:left;overflow:hidden}
[data-design="industrial"] #roster .player::before{display:none}
[data-design="industrial"] #roster .player:hover{background:var(--ink);transform:none}
[data-design="industrial"] #roster .player .num{order:0;display:flex;align-items:center;justify-content:center;background:var(--ink);border-right:1px solid color-mix(in srgb,var(--chalk) 18%,transparent);padding:14px 14px;font-size:20px;min-width:70px;margin-top:0}
[data-design="industrial"] #roster .player .pname{order:1;align-self:center;padding:14px 16px;font-size:16px;margin-top:0;white-space:normal;overflow:visible}
[data-design="industrial"] #roster .player .pos{order:1;align-self:center;margin-top:0;padding-right:12px}
[data-design="industrial"] #roster .player .pphoto{order:2;width:48px;height:48px;aspect-ratio:1;border-radius:0;margin:0 12px 0 auto;align-self:center;flex:none;object-fit:cover}
[data-design="industrial"] .stat{outline:1px solid color-mix(in srgb,var(--chalk) 14%,transparent);outline-offset:-8px}
[data-design="industrial"] .sched-list{border-top:0}
[data-design="industrial"] .game{border:1px solid color-mix(in srgb,var(--chalk) 18%,transparent);border-left:8px solid var(--red);margin-bottom:12px;padding:18px 20px}
[data-design="industrial"] .game::before{display:none}
[data-design="industrial"] .game:hover{padding-left:20px}
[data-design="industrial"] .gallery{gap:22px}
[data-design="industrial"] .gallery .tile{outline:1px dashed color-mix(in srgb,var(--chalk) 30%,transparent);outline-offset:8px;aspect-ratio:1;object-fit:cover}

/* === glam: Glitter Glam === */
[data-design="glam"] #mainnav{border-bottom:none}
[data-design="glam"] #mainnav::after{content:"";display:block;height:2px;background:var(--rainbow);opacity:0.85}
[data-design="glam"] #mainnav a{text-transform:none;letter-spacing:0.03em;font-weight:600}
[data-design="glam"] .eyebrow,[data-design="glam"] .hero-eyebrow{letter-spacing:0.3em;font-weight:500;color:color-mix(in srgb,var(--red) 70%,var(--chalk))}
[data-design="glam"] .hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(160deg,color-mix(in srgb,var(--red) 26%,transparent),transparent 42%,color-mix(in srgb,var(--accent) 14%,transparent) 88%)}
[data-design="glam"] .hero h1{letter-spacing:0.01em;text-shadow:0 4px 30px color-mix(in srgb,var(--red) 45%,transparent),0 6px 40px rgba(0,0,0,0.35)}
[data-design="glam"] .hero h1 .red{background:linear-gradient(120deg,var(--red),color-mix(in srgb,var(--red) 55%,var(--accent)));-webkit-background-clip:text;background-clip:text;color:transparent}
[data-design="glam"] .ticker{background:linear-gradient(90deg,var(--red-hot),color-mix(in srgb,var(--red) 70%,var(--accent)))}
[data-design="glam"] .sec-head h2{text-transform:none;letter-spacing:0.01em}
[data-design="glam"] .sec-num{border-radius:999px;background:var(--grad-red);color:var(--chalk);border-color:transparent;box-shadow:0 6px 18px -8px color-mix(in srgb,var(--red) 70%,transparent)}
[data-design="glam"] .sec-rule{background:var(--rainbow);opacity:0.5;height:2px}
[data-design="glam"] .stat,
[data-design="glam"] .player,
[data-design="glam"] .event,
[data-design="glam"] .spon-card2,
[data-design="glam"] .spon-cta,
[data-design="glam"] .cd-cell{
  border-radius:18px;
  border-color:color-mix(in srgb,var(--red) 22%,var(--line));
  background:linear-gradient(180deg,color-mix(in srgb,var(--red) 8%,var(--ink)),var(--ink));
  box-shadow:0 14px 34px -22px color-mix(in srgb,var(--red) 60%,transparent)}
[data-design="glam"] .stat::before,
[data-design="glam"] .player::before,
[data-design="glam"] .spon-card2::before{background:var(--rainbow);opacity:0.9}
[data-design="glam"] .num,
[data-design="glam"] .stat .n span,
[data-design="glam"] .game .date .day{color:color-mix(in srgb,var(--red) 78%,var(--chalk))}
[data-design="glam"] .game{border-radius:14px;border-color:color-mix(in srgb,var(--red) 16%,var(--line))}
[data-design="glam"] .game .opp{text-transform:none}
[data-design="glam"] .res{border-radius:999px}
[data-design="glam"] .res.up{color:color-mix(in srgb,var(--red) 80%,var(--chalk));border-color:color-mix(in srgb,var(--red) 34%,transparent)}
[data-design="glam"] .gallery .tile{border-radius:16px;filter:saturate(1.06) brightness(1.02)}
[data-design="glam"] .btn{border-radius:999px;text-transform:none;letter-spacing:0.03em;font-weight:600}
[data-design="glam"] .btn-primary{background:linear-gradient(135deg,var(--red-hot),color-mix(in srgb,var(--red) 72%,var(--accent)));box-shadow:0 10px 24px -10px color-mix(in srgb,var(--red) 70%,transparent)}
[data-design="glam"] .btn-ghost{border-color:color-mix(in srgb,var(--red) 30%,transparent);background:color-mix(in srgb,var(--red) 7%,transparent)}
[data-design="glam"] .btn-ghost:hover{box-shadow:0 0 18px color-mix(in srgb,var(--red) 30%,transparent)}
[data-design="glam"] #totop{border-radius:50%;border-color:color-mix(in srgb,var(--red) 30%,transparent)}
[data-design="glam"] footer{border-top:2px solid transparent;border-image:var(--rainbow) 1}
[data-design="glam"] .foot-brand .red{background:linear-gradient(120deg,var(--red),color-mix(in srgb,var(--red) 55%,var(--accent)));-webkit-background-clip:text;background-clip:text;color:transparent}
[data-design="glam"] .livehead h1{text-transform:none;letter-spacing:0.01em}
[data-design="glam"] .bracketbar{border-radius:18px;border-color:color-mix(in srgb,var(--red) 24%,var(--line))}

/* === crisp === */
[data-finish="crisp"] .player,
[data-finish="crisp"] .game,
[data-finish="crisp"] .stat,
[data-finish="crisp"] .event,
[data-finish="crisp"] .spon-card2,
[data-finish="crisp"] .spon-cta,
[data-finish="crisp"] .tile,
[data-finish="crisp"] .cd-cell,
[data-finish="crisp"] .bracketbar,
[data-finish="crisp"] .btn,
[data-finish="crisp"] .sec-num,
[data-finish="crisp"] .res,
[data-finish="crisp"] .glb img{border-radius:0}
[data-finish="crisp"] .player,
[data-finish="crisp"] .game,
[data-finish="crisp"] .stat,
[data-finish="crisp"] .event,
[data-finish="crisp"] .spon-card2,
[data-finish="crisp"] .tile,
[data-finish="crisp"] .cd-cell{border-width:1px;box-shadow:none}
[data-finish="crisp"] .btn-primary{box-shadow:none}
[data-finish="crisp"] .btn-primary:hover{box-shadow:none}

/* === rounded === */
[data-finish="rounded"] .player,
[data-finish="rounded"] .stat,
[data-finish="rounded"] .event,
[data-finish="rounded"] .spon-card2,
[data-finish="rounded"] .spon-cta,
[data-finish="rounded"] .bracketbar,
[data-finish="rounded"] .cd-strip .cd-inner{border-radius:16px}
[data-finish="rounded"] .game,
[data-finish="rounded"] .tile,
[data-finish="rounded"] .cd-cell,
[data-finish="rounded"] .sec-num,
[data-finish="rounded"] .res,
[data-finish="rounded"] .glb img,
[data-finish="rounded"] .player .pphoto{border-radius:12px}
[data-finish="rounded"] .btn{border-radius:13px}

/* === pill === */
[data-finish="pill"] .btn,
[data-finish="pill"] .sec-num,
[data-finish="pill"] .res,
[data-finish="pill"] .bb-chip{border-radius:999px}
[data-finish="pill"] .player,
[data-finish="pill"] .stat,
[data-finish="pill"] .event,
[data-finish="pill"] .spon-card2,
[data-finish="pill"] .spon-cta,
[data-finish="pill"] .bracketbar{border-radius:26px}
[data-finish="pill"] .game,
[data-finish="pill"] .tile,
[data-finish="pill"] .cd-cell{border-radius:18px}
[data-finish="pill"] .player--join{border-radius:26px}

/* === shadowed === */
[data-finish="shadowed"] .player,
[data-finish="shadowed"] .game,
[data-finish="shadowed"] .stat,
[data-finish="shadowed"] .event,
[data-finish="shadowed"] .spon-card2,
[data-finish="shadowed"] .tile,
[data-finish="shadowed"] .cd-cell,
[data-finish="shadowed"] .bracketbar{
  box-shadow:0 10px 30px -8px rgba(0,0,0,0.45),0 2px 6px rgba(0,0,0,0.25);
  transition:box-shadow .28s ease,transform .28s ease}
@media (prefers-reduced-motion:no-preference){
  [data-finish="shadowed"] .player:hover,
  [data-finish="shadowed"] .game:hover,
  [data-finish="shadowed"] .spon-card2:hover,
  [data-finish="shadowed"] .tile:hover,
  [data-finish="shadowed"] .event:hover{
    box-shadow:0 20px 46px -10px rgba(0,0,0,0.6),0 4px 10px rgba(0,0,0,0.3)}
}
@media (prefers-reduced-motion:reduce){
  [data-finish="shadowed"] .player,
  [data-finish="shadowed"] .game,
  [data-finish="shadowed"] .stat,
  [data-finish="shadowed"] .spon-card2,
  [data-finish="shadowed"] .tile{transition:none}
}

/* === outlined === */
[data-finish="outlined"] .player,
[data-finish="outlined"] .stat,
[data-finish="outlined"] .event,
[data-finish="outlined"] .spon-card2,
[data-finish="outlined"] .spon-cta,
[data-finish="outlined"] .cd-cell,
[data-finish="outlined"] .bracketbar,
[data-finish="outlined"] .tile,
[data-finish="outlined"] .btn{
  border:2px solid rgba(var(--chalk-rgb,245,244,241),0.3);box-shadow:none}
[data-finish="outlined"] .btn-primary{border-color:var(--red)}
[data-finish="outlined"] .btn-primary:hover{box-shadow:none}
[data-finish="outlined"] .player:hover,
[data-finish="outlined"] .stat:hover,
[data-finish="outlined"] .spon-card2:hover,
[data-finish="outlined"] .tile:hover{box-shadow:none}
[data-finish="outlined"] .sched-list{border-top-width:2px}

/* === pinstripe === */
[data-finish="pinstripe"] body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:repeating-linear-gradient(90deg,
    transparent 0,transparent 22px,
    rgba(var(--chalk-rgb,245,244,241),0.05) 22px,
    rgba(var(--chalk-rgb,245,244,241),0.05) 23px);
  opacity:0.85}

/* === dots === */
[data-finish="dots"] body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:radial-gradient(rgba(var(--chalk-rgb,245,244,241),0.13) 1.4px,transparent 1.6px);
  background-size:24px 24px;background-position:center;opacity:0.7}

/* === topo === */
[data-finish="topo"] body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:0.08;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cg fill='none' stroke='%23808080' stroke-width='1.1'%3E%3Cpath d='M0 40 Q65 8 130 40 T260 40'/%3E%3Cpath d='M0 90 Q65 58 130 90 T260 90'/%3E%3Cpath d='M0 140 Q65 108 130 140 T260 140'/%3E%3Cpath d='M0 190 Q65 158 130 190 T260 190'/%3E%3Cpath d='M0 240 Q65 208 130 240 T260 240'/%3E%3C/g%3E%3C/svg%3E");
  background-size:300px 300px}

/* === mesh === */
[data-finish="mesh"] section.wrap::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0.09;
  background:
    radial-gradient(600px circle at 14% 22%,color-mix(in srgb,var(--red) 55%,transparent),transparent 60%),
    radial-gradient(520px circle at 86% 74%,color-mix(in srgb,var(--accent,var(--red)) 50%,transparent),transparent 62%)}

/* === grain === */
[data-finish="grain"] body::after{
  content:"";position:fixed;inset:0;z-index:100;pointer-events:none;
  mix-blend-mode:soft-light;opacity:0.4;
  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)' opacity='0.6'/%3E%3C/svg%3E");
  background-size:150px 150px}

/* === underline === */
[data-finish="underline"] .hero h1,
[data-finish="underline"] .sec-head h2{
  background-image:linear-gradient(var(--accent,var(--red)),var(--accent,var(--red)));
  background-repeat:no-repeat;background-position:0 100%;background-size:0% 3px;
  transition:background-size .35s ease}
[data-finish="underline"] .hero h1:hover,
[data-finish="underline"] .sec-head:hover h2{background-size:100% 3px}
[data-finish="underline"] .navlinks a::after{background:var(--accent,var(--red))}
@media (prefers-reduced-motion:reduce){
  [data-finish="underline"] .hero h1,
  [data-finish="underline"] .sec-head h2{transition:none}
}

/* === tape === */
[data-finish="tape"] .spon-card2{transform:rotate(-0.6deg)}
[data-finish="tape"] .spon-card2:nth-child(even){transform:rotate(0.6deg)}
[data-finish="tape"] .game{transform:rotate(0.25deg)}
[data-finish="tape"] .spon-card2::after,
[data-finish="tape"] .game::after{
  content:"";position:absolute;top:-9px;left:50%;margin-left:-38px;
  width:76px;height:18px;pointer-events:none;transform:rotate(-2.5deg);
  background:rgba(var(--chalk-rgb,245,244,241),0.16);
  border:1px solid var(--line);border-radius:2px;backdrop-filter:blur(1px)}

/* === glowedge === */
[data-finish="glowedge"] .btn-primary{
  border:1px solid var(--accent,var(--red));
  box-shadow:0 0 0 1px rgba(var(--accent-rgb,255,237,0),0.4),0 0 18px rgba(var(--accent-rgb,255,237,0),0.35);
  transition:box-shadow .25s ease}
[data-finish="glowedge"] .player{
  border-color:var(--accent,var(--red));
  box-shadow:0 0 24px rgba(var(--accent-rgb,255,237,0),0.26),inset 0 0 0 1px rgba(var(--accent-rgb,255,237,0),0.25)}
@media (prefers-reduced-motion:no-preference){
  [data-finish="glowedge"] .btn-primary:hover{
    box-shadow:0 0 0 1px var(--accent,var(--red)),0 0 26px rgba(var(--accent-rgb,255,237,0),0.55)}
}

/* === ticketcut === */
[data-finish="ticketcut"] .game,
[data-finish="ticketcut"] .spon-card2{
  --tc:13px;
  -webkit-mask:
    radial-gradient(var(--tc) at 0 50%,transparent 98%,#000 100%) left/51% 100% no-repeat,
    radial-gradient(var(--tc) at 100% 50%,transparent 98%,#000 100%) right/51% 100% no-repeat;
  mask:
    radial-gradient(var(--tc) at 0 50%,transparent 98%,#000 100%) left/51% 100% no-repeat,
    radial-gradient(var(--tc) at 100% 50%,transparent 98%,#000 100%) right/51% 100% no-repeat}

/* === airy === */
[data-finish="airy"] .player,
[data-finish="airy"] .stat,
[data-finish="airy"] .event,
[data-finish="airy"] .spon-card2{background:transparent;box-shadow:none;border-color:var(--line)}
[data-finish="airy"] .sched-list,
[data-finish="airy"] .game{border-color:var(--line)}
[data-finish="airy"] .sec-rule{background:var(--line)}
@media(min-width:641px){
  [data-finish="airy"] section.wrap{padding-top:104px;padding-bottom:104px}
  [data-finish="airy"] .sec-head{margin-bottom:60px}
}

/* === glitter === */
/* a fine sparkle field over the whole page — one-color star glyphs at two
   scales, blended so they shine on light AND dark team backgrounds; a soft
   slow twinkle that reduced-motion turns off. Decorative only: fixed layer,
   pointer-events:none, zero layout impact. */
[data-finish="glitter"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cpath fill='%23888' d='M22 14l1.8 4.2L28 20l-4.2 1.8L22 26l-1.8-4.2L16 20l4.2-1.8zM86 52l1.4 3.2 3.2 1.4-3.2 1.4-1.4 3.2-1.4-3.2-3.2-1.4 3.2-1.4zM48 92l1.8 4.2 4.2 1.8-4.2 1.8-1.8 4.2-1.8-4.2-4.2-1.8 4.2-1.8z'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='190' height='190' viewBox='0 0 190 190'%3E%3Cpath fill='%23888' d='M150 24l2.4 5.6 5.6 2.4-5.6 2.4-2.4 5.6-2.4-5.6-5.6-2.4 5.6-2.4zM40 120l1.5 3.5 3.5 1.5-3.5 1.5-1.5 3.5-1.5-3.5-3.5-1.5 3.5-1.5zM120 160l1.2 2.8 2.8 1.2-2.8 1.2-1.2 2.8-1.2-2.8-2.8-1.2 2.8-1.2z'/%3E%3C/svg%3E");
  background-size:120px 120px,190px 190px;
  background-position:0 0,40px 70px;
  mix-blend-mode:overlay;opacity:0.5}
[data-finish="glitter"] section.wrap{position:relative;z-index:1}
[data-finish="glitter"] .stat,
[data-finish="glitter"] .player,
[data-finish="glitter"] .event,
[data-finish="glitter"] .spon-card2{border-color:color-mix(in srgb,var(--accent) 16%,var(--line));box-shadow:inset 0 1px 0 color-mix(in srgb,var(--chalk) 16%,transparent),0 12px 28px -20px rgba(0,0,0,0.5)}
[data-finish="glitter"] .btn-primary{box-shadow:0 8px 22px -10px color-mix(in srgb,var(--red) 65%,transparent),inset 0 1px 0 color-mix(in srgb,var(--chalk) 30%,transparent)}
[data-finish="glitter"] .sec-head h2{text-shadow:0 1px 0 color-mix(in srgb,var(--chalk) 18%,transparent)}
@media (prefers-reduced-motion:no-preference){
  [data-finish="glitter"] body::before{animation:finGlitterTwinkle 7s ease-in-out infinite}
}
@keyframes finGlitterTwinkle{0%,100%{opacity:0.5}35%{opacity:0.28}70%{opacity:0.62}}

/* === SPORT VIBES (driven by --vibe 1..5) === */
/* Per-team "Sport Feel": the engine sets <html data-sport="…" data-vibe="n"> and
   defines --vibe (integer 1..5). Motifs scale continuously off --vibe via calc, so
   ONE rule set per sport covers every level — barely-there at 1, immersive at 5.
   Everything below is decorative: pseudo-elements only, pointer-events:none, no
   layout impact, and inert (opacity 0) when --vibe is unset. Motifs are one-color
   light-gray line SVGs (%23888) that read on light OR dark team backgrounds. */

/* shared decorative layers — scoped to any team with a sport set */
[data-sport] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-repeat:repeat;background-position:center;
  opacity:calc(var(--vibe,0) / 5 * 0.07); /* tops out ~0.07 so it never fights legibility */
}
[data-sport] .hero::before{ /* hero corner ball watermark — bolder, size + opacity scale */
  content:"";position:absolute;right:-2%;bottom:5%;z-index:1;pointer-events:none;
  width:min(calc(160px + var(--vibe,0) / 5 * 300px),62vw);
  height:min(calc(160px + var(--vibe,0) / 5 * 300px),62vw);
  background-repeat:no-repeat;background-position:center;background-size:contain;
  opacity:calc(var(--vibe,0) / 5 * 0.45);
}
[data-sport] footer{position:relative;overflow:hidden}
[data-sport] footer::after{ /* small accent glyph — fades in from 0 as vibe climbs */
  content:"";position:absolute;right:16px;bottom:12px;pointer-events:none;
  width:calc(38px + var(--vibe,0) / 5 * 66px);
  height:calc(38px + var(--vibe,0) / 5 * 66px);
  background-repeat:no-repeat;background-position:center;background-size:contain;
  opacity:calc(var(--vibe,0) / 5 * 0.22);
}
@media (prefers-reduced-motion:no-preference){
  [data-sport] .hero::before{animation:vibeFloat 13s ease-in-out infinite alternate}
  @keyframes vibeFloat{from{transform:translateY(0)}to{transform:translateY(10px)}}
}

/* softball — seam-stitched balls */
[data-sport="softball"] body::after{background-size:calc(52px + var(--vibe,0) / 5 * 44px);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' fill='none' stroke='%23888' stroke-width='1.3' stroke-linecap='round'%3E%3Ccircle cx='30' cy='30' r='15'/%3E%3Cpath d='M19 22c5 5 5 11 0 16M41 22c-5 5-5 11 0 16'/%3E%3C/svg%3E")}
[data-sport="softball"] .hero::before,
[data-sport="softball"] footer::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='1' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M6 5c3 3 3 11 0 14M18 5c-3 3-3 11 0 14'/%3E%3C/svg%3E")}

/* kickball — panelled playground balls */
[data-sport="kickball"] body::after{background-size:calc(52px + var(--vibe,0) / 5 * 44px);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' fill='none' stroke='%23888' stroke-width='1.3' stroke-linecap='round'%3E%3Ccircle cx='30' cy='30' r='15'/%3E%3Cpath d='M30 15v30M16 25c9 4 19 4 28 0M16 35c9-4 19-4 28 0'/%3E%3C/svg%3E")}
[data-sport="kickball"] .hero::before,
[data-sport="kickball"] footer::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='1' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 3v18M4 9c5 2 11 2 16 0M4 15c5-2 11-2 16 0'/%3E%3C/svg%3E")}

/* volleyball — curved panel seams */
[data-sport="volleyball"] body::after{background-size:calc(54px + var(--vibe,0) / 5 * 46px);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' fill='none' stroke='%23888' stroke-width='1.3' stroke-linecap='round'%3E%3Ccircle cx='30' cy='30' r='15'/%3E%3Cpath d='M30 15c-6 7-6 23 0 30M17 24c6 6 15 7 26 5M22 44c0-13 7-21 21-24'/%3E%3C/svg%3E")}
[data-sport="volleyball"] .hero::before,
[data-sport="volleyball"] footer::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='1' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 3c-4 4-4 14 0 18M3 9c4 4 10 5 18 3M6 20c0-8 4-13 12-15'/%3E%3C/svg%3E")}

/* dodgeball — plain balls with a shine arc */
[data-sport="dodgeball"] body::after{background-size:calc(46px + var(--vibe,0) / 5 * 40px);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50' fill='none' stroke='%23888' stroke-width='1.3' stroke-linecap='round'%3E%3Ccircle cx='25' cy='25' r='13'/%3E%3Cpath d='M18 19a9 9 0 0 1 9-3'/%3E%3C/svg%3E")}
[data-sport="dodgeball"] .hero::before,
[data-sport="dodgeball"] footer::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='1' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M6 10a8 8 0 0 1 8-3'/%3E%3C/svg%3E")}

/* cornhole — slanted board with a hole and a bag */
[data-sport="cornhole"] body::after{background-size:calc(58px + var(--vibe,0) / 5 * 50px);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 70 70' fill='none' stroke='%23888' stroke-width='1.3' stroke-linejoin='round'%3E%3Cpath d='M12 46L40 20l18 6-28 26z'/%3E%3Ccircle cx='41' cy='31' r='4'/%3E%3Crect x='20' y='40' width='8' height='8' rx='1.5' transform='rotate(18 24 44)'/%3E%3C/svg%3E")}
[data-sport="cornhole"] .hero::before,
[data-sport="cornhole"] footer::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='1' stroke-linejoin='round'%3E%3Cpath d='M4 16L14 7l6 2-10 9z'/%3E%3Ccircle cx='14.5' cy='10.5' r='1.6'/%3E%3C/svg%3E")}

/* bowling — pins */
[data-sport="bowling"] body::after{background-size:calc(48px + var(--vibe,0) / 5 * 42px);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' fill='none' stroke='%23888' stroke-width='1.3' stroke-linejoin='round'%3E%3Cpath d='M30 10c-2.4 0-4 2.4-4 5 0 1.4.6 2.7 1.3 3.6-1.7 3.1-2.9 7.6-2.9 12.3 0 5 2.2 8.4 5.6 8.4s5.6-3.4 5.6-8.4c0-4.7-1.2-9.2-2.9-12.3.7-.9 1.3-2.2 1.3-3.6 0-2.6-1.6-5-4-5z'/%3E%3C/svg%3E")}
[data-sport="bowling"] .hero::before,
[data-sport="bowling"] footer::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='1' stroke-linejoin='round'%3E%3Cpath d='M9 3c-1.3 0-2.2 1.3-2.2 2.8 0 .8.4 1.5.8 2-1 1.7-1.6 4.2-1.6 6.8 0 2.8 1.2 4.6 3 4.6s3-1.8 3-4.6c0-2.6-.6-5.1-1.6-6.8.4-.5.8-1.2.8-2C11 4.3 10.3 3 9 3z'/%3E%3Ccircle cx='18' cy='17' r='4'/%3E%3C/svg%3E")}

/* generic — abstract chevron / motion marks */
[data-sport="generic"] body::after{background-size:calc(40px + var(--vibe,0) / 5 * 36px);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='%23888' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 14l14 8 14-8M6 26l14 8 14-8'/%3E%3C/svg%3E")}
[data-sport="generic"] .hero::before,
[data-sport="generic"] footer::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M7 11l5 3 5-3M7 15l5 3 5-3'/%3E%3C/svg%3E")}
