/* Self-hosted fonts (SIL Open Font License): Archivo Black (Omnibus-Type), Manrope (The Manrope Project Authors). */
@font-face { font-family: "Archivo Black"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/ArchivoBlack-400.woff2") format("woff2"); }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 200 800; font-display: swap; src: url("fonts/Manrope-var-latin.woff2") format("woff2"); }
:root {
  color-scheme: dark;
  --ink: #0b0b0d;
  --panel: #151518;
  --panel-2: #202024;
  --paper: #f4f2ef;
  --muted: #b5b4ba;
  --line: #414147;
  --red: #ed303b;
  --red-text: #ff6972;
  --display: "Archivo Black", Impact, "Arial Black", sans-serif;
  --body: "Manrope", Inter, system-ui, sans-serif;
  --gutter: clamp(20px, 4vw, 64px);
  --max: 1312px;
}
* { box-sizing: border-box; }
html { scroll-behavior: auto; scroll-padding-top: 24px; }
body { margin: 0; background: var(--ink); color: var(--paper); font-family: var(--body); font-size: 16px; line-height: 1.6; }
body, button, input, select, textarea { font-family: var(--body); }
button, input, select, textarea { font-size: 1rem; }
button, a, summary, input, textarea, select { -webkit-tap-highlight-color: transparent; }
button, summary { cursor: pointer; }
button { color: inherit; }
a { color: inherit; text-underline-offset: .22em; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--paper); outline-offset: 5px; }
img { display: block; max-width: 100%; height: auto; }
figure, blockquote { margin: 0; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { line-height: 1.03; font-family: var(--display); font-weight: 900; text-wrap: balance; }
h1, h2 { text-transform: uppercase; }
h1 { font-size: clamp(3.25rem, 7.5vw, 7.5rem); letter-spacing: -.025em; margin-bottom: 24px; }
h2 { font-size: clamp(2.5rem, 4.8vw, 4.8rem); letter-spacing: -.02em; margin-bottom: 24px; }
h3 { font-size: clamp(1.5rem, 2.6vw, 2.6rem); margin-bottom: 16px; }
h4 { font-size: 1.4rem; }
p { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }
small { font-size: .8125rem; }
ul, ol { padding-left: 1.35em; }
li { margin-bottom: .5em; }
::selection { background: var(--red); color: white; }
[hidden] { display: none !important; }
.wrap { width: min(var(--max), calc(100% - var(--gutter) * 2)); margin-inline: auto; }
.skip { position: absolute; top: -100px; left: 20px; z-index: 20; padding: 12px 20px; background: var(--paper); color: var(--ink); }
.skip:focus { top: 12px; }
.preview-note { border-bottom: 1px solid var(--line); color: var(--muted); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; padding: 7px var(--gutter); }
.preview-note strong { color: var(--paper); font-weight: 600; }
.header { border-bottom: 1px solid var(--line); }
.header-inner { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.wordmark { display: inline-flex; flex-shrink: 0; align-items: center; gap: 14px; text-decoration: none; }
.wordmark b { font-family: var(--display); font-size: 3.3rem; line-height: .95; letter-spacing: -.025em; }
.wordmark span { font-size: .75rem; text-transform: uppercase; letter-spacing: .12em; line-height: 1.35; max-width: 80px; }
.desktop-nav { display: flex; align-items: center; gap: clamp(16px, 2vw, 32px); font-size: .875rem; font-weight: 650; }
.desktop-nav a { text-decoration: none; padding: 12px 0; border-bottom: 2px solid transparent; }
.desktop-nav a:hover, .desktop-nav a[aria-current="page"] { border-bottom-color: var(--red); }
.desktop-nav .nav-partner { border: 1px solid var(--line); padding: 10px 17px; }
.desktop-nav .nav-partner[aria-current="page"] { border-color: var(--red); background: #ed303b12; }
.mobile-menu a[aria-current="page"] { color: var(--red-text); box-shadow: inset 3px 0 var(--red); }
.mobile-menu { display: none; }
.eyebrow, .meta, .kicker { font-size: .8125rem; font-weight: 650; text-transform: uppercase; letter-spacing: .11em; }
.eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 24px; color: var(--muted); }
.eyebrow::before { content: ""; width: 28px; height: 3px; background: var(--red); }
.kicker { color: var(--red-text); }
.muted { color: var(--muted); }
.red { color: var(--red-text); }
.tag { display: inline-block; font-family: var(--body); font-size: .75rem; line-height: 1.4; font-weight: 750; letter-spacing: .07em; border: 1px solid #85858d; color: #e7e6e9; padding: 3px 5px; vertical-align: middle; text-transform: uppercase; white-space: nowrap; }
.tag-draft { border-color: #8e5459; color: #ffc4c7; }
.page-head { padding: 72px 0 48px; border-bottom: 1px solid var(--line); }
.page-head .lead { max-width: 760px; }
.lead { font-size: clamp(1.08rem, 1.6vw, 1.3rem); line-height: 1.55; color: #ceccd2; max-width: 620px; }
.section { padding-block: 72px; }
.section + .section { border-top: 1px solid var(--line); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 32px; }
.section-heading h2, .section-heading h3 { margin-bottom: 0; }
.section-heading p { max-width: 420px; color: var(--muted); }
.section-heading a { flex-shrink: 0; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.btn { display: inline-flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 28px; padding: 13px 20px; border: 1px solid var(--line); text-decoration: none; font-weight: 700; line-height: 1.35; background: transparent; }
.btn::after { content: "↗"; font-size: 1.15em; }
.btn-primary { background: var(--red); border-color: var(--red); color: var(--ink); }
.btn-light { background: var(--paper); border-color: var(--paper); color: var(--ink); }
.btn:hover { border-color: var(--paper); }
.text-link { font-size: .875rem; font-weight: 700; }
.hero { display: grid; grid-template-columns: 1.12fr 1fr; gap: 5%; align-items: center; padding-block: 52px; }
.hero-title { font-size: clamp(4rem, 8.2vw, 8.2rem); line-height: .97; letter-spacing: -.025em; margin-bottom: 30px; }
.hero-title span { display: block; }
.hero-title .outline { color: var(--paper); -webkit-text-stroke: 1px var(--paper); }
@supports (-webkit-text-stroke: 1px white) { .hero-title .outline { color: transparent; } }
.poster { position: relative; background: var(--red); color: var(--ink); padding: 28px; display: flex; flex-direction: column; min-height: 560px; border: 1px solid var(--red); }
.poster-top { display: flex; justify-content: space-between; gap: 16px; font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; padding-bottom: 18px; border-bottom: 2px solid var(--ink); }
.poster-type { font-family: var(--display); font-size: clamp(4rem, 7vw, 7rem); text-transform: uppercase; line-height: .94; letter-spacing: -.02em; padding: 28px 0; }
.poster-type span { display: block; }
.poster-source { border: 1px solid #592328; padding: 12px 14px; font-size: .75rem; font-weight: 650; max-width: 350px; margin-top: auto; }
.poster-bottom { display: flex; justify-content: space-between; align-items: end; gap: 20px; padding-top: 22px; }
.poster-bottom b { display: block; font-family: var(--display); font-size: 2.25rem; line-height: 1.1; }
.poster-bottom small { font-weight: 650; }
.proof-strip { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.proof { padding: 24px 28px; border-right: 1px solid var(--line); display: flex; align-items: center; gap: 24px; }
.proof:first-child { padding-left: 0; }
.proof:last-child { border: 0; }
.proof b { font-family: var(--display); font-size: clamp(2.5rem, 4vw, 4rem); line-height: 1; }
.proof span { font-size: .8125rem; color: var(--muted); max-width: 130px; line-height: 1.4; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 6%; }
.split-wide { display: grid; grid-template-columns: 1.6fr 1fr; gap: 32px; }
.prose { max-width: 730px; }
.prose p { color: #ceccd2; }
.prose strong { color: var(--paper); }
.large-copy { font-size: clamp(1.35rem, 2.6vw, 2rem); line-height: 1.4; }
.panel { background: var(--panel); border: 1px solid var(--line); padding: 28px; min-width: 0; }
.panel-plain { padding: 28px; border: 1px solid var(--line); min-width: 0; }
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.two-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.four-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.number { font-family: var(--display); line-height: 1; font-size: 4rem; color: var(--red-text); margin-bottom: 28px; }
.tale { border: 1px solid var(--line); background: var(--panel); }
.tale-header { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 18px 24px; border-bottom: 1px solid var(--line); background: var(--paper); color: var(--ink); }
.tale-header b { font-family: var(--display); font-size: 1.5rem; text-transform: uppercase; line-height: 1.25; }
.tale-header span { font-size: .8125rem; align-self: center; }
.faceoff { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; padding: 36px 24px; }
.faceoff .side:last-child { text-align: right; }
.side .name { font-family: var(--display); font-size: clamp(1.8rem, 4.3vw, 4rem); line-height: 1.05; text-transform: uppercase; overflow-wrap: break-word; }
.side .role { color: var(--muted); font-size: .8125rem; margin-bottom: 10px; }
.versus { color: var(--red-text); font-family: var(--display); font-size: 1.2rem; }
.tale-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; padding: 14px 24px; border-top: 1px solid var(--line); font-size: .9375rem; }
.tale-row > :nth-child(2) { text-align: center; color: var(--muted); font-size: .8125rem; }
.tale-row > :last-child { text-align: right; }
.record-note { font-size: .8125rem; padding: 18px 24px; color: var(--muted); border-top: 1px solid var(--line); line-height: 1.6; }
.record-note a { color: var(--paper); }
.youth { --volt: #d8f451; border-color: #5e682e; }
.youth .kicker, .youth .number, .youth .episode-number { color: var(--volt); }
.youth-feature { background: #1d2015; display: grid; grid-template-columns: 1fr 1fr; gap: 36px; padding: 40px; }
.episode-art { background: #11130e; border: 1px solid #5e682e; min-height: 260px; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; }
.episode-art .episode-number { font-family: var(--display); font-size: 6rem; line-height: 1; }
.episode-art .series-type { font-family: var(--display); font-size: 2.3rem; line-height: 1; }
.episode-art small { color: #c2c5b4; }
.band { padding: 40px; background: var(--paper); color: var(--ink); display: flex; justify-content: space-between; gap: 30px; align-items: center; }
.band h3 { margin: 0 0 8px; }
.band .btn { border-color: var(--ink); flex-shrink: 0; }
.band .muted { color: #55545a; }
.field-list { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin-bottom: 0; }
.field-list li { border: 1px solid var(--line); padding: 12px 16px; margin: 0; }
.field-list .champ { border-color: var(--red); }
.source-box { font-size: .875rem; color: var(--muted); border-top: 1px solid var(--line); margin-top: 24px; padding-top: 20px; }
details { border-bottom: 1px solid var(--line); }
summary { padding: 17px 0; min-height: 48px; font-weight: 700; color: var(--paper); }
details > .detail-body { padding: 0 0 20px; }
.notice { border-left: 3px solid var(--red); padding: 16px 20px; background: var(--panel); color: #ceccd2; margin: 24px 0; font-size: .875rem; }
.photo-slot { min-height: 270px; background: var(--panel-2); border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; text-align: center; padding: 24px; }
.photo-slot b { display: block; font-family: var(--display); font-size: 2rem; line-height: 1.1; text-transform: uppercase; margin-bottom: 14px; }
.photo-slot small { color: var(--muted); }
.portrait-slot { aspect-ratio: 4 / 5; min-height: 0; margin-bottom: 24px; }
.team-card h3 { font-size: 2rem; }
.team-card .meta { margin-bottom: 18px; color: var(--red-text); }
.founder-letter { border-top: 5px solid var(--red); padding: 40px; background: var(--paper); color: var(--ink); }
.founder-letter p { font-size: clamp(1.25rem, 2.1vw, 1.65rem); line-height: 1.6; }
.founder-letter .tag { color: #792630; border-color: #792630; margin-bottom: 24px; }
.founder-letter .signature { font-size: .875rem; margin-top: 32px; }
.inventory { counter-reset: inventory; }
.inventory-row { display: grid; grid-template-columns: 60px 1fr 1fr; gap: 24px; border-top: 1px solid var(--line); padding: 32px 0; }
.inventory-row::before { counter-increment: inventory; content: "0" counter(inventory); font-family: var(--display); font-size: 2rem; color: var(--red-text); }
.inventory-row h3 { font-size: 2rem; }
.inventory-row p { color: var(--muted); }
.season-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.season-card { background: var(--ink); padding: 24px; text-decoration: none; display: block; min-height: 210px; }
.season-card:hover { background: var(--panel); }
.season-card:first-child { background: #281719; }
.season-card .season-num { display: block; font-family: var(--display); color: #737279; font-size: 3rem; line-height: 1; margin: 20px 0; }
.season-card:first-child .season-num { color: var(--red-text); }
.season-card b { font-size: 1.125rem; }
.season-card small { display: block; color: var(--muted); margin-top: 6px; }
.state-tabs { display: flex; flex-wrap: wrap; gap: 4px; padding-bottom: 24px; }
.state-tabs button { border: 1px solid var(--line); background: var(--panel); min-height: 48px; padding: 12px 20px; font-weight: 650; }
.state-tabs button[aria-selected="true"] { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.state-panel { margin-bottom: 40px; }
.state-panel:last-child { margin-bottom: 0; }
.state-panel > h2 { font-size: clamp(2rem, 3.6vw, 3.6rem); }
.screen { aspect-ratio: 16 / 9; width: 100%; max-width: 100%; box-sizing: border-box; background: #171719; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; padding: 24px; text-align: center; }
.screen .screen-icon { display: block; font-family: var(--display); font-size: 3rem; line-height: 1; margin-bottom: 18px; color: var(--red-text); }
.screen b { display: block; font-family: var(--display); font-size: clamp(1.5rem, 2.8vw, 3rem); line-height: 1.1; text-transform: uppercase; }
.screen p { color: var(--muted); font-size: .875rem; margin: 14px auto 0; max-width: 400px; }
.screen-caption { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 12px; font-size: .8125rem; color: var(--muted); }
.live-layout { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(280px, 1fr); gap: 24px; align-items: start; }
.companion { border: 1px solid var(--line); min-width: 0; }
.companion > header { padding: 16px 20px; border-bottom: 1px solid var(--line); }
.companion > header h3 { font-size: 1.4rem; margin: 6px 0; }
.companion .state-tabs { padding: 12px; gap: 2px; }
.companion .state-tabs button { flex: 1; min-width: 0; font-size: .8125rem; padding: 10px 7px; }
.companion .state-panel { padding: 4px 20px 20px; margin: 0; }
.companion h4 { font-size: 1.4rem; margin: 16px 0; }
.companion .pair { font-family: var(--display); font-size: 1.7rem; line-height: 1.3; text-transform: uppercase; }
.companion .pair span { color: var(--red-text); font-size: 1rem; display: block; }
.mini-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 18px 0; }
.mini-stat { padding-top: 10px; border-top: 1px solid var(--line); }
.mini-stat b { display: block; font-size: 1.15rem; }
.mini-stat small { color: var(--muted); }
.run-row { display: grid; grid-template-columns: 120px 1fr auto; gap: 20px; align-items: center; border-top: 1px solid var(--line); padding: 24px 0; }
.run-row h3 { font-size: 1.5rem; margin-bottom: 6px; }
.run-row p { font-size: .875rem; color: var(--muted); }
.run-row .meta { color: var(--red-text); }
.empty { border: 1px dashed #707078; background: var(--panel); padding: 32px; }
.empty h3 { font-size: 2rem; }
.locked-grid { display: grid; grid-template-columns: repeat(8, 1fr); gap: 8px; margin-block: 28px; }
.locked-card { min-height: 150px; background: var(--panel); border: 1px solid var(--line); display: flex; flex-direction: column; justify-content: space-between; padding: 14px; }
.locked-card b { color: #929199; font-family: var(--display); font-size: 2rem; line-height: 1; }
.locked-card small { font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.selector .state-tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.selector .state-tabs button { padding: 16px 12px; min-height: 72px; font-family: var(--display); text-transform: uppercase; font-size: 1.1rem; text-align: left; }
.selector .state-tabs button[aria-selected="true"] { background: var(--red); color: var(--ink); border-color: var(--red); }
.athlete-card { display: grid; grid-template-columns: 1fr 1.4fr; border: 1px solid var(--line); }
.athlete-visual { padding: 30px; background: #26181b; display: flex; flex-direction: column; justify-content: space-between; min-height: 330px; border-right: 1px solid var(--line); }
.athlete-visual .alias { font-family: var(--display); font-size: clamp(2.7rem, 4.7vw, 4.8rem); line-height: 1.05; text-transform: uppercase; overflow-wrap: anywhere; }
.athlete-visual .slot-label { border-top: 1px solid #78535a; padding-top: 16px; font-size: .8125rem; color: var(--muted); margin-top: 28px; }
.athlete-info { padding: 32px; }
.athlete-info h3 { font-size: 1.6rem; }
.athlete-info dl { margin: 0; }
.athlete-info dl > div { display: flex; justify-content: space-between; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.athlete-info dt { color: var(--muted); font-size: .875rem; }
.athlete-info dd { margin: 0; text-align: right; }
.bracket { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.bracket-round h3 { font-family: var(--body); text-transform: uppercase; letter-spacing: .07em; font-size: .875rem; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.bout { background: var(--panel); border: 1px solid var(--line); padding: 20px; margin-bottom: 14px; }
.bout .winner { color: var(--red-text); font-weight: 700; }
.bout b { display: block; }
.bout small { color: var(--muted); display: block; margin-top: 12px; }
.result-list { list-style: none; padding: 0; }
.result-list li { border-top: 1px solid var(--line); padding: 18px 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }
.result-list small { color: var(--muted); }
.rules-grid { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid var(--line); }
.rule { padding: 24px 20px; border-right: 1px solid var(--line); min-width: 0; }
.rule:last-child { border: 0; }
.rule h3 { font-family: var(--body); font-size: 1.1rem; font-weight: 750; min-height: 1.8em; }
.rule p { color: var(--muted); font-size: .875rem; }
.rule a { font-size: .8125rem; }
.judge-slots { display: flex; flex-wrap: wrap; gap: 8px; margin-block: 24px; }
.judge-vote { min-width: 62px; padding: 12px 16px; border: 1px solid var(--line); text-align: center; }
.judge-vote b { display: block; font-family: var(--display); font-size: 1.7rem; }
.judge-vote small { font-size: .75rem; }
.judge-vote.a { border-color: var(--red); background: #361c20; }
.media-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.episode { border: 1px solid var(--line); padding: 20px; scroll-margin-top: 24px; }
.episode h3 { margin: 24px 0 14px; }
.episode .episode-art { min-height: 225px; }
.episode .episode-art .episode-number { font-size: 4.5rem; }
.episode .screen { aspect-ratio: auto; min-height: 200px; padding: 16px; }
.episode details { margin-block: 12px; }
.episode .next-watch { display: block; border-top: 1px solid var(--line); padding-top: 14px; font-size: .875rem; }
.archive-row { display: grid; grid-template-columns: 135px 1fr auto; gap: 24px; padding: 30px 0; border-top: 1px solid var(--line); }
.archive-row .year { font-family: var(--display); font-size: 3rem; line-height: 1; }
.archive-row h3 { font-size: 2.25rem; }
.archive-row > .btn { align-self: start; }
.form { background: var(--panel); border: 1px solid var(--line); padding: 32px; }
.form h2 { font-size: clamp(2rem, 3vw, 3rem); }
.form fieldset { border: 0; padding: 0; margin: 24px 0 0; min-width: 0; }
.form label { display: block; margin: 18px 0 7px; font-size: .9375rem; font-weight: 600; }
.form input:not([type="checkbox"]), .form select, .form textarea { width: 100%; border: 1px solid #66656d; border-radius: 0; background: var(--ink); color: var(--paper); padding: 13px; min-height: 48px; }
.form textarea { min-height: 125px; resize: vertical; }
.form .checkbox { display: flex; align-items: start; gap: 12px; font-size: .875rem; font-weight: 400; }
.checkbox input { width: 20px; height: 20px; margin-top: 3px; flex-shrink: 0; }
.form button { margin-top: 24px; }
.form fieldset:disabled { opacity: .75; }
.form :disabled { cursor: not-allowed; }
.form-note { color: var(--muted); font-size: .8125rem; margin-top: 18px; }
.broadcast-ticker { border-block: 1px solid var(--line); padding: 14px 0; display: flex; flex-wrap: wrap; gap: 14px 30px; font-size: .8125rem; text-transform: uppercase; letter-spacing: .07em; }
.broadcast-ticker b { color: var(--red-text); }
.broadcast-hero { padding-top: 40px; }
.broadcast-hero h1 { font-size: clamp(3.5rem, 7.2vw, 6.8rem); }
.broadcast-top { display: grid; grid-template-columns: 1.7fr 1fr; gap: 40px; }
.broadcast-status { padding-left: 24px; border-left: 3px solid var(--red); align-self: end; }
.broadcast-status b { display: block; font-family: var(--display); font-size: 2.5rem; line-height: 1.2; }
.broadcast-main { display: grid; grid-template-columns: 1.7fr 1fr; gap: 24px; margin-top: 32px; }
.standings-empty { padding: 28px; border: 1px solid var(--line); background: var(--panel); }
.standings-empty h2 { font-size: 2rem; }
.standings-empty .big-dash { font-family: var(--display); font-size: 5rem; line-height: 1; color: #8d8c93; padding: 20px 0; }
.og-preview { border: 1px solid var(--line); }
.footer { margin-top: 40px; padding: 48px 0 22px; border-top: 1px solid var(--line); }
.footer-top { display: flex; justify-content: space-between; gap: 40px; margin-bottom: 48px; }
.footer-brand { max-width: 330px; }
.footer-brand .wordmark { margin-bottom: 20px; }
.footer-brand p { color: var(--muted); font-size: .875rem; }
.footer-nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.footer-nav b { display: block; color: var(--muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 14px; }
.footer-nav a { display: block; font-size: .875rem; margin-block: 9px; text-decoration: none; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px; border-top: 1px solid var(--line); padding-top: 20px; font-size: .75rem; color: var(--muted); }
.review-table { width: 100%; border-collapse: collapse; }
.review-table th, .review-table td { padding: 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.review-table th { font-size: .8125rem; color: var(--muted); }
.review-table td:first-child { min-width: 170px; }
@media (min-width: 1441px) { .hero-title { font-size: 8.2rem; } }
@media (max-width: 1100px) {
  .wordmark span { display: none; }
  .desktop-nav { gap: 18px; }
  .hero { gap: 4%; }
  .poster { min-height: 490px; padding: 22px; }
  .rules-grid { grid-template-columns: repeat(3, 1fr); }
  .rule { border-bottom: 1px solid var(--line); }
  .rule:last-child { border-right: 1px solid var(--line); }
  .four-grid { grid-template-columns: repeat(2, 1fr); }
  .locked-grid { grid-template-columns: repeat(4, 1fr); }
  .live-layout { grid-template-columns: minmax(0, 1.5fr) minmax(260px, 1fr); }
  .media-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .header-inner { min-height: 80px; align-items: center; }
  .wordmark b { font-size: 2.8rem; }
  .wordmark span { display: block; font-size: .75rem; }
  .desktop-nav { display: none; }
  .mobile-menu { display: block; border: 0; position: relative; }
  .mobile-menu summary { list-style: none; border: 1px solid var(--line); padding: 12px 16px; font-size: .875rem; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .mobile-menu summary::after { content: " +"; color: var(--red-text); }
  .mobile-menu[open] summary::after { content: " −"; }
  .mobile-menu nav { position: absolute; right: 0; top: 55px; z-index: 10; width: min(310px, 84vw); background: var(--panel); border: 1px solid var(--line); padding: 14px 22px; box-shadow: 0 15px 35px #0009; }
  .mobile-menu nav a { display: block; padding: 12px 0; text-decoration: none; border-bottom: 1px solid var(--line); }
  .mobile-menu nav a:last-child { border: 0; }
  .preview-note { font-size: .75rem; letter-spacing: .055em; }
  .hero { grid-template-columns: 1fr; padding: 36px 0; gap: 32px; }
  .hero-title { font-size: clamp(4rem, 15vw, 6.5rem); max-width: 600px; }
  .hero .lead { max-width: 480px; }
  .poster { min-height: 460px; }
  .poster-type { font-size: clamp(4.3rem, 14vw, 6rem); }
  .poster-bottom b { font-size: 2rem; }
  .proof { padding: 18px 12px; gap: 10px; flex-direction: column; align-items: start; }
  .proof:first-child { padding-left: 0; }
  .proof b { font-size: 2.5rem; }
  .proof span { font-size: .75rem; }
  .section { padding-block: 48px; }
  .page-head { padding: 44px 0 32px; }
  .section-heading { align-items: start; flex-direction: column; gap: 16px; }
  .split, .split-wide, .two-grid, .live-layout, .broadcast-top, .broadcast-main, .youth-feature { grid-template-columns: 1fr; gap: 28px; }
  .card-grid { grid-template-columns: 1fr; }
  .youth-feature, .panel, .panel-plain, .band, .founder-letter, .form { padding: 24px; }
  .band { flex-direction: column; align-items: start; }
  .faceoff { padding: 28px 16px; gap: 8px; }
  .side .name { font-size: clamp(1.8rem, 7vw, 3rem); }
  .side .role { font-size: .75rem; }
  .tale-row { padding: 14px 16px; font-size: .875rem; gap: 8px; grid-template-columns: 1fr 1.1fr 1fr; }
  .tale-row > :nth-child(2) { font-size: .75rem; }
  .tale-header { padding: 16px; }
  .tale-header b { font-size: 1.3rem; }
  .record-note { padding: 16px; }
  .inventory-row { grid-template-columns: 40px 1fr; gap: 16px; }
  .inventory-row > p { grid-column: 2; }
  .season-grid { grid-template-columns: repeat(2, 1fr); }
  .season-card { padding: 20px 16px; min-height: 210px; }
  .season-card .meta { font-size: .75rem; }
  .season-card b { font-size: 1rem; }
  .run-row { grid-template-columns: 1fr; gap: 10px; }
  .run-row .tag { justify-self: start; }
  .athlete-card { grid-template-columns: 1fr; }
  .athlete-visual { min-height: 265px; border-right: 0; border-bottom: 1px solid var(--line); padding: 24px; }
  .athlete-visual .alias { font-size: clamp(3rem, 12vw, 4.5rem); }
  .athlete-info { padding: 24px; }
  .selector .state-tabs { grid-template-columns: repeat(2, 1fr); }
  .selector .state-tabs button { min-height: 66px; }
  .locked-card { min-height: 115px; padding: 12px; }
  .locked-card small { font-size: .75rem; }
  .bracket { grid-template-columns: 1fr; }
  .rules-grid { grid-template-columns: 1fr; }
  .rule { display: grid; grid-template-columns: 70px 1fr; gap: 0 12px; border-right: 0; }
  .rule:last-child { border: 0; }
  .rule h3 { margin: 5px 0 10px; min-height: 0; }
  .rule p { margin-bottom: 14px; }
  .archive-row { grid-template-columns: 1fr; gap: 16px; }
  .archive-row > .btn { justify-self: start; }
  .footer-top { flex-direction: column; gap: 32px; }
  .footer-nav { gap: 20px; }
  .footer-nav a { font-size: .8125rem; }
  .broadcast-status { padding-block: 10px; }
  .review-table, .review-table tbody, .review-table tr, .review-table td { display: block; }
  .review-table thead { display: none; }
  .review-table td { padding: 10px 0; border: 0; }
  .review-table tr { border-bottom: 1px solid var(--line); padding: 18px 0; }
}
@media (max-width: 480px) {
  .four-grid, .media-grid { grid-template-columns: 1fr; }
  .eyebrow { letter-spacing: .07em; font-size: .75rem; }
  .actions .btn { flex: 1 1 auto; }
  .section-heading h2 { font-size: 2.6rem; }
  .screen { min-height: 230px; aspect-ratio: auto; }
  .state-tabs button { padding: 11px 13px; font-size: .875rem; }
  .judge-vote { min-width: 52px; padding: 10px 12px; }
  .footer-nav { grid-template-columns: 1fr 1fr; }
  .footer-nav > :last-child { grid-column: span 2; }
  .footer-bottom { display: block; }
  .footer-bottom span { display: block; margin-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Media pass 2026-09-15: photo bands, galleries, page photos, YouTube click-to-play. Photos: Carrie Amicucci. */
.media-band { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: clamp(140px, 15vw, 230px); gap: 8px; }
.media-band figure:first-child { grid-row: span 2; }
.media-band figure, .gallery figure, .page-photo { overflow: hidden; background: var(--panel-2); }
.media-band img, .gallery img, .page-photo img { width: 100%; height: 100%; object-fit: cover; }
.gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.gallery figure { aspect-ratio: 3 / 2; }
.page-photo { aspect-ratio: 21 / 8; margin-bottom: 8px; }
.credit-line { margin: 12px 0 0; font-size: .8125rem; color: var(--muted); }
.video-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 28px 20px; }
.video-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.video-card figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 10px; font-size: .9375rem; }
.video-card figcaption small { color: var(--muted); flex-shrink: 0; }
.yt { position: relative; aspect-ratio: 16 / 9; background: #000; overflow: hidden; border: 1px solid var(--line); }
.yt > a { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-weight: 650; }
.yt.is-ready > a { display: none; }
.yt-play { position: absolute; inset: 0; width: 100%; padding: 0; border: 0; background: #000; }
.yt-play img { width: 100%; height: 100%; object-fit: cover; opacity: .88; transition: opacity .2s, transform .4s; }
.yt-play:hover img { opacity: 1; transform: scale(1.03); }
.yt-icon { position: absolute; left: 50%; top: 50%; width: 64px; height: 44px; margin: -22px 0 0 -32px; background: var(--red); border-radius: 10px; }
.yt-icon::after { content: ""; position: absolute; left: 25px; top: 12px; border-style: solid; border-width: 10px 0 10px 17px; border-color: transparent transparent transparent #fff; }
.yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 760px) {
  .media-band { grid-template-columns: 1fr 1fr; grid-auto-rows: 140px; }
  .media-band figure:first-child { grid-column: span 2; grid-row: span 2; }
  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .video-grid-3 { grid-template-columns: 1fr; }
  .page-photo { aspect-ratio: 4 / 3; }
}
@media (prefers-reduced-motion: reduce) { .yt-play img { transition: none; } .yt-play:hover img { transform: none; } }

.founders-photo { margin-bottom: 32px; max-width: 900px; }
.founders-photo img { width: 100%; height: auto; }
.founders-photo figcaption { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 6px 20px; padding: 12px 0; font-size: .875rem; color: var(--muted); }
.founders-photo .photo-credit { color: var(--paper); flex-shrink: 0; font-size: .8125rem; }
.team-card ul.prose { margin: 0; padding-left: 1.1em; color: var(--muted); }
.team-card ul.prose li { margin-bottom: .5em; }

/* photo pass 2026-09-16 */
.photo-pass .photo-opening { display: grid; grid-template-columns: 1fr 1.04fr; gap: 48px; align-items: center; padding-block: 48px; border-bottom: 1px solid var(--line); }
.photo-pass .photo-opening .page-head { padding: 0; border: 0; min-width: 0; }
.photo-pass .photo-opening h1 { font-size: clamp(3rem, 5.4vw, 5.1rem); }
.photo-pass .opening-media { min-width: 0; }
.photo-pass .opening-media .page-photo { aspect-ratio: 4 / 3; margin: 0; }
.photo-pass .photo-interlude { padding-block: 32px; }
.photo-pass .room-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.photo-pass .room-pair figure { aspect-ratio: 3 / 2; }
.photo-pass .photo-detail { margin-top: 12px; }
.photo-pass .photo-detail summary { font-size: .9375rem; }
.photo-pass .photo-detail .detail-body > :last-child { margin-bottom: 0; }
.photo-pass .photo-detail .content-chain { margin-top: 0; }
.photo-pass-night .tale > .photo-detail { margin: 0; }
.photo-pass-night .tale > .photo-detail > summary { padding-inline: 24px; }
.photo-pass-season .season-grid { gap: 20px; background: transparent; border: 0; margin-top: 16px; }
.photo-pass-season .season-card { min-width: 0; padding: 0; border: 1px solid var(--line); }
.photo-pass-season .event-photo { position: relative; aspect-ratio: 3 / 2; margin: 0; }
.photo-pass-season .event-photo figcaption { position: absolute; bottom: 0; left: 0; padding: 5px 10px; background: #0b0b0de8; color: var(--paper); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; }
.photo-pass-season .event-copy { display: grid; grid-template-columns: 1fr auto; padding: 20px; column-gap: 8px; }
.photo-pass-season .event-copy .meta { align-self: center; }
.photo-pass-season .event-copy .season-num { font-size: 2rem; margin: 0 0 12px; grid-column: 2; }
.photo-pass-season .event-copy > b, .photo-pass-season .event-copy > small { grid-column: 1 / -1; }
.photo-pass-season .event-stream { margin: 0 20px 20px; }
.photo-pass-season a.season-card:hover { border-color: var(--red-text); }
.photo-pass-roster .debut-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.photo-pass-roster .debut-gallery figure { aspect-ratio: 3 / 2; }
.photo-pass-roster .roster-framing { padding-block: 36px 64px; }
.photo-pass-roster .roster-locked { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding-block: 64px; }
@media (max-width: 760px) {
  .photo-pass .photo-opening { grid-template-columns: 1fr; gap: 26px; padding-block: 24px 36px; }
  .photo-pass .opening-media { grid-row: 1; }
  .photo-pass .opening-media .page-photo { aspect-ratio: 3 / 2; }
  .photo-pass .photo-opening h1 { font-size: clamp(2.75rem, 9vw, 4rem); }
  .photo-pass .photo-opening .eyebrow { margin-bottom: 18px; }
  .photo-pass .photo-opening .lead { font-size: 1.08rem; }
  .photo-pass .room-pair { gap: 8px; }
  .photo-pass .photo-interlude { padding-block: 24px; }
  .photo-pass-season .season-grid { gap: 16px; }
  .photo-pass-season .event-copy { padding: 18px; }
  .photo-pass-roster .debut-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .photo-pass-roster .roster-framing { padding-bottom: 56px; }
  .photo-pass-roster .roster-locked { padding-block: 56px; }
}

@media (min-width: 761px) and (max-width: 1000px) {
  .photo-pass .photo-opening { grid-template-columns: 1fr; gap: 32px; }
  .photo-pass .opening-media { grid-row: 1; }
}
.photo-pass-night .tale > .photo-detail { border-bottom: 0; }

/* Shared photo viewer. Nothing is animated; native image links are the fallback. */
.photo-link { display: block; position: relative; height: 100%; min-height: 44px; }
.photo-link:focus-visible { outline-offset: -5px; }
.photo-open { position: absolute; right: 10px; bottom: 10px; padding: 6px 10px; background: var(--ink); color: var(--paper); border: 1px solid var(--line); font-size: .75rem; font-weight: 700; }
.photo-dialog { width: min(1040px, calc(100% - 24px)); max-width: none; max-height: calc(100dvh - 24px); padding: 0; border: 1px solid #62626a; background: var(--ink); color: var(--paper); overscroll-behavior: contain; }
.photo-dialog::backdrop { background: #000e; }
.photo-dialog-inner { padding: 20px; }
.photo-dialog-top, .photo-dialog-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.photo-dialog-top { margin-bottom: 16px; }
.photo-dialog h2 { font-family: var(--body); font-size: 1rem; line-height: 1.4; margin: 0; }
.photo-dialog button { flex-shrink: 0; min-width: 44px; min-height: 44px; padding: 10px 14px; border: 1px solid #787880; background: var(--panel); color: var(--paper); font-size: .875rem; }
.photo-dialog button:hover { border-color: var(--paper); }
.photo-dialog img { width: 100%; height: min(56dvh, 640px); object-fit: contain; background: #000; }
.photo-dialog figcaption { padding: 16px 0; font-size: .9375rem; }
.photo-dialog figcaption p { margin-bottom: 8px; }
.photo-dialog figcaption small { color: var(--muted); }
.photo-dialog-controls p { margin: 0; font-size: .875rem; white-space: nowrap; }
#judging { scroll-margin-top: 24px; }
@media (max-width: 480px) {
  .photo-dialog-inner { padding: 14px; }
  .photo-dialog img { height: 42dvh; }
  .photo-dialog-top h2 { max-width: 180px; }
}

/* feedback pass 2026-09-19: sticky header on every page (was .home-page only, inline in index.html) */
.header { position: sticky; top: 0; z-index: 20; background: var(--ink); }
.skip { position: fixed; z-index: 30; }
[id] { scroll-margin-top: 100px; }
.mobile-menu nav { max-height: calc(100dvh - 150px); overflow-y: auto; overscroll-behavior: contain; }
.text-link { display: inline-flex; align-items: center; min-height: 44px; }
.wordmark { min-height: 44px; }

/* lightbox 2026-09-20 */
a.lightbox-tile { display: block; position: relative; height: auto; min-width: 44px; min-height: 44px; color: inherit; }
.media-band a.lightbox-tile, .gallery a.lightbox-tile, .page-photo > a.lightbox-tile { height: 100%; }
a.lightbox-tile > img { display: block; }
a.lightbox-tile:focus-visible { outline: 3px solid var(--paper); outline-offset: -5px; }
a.lightbox-tile.lightbox-ready { cursor: zoom-in; }
a.lightbox-tile.lightbox-ready::after { content: "⊕"; display: grid; place-items: center; position: absolute; right: 10px; bottom: 10px; width: 44px; height: 44px; border: 1px solid #fff9; border-radius: 50%; background: #0b0b0de6; color: #fff; font: 30px/1 sans-serif; opacity: 0; pointer-events: none; transition: opacity .15s ease; }
a.lightbox-tile.lightbox-ready:hover::after, a.lightbox-tile.lightbox-ready:focus-visible::after { opacity: 1; }
a.lightbox-browse { position: relative; z-index: 2; display: flex; width: fit-content; min-height: 44px; margin-top: 4px; font-size: .875rem; color: var(--paper); }
.credit-line > a.lightbox-browse { display: flex; }
a.lightbox-browse:focus-visible { outline: 3px solid var(--paper); outline-offset: 3px; }
.debut-poster .champion-cheque.lightbox-tile { z-index: 2; height: auto; }
.lightbox-event-card > a.event-copy { color: inherit; text-decoration: none; }
.lightbox-event-card:has(a.event-copy:hover) { border-color: var(--red-text); }
.lightbox-event-card > a.event-copy:focus-visible { outline: 3px solid var(--paper); outline-offset: -4px; }
[data-lightbox-set] .event-photo figcaption { pointer-events: none; }
.ebl-lightbox { position: fixed; inset: 0; z-index: 1000; width: 100%; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: clamp(12px, 3vw, 32px); border: 0; background: transparent; color: var(--paper); overflow: hidden; overscroll-behavior: contain; }
.ebl-lightbox::backdrop { background: #000e; }
.ebl-lightbox-panel { display: flex; flex-direction: column; width: min(1120px, 100%); height: 100%; margin: auto; padding: 20px; gap: 16px; border: 1px solid #62626a; background: var(--ink); }
.ebl-lightbox-top, .ebl-lightbox-controls { display: flex; flex-shrink: 0; justify-content: space-between; align-items: center; gap: 12px; }
.ebl-lightbox h2 { margin: 0; font-family: var(--body); font-size: 1rem; line-height: 1.4; letter-spacing: 0; text-transform: none; }
.ebl-lightbox button { flex-shrink: 0; min-width: 44px; min-height: 44px; padding: 10px 14px; border: 1px solid #787880; background: var(--panel); color: var(--paper); font-family: var(--body); font-size: .875rem; line-height: 1.4; cursor: pointer; }
.ebl-lightbox button:hover:not(:disabled) { border-color: var(--paper); background: var(--panel-2); }
.ebl-lightbox button:focus-visible { outline: 3px solid var(--paper); outline-offset: 3px; }
.ebl-lightbox button:disabled { opacity: .4; cursor: default; }
.ebl-lightbox-figure { display: flex; flex: 1; flex-direction: column; min-height: 0; margin: 0; gap: 16px; }
.ebl-lightbox-stage { position: relative; display: grid; place-items: center; flex: 1; min-height: 80px; overflow: hidden; background: #000; touch-action: pinch-zoom; }
.ebl-lightbox-stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; user-select: none; }
.ebl-lightbox figcaption { flex-shrink: 0; max-height: 30dvh; overflow: auto; overscroll-behavior: contain; font-size: .9375rem; line-height: 1.5; }
.ebl-lightbox figcaption p { margin: 0 0 6px; }
.ebl-lightbox figcaption small { color: var(--muted); font-size: .8125rem; }
.ebl-lightbox-controls p { margin: 0; font-size: .875rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ebl-lightbox-error { padding: 20px; color: var(--muted); }
@media (max-width: 480px) {
  .ebl-lightbox-panel { padding: 14px; gap: 12px; }
  .ebl-lightbox-figure { gap: 12px; }
  .ebl-lightbox button { padding-inline: 10px; }
  .ebl-lightbox h2 { font-size: .9375rem; }
}
@media (prefers-reduced-motion: reduce) {
  a.lightbox-tile.lightbox-ready::after, .ebl-lightbox, .ebl-lightbox * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
.ebl-lightbox-stage.is-loading img { opacity: .35; }

/* rules 2026-09-21 */
.rules-page .rules-intro h1 { font-size: clamp(2.25rem, 4.4vw, 4.5rem); line-height: 1.06; margin-bottom: 20px; }
.rules-page .rules-intro .lead { margin-bottom: 20px; }
.rules-page .rules-overview { max-width: 540px; color: var(--muted); }
.rules-page .rules-photo img { width: 100%; height: auto; }
.rules-page .rules-photo figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0 16px; color: var(--muted); }
.rules-page .rules-photo .lightbox-browse { margin-top: 0; }
.rules-page .rules-categories { padding-block: 0 48px; border-top: 0; }
.rules-page .rules-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); border: 0; gap: 24px; }
.rules-page .rules-grid > .rule { grid-column: span 2; }
.rules-page .rules-grid > .rule:nth-child(n+4) { grid-column: span 3; }
.rules-page .rule { display: flex; flex-direction: column; padding: 24px; border: 1px solid var(--line); background: var(--panel); }
.rules-page .rule-heading { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.rules-page .rule h2 { margin: 0; font-size: 1.5rem; line-height: 1.15; text-transform: none; letter-spacing: -.02em; }
.rules-page .rule .rule-definition { color: var(--paper); font-size: 1rem; line-height: 1.5; margin-bottom: 12px; }
.rules-page .rule .rule-decision { margin-bottom: 24px; }
.rules-page .rule-film { margin-top: auto; }
.rules-page .rule .kicker { color: var(--red-text); margin-bottom: 10px; font-size: .75rem; }
.rules-page .rule .video-card figcaption { font-size: .8125rem; }
.rules-page .source-box { margin-top: 24px; }
.rules-page .section { padding-block: 48px; }
.rules-page .section.rules-categories { padding-top: 0; }
@media (max-width: 1000px) {
  .rules-page .rules-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rules-page .rules-grid > .rule, .rules-page .rules-grid > .rule:nth-child(n+4) { grid-column: auto; }
}
@media (max-width: 760px) {
  .rules-page .rules-intro h1 { max-width: 540px; margin-bottom: 16px; }
  .rules-page .rules-intro .lead { font-size: 1rem; margin-bottom: 16px; }
  .rules-page .rules-overview { font-size: .9375rem; margin-bottom: 0; }
  .rules-page .rules-grid { grid-template-columns: 1fr; gap: 16px; }
  .rules-page .rule { padding: 20px; }
  .rules-page .rule-heading { margin-bottom: 12px; }
  .rules-page .rule .rule-decision { margin-bottom: 16px; }
  .rules-page .section { padding-block: 32px; }
}

/* home-season-footer-rules 2026-09-21 */
.home-page .hero { display: block; }
.home-page .hero > div { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); column-gap: 5%; align-items: start; }
.home-page .hero > div > :not(.hero-video) { grid-column: 2; }
.home-page .hero .hero-video { grid-column: 1; grid-row: 1 / 6; align-self: center; }
.home-page .hero-title { font-size: clamp(4rem, 6.8vw, 6.5rem); }
.home-page .season-start { color: var(--paper); font-size: .8125rem; font-weight: 650; text-transform: uppercase; letter-spacing: .11em; margin-bottom: 0; }

.season-archive { padding-top: 48px; }
.debut-poster { isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); grid-template-rows: auto auto 1fr; padding: 0; min-height: 0; background: var(--panel); color: var(--paper); border: 1px solid #62626a; }
.debut-poster .archive-intro { grid-column: 1; padding: 28px; border-top: 4px solid var(--red); }
.debut-poster .archive-intro .eyebrow { color: var(--paper); margin-bottom: 20px; font-size: .75rem; }
.debut-poster .archive-intro h2 { font-size: clamp(2.3rem, 4vw, 3.5rem); margin-bottom: 18px; }
.debut-poster .archive-intro p { font-size: 1.0625rem; }
.debut-poster .archive-intro .archive-context { color: var(--muted); font-size: .9375rem; }
.debut-poster .debut-photo { grid-column: 2; grid-row: 1 / 4; min-width: 0; display: flex; flex-direction: column; border-left: 1px solid var(--line); }
.debut-poster .debut-photo > a { flex: 1; }
.debut-poster .debut-photo img { width: 100%; height: 100%; object-fit: cover; }
.debut-poster .debut-photo figcaption { padding: 14px 24px; color: var(--muted); font-size: .875rem; }
.debut-poster .photo-credit { display: block; color: var(--paper); font-size: .8125rem; }
.debut-poster .proof-strip { grid-column: 1; margin: 0 28px; }
.debut-poster .proof { display: flex; flex-direction: column; align-items: start; gap: 10px; padding: 18px 10px; }
.debut-poster .proof:first-child { padding-left: 0; }
.debut-poster .proof b { font-size: clamp(1.8rem, 3vw, 2.5rem); }
.debut-poster .proof span { font-size: .75rem; }
.debut-poster .poster-bottom { grid-column: 1; padding: 22px 28px; align-items: center; flex-wrap: wrap; }
.debut-poster .poster-bottom small { font-size: .75rem; }
.debut-poster .poster-bottom b { font-size: 2rem; }
.debut-poster .card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.debut-poster .card-link:focus-visible { outline: 0; }
.debut-poster .card-link:focus-visible::after { outline: 3px solid var(--paper); outline-offset: 5px; }
.debut-poster:has(.card-link:hover) { border-color: var(--paper); }
.debut-poster .photo-link { position: relative; z-index: 2; }
.debut-poster .champion-cheque { display: block; flex: 0 0 auto; width: 58px; border-radius: 8px; overflow: hidden; line-height: 0; border: 1px solid rgba(255,255,255,.25); }
.debut-poster .champion-cheque img { width: 100%; height: auto; display: block; }
.debut-poster .champion-cheque:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

.site-footer { background: var(--panel); border-top: 4px solid var(--red); padding-block: 40px 24px; }
.site-footer .wordmark { min-height: 44px; }
.site-footer .wordmark b { font-size: 2.5rem; }
.site-footer .footer-location { margin: 12px 0 28px; color: var(--muted); font-size: .9375rem; }
.site-footer .footer-nav { padding-block: 28px; border-block: 1px solid var(--line); gap: 24px 40px; }
.site-footer .footer-nav h3 { font-family: var(--body); font-size: .8125rem; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); margin-bottom: 12px; }
.site-footer .footer-nav a { display: flex; align-items: center; min-height: 44px; margin: 0; font-size: .9375rem; }
.site-footer .footer-credit { margin: 24px 0 4px; color: var(--muted); font-size: .8125rem; }
.site-footer .footer-back { display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; text-decoration: none; }

.rules-page .eras-note { margin: 0 0 28px; color: var(--muted); font-size: .875rem; }
.rules-page .eras-note strong { color: var(--paper); }
@media (max-width: 1000px) {
}
@media (max-width: 760px) {
  .home-page .hero > div { display: block; }
  .home-page .hero-title { font-size: clamp(4rem, 15vw, 6.5rem); }
  .season-archive { padding-top: 32px; }
  .debut-poster { display: flex; flex-direction: column; }
  .debut-poster .archive-intro { padding: 24px; }
  .debut-poster .debut-photo { border-left: 0; }
  .debut-poster .debut-photo img { height: auto; }
  .debut-poster .proof-strip { margin-inline: 24px; }
  .debut-poster .poster-bottom { padding-inline: 24px; }
  .site-footer .footer-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .site-footer .footer-nav > :last-child { grid-column: 1 / -1; }
}

/* launch-strip 2026-09-21 */
/* Removed slots no longer need reserved portrait height or a vacant column. */
.photo-pass-roster .athlete-visual { min-height: 0; justify-content: flex-start; gap: 24px; }
.rules-page .two-grid > .panel:only-child,
.two-grid > #partner-inquiry:only-child,
.photo-pass-night .split > :only-child,
.photo-pass-night .two-grid > :only-child { grid-column: 1 / -1; }
[data-contact-email] { margin-top: 24px; }
.photo-pass-night #night-live,
.photo-pass-night #night-final { border-top: 1px solid var(--line); padding-top: 40px; }

/* launch-strip TARS fixes 2026-09-21 */
a[data-contact-email][href="mailto:"] { display: none; }
.sponsorship-tiers > .tier:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* runway: social */
.nav-social { display: inline-flex; align-items: center; gap: 4px; }
.desktop-nav .nav-social a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
.nav-social svg { display: block; flex-shrink: 0; }
.mobile-social { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.mobile-menu .mobile-social a { border-bottom: 0; }
@media (min-width: 761px) and (max-width: 900px) {
  .desktop-nav { gap: 12px; }
}

/* runway: follow */
.follow-section > p, .follow-section h2 { max-width: 850px; }
.follow-form { position: relative; display: flex; flex-wrap: wrap; gap: 12px; max-width: 680px; margin-top: 28px; }
.follow-label, .follow-form input[name="website"] { position: absolute; width: 1px; height: 1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.follow-form input[type="email"] { flex: 1 1 240px; min-width: 0; min-height: 48px; padding: 13px 16px; border: 1px solid var(--muted); background: var(--panel); color: var(--paper); }
.follow-form input[type="email"]::placeholder { color: var(--muted); opacity: 1; }
.follow-form button { min-height: 48px; padding: 13px 24px; border: 1px solid var(--red); background: var(--red); color: var(--ink); font-weight: 700; }
.follow-form button:hover { border-color: var(--paper); }
.follow-form button:disabled { cursor: wait; opacity: .7; }
.follow-status { min-height: 1.6em; margin-top: 18px; }
.follow-status a { font-weight: 700; }

/* runway: elite8 */
/* The home strip uses four columns, then two on phones. */
.home-elite8 .locked-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.locked-card.is-tba, .locked-card.is-tba b { color: var(--muted); }
.locked-card.is-revealed { position: relative; min-width: 0; padding: 0; justify-content: flex-start; text-decoration: none; overflow-wrap: anywhere; }
.locked-card.is-revealed img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.locked-card.is-revealed .slot-number { padding: 14px; color: var(--muted); }
.locked-card.is-revealed .revealed-name { position: relative; padding: 12px 14px; background: var(--panel); color: var(--paper); font-family: var(--display); font-size: clamp(1rem, 2vw, 1.75rem); }
.locked-card.is-revealed img + .revealed-name { margin-top: -24px; align-self: flex-start; max-width: 100%; }
.locked-card.is-revealed small { padding: 0 14px 14px; color: var(--muted); }
.locked-card.is-revealed:hover { border-color: var(--paper); }
.locked-card-wrap { position: relative; min-width: 0; }
.locked-card-wrap > .locked-card { height: 100%; padding-bottom: 40px; }
.roster-instagram { position: absolute; bottom: 1px; right: 1px; display: grid; place-items: center; min-width: 44px; min-height: 44px; background: var(--panel); }
@media (max-width: 760px) {
  .home-elite8 .locked-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .roster-locked .locked-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .og-page .page-head h1 { font-size: clamp(2rem, 11vw, 3.25rem); }
}

/* Rules stage: the chairs centred and the clip's own spotlight carried out into the page. The light lives on <main>
   (behind everything in it), so it falls through the title and fades out over the categories. */
.rules-page main { position: relative; isolation: isolate; }
.rules-stage { position: relative; padding: clamp(8px, 2vw, 20px) 0 clamp(28px, 4vw, 52px); text-align: center; }
.stage-light { position: absolute; top: 0; left: 0; right: 0; height: min(200vh, 2000px); z-index: -1; pointer-events: none; overflow: hidden; }
.stage-beam { position: absolute; left: 50%; top: -2%; width: min(1600px, 180vw); height: 64%; transform: translateX(-50%); background: conic-gradient(from 158deg at 50% 0%, rgba(244, 242, 239, 0) 0deg, rgba(244, 242, 239, .06) 12deg, rgba(244, 242, 239, .12) 22deg, rgba(244, 242, 239, .06) 32deg, rgba(244, 242, 239, 0) 44deg, rgba(244, 242, 239, 0) 360deg); -webkit-mask-image: linear-gradient(to bottom, #000 30%, transparent 100%); mask-image: linear-gradient(to bottom, #000 30%, transparent 100%); filter: blur(16px); transition: opacity 1.6s ease; }
.stage-pool { position: absolute; left: 50%; top: 10%; width: min(1800px, 200vw); height: 60%; transform: translateX(-50%); background: radial-gradient(ellipse 42% 34% at 50% 44%, rgba(237, 48, 59, .15), rgba(237, 48, 59, 0) 72%), radial-gradient(ellipse 26% 22% at 50% 30%, rgba(244, 242, 239, .06), rgba(244, 242, 239, 0) 72%); transition: opacity 2s ease; }
.stage-light::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 70% 55% at 50% 22%, transparent 45%, rgba(0, 0, 0, .5) 100%); }
.rules-page .rules-opener { position: relative; width: min(1560px, 100%); margin: 0 auto; aspect-ratio: 1464 / 628; transition: opacity 1.4s ease, filter 1.4s ease;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent), linear-gradient(to bottom, transparent, #000 12%, #000 70%, transparent);
  -webkit-mask-composite: source-in; mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent), linear-gradient(to bottom, transparent, #000 12%, #000 70%, transparent); mask-composite: intersect; }
.rules-page .rules-opener picture, .rules-page .rules-opener img, .rules-page .rules-opener video { display: block; width: 100%; height: 100%; object-fit: cover; }
.rules-page .rules-opener picture:has(img[hidden]) { display: none; }
.rules-stage .rules-intro { position: relative; margin-top: clamp(-128px, -7vw, -36px); }
.rules-stage .rules-intro h1 { font-size: clamp(2.6rem, 6.2vw, 5.8rem); line-height: 1; margin-bottom: 18px; text-shadow: 0 8px 40px rgba(0, 0, 0, .7); }
.rules-stage .rules-intro .lead { max-width: 640px; margin-inline: auto; }
.rules-stage .rules-overview { max-width: 620px; margin-inline: auto; }
/* lighting states: armed (JS, motion allowed) = house lights down; lit = beam up; revealed = letters landed */
.rules-stage.is-armed:not(.is-lit) .stage-beam { opacity: .25; }
.rules-stage.is-armed:not(.is-lit) .stage-pool { opacity: .2; }
.rules-stage.is-armed:not(.is-lit) .rules-opener { opacity: .45; filter: brightness(.6); }
.rules-stage.is-armed.is-lit:not(.is-revealed) .stage-pool { opacity: .6; }
@media (prefers-reduced-motion: no-preference) {
  .rules-stage.is-revealed .stage-pool { animation: pool-flash 1.6s cubic-bezier(.2, .7, .2, 1); }
  .rules-stage.is-revealed .stage-beam { animation: beam-breathe 7s 1.6s ease-in-out infinite; }
}
@keyframes pool-flash { 0% { opacity: .6; } 18% { opacity: 1; transform: translateX(-50%) scale(1.12); } 100% { opacity: 1; transform: translateX(-50%) scale(1); } }
@keyframes beam-breathe { 50% { opacity: .78; } }
@media (max-width: 760px) {
  .rules-page .rules-opener { -webkit-mask-image: linear-gradient(to bottom, transparent, #000 10%, #000 74%, transparent); mask-image: linear-gradient(to bottom, transparent, #000 10%, #000 74%, transparent); }
  .rules-stage .rules-intro { margin-top: -14px; }
}

/* Rules: the judge's letter card (EBL judges raise a red letter card). Face = red card with the letter; back = the league mark. */
.letter-card { --rx: 0deg; --ry: 0deg; flex-shrink: 0; display: block; width: 60px; aspect-ratio: 5 / 7; transform: perspective(600px) rotateX(var(--rx)) rotateY(var(--ry)); transform-style: preserve-3d; transition: transform .2s ease-out; }
.lc-inner { position: relative; display: block; width: 100%; height: 100%; transform-style: preserve-3d; }
.lc-face, .lc-back { position: absolute; inset: 0; display: grid; place-items: center; backface-visibility: hidden; -webkit-backface-visibility: hidden; border-radius: 3px; }
.lc-face { background: var(--red); color: var(--ink); font-family: var(--display); font-size: 2.4rem; line-height: 1; box-shadow: 0 10px 24px rgba(0, 0, 0, .45), inset 0 0 0 1px rgba(255, 255, 255, .12); }
.lc-back { transform: rotateY(180deg); background: repeating-linear-gradient(45deg, #1a1a1e 0 6px, #111114 6px 12px); border: 1px solid var(--red); }
.lc-back b { color: var(--red-text); font-family: var(--display); font-size: .8rem; font-weight: 400; letter-spacing: .06em; }
.rules-grid.cards-armed .rule:not(.is-dealt) .lc-inner { transform: rotateY(180deg); }
.rules-grid.cards-armed .lc-inner { transition: transform .75s cubic-bezier(.2, 1.25, .35, 1); }
.rules-grid .rule { transition: border-color .2s; }
.rules-grid .rule:hover { border-color: var(--muted); }

/* Athletes page. The home strip is tiles; this page is the files: a map of the States with the eight Season One files over it, and a dossier per file. */
.roster-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: clamp(32px, 5vw, 72px); align-items: end; padding-block: clamp(24px, 3.5vw, 44px) 0; }
.roster-head > .eyebrow, .roster-head > h1, .roster-head > .lead { grid-column: 1; }
.roster-head > h1 { font-size: clamp(2rem, 3.4vw, 3.2rem); line-height: 1.02; margin-bottom: 12px; }
.roster-head > .lead { font-size: 1rem; max-width: 520px; margin-bottom: 0; }
.roster-head > .roster-format { grid-column: 2; grid-row: 1 / span 3; margin: 0; padding: 0; border: 0; gap: 14px clamp(24px, 3vw, 44px); }
.roster-head h1 .nowrap { white-space: nowrap; }
.roster-format { display: flex; flex-wrap: wrap; gap: 20px clamp(32px, 6vw, 88px); margin: 40px 0 0; padding-block: 28px; border-top: 1px solid var(--line); }
.roster-format div { margin: 0; }
.roster-format dt { color: var(--muted); font-size: .75rem; font-weight: 650; letter-spacing: .11em; text-transform: uppercase; }
.roster-format dd { margin: 6px 0 0; font-family: var(--display); font-size: clamp(1.3rem, 2vw, 1.9rem); line-height: 1; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.roster-board { padding-top: clamp(18px, 2.5vw, 32px); }
.board-count { margin-bottom: 8px; }
a.locked-card { text-decoration: none; }
a.locked-card:hover { border-color: var(--paper); }

/* the stage (desktop): four files | the map | four files; a picked file's dossier floats over the map's right side */
.files-stage { display: grid; grid-template-columns: 188px minmax(0, 1fr) 188px; grid-template-areas: "a map b"; gap: clamp(14px, 2vw, 28px); align-items: center; padding-top: 8px; }
.files-stage > .file-picker:first-child { grid-area: a; }
.files-stage > .file-picker:last-child { grid-area: b; }
.map-wrap { grid-area: map; position: relative; min-width: 0; }
.map-canvas { display: block; width: 100%; aspect-ratio: 16 / 9; touch-action: pan-y; cursor: grab; }
.map-canvas.is-dragging { cursor: grabbing; }
.map-hint { position: absolute; left: 0; right: 0; bottom: 4%; text-align: center; margin: 0; color: var(--muted); font-size: .75rem; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.file-picker { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; align-content: center; }
.file-chip { display: grid; gap: 2px; min-height: 60px; padding: 10px 12px; text-align: left; background: var(--panel); border: 1px solid var(--line); color: var(--paper); transition: border-color .2s, background-color .2s; }
.file-chip b { font-family: var(--display); font-size: .95rem; font-weight: 400; line-height: 1.1; text-transform: uppercase; overflow-wrap: anywhere; }
.file-chip small { color: var(--muted); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; }
.file-chip:hover { border-color: var(--muted); }
.file-chip[aria-pressed="true"] { border-color: var(--red); background: #1d0f11; }
.file-chip.is-revealed small { color: var(--red-text); }
.dossier-slot { position: absolute; top: 12px; right: 12px; z-index: 2; width: min(360px, 48%); max-height: calc(100% - 24px); overflow: auto; overscroll-behavior: contain; pointer-events: none; }
.dossier-slot > .dossier { pointer-events: auto; background: rgba(21, 21, 24, .95); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: 0 24px 60px rgba(0, 0, 0, .55); }
.files-stage .dossier-idle { display: none; } /* desktop: the map stays clean until a file is picked */
.dossier-close { margin-left: auto; min-width: 36px; min-height: 36px; padding: 0; border: 1px solid var(--line); background: transparent; color: var(--paper); font-size: 1.25rem; line-height: 1; }
.dossier-close:hover { border-color: var(--paper); }
.dossier-idle, .dossier { border: 1px solid var(--line); background: var(--panel); padding: clamp(20px, 2.4vw, 28px); }
.dossier-idle { display: grid; align-content: center; min-height: 318px; color: var(--muted); background: repeating-linear-gradient(135deg, var(--panel) 0 10px, #17171a 10px 20px); }
.dossier-idle p { margin: 0; }
.dossier-idle .dossier-code { margin-bottom: 8px; color: var(--paper); }
.dossier:focus { outline: none; }
.dossier:focus-visible { outline: 3px solid var(--paper); outline-offset: 4px; }
.dossier-top { display: flex; justify-content: flex-start; align-items: center; gap: 12px; padding-bottom: 16px; margin-bottom: 18px; border-bottom: 1px dashed var(--line); }
.dossier-code { font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.dossier-stamp { order: -1; padding: 5px 10px; border: 1px solid var(--red); color: var(--red-text); font-size: .6875rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.dossier-stamp.is-revealed { border-color: var(--paper); color: var(--paper); }
.dossier-fields { display: grid; gap: 0; margin: 0; }
.dossier-fields div { display: grid; grid-template-columns: 116px minmax(0, 1fr); gap: 16px; align-items: center; padding: 11px 0; border-bottom: 1px solid #26262b; }
.dossier-fields dt { color: var(--muted); font-size: .75rem; font-weight: 650; letter-spacing: .11em; text-transform: uppercase; }
.dossier-fields dd { margin: 0; font-size: .9375rem; }
.redact { display: block; width: var(--w, 70%); height: 1.15em; background: #000; box-shadow: inset 0 0 0 1px #1f1f23; }
.dossier-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: 18px; }
.dossier-name { margin: 0; font-size: clamp(1.8rem, 3vw, 2.6rem); text-transform: uppercase; }
.dossier-aka { margin: 6px 0 12px; color: var(--muted); }
.dossier .text-link { margin-top: 10px; }
/* opening a file: the redaction bars draw in, the stamp lands */
@media (prefers-reduced-motion: no-preference) {
  .dossier.is-open { animation: dossier-in .35s cubic-bezier(.2, .7, .2, 1) both; }
  .dossier.is-open .redact { animation: redact-in .5s cubic-bezier(.3, .8, .2, 1) both; transform-origin: left; }
  .dossier.is-open .dossier-fields div:nth-child(2) .redact { animation-delay: .08s; }
  .dossier.is-open .dossier-fields div:nth-child(3) .redact { animation-delay: .16s; }
  .dossier.is-open .dossier-stamp { animation: stamp-in .35s .15s ease-out both; }
}
@keyframes dossier-in { from { opacity: 0; transform: translateY(8px); } }
@keyframes redact-in { from { transform: scaleX(0); } }
@keyframes stamp-in { from { opacity: 0; transform: translateX(8px); } }

/* 2024 field: a results sheet */
.roster-board + .roster-archive { border-top: 0; }
.roster-archive { --cols: 150px minmax(0, 1.4fr) minmax(0, 2fr); }
.board { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--paper); }
.board-head { display: grid; grid-template-columns: var(--cols); gap: 0 24px; padding: 0 0 10px; color: var(--muted); font-size: .75rem; font-weight: 650; letter-spacing: .11em; text-transform: uppercase; }
.board-row { display: grid; grid-template-columns: var(--cols); gap: 0 24px; align-items: center; min-height: 84px; margin: 0; padding: 18px 0; border-bottom: 1px solid var(--line); }
.board-name { min-width: 0; overflow-wrap: anywhere; }
.board-name b { display: block; font-family: var(--display); font-size: clamp(1.25rem, 2vw, 1.9rem); line-height: 1.02; text-transform: uppercase; }
.board-cell { min-width: 0; font-size: .9375rem; color: #ceccd2; }
.board-result { justify-self: start; color: var(--muted); font-size: .75rem; font-weight: 650; letter-spacing: .11em; text-transform: uppercase; }
.board-result.is-champion { padding: 6px 10px; background: var(--red); color: var(--ink); }

@media (max-width: 1099px) {
  .files-stage { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "map map" "a b" "dossier dossier"; gap: 8px; }
  .map-wrap { display: contents; }
  .map-canvas, .map-hint { grid-area: map; }
  .map-hint { position: static; align-self: end; padding-bottom: 10px; }
  .dossier-slot { grid-area: dossier; position: static; width: auto; max-height: none; overflow: visible; pointer-events: auto; margin-top: 12px; }
  .dossier-slot > .dossier { background: var(--panel); box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .files-stage .dossier-idle { display: grid; }
}
/* no JS or no map data: the files + dossiers stand alone, whatever the width */
.files-stage:not(.is-live) { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "a b" "dossier dossier"; }
.files-stage:not(.is-live) .map-wrap { display: contents; }
.files-stage:not(.is-live) .map-canvas, .files-stage:not(.is-live) .map-hint { display: none; }
.files-stage:not(.is-live) .dossier-slot { grid-area: dossier; position: static; width: auto; max-height: none; pointer-events: auto; }
.files-stage:not(.is-live) .dossier-idle { display: grid; }
@media (max-width: 760px) {
  .roster-format dd { font-size: 1.5rem; }
  .roster-head { grid-template-columns: minmax(0, 1fr); }
  .roster-head > .roster-format { grid-column: 1; grid-row: auto; margin-top: 18px; }
  .roster-head > h1 { font-size: clamp(2rem, 9vw, 2.8rem); }
  .roster-head > h1 .nowrap { white-space: normal; }
  .map-canvas { margin-inline: calc(var(--gutter) * -0.5); width: calc(100% + var(--gutter)); }
  .dossier-fields div { grid-template-columns: 96px minmax(0, 1fr); }
  .dossier-slot, .dossier-idle { min-height: 0; }
  .board-head { display: none; }
  .board { border-top-color: var(--line); }
  .board-row { grid-template-columns: minmax(0, 1fr); gap: 6px; min-height: 0; padding: 16px 0; }
  .board-cell:empty { display: none; }
}

/* Footer, fine pointers only: the columns rest compressed (each link a thin rule of its own length) and unfold together when the
   cursor enters the footer or focus lands in it. Touch devices and reduced motion keep the plain, open footer. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .site-footer .footer-nav a { position: relative; height: 44px; min-height: 0; overflow: hidden; padding-left: 0;
    transition: height .55s cubic-bezier(.2, .9, .25, 1) calc(var(--i, 0) * 32ms), padding-left .5s cubic-bezier(.2, .9, .25, 1) calc(var(--i, 0) * 32ms + 60ms), color .3s ease calc(var(--i, 0) * 32ms + 120ms); }
  .site-footer .footer-nav a::before { content: ""; position: absolute; left: 0; top: 4px; width: var(--w, 50%); height: 2px; background: var(--line); transform-origin: left; transition: transform .35s ease calc(var(--i, 0) * 32ms), opacity .25s ease calc(var(--i, 0) * 32ms); }
  .site-footer .footer-nav:not(:hover):not(:focus-within) a { height: 10px; padding-left: 14px; color: transparent;
    transition: height .4s cubic-bezier(.4, 0, .2, 1), padding-left .3s ease, color .12s ease; }
  .site-footer .footer-nav:not(:hover):not(:focus-within) a:first-of-type::before { background: var(--red); }
  .site-footer .footer-nav:hover a::before, .site-footer .footer-nav:focus-within a::before { transform: scaleX(0); opacity: 0; }
  .site-footer .footer-nav:not(:hover):not(:focus-within) h3 { color: var(--paper); transition: color .3s ease; }
  .site-footer .footer-nav a:nth-of-type(1) { --i: 0; --w: 34%; }
  .site-footer .footer-nav a:nth-of-type(2) { --i: 1; --w: 22%; }
  .site-footer .footer-nav a:nth-of-type(3) { --i: 2; --w: 40%; }
  .site-footer .footer-nav a:nth-of-type(4) { --i: 3; --w: 28%; }
  .site-footer .footer-nav a:nth-of-type(5) { --i: 4; --w: 18%; }
  .site-footer .footer-nav a:nth-of-type(6) { --i: 5; --w: 31%; }
  .site-footer .footer-nav a:nth-of-type(7) { --i: 6; --w: 25%; }
}

/* Partner doors (header "Partners" + home "For Partners" panel): a hairline of light slowly circles the border;
   hover speeds it up and lights the edge. The panel also carries a soft glow that follows the cursor (assets/partner-glow.js). */
@property --trace { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
.desktop-nav .nav-partner, .partner-panel { position: relative; isolation: isolate; }
.desktop-nav .nav-partner::before, .partner-panel::before { content: ""; position: absolute; inset: -1px; padding: 1px; pointer-events: none; z-index: 1;
  background: conic-gradient(from var(--trace), transparent 0deg 292deg, rgba(244, 242, 239, .0) 300deg, rgba(244, 242, 239, .85) 336deg, var(--red) 350deg, transparent 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.desktop-nav .nav-partner { transition: border-color .3s ease, color .3s ease; }
.desktop-nav .nav-partner:hover, .desktop-nav .nav-partner:focus-visible { border-color: var(--muted); }
.partner-panel { transition: border-color .3s ease; }
.partner-panel::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity .35s ease;
  background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%), rgba(237, 48, 59, .13), transparent 65%); }
.partner-panel:hover { border-color: #5a5a61; }
.partner-panel:hover::after { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .desktop-nav .nav-partner::before, .partner-panel::before { animation: partner-trace 8s linear infinite; }
  .desktop-nav .nav-partner:hover::before, .desktop-nav .nav-partner:focus-visible::before, .partner-panel:hover::before { animation-duration: 2.6s; }
  .partner-panel.is-offscreen::before { animation-play-state: paused; }
}
@media (prefers-reduced-motion: reduce) {
  .desktop-nav .nav-partner, .partner-panel { border-color: #5a5a61; }
  .desktop-nav .nav-partner::before, .partner-panel::before { display: none; }
}
@keyframes partner-trace { to { --trace: 360deg; } }

/* Home "Eight breakers. One season.": the first time the strip scrolls in, the cards are dealt face-down and turn over
   with weight (lift, overswing, land), then a sheen crosses and "Sealed" stamps in. Once per visit (assets/home.js).
   The back is a pseudo-element, so the card markup — and a reveal — stays a one-line data edit. */
.home-elite8 .locked-grid { perspective: 1200px; }
.home-elite8 { overflow-x: clip; } /* a flipping edge card must not widen the page mid-swing (clip, not hidden: keeps sticky intact) */
.home-elite8 .locked-card { position: relative; }
.home-elite8.cards-armed .locked-card { transform-style: preserve-3d; }
.home-elite8.cards-armed .locked-card > * { backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.home-elite8.cards-armed .locked-card::before { content: "EBL"; content: "EBL" / ""; position: absolute; inset: -1px; display: grid; place-items: center; transform: rotateY(180deg);
  backface-visibility: hidden; -webkit-backface-visibility: hidden; color: var(--red-text); font-family: var(--display); font-size: 1.5rem; letter-spacing: .04em;
  background: repeating-linear-gradient(45deg, #1b1b1f 0 7px, #111114 7px 14px); border: 1px solid var(--red); box-shadow: inset 0 0 0 6px #0b0b0d, inset 0 0 0 7px rgba(237, 48, 59, .45); }
.home-elite8.cards-armed .locked-card:not(.is-flipped) { transform: rotateY(180deg); }
.home-elite8 .locked-card.is-flipped { animation: card-deal .95s cubic-bezier(.3, .8, .3, 1) both; }
.home-elite8 .locked-card.is-flipped::after { content: ""; position: absolute; inset: 0; pointer-events: none; backface-visibility: hidden; -webkit-backface-visibility: hidden;
  background: linear-gradient(105deg, transparent 40%, rgba(244, 242, 239, .16) 50%, transparent 60%) 160% 0 / 250% 100% no-repeat; animation: card-sheen .9s .7s ease-out both; }
.home-elite8 .locked-card.is-flipped small { animation: seal-stamp .6s .78s cubic-bezier(.2, 1.4, .4, 1) both; }
@keyframes card-deal {
  0% { transform: rotateY(180deg); box-shadow: 0 0 0 rgba(0, 0, 0, 0); }
  45% { transform: translateY(-14px) rotateY(92deg) scale(1.05); box-shadow: 0 26px 40px rgba(0, 0, 0, .6); }
  78% { transform: translateY(1px) rotateY(-7deg) scale(.985); box-shadow: 0 4px 10px rgba(0, 0, 0, .5); }
  100% { transform: none; box-shadow: 0 0 0 rgba(0, 0, 0, 0); }
}
@keyframes card-sheen { from { background-position: 160% 0; } to { background-position: -60% 0; } }
@keyframes seal-stamp { 0% { opacity: 0; transform: scale(1.6); color: var(--red-text); } 60% { opacity: 1; transform: scale(.96); color: var(--red-text); } 100% { transform: none; } }

/* Privacy policy: section headings sized for reading, not display */
.policy-h { font-size: clamp(1.25rem, 2vw, 1.75rem); text-transform: none; letter-spacing: 0; margin: 48px 0 12px; }

/* Andrew's page notes · 2026-09-26. Dated board sponsors, with room for all seven names. */
.board-sponsors { border-top: 3px solid var(--red); background: linear-gradient(160deg, #ed303b10, var(--panel) 50%); }
.board-sponsors h3.meta { font-family: var(--body); font-size: .8125rem; line-height: 1.5; letter-spacing: .11em; color: var(--red-text); margin-bottom: 24px; }
.board-sponsors ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; margin: 0; padding: 0; list-style: none; }
.board-sponsors li { display: flex; align-items: center; min-width: 0; margin: 0; padding: 18px 0; border-top: 1px solid var(--line); font-size: clamp(1rem, 1.45vw, 1.3rem); font-weight: 700; line-height: 1.35; }
.board-sponsors li:last-child { grid-column: 1 / -1; }
.brkn-thru-page .page-head h1 { font-size: clamp(3rem, 7vw, 6.5rem); }
.brkn-thru-page .series-episodes { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.brkn-thru-page .series-episodes h2 { font-size: clamp(2.3rem, 4vw, 4rem); }
.episode-index { list-style: none; margin: 0; padding: 0; border-top: 3px solid var(--red); }
.episode-index li { margin: 0; }
.episode-index a { display: grid; grid-template-columns: 90px minmax(0, 1fr) 24px; gap: 16px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--line); text-decoration: none; font-size: 1rem; font-weight: 700; line-height: 1.4; }
.episode-index a:hover { color: var(--red-text); }
.episode-index .episode-label { font-size: .6875rem; color: var(--muted); letter-spacing: .09em; text-transform: uppercase; }
.photo-pass-season .season-calendar { padding-top: 36px; }
@media (max-width: 760px) {
  .board-sponsors ul { grid-template-columns: minmax(0, 1fr); }
  .board-sponsors li { padding-block: 16px; }
  .brkn-thru-page .series-episodes { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .episode-index a { grid-template-columns: 70px minmax(0, 1fr) 18px; gap: 12px; font-size: .9375rem; }
}
.photo-pass-season > main > .wrap > .page-head h1 { font-size: clamp(3rem, 5.4vw, 5.1rem); }
.season-archive-interlude { margin-top: 48px; max-width: 860px; }
.photo-pass-season .season-archive-interlude .page-photo { aspect-ratio: 16 / 7; }
@media (max-width: 760px) {
  .photo-pass-season > main > .wrap > .page-head h1 { font-size: clamp(2.75rem, 9vw, 4rem); }
  .photo-pass-season .season-archive-interlude .page-photo { aspect-ratio: 3 / 2; }
}

/* EBL's own logo in the header and footer (Andrew's note A2; file from Etienne, 9/29). */
.wordmark .brand-logo { display: block; width: auto; height: 60px; }
.site-footer .wordmark .brand-logo { height: 72px; }
@media (max-width: 760px) { .wordmark .brand-logo { height: 46px; } .site-footer .wordmark .brand-logo { height: 56px; } }


/* 2024 board sponsors: a logo wall, one colour (white). Each logo already spells its name, so the
   names live in the alt text. Heights give every logo about the same visual area, so wide
   wordmarks and compact marks read as equals. */
.board-sponsors ul.sponsor-wall { display: flex; flex-wrap: wrap; justify-content: center; gap: 0; border-top: 1px solid var(--line); }
.board-sponsors .sponsor-wall li { flex: 0 0 25%; justify-content: center; min-height: 104px; padding: 22px 12px; border-top: 0; }
.board-sponsors .sponsor-wall li:last-child { grid-column: auto; }
.board-sponsors .sponsor-wall img { display: block; width: auto; max-width: 100%; opacity: .9; transition: opacity .2s ease; }
.board-sponsors .sponsor-wall li:hover img { opacity: 1; }
.sponsor-wall .logo-aeg-presents img { height: 46px; }
.sponsor-wall .logo-cirque-du-soleil img { height: 39px; }
.sponsor-wall .logo-shuffles-and-flow img { height: 58px; }
.sponsor-wall .logo-aloha-gold-buyers img { height: 22px; }
.sponsor-wall .logo-sandstone-healthcare-group img { height: 47px; }
.sponsor-wall .logo-beyond-attire img { height: 58px; }
.sponsor-wall .logo-alchemy-breaking-academy img { height: 58px; }
.sponsor-wall .logo-rhino img { height: 58px; }
.sponsor-wall .logo-colorup img { height: 43px; }
.sponsor-wall .logo-hoapili-baker-foundation img { height: 58px; }
.sponsor-wall .logo-snipt img { height: 51px; }
@media (max-width: 760px) {
  .board-sponsors ul.sponsor-wall { grid-template-columns: none; }
  .board-sponsors .sponsor-wall li { flex-basis: 50%; min-height: 88px; padding: 18px 10px; }
  .board-sponsors .sponsor-wall img { transform: scale(.86); }
}

/* Team page: the operating team as cards (founders' bullets reused; Andrew's bio verbatim, 9/29). */
.team-people .card-grid { align-items: start; }
.team-people .team-card h3 { font-size: clamp(1.5rem, 2vw, 1.9rem); }
@media (max-width: 1100px) { .team-people .card-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .team-people .card-grid { grid-template-columns: 1fr; } }
.team-card .team-photo { margin: 0 0 22px; aspect-ratio: 1 / 1; overflow: hidden; background: var(--panel); border: 1px solid var(--line); }
.team-card .team-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* "Also supported by": the 2024 sponsor-loop brands that weren't on the boards; quieter than the board wall. */
.board-sponsors .also-label { margin: 36px 0 0; padding-top: 24px; border-top: 1px solid var(--line); font-size: .75rem; letter-spacing: .11em; color: var(--muted); }
.board-sponsors ul.sponsor-wall--also { border-top: 0; }
.board-sponsors .sponsor-wall--also li { min-height: 84px; padding-block: 16px; }
.board-sponsors .sponsor-wall--also img { opacity: .72; transform: scale(.8); }
@media (max-width: 760px) { .board-sponsors .sponsor-wall--also img { transform: scale(.7); } }
