:root{--ui-bg:#fff8e6eb;--ui-bg-soft:#fff8e68c;--ui-shadow:#d9c19a;--ui-text:#7b5b3c;--accent:#ffcf5c;--accent-shadow:#e0a93a;--safe-left:max(16px, env(safe-area-inset-left));--safe-right:max(16px, env(safe-area-inset-right));--safe-bottom:max(16px, env(safe-area-inset-bottom));--safe-top:max(12px, env(safe-area-inset-top));font-family:Jua,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,sans-serif}html,body,#root{color:var(--ui-text);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#d6ecf7;margin:0;position:fixed;inset:0;overflow:hidden}.stage{position:absolute;inset:0}.controls{pointer-events:none;position:absolute;inset:0}.joystick-zone{pointer-events:auto;width:42%;height:72%;position:absolute;bottom:0;left:0}.joystick-base{left:calc(var(--safe-left) + 16px);bottom:calc(var(--safe-bottom) + 16px);background:var(--ui-bg-soft);opacity:.7;border:3px solid #ffffffe6;border-radius:50%;width:112px;height:112px;transition:opacity .15s;position:absolute}.joystick-base.active{opacity:1}.joystick-knob{background:var(--ui-bg);width:52px;height:52px;box-shadow:0 4px 0 var(--ui-shadow);border-radius:50%;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%}.actions{right:var(--safe-right);bottom:var(--safe-bottom);width:200px;height:180px;position:absolute}.action{background:var(--ui-bg);box-shadow:0 5px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;letter-spacing:-.04em;white-space:nowrap;pointer-events:auto;touch-action:none;-webkit-user-select:none;border:3px solid #fff;border-radius:50%;font-size:15px;transition:transform 60ms,box-shadow 60ms;position:absolute}.action.sprint{width:74px;height:74px;bottom:10px;right:0}.action.sprint.pressed{background:var(--accent);box-shadow:0 1px 0 var(--accent-shadow);transform:translateY(4px)}.action.sprint.mashing{transform:scale(calc(1 + var(--mash,0) * .1));box-shadow:0 5px 0 var(--ui-shadow), 0 0 0 calc(var(--mash,0) * 9px) #ffcf5c99}.action.sprint.mashing.pressed{transform:translateY(4px) scale(calc(1 + var(--mash,0) * .1))}.action.sprint.latched{background:conic-gradient(var(--accent) calc(var(--latch,0) * 360deg), transparent 0), var(--ui-bg)}.sprint-left{opacity:.8;font-size:11px;line-height:1;display:block}.sprint-left:empty{display:none}.action.slide{background:conic-gradient(#7b5b3c59 calc(var(--cooldown,0) * 360deg), transparent 0), var(--ui-bg);width:74px;height:74px;bottom:10px;right:84px}.action.slide.ready{opacity:1;background:var(--accent);box-shadow:0 5px 0 var(--accent-shadow)}.action.slide:active{box-shadow:0 1px 0 var(--accent-shadow);transform:translateY(4px)}@keyframes bounce{to{transform:translateY(-3px)}}.debug-hud{left:calc(50% - 104px);top:calc(var(--safe-top) + 62px);background:var(--ui-bg);box-shadow:0 3px 0 var(--ui-shadow);font-variant-numeric:tabular-nums;border-radius:999px;padding:4px 10px;font-size:13px;position:absolute}.net-badge{right:var(--safe-right);top:var(--safe-top);background:var(--ui-bg);box-shadow:0 3px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;pointer-events:auto;touch-action:manipulation;border:0;border-radius:999px;padding:4px 12px;font-size:13px;position:absolute}.net-badge:disabled{opacity:1}.net-badge-more{opacity:.6;margin-left:4px;font-size:10px}.channel-panel{width:min(420px,90vw)}.stadium-switch{border-bottom:2px dashed #7b5b3c33;margin:0 0 10px;padding:0 0 10px;list-style:none}.stadium-row{width:100%;box-shadow:0 2px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;text-align:left;touch-action:manipulation;background:#fff;border:0;border-radius:14px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.stadium-row:active{box-shadow:0 1px 0 var(--ui-shadow);transform:translateY(1px)}.stadium-row:disabled{opacity:.45}.stadium-row .channel-name{flex:1}.stadium-row-go{opacity:.5;font-size:20px;line-height:1}.stadium-confirm{border-radius:inherit;background:#faf4e4e0;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.stadium-confirm-card{width:min(280px,100%);box-shadow:0 4px 0 var(--ui-shadow);text-align:center;background:#fff;border-radius:18px;padding:16px}.stadium-confirm-card p{margin:0 0 14px;font-size:15px;line-height:1.5}.stadium-confirm-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stadium-confirm-actions button{padding:9px 0;font-size:15px}.stadium-confirm-cancel{box-shadow:0 2px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;touch-action:manipulation;background:#efe6d2;border:0;border-radius:999px}.channel-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.channel-row{box-shadow:0 2px 0 var(--ui-shadow);background:#fff;border-radius:14px;grid-template-columns:64px 1fr 56px 68px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;display:grid}.channel-row.mine{outline:3px solid var(--accent);background:#fff6d8}.channel-bar{background:#f0e2c4;border-radius:999px;height:10px;overflow:hidden}.channel-fill{border-radius:999px;height:100%;display:block}.channel-fill.calm{background:#3dbb7a}.channel-fill.mid{background:#f0b429}.channel-fill.busy{background:#e8505b}.channel-count{text-align:right;opacity:.8;font-size:13px}.channel-here{text-align:center;opacity:.7;font-size:12px}.channel-go{background:var(--accent);box-shadow:0 2px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;touch-action:manipulation;border:0;border-radius:999px;padding:6px 0;font-size:13px}.channel-go:disabled{opacity:.45}.channel-empty{opacity:.7;font-size:13px}.net-badge:before{content:"";vertical-align:1px;background:#f0b429;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.net-badge.online:before{background:#3dbb7a}.net-badge.offline:before{background:#e8505b}.minimap{left:var(--safe-left);top:var(--safe-top);width:112px;height:112px;box-shadow:0 4px 0 var(--ui-shadow);pointer-events:auto;cursor:pointer;touch-action:manipulation;border-radius:50%;position:absolute}.minimap:active{transform:scale(.96)}.place-picker{left:var(--safe-left);top:calc(var(--safe-top) + 112px + 8px);background:var(--ui-bg);width:112px;height:32px;box-shadow:0 3px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;pointer-events:auto;touch-action:manipulation;border:3px solid #fff;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:14px;display:flex;position:absolute}.place-picker.open{border-color:var(--accent);background:#fff1c2}.place-caret{opacity:.6;font-size:10px;transition:transform .15s}.place-picker.open .place-caret{transform:rotate(180deg)}.place-backdrop{z-index:6;pointer-events:auto;position:absolute;inset:0}.place-list{left:var(--safe-left);top:calc(var(--safe-top) + 112px + 8px + 38px);width:160px;max-height:calc(100% - var(--safe-top) - 112px - 8px - 38px - var(--safe-bottom) - 12px);background:var(--ui-bg);box-shadow:0 5px 0 var(--ui-shadow);touch-action:pan-y;border-radius:18px;margin:0;padding:6px;list-style:none;animation:.18s ease-out stamp-pop;position:absolute;overflow-y:auto}.place-list button{width:100%;color:var(--ui-text);font:inherit;text-align:left;white-space:nowrap;touch-action:manipulation;background:0 0;border:0;border-radius:12px;padding:8px 10px;font-size:14px}.place-list button:active{background:#fff1c2}.place-list li+li{border-top:1px dashed #7b5b3c26}.place-list{scrollbar-width:none}.place-list::-webkit-scrollbar{display:none}@media (orientation:landscape){.place-list{grid-template-columns:1fr 1fr;column-gap:4px;width:300px;display:grid}.place-list li+li{border-top:0}.place-list button{padding:7px 10px}}@keyframes peek-pop{0%{transform:translate(-50%)scale(.4)}}.tour-close{width:28px;height:28px;color:var(--ui-text);font:inherit;pointer-events:auto;background:#f0e2c4;border:0;border-radius:50%;position:absolute;top:8px;right:8px}.stamp-backdrop{pointer-events:auto;z-index:5;background:#3c2d1e40;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.stamp-book{background:var(--ui-bg);width:min(520px,90vw);max-height:86%;box-shadow:0 6px 0 var(--ui-shadow);border-radius:24px;padding:16px;position:relative;overflow-y:auto}.stamp-title{font-size:18px;position:relative}.stamp-title strong{font-weight:400}.stamp-title .tour-close{top:-2px;right:0}.stamp-hint{margin:8px 0 12px;font-size:14px}@keyframes toast-pop{0%{transform:translate(-50%,-50%)scale(.4)}}@keyframes card-in{0%{opacity:0;transform:translate(-50%,-8px)}}@keyframes stamp-pop{0%{transform:scale(.4)}}.sound-button{right:calc(var(--safe-right) + 92px);top:calc(var(--safe-top) + 36px);background:var(--ui-bg);width:34px;height:30px;box-shadow:0 3px 0 var(--ui-shadow);pointer-events:auto;touch-action:manipulation;border:0;border-radius:999px;font-size:15px;position:absolute}.leap-buttons{transition:opacity .15s}.leap-buttons.busy{opacity:0;pointer-events:none}.leap-buttons.busy .action{pointer-events:none}.action.leap{flex-direction:column;justify-content:center;align-items:center;gap:1px;width:74px;height:74px;display:flex;bottom:94px}.action.leap .context-icon{font-size:20px}.action.leap small{font-size:inherit;line-height:1}.action.leap.jump{right:0}.action.leap.divecatch{right:84px}.action.leap.catchmode{right:168px}.action.leap.catchmode.on{background:var(--accent);box-shadow:0 5px 0 var(--accent-shadow)}.action.leap.catchmode.cooling{opacity:.6}.action.leap:active{background:var(--accent);box-shadow:0 1px 0 var(--accent-shadow);transform:translateY(4px)}.action.context{flex-direction:column;justify-content:center;align-items:center;width:74px;height:74px;animation:.3s cubic-bezier(.3,1.8,.5,1) stamp-pop;display:flex;bottom:10px;right:168px}.action.context.urgent{background:#ffd9e4;animation:.3s cubic-bezier(.3,1.8,.5,1) stamp-pop,.7s ease-in-out .3s infinite context-pulse}@keyframes context-pulse{50%{transform:scale(1.08)}}.action.context.charging{background:conic-gradient(var(--accent) 0 min(calc(var(--charge,0) * 360deg), 180deg), transparent 0 180deg, #f0603a 180deg max(calc(var(--charge,0) * 360deg), 180deg), transparent 0), var(--ui-bg);transform:scale(calc(1 + var(--charge,0) * .08))}.action.context.cooling{opacity:.6}.context-icon{font-size:26px;line-height:1}.action.context small{font-size:12px}.action.context small.label-only{font-size:inherit}.jersey-button{right:calc(var(--safe-right) + 176px);top:calc(var(--safe-top) + 36px);background:var(--ui-bg);width:34px;height:30px;box-shadow:0 3px 0 var(--ui-shadow);pointer-events:auto;touch-action:manipulation;border:0;border-radius:999px;font-size:15px;position:absolute}.jersey-fields-group{flex-direction:column;gap:8px;display:flex}.kit-label{opacity:.75;font-size:13px}.kit-row{align-items:center;gap:8px;display:flex}.kit-row .swatch-row{flex:1}.swatch-row{flex-wrap:wrap;gap:6px;display:flex}.color-swatch{width:28px;height:28px;box-shadow:0 2px 0 var(--ui-shadow);touch-action:manipulation;border:3px solid #fff;border-radius:50%;padding:0}.color-swatch.selected{outline:3px solid var(--accent)}.pattern-row{gap:8px;display:flex}.pattern-chip{box-shadow:0 2px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;touch-action:manipulation;background:#fff;border:3px solid #fff;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:flex}.pattern-chip.selected{border-color:var(--accent);background:#fff6d8}.pattern-sample{background:#fffaf0;border-radius:4px;width:18px;height:18px;box-shadow:inset 0 0 0 1px #d8cdb8}.pattern-sample.pinstripe{background:repeating-linear-gradient(90deg,#fffaf0 0 4px,#1a1a1a 4px 6px)}.kit-logo,.kit-chest{box-sizing:border-box;color:var(--ui-text);font:inherit;background:#fff;border:3px solid #f0e2c4;border-radius:999px;font-size:16px}.kit-logo{text-align:center;width:60px;height:44px;font-size:22px}.kit-chest{width:100%;padding:10px 14px}.jersey-panel{flex-direction:column;gap:12px;min-height:min(374px,86dvh - 32px);display:flex}.jersey-panel .entry-primary{margin-top:auto}.tab-bar{background:#f0e2c4;border-radius:999px;flex-shrink:0;gap:4px;padding:4px;display:flex}.tab{color:var(--ui-text);font:inherit;touch-action:manipulation;background:0 0;border:none;border-radius:999px;flex:1;padding:8px 4px;font-size:14px}.tab.selected{box-shadow:0 2px 0 var(--ui-shadow);background:#fff}.tab-hint{opacity:.75;margin:0 0 8px;font-size:13px}.jersey-fields{gap:8px;display:flex}.jersey-fields input{box-sizing:border-box;min-width:0;color:var(--ui-text);font:inherit;background:#fff;border:3px solid #f0e2c4;border-radius:999px;padding:10px 14px;font-size:16px}.jersey-name{flex:1}.jersey-number{text-align:center;width:84px}.board-button{right:calc(var(--safe-right) + 134px);top:calc(var(--safe-top) + 36px);background:var(--ui-bg);width:34px;height:30px;box-shadow:0 3px 0 var(--ui-shadow);pointer-events:auto;touch-action:manipulation;border:0;border-radius:999px;font-size:15px;position:absolute}.board-tabs{gap:6px;margin:10px 0;display:flex}.board-tabs button{color:var(--ui-text);font:inherit;background:#f0e2c4;border:0;border-radius:999px;padding:6px 16px}.board-tabs button.on{background:var(--accent)}.board-list{margin:0;padding:0;list-style:none}.board-list li{border-bottom:2px dashed #f0e2c4;align-items:center;gap:10px;padding:8px 6px;font-size:15px;display:flex}.board-rank{text-align:center;width:30px}.board-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.board-time{color:#c4793a}.run-countdown{color:#fff8e6;text-shadow:0 6px #c4793a;font-size:96px;animation:.4s cubic-bezier(.3,1.8,.5,1) toast-pop;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%)}.run-countdown.go{color:#ffcf5c}.run-timer{left:50%;top:calc(var(--safe-top) + 6px);background:var(--ui-bg);box-shadow:0 4px 0 var(--ui-shadow);text-align:center;font-variant-numeric:tabular-nums;border-radius:20px;padding:6px 18px;font-size:28px;position:absolute;transform:translate(-50%)}.run-splits{opacity:.6;gap:10px;font-size:13px;display:flex}.run-splits .done{opacity:1;color:#c4793a}.run-perfect{color:#e0a93a;font-size:15px}.run-result{box-sizing:border-box;background:var(--ui-bg);width:max-content;max-width:calc(100vw - 32px);box-shadow:0 6px 0 var(--ui-shadow);text-align:center;pointer-events:auto;border-radius:26px;padding:18px 30px;font-size:16px;animation:.5s cubic-bezier(.3,1.8,.5,1) toast-pop;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.run-result-time{font-size:40px}.run-best{color:#e0a93a;font-size:18px}.run-ranks{margin:6px 0}.run-ranks b{color:#c4793a;font-weight:400}.run-result small{opacity:.6}.run-chooser{pointer-events:auto;flex-direction:column;gap:8px;animation:.25s ease-out stamp-pop;display:flex;position:absolute;bottom:190px;right:0}.run-chooser button{background:var(--ui-bg);box-shadow:0 4px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;white-space:nowrap;touch-action:manipulation;border:3px solid #fff;border-radius:999px;padding:10px 16px;font-size:15px}.race-banner{left:50%;top:calc(var(--safe-top) + 8px);box-shadow:0 4px 0 var(--accent-shadow);text-align:center;background:#fff1c2;border-radius:18px;padding:8px 18px;font-size:16px;position:absolute;transform:translate(-50%)}.race-banner small{opacity:.75;font-size:12px;display:block}.race-members{font-size:12px}.race-standings{background:var(--ui-bg);min-width:240px;box-shadow:0 5px 0 var(--ui-shadow);pointer-events:auto;border-radius:22px;padding:12px 18px;animation:.5s cubic-bezier(.3,1.8,.5,1) toast-pop;position:absolute;top:70%;left:50%;transform:translate(-50%,-50%)}.race-standings strong{font-size:18px;font-weight:400}.race-standings ol{margin:6px 0 0;padding:0;list-style:none}.race-standings li{gap:10px;padding:3px 0;font-size:15px;display:flex}.race-standings li.me{color:#c4793a}.race-name{flex:1}.shortcut-bar{left:50%;top:var(--safe-top);pointer-events:auto;gap:8px;display:flex;position:absolute;transform:translate(-50%)}.shortcut{background:var(--ui-bg);width:64px;height:54px;box-shadow:0 4px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;touch-action:manipulation;border:3px solid #fff;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:0;display:flex}.shortcut span{font-size:20px;line-height:1}.shortcut small{white-space:nowrap;font-size:10px}.shortcut:active{box-shadow:0 1px 0 var(--ui-shadow);transform:translateY(3px)}.shortcut-bar.busy,.controls.sprinting .shortcut-bar{visibility:hidden}.social-buttons{right:var(--safe-right);top:calc(var(--safe-top) + 190px);flex-direction:column;gap:8px;display:flex;position:absolute}.social-buttons .round{width:42px;height:42px;box-shadow:0 3px 0 var(--ui-shadow);opacity:1;font-size:18px}.round.on{border-color:var(--accent);background:#fff1c2}.round{background:var(--ui-bg);width:50px;height:50px;box-shadow:0 4px 0 var(--ui-shadow);pointer-events:auto;touch-action:manipulation;border:3px solid #fff;border-radius:50%;font-size:22px}.chat-log{left:var(--safe-left);top:calc(var(--safe-top) + 190px);flex-direction:column;align-items:flex-start;gap:4px;width:min(320px,40vw);display:flex;position:absolute}.chat-line{max-width:100%;color:var(--ui-text);font:inherit;text-align:left;word-break:break-all;pointer-events:auto;touch-action:manipulation;background:#fff8e6d9;border:0;border-radius:12px;padding:4px 10px;font-size:13px;transition:opacity .6s}.chat-line b{color:#c4793a;font-weight:400}.chat-line.self b{color:#3d8ed6}.chat-line.notice{background:#ffcf5cd9}.chat-menu{background:var(--ui-bg);box-shadow:0 3px 0 var(--ui-shadow);pointer-events:auto;border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;font-size:13px;display:flex}.chat-menu button,.chat-input button{color:var(--ui-text);font:inherit;touch-action:manipulation;background:#f0e2c4;border:0;border-radius:999px;padding:6px 12px;font-size:14px}.chat-menu .danger{background:#ffb3a7}.chat-input{left:50%;top:calc(var(--safe-top) + 8px);z-index:6;background:var(--ui-bg);width:min(480px,92vw);box-shadow:0 5px 0 var(--ui-shadow);pointer-events:auto;border-radius:20px;flex-wrap:wrap;gap:6px;padding:8px;display:flex;position:absolute;transform:translate(-50%)}.chat-input input{min-width:0;color:var(--ui-text);font:inherit;-webkit-user-select:text;user-select:text;border:2px solid #f0e2c4;border-radius:999px;outline:none;flex:1;padding:8px 12px;font-size:16px}.chat-input .send{background:var(--accent)}.chat-input .send:disabled{opacity:.5}.chat-preview{opacity:.7;width:100%;padding:0 6px;font-size:12px}.emote-strip,.emote-tabs{gap:6px;display:flex;position:absolute}.emote-strip{right:calc(var(--safe-right) + 46px);top:calc(var(--safe-top) + 190px - 8px);max-width:calc(100vw - var(--safe-left) - var(--safe-right) - 46px - 12px);pointer-events:auto;scrollbar-width:none;touch-action:pan-x;flex-direction:row-reverse;padding:4px;overflow:auto hidden}.emote-strip::-webkit-scrollbar{display:none}.emote-tabs{right:calc(var(--safe-right) + 50px);top:calc(var(--safe-top) + 190px + 58px);pointer-events:auto;flex-direction:row-reverse}.emote-tab{background:var(--ui-bg);width:46px;height:46px;box-shadow:0 3px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;touch-action:manipulation;border:3px solid #fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;padding:0;display:flex}.emote-tab span{font-size:16px;line-height:1}.emote-tab small{font-size:9px}.emote-tab.on{border-color:var(--accent);background:#fff1c2}.emote-item{background:var(--ui-bg);width:58px;height:52px;box-shadow:0 3px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;touch-action:manipulation;border:3px solid #fff;border-radius:18px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:1px;padding:0;animation:.18s cubic-bezier(.3,1.6,.5,1) backwards emote-pop;display:flex}.emote-item.toss{background:#fff1c2}.emote-item:active{box-shadow:none;transform:translateY(2px)}.emote-item span{font-size:22px;line-height:1}.emote-item small{white-space:nowrap;text-overflow:ellipsis;max-width:54px;font-size:9px;overflow:hidden}@keyframes emote-pop{0%{opacity:0;transform:scale(.4)}}@media (orientation:landscape){.social-buttons{top:calc(var(--safe-top) + 88px)}.emote-strip{top:calc(var(--safe-top) + 88px - 8px);max-width:calc(100vw - var(--safe-left) - var(--safe-right) - 46px - 150px)}.emote-tabs{top:calc(var(--safe-top) + 88px + 58px)}}@media (orientation:portrait){.action.context{width:68px;height:68px;bottom:8px;right:152px}.chat-log{top:auto;bottom:calc(var(--safe-bottom) + 250px);width:60vw}.minimap{width:96px;height:96px}.place-picker{top:calc(var(--safe-top) + 96px + 8px);width:96px}.place-list{top:calc(var(--safe-top) + 96px + 8px + 38px);max-height:calc(100% - var(--safe-top) - 96px - 8px - 38px - var(--safe-bottom) - 12px)}.chat-log{top:auto}.joystick-zone{width:50%;height:50%}.actions{width:170px;height:170px}.action{font-size:14px}.action.sprint{width:68px;height:68px;bottom:8px}.action.leap{width:68px;height:68px;bottom:84px}.action.leap.jump{right:0}.action.leap.divecatch{right:76px}.action.leap.catchmode{right:152px}.action.slide{width:68px;height:68px;bottom:8px;right:76px}.shortcut-bar{left:calc(var(--safe-left) + 96px + 4px);gap:3px;transform:none}.shortcut{width:44px;height:46px}.net-badge{padding:4px 9px;font-size:12px}.debug-hud{left:calc(var(--safe-left) + 96px + 4px);top:calc(var(--safe-top) + 54px)}.shortcut span{font-size:18px}.shortcut small{font-size:9px}}.loading-screen{z-index:50;color:var(--ui-text);background:linear-gradient(#cfe9f8 0%,#e8f5d8 62%,#a9da84 62%,#8fd16a 100%);flex-direction:column;justify-content:center;align-items:center;gap:10px;transition:opacity .4s;display:flex;position:fixed;inset:0}.loading-screen.done{opacity:0;pointer-events:none}.loading-screen strong{font-size:24px}.loading-ball{font-size:46px;animation:.7s ease-in-out infinite alternate loading-bounce}@keyframes loading-bounce{0%{transform:translateY(0)rotate(0)}to{transform:translateY(-18px)rotate(180deg)}}.loading-text:after{content:"";animation:1.2s steps(4,end) infinite loading-dots}@keyframes loading-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.loading-steps{gap:8px;display:flex}.loading-steps i{background:#7b5b3c33;border-radius:3px;width:34px;height:6px}.loading-steps i.on{background:var(--accent);animation:.7s ease-in-out infinite context-pulse}.loading-steps i.done{background:var(--accent)}.entry{background:radial-gradient(circle at 20% 15%,#ffffffb3 0 8%,#0000 9%),radial-gradient(circle at 80% 25%,#fff9 0 6%,#0000 7%),linear-gradient(#cfe9f8 0%,#e8f5d8 62%,#a9da84 62%,#8fd16a 100%);position:fixed;inset:0;overflow:hidden}.entry input{-webkit-user-select:text;user-select:text;touch-action:manipulation}.entry button{font:inherit;color:var(--ui-text);touch-action:manipulation;cursor:pointer}.entry-center{padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.entry-card{background:var(--ui-bg);width:min(360px,100%);box-shadow:0 8px 0 var(--ui-shadow);text-align:center;border-radius:28px;padding:28px 24px 24px}.entry-title{margin:0;font-size:28px;font-weight:400}.entry-sub{opacity:.75;margin:6px 0 20px;font-size:15px}.entry-stadiums{gap:8px;margin:-8px 0 16px;display:flex}.entry-stadium{color:var(--ui-text);font:inherit;cursor:pointer;background:#fff9;border:2px solid #7b5b3c40;border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 0;display:flex}.entry-stadium strong{font-size:17px}.entry-stadium.on{border-color:var(--accent);box-shadow:0 3px 0 var(--accent-shadow);background:#fff1c2}.entry-input-row{position:relative}.entry-input-row .entry-input{padding-left:48px;padding-right:48px}.entry-dice{cursor:pointer;background:#fff1c2;border:0;border-radius:50%;width:38px;height:38px;font-size:20px;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.entry-dice:active{transform:translateY(-50%)rotate(90deg)scale(.92)}.entry-input{box-sizing:border-box;width:100%;color:var(--ui-text);font:inherit;text-align:center;background:#fff;border:3px solid #f0e2c4;border-radius:999px;outline:none;padding:14px 18px;font-size:18px}.entry-input:focus{border-color:var(--accent)}.entry-input[aria-invalid=true]{border-color:#e8505b}.entry-error{color:#d23c48;text-align:center;margin:8px 0 0;font-size:14px}.entry-primary,.entry-secondary{border:0;border-radius:999px;padding:12px 22px;font-size:18px;transition:transform 60ms,box-shadow 60ms}.entry-primary{background:var(--accent);box-shadow:0 5px 0 var(--accent-shadow)}.entry-secondary{box-shadow:0 5px 0 var(--ui-shadow);background:#fff}.entry-primary:active,.entry-secondary:active{box-shadow:0 1px 0 var(--accent-shadow);transform:translateY(4px)}.entry-primary:disabled{opacity:.45;transform:none}.entry-card .entry-primary{width:100%;margin-top:14px}.entry-quick{text-align:left;background:#fffdf6;border:3px dashed #e8d6b0;border-radius:20px;align-items:center;gap:12px;width:100%;margin-top:16px;padding:12px 16px;font-size:16px;display:flex}.entry-quick small{opacity:.7;font-size:13px;display:block}.entry-quick-emoji{font-size:34px}.entry-new{color:var(--ui-text);font:inherit;cursor:pointer;background:#fff;border:2px solid #e8d6b0;border-radius:999px;margin:12px auto 0;padding:8px 18px;font-size:15px;display:block}.entry-new+form,.entry-quick+form{margin-top:12px}@media (orientation:landscape) and (height<=500px){.entry-center{align-items:safe center;overflow-y:auto}.entry-card{padding:14px 20px 16px}.entry-title{font-size:22px}.entry-sub{margin:2px 0 12px;font-size:13px}.entry-stadium{padding:6px 0}.entry-quick{margin-top:10px;padding:8px 14px}.entry-quick-emoji{font-size:28px}.entry-new{margin-top:8px;padding:5px 16px}.entry-input{padding:10px 16px}.entry-new+form,.entry-quick+form{margin-top:8px}}.entry-look{padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);box-sizing:border-box;gap:12px;display:flex;position:absolute;inset:0}.entry-preview{flex:0 0 42%;min-height:0;position:relative}.entry-preview-label{background:var(--ui-bg);box-shadow:0 3px 0 var(--ui-shadow);white-space:nowrap;border-radius:999px;padding:6px 14px;font-size:14px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.entry-panel{touch-action:pan-y;background:var(--ui-bg);min-width:0;box-shadow:0 6px 0 var(--ui-shadow);border-radius:24px;flex-direction:column;flex:1;gap:12px;padding:14px 16px 16px;display:flex;overflow-y:auto}.entry-panel h2{margin:0 0 8px;font-size:17px;font-weight:400}.species-grid,.team-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.species-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.species-chip,.team-chip{box-shadow:0 3px 0 var(--ui-shadow);background:#fff;border:3px solid #0000;border-radius:16px;font-size:13px}.species-chip{white-space:nowrap;letter-spacing:-.04em;flex-direction:column;align-items:center;padding:6px 0;display:flex}@media (orientation:landscape) and (height<=500px){.species-chip{flex-direction:row;justify-content:center;gap:2px;padding:5px 0;font-size:12px}.species-emoji{font-size:18px}.team-chip{padding:7px 2px}.entry-panel{gap:8px;padding-top:10px}}.species-emoji{font-size:26px;line-height:1.1}.species-chip.selected,.team-chip.selected{border-color:var(--accent);background:#fff6d8}.fur-row{align-items:center;gap:10px;margin-top:10px;display:flex}.fur-swatch{width:34px;height:34px;box-shadow:0 2px 0 var(--ui-shadow);border:3px solid #fff;border-radius:50%}.fur-swatch.selected{outline:3px solid var(--accent)}.fur-name{opacity:.75;font-size:14px}.team-chip{justify-content:center;align-items:center;gap:5px;padding:9px 2px;display:flex}.team-dot{background:var(--team);width:12px;height:12px;box-shadow:inset 0 0 0 2px var(--team2);border-radius:50%}.entry-actions{background:linear-gradient(transparent, var(--ui-bg) 30%);justify-content:space-between;gap:10px;margin:auto -16px -16px;padding:10px 16px 16px;display:flex;position:sticky;bottom:-16px}.entry-actions .entry-primary{flex:1}@media (orientation:portrait){.entry-look{flex-direction:column}.entry-preview{flex:0 0 38%}}.bat-status{padding-right:44px;font-size:20px}.bat-status small{opacity:.7;font-size:12px;display:block}.bat-quit{width:28px;height:28px;color:var(--ui-text);font:inherit;pointer-events:auto;background:#f0e2c4;border:0;border-radius:50%;font-size:14px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.pitch-gauge{right:calc(var(--safe-right) + 96px);bottom:calc(var(--safe-bottom) + 100px);width:30px;height:160px;box-shadow:0 4px 0 var(--ui-shadow);background:#fff8e6d9;border:3px solid #fff;border-radius:16px;position:absolute;overflow:hidden}.pitch-gauge-sweet{background:#b6e7c6;position:absolute;left:0;right:0}.pitch-gauge-red{background:#f6b3b8;position:absolute;top:0;left:0;right:0}.pitch-gauge-fill{background:var(--accent);border-radius:8px 8px 0 0;position:absolute;bottom:0;left:7px;right:7px;box-shadow:0 0 0 2px #fff}.pitch-gauge small{text-align:center;font-size:11px;position:absolute;bottom:2px;left:0;right:0}.pitch-status>div{white-space:nowrap}@media (orientation:portrait){.pitch-status{font-size:16px}}.pitch-best{font-size:12px;display:block}@media (orientation:portrait){.pitch-gauge{right:calc(var(--safe-right) + 100px);bottom:calc(var(--safe-bottom) + 96px)}}.stat-chips{flex-wrap:wrap;gap:6px;margin:4px 0 6px;display:flex}.stat-chips button{box-shadow:0 2px 0 var(--ui-shadow);color:var(--ui-text);font:inherit;background:#fff;border:2px solid #fff;border-radius:999px;padding:5px 10px;font-size:12px}.stat-chips button.on{border-color:var(--accent);background:#fff6d8}.stat-note{opacity:.7;margin:0 0 8px;font-size:11px}.run-result.bat-result{flex-direction:column;align-items:center;gap:8px;width:min(330px,100vw - 32px);padding:16px 18px 12px;display:flex}.bat-result .run-result-time{white-space:nowrap;font-size:34px;line-height:1.1}.result-stats{grid-template-columns:repeat(3,1fr);gap:6px;width:100%;display:grid}.result-stat{background:#7b5b3c14;border-radius:12px;flex-direction:column;align-items:center;padding:6px 4px;display:flex}.result-stat small{opacity:.65;font-size:11px}.result-stat b{white-space:nowrap;font-size:18px;font-weight:400}.bat-career,.result-ranks{flex-wrap:wrap;justify-content:center;gap:4px 10px;font-size:14px;display:flex}.bat-career span,.result-ranks span{white-space:nowrap}.bat-career b,.result-best b{color:#c4793a;font-weight:400}.result-ranks span{background:#fff1c2;border-radius:999px;padding:2px 10px}.result-ranks b{color:#c4793a;font-weight:400}.result-best{font-size:15px}.bat-result>small{font-size:11px}@media (orientation:landscape) and (height<=500px){.run-result.bat-result{gap:6px;padding:12px 16px 10px;top:54%}.bat-result .run-result-time{font-size:28px}}.bat-pop{color:#fff8e6;text-shadow:0 5px #c4793a;pointer-events:none;flex-direction:column;align-items:center;font-size:64px;line-height:1.05;animation:.4s cubic-bezier(.3,1.8,.5,1) toast-pop;display:flex;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}.catch-status{padding-right:44px;font-size:17px}.catch-status small{opacity:.7;font-size:12px;display:block}.bat-pop.catch-pop{font-size:46px}.bat-pop.catch-pop.gold{font-size:54px}.bat-pop.gold{color:#ffd84a;font-size:80px}.bat-pop.bad{color:#ffd9e4;text-shadow:0 5px #b0566e}.bat-pop.meh{opacity:.9;font-size:48px}.bat-distance{font-size:36px}.bat-pop small{text-shadow:0 2px #c4793a;font-size:18px}.bat-pop.pitch-pop{font-size:40px}.bat-pop.pitch-pop.meh{font-size:32px}.bat-pop.pitch-pop small{font-size:15px}.action.context.swing{background:#ffd84a;width:96px;height:96px;bottom:100px}.action.context.swing .context-icon{font-size:38px}.action.context.ball{color:#fff;background:#e8505b;bottom:178px;right:0;box-shadow:0 5px #a8303a}.action.context.ball small{color:#fff}@media (orientation:portrait){.action.context.ball{bottom:160px;right:0}}.controls.batting .joystick-zone,.controls.batting .action.sprint,.controls.batting .action.slide{display:none}.controls.batting .action.context.swing{bottom:12px;right:8px}.action.bat-quit-big{display:none}.controls.batting .action.bat-quit-big{left:calc(var(--safe-left) + 8px);bottom:calc(var(--safe-bottom) + 12px);flex-direction:column;justify-content:center;align-items:center;width:96px;height:96px;display:flex}.controls.batting .action.bat-quit-big .context-icon{font-size:32px}.controls.batting .action.bat-quit-big small{font-size:13px}.controls.batting .action.bat-quit-big:active{box-shadow:0 1px 0 var(--ui-shadow);transform:translateY(4px)}.jersey-button,.board-button,.sound-button{right:var(--safe-right);width:42px;height:42px;box-shadow:0 3px 0 var(--ui-shadow);border:3px solid #fff;border-radius:50%;padding:0;font-size:18px}.jersey-button{top:calc(var(--safe-top) + 40px)}.board-button{top:calc(var(--safe-top) + 90px)}.sound-button{top:calc(var(--safe-top) + 140px)}@media (orientation:landscape){.jersey-button,.board-button,.sound-button{top:calc(var(--safe-top) + 38px)}.jersey-button{right:calc(var(--safe-right) + 100px)}.board-button{right:calc(var(--safe-right) + 50px)}.shortcut-bar{top:calc(var(--safe-top) + 4px)}}.pitch-gauge{right:calc(var(--safe-right) + 212px);bottom:calc(var(--safe-bottom) + 10px)}@media (orientation:portrait){.pitch-gauge{right:calc(var(--safe-right) + 212px);bottom:calc(var(--safe-bottom) + 10px)}.run-timer{top:calc(var(--safe-top) + 40px);max-width:calc(100vw - var(--safe-left) - var(--safe-right) - 176px)}}
