:root{color:#f7fbff;font-synthesis:none;text-rendering:optimizelegibility;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);background:#05120e;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:none}button,kbd{font:inherit}button{color:inherit}.game-root,.canvas-host{width:100%;height:100%;position:relative}.canvas-host canvas{width:100%;height:100%;display:block}.match-hud{top:calc(5px + var(--safe-top));right:calc(6px + var(--safe-right));z-index:20;pointer-events:none;align-items:center;gap:4px;display:flex;position:absolute}.team-badge{border:1px solid #ffffff7a;border-radius:7px;place-items:center;width:25px;height:25px;font-size:10px;font-weight:900;display:grid;box-shadow:0 4px 12px #0000003d}.team-badge--blue{background:linear-gradient(145deg,#2984ff,#1245a5)}.team-badge--red{background:linear-gradient(145deg,#ff5e65,#a81c2c)}.score-box{text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#051013d1;border:1px solid #ffffff26;border-radius:8px;min-width:82px;padding:4px 8px 5px;box-shadow:0 4px 14px #00000042}.score-box strong{letter-spacing:.08em;font-size:14px;line-height:1;display:block}.score-box span{color:#bcd0d7;letter-spacing:.08em;text-transform:uppercase;margin-top:3px;font-size:7px;font-weight:750;display:block}.charge-widget{bottom:calc(8px + var(--safe-bottom));z-index:18;pointer-events:none;text-align:center;width:clamp(140px,22vw,210px);position:absolute;left:50%;transform:translate(-50%)}.charge-widget>span{color:#dce8e3;letter-spacing:.09em;text-shadow:0 2px 5px #000;font-size:9px;font-weight:850;display:block}.charge-track{background:#0000006e;border:1px solid #ffffff47;border-radius:999px;height:6px;margin:3px 0;overflow:hidden;box-shadow:0 2px 10px #00000057}.charge-fill{border-radius:inherit;background:linear-gradient(90deg,#55e9b0,#55c8ff 55%,#ffcf54);width:0;height:100%;transition:width 45ms linear}.charge-fill.is-sweet-spot{background:linear-gradient(90deg,#fff36a,#7dff8d);box-shadow:0 0 10px #7eff8dbf}.charge-fill.is-overbar{background:linear-gradient(90deg,#ffd45b,#ff8a3d);box-shadow:0 0 10px #ff973db8}.slide-indicator{color:#8eb0a5!important}.slide-indicator.is-active{color:#74fbff!important}.desktop-help{right:calc(16px + var(--safe-right));bottom:calc(16px + var(--safe-bottom));z-index:18;color:#b9cbc5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#040f0cb8;border:1px solid #ffffff1c;border-radius:14px;gap:5px;padding:11px 13px;font-size:10px;display:grid;position:absolute}kbd{color:#fff;background:#ffffff12;border:1px solid #ffffff2e;border-bottom-width:2px;border-radius:5px;place-items:center;min-width:45px;margin-right:5px;padding:3px 6px;font-size:9px;font-weight:900;display:inline-grid}.debug-panel{top:calc(2px + var(--safe-top));left:calc(2px + var(--safe-left));z-index:22;width:min(280px, calc(100vw - 12px - var(--safe-left) - var(--safe-right)));max-height:calc(100vh - 50px - var(--safe-top) - var(--safe-bottom));color:#a7ffd9;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000c08c7;border:1px solid #64ffd240;border-radius:10px;padding:10px 12px;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:absolute;overflow-y:auto}.debug-panel__player-control{border-top:1px solid #64ffd22e;gap:5px;margin-top:8px;padding-top:7px;display:grid}.debug-panel__player-control>span{color:#d9fff1;font-size:9px;font-weight:800}.debug-panel__player-types{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.debug-panel__team-types{grid-template-columns:repeat(2,1fr);gap:5px;display:grid}.debug-panel__pitch-dimensions,.debug-panel__pitch-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.debug-panel__pitch-dimensions label{color:#bcd8cf;gap:3px;font-size:8px;font-weight:750;display:grid}.debug-panel__pitch-dimensions input{color:#e8fff7;background:#000a0794;border:1px solid #ffffff26;border-radius:7px;outline:none;width:100%;min-width:0;padding:6px 7px;font:750 10px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.debug-panel__pitch-dimensions input:focus{border-color:#5bdeffb8}.debug-panel__player-types button,.debug-panel__team-types button,.debug-panel__pitch-actions button{color:#dce9e5;cursor:pointer;background:#ffffff12;border:1px solid #ffffff1a;border-radius:7px;min-height:30px;font-size:9px;font-weight:850}.debug-panel__player-types button:hover,.debug-panel__player-types button.is-selected,.debug-panel__team-types button:hover,.debug-panel__team-types button.is-selected,.debug-panel__pitch-actions button:hover{color:#fff;background:#2695c259;border-color:#5bdeffa6}.debug-panel__controls{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.debug-panel__controls--bot-actions,.debug-panel__controls--match-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.debug-panel__controls--bot-actions button:first-child,.debug-panel__controls--match-actions button:first-child{grid-column:1/-1}.debug-panel__slider{border-top:1px solid #64ffd22e;gap:4px;margin-top:8px;padding-top:7px;display:grid}.debug-panel__slider span{color:#d9fff1;justify-content:space-between;align-items:center;gap:12px;font-size:9px;font-weight:800;display:flex}.debug-panel__slider output{color:#7cffc5}.debug-panel__slider input[type=range]{accent-color:#55e6ad;cursor:pointer;touch-action:pan-x;width:100%;margin:0}.debug-panel__controls button,.debug-restore{color:#d9fff1;cursor:pointer;touch-action:manipulation;background:#2374568a;border:1px solid #64ffd252;border-radius:7px;padding:6px 8px;font:700 9px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.debug-panel__controls button.is-off{color:#ffd9a0;background:#73461885;border-color:#ffba5a59}.debug-panel__controls button:disabled{cursor:not-allowed;opacity:.46}.debug-restore{top:calc(2px + var(--safe-top));left:calc(2px + var(--safe-left));z-index:22;background:#002017d1;padding:9px 11px;position:absolute}.touch-controls{display:none}.loading-screen{z-index:100;background:radial-gradient(circle at 50% 40%,#226f4d8c,#0000 42%),#04100c;place-items:center;transition:opacity .3s,visibility .3s;display:grid;position:absolute;inset:0}.loading-screen.is-hidden{visibility:hidden;opacity:0}.loading-card{text-align:center;background:#00000040;border:1px solid #ffffff24;border-radius:22px;gap:8px;width:min(340px,84vw);padding:28px;display:grid;box-shadow:0 24px 70px #00000059}.loading-card strong{letter-spacing:.08em;font-size:24px}.loading-card span{color:#a7beb5;font-size:12px}.loading-card--error{border-color:#ff5a5a73}.loading-ball{font-size:44px;animation:.85s ease-in-out infinite alternate loading-bounce}@keyframes loading-bounce{to{transform:translateY(-10px)rotate(18deg)}}@media (pointer:coarse),(max-width:900px){.desktop-help{display:none}.debug-panel{top:calc(2px + var(--safe-top));left:calc(2px + var(--safe-left));width:min(280px,48vw);max-height:calc(100vh - 191px - var(--safe-top) - var(--safe-bottom));font-size:9px}.debug-restore{top:calc(2px + var(--safe-top));left:calc(2px + var(--safe-left))}.charge-widget{bottom:calc(8px + var(--safe-bottom));width:clamp(140px,22vw,210px)}.touch-controls{z-index:25;pointer-events:none;display:block;position:absolute;inset:0}.gesture-aim{color:#66cfff;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity 90ms;position:absolute;inset:0;overflow:visible}.gesture-aim.is-visible{opacity:1}.gesture-aim.is-fading{opacity:0;transition-duration:.34s}.gesture-aim path{fill:none;stroke:currentColor;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px)}.gesture-aim polygon{fill:currentColor;filter:drop-shadow(0 0 6px)}.gesture-aim--ground{color:#55cfff}.gesture-aim--loft{color:#ffae55}.gesture-aim--shot{color:#ff596d}.gesture-tutorial{right:calc(230px + var(--safe-right));bottom:calc(131px + var(--safe-bottom));color:#ffffffc7;letter-spacing:.08em;text-shadow:0 2px 5px #000;pointer-events:none;justify-items:center;width:170px;font-size:8px;font-weight:900;animation:5.5s forwards gesture-tutorial-fade;display:grid;position:absolute}.gesture-tutorial.is-hidden{display:none}.gesture-tutorial svg{width:150px;height:76px;overflow:visible}.gesture-tutorial path{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-dasharray:9 7;animation:.9s linear infinite gesture-tutorial-dash}.gesture-tutorial polygon{fill:currentColor}.joystick-zone{bottom:calc(29px + var(--safe-bottom));left:calc(29px + var(--safe-left));pointer-events:auto;touch-action:none;width:154px;height:154px;position:absolute}.joystick-ring{background:radial-gradient(circle,#ffffff14,#0000002e);border:2px solid #ffffff3d;border-radius:50%;position:absolute;inset:8px;box-shadow:inset 0 0 24px #0003}.joystick-knob{pointer-events:none;will-change:transform;background:#267e9ba8;border:2px solid #ffffff73;border-radius:50%;width:68px;height:68px;position:absolute;top:43px;left:43px;box-shadow:0 8px 18px #00000047}.action-cluster{right:calc(70px + var(--safe-right));bottom:calc(54px + var(--safe-bottom));pointer-events:none;width:224px;height:158px;position:absolute}.action-button{color:#fff;letter-spacing:.04em;pointer-events:auto;touch-action:none;border:2px solid #ffffff59;border-radius:50%;place-items:center;font-size:10px;font-weight:950;display:grid;position:absolute;box-shadow:0 9px 22px #00000047}.action-button--ground{background:#218ad5c7;width:70px;height:70px;bottom:0;right:76px}.action-button--loft{background:#d26e2bc7;width:64px;height:64px;bottom:78px;right:86px}.action-button--slide{background:#21ad79bf;width:58px;height:58px;font-size:8px;bottom:35px;right:158px}.action-button--shot{background:#d33748d6;width:82px;height:82px;bottom:31px;right:0}.action-button.is-charging,.action-button.is-active{filter:brightness(1.35);transform:scale(.94)}}@keyframes gesture-tutorial-dash{to{stroke-dashoffset:32px}}@keyframes gesture-tutorial-fade{0%,72%{opacity:1}to{opacity:0}}@media (max-width:560px){.match-hud{top:calc(3px + var(--safe-top));right:calc(4px + var(--safe-right))}.score-box{min-width:76px;padding-inline:6px}.team-badge{width:23px;height:23px}.debug-panel{width:min(260px,58vw)}.charge-widget{bottom:calc(8px + var(--safe-bottom));width:clamp(140px,22vw,210px)}}.orientation-gate{z-index:300;padding:calc(22px + var(--safe-top)) calc(22px + var(--safe-right)) calc(22px + var(--safe-bottom)) calc(22px + var(--safe-left));text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:radial-gradient(circle at 50% 38%,#298a6275,#0000 42%),#030f0bf7;place-items:center;display:none;position:absolute;inset:0}.orientation-gate.is-visible{display:grid}.orientation-card{background:#031610db;border:1px solid #ffffff26;border-radius:24px;justify-items:center;gap:12px;width:min(360px,88vw);padding:25px 24px;display:grid;box-shadow:0 24px 80px #00000073}.orientation-card strong{letter-spacing:.075em;font-size:clamp(18px,5vw,25px)}.orientation-card span{color:#b9d2ca;max-width:290px;font-size:12px;line-height:1.45}.orientation-card button{cursor:pointer;letter-spacing:.08em;background:linear-gradient(145deg,#1eaf83,#157d61);border:1px solid #78f5da85;border-radius:13px;min-height:46px;padding:0 20px;font-size:11px;font-weight:950;box-shadow:0 10px 28px #0d6f5147}.orientation-card button:disabled{cursor:wait;opacity:.62}.orientation-phone{color:#8cf4d5;border:3px solid #8cf4d5;border-radius:12px;place-items:center;width:76px;height:48px;font-size:30px;font-weight:900;animation:1.2s ease-in-out infinite alternate orientation-pulse;display:grid}@keyframes orientation-pulse{to{filter:drop-shadow(0 0 12px #5beec275);transform:scale(1.06)}}@media (pointer:coarse) and (orientation:portrait){.orientation-gate{display:grid}}@media (pointer:coarse) and (orientation:landscape) and (max-height:520px){.charge-widget{bottom:calc(8px + var(--safe-bottom));width:clamp(140px,22vw,210px)}.action-cluster{width:214px;height:146px}}.lan-network-diagnostics{top:calc(4px + var(--safe-top));left:calc(4px + var(--safe-left));z-index:21;color:#bfe9dc;pointer-events:none;white-space:nowrap;background:#02100cc2;border:1px solid #6df2c93d;border-radius:7px;width:min(330px,55vw);padding:5px 7px;font:700 8px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:absolute;box-shadow:0 5px 18px #00000038}.lan-network-diagnostics[hidden]{display:none}.lan-network-diagnostics strong{color:#71f1c5}.lan-network-diagnostics__summary{white-space:pre}.lan-network-netgraph{border-top:1px solid #adffe71a;border-bottom:1px solid #adffe71a;width:100%;height:46px;margin-top:4px;display:block}.lan-network-diagnostics__legend{letter-spacing:.08em;gap:10px;padding-top:2px;font-size:7px;display:flex}.lan-network-diagnostics__snapshot{color:#61efcf}.lan-network-diagnostics__ping{color:#ffd45a}.lan-connect-overlay{z-index:90;padding:calc(18px + var(--safe-top)) calc(18px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(18px + var(--safe-left));pointer-events:auto;background:linear-gradient(90deg,#0000 49.8%,#8ce1c014 50%,#0000 50.2%),radial-gradient(circle,#0000 0 72px,#8ce1c014 73px 74px,#0000 75px),#031a13;place-items:center;display:grid;position:absolute;inset:0;overflow-y:auto}.lan-connect-overlay[hidden],.lan-lobby-panel[hidden],.lan-open-button[hidden],.lan-host-controls[hidden],.lan-observer-toolbar[hidden]{display:none}.lan-connect-card [hidden],.lan-room-code[hidden],.lan-room-code__copy[hidden]{display:none!important}.lan-connect-card{background:#071f18;border:1px solid #74ffd747;border-radius:14px;gap:10px;width:min(520px,92vw);padding:24px;display:grid;box-shadow:0 26px 80px #0000007a}.lan-connect-card__eyebrow,.lan-host-controls>span{color:#70efc2;letter-spacing:.14em;font-size:9px;font-weight:900}.lan-connect-card>strong{letter-spacing:.05em;font-size:20px}.lan-connect-card label{color:#b9d4ca;letter-spacing:.08em;gap:5px;font-size:9px;font-weight:850;display:grid}.lan-connect-card label>span{justify-content:space-between;gap:8px;display:flex}.lan-connect-card label>span small{font-size:8px}.lan-connect-card input{color:#fff;-webkit-user-select:text;user-select:text;touch-action:manipulation;background:#00080694;border:1px solid #ffffff2b;border-radius:10px;outline:none;width:100%;min-height:44px;padding:0 12px;font-size:16px}.lan-connect-card input:focus{border-color:#69eac0;box-shadow:0 0 0 3px #4eddad21}.lan-connect-card input:read-only{color:#9fc7b9;background:#041f17c7;border-color:#70efc238}.lan-connect-card input[aria-invalid=true]{border-color:#ff7e89}.lan-mode-switch,.lan-connect-card [data-lan-fields],.lan-online-fields,.lan-online-fields__join{gap:8px;display:grid}.lan-mode-switch{grid-template-columns:1fr 1fr}.lan-mode-switch button[aria-pressed=true]{background:#16795e;border-color:#69f0be}.lan-online-fields__or{color:#78978c;letter-spacing:.16em;text-align:center;font-size:9px;font-weight:900}.lan-online-fields__join{grid-template-columns:minmax(0,1fr) 120px;align-items:end}.lan-connect-card button,.lan-lobby-panel button,.lan-open-button{color:#edfff9;cursor:pointer;letter-spacing:.04em;touch-action:manipulation;background:#1e8262b8;border:1px solid #6ff4cd47;border-radius:8px;min-height:44px;font-size:9px;font-weight:900}.lan-connect-card>button[type=submit]{background:linear-gradient(145deg,#28b98c,#16795e);min-height:44px;margin-top:3px}.lan-connect-card [data-lan-connect],.lan-connect-card [data-online-create],.lan-connect-card [data-online-join]{background:linear-gradient(145deg,#28b98c,#16795e);min-height:48px}.lan-connect-card button:focus-visible,.lan-lobby-panel button:focus-visible,.lan-open-button:focus-visible{outline-offset:2px;outline:3px solid #b7ffe6}.lan-connect-card .lan-connect-card__offline{color:#b9cec7;background:#ffffff0f;border-color:#ffffff1f}.lan-connect-card button:disabled,.lan-lobby-panel button:disabled{cursor:not-allowed;opacity:.38}.lan-connect-card__status{color:#b9d4ca;min-height:15px;font-size:10px;line-height:1.4}.lan-connect-card__status[data-status=error]{color:#ff9da5}.lan-connect-card small{color:#78978c;font-size:9px}.lan-open-button{top:calc(42px + var(--safe-top));right:calc(6px + var(--safe-right));z-index:27;background:#041f17db;padding:0 10px;position:absolute}.lan-lobby-panel{top:calc(42px + var(--safe-top));right:calc(6px + var(--safe-right));z-index:27;width:min(390px, calc(100vw - 16px - var(--safe-left) - var(--safe-right)));max-height:calc(100vh - 52px - var(--safe-top) - var(--safe-bottom));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;background:#03140fe6;border:1px solid #ffffff24;border-radius:12px;position:absolute;overflow:hidden;box-shadow:0 16px 44px #00000059}.lan-lobby-panel__header{color:#dffbf2;letter-spacing:.08em;grid-template-columns:auto minmax(0,1fr) auto auto 44px;align-items:center;gap:7px;min-height:38px;padding:5px 6px 5px 10px;font-size:9px;font-weight:900;display:grid}.lan-status-dot{background:#5ef0b3;border-radius:50%;width:7px;height:7px;box-shadow:0 0 7px #5ef0b3}.lan-lobby-panel[data-status=reconnecting] .lan-status-dot{background:#ffd166;box-shadow:0 0 7px #ffd166}.lan-lobby-panel__header button{min-height:44px;padding:0}.lan-room-code{color:#b7ffe6;-webkit-user-select:text;user-select:text;font-size:8px}.lan-lobby-panel__header .lan-room-code__copy{min-height:44px;padding:0 7px;font-size:7px}.lan-lobby-panel__body{max-height:calc(100vh - 94px - var(--safe-top) - var(--safe-bottom));overscroll-behavior:contain;touch-action:pan-y;gap:7px;padding:0 8px 9px;display:grid;overflow-y:auto}.lan-lobby-panel.is-collapsed{width:174px}.lan-lobby-panel.is-collapsed .lan-lobby-panel__body,.lan-lobby-panel.is-collapsed .lan-room-code,.lan-lobby-panel.is-collapsed .lan-room-code__copy{display:none}.lan-team{background:#ffffff08;border:1px solid #ffffff1a;border-radius:9px;overflow:hidden}.lan-team summary{cursor:pointer;touch-action:manipulation;grid-template-columns:auto 1fr;align-items:center;gap:8px;min-height:44px;padding:7px 9px;font-size:9px;font-weight:900;list-style:none;display:grid}.lan-team summary::-webkit-details-marker{display:none}.lan-team summary span:last-child{color:#9cb8ae;text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:7px;overflow:hidden}.lan-team--blue summary{border-left:3px solid #3e93ff}.lan-team--red summary{border-left:3px solid #ff5b68}.lan-team--spectators summary{border-left:3px solid #8eaaa0}.lan-team ul{gap:3px;max-height:150px;margin:0;padding:4px 6px;list-style:none;display:grid;overflow-y:auto}.lan-team>button{width:calc(100% - 12px);margin:3px 6px 6px}.lan-player-row{background:#ffffff0a;border-radius:6px;align-items:center;gap:5px;min-height:27px;padding:4px 5px;font-size:8px;display:flex}.lan-player-row.is-local{outline:1px solid #64f2c673}.lan-player-row.is-disconnected{opacity:.58}.lan-player-row--empty{color:#789087}.lan-player-row__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:800;overflow:hidden}.lan-player-row__tags{flex-wrap:wrap;justify-content:flex-end;gap:2px;display:flex}.lan-player-tag{color:#bcd0c9;background:#ffffff1a;border-radius:3px;padding:2px 3px;font-size:6px;font-weight:900}.lan-player-tag.is-ready{color:#8bffd1;background:#34c28947}.lan-player-tag.is-offline{color:#ffb1b6;background:#da555c40}.lan-player-row .lan-player-row__remove{background:#942a3166;border-color:#ff727b40;width:44px;min-height:44px;padding:0}.lan-player-actions,.lan-host-controls{border:1px solid #ffffff17;border-radius:9px;gap:5px;padding:7px;display:grid}.lan-archetypes,.lan-player-actions__row,.lan-host-controls>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.lan-player-actions__row{grid-template-columns:1fr 1.4fr}.lan-host-controls>div{grid-template-columns:1fr 1fr}.lan-lobby-panel button.is-selected,.lan-lobby-panel button.is-ready{color:#fff;background:#24ae80ad;border-color:#69f0be}.lan-observer-toolbar{text-align:center;grid-template-columns:44px 1fr 44px;align-items:center;gap:5px;font-size:8px;font-weight:900;display:grid}.lan-disconnect{color:#9ab1a9!important;background:#ffffff0d!important;border-color:#ffffff1a!important}@media (pointer:coarse),(max-width:900px){.lan-connect-card{width:min(520px,86vw);max-height:calc(100dvh - 20px - var(--safe-top) - var(--safe-bottom));padding:16px 18px;overflow-y:auto}.lan-connect-card input{min-height:44px;font-size:16px}.lan-lobby-panel button{min-height:44px}.lan-lobby-panel{top:calc(38px + var(--safe-top));width:min(360px,54vw);max-height:calc(100vh - 44px - var(--safe-top) - var(--safe-bottom))}.lan-lobby-panel__body{max-height:calc(100vh - 84px - var(--safe-top) - var(--safe-bottom))}.lan-team ul{max-height:92px}}
