:root{--bg:#0f1419;--panel:#1a2230;--panel-2:#232d3f;--ink:#e6edf3;--muted:#8b98a9;--line:#2d3a4d;--accent:#4aa3df;--great:#1aa06d;--good:#6fbf73;--inaccuracy:#e2b53e;--mistake:#e08a3c;--blunder:#d6453d}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent)}.wrap{max-width:1180px;margin:0 auto;padding:22px 20px 60px}.title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.title h1{font-size:26px;margin:0;letter-spacing:-.4px}.title .tag{color:var(--muted);font-size:14px}.lede{color:var(--ink);font-size:15px;line-height:1.6;margin:14px 0 4px;max-width:820px}.lede b{color:var(--accent)}.controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0}.controls button,.controls select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:14px;cursor:pointer}.controls .play,.controls button:hover{border-color:var(--accent)}.controls .play{background:var(--accent);color:#06121c;font-weight:600;min-width:84px}.stage{display:grid;grid-template-columns:1fr 320px;grid-gap:16px;gap:16px;align-items:start}@media (max-width:940px){.stage{grid-template-columns:1fr}}.courtcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}.courtrow{display:flex;gap:12px;align-items:stretch}.courtrow .court{flex:1 1;min-width:0}.courtcard canvas{width:100%;height:auto;display:block;border-radius:8px}.evalbar{width:42px;display:flex;flex-direction:column;align-items:center}.evalbar .track{position:relative;flex:1 1;width:24px;background:linear-gradient(0deg,#0a0f15,#141d28);border:1px solid var(--line);border-radius:12px;overflow:hidden}.evalbar .fill{bottom:0;background:linear-gradient(0deg,#2e7be0,#2fa060);box-shadow:0 0 8px rgba(47,160,96,.35);transition:height 80ms linear}.evalbar .fill,.evalbar .tick{position:absolute;left:0;right:0}.evalbar .tick{border-top:1px solid rgba(255,255,255,.1)}.evalbar .tick.ref{border-top:1px dashed rgba(255,255,255,.5)}.evalbar .val{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink);margin-bottom:6px;font-weight:700}.evalbar .cap{font-size:10px;color:var(--muted);margin-top:6px;letter-spacing:.5px}.scrub{margin-top:14px}.scrubwrap{position:relative;padding-top:12px}.scrubwrap input[type=range]{width:100%;accent-color:var(--accent);margin:0}.tickmark{position:absolute;top:0;width:4px;height:12px;padding:0;border:none;border-radius:2px;transform:translateX(-50%);cursor:pointer;opacity:.85}.tickmark:hover{opacity:1;height:16px;outline:1px solid #fff}.tickmark.great{background:var(--great)}.tickmark.good{background:var(--good)}.tickmark.inaccuracy{background:var(--inaccuracy)}.tickmark.mistake{background:var(--mistake)}.tickmark.blunder{background:var(--blunder)}.scrub .clock{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.panel h3{margin:0 0 10px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.poss-meta{font-size:13px;color:var(--muted);margin-bottom:12px;line-height:1.5}.poss-meta b{color:var(--ink)}.declist{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow-y:auto}.decrow{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;background:var(--panel-2);border:1px solid transparent;cursor:pointer}.decrow:hover{border-color:var(--line)}.decrow.active{border-color:var(--accent);background:#1d2b3a}.decrow .who{flex:1 1;font-size:13px}.decrow .who .sub{color:var(--muted);font-size:11px}.decrow .pts{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:13px;color:var(--muted)}.badge{font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;color:#06121c;white-space:nowrap}.badge.great{background:var(--great);color:#fff}.badge.good{background:var(--good)}.badge.inaccuracy{background:var(--inaccuracy)}.badge.mistake{background:var(--mistake)}.badge.blunder{background:var(--blunder);color:#fff}.callout{margin-top:12px;min-height:96px;padding:11px 13px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line);font-size:13px;line-height:1.5}.callout.empty{color:var(--muted);display:flex;align-items:center}.callout .cline{margin-bottom:9px}.cmp{display:flex;flex-direction:column;gap:5px}.cmprow{display:flex;align-items:center;gap:8px}.cmprow .lbl{width:64px;color:var(--muted);font-size:11px;flex:none}.cmprow .track2{flex:1 1;height:9px;background:#0c1118;border-radius:5px;overflow:hidden}.cmprow .bar{height:100%;border-radius:5px;transition:width .12s ease}.cmprow .bar.best{background:var(--accent)}.cmprow .bar.chosen{background:#8b98a9}.cmprow .num{width:34px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink);flex:none}.cnote{margin-top:8px;font-size:12px;font-weight:600;color:var(--mistake)}.cnote.good{color:var(--good)}.legend{margin-top:18px;color:var(--muted);font-size:12px;line-height:1.7}.legend .badge{margin-right:4px}.reel{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.reelrow{display:flex;gap:10px;align-items:center;padding:7px 10px;border-radius:8px;background:var(--panel-2);border:1px solid transparent;cursor:pointer}.reelrow:hover{border-color:var(--accent)}.reelrow .who{flex:1 1;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reelrow .pts{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted)}.foot{margin-top:28px;color:var(--muted);font-size:12.5px;line-height:1.65;border-top:1px solid var(--line);padding-top:14px}.foot p{margin:0 0 10px;max-width:860px}.foot b{color:var(--ink)}.foot .limits{font-size:11.5px}