:root {
  --ink: #101110;
  --paper: #f1eee6;
  --paper-dark: #dcd9d0;
  --lime: #209f94;
  --orange: #d72f3b;
  --blue: #176b4d;
  --muted: #aaa99f;
  --line: rgba(16, 17, 16, .16);
  --display: "Barlow Condensed", Impact, sans-serif;
  --body: "Inter", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { overflow-x:hidden; scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--paper); color: var(--ink); font-family: var(--body); font-size: 16px; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 100; top: -80px; left: 20px; padding: 12px 18px; background: var(--lime); transition: top .2s; }
.skip-link:focus { top: 18px; }
.announcement { min-height: 38px; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 7px 20px; background: var(--lime); color: white; font-size: 12px; }
.announcement span:first-child { font-weight: 800; text-transform: uppercase; }
.announcement p { margin: 0; }
.announcement a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.site-header { position: sticky; z-index: 20; top: 0; background: rgba(16,17,16,.95); color: white; backdrop-filter: blur(12px); }
.nav-shell { max-width: 1500px; height: 116px; display: flex; align-items: center; gap: 40px; margin: auto; padding: 0 3vw; }
.brand { display: flex; align-items: center; gap: 10px; }
.brand-logo-img { width: 114px; height: 114px; display: block; object-fit: contain; }
.brand-mark { width: 40px; height: 40px; color: var(--lime); }
.brand-mark svg { width: 100%; }
.brand-mark path:first-child { fill: currentColor; }
.brand-slash { fill: none; stroke: var(--ink); stroke-width: 4; }
.brand-copy { font: 800 14px/11px var(--display); letter-spacing: 1.5px; }
.brand-copy strong { color: var(--lime); font-weight: 800; }
.nav-links { display: flex; align-items: center; gap: clamp(18px, 2.2vw, 36px); margin-left: auto; }
.nav-links a { position: relative; color: #cdcdc8; font-size: 13px; font-weight: 600; }
.nav-links a::after { position: absolute; right: 0; bottom: -8px; left: 0; height: 2px; background: var(--lime); content: ""; transform: scaleX(0); transition: transform .2s; }
.nav-links a:hover, .nav-links a.active { color: white; }
.nav-links a.active::after, .nav-links a:hover::after { transform: scaleX(1); }
.nav-cta { padding: 13px 17px; border: 1px solid #3f413d; font-size: 12px; font-weight: 700; text-transform: uppercase; }
.nav-cta:hover { background: var(--lime); color: var(--ink); }
.menu-button { display: none; border: 0; background: transparent; }

.hero { position: relative; min-height: 770px; overflow: hidden; background: var(--ink); color: white; }
.rink-lines { position: absolute; inset: 0; opacity: .32; background:
  linear-gradient(90deg, transparent 49.9%, rgba(216,255,50,.55) 50%, transparent 50.2%),
  radial-gradient(circle at 50% 50%, transparent 0 129px, rgba(255,255,255,.11) 130px 132px, transparent 133px),
  linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: auto, auto, 100% 72px;
}
.hero::before { position: absolute; inset: 0; background: radial-gradient(circle at 78% 42%, rgba(216,255,50,.08), transparent 30%); content: ""; }
.hero-copy { position: relative; z-index: 2; width: 59%; padding: 90px 0 150px max(5vw, calc((100vw - 1450px)/2)); }
.eyebrow-row { display: flex; align-items: center; gap: 20px; }
.eyebrow { margin: 0 0 14px; font-size: 11px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; }
.edition { margin-top: -14px; padding: 5px 8px; border: 1px solid #545550; color: #b8b9b2; font-size: 9px; letter-spacing: 1.5px; text-transform: uppercase; }
h1, h2, h3 { margin: 0; font-family: var(--display); text-transform: uppercase; }
h1 { display: flex; flex-direction: column; font-size: clamp(100px, 12vw, 190px); font-weight: 900; letter-spacing: -7px; line-height: .7; }
h1 em { z-index: 2; color: var(--lime); font-style: italic; }
h1 b { align-self: flex-end; margin: 6px 7% 0 0; font-size: .28em; font-weight: 700; letter-spacing: 10px; line-height: 1; }
.hero-logo-stage { display: flex; align-items: flex-end; gap: 28px; min-height: 300px; }
.hero-logo-stage > img { width: min(24vw, 300px); height: min(24vw, 300px); display: block; object-fit: contain; }
.hero-logo-stage > div { display: flex; flex-direction: column; padding-bottom: 20px; }
.hero-logo-stage strong { font: 800 clamp(32px, 3.8vw, 58px)/.82 var(--display); letter-spacing: -1px; text-transform: uppercase; }
.hero-logo-stage span { margin-top: 14px; color: var(--orange); font: 800 28px var(--display); letter-spacing: 8px; }
.hero-lede { max-width: 560px; margin: 40px 0 26px; color: #c8c9c2; font-size: clamp(16px, 1.3vw, 20px); line-height: 1.6; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.button { min-height: 54px; display: inline-flex; align-items: center; justify-content: space-between; gap: 35px; padding: 0 22px; border: 1px solid transparent; font-size: 12px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; transition: transform .2s, background .2s, color .2s; }
.button:hover { transform: translateY(-3px); }
.button-primary { background: var(--lime); color: white; }
.button-ghost { border-color: #50514d; color: white; }
.button-dark { background: var(--ink); color: white; }
.button-light { background: var(--paper); color: var(--ink); }
.hero-art { position: absolute; top: 0; right: 0; width: 51%; height: calc(100% - 92px); overflow: hidden; }
.hero-art::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, var(--ink) 0%, transparent 18%, transparent 88%, rgba(16,17,16,.2)); content: ""; pointer-events: none; }
.hero-photo { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 42%; filter: hue-rotate(-12deg) saturate(1.12) contrast(1.04); }
.hero-stamp { position: absolute; z-index: 3; right: 7%; top: 18%; width: 95px; height: 95px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; color: white; font: 700 14px/1.1 var(--display); letter-spacing: 1px; text-align: center; text-transform: uppercase; transform: rotate(9deg); }
.event-strip { position: absolute; z-index: 4; right: 0; bottom: 0; left: 0; min-height: 92px; display: grid; grid-template-columns: 1fr 1.5fr 1.4fr .8fr; padding-left: max(5vw, calc((100vw - 1450px)/2)); border-top: 1px solid #363734; background: #161715; }
.event-strip > div { display: flex; flex-direction: column; justify-content: center; padding: 15px 3vw 15px 22px; border-left: 1px solid #363734; }
.event-strip > div:first-child { border-left: 0; padding-left: 0; }
.event-strip span { margin-bottom: 7px; color: #7f807b; font-size: 9px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
.event-strip strong { font: 700 clamp(16px, 1.7vw, 24px) var(--display); text-transform: uppercase; }
.event-strip i { color: var(--lime); font-style: normal; }

.section { max-width: 1500px; margin: auto; padding: 110px 5vw; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 42px; }
h2 { font-size: clamp(58px, 7vw, 108px); font-weight: 800; letter-spacing: -3px; line-height: .82; }
h2 em { color: var(--orange); font-style: italic; }
.day-tabs { display: flex; border-bottom: 1px solid var(--line); }
.day-tab { padding: 13px 20px; border: 0; border-bottom: 3px solid transparent; background: none; color: #777871; font-size: 12px; font-weight: 700; cursor: pointer; }
.day-tab.active { border-color: var(--orange); color: var(--ink); }
.event-date-chip { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border: 1px solid var(--line); font-size: 10px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; }
.event-date-chip.dark { background: var(--ink); color: white; }
.division-filters { display:flex; flex-wrap:wrap; gap:7px; margin:-18px 0 24px; }
.division-filters button { min-width:58px; min-height:42px; padding:0 15px; border:1px solid var(--line); background:transparent; font-size:10px; font-weight:800; text-transform:uppercase; cursor:pointer; }
.division-filters button.active { border-color:var(--ink); background:var(--ink); color:white; }
.scoreboard { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; }
.score-card { padding: 26px; border: 1px solid var(--line); background: #e9e6dd; }
.score-card.featured { grid-row: span 2; padding: 32px; background: var(--ink); color: white; }
.match-meta { display: flex; justify-content: space-between; color: #7e7f79; font-size: 10px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; }
.live-dot { color: var(--lime); }
.live-dot::before { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 4px rgba(216,255,50,.13); content: ""; }
.matchup { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; margin: 55px 0 40px; }
.matchup.compact { margin: 24px 0 4px; }
.team { display: flex; align-items: center; gap: 14px; }
.team-right { justify-content: flex-end; text-align: right; }
.team strong { max-width: 130px; font: 700 20px/1 var(--display); text-transform: uppercase; }
.team-badge { width: 54px; height: 54px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 50%; color: white; font: 800 19px var(--display); }
.badge-wolves { background: var(--orange); }
.badge-royals { background: var(--blue); }
.badge-hawks { background: #daa600; }
.badge-99 { background: #3d42bc; }
.badge-bison { background: #634132; }
.badge-old { background: #2b7163; font-size: 14px; }
.score { display: flex; align-items: center; gap: 14px; font: 700 58px var(--display); }
.score span { color: #5f605c; }
.score.small { font-size: 36px; }
.versus { color: #888981; font: 700 12px var(--display); }
.progress { height: 3px; background: #3e403b; }
.progress span { display: block; height: 100%; background: var(--lime); }
.featured > p { margin: 10px 0 0; color: #777a73; font-size: 10px; text-align: right; }
.text-link { display: inline-block; margin-top: 26px; border-bottom: 1px solid var(--ink); font-size: 12px; font-weight: 800; line-height: 2; text-transform: uppercase; }

.manifesto { display: grid; grid-template-columns: .92fr 1.08fr; min-height: 760px; background: var(--ink); color: white; }
.manifesto-photo { position: relative; overflow: hidden; display: grid; place-items: center; background:
  linear-gradient(135deg, rgba(32,159,148,.96), rgba(32,159,148,.72)),
  repeating-linear-gradient(90deg, transparent 0 39px, rgba(0,0,0,.2) 40px);
}
.manifesto-photo::before, .manifesto-photo::after { position: absolute; border: 4px solid rgba(16,17,16,.6); border-radius: 50%; content: ""; }
.manifesto-photo::before { width: 390px; height: 390px; }
.manifesto-photo::after { width: 130px; height: 130px; background: var(--orange); }
.manifesto-photo span { z-index: 2; color: var(--ink); font: 900 190px/.8 var(--display); letter-spacing: -15px; transform: rotate(-9deg); }
.manifesto-copy { display: flex; flex-direction: column; justify-content: center; padding: 80px 7vw; }
.manifesto-copy h2 { max-width: 700px; }
.manifesto-copy h2 em { color: var(--lime); }
.manifesto-copy > p:not(.eyebrow) { max-width: 600px; margin: 35px 0 50px; color: #b9bab4; font-size: 18px; line-height: 1.7; }
.stat-list { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; border-top: 1px solid #3c3d39; list-style: none; }
.stat-list li { padding: 25px 10px 5px 0; border-right: 1px solid #3c3d39; }
.stat-list li + li { padding-left: 20px; }
.stat-list strong { display: block; color: var(--lime); font: 800 48px var(--display); }
.stat-list span { color: #85867f; font-size: 10px; font-weight: 700; text-transform: uppercase; }

.schedule-list { border-top: 2px solid var(--ink); }
.schedule-empty { padding: 35px 0; color: #777871; }
.visibility-notice {
  grid-column:1/-1;
  width:100%;
  padding:34px;
  border:1px solid rgba(32,159,148,.42);
  border-radius:28px;
  background:
    radial-gradient(circle at top right, rgba(32,159,148,.22), transparent 38%),
    #141218;
  color:#f6f2ea;
  box-shadow:0 20px 60px rgba(0,0,0,.24);
}
.visibility-notice span {
  display:inline-flex;
  margin-bottom:14px;
  padding:8px 12px;
  border:1px solid rgba(201,160,99,.2);
  border-radius:999px;
  color:#55c9be;
  font-size:10px;
  font-weight:900;
  letter-spacing:1.4px;
  text-transform:uppercase;
}
.visibility-notice h3 {
  margin:0;
  font:900 clamp(38px,5vw,78px)/.85 var(--display);
  text-transform:uppercase;
}
.visibility-notice p {
  max-width:680px;
  margin:18px 0 0;
  color:#c9c1b4;
  font-size:clamp(15px,2vw,20px);
  line-height:1.55;
}
.visibility-notice strong { color:#f6f2ea; }
.schedule-list article { display: grid; grid-template-columns: 120px 45px 1fr 35px 1fr 80px; align-items: center; gap: 22px; min-height: 112px; border-bottom: 1px solid var(--line); transition: background .2s, padding .2s; }
.schedule-list article:hover { padding: 0 15px; background: #e5e2d9; }
.schedule-list time { font: 700 28px var(--display); }
.schedule-list time small { font-size: 11px; }
.rink-number { width: 37px; height: 37px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-size: 10px; font-weight: 700; }
.schedule-list div { display: flex; flex-direction: column; }
.schedule-list div strong { font: 700 22px var(--display); text-transform: uppercase; }
.schedule-list div span { margin-top: 5px; color: #85867f; font-size: 9px; text-transform: uppercase; }
.schedule-list article > b { color: #9b9b94; font: italic 700 15px var(--display); text-transform: uppercase; }
.schedule-list article > .schedule-score { display:flex; align-items:center; justify-content:center; gap:5px; color:var(--teal); font:900 20px var(--display); }
.schedule-score span { color:#85867f; }
.status { justify-self: end; padding: 6px 8px; background: #d8d5cc; color: #73746e; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.status-live { background: var(--lime); color: var(--ink); }

.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding-top: 20px; }
.feature-card { position: relative; min-height: 390px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 30px; transition: transform .25s; }
.feature-card:hover { transform: translateY(-7px); }
.feature-number { font: 700 12px var(--display); }
.feature-card h3 { max-width: 300px; font-size: 53px; line-height: .85; }
.feature-card .eyebrow { margin-bottom: 12px; }
.lime-card { background: var(--lime); color: white; }
.photo-card { background: var(--blue); color: white; }
.photo-card::before { position: absolute; inset: 0; opacity: .18; background: repeating-linear-gradient(135deg, transparent 0 18px, #fff 19px 21px); content: ""; }
.photo-card::after { position: absolute; width: 280px; height: 280px; right: -80px; top: -60px; border: 45px solid var(--lime); border-radius: 50%; content: ""; }
.photo-card > * { z-index: 1; }
.orange-card { background: var(--orange); color: white; }
.orange-card::before { position: absolute; right: -30px; bottom: -65px; color: rgba(16,17,16,.12); content: "03"; font: 900 280px/.7 var(--display); }
.circle-arrow { position: absolute; right: 28px; bottom: 27px; width: 45px; height: 45px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 18px; }

.rosters { padding-top: 80px; }
.roster-privacy { margin: -20px 0 35px; color: #777871; font-size: 11px; }
.division-group + .division-group { margin-top: 65px; }
.division-title { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: 13px; border-bottom: 2px solid var(--ink); }
.division-title h3 { font-size: 48px; }
.division-title span { color: #777871; font-size: 10px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }
.roster-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 12px; }
.roster-card { padding: 22px; border: 1px solid var(--line); background: #e9e6dd; }
.roster-card-heading { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.roster-swatch { width: 38px; height: 38px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(16,17,16,.13); }
.roster-card-heading small { color: #777871; font-size: 8px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }
.roster-card-heading h4 { margin: 2px 0 0; font: 700 22px/1 var(--display); text-transform: uppercase; }
.roster-card-heading > span:last-child { color: #777871; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.roster-card ul { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 18px; margin: 18px 0 0; padding: 0; list-style: none; }
.roster-card li { font-size: 12px; font-weight: 600; }

.event-guide { padding: 110px max(5vw, calc((100vw - 1350px)/2)); background: var(--ink); color: white; scroll-margin-top: 110px; }
.guide-intro { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 70px; margin-bottom: 55px; }
.guide-intro h2 em { color: var(--lime); }
.arrival-callout { padding: 25px 28px; border-left: 5px solid var(--lime); background: #1a1b19; }
.arrival-callout > span { color: #868780; font-size: 9px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; }
.arrival-callout > strong { display: block; margin: 5px 0 10px; color: var(--lime); font: 800 50px/.9 var(--display); }
.arrival-callout p { margin: 0; color: #b9bab4; font-size: 13px; line-height: 1.6; }
.guide-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.guide-card { position: relative; min-height: 500px; padding: 35px; overflow: hidden; color: var(--ink); }
.guide-card h3 { max-width: 520px; margin-bottom: 25px; font-size: clamp(43px, 4vw, 66px); line-height: .88; }
.guide-number { position: absolute; top: 25px; right: 28px; font: 800 12px var(--display); }
.guide-card ul { display: grid; gap: 10px; margin: 22px 0 0; padding: 0; list-style: none; }
.guide-card li { position: relative; padding-left: 17px; font-size: 13px; line-height: 1.45; }
.guide-card li::before { position: absolute; left: 0; color: var(--orange); content: "•"; }
.equipment-card { background: var(--lime); color: white; }
.equipment-card li::before { color: white; content: "✓"; font-weight: 800; }
.guide-warning { padding: 13px 15px; border: 1px solid rgba(255,255,255,.35); font-size: 12px; font-weight: 700; line-height: 1.5; }
.checklist { grid-template-columns: 1fr 1fr; }
.shirt-note { margin: 28px 0 0; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.3); font-size: 12px; font-weight: 700; }
.rules-card { background: var(--paper); }
.format-lines { border-top: 2px solid var(--ink); }
.format-lines div { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.format-lines strong { font: 700 20px var(--display); text-transform: uppercase; }
.format-lines span { color: #686962; font-size: 11px; }
.rules-download { margin-top: 28px; }
.food-card { background: var(--orange); color: white; }
.food-ticket { display: flex; align-items: end; justify-content: space-between; margin: 25px 0; padding: 20px; border: 1px solid rgba(255,255,255,.35); }
.food-ticket span { font-size: 10px; font-weight: 800; text-transform: uppercase; }
.food-ticket strong { font: 800 32px var(--display); text-transform: uppercase; }
.food-card > p:not(.eyebrow) { max-width: 620px; font-size: 14px; line-height: 1.65; }
.food-card li::before { color: white; }
.extras-card { background: #2d6cff; color: white; }
.extra-item { display: grid; grid-template-columns: 150px 1fr; gap: 20px; padding: 19px 0; border-top: 1px solid rgba(255,255,255,.25); }
.extra-item strong { color: var(--lime); font: 700 20px var(--display); text-transform: uppercase; }
.extra-item span { color: #d9e1ff; font-size: 12px; line-height: 1.6; }
.spectator-banner { display: flex; align-items: center; justify-content: space-between; gap: 45px; margin-top: 14px; padding: 38px; border: 1px solid #3c3d39; background: #161715; }
.spectator-banner h3 { max-width: 850px; font-size: clamp(30px, 3vw, 48px); line-height: .98; }
.spectator-banner .button { flex: 0 0 auto; }

.venue { max-width: none; display: grid; grid-template-columns: 1.2fr .8fr; padding: 0; background: var(--paper-dark); }
.venue-map { position: relative; min-height: 570px; overflow: hidden; background: #c4c2b9; }
.venue-map svg { width: 100%; height: 100%; }
.venue-map path { fill: none; stroke: #aaa9a1; stroke-width: 4; }
.venue-map .road { stroke: #f1eee6; stroke-width: 20; }
.map-pin { position: absolute; top: 47%; left: 48%; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50% 50% 50% 0; background: var(--orange); box-shadow: 0 5px 15px rgba(0,0,0,.2); transform: rotate(-45deg); }
.map-pin span { width: 14px; height: 14px; border-radius: 50%; background: var(--ink); }
.map-label { position: absolute; top: calc(47% + 60px); left: calc(48% - 35px); padding: 7px 10px; background: var(--ink); color: white; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.venue-copy { display: flex; flex-direction: column; justify-content: center; padding: 70px 7vw; }
.venue-copy h2 { font-size: clamp(65px, 6vw, 100px); }
.venue-copy .address { margin: 25px 0; font: 700 25px/1.25 var(--display); text-transform: uppercase; }
.venue-copy > p:not(.eyebrow):not(.address) { max-width: 460px; color: #666760; line-height: 1.7; }
.venue-details { display: grid; grid-template-columns: 1fr 1fr; margin: 30px 0; padding: 22px 0; border-block: 1px solid var(--line); }
.venue-details span { display: flex; flex-direction: column; }
.venue-details small { margin-bottom: 7px; color: #888980; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.venue-details strong { font: 700 19px var(--display); text-transform: uppercase; }
.venue-copy .button { align-self: flex-start; }

.finale { position: relative; min-height: 600px; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; padding: 80px 20px; background: var(--orange); text-align: center; }
.finale-shape { position: absolute; color: rgba(16,17,16,.1); font: 900 430px/.8 var(--display); letter-spacing: -35px; }
.finale > *:not(.finale-shape) { z-index: 1; }
.finale h2 { font-size: clamp(65px, 8vw, 125px); }
.finale h2 em { color: var(--ink); }
.finale > p:not(.eyebrow) { max-width: 640px; margin: 25px 0; font-size: 17px; line-height: 1.6; }

footer { padding: 70px 5vw 20px; background: var(--ink); color: white; }
.footer-top { max-width: 1400px; display: grid; grid-template-columns: 1.1fr 1.5fr 1fr auto; gap: 60px; align-items: start; margin: auto; }
.footer-top > p { margin: 0; color: #85867f; font-size: 13px; line-height: 1.7; }
.footer-top nav { display: grid; grid-template-columns: 1fr 1fr; gap: 13px 35px; }
.footer-top nav a { color: #bbbcb5; font-size: 12px; }
.footer-top nav a:hover { color: var(--lime); }
.footer-brand .brand-logo-img { width: 110px; height: 110px; }
.socials { display: flex; gap: 7px; }
.socials a { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #3a3b38; border-radius: 50%; font-size: 10px; font-weight: 700; }
.socials a:hover { background: var(--lime); color: var(--ink); }
.footer-bottom { max-width: 1400px; display: flex; justify-content: space-between; margin: 65px auto 0; padding-top: 20px; border-top: 1px solid #31322f; color: #666762; font-size: 9px; text-transform: uppercase; }

@media (max-width: 1000px) {
  .nav-links { position: absolute; top: 116px; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 15px 5vw 25px; background: var(--ink); }
  .nav-links.open { display: flex; }
  .nav-links a { padding: 15px 0; border-bottom: 1px solid #30312e; font-size: 15px; }
  .nav-links a::after { display: none; }
  .nav-cta { margin-left: auto; }
  .menu-button { width: 38px; display: flex; flex-direction: column; gap: 5px; order: 4; padding: 8px; cursor: pointer; }
  .menu-button > span:not(.sr-only) { height: 2px; display: block; background: white; }
  .hero { min-height: 850px; }
  .hero-copy { width: 68%; padding-top: 80px; }
  .hero-art { right: -12%; width: 55%; opacity: .85; }
  .scoreboard { grid-template-columns: 1fr; }
  .score-card.featured { grid-row: auto; }
  .manifesto { grid-template-columns: 1fr; }
  .manifesto-photo { min-height: 500px; }
  .feature-card h3 { font-size: 43px; }
  .roster-grid { grid-template-columns: repeat(2, 1fr); }
  .guide-intro { grid-template-columns: 1fr; }
  .guide-grid { grid-template-columns: 1fr; }
  .venue { grid-template-columns: 1fr; }
  .venue-map { min-height: 440px; }
}

@media (max-width: 700px) {
  .announcement a { display:inline-flex; align-items:center; min-height:44px; }
  .text-link { display:inline-flex; align-items:center; min-height:44px; }
  .nav-links a { display:flex; align-items:center; min-height:48px; }
  .announcement p { display: none; }
  .nav-shell { height: 98px; }
  .brand-logo-img { width: 96px; height: 96px; }
  .nav-links { top: 98px; }
  .nav-cta { display: none; }
  .menu-button { width:44px; min-height:44px; margin-left:auto; }
  .hero { min-height:950px; }
  .hero-copy { width:100%; padding:70px 20px 220px; }
  h1 { font-size: clamp(82px, 29vw, 130px); letter-spacing: -5px; }
  h1 b { margin-right: 4%; }
  .hero-logo-stage { min-height: 300px; align-items: flex-start; flex-direction: column; gap: 4px; }
  .hero-logo-stage > img { width: 240px; height: 240px; }
  .hero-logo-stage > div { padding: 0; }
  .hero-logo-stage strong { font-size: 34px; }
  .hero-logo-stage span { margin-top: 7px; font-size: 22px; }
  .hero-art { display:none; }
  .hero-art::before { background: linear-gradient(90deg, var(--ink) 0%, transparent 24%); }
  .hero-photo { object-position: 52% 20%; }
  .event-strip { grid-template-columns: 1fr 1fr; padding: 0; }
  .event-strip > div { padding: 14px 18px !important; border-top: 1px solid #363734; }
  .event-strip .weather { display: none; }
  .section { padding: 80px 20px; }
  .division-filters { flex-wrap:nowrap; overflow-x:auto; margin-top:-8px; padding-bottom:4px; }
  .division-filters button { flex:1 0 auto; min-height:46px; }
  .section-heading { align-items: flex-start; flex-direction: column; }
  h2 { font-size: clamp(58px, 20vw, 90px); }
  .day-tabs { width: 100%; }
  .day-tab { flex: 1; }
  .score-card { padding: 20px; }
  .matchup { gap: 8px; margin: 40px 0; }
  .matchup.compact { grid-template-columns: 1fr auto 1fr; }
  .team { flex-direction: column; text-align: center; }
  .team-right { flex-direction: column-reverse; }
  .team-badge { width: 46px; height: 46px; }
  .team strong { font-size: 16px; }
  .score { gap: 5px; font-size: 43px; }
  .score.small { font-size: 28px; }
  .manifesto-photo { min-height: 380px; }
  .manifesto-photo span { font-size: 130px; }
  .manifesto-copy { padding: 70px 20px; }
  .stat-list { grid-template-columns: 1fr 1fr; }
  .stat-list li { border-bottom: 1px solid #3c3d39; }
  .schedule-list article { grid-template-columns: 70px 34px 1fr; gap: 12px; padding: 18px 0; }
  .schedule-list time { font-size: 21px; }
  .schedule-list article > b:not(.schedule-score) { display: none; }
  .schedule-list article div:nth-of-type(2) { grid-column: 3; }
  .schedule-list .status { grid-column: 3; justify-self: start; }
  .feature-grid { grid-template-columns: 1fr; }
  .roster-grid { grid-template-columns: 1fr; }
  .event-guide { padding: 80px 20px; }
  .guide-card { min-height: 0; padding: 28px 22px; }
  .checklist { grid-template-columns: 1fr; }
  .extra-item { grid-template-columns: 1fr; gap: 6px; }
  .spectator-banner { align-items: flex-start; flex-direction: column; padding: 28px 22px; }
  .feature-card { min-height: 300px; }
  .venue-copy { padding: 70px 20px; }
  .finale { min-height: 540px; }
  .finale-shape { font-size: 230px; letter-spacing: -20px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-top > p { display: none; }
  .footer-top nav { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; gap: 10px; }
  .socials a { width:44px; height:44px; }
  .footer-bottom a { display:inline-flex; align-items:center; min-height:44px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

/* Hoopfest-inspired dark tournament UI */
#scores,#schedule,#teams {
  --hf-bg:#0d0c0f;
  --hf-surface:#141218;
  --hf-line:rgba(201,160,99,.18);
  --hf-text:#f6f2ea;
  --hf-muted:#c9c1b4;
  max-width:none;
  padding-inline:max(5vw,calc((100vw - 1500px)/2));
  background:var(--hf-bg);
  color:var(--hf-text);
}
#scores .section-heading h2 em,#schedule .section-heading h2 em,#teams .section-heading h2 em { color:var(--lime); }
#scores .event-date-chip,#schedule .event-date-chip,#teams .event-date-chip {
  border-color:var(--hf-line);
  border-radius:999px;
  background:var(--hf-surface);
  color:var(--hf-muted);
}
.division-filters { gap:9px; }
.division-filters button {
  min-height:44px;
  border-color:var(--hf-line);
  border-radius:999px;
  background:var(--hf-surface);
  color:var(--hf-muted);
  font-size:13px;
  text-transform:none;
}
.division-filters button.active {
  border-color:rgba(32,159,148,.7);
  background:#147b73;
  color:white;
}
#scores .scoreboard { gap:14px; }
#scores .score-card {
  border-color:var(--hf-line);
  border-radius:24px;
  background:var(--hf-surface);
  color:var(--hf-text);
  box-shadow:0 18px 45px rgba(0,0,0,.18);
}
#scores .score-card.featured { border-color:rgba(32,159,148,.48); background:#17151b; }
#scores .match-meta { color:var(--hf-muted); }
#scores .team-badge { box-shadow:0 0 0 4px rgba(255,255,255,.04); }
#scores .text-link { border:0; color:var(--lime); }

.schedule-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  border:0;
}
.schedule-list article {
  grid-template-columns:100px minmax(0,1fr) 46px minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  gap:11px 16px;
  min-height:150px;
  padding:20px;
  border:1px solid var(--hf-line);
  border-radius:24px;
  background:var(--hf-surface);
  color:var(--hf-text);
}
.schedule-list article:hover { padding:20px; border-color:rgba(32,159,148,.5); background:#18161d; }
.schedule-list time { color:var(--hf-muted); font-size:23px; }
.schedule-list .rink-number {
  grid-column:1;
  grid-row:2;
  width:auto;
  height:auto;
  min-width:92px;
  padding:10px 15px;
  display:flex;
  align-items:baseline;
  justify-content:center;
  border-color:var(--hf-line);
  border-radius:18px;
  background:#1d1a21;
  color:var(--lime);
  font:900 16px/1 var(--display);
  letter-spacing:1px;
  text-transform:uppercase;
}
.schedule-list article > time { grid-column:1; grid-row:1; }
.schedule-list article > div:nth-of-type(1) { grid-column:2; grid-row:1 / span 2; align-self:center; }
.schedule-list article > b { grid-column:3; grid-row:1 / span 2; align-self:center; justify-self:center; }
.schedule-list article > div:nth-of-type(2) { grid-column:4; grid-row:1 / span 2; align-self:center; }
.schedule-list article > .status { grid-column:5; grid-row:1 / span 2; align-self:center; }
.schedule-list div span { color:#918b82; }
.schedule-list article > .schedule-score {
  min-width:46px;
  min-height:36px;
  padding:0 9px;
  border-radius:999px;
  background:rgba(32,159,148,.13);
  color:#55c9be;
}
.schedule-list .status {
  border:1px solid var(--hf-line);
  border-radius:999px;
  background:#1d1a21;
  color:var(--hf-muted);
}
.schedule-list .status-live { border-color:rgba(32,159,148,.55); background:#147b73; color:white; }

#teams .roster-privacy { color:var(--hf-muted); }
#teams .division-title { border-color:var(--hf-line); }
#teams .division-title span { color:var(--hf-muted); }
#teams .roster-card {
  border-color:var(--hf-line);
  border-radius:24px;
  background:var(--hf-surface);
  color:var(--hf-text);
}
#teams .roster-card-heading { border-color:var(--hf-line); }
#teams .roster-card-heading small,#teams .roster-card-heading > span:last-child { color:var(--hf-muted); }

@media(max-width:900px) {
  .schedule-list { grid-template-columns:1fr; }
}
@media(max-width:700px) {
  #scores,#schedule,#teams { padding-inline:20px; }
  #scores .score-card { padding:20px; }
  .schedule-list article {
    grid-template-columns:82px minmax(0,1fr) auto;
    gap:9px 14px;
    min-height:0;
    padding:16px;
  }
  .schedule-list article:hover { padding:16px; }
  .schedule-list article > time { grid-column:1; grid-row:1; }
  .schedule-list article > .rink-number { grid-column:1; grid-row:2; min-width:0; padding:10px 9px; font-size:15px; }
  .schedule-list article > div:nth-of-type(1) { grid-column:2; grid-row:1; align-self:start; }
  .schedule-list article > b { grid-column:3; grid-row:1; }
  .schedule-list article > div:nth-of-type(2) { grid-column:2; grid-row:2; align-self:start; }
  .schedule-list article > .status { grid-column:3; grid-row:2; align-self:center; }
  .schedule-list article div strong { font-size:18px; }
  .schedule-list article > .schedule-score { display:flex; }
  .manifesto-photo { display:none; }
}
