:root{--ink:#f7f4e9;--dark:#0b1511;--panel:#14261f;--panel-light:#1b342a;--gold:#f2c14e;--field:#176b3a;--field-alt:#1b7540;--line:#ffffffd1;color:var(--ink);background:#07100c;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}.boot-splash{place-items:center;min-height:100vh;padding:24px;display:grid}.boot-card{text-align:center;background:linear-gradient(145deg,#183127f2,#0c1b15f2);border:1px solid #355243;border-radius:12px;max-width:460px;padding:28px 26px;box-shadow:0 18px 42px #0007}.boot-card h1{margin:0 0 10px;font-family:Georgia,serif}.boot-detail{color:#aebeb6;font-size:.85rem}.boot-error{color:#ff9b8c;font-weight:700}.boot-hint{color:#82958b;margin-top:12px;font-size:.75rem}.boot-hint code{color:var(--gold)}body{background:radial-gradient(circle at 50% 0,#213c30 0,#07100c 55%);min-width:320px;min-height:100vh;margin:0}button,select{font:inherit}button{cursor:pointer}.game-shell{width:min(1680px,100%);margin:0 auto;padding:18px}.scoreboard{background:#050806;border:3px solid #303c36;border-radius:8px;grid-template-columns:1fr auto 1fr;align-items:center;width:min(720px,100%);margin:0 auto 18px;padding:10px 18px;font-family:Courier New,monospace;display:grid;box-shadow:0 8px 22px #0009}.team-score{align-items:center;gap:14px;font-size:1.2rem;display:flex}.team-score>span{align-items:center;gap:5px;display:inline-flex}.score-logo{object-fit:contain;filter:drop-shadow(0 1px 2px #000a);width:1.5em;height:1.5em}.team-score strong{color:var(--gold);font-size:2rem}.away-score{justify-content:flex-end}.ball-dot{font-size:.75rem;font-style:normal;line-height:1}.timeout-dots{align-items:center;gap:4px;display:inline-flex}.timeout-dots i{border:1px solid #5c6b62;border-radius:50%;width:9px;height:9px}.timeout-dots i.on{background:var(--gold);border-color:var(--gold);box-shadow:0 0 4px #f2c14e88}.timeout-dots i.off{opacity:.5;background:0 0}.game-clock{border-inline:1px solid #445048;justify-items:center;padding:0 28px;display:grid}.game-clock strong{color:#ff634f;font-size:1.5rem}.game-clock span{letter-spacing:.12em;font-size:.72rem}.setup-panel,.game-panel{background:linear-gradient(145deg,#183127f2,#0c1b15f2);border:1px solid #355243;border-radius:12px;box-shadow:0 18px 42px #0007}.setup-panel{flex-direction:column;gap:18px;margin-bottom:18px;padding:28px;display:flex}.setup-panel h1{text-transform:uppercase;margin:0;font:800 clamp(2rem,5vw,4rem)/.9 Georgia,serif}.setup-panel p{color:#b9c9c1;margin-bottom:0}.eyebrow{letter-spacing:.15em;text-transform:uppercase;font-size:.75rem;font-weight:800;color:var(--gold)!important}.team-pickers{justify-content:flex-end;align-items:end;gap:12px;display:flex}.team-pickers label{color:#b9c9c1;text-transform:uppercase;gap:7px;font-size:.78rem;display:grid}.team-select-row{align-items:center;gap:8px;display:flex}.team-select-row select{flex:1}.team-select-logo{object-fit:contain;filter:drop-shadow(0 1px 2px #0008);flex:none;width:34px;height:34px}.versus{color:var(--gold);padding-bottom:10px;font-weight:900}select{min-width:180px;color:var(--ink);background:#0b1712;border:1px solid #567063;border-radius:6px;padding:10px}.primary-button,.secondary-button{letter-spacing:.05em;text-transform:uppercase;border-radius:6px;padding:12px 20px;font-weight:900}.primary-button{color:#171306;background:var(--gold);border:0;box-shadow:0 4px #9d7720}.primary-button:disabled{cursor:not-allowed;filter:grayscale();opacity:.45}.primary-button:not(:disabled):active{transform:translateY(2px);box-shadow:0 2px #9d7720}.secondary-button{color:#c8d5ce;background:0 0;border:1px solid #60766b}.stadium{background:#101713;border:1px solid #48564f;border-radius:14px;overflow:hidden;box-shadow:0 18px 44px #000c,0 0 0 1px #0008}.stands{background:repeating-linear-gradient(90deg,#28332e 0 4px,#101713 4px 9px,#8b6540 9px 11px,#101713 11px 16px);height:42px}.stands-top{transform-origin:bottom;border-radius:14px 14px 0 0;transform:perspective(200px)rotateX(-4deg)}.stands-bottom{transform-origin:top;border-radius:0 0 14px 14px;transform:perspective(200px)rotateX(4deg)}.field{border-block:6px solid #f3f0dc;grid-template-columns:8% 1fr 8%;height:clamp(270px,35vw,480px);display:grid;box-shadow:inset 0 0 0 2px #bbb79f}.end-zone{isolation:isolate;background:#173c61;border-inline:3px solid #fff;place-items:center;display:grid;position:relative;overflow:hidden}.end-zone:before{z-index:-1;content:"";background:repeating-linear-gradient(135deg,#0000 0 12px,#fff0 12px 20px,#ffffff12 20px 22px);position:absolute;inset:0}.right-end-zone{background:#9b2028}.end-zone span{writing-mode:vertical-rl;color:#fff;letter-spacing:.15em;text-shadow:0 2px 3px #0009;font-size:clamp(.65rem,1.6vw,1.25rem);font-weight:900}.playing-surface{background-color:var(--field);background-image:linear-gradient(90deg, transparent 49.75%, #ffffffed 49.75% 50.25%, transparent 50.25%), repeating-linear-gradient(90deg, transparent 0 9.72%, var(--line) 9.72% 10%, transparent 10% 20%), repeating-linear-gradient(90deg, transparent 0 4.92%, #ffffff5c 4.92% 5.08%, transparent 5.08% 10%), repeating-linear-gradient(90deg, #176b3a 0 10%, #1b7540 10% 20%);border-block:3px solid #fff;position:relative;overflow:hidden;box-shadow:inset 0 12px 24px #093f2245,inset 0 -12px 24px #093f2245}.playing-surface:after{z-index:1;pointer-events:none;content:"";opacity:.16;mix-blend-mode:soft-light;background-image:repeating-linear-gradient(0deg,#fff0 0 2px,#fff 2px 3px,#0000 3px 7px);position:absolute;inset:0}.field-markings{z-index:1;pointer-events:none;position:absolute;inset:0}.hash-marks{background:repeating-linear-gradient(90deg,#0000 0 1.85%,#ffffffe0 1.85% 2.15%,#0000 2.15% 5%);height:8%;position:absolute;left:0;right:0}.hash-marks-top{border-top:2px solid #ffffffbf;top:31%}.hash-marks-bottom{border-bottom:2px solid #ffffffbf;bottom:31%}.yard-number-pair{width:0;position:absolute;top:0;bottom:0}.yard-number{color:#ffffffe8;letter-spacing:-.08em;text-shadow:0 1px 1px #0a3c21;font:900 clamp(.65rem,2vw,1.7rem)/1 Arial Narrow,Impact,sans-serif;position:absolute;left:0;transform:translate(-50%)}.yard-number-top{top:8%;transform:translate(-50%)rotate(180deg)}.yard-number-bottom{bottom:8%}.line{z-index:2;width:4px;position:absolute;top:0;bottom:0;transform:translate(-50%)}.line-scrimmage{background:#2f8df5;box-shadow:0 0 8px #2f8df5}.first-down-line{background:#ffd43b;box-shadow:0 0 8px #ffd43b}.ball-marker{z-index:4;color:#fff;background:#6e371e;border-radius:3px;padding:3px 5px;font:700 .55rem monospace;transition:left .5s;position:absolute;top:47%;transform:translate(-50%,-50%)}.player-token{z-index:3;aspect-ratio:1;color:#fff;background:#163f7c;border:2px solid #fff;border-radius:50%;place-items:center;width:clamp(18px,2.2vw,30px);font:900 clamp(.65rem,1.2vw,1rem) monospace;transition:left .5s,top .5s;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 4px #0009}.game-panel{grid-template-columns:330px minmax(380px,1fr) 330px;gap:18px;margin-top:18px;padding:18px}.game-panel:not(.hidden){display:grid}.hidden{display:none}.game-controls{justify-content:flex-end;align-items:center;gap:10px;margin-top:18px;display:flex;position:relative}.game-controls .secondary-button,.game-controls .timeout-button,.game-controls .no-huddle-button{margin:0}.game-menu{position:static}.game-menu>summary,.game-menu-content>details>summary{cursor:pointer;letter-spacing:.08em;text-transform:uppercase;font-weight:900;list-style:none}.game-menu>summary{color:#171306;background:var(--gold);border:1px solid #567063;border-radius:6px;width:max-content;padding:10px 16px;box-shadow:0 4px #9d7720}.game-menu>summary::-webkit-details-marker{display:none}.game-menu-content summary::-webkit-details-marker{display:none}.game-menu-content{z-index:10;background:#0a1712f7;border:1px solid #496256;border-radius:10px;width:min(1500px,100vw - 36px);max-height:82vh;padding:18px;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 18px 44px #000d}.game-menu-content>details>summary{color:var(--gold);border-bottom:1px solid #355243;padding:11px 12px}.stats-panel{padding:14px 6px 18px}.stats-panel>h2{letter-spacing:.12em;text-align:center;text-transform:uppercase;margin:0 0 13px;font:800 1rem Georgia,serif}.player-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.player-stats-team{background:#0b1813b8;border-radius:8px;min-width:0;padding:16px}.player-stats-team h3{letter-spacing:.08em;text-transform:uppercase;border-bottom:3px solid;margin:0 0 7px;padding-bottom:8px;font-size:.78rem}.player-stats-team h3 span{margin-right:6px;font-size:1rem}.stat-category{margin-top:13px;overflow-x:auto}.stat-category h4{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:.68rem}.stat-table{min-width:440px;font-family:Courier New,monospace}.stat-table-head,.stat-table-row{grid-template-columns:minmax(145px, 1.8fr) repeat(var(--stat-columns), minmax(42px, .6fr));align-items:center;display:grid}.stat-table-head{color:#82958b;letter-spacing:.05em;text-align:center;background:#10221a;padding:5px 4px;font-size:.6rem}.stat-table-head span:first-child{text-align:left}.stat-table-row{text-align:center;border-bottom:1px solid #294036;min-height:35px;padding:5px 4px;font-size:.72rem}.stat-table-row strong{text-align:left;align-items:baseline;gap:6px;font-family:inherit;display:flex}.stat-table-row small{color:var(--gold);font-size:.58rem}.no-player-stats{color:#82958b;margin:12px 3px 4px;font-size:.78rem;font-style:italic}.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding:14px 6px;display:grid}.roster-team{background:#0b1813b8;border-radius:8px;padding:12px}.roster-team h3{text-transform:uppercase;border-bottom:3px solid;margin:0 0 8px;padding-bottom:8px;font-size:.8rem}.roster-row{color:#b9c9c1;border-bottom:1px solid #294036;justify-content:space-between;padding:7px 3px;font-size:.78rem;display:flex}.roster-row span>strong{min-width:34px;color:var(--gold);display:inline-block}.roster-row small{color:#71867b;margin-left:7px;font-size:.6rem}.team-card,.play-caller,.game-log-panel{background:#0b1813b8;border-radius:8px;padding:16px}.team-card h2,.game-log-panel h2{text-transform:uppercase;margin-top:0;font-family:Georgia,serif}.matchup-card h2{border-bottom:3px solid var(--gold);padding-bottom:8px;font-size:.92rem;line-height:1.3}.matchup-card h2 small{color:#8ea399;text-transform:none;font-size:.72rem}.matchup-team{color:var(--gold)}.matchup-chip{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin:10px 0 4px;padding:4px 9px;font-size:.62rem;font-weight:800;display:inline-block}.matchup-chip.you-ball{color:#0c1a12;background:var(--gold)}.matchup-chip.cpu-ball{color:#f0b9ad;border:1px solid #8a3b32}.matchup-rows{gap:12px;margin-top:12px;display:grid}.matchup-row{grid-template-columns:42px 1fr 38px;align-items:center;gap:8px;display:grid}.matchup-label{color:#9eafa6;letter-spacing:.08em;font-size:.7rem;font-weight:800}.matchup-vs{grid-template-columns:1fr auto auto auto 1fr;align-items:center;gap:6px;display:grid}.matchup-vs b{font-family:Courier New,monospace;font-size:.78rem}.matchup-vs i{color:#6f8278;font-size:.58rem;font-style:normal}.matchup-bar{background:#31433a;border-radius:9px;height:6px;overflow:hidden}.matchup-bar span{height:100%;display:block}.matchup-bar.off span{background:var(--gold)}.matchup-bar.off{transform:scaleX(-1)}.matchup-bar.def span{background:#c7704f}.matchup-edge{text-align:right;font-family:Courier New,monospace;font-size:.78rem;font-weight:800}.matchup-edge.good{color:#6ee7a0}.matchup-edge.bad{color:#ff8c7a}.matchup-hint{color:#7e9189;margin:12px 0 0;font-size:.62rem;font-style:italic}.team-stats-panel{padding:14px 8px;font-family:Courier New,monospace}.team-stats-head{border-bottom:2px solid #355243;grid-template-columns:1fr 2fr 1fr;align-items:center;margin-bottom:6px;padding-bottom:9px;font-weight:800;display:grid}.team-stats-head span:first-child{text-align:left;font-size:1.05rem}.team-stats-head span:last-child{text-align:right;font-size:1.05rem}.team-stats-head span:nth-child(2){color:var(--gold);letter-spacing:.12em;text-align:center;text-transform:uppercase;font-size:.7rem}.team-stats-row{border-bottom:1px solid #233a30;grid-template-columns:1fr 2fr 1fr;align-items:center;padding:7px 2px;font-size:.82rem;display:grid}.team-stats-row strong{color:var(--ink)}.team-stats-row strong:first-child{text-align:left}.team-stats-row strong:last-child{text-align:right}.team-stats-row span{color:#8ea399;text-align:center;letter-spacing:.04em;font-size:.7rem}.team-card h3{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;font-size:.75rem}.ratings{gap:9px;display:grid}.rating-row{grid-template-columns:50px 1fr 24px;align-items:center;gap:7px;font-size:.72rem;display:grid}.rating-bar{background:#31433a;border-radius:9px;height:6px;overflow:hidden}.rating-bar span{background:var(--gold);height:100%;display:block}.player-list{color:#c1cec7;gap:6px;font-size:.78rem;display:grid}.player-list span{justify-content:space-between;display:flex}.situation{border-left:4px solid var(--gold);background:#1b3027;justify-content:space-between;margin-bottom:14px;padding:10px;display:flex}.situation span{color:#9eafa6}.play-tabs{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.play-tab{color:#9eafa6;letter-spacing:.06em;text-transform:uppercase;background:#122219;border:1px solid #496256;border-radius:999px;align-items:center;gap:6px;padding:7px 11px;font-size:.66rem;font-weight:800;display:inline-flex}.play-tab:hover{color:#d6e2db;border-color:#6f8c7d}.play-tab.active{border-color:var(--gold);color:#171306;background:var(--gold)}.play-tab-count{min-width:16px;height:16px;color:inherit;background:#0006;border-radius:999px;place-items:center;padding:0 4px;font-size:.58rem;display:inline-grid}.play-tab.active .play-tab-count{background:#00000026}.play-options{scrollbar-color:#60766b #102019;max-height:420px;margin-bottom:14px;padding-right:5px;overflow-y:auto}.run-direction{align-items:center;gap:6px;margin-bottom:12px;display:flex}.run-direction>span{color:#9eafa6;letter-spacing:.06em;text-transform:uppercase;font-size:.64rem;font-weight:800}.direction-option{color:#c2d2c8;background:#122219;border:1px solid #496256;border-radius:8px;flex:1;padding:8px 6px;font-size:.72rem;font-weight:700}.direction-option:hover{border-color:#6f8c7d}.direction-option.active{border-color:var(--gold);color:#171306;background:var(--gold)}.play-group-grid{grid-template-columns:repeat(2,1fr);gap:9px;display:grid}.play-option{color:#e2e9e5;text-align:left;background:#15281f;border:1px solid #496256;border-radius:6px;min-height:58px;padding:8px}.play-option strong,.play-option small{display:block}.play-option small{color:#91a69b;margin-top:4px}.play-option.selected{border-color:var(--gold);color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);background:#26391d}.play-option.clock-play{background:#211b33;border-color:#6f5aa0}.play-option.clock-play.selected{color:#d8caff;border-color:#b59bff;box-shadow:inset 0 0 0 1px #b59bff}.play-caller>button{margin-right:8px}.timeout-button.armed,.no-huddle-button.armed{color:#171306;background:var(--gold);border-color:var(--gold);box-shadow:0 4px #9d7720}.timeout-button:disabled,.no-huddle-button:disabled{cursor:not-allowed;opacity:.4}.conversion-situation{border-left-color:#ff634f}.conversion-choices{gap:10px;margin-bottom:14px;display:grid}.conversion-option{min-height:60px}.conversion-option:hover{border-color:var(--gold)}.game-log-panel{min-height:260px}.game-log{color:#aebeb6;max-height:265px;margin:0;padding-left:28px;font-size:.8rem;overflow-y:auto}.game-log li{border-bottom:1px solid #263a30;padding:6px 2px}.game-log li:first-child{color:#fff;font-weight:700}@media (width<=980px){.setup-panel{grid-template-columns:1fr}.game-panel{grid-template-columns:1fr 1fr}.game-log-panel{grid-column:1/-1}.player-stats-grid,.roster-grid{grid-template-columns:1fr}}@media (width<=640px){.game-shell{padding:8px}.scoreboard{padding-inline:8px}.game-clock{padding-inline:10px}.team-pickers{flex-direction:column;align-items:stretch}.versus{text-align:center;padding:0}select{width:100%}.field{height:250px}.game-panel{grid-template-columns:1fr}.game-log-panel{grid-column:auto}.stats-panel{padding-inline:10px}}.setup-error{font-weight:700;color:#ff9b8c!important}.season-chip{color:#aebeb6;letter-spacing:.08em;text-transform:uppercase;border:1px solid #567063;border-radius:999px;margin:-8px 0 14px;padding:4px 7px;font-size:.65rem;display:inline-block}.game-result{text-align:center;background:var(--panel);box-shadow:inset 0 0 0 2px var(--gold);border:1px solid #567063;border-radius:10px;flex-direction:column;align-items:center;gap:8px;margin-bottom:14px;padding:18px;display:flex}.game-result.loss{box-shadow:inset 0 0 0 2px #8a3b32}.game-result.tie{box-shadow:inset 0 0 0 2px #6a7a72}.game-result-eyebrow{color:var(--gold);letter-spacing:.18em;text-transform:uppercase;font-size:.7rem;font-weight:800}.game-result strong{font-size:1.5rem}.game-result-score{color:#aebeb6;letter-spacing:.06em;font-weight:700}.game-result .primary-button{margin-top:6px}.conversion-instructions{color:#aebeb6;margin:0 0 12px;font-size:.78rem}.conversion-playbook{max-height:360px}.runoff-prompt{color:var(--gold);letter-spacing:.06em;text-transform:uppercase;margin-right:auto;font-size:.72rem;font-weight:800}.formation-picker{background:#10221a;border:1px solid #355243;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;padding:10px;display:flex}.formation-picker div{gap:3px;display:grid}.formation-picker strong{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem}.formation-picker span{color:#8ea399;font-size:.65rem}.formation-picker select{min-width:165px;padding:7px;font-size:.72rem}.player-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:14px;display:grid}.mini-player-card{background:linear-gradient(145deg,#1b342a,#0c1b15);border:1px solid #3d574a;border-radius:6px;gap:3px;min-width:0;padding:8px;display:grid}.mini-player-card>span{color:var(--gold);letter-spacing:.08em;font-size:.58rem;font-weight:800}.mini-player-card>strong{text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.mini-player-card>b{font:800 1.05rem/1 Courier New,monospace}.mini-player-card>b small,.mini-player-card>small{color:#879a90;font-size:.55rem;font-weight:400}.mini-player-card meter{width:100%;height:6px}.mini-player-card select{width:100%;min-width:0;padding:4px;font-size:.58rem}.scouting-strip{background:#241b17;border-left:3px solid #c7704f;gap:4px;margin-top:10px;padding:9px;display:grid}.scouting-strip strong{color:#e9a38a;letter-spacing:.08em;text-transform:uppercase;font-size:.62rem}.scouting-strip span{color:#bda69d;font-size:.64rem}.injury-strip{background:#211618;border-left:3px solid #c8102e;gap:4px;margin-top:8px;padding:9px;display:grid}.injury-strip>strong{color:#f0918a;letter-spacing:.08em;text-transform:uppercase;font-size:.62rem}.injury-strip-empty{color:#8aa092;font-size:.64rem}.injury-strip-list{gap:3px;display:grid}.injury-strip-row{color:#c7d6cc;align-items:center;gap:5px;font-size:.64rem;display:flex}.injury-strip-row i{color:var(--gold);font-style:normal;font-weight:800}.injury-strip-row b{text-transform:uppercase;margin-left:auto;font-size:.58rem;font-weight:800}.injury-strip-row b.out{color:#ff6b5e}.injury-strip-row b.dinged{color:#d9a23a}@media (width<=1180px){.game-panel{grid-template-columns:300px minmax(360px,1fr)}.game-log-panel{grid-column:1/-1}}@media (width<=720px){.formation-picker{flex-direction:column;align-items:stretch}.formation-picker select{width:100%}.player-card-grid{grid-template-columns:1fr 1fr}.scoring-row,.drive-row{font-size:.66rem}}.weather-bar{background:#0c1712cc;border:1px solid #3a4f44;border-radius:999px;justify-content:center;align-items:center;gap:10px;width:min(720px,100%);margin:-8px auto 18px;padding:7px 16px;font-size:.74rem;display:flex}.weather-bar strong{color:var(--ink);letter-spacing:.04em}.weather-bar .weather-icon{font-size:1.05rem;line-height:1}.weather-bar .weather-detail{color:#9fb3a7}.weather-wind{border-color:#5a6f8a;box-shadow:inset 0 0 0 1px #5a6f8a44}.weather-rain,.weather-storm{border-color:#3f6f86;box-shadow:inset 0 0 0 1px #3f6f8644}.weather-snow{border-color:#8fa6b8;box-shadow:inset 0 0 0 1px #8fa6b855}.weather-fog{border-color:#6b7a72}.weather-dome{border-color:var(--gold);box-shadow:inset 0 0 0 1px #f2c14e33}.drive-chip{letter-spacing:.04em;background:#122019;border:1px solid #496256;border-radius:999px;margin-right:auto;padding:5px 11px;font-size:.68rem;font-weight:700}.drive-chip b{font-weight:900}.empty-note{color:#8ea399;padding:10px 2px;font-style:italic}.scoring-summary,.drive-chart{flex-direction:column;gap:4px;padding:8px 0;display:flex}.scoring-quarter{flex-direction:column;gap:4px;display:flex}.scoring-quarter+.scoring-quarter{margin-top:10px}.scoring-quarter-head{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin:0 0 2px;font-size:.66rem;font-weight:800}.scoring-row{background:#122019;border-radius:6px;grid-template-columns:56px 42px 1fr auto;align-items:center;gap:10px;padding:7px 10px;font-size:.74rem;display:grid}.scoring-when{color:#9fb3a7;font-variant-numeric:tabular-nums;align-self:start}.scoring-team{align-self:start;font-weight:900}.scoring-play{flex-direction:column;gap:1px;min-width:0;display:flex}.scoring-label{color:var(--ink)}.scoring-detail{color:#8ea399;font-size:.66rem}.scoring-score{color:var(--gold);font-variant-numeric:tabular-nums;text-align:right;align-self:start;font-weight:800}.drive-row{background:#122019;border-left:3px solid #496256;border-radius:4px;grid-template-columns:46px 110px 1fr auto;align-items:center;gap:10px;padding:7px 10px;font-size:.74rem;display:grid}.drive-team{border-bottom:2px solid;justify-self:start;padding-bottom:1px;font-weight:900}.drive-result{letter-spacing:.03em;font-weight:700}.drive-detail{color:#b6c7bd}.drive-start{color:#8ea399;font-variant-numeric:tabular-nums}.drive-row.drive-score{border-left-color:var(--gold)}.drive-row.drive-score .drive-result{color:var(--gold)}.drive-row.drive-turnover{border-left-color:#c0584b}.drive-row.drive-turnover .drive-result{color:#e7958a}.drive-row.drive-live{opacity:.9;border-style:dashed;border-left-color:#3f8f86}.drive-row.drive-live .drive-result{color:#6fd0c5}.setup-actions{gap:9px;min-width:170px;display:grid}.setup-actions .secondary-button{margin:0}.result-scoring{text-align:left;border-top:1px solid #ffffff1a;width:100%;margin-top:14px;padding-top:12px}.result-scoring h3{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;text-align:center;margin-bottom:8px;font-size:.72rem}.result-actions{gap:10px;margin-top:6px;display:flex}.result-actions .primary-button{margin:0}.share-status{color:#9fb3a7}.season-dashboard{background:linear-gradient(145deg,#183127f2,#0c1b15f2);border:1px solid #355243;border-radius:12px;margin-bottom:18px;padding:24px;box-shadow:0 18px 42px #0007}.season-head{justify-content:space-between;align-items:start;gap:20px;display:flex}.season-head h1{margin:2px 0 5px;font-family:Georgia,serif}.season-head>div>strong{color:var(--gold);font:900 1.35rem Courier New,monospace}.season-next{border-left:4px solid var(--gold);background:#10221a;border-radius:5px;grid-template-columns:1fr 1.4fr auto;align-items:center;gap:16px;margin:20px 0;padding:16px;display:grid}.season-next span{color:#9fb3a7;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.season-next strong{font-size:1.2rem}.season-grid{grid-template-columns:1.5fr 1fr;gap:22px;display:grid}.season-grid h2{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem}.season-schedule,.season-standings{gap:4px;display:grid}.season-schedule>div,.season-standings>div{background:#102019;border-left:3px solid #0000;border-radius:4px;align-items:center;min-height:34px;padding:6px 9px;font-size:.74rem;display:grid}.season-schedule>div{grid-template-columns:42px 1fr 75px 70px}.season-standings>div{grid-template-columns:30px 1fr 65px 50px}.season-schedule>div.current,.season-standings>div.user-team{border-left-color:var(--gold);background:#26391d}.season-schedule span:nth-child(3),.season-standings span{color:#91a69b}.season-schedule strong,.season-standings span:last-child{text-align:right}.field-wrap{position:relative}.event-flash-layer{z-index:8;pointer-events:none;border-radius:14px;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.event-flash{border-block:4px solid var(--flash-color,#1c7540);width:100%;box-shadow:0 0 50px var(--flash-color,#1c7540), inset 0 0 40px #000a;text-align:center;background:#06120bdd;justify-items:center;gap:4px;padding:clamp(10px,3vw,30px) 16px;animation:5s forwards event-flash;display:grid}.event-flash strong{color:#fff;letter-spacing:.05em;text-shadow:0 3px 10px #000;font:900 clamp(1.6rem,6vw,4rem)/1 Arial Narrow,Impact,sans-serif}.event-flash span{color:var(--flash-color,#ffd43b);letter-spacing:.12em;text-transform:uppercase;font-size:clamp(.8rem,2vw,1.2rem);font-weight:800}.event-flash.td{--flash-color:#2bd46a}.event-flash.fg{--flash-color:#2f8df5}.event-flash.safety{--flash-color:#c8102e}.event-flash.turnover{--flash-color:#ff7a1a}.event-flash.penalty{--flash-color:#f6cf1c}@keyframes event-flash{0%{opacity:0;transform:scale(.7)}7%{opacity:1;transform:scale(1.04)}12%{transform:scale(1)}86%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05)}}@media (prefers-reduced-motion:reduce){.event-flash{animation:none}}.setup-prompt{color:#c2d2c8;text-align:center;font-size:.9rem}.setup-actions-end{justify-content:flex-end;display:flex}.art-toggle{color:#9eafa6;cursor:pointer;align-items:center;gap:8px;margin-top:12px;font-size:.78rem;display:flex}.art-toggle input{width:15px;height:15px;accent-color:var(--gold)}.season-next-actions{justify-content:center;gap:8px;display:flex}.depth-chart{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;display:grid}.depth-position h4{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;font-size:.7rem}.depth-row{background:#102019;border-radius:4px;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;margin-bottom:3px;padding:5px 8px;font-size:.74rem;display:grid}.depth-row.starter{background:#26391d}.depth-row.injured{opacity:.55}.depth-row b{color:var(--gold)}.depth-row .depth-meta{color:#8aa092;text-align:right;min-width:30px;font-size:.66rem}.depth-tag{color:#c7d6cc;text-align:right;min-width:36px;font-size:.62rem;font-weight:800}.depth-start{border:1px solid var(--gold);color:var(--gold);cursor:pointer;background:0 0;border-radius:999px;padding:3px 9px;font-size:.62rem;font-weight:800}.depth-start:hover{background:var(--gold);color:#171306}.row-logo{object-fit:contain;vertical-align:-.25em;width:1.25em;height:1.25em;margin-right:1px}.season-schedule .row-logo,.season-standings .row-logo{vertical-align:-.22em}.playoff-game span{align-items:center;gap:3px;display:inline-flex}.week-results{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.week-result{cursor:pointer;text-align:left;font-size:.74rem;font:inherit;background:#102019;border:1px solid #0000;border-left-width:3px;border-radius:4px;grid-template-columns:1fr auto;gap:1px 8px;padding:7px 10px;display:grid}.week-result:hover{border-color:#496256}.week-result.user{border-left-color:var(--gold);background:#26391d}.season-stats-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.season-stats-head h2{margin:0}.season-stats-head select{padding:5px 8px}.box-overlay{z-index:50;background:#000a;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.box-modal{background:#0d1712;border:1px solid #48564f;border-radius:12px;width:min(900px,96vw);max-height:88vh;padding:18px;overflow-y:auto;box-shadow:0 20px 50px #000c}.box-modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.box-modal-head strong{font-size:1.05rem}.box-scoring{margin-bottom:16px}.box-scoring h4{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:.7rem}.box-scoring-row{background:#102019;border-radius:4px;grid-template-columns:62px 64px 40px 1fr;align-items:center;gap:8px;margin-bottom:3px;padding:4px 8px;font-size:.74rem;display:grid}.box-scoring-time{color:#91a69b;font-variant-numeric:tabular-nums}.box-scoring-row span:nth-child(2){color:#c7d6cc;align-items:center;gap:4px;display:inline-flex}.box-scoring-row strong{color:var(--gold);font-size:.64rem}.box-scoring-row span:last-child{color:#8aa092}.box-modal-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=720px){.box-modal-grid{grid-template-columns:1fr}}.week-result span{color:#8aa092;align-items:center;gap:4px;display:inline-flex}.week-result span.win{color:#fff;font-weight:800}.week-result b{text-align:right;color:#c7d6cc}.injury-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;display:grid}.injury-list>div{background:#102019;border-left:3px solid #c8102e;border-radius:4px;grid-template-columns:56px 1fr auto;align-items:center;gap:8px;padding:6px 10px;font-size:.74rem;display:grid}.injury-list>div.user-team{background:#26391d}.injury-list>div>span:first-child{color:#c7d6cc;align-items:center;gap:4px;font-weight:700;display:inline-flex}.injury-list>div>span:last-child{color:#d9a23a;text-align:right}.injury-list .injury-season{color:#ff6b5e;font-weight:800}.standings-wrap{margin-top:22px}.standings-wrap h2{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;font-size:.75rem}.conference-standings{grid-template-columns:1fr 1fr;gap:22px;display:grid}.conference-block>h3{color:#fff;letter-spacing:.05em;border-bottom:1px solid #fff2;margin-bottom:8px;padding-bottom:4px;font-size:.9rem}.division-block{margin-bottom:12px}.division-block h4{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-size:.64rem}.division-block .season-standings>div{grid-template-columns:22px 1fr 65px 50px}.division-block .season-standings span:first-child{color:var(--gold);text-align:center}@media (width<=760px){.conference-standings{grid-template-columns:1fr}}.leaders-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.leaders-head h2{margin:0}.leaders-head select{max-width:55%;padding:5px 8px}.leader-board{gap:4px;display:grid}.leader-board>div{background:#102019;border-left:3px solid #0000;border-radius:4px;grid-template-columns:22px 1fr auto auto;align-items:center;gap:8px;min-height:32px;padding:5px 9px;font-size:.74rem;display:grid}.leader-board>div.user-team{border-left-color:var(--gold);background:#26391d}.leader-board>div>span:first-child{color:var(--gold);text-align:center;font-weight:800}.leader-board strong{align-items:center;gap:4px;min-width:0;display:inline-flex}.leader-board>div>span:nth-child(3){color:#91a69b}.leader-board>div>span:last-child{color:#c7d6cc;text-align:right;font-weight:700}.season-leaders{gap:4px;margin-bottom:18px;display:grid}.season-leaders>div{border-left:3px solid var(--gold);background:#102019;border-radius:4px;grid-template-columns:78px 1fr auto;align-items:center;min-height:34px;padding:6px 9px;font-size:.74rem;display:grid}.season-leaders span:first-child{color:var(--gold);font-weight:700}.season-leaders span:last-child{color:#91a69b;text-align:right}.playoff-bracket{margin-bottom:20px}.playoff-bracket h2{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;font-size:.75rem}.playoff-rounds{grid-auto-columns:minmax(150px,1fr);grid-auto-flow:column;gap:14px;display:grid;overflow-x:auto}.playoff-round h3{color:#c7d6cc;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:.66rem}.playoff-round{align-content:start;gap:8px;display:grid}.playoff-game{background:#102019;border-left:3px solid #0000;border-radius:4px;grid-template-columns:1fr 28px;gap:2px 6px;padding:7px 9px;font-size:.74rem;display:grid}.playoff-game.user{border-left-color:var(--gold);background:#26391d}.playoff-game.clickable{cursor:pointer;width:100%;font:inherit;text-align:left;border:1px solid #0000;border-left-width:3px}.playoff-game.clickable:hover{border-color:#496256}.playoff-game.clickable.user{border-left-color:var(--gold)}.playoff-game span{color:#8aa092}.playoff-game span.win{color:#fff;font-weight:800}.playoff-game b{text-align:right;color:#c7d6cc;font-weight:700}@media (width<=760px){.playoff-rounds{grid-auto-columns:auto;grid-auto-flow:row}.setup-actions,.season-grid,.season-next{grid-template-columns:1fr}.season-next .primary-button{width:100%}.result-actions{flex-direction:column;width:100%}.season-dashboard{padding:15px}}body{background:radial-gradient(circle at 50% -10%,#315442 0,#13271e 26%,#0000 52%),linear-gradient(135deg,#050c09,#09150f 48%,#050b08)}.scoreboard{background:linear-gradient(#111713 0 10%,#030504 10% 90%,#0d120f 90%);border-color:#56625c;border-radius:11px;padding-block:13px;position:relative;overflow:hidden;box-shadow:0 13px 30px #000c,inset 0 0 0 1px #ffffff0c,inset 0 -5px 12px #000}.scoreboard:before{pointer-events:none;content:"";opacity:.3;background:repeating-linear-gradient(0deg,#0000 0 3px,#ffffff08 3px 4px);position:absolute;inset:0}.home-score{border-left:4px solid var(--home-color);padding-left:12px}.away-score{border-right:4px solid var(--away-color);padding-right:12px}.team-score{min-height:48px;transition:filter .18s;position:relative}.scoreboard.live .team-score:not(.possession){filter:saturate(.65)brightness(.8)}.team-score.possession:after{content:"";background:linear-gradient(90deg, transparent, var(--gold), transparent);height:2px;box-shadow:0 0 8px var(--gold);position:absolute;bottom:-7px;left:0;right:0}.team-score strong{text-shadow:0 0 8px #f2c14e80}.game-clock strong{text-shadow:0 0 9px #ff634faa}.setup-panel,.game-panel,.season-dashboard{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 22px 50px #0009,inset 0 1px #ffffff0b}.team-card,.play-caller,.game-log-panel{background:linear-gradient(145deg,#10241bd9,#08130ed9);border:1px solid #355044;box-shadow:inset 0 1px #ffffff0a,0 8px 20px #0005}.stadium{background:#050907;border-color:#5d6963;position:relative;box-shadow:0 24px 55px #000d,0 0 0 1px #ffffff0a,inset 0 0 35px #000}.stands{background:linear-gradient(#060a08aa,#0000 55%,#0009),repeating-linear-gradient(90deg,#27312d 0 3px,#111713 3px 8px,#725334 8px 10px,#111713 10px 15px);justify-content:space-around;align-items:center;height:52px;display:flex;position:relative;overflow:hidden}.stands:after{content:"";background:linear-gradient(90deg,#0000,#f6f1cf88 15% 85%,#0000);height:2px;position:absolute;bottom:4px;left:0;right:0}.stands i{z-index:1;background:#fffde2;border-radius:50%;width:clamp(35px,8vw,95px);height:7px;box-shadow:0 0 8px #fff,0 0 24px #fff7b8,0 8px 30px #fff5aa66}.stands-bottom i{box-shadow:0 0 8px #fff,0 0 20px #fff7b8,0 -8px 28px #fff5aa55}.field{border-block-color:#d9d6c4;box-shadow:inset 0 0 0 2px #8f8c7b,0 0 24px #000}.playing-surface{background-image:radial-gradient(ellipse at 50% 45%, #ffffff0d 0 12%, transparent 52%), linear-gradient(90deg, transparent 49.75%, #ffffffed 49.75% 50.25%, transparent 50.25%), repeating-linear-gradient(90deg, transparent 0 9.72%, var(--line) 9.72% 10%, transparent 10% 20%), repeating-linear-gradient(90deg, transparent 0 4.92%, #ffffff5c 4.92% 5.08%, transparent 5.08% 10%), repeating-linear-gradient(90deg, #166535 0 10%, #1c7540 10% 20%);box-shadow:inset 0 26px 40px #061e1055,inset 0 -26px 40px #061e1055}.playing-surface:before{z-index:1;pointer-events:none;content:"";background:linear-gradient(105deg,#ffffff0c,#0000 25% 68%,#00000016);position:absolute;inset:0}.midfield-logo{aspect-ratio:1;background:radial-gradient(circle at 50% 32%, var(--logo-accent,#2a7d4f), var(--logo-color,#0b542d) 72%);width:clamp(54px,8.5vw,96px);box-shadow:0 0 0 4px var(--logo-color,#0b542d), 0 0 0 7px #fff4, 0 6px 16px #0009;opacity:.93;border:3px solid #fffd;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.midfield-logo span{color:#fff;letter-spacing:.04em;text-shadow:0 2px 4px #000b;font:900 clamp(.72rem,1.6vw,1.35rem)/1 Arial Narrow,Impact,sans-serif}.midfield-logo img{object-fit:contain;filter:drop-shadow(0 2px 4px #000a);width:72%;height:72%;position:absolute;inset:14%}.goalpost{z-index:3;pointer-events:none;width:9px;height:clamp(40px,6.5vw,66px);position:absolute;top:50%;transform:translateY(-50%)}.goalpost-left{left:2px}.goalpost-right{right:2px}.goalpost b{background:#f6cf1c;width:2px;position:absolute;top:0;bottom:0;box-shadow:0 0 5px #f6cf1ccc}.goalpost b:first-child{left:0}.goalpost b:last-child{right:0}.goalpost i{background:#f6cf1c;height:2px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);box-shadow:0 0 5px #f6cf1ccc}.line{z-index:4;opacity:.95;width:3px;transition:left .5s}.players.play-0 .player-token.offense{animation:.65s cubic-bezier(.34,.71,.3,1) snap-a}.players.play-1 .player-token.offense{animation:.65s cubic-bezier(.34,.71,.3,1) snap-b}@keyframes snap-a{0%{transform:translate(-50%,-50%)scale(1)}32%{transform:translate(calc(6px - 50%),-50%)scale(1.09)}to{transform:translate(-50%,-50%)scale(1)}}@keyframes snap-b{0%{transform:translate(-50%,-50%)scale(1)}32%{transform:translate(calc(6px - 50%),-50%)scale(1.09)}to{transform:translate(-50%,-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.players .player-token.offense{animation:none}.player-token,.line,.ball-marker{transition:none}}.line-scrimmage{box-shadow:0 0 5px #2f8df5,0 0 14px #2f8df588}.first-down-line{box-shadow:0 0 5px #ffd43b,0 0 14px #ffd43b88}.ball-marker{z-index:7;background:linear-gradient(145deg,#a65a2f,#5d2815);border:1px solid #e2aa75;border-radius:50%;width:clamp(17px,1.8vw,25px);height:clamp(10px,1.05vw,15px);padding:0;transform:translate(-50%,-50%)rotate(-18deg);box-shadow:0 3px 5px #000b,inset 2px 2px 3px #fff2}.ball-marker i,.ball-marker i:before{content:"";background:#f5e2c7;position:absolute;top:50%;left:50%}.ball-marker i{width:42%;height:1px;transform:translate(-50%,-50%)}.ball-marker i:before{width:1px;height:7px;transform:translate(-50%,-50%);box-shadow:-3px 0 #f5e2c7,3px 0 #f5e2c7}.player-token{z-index:6;color:#fff;background:var(--offense-color);text-shadow:0 1px 2px #000;border:2px solid #f8f6eb;width:clamp(19px,2.25vw,31px);box-shadow:0 4px 7px #000a,inset 0 0 0 2px #ffffff20,inset 0 -5px 7px #0004}.player-token:after{content:"";filter:blur(2px);background:#0008;border-radius:50%;height:25%;position:absolute;bottom:-24%;left:18%;right:18%}.player-token b{font-size:clamp(.48rem,.8vw,.68rem)}.player-token.defense{background:var(--defense-color)}.end-zone:after{pointer-events:none;content:"";box-shadow:inset 0 0 28px #0007, inset 0 0 0 2px #ffffff1a, inset 0 0 0 6px var(--accent,#fff2);position:absolute;inset:0}.end-zone span{text-shadow:0 3px 5px #000c}.endzone-logo{z-index:1;aspect-ratio:1;object-fit:contain;opacity:.92;filter:drop-shadow(0 2px 3px #0009);width:70%;max-width:46px;position:absolute;top:6%}.primary-button,.secondary-button,.play-option,.play-tab{transition:transform .15s,filter .15s,border-color .15s}.primary-button:not(:disabled):hover,.secondary-button:hover,.play-option:hover{filter:brightness(1.12);transform:translateY(-1px)}@media (width<=640px){.stands{height:34px}.stands i{width:38px;height:5px}.scoreboard{padding-inline:6px}.team-score{gap:7px;font-size:.88rem}.team-score strong{font-size:1.55rem}.home-score{padding-left:6px}.away-score{padding-right:6px}}.game-panel-mobile{background:linear-gradient(145deg,#183127f2,#0c1b15f2);border:1px solid #355243;border-radius:12px;margin-top:14px;overflow:hidden;box-shadow:0 18px 42px #0007}.mobile-tabs{z-index:9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a1712f2;border-bottom:1px solid #355243;grid-template-columns:repeat(3,1fr);gap:4px;padding:6px;display:grid;position:sticky;top:0}.mobile-tab{color:#9eafa6;letter-spacing:.04em;text-transform:uppercase;background:#122219;border:1px solid #496256;border-radius:7px;min-height:44px;padding:8px;font-size:.8rem;font-weight:800}.mobile-tab.active{border-color:var(--gold);color:#171306;background:var(--gold)}.mobile-tab-panel{padding:12px}.mobile-tab-panel .team-card,.mobile-tab-panel .play-caller,.mobile-tab-panel .game-log-panel{box-shadow:none;background:0 0;border:0;padding:0}.game-shell.mobile{padding:8px 8px 28px}.game-shell.mobile .field{height:clamp(180px,30vh,340px)}.game-shell.mobile .game-controls{flex-wrap:wrap;justify-content:center;gap:8px}.game-shell.mobile .game-controls .secondary-button,.game-shell.mobile .game-menu>summary,.game-shell.mobile .timeout-button,.game-shell.mobile .no-huddle-button{min-height:44px}.game-shell.mobile .play-option{min-height:64px}.game-shell.mobile .play-tab{padding:9px 13px;font-size:.7rem}.game-shell.mobile .direction-option{padding:11px 6px}.game-shell.mobile .play-options{max-height:none}.game-shell.mobile .game-menu-content{width:auto;max-height:calc(100vh - 24px);padding:12px;position:fixed;inset:12px 8px auto}.key-hints{color:#7d938a;text-align:center;margin:2px 0 0;font-size:.66rem}.game-shell.mobile .key-hints{display:none}.season-archive>div{grid-template-columns:48px 1fr auto auto}.help-modal{width:min(760px,96vw)}.help-sections{gap:14px;display:grid}.help-section h4{color:var(--gold);letter-spacing:.6px;text-transform:uppercase;margin:0 0 6px;font-size:.8rem}.help-section ul{gap:5px;margin:0;padding-left:18px;display:grid}.help-section li{color:#cfdcd4;font-size:.8rem;line-height:1.45}.season-head-actions{gap:8px;display:flex}@media (hover:hover) and (pointer:fine){.player-token[data-player]:hover{z-index:9}.player-token[data-player]:hover:before{z-index:9;content:attr(data-player);color:#e9f2ec;white-space:nowrap;pointer-events:none;background:#0d1712f2;border:1px solid #48564f;border-radius:6px;padding:3px 8px;font:700 .66rem/1.25 Inter,ui-sans-serif,system-ui,sans-serif;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);box-shadow:0 6px 16px #000a}.player-token.tip-below[data-player]:hover:before{top:calc(100% + 7px);bottom:auto}}@keyframes snap-a-left{0%{transform:translate(-50%,-50%)scale(1)}32%{transform:translate(calc(-50% - 6px),-50%)scale(1.09)}to{transform:translate(-50%,-50%)scale(1)}}@keyframes snap-b-left{0%{transform:translate(-50%,-50%)scale(1)}32%{transform:translate(calc(-50% - 6px),-50%)scale(1.09)}to{transform:translate(-50%,-50%)scale(1)}}.players.attack-left.play-0 .player-token.offense{animation-name:snap-a-left}.players.attack-left.play-1 .player-token.offense{animation-name:snap-b-left}.ad-banner{color:#cfdcd4;background:#0e1b14;border:1px solid #2c4237;border-radius:9px;justify-content:center;align-items:center;gap:10px;min-height:34px;padding:6px 12px;font-size:.76rem;display:flex}.ad-banner strong{color:var(--gold)}.ad-banner .ad-line{color:#91a69b;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ad-tag{color:#7d938a;letter-spacing:1px;border:1px solid #48564f;border-radius:4px;padding:1px 5px;font-size:.58rem;font-weight:800}.ad-icon{font-size:1rem}.commercial-overlay{z-index:60;background:#000d;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.commercial-card{text-align:center;background:#0d1712;border:1px solid #48564f;border-radius:14px;justify-items:center;gap:8px;width:min(460px,92vw);padding:26px 22px;display:grid;box-shadow:0 20px 50px #000c}.commercial-eyebrow{color:#7d938a;letter-spacing:1px;text-transform:uppercase;font-size:.68rem;font-weight:800}.commercial-icon{font-size:3rem}.commercial-name{color:var(--gold);font-size:1.3rem}.commercial-line{color:#cfdcd4;font-size:.85rem}.commercial-footer{color:#91a69b;align-items:center;gap:12px;margin-top:8px;font-size:.75rem;display:flex}
