:root{font-family:PingFang SC,Microsoft YaHei,Arial,sans-serif;color:#151515;background:#f4efe4;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}h1,h2,h3,p{margin-top:0}.kicker{margin:0 0 8px;color:#ee3825;font-size:.72rem;font-weight:900;letter-spacing:.12em}.entry{position:relative;display:grid;min-height:100vh;padding:8vh clamp(20px,5vw,72px) 6vh;align-content:space-between;overflow:hidden;color:#fff;background:#ef3824 url(/MagicalAthleteOL/assets/rulebook-cover.jpg) center / cover no-repeat}.entry-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000024}.entry-brand,.join-dock{position:relative;z-index:1}.entry-brand .kicker{color:#fff}.entry-brand h1{max-width:780px;margin:0;font-family:Impact,Arial Black,sans-serif;font-size:clamp(3.4rem,9vw,8.8rem);line-height:.82;letter-spacing:0;text-shadow:5px 5px 0 #111}.join-dock{display:grid;width:min(920px,100%);padding:16px;grid-template-columns:1fr 1fr auto auto auto;gap:10px;align-items:end;color:#151515;border:5px solid #151515;border-radius:6px;background:#f8f3e8;box-shadow:8px 8px #151515}label{display:grid;gap:5px}label span{font-size:.72rem;font-weight:800}input{width:100%;min-height:48px;padding:0 13px;color:#151515;border:2px solid #151515;border-radius:3px;outline:none;background:#fff}input:focus{border-color:#287fc2;box-shadow:0 0 0 3px #287fc22e}.command{min-height:48px;padding:0 20px;border:3px solid #151515;border-radius:4px;font-weight:900;box-shadow:4px 4px #151515}.command:active:not(:disabled){transform:translate(3px,3px);box-shadow:1px 1px #151515}.primary{color:#fff;background:#ee3825}.secondary{color:#151515;background:#f2bd27}.command.big{min-width:260px;min-height:58px}.connection{padding:12px 8px;font-size:.75rem;font-weight:800;white-space:nowrap}.connection.connected{color:#218548}.connection.connecting{color:#bd7800}.error{grid-column:1 / -1;margin:2px 0 0;color:#c5291b;font-size:.8rem;font-weight:800}.table{min-height:100vh;padding-bottom:84px;background:#f4efe4}.topbar{position:sticky;z-index:10;top:0;display:grid;min-height:76px;padding:10px 24px;grid-template-columns:220px 1fr 180px;gap:20px;align-items:center;color:#fff;border-bottom:5px solid #151515;background:#ee3825}.wordmark{font-family:Impact,Arial Black,sans-serif;font-size:1.2rem}.race-progress{display:grid;max-width:620px;width:100%;margin:auto;grid-template-columns:repeat(4,1fr);gap:5px}.race-progress>div{display:grid;min-height:48px;padding:4px 8px;grid-template-columns:28px 1fr;align-items:center;border:2px solid rgba(255,255,255,.5)}.race-progress span{font-weight:900}.race-progress small{opacity:.75;font-size:.65rem}.race-progress .current{color:#151515;border-color:#151515;background:#f2bd27}.race-progress .done{background:#218548}.room-code{display:flex;gap:9px;align-items:center;justify-content:flex-end}.room-code small{opacity:.7}.room-code strong{font-size:1.15rem;letter-spacing:.08em}.status-dot{width:9px;height:9px;border:2px solid #151515;border-radius:50%;background:#999}.status-dot.connected{background:#58d177}.status-dot.connecting{background:#f2bd27}.stage{width:min(1340px,calc(100% - 40px));margin:0 auto;padding:36px 0}.stage-title{margin-bottom:28px;text-align:center}.stage-title.row{display:flex;text-align:left;justify-content:space-between;align-items:end}.stage-title h2,.race-heading h2{margin:0;font-family:Impact,Arial Black,sans-serif;font-size:2.3rem;line-height:1}.stage-title>p{color:#716b62}.lobby-stage{display:grid;min-height:calc(100vh - 160px);place-items:center;align-content:center;gap:34px}.lobby-players{display:grid;width:min(900px,100%);grid-template-columns:repeat(4,1fr);gap:12px}.seat{display:grid;min-height:150px;padding:16px;grid-template-columns:auto 1fr;gap:12px;align-content:center;border:4px solid #151515;border-radius:6px;box-shadow:6px 6px #151515;background:#fff}.seat>span{display:grid;width:38px;height:38px;grid-row:span 2;place-items:center;border:3px solid #151515;border-radius:50%;font-weight:900}.seat strong{font-size:1.1rem;overflow-wrap:anywhere}.seat small{color:#777}.seat-kick{grid-column:2;justify-self:start;min-height:30px;padding:0 12px;font-size:.72rem;font-weight:900;border:2px solid #151515;border-radius:3px;box-shadow:2px 2px #151515;background:#f2bd27}.seat-kick:active:not(:disabled){transform:translate(2px,2px);box-shadow:none}.seat.red>span{background:#ee3825}.seat.blue>span{background:#4a91d2}.seat.yellow>span{background:#f2bd27}.seat.green>span{background:#52ad5b}.seat.pink>span{background:#dd68a7}.seat.purple>span{background:#8e62bb}.seat.empty{color:#89847b;border-style:dashed;box-shadow:none;background:transparent}.seat.bot{background:#eef3f8}.seat-badge{margin-left:6px;padding:1px 6px;border:2px solid #151515;border-radius:999px;background:#287fc2;color:#fff;font-size:.62rem;font-style:normal;font-weight:900;vertical-align:middle}.lobby-actions{display:flex;justify-content:center}.variant-control{display:grid;grid-template-columns:1fr 1fr;border:3px solid #151515;border-radius:4px;overflow:hidden}.variant-control button{min-height:44px;padding:0 16px;border:0;background:#fff;font-weight:800}.variant-control button+button{border-left:3px solid #151515}.variant-control button.active{color:#fff;background:#287fc2}.rolloff-stage{display:grid;min-height:calc(100vh - 160px);place-items:center;align-content:center;gap:24px}.dice-table{display:flex;width:min(920px,100%);justify-content:center;flex-wrap:wrap;gap:16px}.roll-seat{display:grid;width:170px;min-height:210px;padding:20px 14px;place-items:center;gap:10px;border:4px solid #b7b0a4;border-radius:6px;background:#fff}.roll-seat.candidate{border-color:#151515;box-shadow:6px 6px #151515}.avatar{display:grid;width:58px;height:58px;place-items:center;color:#fff;border:3px solid #151515;border-radius:50%;background:#287fc2;font-size:1.4rem;font-weight:900}.roll-seat.red .avatar{background:#ee3825}.roll-seat.yellow .avatar{background:#d6a000}.roll-seat.green .avatar{background:#319447}.roll-seat.pink .avatar{background:#cf4e93}.roll-seat.purple .avatar{background:#794da8}.dice-pair{display:flex;gap:8px}.dice-pair span{display:grid;width:46px;height:46px;place-items:center;border:3px solid #151515;border-radius:5px;background:#f7f2e7;font-size:1.25rem;font-weight:900;box-shadow:3px 3px #151515}.dice-pair .waiting{color:#aaa;box-shadow:none}.dice-command{min-width:240px;min-height:62px;color:#fff;background:#287fc2;font-size:1rem}.dice-command>span{margin-right:10px;font-size:1.5rem}.draft-layout{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}.draft-pool,.my-team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.racer-card{position:relative;display:grid;width:100%;min-width:0;padding:8px;overflow:hidden;aspect-ratio:5 / 7;grid-template-rows:54% 36% 10%;text-align:center;color:#151515;border:4px solid #151515;border-radius:6px;background:#151515;box-shadow:5px 5px #151515;transition:transform .15s ease;isolation:isolate}.racer-card:not(:disabled):hover{transform:translateY(-5px)}.racer-card.selected{outline:6px solid #f2bd27;transform:translateY(-5px)}.racer-portrait{position:relative;display:block;min-height:0;overflow:hidden;border:3px solid var(--card-accent);border-radius:4px 4px 0 0;background:var(--card-accent);box-shadow:inset 0 0 0 2px #151515}.racer-portrait img{display:block;width:100%;height:100%;object-fit:cover}.racer-name{position:absolute;z-index:1;top:0;left:0;display:grid;width:100%;min-height:21%;padding:3px 8px;place-items:center;background:var(--card-accent);font-family:Impact,Arial Black,PingFang SC,sans-serif;font-size:clamp(.9rem,1.7vw,1.35rem);line-height:1;overflow-wrap:anywhere}.ability-panel{position:relative;z-index:2;display:grid;min-height:0;margin:-13px 5px 0;padding:18px 12px 8px;place-items:center;align-content:center;border:3px solid #151515;border-radius:48% 48% 10px 10px/22% 22% 10px 10px;background:#fff;font-size:clamp(.68rem,1vw,.84rem);font-weight:700;line-height:1.45;overflow-wrap:anywhere}.ability-panel:before{position:absolute;top:4px;right:4px;bottom:4px;left:4px;content:"";pointer-events:none;border:2px solid var(--card-accent);border-radius:inherit}.ability-title{z-index:1;display:grid;min-width:0;padding:2px 5px 0;place-items:center;color:#fff;font-size:clamp(.66rem,1vw,.8rem);line-height:1;overflow-wrap:anywhere}.racer-card.used{filter:grayscale(1)}.used-stamp{position:absolute;right:8px;top:22px;padding:4px 7px;color:#fff;border:2px solid #151515;background:#555;font-size:.68rem;font-weight:900;transform:rotate(5deg)}.racer-status{position:absolute;z-index:4;right:4px;top:4px;padding:4px 6px;color:#fff;border:2px solid #151515;border-radius:3px;background:#ee3825;font-size:.64rem;font-weight:900}.team-board{padding:20px;border:4px solid #151515;background:#f2bd27;box-shadow:6px 6px #151515}.team-board h3{margin-bottom:15px;font-family:Impact,Arial Black,sans-serif;font-size:1.5rem}.team-row{display:grid;min-height:60px;padding:10px 0;grid-template-columns:12px 70px 1fr auto;gap:8px;align-items:center;border-top:2px solid #151515}.team-row>div{display:flex;flex-wrap:wrap;gap:3px}.team-row>div span{display:grid;width:24px;height:24px;place-items:center;border:2px solid #151515;border-radius:50%;background:#fff;font-size:.65rem;font-weight:800}.team-row small{white-space:nowrap}.color-chip{display:inline-block;width:11px;height:28px;border:2px solid #151515;background:#287fc2}.color-chip.red{background:#ee3825}.color-chip.blue{background:#4a91d2}.color-chip.yellow{background:#f2bd27}.color-chip.green{background:#52ad5b}.color-chip.pink{background:#dd68a7}.color-chip.purple{background:#8e62bb}.selection-stage{min-height:calc(100vh - 120px)}.reward{display:flex;gap:8px}.reward span{padding:8px 12px;border:3px solid #151515;border-radius:3px;background:#f2bd27;font-weight:900;box-shadow:3px 3px #151515}.reward span+span{background:#e7e7e5}.selection-footer{position:sticky;bottom:14px;display:flex;width:min(920px,100%);margin:28px auto 0;padding:12px;justify-content:space-between;gap:16px;align-items:center;border:4px solid #151515;border-radius:5px;background:#fff;box-shadow:6px 6px #151515}.selection-footer>div{display:flex;flex-wrap:wrap;gap:8px}.selection-footer>div span{padding:5px 8px;color:#777;border:2px solid #bbb;font-size:.72rem;font-weight:800}.selection-footer>div span.locked{color:#176c36;border-color:#218548;background:#dff2e4}.race-heading{display:flex;margin-bottom:18px;justify-content:space-between;align-items:end}.track-wrap{overflow-x:auto;border-radius:8px;background:#171719;box-shadow:8px 8px #151515;scrollbar-color:#ee3825 #ded8cc}.track-wrap canvas{display:block;width:100%;min-width:980px;height:auto}.race-table-3d,.race-table-loading{position:relative;width:100%;max-width:100%;min-height:0;max-height:620px;aspect-ratio:10 / 3;overflow:hidden;border:4px solid #151515;border-radius:6px;background:#6e6b65;box-shadow:8px 8px #151515}.race-table-3d{touch-action:none;aspect-ratio:auto;max-height:none;background:#b5ac99}.race-table-viewport{position:relative;width:100%;aspect-ratio:10 / 3;max-height:620px}.board-preview-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:20px}.race-table-3d canvas{display:block;width:100%;height:100%;cursor:default}.race-table-3d.dice-enabled canvas{cursor:grab}.race-table-3d.dice-enabled canvas:active{cursor:grabbing}.race-table-loading{position:relative}.race-table-loading:after{position:absolute;inset:50% auto auto 50%;width:28px;height:28px;content:"";border:4px solid #777;border-top-color:#f2bd27;border-radius:50%;animation:table-loading .8s linear infinite}@keyframes table-loading{to{transform:rotate(360deg)}}.race-table-fallback{display:grid;min-height:360px;padding:24px;grid-template-columns:1fr auto auto;gap:18px;align-items:center;border:4px solid #151515;background:#287fc2;box-shadow:8px 8px #151515}.fallback-racers{display:grid;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fallback-racers>div{display:grid;min-width:0;padding:12px;border:3px solid #151515;background:#f7f2e7}.fallback-racers strong,.fallback-racers span{overflow-wrap:anywhere}.fallback-racers span{color:#716b62;font-size:.78rem;font-weight:800}.race-console{margin-top:26px}.score-strip{display:flex;flex-wrap:wrap;gap:8px}.score-strip>div{display:grid;min-width:130px;padding:8px 12px;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center;border:3px solid #151515;background:#fff}.score-strip .color-chip{grid-row:span 2}.score-strip small{color:#777}.score-strip .active{background:#f2bd27;box-shadow:4px 4px #151515}.table-dice-hud{display:flex;min-height:44px;padding:6px 12px;justify-content:flex-end;gap:14px;align-items:center;color:#f7f4e9;border-top:2px solid #151515;background:#242427}.table-dice-hud strong{font-size:.76rem}.dice-throw-button{min-width:72px;min-height:30px;padding:0 12px;pointer-events:auto;color:#151515;border:2px solid #151515;border-radius:3px;background:#f2bd27;font-size:.75rem;font-weight:900}.dice-throw-button:disabled{color:#aaa;background:#555}.fallback-die{display:grid;width:88px;height:88px;place-items:center;color:#151515;border:4px solid #151515;border-radius:14px;background:#f7f2e7;box-shadow:5px 5px #151515;font-size:2rem;font-weight:900}.fallback-die.landed{animation:fallback-roll .42s ease-out}@keyframes fallback-roll{0%{transform:rotate(160deg) scale(.72)}to{transform:rotate(0) scale(1)}}.race-roster{margin-top:34px;padding-top:22px;border-top:4px solid #151515}.race-roster-heading{display:flex;margin-bottom:14px;align-items:baseline;gap:12px}.race-roster-heading .kicker{margin:0}.race-roster-heading h3{margin:0;font-family:Impact,Arial Black,sans-serif;font-size:1.45rem}.race-roster-scroll{display:flex;padding:0 8px 12px 0;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-color:#151515 #ded8cc}.racer-owner{flex:0 0 auto;min-width:210px;padding:10px;border:3px solid #151515;border-radius:5px;background:#fff;scroll-snap-align:start}.racer-owner.active{background:#f2bd27;box-shadow:5px 5px #151515}.racer-owner>header{display:flex;min-height:34px;margin-bottom:8px;gap:8px;align-items:center}.racer-owner>header .color-chip{height:24px}.racer-owner>header small{margin-left:auto;padding:2px 5px;border:2px solid #151515;font-weight:900}.racer-owner>div{display:flex;gap:12px}.racer-card.compact{flex:0 0 180px;width:180px;box-shadow:3px 3px #151515}.racer-card.compact:hover{transform:none}.racer-card.compact .racer-name{font-size:.92rem}.racer-card.compact .ability-panel{padding:15px 9px 6px;font-size:.65rem;line-height:1.35}.racer-card.compact .ability-title{font-size:.66rem}.results-stage{display:grid;min-height:calc(100vh - 150px);align-content:center;place-items:center}.podium-list{display:grid;width:min(820px,100%);gap:10px}.podium-list>div{display:grid;min-height:78px;padding:12px 18px;grid-template-columns:44px 1fr 2fr auto;gap:14px;align-items:center;border:4px solid #151515;background:#fff;box-shadow:5px 5px #151515}.podium-list>div.leader{background:#f2bd27}.podium-list>div>span{font-family:Impact,Arial Black,sans-serif;font-size:1.6rem}.podium-list b{font-size:1.2rem;white-space:nowrap}.result-racers{display:flex;gap:5px;flex-wrap:wrap}.result-racers small{padding:4px 7px;border:2px solid #151515;background:#f4efe4;font-weight:800}.results-stage>.command{margin-top:28px}.event-feed{position:relative;z-index:8;display:grid;width:min(1340px,calc(100% - 40px));margin:16px auto;padding:10px 14px;border:3px solid #151515;border-radius:4px;background:#fff;box-shadow:4px 4px #151515}.event-feed.racing{position:static;width:min(1340px,calc(100% - 40px));max-height:170px;margin:24px auto 16px;overflow:hidden}.event-feed summary{display:flex;cursor:pointer;list-style:none;justify-content:space-between;gap:12px;align-items:center}.immersive-race .event-feed summary{cursor:grab;-webkit-user-select:none;user-select:none}.immersive-race .event-feed summary:active{cursor:grabbing}.event-feed summary::-webkit-details-marker{display:none}.event-feed summary:before{content:"▸";color:#ee3825;font-weight:900}.event-feed[open] summary:before{content:"▾"}.event-feed-count{min-width:20px;padding:2px 5px;border:2px solid #151515;background:#f2bd27;font-size:.65rem;font-weight:900;text-align:center}.event-feed-list{display:grid;max-height:118px;margin-top:8px;overflow-y:auto}.event-feed strong{font-size:.72rem;text-transform:uppercase}.event-feed span{color:#716b62;font-size:.72rem;line-height:1.5;overflow-wrap:anywhere}.event-feed-empty{color:#8a8479;font-style:italic}.toast{position:fixed;z-index:20;left:50%;bottom:24px;display:flex;max-width:calc(100% - 32px);padding:12px 14px;gap:16px;align-items:center;color:#fff;border:3px solid #151515;border-radius:4px;background:#c92e20;box-shadow:5px 5px #151515;font-weight:800;transform:translate(-50%)}.toast button{width:30px;height:30px;color:#fff;border:2px solid white;border-radius:50%;background:transparent;font-size:1.2rem}.ability-banner{position:fixed;z-index:18;top:92px;left:50%;width:min(680px,calc(100% - 32px));padding:13px 20px;color:#fff;border:4px solid #151515;border-radius:4px;background:#287fc2;box-shadow:5px 5px #151515;font-weight:900;text-align:center;transform:translate(-50%);animation:banner-in .18s ease-out}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-10px)}}.decision-backdrop{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;padding:20px;place-items:end center;pointer-events:none}.decision-dialog{display:grid;width:min(560px,100%);max-height:min(72dvh,620px);overflow-y:auto;padding:22px;gap:18px;border:5px solid #151515;border-radius:6px;background:#fffffff2;box-shadow:9px 9px #151515;pointer-events:auto}.decision-dialog header{display:flex;justify-content:space-between;gap:20px;align-items:start}.decision-dialog header small{color:#716b62;font-weight:800}.decision-dialog h2{margin:2px 0 0;font-family:Impact,Arial Black,sans-serif;font-size:1.8rem;letter-spacing:0}.decision-dialog header>strong{display:grid;min-width:54px;height:42px;padding:0 8px;place-items:center;color:#fff;border:3px solid #151515;background:#ee3825}.decision-dialog p{margin:0}.decision-roll{display:flex;min-height:52px;align-items:baseline;gap:10px;font-weight:900}.decision-roll strong{font-family:Impact,Arial Black,sans-serif;font-size:2rem}.decision-roll small{color:#716b62}.decision-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.decision-options .command{min-width:0;overflow-wrap:anywhere}.decision-dialog>small{color:#716b62;font-weight:800;text-align:center}.decision-backdrop.resolved{pointer-events:none}.decision-dialog header>strong.decision-result-badge{color:#151515;background:#f2bd27;font-size:.8rem}.decision-backdrop.resolved .command:disabled{opacity:.5}.decision-backdrop.resolved .command.decision-chosen{opacity:1;color:#fff;border-color:#151515;background:#287fc2;box-shadow:4px 4px #151515,0 0 0 4px #287fc244;animation:decision-chosen-pulse 1.2s ease-out 2}@keyframes decision-chosen-pulse{0%{box-shadow:4px 4px #151515,0 0 #287fc2cc}70%{box-shadow:4px 4px #151515,0 0 0 12px #287fc200}to{box-shadow:4px 4px #151515,0 0 0 4px #287fc244}}@media (max-width: 820px){.race-table-fallback{grid-template-columns:1fr auto}.fallback-racers{grid-column:1 / -1}}@media (prefers-reduced-motion: reduce){.fallback-die.landed,.ability-banner,.decision-backdrop.resolved .command.decision-chosen{animation:none}}@media (max-width: 980px){.topbar{grid-template-columns:1fr auto}.race-progress{grid-column:1 / -1;grid-row:2}.wordmark{font-size:1rem}.draft-layout{grid-template-columns:1fr}.team-board{order:-1}.draft-pool,.my-team{grid-template-columns:repeat(3,1fr)}.join-dock{grid-template-columns:1fr 1fr}.connection{display:none}}@media (max-width: 700px){.entry{padding:30px 16px}.entry-brand h1{font-size:3.5rem}.join-dock{grid-template-columns:1fr}.join-dock .command{width:100%}.topbar{padding:8px 12px}.room-code small,.race-progress small{display:none}.race-progress>div{grid-template-columns:1fr;place-items:center}.stage{width:calc(100vw - 24px);max-width:1340px;padding-top:26px}.stage-title h2,.race-heading h2{font-size:1.65rem}.lobby-players{grid-template-columns:repeat(2,1fr)}.seat{min-height:110px}.draft-pool,.my-team{grid-template-columns:repeat(2,minmax(0,1fr))}.stage-title.row,.selection-footer,.race-console{align-items:stretch;flex-direction:column;grid-template-columns:1fr}.selection-footer .command{width:100%}.podium-list>div{grid-template-columns:34px 1fr auto}.result-racers{grid-column:2 / -1;grid-row:2}.event-feed{display:none}.event-feed.racing{display:grid;width:calc(100% - 24px);max-width:1340px;margin-top:-54px}.decision-options{grid-template-columns:1fr}.race-table-3d{min-width:0;max-width:calc(100vw - 24px)}.race-table-viewport,.race-table-loading{min-height:240px;aspect-ratio:1.45 / 1}.race-table-fallback{grid-template-columns:1fr auto}}@media (max-width: 430px){.lobby-players{grid-template-columns:1fr}}.immersive-race{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;min-height:0;padding:0;overflow:hidden;background:#b5ac99}.immersive-race .race-stage{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;max-width:none;margin:0;padding:0}.immersive-race .race-table-3d,.immersive-race .race-table-loading{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:none;max-height:none;border:0;border-radius:0;aspect-ratio:auto;box-shadow:none}.immersive-race .race-table-viewport{width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto}.immersive-race .topbar{position:absolute;top:max(12px,env(safe-area-inset-top));left:16px;right:16px;min-height:44px;padding:8px 14px;grid-template-columns:1fr auto;border:1px solid #ffffff50;border-radius:12px;background:#242427df;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.immersive-race .race-progress{display:none}.immersive-race .race-heading{position:absolute;z-index:3;top:max(80px,calc(env(safe-area-inset-top) + 68px));left:24px;right:24px;pointer-events:none}.immersive-race .race-heading h2{font-size:clamp(1.4rem,3vw,2.2rem);text-shadow:0 1px 8px #fff9}.immersive-race .race-console{position:absolute;z-index:3;top:158px;left:24px;right:24px;margin:0;pointer-events:none}.immersive-race .score-strip{flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px;pointer-events:auto}.immersive-race .score-strip>div{min-width:max-content;padding:6px 10px;border-width:1px;border-radius:8px;background:#fffdf1d9;font-size:.75rem}.immersive-race .score-strip .active{background:#f2bd27;box-shadow:none}.immersive-race .table-dice-hud{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:50%;width:max-content;max-width:calc(100% - 32px);min-height:54px;padding:8px 12px 8px 18px;border:1px solid #ffffff40;border-radius:14px;background:#242427ee;transform:translate(-50%)}.immersive-race .dice-throw-button{min-height:40px}.camera-controls{position:absolute;top:12px;right:12px;display:flex;padding:4px;gap:4px;border-radius:10px;background:#242427e8}.camera-controls button,.race-details-toggle{min-height:40px;padding:8px 14px;color:#fff;border:0;border-radius:7px;background:transparent;font-size:.78rem;font-weight:800}.camera-controls button[aria-pressed=true]{color:#151515;background:#f2bd27}.immersive-race .camera-controls{top:auto;right:20px;bottom:max(96px,calc(env(safe-area-inset-bottom) + 72px))}.race-details-toggle{position:absolute;z-index:5;left:20px;bottom:max(96px,calc(env(safe-area-inset-bottom) + 72px));background:#242427e8}.immersive-race .race-roster{display:none;position:absolute;z-index:4;left:16px;right:16px;bottom:152px;max-height:min(56dvh,480px);overflow:auto;margin:0;padding:16px;border:1px solid #fff8;border-radius:14px;background:#f4efe4f5;box-shadow:0 12px 40px #0004}.immersive-race.race-details-open .race-roster{display:block}.immersive-race .ability-banner{top:220px;width:max-content;max-width:calc(100% - 32px);border-width:2px;border-radius:10px}.immersive-race .decision-backdrop{align-items:end;background:#15151520}.immersive-race .decision-dialog{max-height:65dvh;overflow-y:auto}.immersive-race .race-table-fallback{height:100%;padding:220px 20px 150px;overflow-y:auto}.immersive-race .board-preview-controls{position:absolute;z-index:4;top:145px;left:20px;right:20px;display:flex;flex-wrap:wrap;gap:6px}.immersive-race .board-preview-controls button{min-height:34px;padding:4px 10px;font-size:.7rem}@media (max-width: 700px){.immersive-race .topbar{left:10px;right:10px}.immersive-race .race-heading{left:16px;right:16px}.immersive-race .race-console{top:145px;left:16px;right:16px}.immersive-race .ability-banner{top:210px;font-size:.85rem}.immersive-race .reward{font-size:.8rem}}.immersive-race{--feed-w: min(380px, 88vw);--feed-shift: 0px}@media (orientation: landscape){.immersive-race{--feed-w: clamp(240px, 30vw, 420px)}}.immersive-race.feed-sidebar-open{--feed-shift: var(--feed-w)}@media (orientation: portrait){.immersive-race.feed-sidebar-open{--feed-shift: 0px}}.immersive-race .race-stage{right:var(--feed-shift);width:auto;transition:right .2s ease}.immersive-race .topbar{right:calc(16px + var(--feed-shift));transition:right .2s ease}.immersive-race.feed-sidebar-open .action-moment{left:calc(50% - var(--feed-shift) / 2)}.feed-toggle{display:flex;min-height:34px;padding:4px 10px;gap:6px;align-items:center;color:#fff;border:1px solid #ffffff40;border-radius:8px;background:#3a3a3f;font-size:.72rem;font-weight:800}.feed-toggle[aria-expanded=true]{color:#151515;background:#f2bd27}.race-feed{position:absolute;z-index:6;top:0;right:0;bottom:0;display:flex;flex-direction:column;width:var(--feed-w);max-width:100%;border-left:1px solid #15151533;background:#fffdf1f7;transform:translate(100%);visibility:hidden;transition:transform .2s ease,visibility .2s}.race-feed.open{transform:none;visibility:visible}.race-feed header{display:flex;padding:14px;gap:8px;align-items:center;border-bottom:3px solid #151515;background:#f2bd27}.race-feed header strong{font-size:.78rem;text-transform:uppercase}.race-feed-close{display:grid;width:30px;height:30px;margin-left:auto;place-items:center;border:2px solid #151515;border-radius:50%;background:#fffdf1;font-size:1rem;line-height:1}.race-feed .event-feed-list{flex:1;max-height:none;margin:0;padding:12px 14px calc(20px + env(safe-area-inset-bottom));gap:10px;align-content:start;overflow-y:auto}.race-feed .event-feed-list>span{padding-bottom:8px;border-bottom:1px dashed #1515151f;color:#2b2a27;font-size:.78rem}.race-feed .event-feed-list>span:last-child{padding-bottom:0;border-bottom:0}.race-feed .event-feed-list .event-feed-empty{color:#8a8479}.rolloff-rule{margin:0;color:#625b50;text-align:center;font-size:.85rem}.podium-celebration{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.finish-celebration{position:fixed;z-index:40;top:50%;left:50%;display:grid;min-width:min(360px,calc(100vw - 32px));padding:24px 32px;place-items:center;gap:5px;color:#151515;border:4px solid #151515;border-radius:10px;background:#fff2bbf2;box-shadow:8px 8px #151515;transform:translate(-50%,-50%);animation:finish-in 2.2s ease-out both;pointer-events:none}.finish-celebration>span{color:#ef3825;font-size:3.2rem;line-height:1}.finish-celebration strong{font-family:Impact,Arial Black,sans-serif;font-size:2rem;letter-spacing:0}.finish-celebration i{position:absolute;color:#287fc2;font-size:2rem;font-style:normal;animation:finish-spark 1.3s ease-out both}.finish-celebration i:nth-of-type(1){left:12%;top:15%}.finish-celebration i:nth-of-type(2){right:12%;top:20%;color:#d965ab;animation-delay:.15s}.finish-celebration i:nth-of-type(3){right:20%;bottom:8%;color:#319a55;animation-delay:.3s}@keyframes finish-in{0%{opacity:0;transform:translate(-50%,-42%) scale(.6)}16%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}78%{opacity:1}to{opacity:0;transform:translate(-50%,-58%) scale(1)}}@keyframes finish-spark{0%{opacity:0;transform:scale(.2)}30%{opacity:1}to{opacity:0;transform:translateY(-45px) scale(1.6) rotate(90deg)}}.confetti,.firework{position:absolute;font-style:normal;animation:celebration-pop 1.4s ease-out both}.confetti{color:#ee3825;font-size:2rem}.confetti-one{left:18%;top:18%;animation-delay:.15s}.confetti-two{right:20%;top:28%;color:#287fc2;animation-delay:.45s}.firework{color:#f2bd27;font-size:3.5rem;text-shadow:0 0 18px #f2bd27;animation:firework-burst 1.1s ease-out both}.firework-one{right:10%;top:6%}.firework-two{left:8%;top:38%;color:#d965ab;animation-delay:.5s}@keyframes celebration-pop{0%{opacity:0;transform:translateY(28px) rotate(0) scale(.4)}35%{opacity:1}to{opacity:0;transform:translateY(150px) rotate(260deg) scale(1)}}@keyframes firework-burst{0%{opacity:0;transform:scale(.2)}25%{opacity:1}to{opacity:0;transform:scale(1.8) rotate(24deg)}}@media (prefers-reduced-motion: reduce){.confetti,.firework{animation:none;opacity:.8}}.roll-seat.roll-winner{border-color:#d69a00;background:#fff2bb;box-shadow:0 0 0 5px #efbd2544}.rolloff-result{display:grid;gap:6px;padding:16px 24px;text-align:center;border:3px solid #151515;background:#fff2bb}.rolloff-result small{color:#625b50}.action-moment{position:fixed;z-index:18;top:110px;left:50%;transform:translate(-50%);width:min(430px,calc(100% - 24px));padding:12px 16px;border:2px solid #222;border-radius:14px;background:#fffdf5f5;box-shadow:0 8px 28px #0003;pointer-events:none}.action-moment p{margin:0 0 10px;text-align:center;font-size:.9rem;font-weight:800}.moment-flow{display:grid;grid-template-columns:90px 1fr 90px;align-items:center;gap:8px}.moment-actor{display:grid;justify-items:center;gap:3px;min-width:0}.moment-actor img,.moment-symbol{width:52px;height:52px;object-fit:contain;border-bottom:4px solid #37d7ec}.moment-actor:last-child img,.moment-actor:last-child .moment-symbol{border-color:#ff9247}.moment-symbol{font-size:38px;text-align:center}.moment-actor strong{font-size:.85rem}.moment-actor small{max-width:100%;overflow-wrap:anywhere;color:#625b50;font-size:.7rem}.moment-effect{display:grid;gap:4px;text-align:center;font-size:.95rem}.moment-effect>span{color:#287fc2;font-size:30px;line-height:1}.moment-positions{display:flex;justify-content:center;align-items:center;gap:8px}.moment-positions b{padding:3px 8px;border-radius:5px;background:#eee8db}.moment-positions b:last-of-type{background:#ffe0c6}@media (max-width: 600px){.action-moment{top:210px;padding:8px 12px}.moment-flow{grid-template-columns:74px 1fr 74px}.moment-actor img,.moment-symbol{width:40px;height:40px}}.decision-option-detail{display:block;margin-top:4px;font-size:.75rem;font-weight:400}.racer-card-with-rules{position:relative;min-width:0}.racer-rules-button{position:absolute;z-index:5;left:14px;top:30%;padding:4px 8px;color:#fff;border:1px solid #fff9;border-radius:20px;background:#151515dd;font-size:.7rem;cursor:help}.racer-rules-button:focus-visible{outline:3px solid #f2bd27;outline-offset:3px}.racer-rules-tooltip{position:fixed;z-index:100;width:min(360px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;padding:16px;color:#242427;border:2px solid #151515;border-radius:10px;background:#fffdf5;box-shadow:0 8px 28px #0004;font-size:.85rem;line-height:1.65;text-align:left;overflow-wrap:anywhere}.racer-rules-tooltip strong{font-size:.95rem}.racer-rules-tooltip p{margin:10px 0 0}.racer-rules-summary{font-weight:700}@media (pointer: coarse){.racer-rules-button{min-width:44px;min-height:44px}}.music-toggle{flex-shrink:0;min-height:36px;padding:6px 10px;border:1px solid currentColor;border-radius:8px;color:inherit;background:#15151528;font-size:.75rem;white-space:nowrap}.music-toggle[aria-pressed=false]{opacity:.75}.music-toggle:focus-visible{outline:3px solid #f2bd27;outline-offset:3px}.entry>.music-toggle{position:absolute;top:max(20px,env(safe-area-inset-top));right:20px;z-index:2;color:#fff;background:#242427df}.topbar{grid-template-columns:220px 1fr auto}@media (max-width: 980px){.topbar{grid-template-columns:1fr auto}}@media (pointer: coarse){.music-toggle{min-height:44px}}@media (max-width: 700px),(max-width: 980px) and (orientation: portrait){.selection-stage{padding-bottom:calc(150px + env(safe-area-inset-bottom))}.selection-stage .stage-title{margin-bottom:20px}.draft-pool,.my-team{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.draft-pool .racer-card,.my-team .racer-card{aspect-ratio:auto;padding:5px;grid-template-rows:auto 1fr auto;border-width:3px;height:100%}.draft-pool .racer-portrait,.my-team .racer-portrait{aspect-ratio:1.15}.draft-pool .ability-panel,.my-team .ability-panel{min-height:88px;margin:-8px 0 0;padding:14px 7px 8px;font-size:.72rem;line-height:1.4}.draft-pool .ability-title,.my-team .ability-title{min-height:28px;padding:5px 2px;line-height:1.25}.selection-footer{position:fixed;z-index:12;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));width:auto;margin:0;padding:10px;gap:8px;flex-direction:column;align-items:stretch;border-width:3px;box-shadow:3px 3px #151515}.selection-footer>div{flex-wrap:nowrap;overflow-x:auto;gap:5px}.selection-footer>div span{flex:0 0 auto;padding:3px 5px;font-size:.65rem}.selection-footer .command{width:100%}.immersive-race .action-moment{top:auto;bottom:calc(150px + env(safe-area-inset-bottom));width:min(430px,calc(100% - 24px));max-height:24dvh;overflow-y:auto;padding:8px 10px;pointer-events:auto}.immersive-race .action-moment p{margin-bottom:5px;font-size:.75rem}.immersive-race .moment-flow{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr);gap:5px}.immersive-race .moment-actor{gap:1px}.immersive-race .moment-actor img,.immersive-race .moment-symbol{display:block;width:32px;height:32px;border-bottom-width:3px}.immersive-race .moment-symbol{font-size:26px;line-height:29px}.immersive-race .moment-actor strong{font-size:.75rem;overflow-wrap:anywhere}.immersive-race .moment-actor small{font-size:.6rem}.immersive-race .moment-effect{gap:2px;font-size:.75rem;overflow-wrap:anywhere}.immersive-race .moment-effect>span{display:none}.immersive-race .moment-positions{gap:4px}.immersive-race .moment-positions b{padding:2px 5px}.immersive-race .decision-backdrop{padding:12px 12px max(12px,env(safe-area-inset-bottom))}.immersive-race .decision-dialog{max-height:42dvh;padding:14px;gap:10px;border-width:3px}.immersive-race .decision-dialog h2{font-size:1.3rem}.immersive-race .decision-dialog p{font-size:.85rem}}@media (max-width: 700px) and (max-height: 650px){.table:has(.selection-stage) .race-progress>div{min-height:32px}.selection-stage{padding-top:14px}.selection-stage .stage-title{margin-bottom:16px}.selection-stage .stage-title h2{font-size:1.4rem}.selection-stage .reward span{padding:5px 10px}}.selection-view{background:#f5f3ed;color:#282e2b}.selection-view .topbar{position:relative;min-height:56px;padding:12px 24px;color:#282e2b;background:#f5f3ed;border-bottom:1px solid #e6e3da}.selection-view .wordmark{font-family:inherit;font-size:.85rem;font-weight:800}.selection-view .room-code strong{font-size:.8rem;letter-spacing:0}.selection-view .music-toggle{background:transparent;border-color:#dedfd6;font-size:.65rem;padding:5px 7px}.selection-view .race-progress>div{min-height:28px;border:0;border-radius:5px;background:#e9e7df;font-size:.75rem}.selection-view .race-progress .current{background:#e6b59c}.selection-view .race-progress .done{background:#c9d9c3}.selection-view .selection-stage{max-width:1100px;padding-top:28px;padding-bottom:170px}.selection-heading .kicker{color:#85877e;font-size:.65rem}.selection-heading h2{margin:8px 0;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.04em}.selection-heading>p:last-child{font-size:.8rem;color:#72786f;line-height:1.6}.selection-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:20px 0 12px;font-size:.72rem;color:#72786f}.selection-meta strong{font-weight:600}.selection-card-wrap{position:relative;min-width:0}.selection-card{position:relative;display:flex;flex-direction:column;width:100%;height:100%;padding:0;overflow:hidden;border:1px solid #e4e3da;border-radius:16px;background:#fffefa;color:#282e2b;text-align:left;transition:border-color .15s,background .15s}.selection-card:disabled{opacity:1}.selection-card[aria-pressed=true]{border-color:#d66948;box-shadow:inset 0 0 0 1px #d66948;background:#fffaf3}.selection-art{position:relative;display:grid;height:150px;place-items:center;padding-top:10px;width:100%}.selection-art:before{content:"";position:absolute;width:112px;height:112px;border-radius:50%;background:var(--selection-accent);opacity:.24}.selection-art img{position:relative;width:125px;height:125px;object-fit:contain}.selection-check{position:absolute;top:10px;right:10px;width:19px;height:19px;border:1px solid #dedfd6;border-radius:50%;color:transparent;background:#fffefa;text-align:center;font-size:12px;line-height:17px}.selection-card[aria-pressed=true] .selection-check{background:#d66948;border-color:#d66948;color:#fff}.selection-copy{display:grid;gap:7px;padding:4px 16px 43px;width:100%}.selection-copy>strong{font-size:1rem}.selection-skill{color:#966f56;font-size:.72rem;font-weight:600}.selection-summary{color:#687164;font-size:.78rem;line-height:1.7;overflow-wrap:anywhere}.selection-details{position:absolute;bottom:6px;left:4px;min-height:36px;padding:5px 12px;color:#966f56;background:none;border:0;font-size:.72rem}.selection-card-wrap.retired .selection-art{filter:grayscale(1);opacity:.65}.selection-retired{color:#7c7c72;font-size:.7rem}.selection-card:focus-visible,.selection-details:focus-visible,.selection-confirm:focus-visible{outline:3px solid #dcab71;outline-offset:3px}.selection-dock{position:fixed;z-index:12;bottom:0;left:0;right:0;padding:12px 20px max(10px,env(safe-area-inset-bottom));background:#fbfaf6f5;border-top:1px solid #e5e3db;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.selection-dock-inner{max-width:600px;margin:auto}.selection-chosen{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:.75rem;color:#72786f}.selection-chosen strong{min-width:0;max-height:4.8em;overflow-y:auto;font-weight:500;overflow-wrap:anywhere}.selection-chosen>span{flex-shrink:0}.selection-confirm{width:100%;min-height:44px;padding:10px;border:0;border-radius:11px;background:#d96b4b;color:#fff;font-size:.85rem;font-weight:650}.selection-confirm:disabled{opacity:1;background:#e9e7df;color:#828579}.selection-ready{margin:7px 0 0;text-align:center;color:#72786f;font-size:.65rem}.selection-view .event-feed{display:none}.athlete-sheet{position:fixed;inset:auto 0 0;margin:0 auto;width:min(560px,100%);max-width:100%;max-height:65dvh;padding:0;border:1px solid #e5e3db;border-bottom:0;border-radius:22px 22px 0 0;background:#fffefa;color:#282e2b;overflow:hidden}.athlete-sheet::backdrop{background:#26302655}.athlete-sheet[open]{display:flex;flex-direction:column}.athlete-sheet-header{display:flex;align-items:center;gap:12px;padding:18px 20px 12px;flex-shrink:0}.athlete-sheet-header img{width:60px;height:60px;object-fit:contain;border-radius:50%;background:#f3ead7}.athlete-sheet-header h2{font-size:1.25rem;margin:0 0 5px}.athlete-sheet-header span{font-size:.75rem;color:#966f56}.athlete-sheet-close{align-self:flex-start;margin-left:auto;min-width:44px;min-height:44px;border:0;border-radius:50%;background:#f0eee7;color:#6b736a;font-size:22px}.athlete-sheet-content{overflow-y:auto;overscroll-behavior:contain;padding:0 20px 16px;font-size:.85rem;line-height:1.85}.athlete-sheet-content h3{font-size:.72rem;color:#72786f;margin:14px 0 5px}.athlete-sheet-content p{margin:0}.athlete-sheet-summary{background:#f5f3ec;padding:12px;border-radius:12px}.athlete-sheet-actions{border-top:1px solid #e9e6dc;padding:12px 20px max(16px,env(safe-area-inset-bottom));flex-shrink:0}.athlete-sheet-actions p{font-size:.72rem;color:#72786f;margin:0 0 8px}.selection-rule-popover{position:fixed;z-index:100;width:330px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;padding:18px;border:1px solid #dedfd6;border-radius:16px;color:#282e2b;background:#fffefa;box-shadow:0 8px 24px #25302012;font-size:.85rem;line-height:1.8}.selection-rule-popover p{margin:12px 0 0}@media (hover: hover) and (pointer: fine){.selection-card:not(:disabled):hover{border-color:#d5ae92;background:#fffaf3}}@media (max-width: 700px),(max-width: 980px) and (orientation: portrait){.selection-view .topbar{display:flex;flex-wrap:wrap;padding:10px 16px;gap:8px;justify-content:space-between}.selection-view .wordmark{font-size:.7rem}.selection-view .room-code{gap:6px}.selection-view .room-code strong{font-size:.65rem}.selection-view .race-progress{display:none}.selection-view .selection-stage{width:calc(100% - 32px);padding-top:20px}.selection-heading>p:last-child{font-size:.72rem}.selection-meta{font-size:.65rem}.selection-art{height:110px}.selection-art:before{width:83px;height:83px}.selection-art img{width:94px;height:94px}.selection-copy{padding:4px 12px 43px}.selection-copy>strong{font-size:.95rem}.selection-skill{font-size:.65rem}.selection-summary{font-size:.72rem}.selection-dock{padding-left:16px;padding-right:16px}}@media (max-width: 700px) and (max-height: 650px){.selection-view .selection-stage{padding-top:14px}.selection-heading h2{margin:6px 0}.selection-meta{margin-top:14px}.selection-art{height:102px}}.language-switcher{display:flex;gap:4px;flex-shrink:0}.language-switcher button{min-height:36px;padding:6px 10px;border:1px solid currentColor;border-radius:8px;color:inherit;background:#15151528;font-size:.75rem;white-space:nowrap}.language-switcher button.active{background:#f2bd27;color:#151515}.language-switcher.compact button{min-height:30px;padding:3px 8px;font-size:.68rem}.language-switcher button:focus-visible{outline:3px solid #f2bd27;outline-offset:3px}.entry>.language-switcher{position:absolute;top:max(20px,env(safe-area-inset-top));right:20px;z-index:2}.entry>.music-toggle{right:auto;left:20px}@media (max-width: 700px){.entry>.language-switcher{top:max(70px,calc(env(safe-area-inset-top) + 54px));right:20px}}.selection-view .language-switcher button{background:transparent;border-color:#dedfd6;font-size:.65rem;padding:5px 7px}.selection-view .language-switcher button.active{background:#e6b59c}@media (pointer: coarse){.language-switcher button{min-height:44px}}
