:root{--bg:#121719;--panel:#182124;--panel-soft:#202b2f;--panel-overlay:#182124f0;--panel-strong:#182124fa;--panel-muted:#ffffff09;--nav:#121719f5;--control:#202b2f;--control-hover:#263438;--input:#040a0b57;--arena-bg:#0d1315;--field-preview:#204b3d;--minimap-bg:#20392f;--tooltip-bg:#0e1416f0;--modal-backdrop:#00000094;--shell-gradient-left:#21a8a31c;--shell-gradient-right:#dd614a1f;--line:#efe8ca29;--text:#f2ead1;--muted:#aeb7ad;--blue:#21a8a3;--red:#dd614a;--gold:#f0d66a;--shadow:0 20px 58px #00000047;--font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--text);background:var(--bg);font-family:var(--font);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body[data-theme=floodlight]{--bg:#09151a;--panel:#13242a;--panel-soft:#1d3439;--panel-overlay:#13242af2;--panel-strong:#111f24fa;--panel-muted:#77d9cd14;--nav:#071318f5;--control:#1d3439;--control-hover:#25464b;--input:#020c106b;--arena-bg:#071114;--field-preview:#1b5b4f;--minimap-bg:#194238;--tooltip-bg:#08161af5;--line:#c8f5e82b;--text:#eefaf0;--muted:#abc9c2;--blue:#39c8d2;--red:#ff765c;--gold:#f7e36f;--shell-gradient-left:#39c8d226;--shell-gradient-right:#ff765c21}body[data-theme=ember]{--bg:#181215;--panel:#241c20;--panel-soft:#30262a;--panel-overlay:#241c20f2;--panel-strong:#1f171bfa;--panel-muted:#f2a25f14;--nav:#161012f5;--control:#30262a;--control-hover:#3c3034;--input:#0d080a73;--arena-bg:#110c0e;--field-preview:#31533f;--minimap-bg:#293d31;--tooltip-bg:#181114f5;--line:#ffdaae2b;--text:#fff1dc;--muted:#c6b3a1;--blue:#26b8b3;--red:#ee6f55;--gold:#f2a35f;--shell-gradient-left:#26b8b31c;--shell-gradient-right:#ee6f552e}body[data-theme=chalk]{--bg:#161a18;--panel:#202620;--panel-soft:#2b332b;--panel-overlay:#202620f2;--panel-strong:#1a1f1bfa;--panel-muted:#dcebc414;--nav:#121613f5;--control:#2b332b;--control-hover:#374236;--input:#070a086b;--arena-bg:#0f1411;--field-preview:#315a3d;--minimap-bg:#263d2e;--tooltip-bg:#121814f5;--line:#ebf2da2e;--text:#f3f1df;--muted:#bcc5ae;--blue:#4fb9d5;--red:#d86d6a;--gold:#d6e17a;--shell-gradient-left:#4fb9d51f;--shell-gradient-right:#d86d6a1c}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow:hidden}.main-menu{flex:1;place-items:end start;min-height:0;padding:24px;display:grid;position:relative;overflow:hidden}.main-menu:before{z-index:1;content:"";pointer-events:none;background:linear-gradient(90deg,#121719bd,#12171952,#121719c2),radial-gradient(circle at 50% 45%,#0000 0,#12171994 70%);position:absolute;inset:0}.menu-cinema-canvas{opacity:.42;filter:grayscale(.55)saturate(.55)contrast(.9);object-fit:cover;pointer-events:none;width:100%;height:100%;max-height:none;position:absolute;inset:0}.main-menu[hidden],.game-shell[hidden],.docs-view[hidden],.changelog-view[hidden],.formation-view[hidden],.drawer-toggle[hidden],.rematch-btn[hidden],.modal-backdrop[hidden],.round-countdown-overlay[hidden],.round-setup-overlay[hidden],.pvp-status-panel[hidden],.seed-control[hidden],.speed-control[hidden],.cinema-control[hidden],.collapsible-panel[hidden]{display:none}.main-menu-inner{z-index:2;border:1px solid var(--line);background:var(--panel-overlay);width:min(440px,100%);box-shadow:var(--shadow);border-radius:8px;padding:28px;position:relative}.main-menu-inner h1{margin-bottom:24px}.main-menu-actions{gap:10px;display:grid}.main-menu-actions button{min-height:48px}.public-rooms-panel{border-top:1px solid var(--line);gap:10px;margin-top:22px;padding-top:16px;display:grid}.public-rooms-panel header,.public-room-card{justify-content:space-between;align-items:center;gap:12px;display:flex}.public-rooms-panel header span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:900}.public-rooms-panel header button{width:34px;min-height:34px;padding:0}.public-room-list{gap:8px;max-height:220px;display:grid;overflow:auto}.public-room-card{border:1px solid var(--line);background:#0c141675;border-radius:7px;padding:10px}.public-room-card div{gap:2px;display:grid}.public-room-card strong{color:var(--text);font-size:18px}.public-room-card span,.public-room-empty{color:var(--muted);margin:0;font-size:12px;font-weight:800}.public-room-card button{min-height:36px;padding:0 12px}.checkbox-row{color:var(--text);align-items:center;gap:10px;font-weight:800;display:flex}.checkbox-row input{width:18px;height:18px}button{border:1px solid var(--line);min-height:42px;color:var(--text);background:var(--control);font:700 14px/1 var(--font);cursor:pointer;border-radius:7px;padding:0 16px;transition:transform .15s,border-color .15s,background .15s}button:hover{background:var(--control-hover);border-color:#f0d66a73;transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.38;transform:none}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}button.primary{color:#122024;background:var(--gold);border-color:#0000}kbd{min-width:44px;min-height:30px;color:var(--text);font:800 12px/1 var(--font);background:#11181b;border:1px solid #f2ead12e;border-bottom-width:3px;border-radius:6px;justify-content:center;align-items:center;padding:0 9px;display:inline-flex}#app{flex-direction:column;height:100vh;min-height:0;display:flex}.app-menu{border-bottom:1px solid var(--line);background:var(--nav);align-items:center;gap:8px;min-height:48px;padding:0 16px;display:flex}.app-menu button{min-height:32px;color:var(--muted);background:0 0;border-color:#0000;padding:0 12px}.app-menu button.active,.app-menu button:hover{color:var(--text);background:#f0d66a14;border-color:#f0d66a3d}.menu-select-control{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;font-weight:900;display:flex}.theme-control{margin-left:auto}.profile-name-btn{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.menu-select-control select{border:1px solid var(--line);background:var(--control);height:32px;color:var(--text);font:inherit;letter-spacing:0;text-transform:none;border-radius:6px}.game-shell{background:linear-gradient(120deg, var(--shell-gradient-left), transparent 36%), linear-gradient(240deg, var(--shell-gradient-right), transparent 36%), var(--bg);flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px;display:flex;overflow:hidden}.score-strip{grid-template-columns:minmax(120px,1fr) minmax(190px,.7fr) minmax(120px,1fr);align-items:center;gap:12px;display:grid}.team-score,.match-core{border:1px solid var(--line);background:var(--panel-overlay);min-height:78px;box-shadow:var(--shadow);border-radius:8px;padding:12px 18px}.docs-view,.changelog-view{flex:1;min-height:0;padding:24px;overflow:auto}.formation-view{background:linear-gradient(120deg, var(--shell-gradient-left), transparent 36%), linear-gradient(240deg, var(--shell-gradient-right), transparent 36%), var(--bg);flex:1;min-height:0;padding:24px;overflow:auto}.formation-manager-shell{gap:14px;width:min(1080px,100%);margin:0 auto;display:grid}.formation-manager-shell>header,.formation-manager-toolbar,.formation-manager-formation{border:1px solid var(--line);background:var(--panel-overlay);box-shadow:var(--shadow);border-radius:8px;padding:16px}.formation-manager-shell>header{justify-content:space-between;align-items:center;gap:16px;display:flex}.formation-manager-shell h1{margin:0}.formation-manager-toolbar{grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);align-items:end;gap:12px;display:grid}.formation-manager-toolbar label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;gap:7px;font-size:12px;font-weight:900;display:grid}.formation-manager-toolbar input{border:1px solid var(--line);min-height:38px;color:var(--text);background:var(--input);font:800 13px/1 var(--font);letter-spacing:0;text-transform:none;border-radius:6px;padding:0 10px}.docs-shell{width:min(980px,100%);margin:0 auto}.changelog-shell{gap:18px;width:min(980px,100%);margin:0 auto;display:grid}.changelog-page-header,.changelog-entry{border:1px solid var(--line);background:var(--panel-overlay);box-shadow:var(--shadow);border-radius:8px;padding:22px}.changelog-page-header h1{margin:4px 0 0}.changelog-article,.changelog-entry{gap:14px;display:grid}.changelog-entry header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 14px;display:grid}.changelog-entry header .eyebrow{grid-column:1/-1}.changelog-entry h2,.changelog-group h3{letter-spacing:0;margin:0}.changelog-entry header span{border:1px solid var(--line);color:var(--gold);background:var(--panel-muted);border-radius:999px;padding:6px 10px;font-weight:900}.changelog-version-text{color:var(--muted);margin:0;line-height:1.55}.changelog-group{gap:8px;display:grid}.changelog-group h3{color:var(--gold);font-size:15px}.changelog-group ul{margin:0;padding-left:20px}.changelog-modal{width:min(720px,100%)}.changelog-modal>button{width:100%;margin-top:14px}.docs-article{gap:18px;display:grid}.docs-hero,.docs-article section{border:1px solid var(--line);background:var(--panel-overlay);box-shadow:var(--shadow);border-radius:8px;padding:22px}.docs-hero h1{color:var(--text);margin:4px 0 10px;font-size:clamp(34px,7vw,64px)}.docs-article h2{color:var(--gold);letter-spacing:0;margin:0 0 10px;font-size:22px}.docs-article p,.docs-article li,.docs-article dd{color:#f2ead1db;line-height:1.58}.docs-article ul{gap:8px;margin:10px 0 0;padding-left:20px;display:grid}.docs-article dl{gap:9px;margin:10px 0 0;display:grid}.docs-article dt{color:var(--text);font-weight:900}.docs-article dd{margin:-5px 0 8px}.docs-article a{color:var(--gold);font-weight:800}.docs-article code{color:var(--text);background:#ffffff0f;border:1px solid #f2ead12e;border-radius:4px;padding:1px 5px;font-size:.92em}.team-score{justify-content:space-between;align-items:center;gap:16px;display:flex}.team-score span,.match-core span,.status-grid span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:800}.team-score strong{font-size:42px;line-height:1}.team-score-blue{border-left:5px solid var(--blue)}.team-score-red{border-right:5px solid var(--red)}.match-core{text-align:center;place-items:center;display:grid}.match-core strong{color:var(--gold);font-size:34px;line-height:1}.play-layout{flex:1;grid-template-columns:minmax(0,1fr) 320px;gap:16px;min-height:0;display:grid;overflow:hidden}.arena-wrap{border:1px solid var(--line);background:var(--arena-bg);min-height:520px;box-shadow:var(--shadow);border-radius:8px;align-items:center;display:grid;position:relative;overflow:hidden}canvas{aspect-ratio:2;object-fit:contain;background:var(--arena-bg);width:100%;max-height:calc(100vh - 128px);display:block}.player-tooltip{z-index:5;width:190px;color:var(--text);background:var(--tooltip-bg);pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #fff7d742;border-radius:7px;padding:10px;position:absolute;box-shadow:0 16px 42px #0000005c}.player-tooltip[hidden]{display:none}.player-tooltip header,.player-tooltip div{grid-template-columns:1fr auto;align-items:baseline;gap:4px 8px;display:grid}.player-tooltip header{border-bottom:1px solid #fff7d724;margin-bottom:8px;padding-bottom:8px}.player-tooltip header span,.player-tooltip div span,.player-tooltip small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:900}.player-tooltip header strong{color:var(--gold);font-size:14px}.player-tooltip div{margin-top:6px}.player-tooltip div strong{font-size:16px}.player-tooltip small{text-transform:none;letter-spacing:0;grid-column:1/-1;justify-self:end}.command-panel{overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--line);background:var(--panel-overlay);min-height:0;max-height:100%;box-shadow:var(--shadow);border-radius:8px;flex-direction:column;gap:18px;padding:20px;display:flex;overflow-y:auto}.eyebrow{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin:0 0 7px;font-size:12px;font-weight:900}h1{letter-spacing:0;margin:0;font-size:46px;line-height:.95}.controls-row{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.pvp-status-panel{border:1px solid var(--line);background:var(--panel-muted);border-radius:7px;gap:10px;padding:10px;display:grid}.pvp-status-panel header{justify-content:space-between;align-items:center;gap:10px;display:flex}.pvp-status-panel strong{color:var(--text)}.pvp-team-choice{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pvp-team-choice button.active{color:#122024;background:var(--gold);border-color:#0000}.speed-control{border:1px solid var(--line);background:var(--panel-muted);border-radius:7px;grid-template-columns:repeat(4,1fr);gap:6px;padding:6px;display:grid}.speed-control button{border-radius:6px;min-height:34px;padding:0 8px;font-size:12px}.speed-control button.active,.speed-control button[aria-pressed=true]{color:#122024;background:var(--gold);border-color:#0000}.speed-control button:disabled{cursor:not-allowed;color:#fff7d77a;background:#ffffff06;border-color:#fff7d71f}.seed-control{border:1px solid var(--line);min-height:42px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;background:var(--panel-muted);border-radius:7px;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:8px 10px;font-size:12px;font-weight:900;display:grid}.seed-control input{width:100%;min-width:0;color:var(--text);font:inherit;letter-spacing:0;text-transform:none;background:var(--input);border:1px solid #fff7d72e;border-radius:6px;padding:7px 9px}.seed-control input:focus{outline-offset:1px;outline:2px solid #f7da5b8c}.cinema-control{border:1px solid var(--line);min-height:42px;color:var(--text);letter-spacing:.04em;text-transform:uppercase;background:var(--panel-muted);border-radius:7px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;font-weight:900;display:flex}.cinema-control input{width:18px;height:18px;accent-color:var(--gold)}.modal-backdrop{z-index:20;background:var(--modal-backdrop);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--line);background:var(--panel-strong);width:min(440px,100%);max-height:calc(100vh - 40px);box-shadow:var(--shadow);border-radius:8px;padding:18px;overflow:auto}.modal header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.modal h2{color:var(--text);letter-spacing:0;margin:0;font-size:24px}.modal form,.modal-body-grid{gap:12px;display:grid}.profile-name-control{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;gap:8px;font-size:12px;font-weight:900;display:grid}.pvp-player-list{border:1px solid var(--line);background:var(--panel-muted);border-radius:7px;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:10px;display:grid}.pvp-player-list span,.pvp-player-list strong{overflow-wrap:anywhere;min-width:0;font-size:13px}.pvp-player-list span{color:var(--text);font-weight:900}.pvp-player-list strong{color:var(--gold);text-align:right}.formation-presets{border:1px solid var(--line);background:var(--panel-muted);border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:8px;display:grid}.formation-presets select{border:1px solid var(--line);min-width:0;height:36px;color:var(--text);background:var(--control);font:800 12px/1 var(--font);border-radius:6px;padding:0 10px}.formation-presets button{min-height:36px;padding:0 12px}.formation-preset-feedback{color:var(--gold);grid-column:1/-1;margin:0;font-size:12px;font-weight:900}.room-code{min-height:70px;color:var(--gold);letter-spacing:.18em;background:#f7da5b14;border:1px solid #f7da5b73;border-radius:7px;place-items:center;font-size:34px;font-weight:900;display:grid}.modal input{min-height:42px;color:var(--text);font:inherit;background:var(--input);border:1px solid #fff7d72e;border-radius:6px;padding:0 10px}.modal-status,.modal-error{color:var(--muted);margin:0;font-size:13px;font-weight:800}.modal-error{color:#ffb2a5}.round-setup-overlay{z-index:8;pointer-events:none;place-items:center;width:auto;max-height:none;padding:18px;display:grid;position:absolute;inset:0;overflow:hidden}.round-setup-card{background:var(--panel-overlay);width:min(760px,100% - 40px);max-height:calc(100% - 36px);box-shadow:var(--shadow);pointer-events:auto;border:1px solid #f7da5b57;border-radius:8px;gap:12px;padding:12px;display:grid;overflow:auto}.round-setup-card>header{z-index:3;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel-strong) 96%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:8px 8px 0 0;justify-content:space-between;align-items:end;gap:12px;margin:-12px -12px 0;padding:12px;display:flex;position:sticky;top:0}.round-setup-card>header span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:900}.round-setup-card>header strong{color:var(--text);font-size:18px;display:block}.round-setup-card>header b{color:var(--gold);white-space:nowrap;font-size:18px}.formation-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.formation-row{border:1px solid var(--line);background:var(--panel-muted);border-radius:7px;grid-template-columns:minmax(150px,.82fr) minmax(260px,1.18fr);align-items:center;gap:8px;padding:9px;display:grid;position:relative}.formation-row header{grid-template-columns:1fr auto;align-self:center;align-items:center;gap:8px;min-height:34px;display:grid}.formation-player-card>summary{cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-self:center;align-items:center;gap:8px;min-height:34px;list-style:none;display:grid}.formation-player-card>summary::-webkit-details-marker{display:none}.draggable-formation-row header{grid-template-columns:20px minmax(0,1fr)}.draggable-formation-row>summary{grid-template-columns:20px minmax(0,1fr) auto}.draggable-formation-row .drag-handle{align-self:center}.draggable-formation-row header strong{display:none}.formation-row header span,.formation-player-card>summary span{color:var(--text);font-size:13px;font-weight:900}.formation-card-title{gap:5px;min-width:0;display:grid}.formation-card-title span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:900}.formation-card-title b{color:var(--gold);font-size:12px}.player-name-control{gap:5px;min-width:0;display:grid}.player-name-control input{border:1px solid var(--line);width:100%;min-width:0;color:var(--text);background:var(--input);font:900 13px/1 var(--font);letter-spacing:0;border-radius:5px;padding:5px 7px}.player-name-control input:focus{outline:2px solid var(--blue);outline-offset:1px}.formation-row header strong,.formation-player-card>summary strong{color:var(--gold);font-size:11px}.formation-player-card>summary small{color:#122024;background:var(--gold);text-align:center;border:1px solid #f0d66a47;border-radius:999px;min-width:70px;padding:5px 10px;font-size:12px;font-weight:950;display:grid}.formation-player-card>summary small b{color:inherit;opacity:.78;text-transform:uppercase;font-size:9px;line-height:1}.formation-player-card>summary small span{color:inherit;font-size:12px;font-weight:950}.formation-card-body{grid-column:1/-1;padding:4px 0 0}.formation-player-card .loadout-controls{grid-column:1/-1}.round-countdown-overlay{z-index:9;pointer-events:none;color:#fff7d7;letter-spacing:0;text-shadow:0 8px #00000052,0 0 34px #f7da5b73;place-items:center;font-size:clamp(76px,16vw,190px);font-weight:950;display:grid;position:absolute;inset:0}.setup-modal .modal{width:min(760px,100%)}.pvp-setup-modal{gap:14px;display:grid}.pvp-setup-status{background:#f7da5b14;border:1px solid #f7da5b52;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.pvp-setup-status div{gap:3px;display:grid}.pvp-setup-status span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:900}.pvp-setup-status strong,.pvp-setup-status b{color:var(--text);font-size:18px}.pvp-setup-status b{color:var(--gold);white-space:nowrap}.pvp-skill-setup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pvp-setup-save{justify-self:end;min-width:220px}.status-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.status-grid div{border:1px solid var(--line);background:var(--panel-muted);border-radius:7px;min-height:76px;padding:12px}.status-grid strong{color:var(--text);margin-top:8px;font-size:20px;line-height:1.1;display:block}.mini-map{background:linear-gradient(90deg, transparent calc(50% - 1px), #f2ead129 50%, transparent calc(50% + 1px)), var(--minimap-bg);border:1px solid #f2ead12e;border-radius:7px;height:136px;position:relative;overflow:hidden}.mini-map:before,.mini-map:after{content:"";border:2px solid #f2ead152;border-radius:999px;width:18px;height:38px;position:absolute;top:50%;transform:translateY(-50%)}.mini-map:before{left:8px}.mini-map:after{right:8px}.mini-map i,.mini-map b,.mini-map em{position:absolute}.mini-map i,.mini-map b{border-radius:50%;width:9px;height:9px;transform:translate(-50%,-50%)}.mini-map i.blue{background:var(--blue)}.mini-map i.red{background:var(--red)}.mini-map i.controlled{border:2px solid #fff7d7;width:13px;height:13px}.mini-map b{background:var(--gold);width:10px;height:10px}.mini-map em.camera-view{z-index:1;pointer-events:none;border:2px solid #ffffffe6;border-radius:3px;box-shadow:0 0 0 1px #0d12178c,inset 0 0 0 1px #0d121773}.collapsible-panel{gap:10px;display:grid}.panel-heading{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:end;gap:12px;list-style:none;display:flex}.panel-heading::-webkit-details-marker{display:none}.panel-heading::marker{content:""}.panel-heading:after{content:"v";color:var(--gold);flex:none;font-size:13px;font-weight:900;transition:transform .15s;transform:rotate(0)}.collapsible-panel:not([open]) .panel-heading:after{content:">";transform:none}.collapsible-panel:not([open]){gap:0}.panel-heading span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:900}.panel-heading strong{color:var(--text);font-size:13px}.skill-list{gap:8px;display:grid}.skill-row{border:1px solid var(--line);background:var(--panel-muted);border-radius:7px;gap:8px;padding:10px;display:grid}.skill-row header,.skill-control{align-items:center;display:grid}.skill-row header{grid-template-columns:1fr auto;gap:8px}.skill-row header span{color:var(--text);font-size:14px;font-weight:800}.skill-row header strong{color:var(--gold);font-size:12px}.loadout-controls{grid-template-columns:1fr;gap:7px;display:grid}.position-control{grid-template-columns:74px 1fr;align-items:center;gap:8px;display:grid}.position-control span{color:var(--muted);font-size:12px;font-weight:900}.position-control select{border:1px solid var(--line);min-width:0;height:34px;color:var(--text);background:var(--control);font:800 12px/1 var(--font);border-radius:6px;padding:0 8px}.position-control select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.skill-control{grid-template-columns:18px 30px 24px 30px 1fr;gap:6px}.skill-control span{color:var(--muted);font-size:12px;font-weight:900}.skill-control button{border-radius:6px;min-height:28px;padding:0;font-size:16px}.skill-control strong,.skill-control small{text-align:center}.skill-control strong{color:var(--text);font-size:14px}.skill-control small{color:var(--muted);justify-self:end;font-size:12px;font-weight:800}.roster-grid{color:var(--muted);grid-template-columns:14px 1fr;align-items:center;gap:10px 12px;font-size:14px;font-weight:700;display:grid}.roster-grid span{border-radius:50%;width:12px;height:12px}.roster-grid strong{color:var(--text);font-size:14px;line-height:1.25}.quick-dot{background:var(--gold)}.match-dot{background:#fff7d7}.pompfer-dot{background:#e7dfc6}.technik-dot{background:#a4d65e}.speed-dot{background:#62b6ff}.perception-dot{background:#d58cff}.jugg-dot{background:#7b5420}.pin-dot{background:#f0d66a;box-shadow:0 0 0 4px #f0d66a26}.main-menu{background:radial-gradient(circle at 18% 18%, var(--shell-gradient-left), transparent 34%), radial-gradient(circle at 82% 80%, var(--shell-gradient-right), transparent 38%), var(--bg)}@media (prefers-reduced-motion:reduce){.menu-cinema-canvas{opacity:.34}}.main-menu-inner{width:min(760px,100%);padding:clamp(22px,4vw,42px)}.main-menu-inner h1{font-size:clamp(54px,9vw,104px)}.main-menu-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.game-shell{gap:10px;padding:10px 14px 14px}.score-strip{grid-template-columns:minmax(130px,1fr) minmax(280px,.8fr) minmax(130px,1fr);gap:8px}.team-score,.match-core{min-height:62px;padding:10px 14px}.team-score strong{font-size:36px}.match-core{text-align:left;grid-template-columns:minmax(90px,1fr) auto;place-items:center stretch;gap:12px}.match-core strong{font-size:32px}.match-clock{gap:4px;display:grid}.top-controls{min-width:230px}.top-controls button{min-height:34px;padding:0 12px}.core-hud-row{grid-column:1/-1;align-items:stretch;gap:8px;display:flex}.hud-chip,.drawer-toggle,.rematch-btn{border:1px solid var(--line);background:var(--panel-overlay);border-radius:7px;min-height:38px;padding:8px 12px;box-shadow:0 12px 32px #00000029}.hud-chip{justify-content:space-between;align-items:center;gap:12px;min-width:128px;display:flex}.hud-chip span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:900}.hud-chip strong{color:var(--text);font-size:16px}.possession-chip{min-width:min(280px,42vw)}.drawer-toggle{color:var(--gold);text-transform:uppercase;margin-left:auto;font-weight:900}.rematch-btn{color:var(--gold);font-weight:950}.play-layout{grid-template-columns:minmax(0,1fr) minmax(280px,320px);gap:10px}.field-mini-map{z-index:4;width:min(280px,24vw);height:132px;position:absolute;bottom:14px;right:14px;box-shadow:0 18px 42px #00000042}.command-panel{gap:12px;padding:14px}.game-shell.drawer-collapsed .play-layout{grid-template-columns:minmax(0,1fr)}.game-shell.drawer-collapsed .command-panel{display:none}.game-shell.drawer-collapsed .drawer-toggle{background:#f0d66a1f;border-color:#f0d66a80}.round-setup-card{background:color-mix(in srgb, var(--panel-strong) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;padding:14px}.round-setup-card>header{border-radius:12px 12px 0 0;margin:-14px -14px 0;padding:14px}.skill-panel,.roster-panel{border:1px solid color-mix(in srgb, var(--gold) 18%, var(--line));background:linear-gradient(135deg,#ffffff09,#0000 42%),#ffffff06;border-radius:10px;padding:10px}.skill-panel[open],.roster-panel[open]{background:linear-gradient(135deg, color-mix(in srgb, var(--blue) 10%, transparent), transparent 38%), color-mix(in srgb, var(--panel-soft) 58%, transparent)}.skill-list{gap:10px}.skill-row{border-color:color-mix(in srgb, var(--text) 13%, transparent);background:linear-gradient(135deg, #ffffff0b, transparent 48%), color-mix(in srgb, var(--panel-soft) 74%, transparent);border-radius:10px;padding:0;overflow:hidden}.team-playbook-card{border-color:color-mix(in srgb, var(--gold) 42%, var(--line));background:linear-gradient(110deg, color-mix(in srgb, var(--gold) 13%, transparent), transparent 62%), color-mix(in srgb, var(--panel-soft) 78%, transparent);padding:12px}.player-card{position:relative}.player-card:before{content:"";background:var(--blue);width:4px;position:absolute;inset:0 auto 0 0}.pompfer-card:before{background:color-mix(in srgb, var(--gold) 76%, var(--text))}.player-card-header{border-bottom:1px solid #fff7d71a;justify-content:space-between;align-items:center;gap:10px;padding:12px 12px 10px 16px;display:flex}.player-card-header div{gap:3px;min-width:0;display:grid}.player-card-header span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:950}.player-card-header strong{color:var(--text);font-size:16px}.player-card-header em{color:var(--muted);font-size:11px;font-style:normal;font-weight:900}.player-card-header small{color:#122024;background:var(--gold);text-align:center;border:1px solid #f0d66a47;border-radius:999px;min-width:54px;padding:5px 8px;font-size:12px;font-weight:950}.player-card-body{gap:10px;padding:10px 12px 12px 16px;display:grid}.loadout-controls{gap:8px}.player-card .loadout-controls{grid-template-columns:repeat(auto-fit,minmax(146px,1fr))}.position-control{grid-template-columns:1fr;gap:5px}.position-control span{letter-spacing:.05em;text-transform:uppercase;font-size:11px}.position-control select{background:linear-gradient(180deg, #ffffff0a, transparent), var(--control);border-color:#fff7d729;height:38px}.stat-stack{gap:8px;display:grid}.stat-control{background:linear-gradient(90deg, color-mix(in srgb, var(--gold) 16%, transparent) var(--stat-fill), transparent var(--stat-fill)), #0000001f;border:1px solid #fff7d71a;border-radius:8px;grid-template-columns:minmax(0,1fr) 28px 26px 28px;gap:8px;padding:7px;position:relative}.stat-control span{min-width:0;color:var(--text);text-transform:none;align-items:baseline;gap:8px;font-size:12px;display:flex}.stat-control button{border-radius:999px;min-height:28px}.stat-control strong{font-size:16px}.stat-control small{min-width:auto;color:var(--gold);font-size:11px;font-weight:950}.rulebook{color:var(--text);grid-template-columns:1fr;gap:10px;display:grid}.rule-group{background:linear-gradient(135deg,#ffffff0a,#0000 54%),#0000001f;border:1px solid #fff7d71f;border-radius:10px;padding:10px}.rule-group header{align-items:center;gap:9px;margin-bottom:8px;display:flex}.rule-group header span{border-radius:50%;width:11px;height:11px}.rule-group header strong{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:950}.rule-group ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.rule-group li{color:#f2ead1db;padding-left:15px;font-size:13px;font-weight:760;line-height:1.28;position:relative}.rule-group li:before{content:"";background:#f0d66ad1;border-radius:50%;width:5px;height:5px;position:absolute;top:.58em;left:2px}.play-layout,.game-shell.drawer-collapsed .play-layout,.game-shell.tactics-open .play-layout{grid-template-columns:minmax(0,1fr)}.command-panel{z-index:18;border-color:color-mix(in srgb, var(--gold) 24%, var(--line));background:radial-gradient(circle at 12% 8%, color-mix(in srgb, var(--blue) 16%, transparent), transparent 32%), linear-gradient(145deg, color-mix(in srgb, var(--panel-strong) 96%, transparent), color-mix(in srgb, var(--panel-soft) 88%, transparent));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:14px;width:min(920px,100vw - 36px);max-height:none;padding:14px;display:none;position:fixed;inset:76px auto 18px 50%;transform:translate(-50%)}.game-shell.tactics-open .command-panel{grid-template-columns:minmax(0,1fr) minmax(230px,270px);grid-auto-rows:max-content;align-content:start;display:grid}.game-shell.tactics-open .arena-wrap:after{content:"";z-index:6;pointer-events:none;background:#0000002e;position:absolute;inset:0}.drawer-heading{border-bottom:1px solid #fff7d71f;grid-column:1/-1;justify-content:space-between;align-items:start;gap:12px;padding-bottom:10px;display:flex}.drawer-heading h1{font-size:30px}#drawer-close{border-radius:999px;width:38px;min-height:38px;padding:0}.match-tools-panel,.status-grid{order:initial}.skill-panel{grid-area:2/1/span 4}.roster-panel{grid-area:3/2}.match-tools-panel{grid-area:2/2}.command-panel>.status-grid{display:none}.command-panel .skill-list{grid-template-columns:1fr;align-items:start}.command-panel .team-playbook-card{grid-column:auto}.command-panel .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.arena-wrap{justify-items:center;min-height:0}.arena-wrap canvas{width:min(100%,200vh - 376px);max-width:100%;height:auto;max-height:calc(100vh - 188px)}.possession-chip{--possession-tint:#f0d66a1a;border-color:color-mix(in srgb, var(--gold) 22%, var(--line));background:linear-gradient(90deg, var(--possession-tint), transparent 72%), var(--panel-overlay)}.possession-chip.blue-possession{--possession-tint:color-mix(in srgb, var(--blue) 28%, transparent);border-color:color-mix(in srgb, var(--blue) 62%, var(--line))}.possession-chip.red-possession{--possession-tint:color-mix(in srgb, var(--red) 28%, transparent);border-color:color-mix(in srgb, var(--red) 62%, var(--line))}.stone-chip{isolation:isolate;position:relative;overflow:hidden}.stone-chip:before{content:"";z-index:-1;height:4px;width:var(--stone-progress,0%);background:var(--gold);box-shadow:0 0 16px color-mix(in srgb, var(--gold) 70%, transparent);transition:width 90ms linear;position:absolute;inset:auto 0 0}.player-card{border-radius:9px}.player-card[draggable=true]{cursor:grab}.position-lane-label{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;align-self:end;margin:6px 6px -4px;font-size:11px;font-weight:950}.draggable-card{border-style:dashed;border-color:color-mix(in srgb, var(--gold) 42%, var(--line));background:linear-gradient(135deg, #ffffff0b, transparent 48%), color-mix(in srgb, var(--panel-soft) 62%, transparent);margin-left:2px;overflow:visible}.draggable-card:after{content:"";pointer-events:none;border:1px dashed #f0d66a52;border-radius:11px;position:absolute;inset:-3px}.drag-handle{opacity:.72;background:radial-gradient(circle,#f0d66a9e 1.1px,#0000 1.7px) 4px 5px/5px 5px,#f0d66a09;border:1px solid #f0d66a24;border-radius:6px;flex:none;place-items:center;width:20px;height:32px;display:inline-grid}.player-card.dragging,.formation-row.dragging{opacity:.48}.player-card.drag-over,.formation-row.drag-over{outline:2px solid var(--gold);outline-offset:2px}.player-card>summary{z-index:1;cursor:pointer;list-style:none;position:relative}.player-card>summary::-webkit-details-marker{display:none}.player-card>summary:after{content:">";color:var(--gold);font-size:13px;font-weight:950}.player-card[open]>summary:after{content:"v"}.player-card:not([open]) .player-card-header{border-bottom:0}.player-card:not([open]) .player-card-header strong{color:var(--gold)}.player-card-body{padding-top:8px}.stat-control{min-height:34px}.round-setup-card{width:min(760px,100% - 40px);max-height:calc(100% - 36px)}.round-setup-card>header{align-items:center}.round-setup-card>header button{min-height:34px;padding:0 14px}.formation-list{grid-template-columns:1fr;gap:7px}.formation-list>.position-lane-label{margin-top:2px}.formation-row.strategy-row{grid-template-columns:minmax(150px,.82fr) minmax(260px,1.18fr)}.formation-row.strategy-row header{align-items:center;min-height:42px}.formation-row{gap:7px;padding:8px}.formation-row header span{font-size:12px}.formation-row.strategy-row header span,.formation-row.strategy-row header strong{font-size:13px;line-height:1.2}.formation-row .loadout-controls{grid-template-columns:repeat(2,minmax(124px,1fr));gap:6px}.formation-row .position-control{grid-template-columns:68px minmax(0,1fr);gap:5px}.formation-row .position-control select{height:32px}@media (width<=960px){body{overflow:hidden auto}#app,.game-shell{height:auto;min-height:100vh}.game-shell{padding:10px;overflow:visible}.score-strip,.play-layout{grid-template-columns:1fr;overflow:visible}.score-strip{grid-template-columns:1fr 1fr}.match-core{grid-area:1/1/auto/-1}.arena-wrap{min-height:0}canvas{max-height:none}.command-panel{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;order:-1;width:auto;max-height:calc(100dvh - 74px);bottom:10px;left:10px;right:10px;overflow:auto;transform:none}.game-shell.tactics-open .command-panel{grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;align-content:start}.drawer-heading,.skill-panel,.match-tools-panel,.roster-panel{grid-area:auto/1}.match-tools-panel{order:1}.skill-panel{order:2}.roster-panel{order:3}.game-shell.drawer-collapsed .play-layout{grid-template-columns:1fr}.game-shell.drawer-collapsed .command-panel{display:none}.match-core{grid-template-columns:1fr}.top-controls{min-width:0}.core-hud-row{flex-wrap:wrap}.field-mini-map{width:210px;height:104px}.command-panel{top:64px}.command-panel .skill-list,.command-panel .roster-grid{grid-template-columns:1fr}.app-menu{flex-wrap:wrap;height:auto;padding:8px 10px}.theme-control{margin-left:0}h1{font-size:34px}.pvp-skill-setup-grid,.formation-list,.formation-row,.formation-row.strategy-row{grid-template-columns:1fr}.formation-row .loadout-controls,.formation-row .position-control{grid-template-columns:minmax(0,1fr)}.formation-manager-toolbar{grid-template-columns:1fr}}@media (height<=820px) and (width>=961px){.game-shell{gap:8px;padding:8px 14px 10px}.team-score,.match-core{min-height:54px;padding:8px 14px}.team-score strong,.match-core strong{font-size:30px}.hud-chip,.drawer-toggle,.rematch-btn{min-height:34px;padding:6px 10px}.arena-wrap canvas{width:min(100%,200vh - 316px);max-height:calc(100vh - 158px)}.round-setup-card{width:min(700px,100% - 32px);max-height:calc(100% - 28px)}}@media (width<=560px){.score-strip{gap:8px}.team-score,.match-core,.command-panel{padding:12px}.command-panel{width:auto;max-height:calc(100dvh - 16px);inset:8px}.drawer-heading{align-items:center}.drawer-heading h1{font-size:28px}.team-score{min-height:62px}.team-score strong{font-size:31px}.match-core strong{font-size:28px}.controls-row,.speed-control,.status-grid,.roster-grid{grid-template-columns:1fr}.roster-grid span{display:none}}
