/* =========================================================
   Space & Move — single-page site styles
   Theme tokens (light/dark), 3D parallax court, sections.
   ========================================================= */

:root{
  --bg:#F7F6F2; --surface:#FFFFFF; --surface-2:#FBFAF7;
  --ink:#16181B; --ink-soft:#5B6168; --line:#D5D8DE;
  --navy:#0E2A4D; --navy-soft:#1B3F6E; --red:#ff2929;
  --court-floor:#E9E5DB;
  --court-top:#F2F0EA; --court-bot:#DAD5C9;
  --glass:rgba(255,255,255,0.72); --glass-brd:rgba(14,42,77,0.10);
  --shadow:0 18px 50px -22px rgba(14,42,77,0.45);
  --win:#2F7A4F; --loss:#8B5A4A;
}
[data-theme="dark"]{
  --bg:#081326; --surface:#0F2138; --surface-2:#10243D;
  --ink:#EEF3FA; --ink-soft:#93A6BD; --line:rgba(255,255,255,0.12);
  --navy:#0E2A4D; --navy-soft:#244c80; --red:#ff2929;
  --court-floor:#122a40;
  --court-top:#16334d; --court-bot:#0c2036;
  --glass:rgba(12,28,48,0.62); --glass-brd:rgba(255,255,255,0.10);
  --shadow:0 22px 60px -24px rgba(0,0,0,0.7);
  --win:#3E9E68; --loss:#B07A66;
}

*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;padding:0;}
html{background:var(--bg);scroll-behavior:smooth;}
body{
  background:var(--bg); color:var(--ink);
  font-family:-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
  transition:background .4s ease,color .4s ease;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
:focus-visible{outline:2px solid var(--red);outline-offset:2px;}

.container{max-width:1180px;margin:0 auto;padding:0 24px;}
.tnum{font-variant-numeric:tabular-nums;}
.cond{font-stretch:condensed;}

@keyframes risein{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:translateY(0);}}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
.rise{animation:risein .7s ease both;}
.rise-1{animation:risein .7s .05s ease both;}
.rise-2{animation:risein .7s .1s ease both;}
.rise-3{animation:risein .7s .15s ease both;}
.rise-4{animation:risein .7s .2s ease both;}

/* ===== 3D COURT BACKGROUND ===== */
.court-wrap{
  position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none;
  perspective:780px; perspective-origin:50% 34%;
  background:linear-gradient(180deg,var(--court-top),var(--court-bot));
}
.court-plane{
  position:absolute; left:50%; top:46%; width:240vw; height:560vh;
  transform:translate(-50%,-50%) rotateX(73deg) translateY(var(--cy,0px));
  transform-origin:center center; background:var(--court-floor);
}
.court-lines{
  position:absolute; inset:0;
  background-repeat:no-repeat; background-position:center center; background-size:60% 70%;
}
.court-lines.dark{opacity:0;}
[data-theme="dark"] .court-lines.light{opacity:0;}
[data-theme="dark"] .court-lines.dark{opacity:1;}
.court-lines.light{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1000' height='1800' viewBox='0 0 1000 1800' fill='none' stroke='%230E2A4D' stroke-opacity='0.5' stroke-width='6'%3E%3Crect x='40' y='40' width='920' height='1720'/%3E%3Cline x1='40' y1='900' x2='960' y2='900'/%3E%3Ccircle cx='500' cy='900' r='110'/%3E%3Crect x='410' y='40' width='180' height='360'/%3E%3Ccircle cx='500' cy='400' r='90'/%3E%3Cpath d='M150 40 L150 340 A350 350 0 0 0 850 340 L850 40'/%3E%3Crect x='410' y='1400' width='180' height='360'/%3E%3Ccircle cx='500' cy='1400' r='90'/%3E%3Cpath d='M150 1760 L150 1460 A350 350 0 0 1 850 1460 L850 1760'/%3E%3C/svg%3E");
}
.court-lines.dark{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1000' height='1800' viewBox='0 0 1000 1800' fill='none' stroke='%23FFFFFF' stroke-opacity='0.72' stroke-width='6'%3E%3Crect x='40' y='40' width='920' height='1720'/%3E%3Cline x1='40' y1='900' x2='960' y2='900'/%3E%3Ccircle cx='500' cy='900' r='110'/%3E%3Crect x='410' y='40' width='180' height='360'/%3E%3Ccircle cx='500' cy='400' r='90'/%3E%3Cpath d='M150 40 L150 340 A350 350 0 0 0 850 340 L850 40'/%3E%3Crect x='410' y='1400' width='180' height='360'/%3E%3Ccircle cx='500' cy='1400' r='90'/%3E%3Cpath d='M150 1760 L150 1460 A350 350 0 0 1 850 1460 L850 1760'/%3E%3C/svg%3E");
}
.court-fade{position:absolute;inset:0;background:linear-gradient(180deg,var(--bg) 1%,transparent 40%,transparent 72%,var(--bg) 104%);}
.court-vignette{position:absolute;inset:0;background:radial-gradient(125% 130% at 50% 48%,transparent 58%,var(--bg) 100%);}

/* ===== NAV ===== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:40;
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  background:var(--glass); border-bottom:1px solid var(--glass-brd);
  transition:background .4s ease;
}
.nav{display:flex;align-items:center;gap:18px;padding:12px 24px;}
.nav-brand{display:flex;align-items:center;gap:12px;}
.logo-badge{width:46px;height:46px;border-radius:13px;background:#fff;border:1px solid var(--glass-brd);
  display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px -8px rgba(14,42,77,.5);flex-shrink:0;}
.logo-badge img{width:34px;height:34px;object-fit:contain;}
[data-theme="dark"] .logo-badge{background:var(--navy);}
[data-theme="dark"] .logo{filter:brightness(0) invert(1);}
.nav-wordmark{font-weight:800;font-size:18px;letter-spacing:.04em;font-stretch:condensed;}
.nav-links{display:flex;gap:26px;margin:0 0 0 auto;padding:0;list-style:none;font-size:14px;font-weight:600;}
.nav-links a{opacity:.82;padding-bottom:3px;border-bottom:2px solid transparent;transition:border-color .15s,opacity .15s;}
.nav-links a:hover{opacity:1;border-bottom-color:var(--red);}

/* ===== NAV DROPDOWN (past seasons under Standings / Media) ===== */
.nav-item{position:relative;display:flex;align-items:center;gap:3px;}
.nav-caret-btn{display:inline-flex;align-items:center;cursor:pointer;background:none;border:none;
  font:inherit;color:inherit;opacity:.6;padding:2px;line-height:1;}
.nav-caret-btn:hover{opacity:1;}
.nav-caret{font-size:10px;display:inline-block;transition:transform .15s;}
.nav-item.is-open .nav-caret{transform:rotate(180deg);}
.nav-dropdown{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%);
  min-width:180px;background:var(--surface);border:1px solid var(--line);border-radius:13px;
  box-shadow:var(--shadow);padding:8px;display:none;z-index:50;}
.nav-item.is-open .nav-dropdown{display:block;}
.nav-dropdown-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);
  padding:6px 10px 4px;font-weight:700;}
.nav-dropdown a{display:block;padding:8px 10px;border-radius:8px;font-size:13.5px;font-weight:600;
  color:var(--ink);opacity:1;border-bottom:none;}
.nav-dropdown a:hover{background:var(--bg);border-bottom:none;}
.theme-toggle{margin-left:8px;width:42px;height:42px;border-radius:12px;border:1px solid var(--glass-brd);
  background:var(--surface);color:var(--ink);font-size:17px;display:flex;align-items:center;justify-content:center;}
.nav-toggle{display:none;background:none;border:none;color:var(--ink);font-size:22px;margin-left:4px;}

/* ===== HERO ===== */
.hero{position:relative;z-index:10;min-height:100vh;display:flex;flex-direction:column;
  justify-content:center;align-items:center;text-align:center;padding:140px 24px 80px;}
.hero-logo{width:160px;height:160px;object-fit:contain;margin-bottom:30px;}
.eyebrow{margin:0 18px;color:var(--red);font-weight:700;font-size:13.5px;letter-spacing:.18em;text-transform:uppercase;}
.hero-headline{margin:0;font-weight:900;font-stretch:condensed;letter-spacing:-.02em;line-height:.92;
  font-size:clamp(3.4rem,12vw,8rem);color:var(--ink);}
.hero-headline .amp{color:var(--red);}
.hero-sub{margin:22px 0 0;color:var(--ink-soft);font-size:clamp(1rem,2.4vw,1.35rem);font-weight:500;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:34px;}
.btn{padding:15px 30px;border-radius:13px;font-weight:700;font-size:15px;border:1px solid var(--line);
  background:var(--surface);color:var(--ink);transition:background .15s,color .15s,border-color .15s;}
.btn--primary{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn--primary:hover{background:var(--navy-soft);}
.btn--ghost{background:transparent;}
.btn--ghost:hover{border-color:var(--red);color:var(--red);}
.scroll-cue{margin-top:64px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);
  opacity:.7;animation:floaty 2.4s ease-in-out infinite;}

/* ===== SECTIONS ===== */
.section{position:relative;z-index:10;max-width:1180px;margin:0 auto;padding:80px 24px;}
.section-eyebrow{margin:0;color:var(--red);font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;}
.section-title{margin:6px 0 0;font-weight:900;font-stretch:condensed;letter-spacing:-.01em;line-height:.95;
  font-size:clamp(2.2rem,5vw,3.4rem);color:var(--ink);}
.section-sub{margin:10px 0 0;color:var(--ink-soft);font-size:15px;}

.sched-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:18px;}
.segmented{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px;box-shadow:var(--shadow);}
.segmented span{padding:8px 18px;border-radius:999px;font-size:13px;font-weight:600;color:var(--ink-soft);}
.segmented span.is-active{font-weight:700;background:var(--navy);color:#fff;}

.week-block{margin-top:44px;}
.week-head{display:flex;align-items:baseline;gap:12px;border-bottom:2px solid var(--line);padding-bottom:10px;margin-bottom:22px;}
.week-label{font-weight:800;font-stretch:condensed;font-size:20px;color:var(--ink);letter-spacing:.02em;}
.week-date{color:var(--ink-soft);font-size:14px;}
.week-rule{flex:1;}
.week-tick{width:34px;height:3px;background:var(--red);border-radius:2px;}

.fixture-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.fixture-card{position:relative;background:var(--surface);border:1px solid var(--line);border-left:4px solid transparent;
  border-radius:16px;padding:16px;box-shadow:var(--shadow);}
.fixture-card.played{border-left-color:var(--red);}
.matchup{position:relative;display:flex;align-items:center;justify-content:center;gap:14px;padding:6px 0;}
.matchup-logo{width:90px;height:90px;border-radius:16px;background:#fff;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;box-shadow:var(--shadow);}
.matchup-logo img{width:84%;height:84%;object-fit:contain;}
.matchup-vs{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);flex-shrink:0;}

/* Fallback initials badge (no logo on file): a solid full-bleed
   colour tile, not a logo-sized image floating inside a white
   bordered card. Overrides .matchup-logo / .team-chip's white
   background and border so the colour fills the badge edge to
   edge, the same way a real logo image would. */
.fallback-initials{background:var(--tile-color,#0E2A4D)!important;border:none!important;
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-stretch:condensed;}
.team-chip.fallback-initials{font-size:14px;}
.matchup-logo.fallback-initials{font-size:24px;letter-spacing:.02em;}
.fixture-teams{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:14px;font-size:13px;color:var(--ink);}
.fixture-teams .vs{color:var(--ink-soft);font-size:11px;}
.fixture-teams .t{flex:1;}
.fixture-teams .t.b{text-align:right;}
.fixture-score{text-align:center;margin-top:10px;font-weight:900;font-stretch:condensed;font-size:30px;letter-spacing:.02em;color:var(--ink);}
.fixture-score .dash{color:var(--ink-soft);font-weight:400;}
.fixture-meta{text-align:center;margin-top:8px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:var(--ink-soft);}
.fixture-meta.final{color:var(--red);}
.fixture-time{text-align:center;margin-top:12px;font-weight:900;font-stretch:condensed;font-size:28px;letter-spacing:.02em;color:var(--ink);}

/* Time-slot colour coding, matching the original results-sheet key:
   each fixture's tip-off slot gets a small coloured dot + tinted
   pill next to the time/result text, three shades from the same
   blue family (earliest = strongest, latest = lightest). */
.time-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px 2px 6px;border-radius:20px;font-size:11px;
  font-weight:700;letter-spacing:.02em;text-transform:none;vertical-align:middle;margin-left:6px;}
.time-dot{width:7px;height:7px;border-radius:50%;display:inline-block;}
.time-slot-1 .time-dot{background:#5f8ef5;}
.time-slot-1{background:rgba(95,142,245,.16);color:#2c4a8a;}
.time-slot-2 .time-dot{background:#adc6fa;}
.time-slot-2{background:rgba(173,198,250,.28);color:#3a4f7a;}
.time-slot-3 .time-dot{background:#d6e2fc;}
.time-slot-3{background:rgba(214,226,252,.4);color:#4a5a78;}
[data-theme="dark"] .time-slot-1{color:#bcd2ff;}
[data-theme="dark"] .time-slot-2{color:#cfe0ff;}
[data-theme="dark"] .time-slot-3{color:#e2ecff;}

/* ===== STANDINGS ===== */
.table-card{margin-top:30px;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);}
.standings{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;}
.standings thead tr{background:var(--navy);color:#fff;text-align:left;}
.standings th{padding:14px 16px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;}
.standings th.c,.standings td.c{text-align:center;}
.standings td{padding:14px 16px;border-bottom:1px solid var(--line);font-size:14px;}
.standings tr:last-child td{border-bottom:none;}
.standings tr.leader td{box-shadow:inset 4px 0 0 var(--red);}
.standings tr.leader{background:var(--surface-2);}
.rank{font-weight:800;font-stretch:condensed;font-size:18px;}
.team-cell{display:inline-flex;align-items:center;gap:10px;}
.team-chip{width:40px;height:40px;border-radius:11px;background:#fff;border:1px solid var(--line);
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;box-shadow:var(--shadow);}
.team-chip img{width:84%;height:84%;object-fit:contain;}
.team-name{font-weight:700;font-size:14.5px;}
.pts{font-weight:900;font-stretch:condensed;font-size:20px;}
.form-strip{display:inline-flex;gap:5px;}
.pip{width:22px;height:22px;border-radius:6px;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;}
.pip.w{background:var(--win);}
.pip.l{background:var(--loss);}

/* ===== MEDIA ===== */
.media-group{margin-top:46px;}
.media-group-head{display:flex;align-items:baseline;gap:12px;margin-bottom:24px;}
.media-fixture{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow);margin-bottom:18px;}
.media-fixture-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.media-fixture-title{font-weight:700;font-size:15px;color:var(--ink);}
.photo-count{font-size:12px;font-weight:600;color:var(--ink-soft);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:2px 10px;margin-left:auto;}

/* Photo gallery grid */
.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.photo{aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--bg);border:1px solid var(--line);cursor:pointer;transition:opacity .15s;}
.photo:hover{opacity:.85;}
.photo img,.photo video{width:100%;height:100%;object-fit:cover;display:block;}

/* YouTube embed — 16:9 responsive */
.youtube-embed{margin-top:16px;border-radius:12px;overflow:hidden;aspect-ratio:16/9;background:#000;}
.youtube-embed iframe{width:100%;height:100%;border:none;display:block;}

/* Lightbox */
#lightboxBackdrop{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;}
.lb-media{max-width:90vw;max-height:85vh;object-fit:contain;display:block;border-radius:4px;}
.lb-content{display:flex;align-items:center;justify-content:center;}
.lb-counter{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.7);font-size:13px;font-weight:600;letter-spacing:.04em;pointer-events:none;}
.lb-btn{position:fixed;background:rgba(255,255,255,.12);border:none;color:#fff;cursor:pointer;border-radius:50%;width:44px;height:44px;font-size:24px;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.lb-btn:hover{background:rgba(255,255,255,.25);}
.lb-close{top:16px;right:20px;font-size:28px;}
.lb-prev{left:16px;top:50%;transform:translateY(-50%);}
.lb-next{right:16px;top:50%;transform:translateY(-50%);}

/* ===== REGISTER ===== */
.register-panel{background:var(--navy);border-radius:24px;padding:clamp(32px,6vw,64px);box-shadow:var(--shadow);position:relative;overflow:hidden;}
.register-ring{position:absolute;border-radius:50%;border:2px solid rgba(255,255,255,0.10);}
.register-ring.a{right:-60px;top:-60px;width:260px;height:260px;}
.register-ring.b{right:30px;top:40px;width:160px;height:160px;border-color:rgba(255,255,255,0.08);}
.register-inner{position:relative;max-width:560px;}
.register-inner .section-eyebrow{color:#fff;opacity:.7;}
.register-inner h2{color:#fff;}
.register-inner p{color:rgba(255,255,255,0.82);font-size:16px;line-height:1.6;margin:14px 0 28px;}
.register-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.register-fields input{padding:14px 16px;border-radius:12px;border:1px solid rgba(255,255,255,0.18);
  background:rgba(255,255,255,0.08);color:#fff;font-size:15px;}
.register-fields input::placeholder{color:rgba(255,255,255,0.55);}
.register-submit{margin-top:18px;padding:15px 32px;border-radius:13px;border:none;background:var(--red);color:#fff;font-weight:800;font-size:15px;letter-spacing:.02em;}

/* ===== FOOTER ===== */
.site-footer{position:relative;z-index:10;background:var(--navy);color:#fff;margin-top:40px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding:56px 24px 0;max-width:1180px;margin:0 auto;}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.footer-brand .logo-badge{width:42px;height:42px;border-radius:12px;}
.footer-brand .logo-badge img{width:32px;height:32px;}
.footer-brand .nav-wordmark{font-size:17px;}
.footer-col p{margin:0;color:rgba(255,255,255,0.82);font-size:13.5px;line-height:1.8;}
.footer-col .lede{color:rgba(255,255,255,0.7);max-width:260px;line-height:1.7;}
.footer-col h3{margin:0 0 12px;color:var(--red);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;}
.footer-col a{color:rgba(255,255,255,0.82);}
.footer-col a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.14);margin-top:36px;padding:18px 24px 28px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12px;color:rgba(255,255,255,0.55);max-width:1180px;margin-left:auto;margin-right:auto;}

/* ===== RESPONSIVE ===== */
@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr;}
  .photo-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:768px){
  .nav-links{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:0;
    background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:8px 24px;border-bottom:1px solid var(--glass-brd);}
  .nav-links.open{display:flex;}
  .nav-links li{padding:14px 0;border-bottom:1px solid var(--glass-brd);}
  .nav-links li:last-child{border-bottom:none;}
  .nav-toggle{display:block;}
  .fixture-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .nav-item{display:flex;}
  .nav-caret-btn{padding:8px;}
  .nav-dropdown{position:static;transform:none;width:100%;box-shadow:none;border:none;
    background:transparent;display:none;padding:4px 0 0 12px;margin-top:0;}
  .nav-item.is-open .nav-dropdown{display:block;}
  .nav-dropdown a{padding:8px 0;}
}
@media (max-width:600px){
  .photo-grid{grid-template-columns:repeat(2,1fr);}
  .register-fields{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation:none!important;}
  .court-plane{transform:translate(-50%,-50%) rotateX(73deg)!important;}
}
