@font-face{font-family:Galmuri11;src:url(/fonts/Galmuri11.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Galmuri11;src:url(/fonts/Galmuri11-Bold.woff2) format("woff2");font-weight:700;font-display:swap}:root{--bg: #1a1033;--bg-deep: #0d0720;--card: #120a26;--text: #fff3d6;--muted: #c9b8f0;--primary: #ff7a1a;--primary-hover: #ff8f3d;--on-primary: #120a26;--accent: #38e1ff;--gold: #ffc83d;--green: #5be38a;--red: #ff6b6b;--border: #3b2466;--frame: #fff3d6;--pixel-corners: polygon(4px 0, calc(100% - 4px) 0, calc(100% - 4px) 4px, 100% 4px, 100% calc(100% - 4px) , calc(100% - 4px) calc(100% - 4px) , calc(100% - 4px) 100%, 4px 100%, 4px calc(100% - 4px) , 0 calc(100% - 4px) , 0 4px, 4px 4px);--segments: repeating-linear-gradient(90deg, #000 0 6px, transparent 6px 8px)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Galmuri11,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;word-break:keep-all;overflow-wrap:break-word;min-height:100vh}.screen{max-width:480px;margin:0 auto;padding:16px 16px 64px}.screen.tabbed{padding-bottom:80px}.tab-content{display:block}h1{font-size:24px;margin:8px 0 4px}h2{font-size:20px;margin:0}h3{font-size:15px;margin:0 0 12px;color:var(--gold);text-transform:uppercase;letter-spacing:.5px}h4{font-size:14px;margin:12px 0 8px;color:var(--muted)}.muted{color:var(--muted);font-size:14px}.small{font-size:12px;color:var(--muted)}.px-icon{display:inline-block;vertical-align:-3px;flex-shrink:0}h1 .px-icon{vertical-align:-7px}.cal-cell .px-icon{vertical-align:0}.cal-game .px-icon{margin-right:2px}.card{background:var(--card);padding:16px;margin-bottom:12px;border:4px solid var(--frame);box-shadow:inset 0 0 0 4px var(--border);clip-path:var(--pixel-corners)}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.field span{font-size:13px;color:var(--muted)}.field input{background:var(--bg);border:2px solid var(--border);color:var(--text);padding:12px;font-family:inherit;font-size:16px}.field input:focus{outline:none;border-color:var(--accent)}.pos-row{display:flex;gap:6px}.pos-row .pos{flex:1;padding:12px 0;background:var(--bg);border:2px solid var(--border);color:var(--text);font-weight:600;cursor:pointer}.pos-row .pos.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.body-roll{display:flex;flex-direction:column;gap:10px;background:var(--bg);border:2px solid var(--border);padding:12px}.body-dims{display:flex;gap:18px;flex-wrap:wrap}.body-dim{font-size:14px;color:var(--text)}.body-dim b{font-size:18px;color:var(--accent)}.body-hint{margin:0;line-height:1.4}.body-hint p{margin:0}.body-hint p+p{margin-top:3px}.body-roll button.ghost{align-self:flex-start;padding:8px 14px;background:transparent;border:2px solid var(--border);color:var(--text);font-weight:600}.body-roll button.ghost:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.body-roll button.ghost:disabled{opacity:.4;cursor:not-allowed}button{font-family:inherit;font-size:14px;color:var(--text);background:var(--bg);border:2px solid var(--border);padding:8px 12px;cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}.primary{width:100%;padding:12px;background:var(--primary);border:4px solid var(--frame);box-shadow:inset -4px -4px #c2530a,inset 4px 4px #ffa45c;clip-path:var(--pixel-corners);color:var(--on-primary);font-size:16px;font-weight:700;margin-top:8px}.primary:hover{background:var(--primary-hover)}.primary:active{box-shadow:inset 4px 4px #c2530a}.danger{width:100%;padding:12px;background:transparent;border:2px solid var(--red);color:var(--red);font-size:14px;font-weight:600;margin-top:4px}.danger:hover{background:#ff6b6b1a}.player-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;padding:4px}.rest-btn{background:var(--accent);color:#06283d}.rest-btn:hover{filter:brightness(1.08)}.milestone-callout{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#ff7a1a1f;border:2px solid var(--primary);padding:10px 14px;margin-bottom:12px;font-weight:700;cursor:pointer}.milestone-feats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.milestone-chip{font-size:13px;background:var(--bg);border:2px solid var(--border);padding:3px 10px}.milestone-chip b{color:var(--accent)}.milestone-cumulative{display:flex;flex-direction:column;gap:6px}.milestone-row{display:flex;justify-content:space-between;align-items:baseline}.milestone-stars{color:var(--primary)}.growth-room{color:var(--green)}.growth-capped{color:var(--muted)}.camp-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.camp-btn{display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--bg);border:2px solid var(--border);color:var(--text);padding:10px}.camp-btn:hover:not(:disabled){border-color:var(--accent)}.camp-name{font-weight:700;font-size:14px}.build-label{display:inline-block;margin:3px 0 5px;font-size:12px;font-weight:700;color:var(--accent);background:#22d3ee1a;border:1px solid rgba(34,211,238,.35);padding:2px 10px}.ratings{display:flex;flex-direction:column;gap:14px}.rating-group{display:flex;flex-direction:column;gap:6px}.rating-group-label{margin:4px 0 2px;font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.4px;text-transform:uppercase}.rating-row{display:grid;grid-template-columns:90px 30px 1fr 64px;align-items:center;gap:8px;font-size:13px}.rating-label{color:var(--muted)}.rating-val{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.rating-bars{display:flex;flex-direction:column;gap:2px}.bar{height:8px;background:var(--border);overflow:hidden;-webkit-mask-image:var(--segments);mask-image:var(--segments)}.bar.gauge{height:4px;opacity:.85}.bar.gauge .fill{background:var(--gold)}.bar.gauge.capped .fill{background:var(--muted)}.fill{height:100%;background:var(--accent);transition:width .3s}.gauge-meta{text-align:right;font-variant-numeric:tabular-nums;font-size:11px}.val{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.training-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.training-groups{display:flex;flex-direction:column;gap:14px}.training-group{display:flex;flex-direction:column;gap:6px}.training-group-label{margin:0;font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.4px;text-transform:uppercase}.training-btn{padding:10px 6px;background:var(--bg);border:2px solid var(--border);color:var(--text);display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}.training-btn-name{font-size:13px;font-weight:600}.training-btn-meta{font-size:11px;color:var(--muted);font-weight:500;line-height:1.2}.training-btn:hover{border-color:var(--primary);color:var(--primary)}.training-btn:hover .training-btn-meta{color:var(--primary);opacity:.8}.live-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-deep, #0c0d12);display:flex;flex-direction:column;padding:16px;gap:12px;overflow-y:auto;z-index:100}.live-header{display:flex;flex-direction:column;gap:6px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.live-clock{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.5px}.live-clutch-indicator{background:var(--gold);color:var(--on-primary);font-size:11px;font-weight:700;padding:4px 10px;letter-spacing:.4px;animation:pulse-clutch 1.6s ease-in-out infinite}@keyframes pulse-clutch{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 6px #f59e0b00}}.q4-auto-switch{position:fixed;bottom:16px;left:50%;transform:translate(-50%);z-index:40;background:#120a26eb;color:var(--text);border:2px solid var(--frame);font-size:13px;font-weight:600;padding:9px 16px;cursor:pointer}.q4-auto-switch:active{background:var(--bg-deep)}.live-score-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;width:100%;max-width:380px}.live-score-team{text-align:center;display:flex;flex-direction:column;gap:4px}.live-team-name{font-size:12px;color:var(--muted)}.live-score-num{font-size:36px;font-weight:800;font-variant-numeric:tabular-nums;transition:color .3s}.live-score-num.leading{color:var(--accent)}.live-score-num.trailing{color:var(--muted)}.live-score-dash{font-size:14px;color:var(--muted)}.live-current-play{background:var(--bg);border:2px solid var(--border);border-left:4px solid var(--primary);padding:14px 16px;font-size:15px;font-weight:500;min-height:56px;display:flex;align-items:center;font-variant-numeric:tabular-nums}.live-history{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);padding:0 4px;font-variant-numeric:tabular-nums;min-height:90px}.live-history-row{transition:opacity .3s}.live-court{position:relative;display:flex;flex-direction:column;gap:10px;width:100%;max-width:min(96vw,860px);margin:0 auto;background:radial-gradient(120% 80% at 50% -10%,rgba(34,211,238,.06),transparent 60%),var(--bg);border:2px solid var(--border);padding:30px 12px 24px}.court-side{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.court-divider{align-self:stretch;height:1px;background:var(--border);margin:2px 0}.court-player{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px}.uniform{width:100%;max-width:150px;height:auto;display:block;overflow:visible;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.uniform.me{filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 5px var(--accent))}.uni-neck{stroke-width:1.6;stroke-linejoin:round}.uni-arm{stroke-width:1.2;stroke-linecap:round}.uni-name{font-size:7px;font-weight:800;letter-spacing:.2px}.uni-num{font-size:21px;font-weight:900;font-variant-numeric:tabular-nums}.live-team-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle}.court-player.fx-make{animation:fx-make .6s ease-out}.court-player.fx-miss{animation:fx-miss .6s ease-out}.court-player.fx-steal{animation:fx-steal .6s ease-out}.court-player.fx-block{animation:fx-block .6s ease-out}.court-player.fx-to{animation:fx-to .6s ease-out}@keyframes fx-make{0%{box-shadow:0 0 #36d17a00}25%{box-shadow:0 0 14px 3px #36d17ad9;background:#36d17a1f}to{box-shadow:0 0 #36d17a00;background:transparent}}@keyframes fx-miss{0%{box-shadow:0 0 #9aa3af00}25%{box-shadow:0 0 12px 2px #9aa3afb3}to{box-shadow:0 0 #9aa3af00}}@keyframes fx-steal{0%{box-shadow:0 0 #f0506e00}25%{box-shadow:0 0 16px 4px #f0506ee6;background:#f0506e24}to{box-shadow:0 0 #f0506e00;background:transparent}}@keyframes fx-block{0%{box-shadow:0 0 #f5a62300}25%{box-shadow:0 0 16px 4px #f5a623e6;background:#f5a62324}to{box-shadow:0 0 #f5a62300;background:transparent}}@keyframes fx-to{0%{box-shadow:0 0 #e8704a00}25%{box-shadow:0 0 14px 3px #e8704ad9}to{box-shadow:0 0 #e8704a00}}@media (prefers-reduced-motion: reduce){.court-player.fx-make,.court-player.fx-miss,.court-player.fx-steal,.court-player.fx-block,.court-player.fx-to{animation:none}}.court-player.me:after{content:"★";position:absolute;top:-4px;right:2px;font-size:11px;color:#ffd84d;z-index:2}.court-pts-pill{font-size:clamp(12px,2.6vw,18px);font-weight:800;font-variant-numeric:tabular-nums;line-height:1;color:#e5e7eb;background:var(--bg-deep, #0c0d12);border:2px solid var(--border);padding:3px 9px}.court-pts-unit{font-size:.66em;font-weight:700;opacity:.6;margin-left:1px}.court-player.me .court-pts-pill{color:var(--accent);border-color:var(--accent)}.court-slot{font-size:clamp(11px,2.4vw,16px);font-weight:700;letter-spacing:.5px;color:var(--muted)}.court-callouts{position:absolute;bottom:100%;left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;align-items:center;gap:2px;pointer-events:none;z-index:2}.court-callout{font-size:11px;font-weight:700;white-space:nowrap;padding:2px 6px;border:2px solid var(--border);background:var(--bg);animation:callout-float 1.2s ease-out forwards}.court-callout.good{color:#34d399;border-color:#34d39980}.court-callout.bad{color:#f87171;border-color:#f8717180}.court-callout.neutral{color:var(--muted)}@keyframes callout-float{0%{opacity:0;transform:translateY(6px) scale(.9)}18%{opacity:1;transform:translateY(0) scale(1)}78%{opacity:1;transform:translateY(-2px)}to{opacity:0;transform:translateY(-12px)}}.live-mybox{background:var(--bg);border:2px solid var(--border);padding:12px;display:flex;flex-direction:column;gap:10px}.live-mybox-label{margin:0;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.live-stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.live-stat{position:relative;text-align:center;padding:8px 4px;background:var(--bg-deep, #0a0b10);border:2px solid var(--border)}.live-stat-label{font-size:11px;color:var(--muted);letter-spacing:.4px}.live-stat-value{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.live-stat.big .live-stat-value{font-size:22px;color:var(--accent)}.live-stat-flash{position:absolute;top:-6px;right:-2px;font-size:11px;font-weight:700;color:var(--accent);background:var(--bg);border:1px solid var(--accent);padding:1px 6px;animation:flash-fade .8s ease-out forwards}@keyframes flash-fade{0%{transform:translateY(4px) scale(.7);opacity:0}20%{transform:translateY(-2px) scale(1.1);opacity:1}60%{transform:translateY(-6px) scale(1);opacity:1}to{transform:translateY(-12px) scale(.95);opacity:0}}.live-shooting{display:flex;justify-content:space-around;font-size:12px;color:var(--muted);padding-top:4px;border-top:1px solid var(--border)}.live-shooting b{color:var(--text);font-variant-numeric:tabular-nums}.live-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0;margin-top:auto}.live-controls button{padding:8px 12px;font-size:13px;background:var(--bg);border:2px solid var(--border);color:var(--text)}.live-controls button.primary{flex:1;background:var(--primary);color:var(--on-primary);border-color:var(--primary);font-weight:600}.live-speed-group{display:flex;gap:2px;border:2px solid var(--border);overflow:hidden}.live-speed-group button{border:none;padding:8px 10px;background:transparent;font-variant-numeric:tabular-nums}.live-speed-group button.active{background:var(--primary);color:var(--on-primary)}.clutch-modal{max-width:360px}.clutch-badge{display:inline-block;background:var(--gold);color:var(--on-primary);padding:4px 12px;font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:12px}.clutch-badge.small{font-size:11px;padding:2px 8px}.clutch-score{text-align:center;font-size:22px;font-variant-numeric:tabular-nums;margin-bottom:8px}.clutch-buttons{display:flex;flex-direction:column;gap:8px}.clutch-buttons button{width:100%;padding:12px}.shot-modal{max-width:380px}.shot-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.shot-modal-title{margin:0 0 12px;font-size:16px}.shot-options{display:flex;flex-direction:column;gap:8px}.shot-option{text-align:left;padding:12px 14px;background:var(--bg);border:2px solid var(--border);display:flex;flex-direction:column;gap:4px}.shot-option:hover{border-color:var(--primary);background:#7c3aed0f}.shot-option-name{font-weight:600;font-size:14px;color:var(--text)}.shot-option-desc{font-size:12px;color:var(--muted)}.def-read{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:10px 12px;margin-bottom:12px;background:#38bdf814;border:1px solid rgba(56,189,248,.35)}.def-read-text{font-size:14px;font-weight:600;color:#7dd3fc}.def-read-acc{font-size:11px;color:var(--muted);white-space:nowrap}.def-read-blind{background:#94a3b814;border-color:#94a3b84d}.def-read-blind .def-read-text{color:var(--muted);font-style:italic}.def-stops{color:#86efac}.def-concedes{color:#fca5a5}.act-ratings{display:flex;justify-content:space-between;gap:8px;margin-top:2px;font-size:11px;font-variant-numeric:tabular-nums}.act-mine{color:#7dd3fc}.act-theirs{color:#fca5a5;white-space:nowrap}.def-result-modal{max-width:360px}.def-rows{display:flex;flex-direction:column;gap:8px;margin:6px 0 12px}.def-block-label{font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;border-bottom:1px solid var(--border);padding-bottom:3px;margin-top:10px}.def-verdict-sub{font-size:12px;font-weight:500;opacity:.75;margin-top:2px}.def-row{display:flex;gap:10px;align-items:baseline;font-size:13px}.def-row-key{flex:0 0 62px;color:var(--muted);font-size:11px}.def-row-val{flex:1;color:var(--text);display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.def-row-val.strong,.def-row-val .strong{font-weight:700}.def-tag{font-size:11px;padding:1px 6px;font-weight:600}.def-tag-good{background:#22c55e2e;color:#86efac}.def-tag-bad{background:#ef44442e;color:#fca5a5}.def-tag-neutral{background:#94a3b82e;color:var(--muted)}.def-won{color:#86efac}.def-lost{color:#fca5a5}.def-verdict{text-align:center;font-size:18px;font-weight:700;padding:12px;margin-bottom:12px}.def-verdict-stop{background:#22c55e1f;color:#86efac}.def-verdict-score{background:#ef44441f;color:#fca5a5}.result-modal{max-width:320px;text-align:center}.result-tone{font-size:36px;margin-bottom:8px}.result-tone.success{color:var(--green)}.result-tone.failure{color:var(--red)}.result-tone.neutral{color:var(--accent)}.result-text{font-size:14px;font-weight:600;color:var(--text);margin-bottom:6px;font-variant-numeric:tabular-nums}.result-score{font-size:22px;font-variant-numeric:tabular-nums;margin:8px 0 16px}.career{width:100%;border-collapse:collapse;font-size:13px}.career th,.career td{padding:6px 3px;text-align:center;border-bottom:1px solid var(--border)}.career th{color:var(--muted);font-weight:600;font-size:11px}.career td{font-variant-numeric:tabular-nums}.team-rating{display:inline-block;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.team-rating.strong{background:var(--red);color:var(--on-primary)}.team-rating.mid{background:var(--border);color:var(--muted)}.team-rating.weak{background:var(--green);color:#000}.delta-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.delta{padding:4px 10px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.delta.up{background:#22c55e2e;color:var(--green)}.delta.down{background:#ef44442e;color:var(--red)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d0720cc;display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}.modal{background:var(--card);border:4px solid var(--frame);box-shadow:inset 0 0 0 4px var(--border);clip-path:var(--pixel-corners);padding:20px;width:100%;max-width:420px;max-height:90vh;overflow-y:auto}.modal-title{margin:0 0 16px;font-size:20px;color:var(--gold);text-align:center}.modal-section{margin-bottom:16px;padding:12px;background:var(--bg)}.modal-section h4{margin:0 0 8px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.my-awards{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;justify-content:center}.my-award-banner{background:var(--gold);color:var(--on-primary);padding:8px 16px;font-weight:700;font-size:14px;letter-spacing:.4px;animation:pulse-clutch 2s ease-in-out infinite}.season-avg{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--muted)}.season-avg b{color:var(--text);font-size:16px;font-variant-numeric:tabular-nums}.best-game-line{font-size:14px;font-variant-numeric:tabular-nums}.awards-grid{display:flex;flex-direction:column;gap:4px}.award-row{display:grid;grid-template-columns:90px 1fr auto;gap:10px;align-items:center;padding:8px 10px;font-size:13px}.award-row.me{background:#f59e0b1f;border:1px solid rgba(245,158,11,.4)}.award-label{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.4px}.award-player{display:flex;flex-direction:column;gap:2px;min-width:0}.award-team{font-size:11px;color:var(--muted);letter-spacing:.3px;text-transform:uppercase}.award-name{font-weight:600;color:var(--text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.award-meta{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.retire-name{text-align:center;font-weight:600;font-size:14px;color:var(--text);margin-bottom:12px}.retire-awards{display:flex;gap:16px;font-size:13px;color:var(--muted)}.retire-awards b{color:var(--text);font-size:16px}.lp-section{text-align:center;background:#ffc83d14!important;border:2px solid var(--gold)}.lp-big{font-size:28px;font-weight:800;color:var(--primary);margin:6px 0 4px;font-variant-numeric:tabular-nums}.legacy-menu{max-width:480px}.lp-display{text-align:center;font-size:16px;margin-bottom:14px;color:var(--muted)}.lp-display b{font-size:22px;color:var(--primary);font-variant-numeric:tabular-nums}.upgrade-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.upgrade-row button{padding:6px 12px;font-size:12px;background:var(--bg);border:2px solid var(--border);color:var(--text)}.upgrade-row button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.upgrade-row button:disabled{opacity:.4;cursor:not-allowed}.upgrade-buttons{display:flex;gap:4px}.upgrade-buttons button{padding:6px 10px;font-size:12px;background:var(--bg);border:2px solid var(--border);color:var(--text);min-width:36px}.upgrade-buttons button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.upgrade-buttons button:disabled{opacity:.3;cursor:not-allowed}.legacy-actions{display:flex;gap:8px;margin-top:8px}.legacy-actions button{flex:1;padding:12px}.legacy-actions button:not(.primary){background:transparent;border:2px solid var(--border);color:var(--muted)}.rating-upgrades{display:flex;flex-direction:column;gap:4px}.rating-upgrade-row{display:grid;grid-template-columns:1fr 40px 60px;align-items:center;gap:8px;font-size:13px;padding:4px 6px}.rating-up-label{color:var(--text)}.rating-up-cur{text-align:right;font-variant-numeric:tabular-nums;color:var(--primary);font-weight:600}.rating-upgrade-row button{padding:4px 8px;font-size:11px;background:var(--bg);border:2px solid var(--border);color:var(--text)}.rating-upgrade-row button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.badge-grid{display:grid;grid-template-columns:1fr;gap:6px}@media (min-width: 520px){.badge-grid{grid-template-columns:1fr 1fr}}.badge-card{background:var(--bg);border:2px solid var(--border);padding:8px 10px;display:flex;flex-direction:column;gap:4px}.badge-card-head{display:flex;justify-content:space-between;align-items:center}.badge-name{font-weight:600;color:var(--text);font-size:13px}.badge-tier{font-size:11px;padding:2px 6px;background:var(--border);color:var(--muted)}.badge-tier.tier-0{background:var(--card);color:#8c7cc0}.badge-tier.tier-1{background:#78350f;color:#fed7aa}.badge-tier.tier-2{background:#475569;color:var(--text)}.badge-tier.tier-3{background:#b45309;color:#fef3c7}.badge-desc{font-size:11px;line-height:1.4}.badge-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:2px}.badge-card-foot .upgrade-buttons button{padding:4px 8px;font-size:11px;min-width:32px}.owned-badges{display:flex;flex-wrap:wrap;gap:6px}.owned-badge{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border:2px solid var(--border);padding:4px 10px;font-size:12px}.event-badges{display:inline-flex;flex-wrap:wrap;gap:4px;margin-left:8px}.event-badge-chip{display:inline-flex;align-items:center;font-size:11px;padding:1px 6px;font-weight:600;letter-spacing:-.02em;animation:badgePop .6s ease-out}.event-badge-chip.tier-0{background:var(--card);color:var(--muted)}.event-badge-chip.tier-1{background:#78350f;color:#fed7aa}.event-badge-chip.tier-2{background:#475569;color:var(--text)}.event-badge-chip.tier-3{background:#b45309;color:#fef3c7}.player-season-record{background:var(--bg);border:2px solid var(--border);padding:10px 12px;margin-bottom:16px}.player-season-record h4{margin:0 0 8px}.player-record-line{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-size:13px}.player-record-line b{color:var(--accent);font-size:16px}.player-record-sub{text-align:center;margin-top:6px;font-variant-numeric:tabular-nums}.player-season-history{margin-bottom:16px}.player-season-history h4{margin:0 0 8px}.player-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:16px}.player-badge{font-size:12px;font-weight:600;padding:3px 9px}.player-badge-tier{opacity:.75;font-size:11px}.player-badge.tier-1{background:#78350f;color:#fed7aa}.player-badge.tier-2{background:#475569;color:var(--text)}.player-badge.tier-3{background:#b45309;color:#fef3c7}@keyframes badgePop{0%{transform:scale(.6);opacity:0}50%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}.rating-upgrade-row button:disabled{opacity:.3;cursor:not-allowed}.legacy-banner{border-color:var(--gold);background:#ffc83d14}.legacy-banner-head{display:flex;justify-content:space-between;align-items:baseline;font-weight:600;margin-bottom:4px}.summary-head{text-align:center}.summary-name{font-size:22px;font-weight:700}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:10px;text-align:center}.summary-stat{display:flex;flex-direction:column;gap:2px}.summary-stat b{font-size:20px;color:var(--accent)}.summary-legacy h4{margin:0 0 8px}.summary-chips{display:flex;flex-wrap:wrap;gap:6px}.summary-chip{font-size:12px;font-weight:600;color:var(--accent);background:#22d3ee1a;border:1px solid rgba(34,211,238,.35);padding:2px 10px}.summary-rating-group{margin-top:8px}.summary-rating-grouplabel{margin:6px 0 2px;font-size:12px;color:var(--muted);font-weight:600}.summary-actions{display:flex;gap:10px;margin-top:4px}.summary-actions button{flex:1}.summary-actions button.primary{flex:2}.next-opp{background:var(--bg);border:2px solid var(--border);padding:12px;margin-bottom:12px}.next-opp-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.next-opp-name{font-size:16px;font-weight:700}.opp-link{background:none;border:none;padding:0;font:inherit;color:var(--accent);font-weight:inherit;cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px}.opp-link:hover{text-decoration:underline solid}.team-info-record{text-align:center;margin-bottom:12px;font-size:14px}.team-info-record b{color:var(--accent)}.next-opp-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:4px 0}.schedule-toggle{width:100%;margin-top:8px;padding:10px;background:transparent;border:2px solid var(--border);color:var(--muted);font-size:13px;font-weight:600}.schedule-toggle:hover{color:var(--primary);border-color:var(--primary)}.schedule-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.schedule-row{display:grid;grid-template-columns:28px 1fr auto auto;align-items:center;gap:8px;padding:6px 10px;font-size:13px;background:var(--bg)}.schedule-row.played{opacity:.5}.schedule-row.current{background:#f9731626;border:1px solid var(--primary);padding:5px 9px}.month-cal{display:flex;flex-direction:column;gap:8px}.month-cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.month-nav{padding:6px 14px;background:var(--bg);border:2px solid var(--border);color:var(--text);font-size:18px;font-weight:700;cursor:pointer}.month-nav:disabled{opacity:.4;cursor:not-allowed}.month-label{font-weight:700;font-size:15px}.month-cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.month-cal-dow .dow{text-align:center;font-size:11px;color:var(--muted);padding:2px 0}.month-cal-dow .sun{color:var(--red)}.month-cal-dow .sat{color:var(--accent)}.month-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-cell{position:relative;min-height:56px;padding:3px 2px;background:var(--bg);border:1px solid var(--border);display:flex;flex-direction:column;gap:2px;font-size:11px;overflow:hidden}.cal-cell.empty{background:transparent;border:none}.cal-cell.off{opacity:.6}.cal-cell.rest{background:var(--card);opacity:.7}.cal-cell.all-star{background:#4a2a86;border-color:#a855f7}.cal-cell.cursor{box-shadow:0 0 0 2px var(--gold);z-index:1}.cal-cell.upcoming{background:var(--border)}.cal-cell.current{background:var(--primary);border-color:var(--gold);color:var(--on-primary)}.cal-cell.won{background:#22c55e2e;border-color:var(--green)}.cal-cell.lost{background:#ef44442e;border-color:var(--red)}.cal-cell.sun .cal-day{color:var(--red)}.cal-cell.sat .cal-day{color:var(--accent)}.cal-cell.current .cal-day{color:var(--on-primary)}.cal-day{font-size:11px;font-weight:600}.cal-game{font-size:9px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-rest{font-size:9px;color:var(--muted)}.cal-allstar{font-size:9px;font-weight:700;color:#fef3c7}.cal-result{font-size:9px;font-weight:700;letter-spacing:-.5px}.cal-result.won{color:var(--green)}.cal-result.lost{color:var(--red)}.cal-b2b{position:absolute;top:2px;right:2px;font-size:9px}.next-opp-date{display:inline-block;margin-right:8px;color:var(--muted);font-size:12px;font-weight:500}.next-opp-b2b{display:inline-block;margin-left:8px;padding:1px 6px;background:#ef444433;color:var(--red);font-size:11px;font-weight:700}.schedule-result{font-weight:700;font-size:12px;font-variant-numeric:tabular-nums}.schedule-result.won{color:var(--green)}.schedule-result.lost{color:var(--red)}.tab-bar{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:4px solid var(--border);display:flex;justify-content:space-around;z-index:50;padding:6px 0 max(6px,env(safe-area-inset-bottom))}.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:transparent;border:none;padding:6px 4px;color:var(--muted);cursor:pointer}.tab-btn.active{color:var(--gold);background:var(--bg)}.tab-icon{line-height:0}.tab-label{font-size:11px;font-weight:600}.app-topbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:0 0 12px}.app-topbar-season{font-weight:600;color:var(--accent);display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.app-topbar-season .muted,.app-topbar-record{white-space:nowrap}.app-topbar-gear{flex-shrink:0;width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--border);border:3px solid var(--frame);clip-path:var(--pixel-corners)}.app-topbar-gear:focus-visible{outline:none;border-color:var(--accent)}.settings-modal .card{margin-bottom:10px}.settings-modal>.ghost{display:block;margin:4px auto 0}.team-pick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;max-height:280px;overflow-y:auto;padding:4px;background:var(--bg);border:2px solid var(--border)}.team-pick{display:flex;flex-direction:column;gap:4px;align-items:stretch;padding:10px;background:var(--card);border:2px solid var(--border);color:var(--text);text-align:left;cursor:pointer}.team-pick.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.team-pick.active .muted{color:#4a2208}.team-pick-name{font-weight:700;font-size:14px}.team-pick-meta{display:flex;justify-content:space-between;align-items:center}.team-list{display:flex;flex-direction:column;gap:6px}.team-card{background:var(--bg);border:2px solid var(--border);overflow:hidden}.team-card.my-team{border-color:var(--primary)}.team-card-head{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;width:100%;padding:10px 12px;background:transparent;border:none;color:var(--text);font-size:14px;cursor:pointer;text-align:left}.team-card-name{font-weight:700}.team-card-toggle{color:var(--muted);font-size:12px}.roster{list-style:none;margin:0;padding:8px 12px 12px;display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--border)}.roster-row{display:grid;grid-template-columns:32px 1fr auto auto;align-items:center;gap:8px;padding:4px 0;font-size:13px}.roster-pos{font-weight:700;color:var(--muted);font-size:12px}.roster-name{font-weight:500}.roster-mins{font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted);min-width:40px;text-align:right}.roster-ovr{font-variant-numeric:tabular-nums;font-weight:700;color:var(--accent)}.roster-row.me{color:var(--primary)}.roster-row.me .roster-name{font-weight:700}.roster-row.dnp{opacity:.55}.roster-row.dnp .roster-mins{color:var(--muted);font-style:italic}.roster-group-header{margin:6px 0 2px;padding:0 4px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.roster-group-header:first-child{margin-top:0}.me-tag{display:inline-block;margin-left:6px;padding:1px 6px;background:var(--primary);color:var(--on-primary);font-size:11px;font-weight:700}.data-row{display:flex;gap:8px}.sound-toggle{display:flex;align-items:center;gap:8px;width:100%;justify-content:center;padding:12px;font-weight:600}.sound-toggle[aria-pressed=false]{color:var(--muted)}.data-row button{flex:1;padding:12px;background:var(--bg);border:2px solid var(--border);color:var(--text);font-size:14px;font-weight:600}.data-row button:hover{border-color:var(--primary);color:var(--primary)}.condition-card .condition-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.condition-card .condition-head h3{margin:0}.condition-state{font-size:14px;color:var(--text)}.condition-state b{color:var(--primary);margin-left:4px}.condition-bar{height:10px;background:var(--border);overflow:hidden;-webkit-mask-image:var(--segments);mask-image:var(--segments);margin-bottom:8px}.condition-bar-fill{height:100%;transition:width .4s ease,background .4s ease;background:var(--primary)}.condition-bar-fill.tone-great{background:var(--green)}.condition-bar-fill.tone-normal{background:var(--primary)}.condition-bar-fill.tone-poor{background:var(--red)}.condition-card.tone-poor{border-color:var(--red)}.condition-card.tone-poor .condition-state b{color:var(--red)}.condition-card.tone-great .condition-state b{color:var(--green)}.coach-trust-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.coach-trust-head h3{margin:0}.coach-trust-state{font-size:14px;color:var(--text)}.coach-trust-state b{color:var(--primary);margin-left:4px}.coach-trust-bar{height:10px;background:var(--border);overflow:hidden;-webkit-mask-image:var(--segments);mask-image:var(--segments);margin-bottom:8px}.coach-trust-bar-fill{height:100%;transition:width .4s ease,background .4s ease}.coach-trust-bar-fill.tone-high{background:var(--green)}.coach-trust-bar-fill.tone-mid{background:var(--primary)}.coach-trust-bar-fill.tone-low{background:var(--red)}.coach-trust-card.tone-high .coach-trust-state b{color:var(--green)}.coach-trust-card.tone-low .coach-trust-state b{color:var(--red)}.condition-delta.pos{color:var(--green);font-weight:600}.condition-delta.neg{color:var(--red);font-weight:600}.day-result-condition{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;margin-top:12px;background:var(--bg);border:2px solid var(--border)}.day-result-condition b{color:var(--text)}.stat-line-main{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;font-size:15px}.stat-line-main b{color:var(--accent);font-size:18px}.stat-line-sub{text-align:center;margin-top:4px;font-variant-numeric:tabular-nums}.day-result-mvp{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;margin-top:12px;background:var(--bg);border:2px solid var(--border)}.day-result-mvp.is-me{border-color:var(--accent);background:#22d3ee14}.day-result-feats{margin-top:12px}.day-result-feat-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.feat-chip{font-size:12px;font-weight:600;padding:2px 9px;background:#f59e0b26;color:var(--gold)}.injury-card{border-color:var(--red);background:#ff6b6b14}.injury-head{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--red);margin-bottom:6px}.injury-icon{line-height:0}.injury-label{font-size:16px}.injury-remaining{font-size:14px;margin-bottom:4px}.injury-remaining b{font-size:18px;color:var(--primary)}.injury-advance{padding:12px}.injury-advance button{width:100%}.conference-tabs{display:flex;gap:4px;margin-bottom:12px;background:var(--bg);padding:4px;border:2px solid var(--border)}.conference-tab{flex:1;padding:8px;background:transparent;border:none;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}.conference-tab.active{background:var(--primary);color:var(--on-primary)}.division-list{display:flex;flex-direction:column;gap:14px}.division-group{display:flex;flex-direction:column;gap:8px}.division-label{margin:0 0 4px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.po-progress,.po-board{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}.league-section-title{margin:4px 0 10px}.po-title{font-size:20px;font-weight:700;text-align:center;margin:8px 0}.po-champion-card{text-align:center;background:var(--gold);color:var(--on-primary)}.po-champion-icon{line-height:0}.po-champion-name{font-size:24px;font-weight:700;margin:8px 0 14px}.po-finals-mvp{display:flex;flex-direction:column;align-items:center;gap:2px;margin:8px 0 14px;padding:10px 14px;background:#00000040}.po-finals-mvp.me{background:#fff3;outline:2px solid var(--on-primary)}.po-finals-mvp-label{font-size:11px;text-transform:uppercase;letter-spacing:.8px;opacity:.85}.po-finals-mvp-name{font-size:16px;font-weight:700}.po-finals-mvp-line{font-size:13px;opacity:.9}.po-active-card{border-color:var(--primary);background:#ff7a1a14}.po-active-head{font-weight:700;color:var(--primary);margin-bottom:6px}.po-active-matchup{font-size:16px;margin-bottom:10px}.po-conference h3{margin:0 0 12px}.po-round-block{margin-bottom:14px}.po-round-label{margin:0 0 6px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.po-series-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.po-series{border:2px solid var(--border);padding:8px 10px;background:#ffffff05}.po-series.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.po-series.has-me{background:#f973160f}.po-series-head{display:flex;justify-content:space-between;margin-bottom:4px;font-size:11px;color:var(--muted)}.po-round{font-weight:600;text-transform:uppercase;letter-spacing:.4px}.po-score{font-weight:600}.po-team{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:14px}.po-team.winner{font-weight:700}.po-team.me{color:var(--primary);font-weight:600}.po-team .po-seed{display:inline-block;min-width:18px;text-align:center;font-size:11px;color:var(--muted)}.po-team .po-team-name{flex:1}.po-team .po-wins{min-width:18px;text-align:right;font-weight:600}.roster-row.clickable{cursor:pointer;transition:background-color .12s}.roster-row.clickable:hover{background:#ffffff0a}.roster-row.clickable:focus-visible{outline:2px solid var(--accent, #4f8eff);outline-offset:-2px}.retirees-list,.draft-list{display:flex;flex-direction:column;gap:6px;font-size:13px}.retiree-row,.draft-row{display:flex;align-items:baseline;gap:8px;padding:4px 0;border-bottom:1px dashed var(--border)}.retiree-row:last-child,.draft-row:last-child{border-bottom:none}.retiree-name,.draft-name{font-weight:600;min-width:110px}.draft-pick{font-weight:700;color:var(--accent, #4f8eff);min-width:30px}.card-head-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-head-row h3{margin:0}button.ghost.small{background:var(--bg);border:2px solid var(--border);color:var(--muted);padding:5px 10px;font-size:12px;cursor:pointer}button.ghost.small:hover{border-color:var(--primary);color:var(--primary)}.career-current td{background:#f9731614;font-weight:600}.league-season-tabs,.league-cat-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.chip-tab{background:var(--bg);border:2px solid var(--border);color:var(--muted);padding:5px 12px;font-size:12px;cursor:pointer}.chip-tab.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.leaderboard{list-style:none;margin:0;padding:0}.leader-row{display:grid;grid-template-columns:28px 1fr auto;grid-template-areas:"rank name value" "rank team value";align-items:center;column-gap:8px;padding:6px 4px;border-bottom:1px solid var(--border)}.leader-rank{grid-area:rank;text-align:center;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:700}.leader-name{grid-area:name;font-weight:600}.leader-team{grid-area:team}.leader-value{grid-area:value;text-align:right;font-variant-numeric:tabular-nums}.leader-row.is-me{background:#f973161f}.leader-row.is-me .leader-name{color:var(--primary)}.leaderboard-my-rank{margin-top:10px;padding:8px;text-align:center;background:#f9731614;font-size:13px}.load-error{border-color:var(--red);background:#ef44440f}.load-error-head{font-weight:600;margin-bottom:6px}.load-error p{margin:0 0 6px}.standings{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}.standings th{text-align:right;font-weight:500;color:var(--muted);font-size:11px;padding:4px 6px;border-bottom:1px solid var(--border)}.standings td{text-align:right;padding:6px;border-bottom:1px solid rgba(255,255,255,.04);font-variant-numeric:tabular-nums}.standings th.standings-seed,.standings td.standings-seed{text-align:center;width:26px;color:var(--muted)}.standings th.standings-team,.standings td.standings-team{text-align:left;width:100%}.standings tr.standings-playoff-line td{border-bottom:1px solid var(--accent)}.standings tr.standings-playin-line td{border-bottom:1px dashed var(--muted)}.standings tr.standings-me{background:#38e1ff29}.standings tr.standings-me td{font-weight:600}.standings-mine{color:var(--accent);font-size:11px}.standings-legend{margin-top:8px}.shot-option.foul-option{border-color:#f59e0b73;background:#f59e0b0f}.foul-option-meta{margin-top:4px}.entry-mode-row{display:flex;gap:8px}.entry-mode{flex:1;text-align:left;padding:10px 12px;background:var(--bg);border:2px solid var(--border);color:var(--text);cursor:pointer}.entry-mode.active{border-color:var(--accent);background:#22d3ee14}.entry-mode-name{font-weight:600;font-size:13px}.entry-mode-desc{margin-top:2px;line-height:1.35}.draft-call{position:relative;text-align:center}.draft-pick-number{font-size:56px;font-weight:700;line-height:1;color:var(--accent);margin:6px 0 4px}.draft-team{display:inline-block;padding:4px 16px;margin-bottom:8px;font-size:20px;font-weight:600;background:var(--team);color:var(--team-ink);box-shadow:inset 0 -4px #00000040}.draft-board{width:100%;border-collapse:collapse;font-size:13px}.draft-board td{padding:6px;border-bottom:1px solid rgba(255,255,255,.04)}.draft-board-pick{width:32px;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.draft-board-who{text-align:right}.draft-board tr.draft-board-me{background:#38e1ff29}.draft-tag{color:var(--accent)}.title-screen{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;background:var(--bg);cursor:pointer;-webkit-user-select:none;user-select:none}.title-backdrop{position:absolute;left:0;bottom:0}.title-stage{position:absolute;left:50%;bottom:0;width:390px;height:544px;margin-left:-195px}.title-sprite,.title-pole,.title-arc,.title-ball{position:absolute}.title-pole{left:332px;top:120px;width:8px;height:144px;background:#9aa6c8}.title-arc{width:8px;height:8px;background:var(--text)}.title-ball{left:212px;top:72px;line-height:0}.title-logo{position:relative;min-height:calc(100vh - 544px);min-height:calc(100dvh - 544px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:calc(24px + env(safe-area-inset-top)) 16px 24px;font-weight:700;line-height:1}.title-logo-top{font-size:36px;letter-spacing:2px;color:var(--text);text-shadow:3px 3px 0 var(--primary),6px 6px 0 var(--card)}.title-logo-main{font-size:48px;letter-spacing:3px;color:var(--gold);text-shadow:4px 4px 0 var(--primary),8px 8px 0 var(--card)}.title-tagline{margin-top:14px;font-size:14px;font-weight:400;color:var(--accent)}.title-start{position:absolute;left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom));width:min(326px,calc(100% - 64px));height:92px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--bg);border:4px solid var(--frame);box-shadow:inset -6px -6px 0 var(--card),inset 6px 6px #2f1c58;clip-path:var(--pixel-corners);color:var(--text)}.title-start:focus-visible{outline:none;border-color:var(--accent)}.title-sound{position:absolute;top:calc(16px + env(safe-area-inset-top));right:16px;z-index:1;width:52px;height:52px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--border);border:4px solid var(--frame);box-shadow:inset -4px -4px 0 var(--bg);clip-path:var(--pixel-corners)}.title-sound:focus-visible{outline:none;border-color:var(--accent)}.title-blink{font-size:24px;font-weight:700;letter-spacing:3px;color:var(--gold);animation:title-blink 1.1s steps(1) infinite}.title-start-sub{font-size:15px}@keyframes title-blink{50%{opacity:0}}@media (prefers-reduced-motion: reduce){.title-blink{animation:none}}@media (max-height: 740px){.title-backdrop,.title-stage{bottom:-80px}.title-logo{min-height:calc(100vh - 464px);min-height:calc(100dvh - 464px)}}.slot-list{display:flex;flex-direction:column;gap:10px}.slot{border:2px solid var(--border);padding:12px;background:var(--bg)}.slot.empty{border-style:dashed}.slot-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.slot-index{font-size:12px;color:var(--muted);letter-spacing:.5px}.slot-name{font-size:17px;font-weight:600}.slot .primary,.slot .ghost{margin-top:10px}.slot-empty-note{margin:6px 0}.slot-incompatible{margin-top:8px;color:var(--red);line-height:1.4}.offer-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}.offer{text-align:left;padding:12px;background:var(--bg);border:2px solid var(--border);color:var(--text);cursor:pointer}.offer:hover{border-color:var(--accent)}.offer-head{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}.offer-team{font-weight:600}.offer-tag{font-size:11px;padding:1px 5px;border:2px solid var(--border);color:var(--muted)}.offer-tag-money{color:var(--accent);border-color:var(--accent)}.offer-terms{font-size:15px}.contract-note{line-height:1.45}.funds{color:var(--accent);font-weight:600;font-size:13px}.facility-intro{margin:0 0 10px;line-height:1.45}.facility-list{display:flex;flex-direction:column;gap:10px}.facility{padding:10px 12px;background:var(--bg);border:2px solid var(--border)}.facility-head{display:flex;justify-content:space-between;align-items:baseline}.facility-name{font-weight:600;font-size:14px}.facility-level{color:var(--accent);letter-spacing:2px;font-size:12px}.facility-effect{font-size:13px;margin:6px 0 8px}.facility button{width:100%}.facility button:disabled{opacity:.35;cursor:not-allowed}.phase-progress{height:8px;background:var(--border);overflow:hidden;-webkit-mask-image:var(--segments);mask-image:var(--segments);margin-bottom:12px}.phase-progress-fill{height:100%;background:var(--accent);transition:width .15s linear}.phase-running{margin:0;text-align:center;font-variant-numeric:tabular-nums}.phase-card .primary{margin-top:12px}.routine-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--bg);border:2px solid var(--border)}.routine-summary-label{margin-bottom:2px}.routine-summary-drills{font-weight:600;font-size:14px;margin-bottom:2px}.routine-summary button{flex-shrink:0}.routine-section-label{margin:14px 0 8px}.routine-intensity-desc{margin:8px 0 0}.routine-style-name{color:var(--accent)}.style-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.style-btn{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:8px 10px;text-align:left;background:var(--bg);border:2px solid var(--border);color:var(--text)}.style-btn.active{border-color:var(--accent);background:#38e1ff14}.style-btn-head{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;width:100%}.style-btn-name{font-weight:700;font-size:14px}.style-btn-desc{line-height:1.35}.style-btn-focus{color:var(--gold);line-height:1.35}.style-tag{flex-shrink:0;padding:0 4px;font-size:11px;background:var(--gold);color:var(--on-primary)}.style-btn-name{white-space:nowrap}.style-btn-custom{width:100%;margin-top:6px}.hexagon{margin:0}.hexagon-stage{position:relative;display:flex;justify-content:center}.hexagon-svg{display:block}.hexagon-label{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;line-height:1.15;font-size:11px;white-space:nowrap;pointer-events:none}.hexagon-label.side-r{transform:translateY(-50%);align-items:flex-start}.hexagon-label.side-l{transform:translate(-100%,-50%);align-items:flex-end}.hexagon-label-name{color:var(--muted)}.hexagon-label-value{font-size:14px;font-variant-numeric:tabular-nums}.hexagon-delta{font-size:11px;font-variant-numeric:tabular-nums}.hexagon-delta.pos{color:var(--green)}.hexagon-delta.neg{color:var(--red)}.hexagon-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;margin-top:2px}.hexagon-key{display:inline-block;width:8px;height:8px;margin-right:3px;vertical-align:middle}.hexagon-key.me{background:#38e1ff}.hexagon-key.ref{background:repeating-linear-gradient(90deg,#ffc83d 0 2px,transparent 2px 4px)}.hexagon-key.grew{background:#5be38a}.identity-title{font-size:18px;font-weight:700;color:var(--gold);text-align:center;margin:2px 0 4px}.identity-style{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:6px;text-align:center}.identity-style b{color:var(--accent)}.identity-focus{color:var(--text)}.identity-note{text-align:center;margin:8px 0 0}.summary-style-note{margin:4px 0 10px;line-height:1.45}.title-change{display:flex;flex-direction:column;align-items:center;gap:2px;margin:6px 0;padding:8px;border:2px solid var(--gold);background:var(--bg);text-align:center;animation:moment-appear .2s steps(1) both}.title-change b{color:var(--gold)}.phase-summary-focus{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0 0 8px;text-align:center;line-height:1.45}@media (prefers-reduced-motion: reduce){.title-change{animation:none}}.training-btn.active{border-color:var(--accent);background:#22d3ee14}.training-btn:disabled{opacity:.35;cursor:not-allowed}.routine-order{display:inline-block;min-width:16px;margin-right:4px;background:var(--accent);color:var(--bg);font-size:11px;line-height:16px}.phase-summary h4{margin:14px 0 6px}.phase-summary-title{text-align:center}.phase-summary-team{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;background:var(--bg)}.phase-summary-record{white-space:nowrap}.phase-summary-record b{color:var(--accent)}.phase-summary-games{margin:0 0 6px}.phase-summary-growth{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.phase-summary-growth b{color:var(--accent)}.phase-summary-injuries{margin-top:8px;display:flex;flex-direction:column;gap:2px}.phase-summary-next{margin-top:16px;padding-top:4px;border-top:1px solid var(--border)}.phase-summary-next .primary{margin-top:12px}.phase-summary-close{display:block;margin:12px auto 0}.po-last-series.won{border-left:4px solid var(--green)}.po-last-series.lost{border-left:4px solid var(--red)}.po-my-outcome{display:flex;flex-direction:column;gap:4px}.po-my-outcome.won{border-color:var(--gold)}.po-my-outcome-line{font-size:16px;font-weight:700;line-height:1.4}.po-last-series-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.po-live-btn{display:block;margin:10px auto 0}.release-why .release-terms{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:14px;margin:4px 0}.release-note{text-align:center;margin:4px 0 0}.release-result{padding:10px 12px;border:2px solid var(--border);background:var(--bg);line-height:1.45}.release-result.ok{border-color:var(--accent)}.release-result.fail{color:var(--muted)}.agent-warning{border-left:3px solid var(--accent);padding-left:10px}.camp-needed{outline:2px solid var(--gold)}.camp-nag{margin:0 0 8px;color:var(--gold)}.agent-warning p{margin:4px 0 0;line-height:1.45}.retire-lp-preview{text-align:center;margin:8px 0 4px}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:2}.confetti span{position:absolute;top:-8px;width:6px;height:6px;animation-name:confetti-fall;animation-timing-function:steps(14);animation-fill-mode:both}.confetti span.ribbon{width:4px;height:10px}@keyframes confetti-fall{0%{top:-10px;opacity:1;transform:none}85%{opacity:1}to{top:100%;opacity:0;transform:translate(var(--dx))}}.draft-call .draft-round{animation:moment-appear .2s steps(1) both}.draft-call .draft-pick-number{animation:draft-stamp .27s steps(3) .28s both}.draft-call .draft-team{animation:sweep-in .3s steps(6) .58s both}@keyframes moment-appear{0%{opacity:0}}@keyframes draft-stamp{0%{transform:scale(2.4);opacity:0}34%{opacity:1}}@keyframes sweep-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.retire-modal{position:relative}.retire-banner-wrap{display:flex;flex-direction:column;align-items:center;margin:-4px 0 12px}.retire-rod{position:relative;z-index:1;width:196px;height:8px;background:#9aa6c8;box-shadow:inset 0 -3px #5d6680}.retire-banner-clip{overflow:hidden;padding:0 4px 4px}.retire-banner-drop{animation:banner-drop .6s steps(6) both}@keyframes banner-drop{0%{transform:translateY(-105%)}}.retire-banner{width:156px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px 12px;background:var(--team);color:var(--team-ink);border:4px solid var(--frame);border-top:none;box-shadow:inset 0 0 0 3px #00000038;text-align:center}.retire-banner.hof{border-color:var(--gold)}.retire-banner-team,.retire-banner-years{font-size:12px}.retire-banner-num{font-size:56px;font-weight:700;line-height:1;text-shadow:3px 3px 0 rgba(0,0,0,.35);font-variant-numeric:tabular-nums}.retire-banner-name{font-size:15px;font-weight:700;overflow-wrap:anywhere}.retire-banner-hof{margin-top:2px;padding:2px 6px;font-size:11px;letter-spacing:1px;background:var(--card);color:var(--gold)}.retire-fringe{width:156px;height:8px;background:repeating-linear-gradient(90deg,var(--frame) 0 6px,transparent 6px 12px);background-position:3px 0}.retire-fringe.hof{background-image:repeating-linear-gradient(90deg,var(--gold) 0 6px,transparent 6px 12px)}.level-up{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;margin:-4px 0 14px;padding:12px 10px 10px;background:var(--bg);border:2px solid var(--gold)}.level-up-text{font-size:28px;font-weight:700;letter-spacing:2px;line-height:1;color:var(--gold);text-shadow:3px 3px 0 var(--primary),6px 6px 0 var(--card);animation:level-pop .3s steps(3) both}@keyframes level-pop{0%{transform:scale(.2);opacity:0}60%{transform:scale(1.25);opacity:1}}.level-up-ovr{font-size:14px}.level-up-num{display:inline-block;min-width:2ch;font-size:18px;color:var(--accent);font-variant-numeric:tabular-nums;animation:tick-pop .16s steps(2) both}@keyframes tick-pop{0%{transform:translateY(-5px)}}.level-up-spark{position:absolute;top:10px;animation:spark-blink .36s steps(1) 4}.level-up-spark.l{left:14px}.level-up-spark.r{right:14px}@keyframes spark-blink{50%{opacity:0}}.po-champion-card,.season-report-view{position:relative}.league-news-hint{text-align:center;margin:8px 0 0}.retire-screen{padding-bottom:32px}.report-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.report-tabs button{flex:1 1 auto;padding:6px 8px;font-size:13px;white-space:nowrap}.report-tabs button.active{border-color:var(--accent);color:var(--accent)}.my-season-head{display:flex;flex-direction:column;gap:4px;text-align:center}.my-season-outcome{font-size:16px;font-weight:700;line-height:1.4}.my-awards-none{margin:0;text-align:center}.report-champion{margin:0 0 10px}@media (prefers-reduced-motion: reduce){.confetti{display:none}.draft-call .draft-round,.draft-call .draft-pick-number,.draft-call .draft-team,.draft-call .draft-avatar,.retire-banner-drop,.level-up-text,.level-up-num,.level-up-spark{animation:none}}.retire-sub{text-align:center;margin:2px 0 10px;line-height:1.45}.hof-call{text-align:center;padding:10px;border:1px dashed var(--border);color:var(--muted);margin-bottom:8px}.hof-call.in{border:1px solid var(--accent);color:var(--text)}.best-season-line{margin:4px 0 0}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.career-timeline th,.career-timeline td{white-space:nowrap}.career-timeline tr.best-season td{background:var(--bg);font-weight:600}.tl-awards{display:inline-flex;gap:3px}.tl-chip{font-size:11px;padding:0 4px;border:2px solid var(--border);color:var(--muted)}.tl-chip.gold{color:var(--accent);border-color:var(--accent)}.hof-modal{max-width:560px}.hof-sub{text-align:center;margin:2px 0 10px}.hof-sort{display:flex;gap:6px;margin-bottom:8px}.hof-sort button{flex:1;padding:6px;font-size:13px}.hof-sort button.active{border-color:var(--accent);color:var(--accent)}.hof-list{display:flex;flex-direction:column;gap:8px}.hof-row{border:2px solid var(--border);padding:8px 10px;background:var(--bg)}.hof-row.in{border-color:var(--accent)}.hof-row-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%;background:none;border:none;padding:0;color:var(--text);text-align:left;cursor:pointer}.hof-row-name{font-weight:600;min-width:0;overflow-wrap:anywhere}.hof-row-lp{font-variant-numeric:tabular-nums;white-space:nowrap}.hof-row-line,.hof-row-honors{margin-top:2px;line-height:1.45}.hof-detail{margin-top:8px}.slot-hof{margin-top:6px}.player-avatar{display:block}.avatar-frame{display:inline-block;flex:none;line-height:0;padding:4px;background:var(--bg-deep);border:4px solid var(--frame);clip-path:var(--pixel-corners)}.avatar-frame.thin{padding:2px;border-width:2px;clip-path:none}.avatar-editor{display:flex;flex-direction:column;gap:10px;background:var(--bg);border:2px solid var(--border);padding:12px}.avatar-editor-preview{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.avatar-later{display:flex;gap:8px}.avatar-later-item{margin:0;display:flex;flex-direction:column;align-items:center;gap:4px}.avatar-editor>button.ghost.small{align-self:flex-start}.avatar-row{display:flex;align-items:center;gap:8px}.field .avatar-row-label{flex:0 0 56px;font-size:13px;color:var(--muted)}.avatar-swatches{display:flex;gap:6px;flex-wrap:wrap}.avatar-swatch{width:28px;height:28px;padding:0;border:2px solid var(--border);cursor:pointer}.avatar-swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.avatar-stepper{display:flex;align-items:center;gap:6px}.field .avatar-step-value{min-width:104px;text-align:center;font-size:14px;color:var(--text)}.identity-head{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:6px}.identity-head .identity-title{text-align:left}.summary-head{display:flex;align-items:center;justify-content:center;gap:14px;text-align:left}.draft-call .draft-avatar{display:block;width:max-content;margin:10px auto 6px;animation:moment-appear .2s steps(1) .9s both}.phase-summary-head{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}.phase-summary-head .phase-summary-title{margin:0}.my-season-title{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:12px}.my-season-title .modal-title{margin:0}.retire-faces{display:flex;align-items:center;justify-content:center;gap:10px;margin:4px 0 10px}.retire-face{margin:0;display:flex;flex-direction:column;align-items:center;gap:4px}.retire-faces-arrow{color:var(--muted)}.slot-who{display:flex;align-items:center;gap:10px}.hof-row-head{align-items:center}.hof-row-head .hof-row-name{flex:1}.hof-detail-face{display:block;width:max-content;margin:0 auto 8px}.school-year-record{margin:8px 0 4px}.school-year-events{list-style:none;margin:8px 0 0;padding:0}.school-year-events li{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid var(--border);font-size:13px}.school-year-events li:last-child{border-bottom:none}.school-year-events li .muted{text-align:right}.school-year-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:8px}.school-year-table th,.school-year-table td{padding:5px 4px;border-bottom:1px solid var(--border);text-align:right}.school-year-table th:first-child,.school-year-table td:first-child{text-align:left}.school-year-table th{color:var(--muted);font-weight:600;font-size:11px}.school-year-table td{font-variant-numeric:tabular-nums}.school-year-table tr.champion td{color:var(--gold)}.school-year-awards{white-space:nowrap}.school-year-awards .feat-chip{margin-left:4px}.draft-outlook{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 0;margin:8px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.pathway-honors{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.pathway-timeline .pathway-school{white-space:nowrap}.school-tournament{padding:8px 0;border-bottom:1px solid var(--border)}.school-tournament:last-child{border-bottom:none}.school-tournament-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.school-league-table{margin-top:6px}.school-league-table tr.me td{color:var(--gold);font-weight:700}.hof-pathway-title{margin:10px 0 4px}.foreign-tag{margin-left:4px;font-size:10px;color:var(--muted);border:1px solid var(--border);padding:0 3px}.chronicle{list-style:none;margin:0;padding:0}.chronicle-entry{display:flex;gap:10px;padding:5px 0;border-bottom:1px solid var(--border);font-size:13px}.chronicle-entry:last-child{border-bottom:none}.chronicle-when{flex:0 0 auto;min-width:56px;color:var(--muted);font-variant-numeric:tabular-nums}.chronicle-entry.w3 .chronicle-text{color:var(--gold);font-weight:700}.chronicle-entry.w1 .chronicle-text{color:var(--muted)}.tl-title{white-space:nowrap;font-size:11px;color:var(--muted);text-align:left}.career-title{font-size:10px;color:var(--muted);white-space:nowrap}.goal-picker{margin:8px 0}.goal-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}.goal-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:8px}.goal-option.active{border-color:var(--gold)}.goal-kind{font-size:10px;color:var(--muted)}.goal-option.active .goal-kind{color:var(--gold)}.goal-label{font-weight:700;font-size:13px}.goal-locked{margin:8px 0}.goal-tag{margin-left:6px;font-size:10px;color:var(--gold);border:1px solid var(--gold);padding:0 3px}.goal-result{margin:6px 0;font-size:13px}.goal-result.met b{color:var(--gold)}.goal-result.missed b{color:var(--muted)}.event-card{border:2px solid var(--gold);padding:10px;margin:10px 0;background:var(--bg-deep)}.event-card-head{font-weight:700;color:var(--gold);margin-bottom:4px}.event-card-text{margin:0 0 8px;font-size:13px}.event-card-note{margin:8px 0 0}.event-choices{display:flex;flex-direction:column;gap:6px}.event-choice{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:8px;width:100%}.event-choice-label{font-weight:700}.event-choice-effect{font-size:11px;color:var(--muted)}.event-result{margin:8px 0}.ncaa-offers-title{margin-top:14px}.national-rounds{list-style:none;padding:0;margin:6px 0 0}.national-rounds li{display:flex;gap:8px;align-items:baseline;font-size:12px;padding:2px 0}.national-rounds li.me{color:var(--gold)}.ncaa-ranking td:nth-child(3){max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.national-call-card{border-color:var(--accent)}.national-call{border:2px solid var(--border);background:var(--bg-deep);padding:8px 10px;margin-top:8px}.national-call-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.national-call p{margin:4px 0 8px}.national-call-buttons{display:flex;gap:8px}.national-call-buttons button{flex:1}.national-results{list-style:none;padding:0;margin:6px 0 0}.national-results li{padding:6px 0;border-bottom:1px solid var(--border)}.national-results li:last-child{border-bottom:none}.national-result-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:13px}.national-caps{margin:4px 0;font-size:13px}.medal-gold{color:var(--gold)}.medal-silver{color:#d8d8e8}.medal-bronze{color:#e0965a}.service-card{border-color:var(--green)}.service-card button.primary{width:100%}
