
:root{
  /* WAC club palette from the approved league prototype. --brass is the fill
     value; --accent-ink uses the palette's darker brass for readable text on
     white, then switches back to brass inside navy regions below. */
  --navy:#002E4C; --navy2:#02456F; --brass:#C89D6F; --brass-d:#8A6634;
  --accent-ink:var(--brass-d);
  --cyan:#20A4C9; --slate:#49697E; --pale:#E4E7F2;
  --ink:#333333; --ink2:#5F6E79; --ink3:#8A98A3;
  --rule:#D5DCE3; --rule2:#B3C0CB; --white:#FFFFFF; --ground:#FFFFFF;
  --in:#1F6B54; --in-bg:#E4EFEA; --out:#9E3B32; --out-bg:#F5E5E3; --may:#9A6C1C; --may-bg:#F6EEDE;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:"Inter",-apple-system,"Segoe UI",Roboto,sans-serif;font-size:16px;line-height:1.6}
h1,h2,h3,h4{margin:0;font-family:"Archivo","Helvetica Neue",Arial,sans-serif;font-weight:800;font-stretch:125%;letter-spacing:-.015em;text-transform:uppercase;line-height:1.08;color:var(--navy);text-wrap:balance}
h1{font-size:clamp(30px,4.6vw,54px)}
h2{font-size:clamp(24px,3.2vw,38px)}
h3{font-size:20px}
h4{font-size:16px}
p{margin:0}
a{color:var(--cyan);text-decoration:none}
button{font:inherit;border:0;background:none;color:inherit;cursor:pointer;border-radius:0}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.eyebrow{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--accent-ink);margin:0}
.wrap{max-width:1440px;margin:0 auto;padding:0 80px}
@media(max-width:900px){.wrap{padding:0 22px}}

.topbar{background:var(--navy);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(255,255,255,.14)}
.topbar .wrap{display:flex;align-items:center;gap:26px;height:66px}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.brand span{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2.4px;font-size:14px;color:#fff;white-space:nowrap}
.nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.nav button{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:12.5px;color:#B6C9D6;padding:9px 15px;border-bottom:3px solid transparent}
.nav button:hover{color:#fff}
.nav button[aria-current="true"]{color:#fff;border-bottom-color:var(--brass)}
@media(max-width:720px){.topbar .wrap{height:auto;padding-top:12px;padding-bottom:0;flex-wrap:wrap;gap:10px}.nav{margin-left:0;width:100%}.nav button{flex:1;padding:9px 6px;font-size:11px;letter-spacing:1.2px}}

.hero{background:var(--navy);color:#fff;padding:46px 0 42px;border-bottom:5px solid var(--brass)}
.hero h1{color:#fff;margin:9px 0 0}
.hero .sub{color:#AFC4D2;margin-top:12px;max-width:60ch;font-size:15.5px}
.hero .demo{display:inline-block;margin-top:18px;border:1px solid rgba(200,157,111,.55);color:var(--accent-ink);font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:11px;padding:5px 11px}

main{padding:44px 0 80px;min-height:60vh}
.sec{margin-bottom:44px}
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--navy)}
.btn{display:inline-block;background:var(--brass);color:var(--navy);font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:15px;padding:12px 18px}
.btn:hover{background:#B98C5E}
.btn.ghost{background:transparent;border:1px solid var(--rule2);color:var(--navy)}
.btn.ghost:hover{background:var(--pale)}
.btn.sm{font-size:12px;padding:8px 13px;letter-spacing:1.6px}
.back{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--slate);margin-bottom:16px;display:inline-block}
.back:hover{color:var(--navy)}

.tabs{display:flex;gap:0;border-bottom:1px solid var(--rule);margin-bottom:26px;overflow-x:auto}
.tabs button{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:13px;color:var(--ink2);padding:12px 20px;border-bottom:3px solid transparent;white-space:nowrap}
.tabs button[aria-current="true"]{color:var(--navy);border-bottom-color:var(--brass)}

.grid{display:grid;gap:1px;background:var(--rule)}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.cell{background:#fff;padding:22px}
.cell:hover{background:#FAFCFD}
button.cell{text-align:left;width:100%;display:block}
.cell .k{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.8px;font-size:11px;color:var(--accent-ink);display:block;margin-bottom:7px}
.cell .m{color:var(--ink2);font-size:14px;margin-top:8px}

.scroller{overflow-x:auto;border:1px solid var(--rule)}
table{border-collapse:collapse;width:100%;min-width:600px;font-size:14.5px}
th,td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--rule)}
thead th{background:var(--navy);color:#fff;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.4px;font-size:11.5px;font-weight:400;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tbody tr:nth-child(even){background:#F7F9FB}
.num{text-align:right;font-variant-numeric:tabular-nums}
.tname{font-weight:600;color:var(--navy)}

.wk{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--white);background:var(--slate);padding:7px 14px;margin-top:0}
.game{display:flex;align-items:center;gap:14px;padding:13px 14px;border-bottom:1px solid var(--rule);background:#fff}
.game:last-child{border-bottom:0}
.gwhen{width:104px;flex-shrink:0;font-size:12.5px;color:var(--ink2);font-variant-numeric:tabular-nums;line-height:1.4}
.gt{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.side{display:flex;align-items:center;gap:9px;font-size:14.5px}
.side b{font-weight:600;color:var(--navy)}
.jer{width:15px;height:15px;flex-shrink:0;border:1.5px solid var(--rule2)}
.jd{background:var(--navy);border-color:var(--navy)}
.jw{background:#fff}
.gsc{font-variant-numeric:tabular-nums;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:17px;color:var(--navy);width:34px;text-align:right}
.gact{flex-shrink:0}
@media(max-width:640px){.gwhen{width:80px;font-size:11.5px}.side{font-size:13.5px}}

.chip{display:inline-block;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:11px;padding:4px 10px;border:1px solid var(--rule2);color:var(--ink2)}
.chip.nav{background:var(--navy);color:#fff;border-color:var(--navy)}
.chip.br{background:var(--brass);color:var(--navy);border-color:var(--brass)}
.chip.in{background:var(--in-bg);color:var(--in);border-color:transparent}
.chip.out{background:var(--out-bg);color:var(--out);border-color:transparent}
.chip.may{background:var(--may-bg);color:var(--may);border-color:transparent}
.chips{display:flex;flex-wrap:wrap;gap:7px}

.rsvp{display:flex;gap:1px;background:var(--rule2);border:1px solid var(--rule2)}
.rsvp button{background:#fff;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:11.5px;padding:8px 13px;color:var(--ink2)}
.rsvp button[aria-pressed="true"]{background:var(--navy);color:#fff}
.rsvp button:hover:not([aria-pressed="true"]){background:var(--pale)}

.banner{padding:20px;text-align:center;border:1px solid var(--rule)}
.banner.warn{background:var(--may-bg);border-color:#E3CFA4}
.banner.ok{background:var(--in-bg);border-color:#BFD9CF}
.banner .bt{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:17px;color:var(--navy)}
.banner .bs{font-size:13.5px;color:var(--ink2);margin-top:4px}

.plist{border:1px solid var(--rule)}
.prow{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--rule);background:#fff;width:100%;text-align:left}
.prow:last-child{border-bottom:0}
.prow:hover{background:#F7F9FB}
.av{width:34px;height:34px;flex-shrink:0;background:var(--pale);color:var(--navy);font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;letter-spacing:.5px}
.av.cap{background:var(--brass);color:var(--navy)}
.pn{flex:1;min-width:0}
.pn b{font-weight:600;color:var(--navy);display:block;font-size:14.5px}
.pn small{color:var(--ink3);font-size:12px}

.stepper{display:flex;border:1px solid var(--rule);margin-bottom:24px;overflow-x:auto}
.step{flex:1;min-width:132px;padding:13px 15px;border-right:1px solid var(--rule);background:#fff}
.step:last-child{border-right:0}
.step[data-on="1"]{background:var(--navy);color:#fff}
.step .sn{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;letter-spacing:2px;font-size:10.5px;color:var(--accent-ink);display:block}
.step .sl{font-size:13.5px;font-weight:600;margin-top:2px}
.step[data-on="0"] .sl{color:var(--ink2)}

.sheet{background:var(--pale);border:1px solid var(--rule);padding:18px;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px}
.sheet .ph{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;letter-spacing:2px;font-size:12px;color:var(--slate)}
input[type=text]{font:inherit;padding:10px 12px;border:1px solid var(--rule2);border-radius:0;width:100%;background:#fff;color:var(--ink)}
input[type=text]:focus{outline:2px solid var(--brass);outline-offset:-1px}
td input.st{font:inherit;font-size:14px;width:56px;padding:5px 7px;border:1px solid var(--rule2);border-radius:0;text-align:right;font-variant-numeric:tabular-nums;background:#fff;color:var(--ink)}
td input.st.flag{border-color:var(--may);background:var(--may-bg)}
.legend{font-size:13px;color:var(--ink2);margin-top:10px}
.muted{color:var(--ink2);font-size:14.5px}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.stat{background:#fff;padding:14px}
.stat .sv{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:25px;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1.1}
.stat .sk{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:10.5px;color:var(--accent-ink);margin-top:3px}
.bar{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--rule)}
.bar:last-child{border-bottom:0}
.bar .r{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:12px;color:var(--accent-ink);width:18px}
.bar .bn{flex:1;font-size:14px;color:var(--navy);min-width:0}
.bar .bv{font-variant-numeric:tabular-nums;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:15px;color:var(--navy)}
.bar .track{width:34%;height:7px;background:var(--pale);flex-shrink:0}
.bar .fill{height:100%;background:var(--brass)}
footer{background:var(--navy);color:#8FA8B8;padding:30px 0;font-size:13px}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
:root{--a3-glow-a:rgba(200,157,111,.075);--a3-glow-b:rgba(32,164,201,.030)}
body{background:var(--navy)}
/* On navy, use the prototype's full brass accent. */
.topbar,.hero{--accent-ink:var(--brass)}
.wrap{max-width:1320px;padding-inline:56px}
main{background:#fff;padding-top:38px}
.hero{background:transparent;padding:44px 0 40px;border-bottom:4px solid var(--brass)}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.hero h1{font-size:clamp(34px,4.2vw,60px);max-width:9ch;line-height:1.03}
.hero .sub{font-size:16px;max-width:31ch}
.hero .demo{font-size:12px;letter-spacing:1.4px}
.hero-game{border-top:1px solid var(--brass);border-bottom:1px solid #526c7c;padding:17px 0 14px}
.game-heading,.game-footer{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#bdccd5}
.game-heading{margin-bottom:18px;text-transform:uppercase;letter-spacing:1.5px;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700}
.matchup{display:grid;grid-template-columns:1fr 32px 1fr;gap:12px;align-items:center}
.jersey-block{aspect-ratio:1;max-width:130px;width:100%;display:grid;place-items:center;border:2px solid var(--brass);font:800 54px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:110%;color:var(--accent-ink);margin-bottom:12px}
.jersey-block.white{background:#fff;color:var(--navy);border-color:#fff}
.match-team b{font-size:15px;color:#fff}.match-team small{display:block;font-size:12px;color:#bdccd5;margin-top:3px}
.versus{color:var(--accent-ink);font:700 14px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;align-self:center}
.game-footer{margin-top:20px;align-items:center}.game-footer button{color:#fff;border-bottom:1px solid var(--brass);padding:6px 0;font-size:13px}
.jersey-mark{display:flex;gap:5px}.jersey-mark i{width:23px;height:23px;background:var(--brass);border:1px solid var(--brass)}.jersey-mark i+i{background:transparent;border-color:#fff}
.topbar .wrap{height:76px}.brand span{font-size:16px;letter-spacing:2px}.nav button{font-size:14px;padding:12px 17px}.nav button[aria-current="true"]{border-bottom-color:var(--brass)}
h2{font-size:30px}h3{font-size:22px}.eyebrow,.cell .k{font-size:12px}.sec-h .eyebrow,.cell .k,.stat .sk,.bar .r{color:var(--accent-ink)}
.grid{gap:16px;background:transparent}.grid>*{min-width:0}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cell{border:1px solid var(--rule);padding:24px}.league-card{position:relative;border-top:3px solid var(--navy);min-height:268px;display:flex!important;flex-direction:column;text-align:left}.league-card:hover{border-color:var(--brass);background:#f5f8fa}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;width:100%}.league-token{width:44px;height:44px;background:var(--navy);color:#fff;display:grid;place-items:center;font:800 25px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:105%}.league-card:nth-child(even) .league-token{background:#fff;color:var(--navy);border:2px solid var(--navy)}.league-card .m{font-size:14px;line-height:1.6}.card-foot{margin-top:auto;padding-top:22px;display:flex;justify-content:space-between;gap:15px;width:100%;font:700 12px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;letter-spacing:1px;text-transform:uppercase;color:var(--slate)}.card-foot span:last-child{color:var(--navy)}
.team-token{display:inline-block;width:12px;height:12px;background:var(--navy);margin-right:9px;vertical-align:middle}.team-token:after{content:"";display:block;width:5px;height:5px;background:white;transform:translate(6px,6px)}
.jer{width:20px;height:20px;border-width:2px}.jw{border-color:var(--navy)}
.tabs button{font-size:14px;min-height:48px}.tabs button[aria-selected="true"]{color:var(--navy);border-bottom-color:var(--brass)}
.rsvp button{min-height:44px;font-size:13px}.btn{min-height:44px}.back{padding:8px 0;font-size:13px}.chip{font-size:12px}.chip.nav{margin:0}.scroller{max-width:100%;background:#fff}.scroller:focus-visible{outline-offset:3px}.fill{display:block}.legend{line-height:1.8;max-width:88ch}.stepper{list-style:none;padding:0}.step{min-width:0}.step .sn{font-size:12px}.step .sl{font-size:14px}.intake-note{margin-bottom:24px}.sheet{background:#eef2f5;min-height:265px}.sheet h3{font-size:22px}.sheet p{max-width:40ch}.st{min-height:40px;width:65px!important}.error{color:var(--out);margin-top:12px}.field-label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}.empty{padding:28px;border:1px solid var(--rule)}.sample-note{font-size:12px;color:var(--ink2);margin-top:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip{position:fixed;top:8px;left:12px;z-index:100;background:white;color:var(--navy);padding:12px;transform:translateY(-150%)}.skip:focus{transform:none}:focus-visible{outline:3px solid var(--brass);outline-offset:3px}button:focus-visible{position:relative;z-index:3}footer{color:#bdccd5}
@media(max-width:1000px){.wrap{padding-inline:30px}.hero-grid{gap:32px}.hero h1{font-size:44px}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.wrap{padding-inline:20px}.topbar .wrap{height:auto;padding-top:16px;gap:14px}.brand span{font-size:14px}.nav{gap:0}.nav button{font-size:13px;padding:12px 5px;letter-spacing:1px}.hero{padding:28px 0}.hero-grid{grid-template-columns:1fr;gap:26px}.hero h1{font-size:40px;max-width:14ch}.hero .sub{max-width:32ch;font-size:14px}.hero .demo{margin-top:14px}.jersey-block{width:82px;font-size:38px;margin-bottom:8px}.matchup{grid-template-columns:1fr 28px 1fr;gap:8px}.match-team b{font-size:13px}.game-heading{margin-bottom:12px}.game-footer{margin-top:14px}.hero-game{padding-top:12px}.g3,.g2{grid-template-columns:minmax(0,1fr)}main{padding-top:28px}h2{font-size:26px}h3{font-size:20px}.league-card{min-height:235px}.cell{padding:20px}.game{flex-wrap:wrap;gap:10px}.gwhen{width:75px}.gact{margin-left:85px}.game .chip{font-size:11px;padding:4px 6px}.side{font-size:13px}.step{padding:12px 7px}.step .sl{font-size:12px}.step .sn{font-size:11px}.stepper{overflow:visible}.tabs button{padding:12px 14px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sec-h{gap:14px}.hero-title{min-width:0}.sheet{padding:20px 14px}footer .wrap{font-size:12px}}
@media print{.hero-title{opacity:1!important;transform:none!important}.topbar{position:static}}

.nav-sample{font-size:11px;color:var(--accent-ink);border-left:1px solid #526c7c;padding-left:12px;white-space:nowrap}caption{text-align:left;padding:12px 14px;font-weight:600;color:var(--navy);background:#eef2f5}th[scope="row"]{font-weight:600;color:var(--navy)}
@media(max-width:640px){.brand{gap:8px}.nav-sample{padding-left:8px;font-size:10px}.jersey-mark i{width:18px;height:18px}.brand span{font-size:13px;letter-spacing:1.3px}}

.a3-glow{inset:auto;top:0;left:0;width:1240px;height:1240px;margin:-620px;background:radial-gradient(circle at center,var(--a3-glow-a),var(--a3-glow-b) 42%,transparent 70%)}
/* The two tokens keep their literal jersey meaning on a light scoresheet. */
.hero-game{background:#f4f7f9;border:0;border-top:3px solid var(--brass);padding:22px 26px;color:var(--navy)}
.hero-game .game-heading,.hero-game .game-footer,.hero-game .match-team small{color:var(--slate)}
.hero-game .match-team b,.hero-game .game-footer button{color:var(--navy)}
.hero-game .jersey-block{background:var(--navy);color:#fff;border:2px solid var(--navy)}
.hero-game .jersey-block.white{background:#fff;color:var(--navy);border:2px solid var(--navy)}
.hero-game .versus{color:var(--slate)}
@media(max-width:640px){.hero-game{padding:16px}.game-footer{font-size:11px}.game-footer button{font-size:12px}}


/* Direction A: soft controls, hard data. Pills on the things you press;
   tables, cells and the box score keep their square corners. */
.btn{border-radius:4px}
.chip{border-radius:999px}
.rsvp{border-radius:999px;overflow:hidden}
.rsvp button:first-child{border-radius:999px 0 0 999px}
.rsvp button:last-child{border-radius:0 999px 999px 0}


/* 8-bit intro overlay. The canvas is a 160x90 buffer scaled up, so it must be
   left un-smoothed or the whole point is lost. The ground matches --navy, so
   the letterboxing around a non-16:9 viewport is invisible. */
html.intro-on{overflow:hidden}
#intro{position:fixed;inset:0;z-index:999;background:var(--navy);display:grid;place-items:center;transition:opacity .32s ease-out}
/* Capped: uncapped, a 160x80 buffer on a 2560px monitor gives 16px pixels,
   which stops reading as 8-bit and starts reading as broken. */
#intro canvas{width:100%;height:100%;max-width:1120px;max-height:560px;object-fit:contain;image-rendering:pixelated}
/* Reduced motion: loader.js never builds this, but belt and braces. */
@media (prefers-reduced-motion:reduce){#intro{display:none!important}html.intro-on{overflow:auto}}

/* ---------------------------------------------------------------- Stats tab
   Charts stay within the club palette: dark brass above the team average,
   secondary navy below it, and brass for a single series. */
:root{--up:var(--brass-d);--down:var(--navy2)}
/* Four season cards on one row. .g3 resolves to 3 columns at this width, which
   wraps the fourth and leaves two empty white cells reading as a dead gap. */
.sgrid{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.sgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.sgrid{grid-template-columns:1fr}}

.scopebar{border:1px solid var(--rule);border-top:3px solid var(--navy);background:#FAFBFC;padding:14px 16px}
.sbrow{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:5px 0}
.sblabel{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;
  letter-spacing:1.6px;font-size:10.5px;color:var(--accent-ink);width:56px;flex-shrink:0}
.sbchip{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;
  letter-spacing:1.2px;font-size:11px;padding:6px 12px;border-radius:999px;border:1px solid var(--rule2);
  background:#fff;color:var(--ink2);cursor:pointer}
.sbchip:hover{border-color:var(--brass);color:var(--navy)}
.sbchip.on{background:var(--navy);color:#fff;border-color:var(--navy)}

.rail{display:flex;gap:6px;flex-wrap:wrap}
.rail button{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;
  letter-spacing:1.4px;font-size:11px;padding:6px 13px;border-radius:999px;border:1px solid var(--rule2);
  background:#fff;color:var(--ink2);cursor:pointer}
.rail button[aria-pressed="true"]{background:var(--brass);color:var(--navy);border-color:var(--brass)}

.chart{border:1px solid var(--rule);border-top:0;background:#fff;padding:22px 20px 16px}
.gbars{display:flex;gap:2px;align-items:flex-end}
.gcol{flex:1;text-align:center;min-width:0}
.gslot{height:140px;display:flex;align-items:flex-end}
/* 4px rounded data-end, anchored to the baseline; 2px surface gap between bars */
.gbar{width:100%;background:var(--brass);border-radius:4px 4px 0 0}
.ggap{width:100%;height:100%;border-radius:4px 4px 0 0;border:1px dashed var(--rule2);
  background:repeating-linear-gradient(45deg,#EEF1F4,#EEF1F4 5px,#F8FAFB 5px,#F8FAFB 10px)}
.gval{font-family:"Archivo",Arial,sans-serif;font-stretch:112%;font-weight:800;font-size:13px;
  font-variant-numeric:tabular-nums;color:var(--navy);margin-top:8px}
.gwk{font-size:11px;color:var(--ink3)}

.hbars{display:flex;flex-direction:column;gap:7px}
.hrow{display:grid;grid-template-columns:minmax(96px,150px) 1fr 50px;align-items:center;gap:12px}
.hname{font-size:13.5px;font-weight:600;color:var(--navy);text-align:left;padding:0;cursor:pointer}
.hname:hover{color:var(--accent-ink);text-decoration:underline}
.htrack{background:#F1F3F5;height:16px;border-radius:4px;overflow:hidden}
.hfill{display:block;height:100%;border-radius:4px}
.hfill.up{background:var(--up)}.hfill.down{background:var(--down)}
.hval{font-family:"Archivo",Arial,sans-serif;font-stretch:112%;font-weight:800;font-size:13px;
  font-variant-numeric:tabular-nums;text-align:right;color:var(--navy)}
.legend-row{font-size:12px;color:var(--ink2);margin:16px 0 0;display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.key{width:11px;height:11px;border-radius:3px;display:inline-block;margin:0 6px 0 10px}
.key.up{background:var(--up);margin-left:0}.key.down{background:var(--down)}

 /* .jer is a flex child elsewhere; in a table cell it needs an explicit box or
   the dark/white jersey square collapses to a sliver. */
td .jer{display:inline-block;vertical-align:middle}
tr.norow td{color:var(--ink3);font-style:italic}

/* Director tab: how a result gets in. */
.flow{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:14px}
.flow li{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start}
.flow .sn{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;color:var(--accent-ink);letter-spacing:1px;padding-top:2px}
.flow b{color:var(--navy)}
.flow .m{margin-top:2px}
.notentered{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:9.5px;
  letter-spacing:1.1px;text-transform:uppercase;color:#7A3B06;background:#FFF1E2;padding:3px 8px;
  border-radius:999px;font-style:normal;white-space:nowrap}
@media(max-width:720px){.hrow{grid-template-columns:minmax(80px,110px) 1fr 44px}.gslot{height:100px}.sblabel{width:100%}}

/* ------------------------------------------------------------------ Topbar
   Six nav items. Below ~1100px the brand and the nav share a 76px bar and the
   last item wrapped underneath it; give the nav its own full-width row. */
.nav button{padding:12px 14px}
@media(max-width:1100px){.topbar .wrap{height:auto;padding-top:14px;padding-bottom:0;flex-wrap:wrap;gap:10px}.nav{margin-left:0;width:100%;gap:0;justify-content:flex-start}.nav button{flex:1;text-align:center;padding:12px 6px;font-size:12.5px;letter-spacing:1.4px}}

/* --------------------------------------------------------- Hero: next night
   Every game on the next court date — teams and time — instead of one game. */
.night-date{font:800 22px "Archivo",Arial,sans-serif;font-stretch:112%;color:var(--navy);margin:0 0 10px}
.night-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.night-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--rule)}
.night-teams{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;font-size:14.5px;color:var(--navy)}
.night-teams b{font-weight:600}
.night-teams em{font:700 11px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;letter-spacing:1.5px;color:var(--slate);font-style:normal;margin:0 2px}
.night-list time{font:700 14px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;letter-spacing:1px;color:var(--navy);white-space:nowrap;font-variant-numeric:tabular-nums}
.night-empty{color:var(--slate);font-size:14.5px;margin:6px 0 4px}
.hero-game .night-list .jer{width:14px;height:14px;border-width:2px}
@media(max-width:640px){.night-teams{font-size:13px;gap:6px}.night-date{font-size:18px}}

/* --------------------------------------------------- Pickup court in its tab
   main.js moves the #pickup section into the 1v1 tab. The section keeps its
   own heading for the bottom-of-page placement; in the tab the hero has it. */
.pickup.in-tab{padding:0 0 12px;border-top:0}
.pickup.in-tab>.wrap{padding:0;max-width:none}
.pickup.in-tab>.wrap>.eyebrow,.pickup.in-tab>.wrap>h2,.pickup.in-tab>.wrap>.pickup-sub{display:none}

/* ------------------------------------------------- Stats: shot mix, 100% bars
   Threes in dark brass, twos in navy — the site's existing two-colour pair
   (CVD ΔE 19, contrast ≥3:1 on white). Both values sit beside the track, so
   colour never carries the number; a 2px surface gap parts the segments. */
.mix{display:flex;flex-direction:column;gap:7px}
.mixrow{display:grid;grid-template-columns:minmax(96px,150px) 44px 1fr 44px;align-items:center;gap:10px}
.mixrow.me .hname{color:var(--accent-ink)}
.mixrow.me .hname:before{content:"";display:inline-block;width:8px;height:8px;background:var(--brass);margin-right:7px;vertical-align:middle}
.mixval{font-family:"Archivo",Arial,sans-serif;font-stretch:112%;font-weight:800;font-size:13px;font-variant-numeric:tabular-nums;color:var(--navy)}
.mixval.l{text-align:right}
.mixval small{display:block;font:500 10px "Inter",sans-serif;font-stretch:100%;color:var(--ink2);text-transform:uppercase;letter-spacing:.5px}
.mixtrack{display:flex;height:16px;gap:2px;border-radius:4px;overflow:hidden;background:#F1F3F5}
.seg{display:block;height:100%}
.seg3{background:var(--up)}.seg2{background:var(--down)}
.mixna{font-size:11px;color:var(--ink3);padding:0 6px;line-height:16px}
.mixname{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:10.5px;color:var(--accent-ink)}
tr.me td{background:#FBF6EF}
.hrow.arc{grid-template-columns:minmax(96px,150px) 1fr 96px}
.hval small{display:block;font:500 11px "Inter",sans-serif;font-stretch:100%;color:var(--ink2);letter-spacing:0}
.pscout{margin-top:14px;border:1px solid var(--rule);padding:14px 16px;background:#FAFBFC}
.pscout .mixrow{grid-template-columns:82px 48px 1fr 48px}
.pscout .m{margin-top:10px}
@media(max-width:720px){.mixrow{grid-template-columns:minmax(80px,110px) 40px 1fr 40px;gap:6px}.hrow.arc{grid-template-columns:minmax(80px,110px) 1fr 84px}.pscout .mixrow{grid-template-columns:70px 44px 1fr 44px}}
/* A side (square + name) never splits across lines; a game wraps between sides. */
.night-side{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.game-footer button{white-space:nowrap;flex-shrink:0}
/* Six nav items on one row at phone width. */
@media(max-width:640px){.nav{flex-wrap:nowrap}.nav button{font-size:11.5px;letter-spacing:.8px;padding:12px 3px}}

/* Phone scouting: compact chrome, thumb-size controls, names stay with data. */
#app{scroll-margin-top:100px}
.archive-note{font-size:12px;color:#bdccd5;max-width:42ch;margin-top:10px}
.archive-note span{display:block}
.data-context{font-size:14px;line-height:1.6;color:var(--ink2);margin:-6px 0 20px;max-width:85ch}
.night-panel summary{display:none}
.table-hint{display:none}

@media(max-width:640px){
  .wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .topbar .wrap{padding-top:max(10px,env(safe-area-inset-top));gap:6px}
  .brand span{font-size:12px;letter-spacing:1px}.nav-sample{font-size:11px}
  .nav button{font-size:12px;letter-spacing:.2px;padding:10px 1px;min-height:44px;min-width:44px}
  .hero{padding:20px 0}.hero-grid{gap:16px}.hero h1{font-size:30px;max-width:none;line-height:1.08;margin-top:6px}
  .hero .sub{font-size:14px;max-width:none;margin-top:8px}.hero .demo{margin-top:12px;font-size:11px;padding:5px 8px}
  .archive-note{margin-top:8px;line-height:1.5}.hero-game{padding:12px 14px}
  .night-panel summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;cursor:pointer;font-size:13px;font-weight:600;list-style:none}
  .night-panel summary::-webkit-details-marker{display:none}.night-panel summary span{font-size:12px;color:var(--slate)}
  .night-panel[open] summary{border-bottom:1px solid var(--rule);margin-bottom:12px}
  .night-panel[open] summary span{font-size:0}.night-panel[open] summary span:after{content:"Close ↑";font-size:12px}
  .game-heading{font-size:11px;letter-spacing:.7px;gap:8px}.game-heading span:last-child{flex-shrink:0}
  .night-list li{gap:10px}.night-teams{gap:5px;font-size:14px}.night-side{white-space:normal}.night-side .jer{flex-shrink:0}
  .night-list time{font-size:13px;letter-spacing:0}.game-footer{align-items:flex-start;flex-direction:column;gap:6px;font-size:12px}
  .game-footer button{min-height:44px;font-size:13px}
  main{padding-top:24px}.sec{margin-bottom:30px}.sec-h{margin-bottom:16px}h2{font-size:25px;overflow-wrap:anywhere}
  .league-card{min-height:208px}.cell{padding:18px}.card-top{margin-bottom:12px}.card-foot{padding-top:14px}
  .back,.sbchip,.rail button,.hname{min-height:44px}.back{display:inline-flex;align-items:center}
  .sbrow{gap:6px}.sbchip{font-size:12px;letter-spacing:.4px;padding:8px 11px}.scopebar{padding:12px}
  .sgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sgrid .cell{padding:14px 12px}
  .sgrid .k{font-size:11px;letter-spacing:.6px;min-height:32px}.sgrid .m{font-size:13px;line-height:1.5}
  .sgrid .sv{font-size:26px;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums}
  .chart{padding:12px}.mix{gap:10px}.mixrow{grid-template-columns:44px minmax(0,1fr) 44px;gap:6px}
  .mixrow>.hname{grid-column:1/-1;text-align:left}.mixval{font-size:14px}.mixtrack{height:20px}
  .hrow.arc{grid-template-columns:minmax(0,1fr) 88px;gap:6px}.hrow.arc .hname{grid-column:1/-1}
  .hname{font-size:14px}.hval small{font-size:12px}.legend-row{font-size:13px}
  .pscout .mixrow{grid-template-columns:44px minmax(0,1fr) 44px}.pscout .mixname{grid-column:1/-1;font-size:12px}
  .table-hint{display:block;font-size:12px;color:var(--slate);margin:10px 0 6px}
  .scroller{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .scroller th:first-child,.scroller td:first-child{position:sticky;left:0;z-index:1;background:#f4f7f9;max-width:130px;white-space:normal}
  .scroller thead th:first-child{background:var(--navy)}
  .scroller td button{min-height:44px;text-align:left}.scroller th,.scroller td{padding:10px}
  td input.st{font-size:16px;min-height:44px;width:56px!important;padding:8px 4px}
  input,select,textarea{font-size:16px}.step .sn{font-size:10px;letter-spacing:.3px}.step .sl{font-size:12px}
  .step{padding:10px 6px}.sheet{min-height:220px}.gwhen{font-size:12px}.stat .sk{font-size:11px;letter-spacing:.5px}
  footer{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
}

@media(max-width:640px){
  .scroller table{min-width:720px}.scroller .num{white-space:nowrap}
  .scroller.ranked th:first-child,.scroller.ranked td:first-child{min-width:36px;width:36px}
  .scroller.ranked th:nth-child(2),.scroller.ranked td:nth-child(2){position:sticky;left:36px;z-index:1;background:#f4f7f9}
  .scroller.ranked thead th:nth-child(2){background:var(--navy)}
}

/* Player scouting: ranked bars, scoring shares and per-league benchmarks. */
.player-chart{border:1px solid var(--rule);border-top:3px solid var(--navy);padding:22px;margin:0 0 24px;min-width:0;background:var(--white)}
.player-chart h3{margin:6px 0 18px}.player-chart .sec-h{margin-bottom:18px}.player-chart .legend{margin:16px 0 0}
.player-chart-controls{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:18px}.player-chart-controls label{display:grid;gap:6px;flex:1;min-width:140px;font-size:12px;font-weight:700;color:var(--slate)}.player-chart-controls select{width:100%;min-height:44px;font-size:16px}
.player-rank{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 26px}
.player-rank li{min-width:0}.player-rank button{width:100%;display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:5px 10px;align-items:center;text-align:left;padding:12px 0;background:none;color:var(--navy);border:0;min-height:64px}.rank-number{font-size:12px;color:var(--slate)}.rank-label b,.rank-label small{display:block;overflow-wrap:anywhere}.rank-label small{font-size:11px;color:var(--slate);margin-top:3px}.rank-track{grid-column:2/-1;height:6px;background:#e3eaf0}.rank-track i{display:block;height:100%;background:var(--navy)}
.player-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.player-chart-grid .player-chart{margin-bottom:0}
.player-points-track{display:flex;height:32px;gap:2px;margin:24px 0}.player-points-track span{min-width:0}.player-points-key{padding:0;list-style:none;margin:0}.player-points-key li{display:grid;grid-template-columns:1fr auto auto;gap:14px;padding:12px 0;border-bottom:1px solid var(--rule);align-items:center}.player-points-key small{color:var(--slate)}.player-points-key i{display:inline-block;width:10px;height:10px;margin-right:8px}.player-points-track .two,.player-points-key .two{background:var(--navy)}.player-points-track .three,.player-points-key .three{background:var(--brass)}.player-points-track .free,.player-points-key .free{background:#547783}
.player-benchmarks{display:grid;gap:22px;margin-top:22px}.player-benchmark>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:13px}.player-benchmark small{color:var(--slate)}.player-benchmark-track{position:relative;height:10px;background:#e3eaf0;margin-top:9px}.player-benchmark-track i{display:block;height:100%;background:var(--navy)}.player-benchmark-track>span{position:absolute;top:-4px;width:3px;height:18px;background:var(--brass);transform:translateX(-50%)}
@media(max-width:700px){.player-rank,.player-chart-grid{grid-template-columns:1fr}.player-chart{padding:18px 14px}.player-points-key li{gap:8px}.player-rank{gap:0}}
@media(max-width:480px){.player-chart-controls{display:grid;grid-template-columns:1fr;gap:12px}}

/* Calendar: one game when a member says they're in; a team's whole schedule on its team page. */
.calendar-subscribe{border:1px solid var(--rule);margin-bottom:24px;background:var(--white)}
.calendar-subscribe summary{padding:16px;cursor:pointer;min-height:48px;font-weight:700;color:var(--navy)}
.calendar-subscribe-body{padding:0 16px 18px}
.calendar-subscribe label{display:grid;gap:8px;margin:16px 0;font-size:13px}
.calendar-subscribe input{min-width:0;width:100%;font-size:16px}
.calendar-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.calendar-help{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}
.calendar-help p{font-size:14px;margin:10px 0}
.calendar-help a{color:var(--navy);text-decoration:underline}
.calendar-prompt{position:relative;margin:0 16px 14px;padding:14px 16px;border:1px solid var(--rule);border-left:4px solid var(--brass);background:#FBF8F3}
.calendar-prompt-h{padding-right:84px;color:var(--navy)}
.calendar-prompt .m{margin-top:4px}
.linkish{padding:0;color:var(--navy);font-weight:600;text-decoration:underline}
.calendar-dismiss{position:absolute;top:12px;right:14px;font-size:13px;color:var(--slate);text-decoration:underline}
@media(max-width:640px){.calendar-help{grid-template-columns:1fr}.calendar-prompt{margin:0 0 14px}.calendar-prompt-h{padding-right:0}.calendar-dismiss{position:static;margin-top:8px;min-height:44px}}

/* Club plaque copy: Leagues hero only, inherited with the hero's visibility. */
.club-principles{border-top:1px solid rgba(200,157,111,.5);margin-top:28px;padding-top:22px;max-width:560px}
.club-principles dl{display:grid;gap:18px;margin:0}.club-principles dt{color:var(--brass);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:6px}.club-principles dd{margin:0;color:#fff;font-size:17px;line-height:1.5}.club-principles ul{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;padding:0;margin:0;font-size:14px}.club-principles li:not(:last-child)::after{content:' · ';color:var(--brass);margin:0 8px}
@media(max-width:640px){.club-principles{margin-top:20px;padding-top:18px}.club-principles dl{gap:14px}.club-principles dd{font-size:16px}.club-principles ul{font-size:13px}}

/* Club mission replaces the former promotional headline. */
#heroTitle{font-size:clamp(30px,3.6vw,54px);line-height:1.18;max-width:20ch}#heroSub:empty{display:none}

/* Equal hierarchy for the club's mission, vision and values. */
.club-winged-logo{display:block;width:100px;height:100px;object-fit:contain;filter:brightness(0) invert(1);margin:0 0 14px}
.club-mission-label{color:var(--brass);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin:20px 0 6px}
.hero-title #heroTitle,.hero-title .club-principles dd,.hero-title .club-principles ul{font-family:'Open Sans',sans-serif;font-size:18px;font-weight:400;line-height:1.6;letter-spacing:normal;text-transform:none;max-width:none}
.hero-title #heroTitle{margin:0 0 18px}.hero-title .club-principles{margin-top:20px;padding-top:20px}
@media(max-width:640px){.hero-title #heroTitle,.hero-title .club-principles dd,.hero-title .club-principles ul{font-size:16px}}
