@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=Barlow:wght@400;500;600;700&display=swap');
:root{color-scheme:light;--blue:#17458f;--red:#d52238;--ink:#101f38;--muted:#58677e}*{box-sizing:border-box}body{margin:0;background:#edf1f7;color:var(--ink);font-family:Barlow,Arial,sans-serif}main{max-width:1080px;margin:auto;padding:22px 28px}header{display:flex;align-items:center;gap:18px;border-bottom:3px solid var(--blue);padding-bottom:18px}.wordmark{font:bold italic 60px/.85 'Barlow Condensed',Impact,sans-serif;letter-spacing:-2px;text-decoration:none;color:var(--blue)}.league{font-size:14px;line-height:1.25;letter-spacing:.8px;font-weight:700}.ticker{margin-left:auto;border:1px solid #c0cad9;border-radius:25px;padding:9px 18px;color:var(--red);font-weight:700}.intro{padding:21px 0}.eyebrow{font-size:12px;letter-spacing:1.5px;font-weight:700;color:var(--red);margin:0 0 7px}h1{font:900 clamp(34px,5vw,52px)/1 'Barlow Condensed',Impact,sans-serif;margin:0}h1 br{display:none}h1 span{color:var(--red);margin-left:8px}.intro>p:last-child{color:var(--muted);margin:9px 0 0;font-size:16px}.arcade{border:1px solid #bcc7d8;border-radius:8px;overflow:hidden;background:#fff}.scoreboard{display:flex;justify-content:space-between;text-align:center;background:#123871;color:#fff;padding:12px 30px;border-bottom:4px solid var(--red)}.scoreboard>div{min-width:110px}.scoreboard span{display:block;font-size:12px;font-weight:700;letter-spacing:1px;color:#d9e5f6}.scoreboard strong{font:700 43px/1.12 'Barlow Condensed',monospace;font-variant-numeric:tabular-nums}.clock strong{color:#fff}.play-layout{position:relative;background:#07152c}.court{position:relative}.court canvas{display:block;width:100%;height:auto;aspect-ratio:9/7}.shot-choices{position:absolute;left:12px;top:50%;transform:translateY(-50%);z-index:2;display:flex;flex-direction:column;gap:9px;width:80px}.shot-choices button{padding:10px 5px;border:2px solid #dce7fb;background:#ffffffee;color:var(--blue);box-shadow:0 3px 14px #00183b38;font-size:12px;line-height:1.05}.shot-choices strong{display:block;font:900 33px/.9 'Barlow Condensed',Impact,sans-serif;margin-bottom:4px}.shot-choices small{display:block;font-size:10px;margin-top:5px}.shot-choices button[aria-pressed=true]{background:var(--blue);border-color:#fff;color:#fff}.shot-choices #three[aria-pressed=true]{background:var(--red)}.overlay{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#061833e6;text-align:center;padding:18px;color:#fff;overflow:auto}.overlay.hidden{display:none}.overlay .eyebrow{color:#d6e6ff}h2{font:900 clamp(40px,7vw,64px)/1 'Barlow Condensed',Impact,sans-serif;margin:6px 0}.overlay>p:not(.eyebrow){font-size:16px;line-height:1.5;color:#e1e9f7;margin:10px 0 18px}button{border:0;background:var(--red);color:#fff;border-radius:4px;font:800 16px Barlow,Arial,sans-serif;cursor:pointer;padding:15px 23px;touch-action:manipulation}button:hover{filter:brightness(1.1)}button:focus-visible,input:focus-visible{outline:3px solid #8db7ff;outline-offset:3px}button:disabled{opacity:.45;cursor:default}button span{margin-left:20px}#shoot{touch-action:none;user-select:none;-webkit-user-select:none;background:var(--blue)}#feedback{position:absolute;left:90px;right:8px;top:25%;text-align:center;font:800 clamp(22px,4vw,40px) 'Barlow Condensed',Impact,sans-serif;color:#fff;pointer-events:none;text-shadow:0 2px 7px #00183b,0 0 2px #00183b}.controls{display:grid;grid-template-columns:1fr 230px;gap:12px 25px;padding:16px 25px;border-top:1px solid #c4cddd}.shot-hint{grid-column:1/-1;margin:0;text-align:center;color:var(--muted);font-size:14px}.meter-wrap{align-self:center}.meter-label{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:9px}.meter{position:relative;height:20px;background:#194781;border:1px solid #12376a;border-radius:3px;overflow:hidden}#zone{position:absolute;left:48%;width:24%;height:100%;background:#fff;border-inline:3px solid #d52238}#needle{position:absolute;width:4px;height:100%;background:#ef3340;left:0;box-shadow:0 0 0 1px #fff}.keyhint{grid-column:1/-1;text-align:center;margin:0;color:var(--muted);font-size:13px}kbd{font:inherit;border:1px solid #b9c5d6;border-radius:3px;padding:1px 4px}.sound-toggle{grid-column:1/-1;justify-self:center;padding:6px 12px;font-size:13px;background:transparent;color:var(--blue);border:1px solid #a5b7d0}.sound-toggle[aria-pressed=true]{background:var(--blue);color:#fff}.overlay .rank{font-size:18px!important;font-weight:800;color:#fff!important;margin:0 0 12px!important;letter-spacing:1px}.result-actions{display:flex;gap:10px;justify-content:center}.secondary{background:transparent;color:var(--blue);border:1px solid #a5b7d0;font-size:13px;padding:10px 15px}#saveForm{width:min(440px,100%);margin-top:18px;text-align:left}#saveForm label{font-size:12px;letter-spacing:1px;font-weight:700}input{min-width:0;width:100%;border:1px solid #bacce7;background:#fff;color:#102c55;border-radius:4px;padding:12px;font:16px Barlow,Arial,sans-serif}.save-row{display:flex;gap:8px;margin-top:6px}.save-row button{white-space:nowrap;padding:12px}#saveStatus{font-size:14px;line-height:1.35;margin:7px 0 0;color:#e0ebff}.leaderboard{margin-top:24px;background:#fff;border:1px solid #bcc7d8;border-top:4px solid var(--red);border-radius:6px;padding:20px 25px}.leaderboard-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.leaderboard h2{font-size:36px;color:var(--blue);margin:0}.leaderboard .eyebrow{margin:0 0 5px}#boardStatus{font-size:14px;color:var(--muted)}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:16px;text-align:left}th{font-size:12px;color:var(--muted);letter-spacing:1px}th,td{padding:12px 9px;border-bottom:1px solid #dfe5ef}td:nth-child(3){font-weight:800;color:var(--blue)}tr:first-child td{background:#eef4ff}th:nth-child(n+3),td:nth-child(n+3){text-align:right}.board-note{font-size:12px;color:var(--muted);margin:12px 0 0}footer{text-align:center;padding:22px 0 10px}footer p{font:700 15px 'Barlow Condensed',Arial,sans-serif;letter-spacing:1px;margin:0 0 8px}footer span{color:var(--muted);font-size:12px}[hidden]{display:none!important}
@media(max-width:600px){main{padding:15px 10px}header{gap:12px;padding-bottom:14px}.wordmark{font-size:48px}.league{font-size:11px}.ticker{padding:7px 12px}.intro{padding:16px 0}.intro .eyebrow{display:none}h1{font-size:29px}h1 span{margin-left:5px}.intro>p:last-child{font-size:14px}.scoreboard{padding:10px}.scoreboard>div{min-width:78px}.scoreboard span{font-size:10px;letter-spacing:.4px}.scoreboard strong{font-size:35px}.shot-choices{left:6px;width:57px;gap:7px}.shot-choices button{padding:7px 3px;font-size:10px}.shot-choices strong{font-size:27px}.shot-choices small{font-size:9px}#feedback{left:65px;top:19%;font-size:22px}.controls{grid-template-columns:1fr;padding:13px;gap:10px}.keyhint{display:none}.overlay{padding:12px}.overlay h2{font-size:38px}.overlay>p:not(.eyebrow){font-size:14px;margin:8px 0 12px}.overlay .eyebrow{font-size:10px}.court:has(#saveForm:not([hidden])){min-height:370px}.save-row button{font-size:13px}.overlay .rank{font-size:16px!important}.leaderboard{padding:16px 12px}.leaderboard h2{font-size:31px}th,td{padding:10px 5px}table{font-size:14px}}
.clock.urgent{background:#b9162c;border-radius:4px;box-shadow:0 0 0 6px #b9162c}.meter.perfect{box-shadow:0 0 0 4px #fff,0 0 22px 6px #75a8ff}.your-score td{background:#dbeaff!important;border-top:2px solid #17458f;border-bottom:2px solid #17458f}.your-score td:first-child{border-left:4px solid #d52238}#saveStatus{font-weight:700}#saveStatus:empty{display:none}

@media(min-width:760px){.court canvas{max-height:500px;object-fit:contain}.intro{padding:14px 0}.intro h1{font-size:40px}.controls{padding-top:12px;padding-bottom:12px;gap:8px 25px}}

/* Display the supplied SBA mark without its oversized surrounding whitespace. */
.wordmark{display:block;position:relative;flex:none;width:120px;aspect-ratio:1054/650;overflow:hidden;mix-blend-mode:multiply}
.wordmark img{display:block;position:absolute;width:118.976%;max-width:none;height:auto;left:-9.393%;top:-45.231%}
@media(max-width:600px){.wordmark{width:90px}.league{font-size:10px;letter-spacing:.4px}.ticker{padding:7px 10px}}

#start{background:var(--blue);min-width:160px}
.music-toggle{position:absolute;right:10px;top:10px;z-index:5;background:#123871e8;border:1px solid #8badd5;color:white;font-size:12px;padding:8px 10px;border-radius:4px}
.music-toggle[aria-pressed=true]{background:#17458f}
@media(max-width:600px){.music-toggle{right:6px;top:6px;font-size:11px;padding:6px 8px}}

.shot-choices #five[aria-pressed=true]{background:#fff;color:var(--blue);border-color:var(--red);box-shadow:0 0 0 2px #fff,0 3px 14px #00183b38}
#five small{font-size:9px;letter-spacing:-.1px}
@media(max-width:600px){.shot-choices{gap:5px}.shot-choices button{padding:5px 3px}.shot-choices strong{font-size:25px}.shot-choices small{margin-top:3px}.shot-choices #five small{font-size:8px}}

/* Postgame challenge: the replay remains the primary action. */
.result-actions{flex-wrap:wrap;width:min(460px,100%)}
.result-actions #start{flex:1;min-width:150px}
.challenge-link{display:flex;align-items:center;justify-content:center;flex:1;min-width:190px;padding:13px 17px;border:1px solid #aecaff;border-radius:4px;background:#fff;color:var(--blue);font-size:14px;font-weight:800;line-height:1.2;text-decoration:none;touch-action:manipulation}
.challenge-link:hover{background:#e4eeff}.challenge-link:focus-visible{outline:3px solid #8db7ff;outline-offset:3px}

.overlay .chase-target{width:min(440px,100%);font-size:16px!important;line-height:1.35!important;color:#fff!important;margin:0 0 15px!important;padding:10px 12px;border-left:3px solid #ef3340;background:#ffffff0d;overflow-wrap:anywhere}
.court:has(#saveForm:not([hidden])){min-height:440px}
.logo-celebration{position:absolute;inset:25% 8px auto 90px;z-index:3;text-align:center;pointer-events:none;color:#fff;text-shadow:0 3px 10px #07152c}
.logo-celebration span{display:inline-block;font:800 16px Barlow,Arial,sans-serif;letter-spacing:2px;background:var(--red);padding:5px 13px;border-radius:3px}
.logo-celebration strong{display:block;font:900 clamp(28px,5vw,54px)/1.05 'Barlow Condensed',Impact,sans-serif;margin-top:7px;animation:logo-pop .3s ease-out}
.court.logo-hit::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:2;border:4px solid #80b4ff;box-shadow:inset 0 0 65px #388aff80;background:#2467cc18;animation:court-flash .65s ease-out forwards}
@keyframes logo-pop{from{transform:scale(.85);opacity:.3}to{transform:scale(1);opacity:1}}
@keyframes court-flash{from{opacity:1}to{opacity:0}}
@media(max-width:600px){.court:has(#saveForm:not([hidden])){min-height:490px}.court:has(#saveForm:not([hidden])) .overlay{padding:36px 14px 20px}.overlay .chase-target{font-size:14px!important;margin-bottom:12px!important}.result-actions{gap:8px}.result-actions #start,.challenge-link{padding:12px 10px;min-width:0;flex-basis:100%}.logo-celebration{left:65px;top:19%}.logo-celebration span{font-size:13px}.logo-celebration strong{font-size:30px}}
@media(prefers-reduced-motion:reduce){.logo-celebration strong{animation:none}.court.logo-hit::after{animation:none;opacity:.15;background:transparent;box-shadow:none}}

.share-panel{width:min(460px,100%);margin-top:14px;padding:14px;border:1px solid #8dadde;border-radius:5px;background:#102d56;text-align:left;flex-shrink:0}
.share-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;letter-spacing:.5px}
.share-heading button{background:transparent;border:1px solid #8dadde;padding:6px 9px;font-size:12px}
#shareText{font-size:15px;line-height:1.35;margin:10px 0;color:#fff}.share-panel label{font-size:12px;font-weight:700;letter-spacing:.6px}
#challengeLink{margin-top:5px;font-size:16px;user-select:text;-webkit-user-select:text}
.share-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.share-options button,.share-options a{flex:1;display:flex;justify-content:center;align-items:center;min-height:42px;white-space:nowrap;font:800 13px Barlow,Arial,sans-serif;padding:10px;border:1px solid #8dadde;border-radius:4px;background:#fff;color:var(--blue);text-decoration:none}
.share-options a{background:transparent;color:#fff}.share-options a:focus-visible{outline:3px solid #8db7ff;outline-offset:3px}
#shareStatus{font-size:14px;line-height:1.35;color:#e4efff;margin:9px 0 0}#shareStatus:empty{display:none}
.court:has(#sharePanel:not([hidden])){min-height:720px}.overlay:has(#sharePanel:not([hidden])){justify-content:flex-start;padding-top:42px}
@media(max-width:600px){.court:has(#sharePanel:not([hidden])){min-height:820px}.share-panel{padding:12px}.share-options{gap:6px}.share-options button,.share-options a{font-size:12px;padding:9px 7px}}

.board-tabs{display:flex;gap:6px;margin:18px 0 14px;border-bottom:1px solid #c7d4e6;padding-bottom:10px}.board-tabs button{background:#edf3fc;color:var(--blue);padding:11px 16px;font-size:14px;border:1px solid #c1cfe3}.board-tabs [aria-selected=true]{background:var(--blue);border-color:var(--blue);color:#fff}
.weekly-competition{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:21px 24px;background:#123871;color:#fff;border-left:5px solid var(--red);border-radius:5px}.weekly-competition .eyebrow{color:#d8e6ff;margin:0 0 8px}.prize-total{display:flex;gap:12px;align-items:baseline;margin:0}.prize-total strong{font:900 64px/.95 'Barlow Condensed',Impact,sans-serif}.prize-total span{font-size:14px;font-weight:800;letter-spacing:1px}.weekly-hook{font-size:16px;margin:9px 0 0}.weekly-deadline{text-align:right;display:flex;flex-direction:column;gap:8px}.weekly-deadline span{font-size:13px;color:#d9e7ff}.weekly-deadline strong{font:800 29px/1.1 'Barlow Condensed',Impact,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.weekly-rules,.weekly-entry{margin-top:12px;border:1px solid #c1cee0;border-radius:4px;padding:13px 15px;background:#f5f8fd}.weekly-rules summary,.weekly-entry summary{cursor:pointer;font-size:13px;font-weight:800;letter-spacing:.5px;color:var(--blue);padding:3px 0}.weekly-rules summary:focus-visible,.weekly-entry summary:focus-visible{outline:3px solid #8db7ff;outline-offset:4px}.weekly-rules ul{padding-left:20px;font-size:14px;line-height:1.5;margin-bottom:3px}.weekly-rules li+li{margin-top:5px}.weekly-rules a,.weekly-entry a{color:var(--blue);text-decoration:underline}.prize-breakdown{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;list-style:none;padding:0;margin:14px 0}.prize-breakdown li{display:flex;justify-content:space-between;gap:6px;margin:0!important;padding:9px;background:white;border:1px solid #d3dcea;border-radius:3px;font-size:14px}.prize-breakdown strong{color:var(--blue)}.weekly-entry p{font-size:14px;line-height:1.5}.weekly-entry label{font-size:12px;font-weight:800;letter-spacing:.6px}.entry-code-row{display:flex;gap:8px;margin-top:6px}.entry-code-row input{font:14px monospace;user-select:text;-webkit-user-select:text}.entry-code-row button{white-space:nowrap}#entryCopyStatus:empty{display:none}#entryCopyStatus{font-weight:700;color:var(--blue)}
@media(max-width:600px){.board-tabs button{flex:1;font-size:12px;padding:11px 9px}.weekly-competition{align-items:flex-start;flex-direction:column;gap:16px;padding:18px}.prize-total strong{font-size:61px}.weekly-deadline{text-align:left}.weekly-deadline strong{font-size:27px}.prize-breakdown{grid-template-columns:repeat(2,1fr)}.weekly-rules,.weekly-entry{padding:12px}.entry-code-row{flex-direction:column}.entry-code-row input{font-size:16px}.entry-code-row button{align-self:flex-start}table{font-size:13px}.weekly-hook{font-size:15px}}

/* The needle center and both target zones use the same meter coordinates. */
#zone{border:0;background:#fff}#perfectZone{position:absolute;top:0;height:100%;background:#22e584;pointer-events:none}#needle{transform:translateX(-50%);width:3px;background:#ef3340;box-shadow:none}.meter.perfect{box-shadow:0 0 0 3px #22e584,0 0 22px #22e58499}
