/* DVD Zapad 2026 — local assets, responsive public tournament view. */
:root {
  --ink: #171b18;
  --ink-soft: #242b25;
  --paper: #f4f2e9;
  --white: #fffefa;
  --red: #bd3527;
  --red-bright: #df4433;
  --gold: #bfa574;
  --gold-dark: #785d29;
  --muted: #626860;
  --line: #d6d8cd;
  --display: Impact, "Arial Narrow", "Franklin Gothic Condensed", sans-serif;
  --body: Arial, Helvetica, sans-serif;
  --page-gutter: clamp(20px, 5.55vw, 96px);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 104px; background: var(--ink); }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--body); font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; }
button, input, select, textarea { border-radius: 0; }
img { display: block; max-width: 100%; height: auto; }
svg { max-width: 100%; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline: 3px solid #2070c4; outline-offset: 4px; }
::selection { color: var(--white); background: var(--red); }
button, .button, a { touch-action: manipulation; }
h1, h2, h3, h4, p { margin: 0; }
section { scroll-margin-top: 96px; }
[hidden], .hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip { position: fixed; z-index: 100; top: 10px; left: 10px; padding: 12px 18px; color: #fff; background: var(--red); transform: translateY(-160%); }
.skip:focus { transform: none; }
.site-header { position: relative; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 96px; padding: 14px var(--page-gutter); color: var(--paper); background: var(--ink); border-bottom: 1px solid #ffffff1b; }
.brand { display: inline-flex; flex-shrink: 0; align-items: center; gap: 12px; text-decoration: none; }
.brand img { width: 49px; height: 49px; object-fit: contain; }
.brand > span { font-size: 17px; line-height: 1.2; font-weight: 900; letter-spacing: -.5px; }
.brand small { display: block; padding-top: 5px; font-size: 9px; font-weight: 600; letter-spacing: 1.7px; color: #c1c5bb; }
.site-header nav { display: flex; align-items: center; gap: clamp(18px, 2.2vw, 36px); }
.site-header nav a { padding: 10px 0; text-decoration: none; font-size: 13px; font-weight: 600; }
.site-header nav a:hover { color: var(--gold); }
.header-cta { display: inline-flex; gap: 25px; align-items: center; border-bottom: 1px solid var(--gold); padding: 10px 0; color: var(--gold); font-size: 12px; font-weight: 700; text-decoration: none; }
.header-cta span { font-size: 19px; }
.hero { position: relative; isolation: isolate; min-height: 690px; overflow: hidden; display: flex; align-items: center; color: var(--paper); background: var(--ink); }
.hero-image { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 64%; filter: saturate(.75) contrast(1.07); }
.hero-shade { position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, rgba(10,17,13,.94) 0%, rgba(13,21,16,.78) 35%, rgba(15,21,17,.2) 78%), linear-gradient(0deg, rgba(12,18,13,.75), transparent 44%, rgba(14,19,15,.06)); }
.hero::after { content: ""; position: absolute; z-index: -1; inset: auto 0 0; height: 4px; background: linear-gradient(90deg, var(--red-bright) 0 74%, var(--gold) 74%); }
.hero-copy { width: 100%; padding: 64px var(--page-gutter) 110px; }
.eyebrow { font-size: 10px; line-height: 1.5; font-weight: 800; letter-spacing: 1.8px; text-transform: uppercase; }
.hero .eyebrow { display: flex; align-items: center; gap: 10px; color: #e0e2d8; margin-bottom: 35px; }
.red-dot { display: inline-block; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--red-bright); box-shadow: 0 0 0 4px #df44331a; }
.hero-kicker { margin-bottom: 13px; color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: 2.9px; }
h1 { max-width: 1050px; font-family: var(--display); font-size: clamp(72px, 8.65vw, 138px); line-height: .98; font-weight: 900; letter-spacing: -1.8px; text-transform: uppercase; }
h1 em { color: var(--gold); font-style: normal; }
.hero-desc { margin-top: 25px; color: #e2e5dc; font-size: 16px; line-height: 1.65; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 30px; margin-top: 27px; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: 28px; min-height: 50px; padding: 14px 22px; border: 1px solid transparent; font-size: 12px; font-weight: 700; line-height: 1.4; text-decoration: none; transition: background .18s, color .18s, border-color .18s; }
.button span { font-size: 19px; line-height: 1; }
.primary { color: #fff; background: var(--red); border-color: var(--red); }
.primary:hover { background: #9f2a1e; border-color: #9f2a1e; }
.outline { border-color: currentColor; background: transparent; }
.outline:hover { color: var(--paper); background: var(--ink); border-color: var(--ink); }
.text-link { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-size: 12px; font-weight: 700; text-decoration: underline; text-decoration-color: #92988b; text-underline-offset: 7px; }
.text-link span { font-size: 18px; }
.hero-stamp { position: absolute; right: var(--page-gutter); bottom: 116px; display: flex; flex-direction: column; align-items: center; transform: rotate(-5deg); padding: 8px 23px 16px; border: 1px solid #e6d6b0a1; color: #e6d6b0; background: #1820196b; }
.hero-stamp strong { font-family: var(--display); font-size: 90px; line-height: 1.15; font-weight: 900; letter-spacing: -4px; }
.hero-stamp strong span { font-family: Arial, sans-serif; font-weight: 400; font-size: 48px; vertical-align: 8px; margin: 0 5px; }
.hero-stamp > span { font-size: 8px; letter-spacing: 1.7px; font-weight: 700; }
.hero-bottom { position: absolute; bottom: 0; right: var(--page-gutter); left: var(--page-gutter); display: flex; justify-content: space-between; gap: 16px; align-items: center; min-height: 67px; border-top: 1px solid #ffffff40; color: #e0e2d8; font-size: 9px; font-weight: 700; letter-spacing: 1.7px; }
.hero-bottom > span:last-child span { display: inline-block; margin-left: 24px; font-size: 23px; vertical-align: middle; }
.facts-strip { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; padding: 28px var(--page-gutter); background: #e9e8dd; border-bottom: 1px solid #d4d5c9; }
.facts-strip > div { display: flex; align-items: center; gap: 17px; padding: 3px 0 3px 30px; border-left: 1px solid #c2c7b9; }
.facts-strip > div:first-child { padding-left: 0; border-left: 0; }
.facts-strip strong { font-family: var(--display); font-size: 48px; line-height: 1; letter-spacing: -1.5px; }
.facts-strip span { max-width: 130px; font-size: 9px; line-height: 1.6; font-weight: 800; letter-spacing: 1.5px; }
.fact-heart strong { color: var(--red); }
.section { padding: 90px var(--page-gutter); }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 34px; }
.section-heading > p { color: var(--muted); font-size: 13px; }
.section .eyebrow { color: var(--gold-dark); margin-bottom: 12px; }
h2 { font-family: var(--display); font-size: clamp(44px, 4.6vw, 70px); line-height: 1.05; font-weight: 900; letter-spacing: -1.2px; }
h2 em { font-family: Georgia, "Times New Roman", serif; font-size: .83em; font-weight: 400; letter-spacing: -1.6px; }
.sync-state { display: inline-flex; align-items: center; gap: 8px; padding: 8px 0; font-size: 10px; color: #4b614b; text-align: right; }
.sync-state > span { display: block; flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: #4e754a; }
.sync-state.offline { color: #925311; }
.sync-state.offline > span { background: #a86420; }
.tournament-controls { display: flex; align-items: stretch; justify-content: space-between; gap: 24px; margin: 22px 0 25px; }
.segmented { display: inline-flex; padding: 4px; gap: 3px; background: var(--ink); }
.segmented button { min-height: 44px; min-width: 135px; border: 0; padding: 10px 22px; color: #d9dfd4; background: transparent; font-size: 13px; font-weight: 700; }
.segmented button.selected, .segmented button[aria-pressed="true"] { color: #fff; background: var(--red); }
.segmented button small { padding-left: 5px; font-size: 9px; opacity: .9; }
.search { display: flex; align-items: center; gap: 12px; min-width: 260px; width: 34%; padding: 0 16px; border: 1px solid #b8bdb0; background: transparent; }
.search > span:first-child { font-size: 29px; line-height: 1; }
.search input { width: 100%; min-width: 0; min-height: 50px; padding: 10px 0; border: 0; color: var(--ink); background: transparent; font-size: 13px; }
.search input::placeholder { color: #63695f; opacity: 1; }
.tabs { display: flex; gap: 34px; border-bottom: 1px solid #bfc4b6; margin-bottom: 24px; overflow-x: auto; scrollbar-width: thin; }
.tabs button { position: relative; flex-shrink: 0; border: 0; border-bottom: 3px solid transparent; background: transparent; padding: 13px 0 15px; color: #5d6259; font-size: 13px; font-weight: 700; }
.tabs button.selected, .tabs button[aria-pressed="true"] { border-bottom-color: var(--red); color: var(--ink); }
.tabs button:focus-visible { outline-offset: -3px; }
.view-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 25px; }
.view-toolbar:empty { display: none; }
.day-tabs { display: flex; flex-wrap: wrap; gap: 7px; }
.day-tabs button { min-height: 42px; padding: 9px 15px; border: 1px solid var(--line); color: #525a4f; background: transparent; font-size: 11px; font-weight: 700; }
.day-tabs button.selected, .day-tabs button[aria-pressed="true"] { color: var(--paper); background: var(--ink); border-color: var(--ink); }
.court-filter { display: flex; align-items: center; gap: 10px; font-size: 11px; }
.court-filter select, select.court-filter { min-height: 42px; border: 1px solid #bbc2b2; padding: 9px 28px 9px 12px; color: var(--ink); background: transparent; }
.schedule-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 32px 0 15px; font-size: 20px; letter-spacing: -.6px; }
.schedule-heading small, .schedule-heading span { font-size: 11px; font-weight: 400; letter-spacing: 0; color: var(--muted); }
.match-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.match-card { min-width: 0; padding: 18px 20px 20px; border: 1px solid #d9ddd1; border-top: 2px solid #a1aa95; background: var(--white); }
.match-card:has(.status-badge.live) { border-top-color: var(--red); background: #fffaf4; }
.match-card:has(.status-badge.excluded) { background: #e9eae1; border-top-color: #a1a597; }
.match-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 15px; color: #697060; font-size: 9px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; }
.match-meta > div { display: flex; align-items: center; gap: 7px; }
.match-phase { margin: -6px 0 14px; color: #697060; font-size: 9px; line-height: 1.5; }
.match-time { color: var(--ink); font-size: 13px; font-weight: 800; letter-spacing: -.2px; font-variant-numeric: tabular-nums; }
.match-teams { display: grid; gap: 8px; }
.match-teams > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 30px; }
.team-name { min-width: 0; padding: 0; border: 0; background: transparent; color: var(--ink); text-align: left; font-size: 13px; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
button.team-name { min-height: 30px; }
button.team-name:hover { color: var(--red); text-decoration: underline; text-underline-offset: 3px; }
.score { min-width: 24px; color: var(--ink); text-align: center; font-family: var(--display); font-size: 27px; line-height: 1; font-weight: 900; font-variant-numeric: tabular-nums; }
.status-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; border: 1px solid #d2d7c9; color: #535e4c; background: #edf0e6; font-size: 8px; line-height: 1.2; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; }
.status-badge.live { color: #fff; background: var(--red); border-color: var(--red); }
.status-badge.live::before { content: ""; width: 4px; height: 4px; background: #fff; border-radius: 50%; }
.status-badge.final { color: #365334; border-color: #c5d1bd; background: #e8efdf; }
.status-badge.excluded { color: #6d534e; border-color: #d1c6bf; background: #eee5df; }
.status-badge.invalidated { color: #7a541c; border-color: #c9b58c; background: #f3ead7; }
.unresolved { color: #737966; font-weight: 400; font-size: 12px; }
.penalty { margin-top: 10px; color: #765d2a; font-size: 10px; line-height: 1.5; }
.live-ribbon { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; padding: 13px 17px; border-left: 3px solid var(--red); color: var(--red); background: #eae8df; font-size: 12px; font-weight: 600; }
.live-ribbon:empty { display: none; }
.live-ribbon button { min-height: 35px; border: 0; border-bottom: 1px solid #bb9a91; padding: 5px 0; color: var(--ink); background: transparent; font-size: 12px; font-weight: 700; }
.ribbon-heading { flex: 0 1 175px; }
.ribbon-heading strong { display: block; color: var(--red); font-size: 12px; }
.ribbon-heading > span { display: block; margin-top: 3px; color: #606c55; font-size: 9px; font-weight: 400; }
.ribbon-card { flex: 1 1 245px; min-width: 0; padding-left: 20px; border-left: 1px solid #c4ccb8; }
.ribbon-card .match-meta { margin-bottom: 5px; font-size: 8px; line-height: 1.6; }
.ribbon-teams { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 10px; }
.ribbon-teams .team-name { min-height: 31px; border: 0; font-size: 10px; }
.ribbon-teams .team-name:last-child { text-align: right; }
.ribbon-teams .score { font-size: 18px; white-space: nowrap; }
.group-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px; }
.group-card { min-width: 0; border: 1px solid #d6dacc; background: var(--white); }
.group-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 20px; background: var(--ink); color: var(--paper); }
.group-header h3 { font-family: var(--display); font-size: 25px; font-weight: 800; letter-spacing: -.4px; }
.group-header > span, .group-header small { color: #cad0c1; font-size: 9px; letter-spacing: 1px; text-transform: uppercase; }
.table-wrap { max-width: 100%; overflow-x: auto; scrollbar-width: thin; }
table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
caption { padding: 12px 15px; font-size: 11px; text-align: left; color: var(--muted); }
.standings { min-width: 410px; font-size: 11px; }
.standings th { padding: 13px 7px; border-bottom: 1px solid var(--line); color: #66705f; font-size: 8px; font-weight: 700; text-align: center; letter-spacing: .5px; text-transform: uppercase; }
.standings td { padding: 13px 7px; border-bottom: 1px solid #e6e8df; text-align: center; }
.standings tbody th { padding: 13px 7px; border-bottom: 1px solid #e6e8df; color: var(--ink); font-size: 11px; font-weight: 700; letter-spacing: 0; text-transform: none; text-align: left; }
.standings tbody th .table-note { display: block; padding: 4px 0 0; font-size: 8px; font-weight: 400; }
.standings th:first-child, .standings td:first-child { padding-left: 15px; width: 28px; color: #6b745f; }
.standings th:nth-child(2), .standings td:nth-child(2) { text-align: left; }
.standings td:nth-child(2) { min-width: 138px; }
.standings .team-name { font-size: 11px; }
.standings th:last-child, .standings td:last-child { padding-right: 16px; font-weight: 800; color: var(--ink); }
.standings td:last-child { font-size: 14px; }
.standings tr.qualified { background: #f0f3e8; }
.standings tr.qualified td:first-child { border-left: 3px solid #73854e; padding-left: 12px; color: #476033; font-weight: 800; }
.standings tr.disqualified { color: #7e756d; background: #eceae4; }
.standings tr.disqualified .team-name { color: #776b65; text-decoration: line-through; }
.table-note { padding: 13px 17px; color: var(--muted); font-size: 10px; }
.table-note:empty { display: none; }
.thirds-card { margin-top: 26px; }
.thirds-card .group-header { flex-wrap: wrap; }
.thirds-card .group-header h3 { font-size: 23px; }
.bracket-grid { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(255px,1fr); gap: 24px; overflow-x: auto; padding: 6px 0 24px; scrollbar-width: thin; scroll-snap-type: x proximity; }
.bracket-column { min-width: 0; scroll-snap-align: start; }
.bracket-column > h3 { min-height: 45px; margin-bottom: 15px; border-bottom: 2px solid #9d8a61; font-family: var(--display); font-size: 25px; letter-spacing: -.3px; }
.bracket-match { position: relative; margin-bottom: 16px; min-height: 153px; padding: 15px; border: 1px solid var(--line); border-top: 2px solid #a0a78f; background: var(--white); }
.bracket-match .team-name { font-size: 12px; }
.bracket-match .score { font-size: 24px; }
.bracket-column:last-child .bracket-match { border-top-color: var(--gold-dark); }
.scorers-table { min-width: 500px; background: var(--white); font-size: 13px; }
.scorers-table th { padding: 17px 20px; color: var(--paper); background: var(--ink); font-size: 10px; text-align: left; text-transform: uppercase; letter-spacing: 1px; }
.scorers-table td { padding: 17px 20px; border-bottom: 1px solid var(--line); }
.scorers-table tbody th { padding: 17px 20px; border-bottom: 1px solid var(--line); color: var(--ink); background: transparent; font-size: 13px; text-transform: none; letter-spacing: 0; }
.scorers-table th:last-child, .scorers-table td:last-child { text-align: right; }
.scorers-table td:last-child { font-weight: 900; font-size: 22px; }
.empty { padding: 45px 24px; border: 1px solid var(--line); border-top: 3px solid var(--gold); color: var(--muted); background: #efeee5; font-size: 14px; text-align: center; }
.empty strong { display: block; margin-bottom: 8px; color: var(--ink); font-size: 19px; }
.notice { margin: 0 0 18px; padding: 14px 17px; border-left: 3px solid var(--gold-dark); color: #645128; background: #ece8da; font-size: 12px; }
.story { display: grid; grid-template-columns: minmax(0,.88fr) minmax(0,1fr); align-items: center; gap: clamp(45px, 8vw, 128px); padding-top: 100px; padding-bottom: 100px; color: var(--paper); background: #1c251e; }
.story-image { position: relative; max-width: 500px; }
.story-image::before { content: ""; position: absolute; pointer-events: none; inset: 15px -15px -15px 15px; border: 1px solid #a28c6073; }
.story-image img { position: relative; width: 100%; }
.story .eyebrow { color: var(--gold); }
.story h2 { margin-bottom: 28px; }
.story h2 em { color: #e0c99a; }
.story-copy > p:not(.eyebrow) { margin-bottom: 19px; color: #cbd1c4; font-size: 14px; line-height: 1.8; }
.story-copy > p.lead { color: #f1f0e6; font-size: 19px; line-height: 1.6; }
.story-copy > .text-link { margin: 1px 0 23px; color: #e2c891; }
.donation-box { margin-top: 13px; padding: 22px 0 0; border-top: 1px solid #6e796349; }
.donation-box .eyebrow { font-size: 9px; margin-bottom: 10px; }
.donation-box > strong { font-size: 16px; }
.donation-box > p:not(.eyebrow) { font-size: 12px; color: #c4cbbc; }
.iban-line { display: flex; flex-wrap: wrap; align-items: center; gap: 13px; margin: 15px 0 13px; }
.iban-line code { color: #f3e0b5; font-family: "Courier New", monospace; font-size: clamp(14px, 1.45vw, 20px); font-weight: 700; letter-spacing: .3px; overflow-wrap: anywhere; }
.iban-line button { min-height: 40px; padding: 7px 11px; border: 1px solid #7e8d70; color: var(--paper); background: transparent; font-size: 10px; font-weight: 700; }
.iban-line button:hover { background: #31402f; }
.donation-box p.small { color: #c0c7b8; font-size: 10px; line-height: 1.7; }
#copy-status { min-height: 18px; }
.location { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 10%; border-bottom: 1px solid var(--line); }
.location h2 { margin-bottom: 23px; }
.location > div > p:not(.eyebrow) { max-width: 360px; margin-bottom: 27px; color: var(--muted); font-size: 14px; }
.day-program > div { display: grid; grid-template-columns: 1fr auto; gap: 5px 20px; align-items: baseline; padding: 24px 0; border-bottom: 1px solid #c4cabb; }
.day-program > div:first-child { border-top: 1px solid #c4cabb; }
.day-program span { color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: 1px; }
.day-program strong { font-family: var(--display); font-size: clamp(25px, 2.4vw, 37px); line-height: 1.3; font-weight: 900; letter-spacing: -.6px; font-variant-numeric: tabular-nums; }
.day-program small { grid-column: 2; color: var(--muted); font-size: 10px; }
.prizes { padding-top: 76px; padding-bottom: 76px; color: var(--paper); background: var(--ink); }
.prizes .eyebrow { color: var(--gold); }
.prizes .section-heading > p { color: #bfc8b7; }
.prize-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 35px; margin-top: 40px; }
.prize-grid > div { padding-top: 22px; border-top: 1px solid #5e6855; }
.prize-grid > div:first-child { border-top: 2px solid var(--gold); padding-top: 21px; }
.prize-grid > div > span { color: #b9c1b0; font-size: 9px; font-weight: 700; letter-spacing: 1.5px; }
.prize-grid strong { display: block; margin: 10px 0 0; font-family: var(--display); font-size: clamp(40px, 4.9vw, 74px); font-weight: 900; line-height: 1.25; letter-spacing: -1.3px; }
.prize-grid > div:first-child strong { color: var(--gold); }
.prize-grid strong small { font-family: var(--body); color: #b9c1b0; font-size: 10px; font-weight: 400; letter-spacing: 0; }
.prize-grid p { color: #d1d7c9; font-size: 14px; }
.rules { background: #e8e9de; }
.rules-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 35px; margin-bottom: 34px; color: #57624e; font-size: 13px; }
.rules-intro strong { color: var(--ink); }
#rules-list { border-top: 1px solid #b4bfaa; }
#rules-list details { padding: 0; border-bottom: 1px solid #b4bfaa; }
#rules-list summary { position: relative; min-height: 63px; padding: 20px 45px 20px 0; list-style: none; cursor: pointer; font-size: 14px; font-weight: 700; }
#rules-list summary::-webkit-details-marker { display: none; }
#rules-list summary::after { content: "+"; position: absolute; right: 2px; top: 11px; color: #687655; font-size: 26px; font-weight: 400; }
#rules-list details[open] summary::after { content: "−"; }
#rules-list details > :not(summary) { margin: 0; max-width: 860px; padding: 0 30px 24px 0; color: #4d5b43; font-size: 13px; line-height: 1.8; }
#rules-list ul, #rules-list ol { padding-left: 22px !important; }
#rules-list li + li { margin-top: 6px; }
footer { display: flex; justify-content: space-between; align-items: center; gap: 25px; padding: 35px var(--page-gutter); color: #e5e8df; background: var(--ink); }
footer .brand img { width: 43px; height: 43px; }
footer .brand > span { font-size: 14px; }
footer .brand small { font-size: 8px; }
footer > p { color: #aab5a0; font-size: 10px; }
footer > div { display: flex; flex-direction: column; align-items: flex-end; gap: 7px; font-size: 10px; }
footer > div > a:first-child { color: #cbb485; text-decoration: none; }
.admin-link { display: inline-flex; align-items: center; min-height: 30px; color: #aeb8a4; font-size: 9px; }
dialog { position: fixed; max-width: min(720px,calc(100vw - 32px)); width: 720px; max-height: calc(100dvh - 50px); border: 0; padding: 37px; color: var(--ink); background: var(--paper); box-shadow: 0 30px 100px #0007; overscroll-behavior: contain; }
dialog::backdrop { background: #0b130fe0; backdrop-filter: blur(5px); }
.dialog-close { position: absolute; z-index: 1; top: 8px; right: 8px; width: 44px; height: 44px; border: 0; background: transparent; color: var(--ink); font-size: 30px; }
.team-detail-heading { padding-right: 25px; margin: 0 0 13px; font-family: var(--display); font-size: clamp(30px,5vw,48px); line-height: 1.12; letter-spacing: -.5px; overflow-wrap: anywhere; }
.team-meta { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-bottom: 25px; color: var(--muted); font-size: 11px; }
#team-detail .match-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
#team-detail h3:not(.team-detail-heading) { margin: 24px 0 12px; font-size: 17px; }
#team-detail > .match-card { margin-bottom: 11px; }
@media (min-width: 1600px) {
  :root { --page-gutter: max(7vw,calc((100vw - 1420px)/2)); }
  .hero { min-height: 760px; }
}
@media (max-width: 1100px) {
  .site-header { gap: 18px; min-height: 86px; }
  .site-header nav { gap: 17px; }
  .hero { min-height: 650px; }
  .hero-stamp { right: 5%; bottom: 124px; padding: 7px 17px 13px; }
  .hero-stamp strong { font-size: 72px; }
  .hero-stamp strong span { font-size: 36px; }
  .hero-stamp > span { font-size: 6px; }
  .facts-strip > div { padding-left: 22px; gap: 13px; }
  .facts-strip strong { font-size: 41px; }
  .facts-strip span { font-size: 8px; }
  .match-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .story { gap: 50px; }
  .group-grid { gap: 18px; }
  .standings th, .standings td { padding-left: 5px; padding-right: 5px; }
  footer { flex-wrap: wrap; }
  footer > p { margin-left: auto; }
}
@media (max-width: 800px) {
  .site-header nav { display: none; }
  .site-header { min-height: 80px; }
  .hero { min-height: 625px; }
  .hero-copy { padding-top: 48px; padding-bottom: 104px; }
  .hero-stamp { display: none; }
  .hero-shade { background: linear-gradient(90deg,#10190ee0,#10190e80),linear-gradient(0deg,#10190eb3,transparent 60%); }
  .hero h1 { font-size: clamp(68px,11.1vw,98px); }
  .section { padding-top: 64px; padding-bottom: 64px; }
  .section-heading { margin-bottom: 25px; }
  .facts-strip { padding-top: 23px; padding-bottom: 23px; }
  .facts-strip > div { flex-direction: column; align-items: flex-start; padding-left: 22px; gap: 8px; }
  .facts-strip span { font-size: 8px; letter-spacing: .6px; }
  .group-grid { grid-template-columns: 1fr; }
  .story { grid-template-columns: .83fr 1fr; gap: 32px; align-items: start; }
  .story h2 { font-size: 47px; }
  .story-copy > p.lead { font-size: 16px; }
  .story-copy > p:not(.eyebrow) { font-size: 12px; }
  .story .text-link { font-size: 10px; }
  .location { gap: 6%; }
  .day-program > div { grid-template-columns: 1fr; gap: 7px; padding: 18px 0; }
  .day-program small { grid-column: 1; }
  .prize-grid { gap: 23px; }
  .prize-grid strong small { display: block; margin: -2px 0 6px; }
  .rules-intro { gap: 24px; }
}
@media (max-width: 600px) {
  html { scroll-padding-top: 20px; }
  section { scroll-margin-top: 20px; }
  .site-header { padding-top: 12px; padding-bottom: 12px; min-height: 77px; gap: 15px; }
  .brand { gap: 9px; }
  .brand img { width: 43px; height: 43px; }
  .brand > span { font-size: 15px; }
  .brand small { font-size: 7px; letter-spacing: 1.2px; }
  .header-cta { font-size: 10px; gap: 8px; }
  .hero { min-height: 645px; align-items: flex-start; }
  .hero-copy { padding: 44px var(--page-gutter) 111px; }
  .hero-image { object-position: 59% 70%; }
  .hero-shade { background: linear-gradient(90deg,#0d160fd9,#0d160f6b),linear-gradient(0deg,#0d160feb 0%,#0d160f33 65%); }
  .hero .eyebrow { font-size: 8px; letter-spacing: 1.3px; margin-bottom: 37px; }
  .hero-kicker { font-size: 9px; letter-spacing: 1.8px; margin-bottom: 16px; }
  .hero h1 { font-size: clamp(54px,12.2vw,73px); line-height: 1.06; letter-spacing: -1px; }
  .hero-desc { font-size: 14px; margin-top: 22px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 11px; margin-top: 26px; }
  .hero-actions .button { min-height: 51px; padding-left: 19px; padding-right: 19px; }
  .hero-actions .text-link { font-size: 11px; }
  .hero-bottom { min-height: 80px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 5px; font-size: 7px; letter-spacing: 1.1px; }
  .hero-bottom > span:last-child span { margin-left: 12px; font-size: 16px; }
  .facts-strip { gap: 0; padding-top: 24px; padding-bottom: 24px; }
  .facts-strip > div { padding-left: 13px; gap: 8px; }
  .facts-strip strong { font-size: 38px; }
  .facts-strip span { font-size: 8px; line-height: 1.6; letter-spacing: .35px; }
  .section { padding-top: 54px; padding-bottom: 54px; }
  h2 { font-size: 44px; letter-spacing: -1px; }
  .section .eyebrow { font-size: 8px; letter-spacing: 1.5px; margin-bottom: 10px; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 16px; margin-bottom: 21px; }
  .sync-state { font-size: 9px; padding: 0; }
  .tournament-controls { flex-direction: column; gap: 13px; margin-top: 22px; margin-bottom: 17px; }
  .segmented { width: 100%; }
  .segmented button { flex: 1; min-width: 0; }
  .search { min-width: 0; width: 100%; }
  .search input { min-height: 46px; font-size: 16px; }
  .tabs { gap: 25px; margin-bottom: 19px; }
  .tabs button { font-size: 11px; padding-top: 12px; padding-bottom: 13px; }
  .view-toolbar { gap: 13px; margin-bottom: 18px; }
  .day-tabs { width: 100%; gap: 6px; }
  .day-tabs button { flex: 1; min-width: 0; padding: 9px 8px; font-size: 10px; }
  .court-filter { width: 100%; justify-content: flex-end; }
  .court-filter select, select.court-filter { font-size: 12px; }
  .schedule-heading { margin-top: 25px; font-size: 18px; }
  .match-grid { grid-template-columns: 1fr; gap: 11px; }
  .match-card { padding: 15px 17px 18px; }
  .match-meta { margin-bottom: 12px; }
  .match-teams { gap: 7px; }
  .team-name { font-size: 13px; }
  .score { font-size: 27px; }
  .live-ribbon { font-size: 11px; padding: 12px; }
  .ribbon-heading { flex-basis: 100%; }
  .ribbon-card { flex-basis: 100%; padding: 11px 0 0; border-left: 0; border-top: 1px solid #c4ccb8; }
  .group-header { padding: 15px 17px; }
  .group-grid { gap: 21px; }
  .table-note { padding: 12px 14px; font-size: 9px; }
  .bracket-grid { gap: 16px; grid-auto-columns: minmax(245px,85%); }
  .bracket-column > h3 { font-size: 24px; }
  .empty { padding: 32px 19px; font-size: 12px; }
  .story { grid-template-columns: 1fr; gap: 43px; }
  .story-image { max-width: 390px; margin: 0 auto; width: calc(100% - 12px); }
  .story-image::before { inset: 10px -10px -10px 10px; }
  .story h2 { font-size: 52px; margin-bottom: 23px; }
  .story-copy > p.lead { font-size: 18px; }
  .story-copy > p:not(.eyebrow) { font-size: 13px; }
  .story .text-link { font-size: 11px; }
  .iban-line code { font-size: 17px; letter-spacing: -.25px; }
  .location { grid-template-columns: 1fr; gap: 32px; }
  .location > div > p:not(.eyebrow) { font-size: 13px; }
  .day-program > div { grid-template-columns: 1fr auto; gap: 5px 12px; padding: 21px 0; }
  .day-program strong { font-size: 29px; }
  .day-program small { grid-column: 2; }
  .day-program span { font-size: 9px; }
  .prizes .section-heading > p { font-size: 12px; }
  .prize-grid { grid-template-columns: 1fr; gap: 21px; margin-top: 30px; }
  .prize-grid > div { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 2px 15px; padding-top: 17px; }
  .prize-grid > div:first-child { padding-top: 16px; }
  .prize-grid > div > span { align-self: center; font-size: 8px; letter-spacing: 1px; }
  .prize-grid strong { margin: 0; font-size: 44px; text-align: right; }
  .prize-grid strong small { margin-top: -2px; text-align: right; font-size: 8px; }
  .prize-grid p { grid-column: 2; text-align: right; font-size: 12px; }
  .rules-intro { grid-template-columns: 1fr; gap: 17px; font-size: 12px; margin-bottom: 28px; }
  #rules-list summary { padding-top: 19px; padding-bottom: 19px; font-size: 13px; }
  #rules-list details > :not(summary) { font-size: 12px; padding-right: 4px; }
  footer { align-items: flex-start; flex-direction: column; gap: 18px; padding-top: 30px; padding-bottom: 30px; }
  footer > p { margin: 0; font-size: 9px; }
  footer > div { width: 100%; flex-direction: row; align-items: center; justify-content: space-between; padding-top: 15px; border-top: 1px solid #414b39; gap: 14px; }
  dialog { max-width: calc(100vw - 20px); max-height: calc(100dvh - 24px); padding: 30px 17px 22px; }
  #team-detail .match-grid { grid-template-columns: 1fr; }
  .team-detail-heading { font-size: 33px; }
}
@media (max-width: 350px) {
  :root { --page-gutter: 16px; }
  .header-cta { font-size: 9px; }
  .brand img { width: 36px; height: 36px; }
  .brand > span { font-size: 13px; }
  .brand small { font-size: 6px; }
  .hero h1 { font-size: 51px; }
  .hero { min-height: 638px; }
  .hero .eyebrow { font-size: 7px; letter-spacing: 1px; }
  .facts-strip > div { padding-left: 10px; }
  .facts-strip span { font-size: 7px; }
  .day-program strong { font-size: 26px; }
  .iban-line code { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media (forced-colors: active) {
  .hero-shade { background: Canvas; opacity: .93; }
  .selected, [aria-pressed="true"], .qualified { outline: 2px solid Highlight; outline-offset: -2px; }
  .status-badge, .button, .match-card, .group-card { border: 1px solid ButtonText; }
}
@media print {
  .site-header, .hero, .facts-strip, .story, .location, .prizes, .rules, footer, .tournament-controls, .tabs, .view-toolbar, .live-ribbon, .sync-state { display: none; }
  body { background: #fff; color: #000; font-size: 10pt; }
  .section { padding: 0; }
  .match-grid, .group-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .match-card, .group-card { break-inside: avoid; }
  .table-wrap, .bracket-grid { overflow: visible; }
  .bracket-grid { grid-auto-columns: 1fr; }
}
