:root[data-theme=dark]{--bg-1:#0a1410;--bg-2:#12241b;--bg-3:#1b3327;--bg-4:#1f9d55;--bg-5:#2f6fd0;--bg-6:#00000094;--text-1:#f2f7f4;--text-2:#b9c9c1;--text-3:#f5b72e;--text-4:#46d67f;--text-5:#ff6b5e;--text-6:#fff;--edge:#ffffff24;--edge-strong:#ffffff47;--shadow:0 6px 24px #00000073}:root[data-theme=light]{--bg-1:#eef2ef;--bg-2:#fff;--bg-3:#e2eae5;--bg-4:#17864a;--bg-5:#2563b0;--bg-6:#0c18126b;--text-1:#10201a;--text-2:#3d524a;--text-3:#c98a12;--text-4:#0f7a41;--text-5:#c0392b;--text-6:#fff;--edge:#0c181224;--edge-strong:#0c18124d;--shadow:0 6px 24px #0c18122e}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;background:var(--bg-1);width:100%;height:100%;color:var(--text-1);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden}#app{position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}#scene{touch-action:none;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}#ui-root{pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:absolute;top:0;bottom:0;left:0;right:0}.hud-band{top:calc(env(safe-area-inset-top) + 1vh);left:calc(env(safe-area-inset-left) + 1.6vh);pointer-events:none;position:absolute}.scoreboard{letter-spacing:.02em;grid-template-rows:auto auto;grid-template-columns:auto auto auto auto auto;align-items:stretch;font-size:clamp(12px,3.4vh,20px);font-weight:800;line-height:1;display:grid}.scoreboard>.team-badge,.scoreboard>.team-name{background:var(--bg-6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);grid-row:1}.team-badge{width:clamp(16px,4.2vh,28px);display:block;position:relative}.team-badge:after{content:"";background:var(--kit,var(--bg-4));box-shadow:0 0 0 1.5px var(--edge-strong);border-radius:2px 2px 45% 45%;position:absolute;top:22%;bottom:22%;left:18%;right:18%}.team-badge[data-side=home]{border-radius:.6vh 0 0 .6vh}.team-badge[data-side=away]{border-radius:0 .6vh .6vh 0}.scoreboard .team-name{text-overflow:ellipsis;white-space:nowrap;max-width:clamp(84px,36vh,200px);color:var(--text-6);align-content:center;padding:0 1.2vh;font-weight:700;display:block;overflow:hidden}.scoreboard .score{min-width:clamp(64px,16vh,110px);color:var(--text-1);background:var(--bg-3);font-variant-numeric:tabular-nums;grid-area:1/3;justify-content:center;align-items:center;gap:1vh;padding:.9vh 1.6vh;font-size:1.25em;display:flex}.score-sep{background:var(--edge-strong);border-radius:1px;width:2px;height:.8em;display:block}.clock{text-align:center;background:var(--bg-4);color:var(--text-6);font-variant-numeric:tabular-nums;border-radius:0 0 .6vh .6vh;grid-area:2/3;padding:.5vh 0;font-size:.95em;font-weight:800}.half{background:var(--bg-6);color:var(--text-6);letter-spacing:.04em;border-radius:.5vh;grid-area:2/4/auto/6;place-self:start;margin:.4vh 0 0 .6vh;padding:.3vh .8vh;font-size:clamp(9px,2.4vh,12px);font-weight:600}#input-layer{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}#gesture-layer{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:absolute;top:0;bottom:0;left:0;right:0}.gesture-fx{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.gfx-ripple{--c:var(--text-6);border:3px solid var(--c);width:56px;height:56px;box-shadow:0 0 10px color-mix(in srgb, var(--c) 60%, transparent);pointer-events:none;border-radius:50%;margin:-28px 0 0 -28px;animation:.45s ease-out forwards gfx-ripple;position:absolute}@keyframes gfx-ripple{0%{opacity:1;transform:scale(.35)}to{opacity:0;transform:scale(1.35)}}.gfx-marker{--c:var(--text-6);border:3px solid var(--c);width:64px;height:26px;box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 35%, transparent), 0 0 14px var(--c);opacity:0;pointer-events:none;border-radius:50%;margin:-13px 0 0 -32px;animation:.6s ease-out gfx-marker;position:absolute}@keyframes gfx-marker{0%{transform:scale(1.6)}to{transform:scale(1)}}.gfx-pass{--c:var(--bg-5)}.gfx-through,.gfx-second{--c:var(--text-3)}.gfx-shoot,.gfx-press,.gfx-slide{--c:var(--text-5)}.gfx-switch,.gfx-clear{--c:var(--text-4)}@media (prefers-reduced-motion:reduce){.gfx-ripple,.gfx-marker{animation:none}.gfx-ripple{opacity:.8}}#joystick-zone{left:env(safe-area-inset-left);top:16vh;bottom:env(safe-area-inset-bottom);pointer-events:auto;touch-action:none;width:45%;position:absolute}.joystick{--jd:clamp(112px, 28vh, 210px);width:var(--jd);height:var(--jd);margin-left:calc(var(--jd) / -2);margin-top:calc(var(--jd) / -2);background:radial-gradient(circle, transparent 52%, var(--bg-6) 100%), var(--bg-6);box-shadow:inset 0 0 0 2px var(--edge), 0 0 0 1px var(--edge);opacity:1;pointer-events:none;border-radius:50%;transition:opacity .15s ease-out;position:absolute}#joystick.resting{opacity:.75}.joystick .knob{background:radial-gradient(circle at 50% 40%, var(--text-6) 0 55%, color-mix(in srgb, var(--text-6) 78%, var(--bg-6)) 100%);width:56%;height:56%;box-shadow:0 3px 10px var(--bg-6), inset 0 -3px 6px color-mix(in srgb, var(--bg-6) 45%, transparent);border-radius:50%;margin-top:-28%;margin-left:-28%;position:absolute;top:50%;left:50%}#action-zone{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}:root{--bm:clamp(88px, 26vh, 176px);--bs:clamp(64px, 19vh, 128px)}.action-btn{--d:var(--bs);--ring:var(--edge-strong);width:var(--d);height:var(--d);right:calc(env(safe-area-inset-right) + var(--bm) * var(--cx) - var(--d) / 2);bottom:calc(env(safe-area-inset-bottom) + var(--bm) * var(--cy) - var(--d) / 2);border:calc(var(--d) * .065) solid var(--ring);background:radial-gradient(circle at 50% 28%, color-mix(in srgb, var(--text-6) 16%, transparent) 0, transparent 55%), radial-gradient(circle at 50% 50%, transparent 55%, color-mix(in srgb, var(--ring) 30%, transparent) 100%), color-mix(in srgb, var(--bg-6) 80%, var(--bg-4));box-shadow:0 0 0 calc(var(--d) * .03) color-mix(in srgb, var(--text-6) 28%, transparent), 0 4px 14px var(--bg-6), inset 0 2px 6px color-mix(in srgb, var(--text-6) 18%, transparent);color:var(--text-6);font-weight:800;font-size:clamp(13px, calc(var(--d) * .2), 24px);text-align:center;text-shadow:0 1px 3px var(--bg-6);pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);white-space:pre-line;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;line-height:1.1;transition:transform 70ms ease-out,border-color 70ms ease-out,box-shadow 70ms ease-out;display:flex;position:absolute}.action-btn .label{pointer-events:none;position:relative}.action-btn.pressed{border-color:color-mix(in srgb, var(--ring) 55%, var(--text-6));box-shadow:0 0 0 calc(var(--d) * .03) color-mix(in srgb, var(--ring) 60%, transparent), 0 0 calc(var(--d) * .28) color-mix(in srgb, var(--ring) 75%, transparent), inset 0 0 calc(var(--d) * .25) color-mix(in srgb, var(--ring) 45%, transparent);transform:scale(.9)}.action-btn .charge{--p:0;inset:calc(var(--d) * -.14);pointer-events:none;background:conic-gradient(from 0deg, var(--text-6) calc(var(--p) * 1turn), transparent 0);filter:drop-shadow(0 0 4px var(--ring));border-radius:50%;position:absolute;-webkit-mask:radial-gradient(closest-side,#0000 86%,#000 87.5%);mask:radial-gradient(closest-side,#0000 86%,#000 87.5%)}.btn-sprint{--d:var(--bm);--cx:.62;--cy:.64;--ring:var(--text-4);font-size:clamp(14px, calc(var(--d) * .17), 26px)}.btn-pass{--cx:2;--cy:.56;--ring:var(--bg-5)}.btn-through{--cx:1.54;--cy:1.58;--ring:var(--text-3)}.btn-strike{--cx:.54;--cy:2.02;--ring:var(--text-5)}.action-btn .swipe-tag{--a:0deg;background:var(--bg-6);border:2px solid var(--ring);color:var(--text-6);white-space:nowrap;pointer-events:none;border-radius:999px;padding:2px 8px 2px 18px;font-size:clamp(11px,2.6vh,15px);font-weight:800;line-height:1.3;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.action-btn .swipe-tag:before{content:"";border-left:8px solid var(--text-6);width:0;height:0;transform:rotate(var(--a));transform-origin:3px;border-top:4px solid #0000;border-bottom:4px solid #0000;margin-top:-4px;position:absolute;top:50%;left:6px}.action-btn .swipe-tag.hidden{display:none}html[lang=en] .action-btn{font-size:clamp(10px, calc(var(--d) * .14), 19px)}#overlay-root{pointer-events:none;z-index:5;position:absolute;top:0;bottom:0;left:0;right:0}.modal-scrim{background:var(--bg-6);pointer-events:auto;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.modal-card{background:var(--bg-2);width:min(560px,88vw);max-height:85vh;color:var(--text-1);border:1px solid var(--edge);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.modal-head{z-index:2;background:var(--bg-2);border-bottom:1px solid var(--edge);justify-content:space-between;align-items:center;padding:14px 16px;display:flex;position:sticky;top:0}.modal-head h2{margin:0;font-size:17px}.modal-close{border:1px solid var(--edge);background:var(--bg-3);width:34px;height:34px;color:var(--text-1);cursor:pointer;border-radius:8px;font-size:17px}.modal-body{-webkit-overflow-scrolling:touch;flex:1;padding:14px 16px;overflow-y:auto}.modal-foot{z-index:2;background:var(--bg-2);border-top:1px solid var(--edge);justify-content:flex-end;gap:10px;padding:12px 16px;display:flex;position:sticky;bottom:0}.btn{border:1px solid var(--edge);background:var(--bg-3);min-height:44px;color:var(--text-1);cursor:pointer;border-radius:9px;padding:0 18px;font-size:15px;font-weight:600}.btn.primary{background:var(--bg-4);color:var(--text-6);border-color:var(--bg-4)}.btn.danger{background:var(--bg-3);color:var(--text-5);border-color:var(--text-5)}#loading{z-index:30;background:var(--bg-1);pointer-events:auto;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}#loading .bar{background:var(--bg-3);border-radius:3px;width:min(320px,60vw);height:6px;overflow:hidden}#loading .bar>i{background:var(--bg-4);width:0%;height:100%;transition:width .15s linear;display:block}#loading .label{color:var(--text-2);font-size:14px}.hidden{display:none!important}.muted{color:var(--text-2)}.stamina{background:var(--bg-6);color:var(--text-6);border-radius:999px;grid-area:2/1/auto/3;place-self:start end;align-items:center;gap:.6vh;margin:.4vh .6vh 0 0;padding:.3vh .8vh;font-size:clamp(9px,2.4vh,12px);font-weight:600;display:flex}.stamina-label{white-space:nowrap}.stamina-bar{background:var(--bg-3);border-radius:999px;width:clamp(48px,13vh,110px);height:.9vh;min-height:5px;overflow:hidden}.stamina-bar>i{background:var(--bg-4);width:100%;height:100%;transition:width .2s linear;display:block}.stamina.low .stamina-bar>i{background:var(--text-5)}.corner-tools{top:calc(env(safe-area-inset-top) + .6vh);right:calc(env(safe-area-inset-right) + 1.2vh);pointer-events:auto;gap:.8vh;display:flex;position:absolute}.icon-btn{border:1px solid var(--edge);background:var(--bg-6);width:clamp(44px,9vh,52px);height:clamp(44px,9vh,52px);color:var(--text-6);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:50%;font-size:clamp(13px,2vh,20px);line-height:1}.icon-btn:active{background:var(--bg-4);color:var(--text-6)}.icon-btn.on{background:var(--bg-4);color:var(--text-6);border-color:var(--bg-4)}.banner{left:50%;top:calc(env(safe-area-inset-top) + .6vh);background:var(--bg-6);color:var(--text-6);border:1px solid var(--edge-strong);border-left:.6vh solid var(--bg-4);letter-spacing:.06em;white-space:nowrap;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:1vh;padding:.6vh 2.4vh;font-size:clamp(14px,3.4vh,28px);font-weight:800;animation:.22s ease-out banner-in;position:absolute;transform:translate(-50%)}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-40%)scale(.86)}to{opacity:1;transform:translate(-50%)scale(1)}}.menu-scrim{background:var(--bg-1);pointer-events:auto;justify-content:center;align-items:center;padding:3vh 3vw;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto}.menu-card{background:var(--bg-2);border:1px solid var(--edge);width:min(720px,94vw);max-height:92vh;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:1.6vh;padding:2.4vh 2.6vh;display:flex;overflow-y:auto}.menu-title{text-align:center;color:var(--text-1);margin:0;font-size:clamp(22px,4.6vh,40px)}.menu-block h3{color:var(--text-2);margin:0 0 .8vh;font-size:clamp(12px,1.9vh,17px);font-weight:600}.chip-grid{flex-wrap:wrap;gap:.9vh;display:flex}.chip{border:1px solid var(--edge);background:var(--bg-3);min-height:44px;color:var(--text-1);cursor:pointer;border-radius:999px;align-items:center;gap:.7vh;padding:0 1.4vh;font-size:clamp(12px,1.9vh,16px);display:flex}.chip.on{background:var(--bg-4);color:var(--text-6);border-color:var(--bg-4)}.kit-swatch{background:linear-gradient(135deg, var(--kit-1) 0 50%, var(--kit-2) 50% 100%);border-radius:50%;width:1.6vh;min-width:11px;height:1.6vh;min-height:11px}.menu-actions{flex-direction:column;gap:1vh;margin-top:.6vh;display:flex}.btn.wide{width:100%;min-height:48px;font-size:clamp(14px,2.2vh,19px)}.settings{flex-direction:column;gap:14px;display:flex}.settings-row{justify-content:space-between;align-items:center;gap:12px;min-height:40px;display:flex}.settings-label{color:var(--text-2);font-size:15px}.settings-value{align-items:center;gap:8px;display:flex}.seg{border:1px solid var(--edge);border-radius:9px;display:flex;overflow:hidden}.seg-btn{background:var(--bg-3);min-width:46px;min-height:38px;color:var(--text-2);cursor:pointer;border:0;padding:0 12px;font-size:14px}.seg-btn.on{background:var(--bg-4);color:var(--text-6)}.switch{border:1px solid var(--edge);background:var(--bg-3);width:58px;min-height:38px;color:var(--text-2);cursor:pointer;border-radius:999px;font-size:16px}.switch.on{background:var(--bg-4);color:var(--text-6);border-color:var(--bg-4)}.range{width:min(220px,46vw);accent-color:var(--bg-4);background:0 0}.value-grow{flex:1;min-width:0}.cam-range{flex:1;min-width:80px;height:44px}.range-end{color:var(--text-2);white-space:nowrap;font-size:13px}.settings-block h3{color:var(--text-2);align-items:center;gap:8px;margin:6px 0 8px;font-size:15px;display:flex}.badge{background:var(--bg-3);color:var(--text-2);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:500}.binding-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.binding-list li{color:var(--text-2);align-items:center;gap:10px;font-size:14px;display:flex}.binding-list kbd{background:var(--bg-3);border:1px solid var(--edge);min-width:90px;color:var(--text-1);text-align:center;border-radius:6px;padding:4px 8px;font-family:inherit;font-size:12px}.pause-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;width:100%;display:flex}.pause-body{text-align:center}.pause-score{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:clamp(15px,2.3vh,20px);font-weight:600}.stats-block{text-align:left;margin-top:1.2vh}.stats-block h3{color:var(--text-2);text-align:center;letter-spacing:.04em;margin:0 0 .6vh;font-size:clamp(12px,1.7vh,15px);font-weight:600}.stats-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:clamp(12px,1.75vh,15px)}.stats-table td{border-bottom:1px solid var(--edge);color:var(--text-2);padding:.5vh .6vh}.stats-table tr:last-child td{border-bottom:none}.stats-table .stats-val{width:27%;color:var(--text-1);font-weight:600}.stats-table .stats-val:first-child{text-align:right}.stats-table .stats-name{text-align:center;color:var(--text-2)}.tutorial{left:50%;top:calc(env(safe-area-inset-top) + max(17vh, 64px));background:var(--bg-6);border:1px solid var(--edge);max-width:min(60vw,560px);color:var(--text-6);pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;align-items:center;gap:1.2vh;padding:.6vh .6vh .6vh 1.6vh;font-size:clamp(12px,1.9vh,16px);display:flex;position:absolute;transform:translate(-50%)}.tutorial-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tutorial-skip{border:1px solid var(--edge);background:var(--bg-3);min-height:44px;color:var(--text-2);cursor:pointer;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:0 12px;font-size:clamp(11px,1.6vh,14px)}@media (max-height:420px){.banner{font-size:clamp(13px,4.4vh,18px)}.menu-card{gap:1vh;padding:1.6vh}}.rotate-gate{z-index:40;background:var(--bg-1);pointer-events:auto;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.rotate-card{text-align:center;max-width:320px;color:var(--text-1)}.rotate-icon{color:var(--text-4);margin-bottom:12px;font-size:56px;line-height:1}.rotate-card h2{margin:0 0 8px;font-size:20px}.rotate-card p{color:var(--text-2);margin:0;font-size:14px}.rotate-card .btn{margin-top:18px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
