:root{--a: #2b6cff;--b: #ff3b4e;--ink: #0a1826;--panel: rgba(12, 20, 32, .82);--panel-solid: #0c1420;--line: rgba(255, 255, 255, .12);--text: #eaf1fb;--muted: #9fb2cc;--accent: #1ecb7b;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;overflow:hidden;background:#06101c;color:var(--text);user-select:none;touch-action:none}#game{position:fixed;inset:0;display:block}#ui{position:fixed;inset:0;pointer-events:none;z-index:10}.pointer{pointer-events:auto}.scoreboard{position:absolute;top:14px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:3px}.score-pill{display:flex;align-items:stretch;border-radius:12px;overflow:hidden;box-shadow:0 6px 24px #00000073;border:1px solid var(--line);backdrop-filter:blur(8px);font-weight:800;font-size:26px}.score-pill .team{padding:8px 14px;color:#fff;min-width:92px;text-align:center;display:flex;align-items:center;gap:8px;justify-content:center;letter-spacing:.5px}.score-pill .team.left{background:linear-gradient(135deg,var(--a),#1a4fd0)}.score-pill .team.right{background:linear-gradient(135deg,var(--b),#d0212f);flex-direction:row-reverse}.score-pill .num{font-size:30px;min-width:26px}.score-pill .mid{background:var(--panel);padding:8px 14px;display:flex;align-items:center;font-size:20px;color:var(--muted)}.clock{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:3px 14px;font-size:14px;font-weight:700;letter-spacing:1px;color:var(--text);backdrop-filter:blur(8px)}.clock .half{color:var(--muted);font-size:11px;margin-left:6px}.topleft{position:absolute;top:14px;left:14px;display:flex;gap:8px;align-items:center}.topright{position:absolute;top:14px;right:14px;display:flex;gap:8px;align-items:center}.btn{pointer-events:auto;background:var(--panel);border:1px solid var(--line);color:var(--text);padding:9px 16px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;backdrop-filter:blur(8px);transition:transform .08s ease,background .15s ease;display:inline-flex;gap:8px;align-items:center}.btn:hover{background:#1e2d42e6}.btn:active{transform:scale(.96)}.btn.primary{background:linear-gradient(135deg,var(--accent),#14a866);border:none;color:#05130c}.btn.share{background:linear-gradient(135deg,#ffd23f,#ff9f1c);border:none;color:#241a00}.btn.icon{padding:9px 11px}.ping{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:12px;font-weight:700;color:var(--muted);display:flex;gap:6px;align-items:center;backdrop-filter:blur(8px)}.dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.dot.mid{background:#ffd23f}.dot.bad{background:var(--b)}.dot.off{background:#667}.radar{position:absolute;bottom:16px;left:16px;width:180px;height:116px;background:var(--panel);border:1px solid var(--line);border-radius:10px;backdrop-filter:blur(8px);padding:6px}.radar canvas{width:100%;height:100%;display:block;border-radius:6px}.meters{position:absolute;bottom:18px;left:50%;transform:translate(-50%);width:min(360px,60vw);display:flex;flex-direction:column;gap:6px}.meter{height:9px;background:#ffffff1f;border-radius:6px;overflow:hidden;position:relative}.meter .fill{height:100%;width:50%;border-radius:6px;transition:width .08s linear}.meter.stamina .fill{background:linear-gradient(90deg,#1ecb7b,#7dffb8)}.meter.charge .fill{background:linear-gradient(90deg,#ffd23f,#ff5f5f);width:0%}.meter .label{position:absolute;right:6px;top:-16px;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.banner{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%) scale(.8);text-align:center;opacity:0;transition:opacity .25s ease,transform .25s ease;pointer-events:none}.banner.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.banner .big{font-size:clamp(48px,12vw,130px);font-weight:900;letter-spacing:2px;text-shadow:0 8px 40px rgba(0,0,0,.6);line-height:.95}.banner .sub{font-size:clamp(16px,3vw,26px);font-weight:700;color:var(--muted);margin-top:6px}.toast-wrap{position:absolute;top:84px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center}.toast{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 18px;font-weight:700;font-size:14px;backdrop-filter:blur(8px);animation:toastIn .3s ease;box-shadow:0 6px 24px #0006}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}}.status-chip{position:absolute;bottom:16px;right:16px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700;backdrop-filter:blur(8px);display:none;align-items:center;gap:10px;max-width:260px}.status-chip.show{display:flex}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.25);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex:0 0 auto}@keyframes spin{to{transform:rotate(360deg)}}.overlay{position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,#14284699,#040a12eb);display:none;align-items:center;justify-content:center;pointer-events:auto;backdrop-filter:blur(4px)}.overlay.show{display:flex}.card{background:var(--panel-solid);border:1px solid var(--line);border-radius:18px;padding:28px;width:min(440px,92vw);box-shadow:0 30px 80px #0009;max-height:92vh;overflow-y:auto}.card h1{font-size:40px;font-weight:900;letter-spacing:1px;background:linear-gradient(135deg,#ffd23f,#1ecb7b,#2b6cff);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:2px}.card .tag{color:var(--muted);font-size:13px;margin-bottom:20px}.card .col{display:flex;flex-direction:column;gap:10px}.card .big-btn{pointer-events:auto;text-align:left;padding:14px 18px;border-radius:12px;border:1px solid var(--line);background:#ffffff0a;color:var(--text);font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:12px;transition:background .15s ease,transform .08s ease}.card .big-btn:hover{background:#ffffff17}.card .big-btn:active{transform:scale(.98)}.card .big-btn .ico{font-size:22px}.card .big-btn.play{background:linear-gradient(135deg,var(--accent),#12945c);color:#05130c;border:none}.card .big-btn.invite{background:linear-gradient(135deg,#ffd23f,#ff9f1c);color:#241a00;border:none}.setting{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.seg{display:flex;gap:4px;background:#ffffff0f;padding:3px;border-radius:9px}.seg button{pointer-events:auto;border:none;background:transparent;color:var(--muted);padding:5px 11px;border-radius:7px;font-weight:700;font-size:12px;cursor:pointer}.seg button.on{background:var(--a);color:#fff}.close-row{margin-top:18px;display:flex;justify-content:flex-end}.link-box{display:flex;gap:8px;margin:14px 0}.link-box input{flex:1;background:#00000059;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:12px;font-size:14px;font-weight:600}.keyrow{display:flex;gap:8px;align-items:center;padding:7px 0;font-size:14px;color:var(--muted)}.kbd{background:#ffffff1a;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:3px 9px;font-weight:800;color:var(--text);font-size:12px;min-width:26px;text-align:center}.touch{position:absolute;inset:0;pointer-events:none;display:none}.touch.show{display:block}.joy{position:absolute;bottom:26px;left:26px;width:130px;height:130px;border-radius:50%;background:#ffffff14;border:2px solid rgba(255,255,255,.18);pointer-events:auto;touch-action:none}.joy .stick{position:absolute;width:58px;height:58px;border-radius:50%;background:#ffffffb3;left:36px;top:36px;box-shadow:0 4px 14px #0006}.tbtns{position:absolute;bottom:22px;right:20px;width:230px;height:210px;pointer-events:none}.tbtn{position:absolute;width:56px;height:56px;border-radius:50%;border:none;font-weight:800;font-size:12px;color:#fff;pointer-events:auto;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px #0006;touch-action:none}.tbtn:active{filter:brightness(1.3)}.tbtn.shoot{right:64px;bottom:4px;background:linear-gradient(135deg,#ff5f5f,#d0212f);width:74px;height:74px;font-size:13px}.tbtn.pass{right:4px;bottom:60px;background:linear-gradient(135deg,#2b6cff,#1a4fd0)}.tbtn.lob{right:72px;bottom:86px;background:linear-gradient(135deg,#1ecb7b,#12945c);width:52px;height:52px}.tbtn.thru{right:10px;bottom:130px;background:linear-gradient(135deg,#9b6cff,#6a3fd0);width:50px;height:50px;font-size:11px}.tbtn.tackle{right:142px;bottom:66px;background:linear-gradient(135deg,#ffd23f,#ff9f1c);color:#241a00;width:54px;height:54px}.tbtn.sprint{right:150px;bottom:8px;background:#ffffff29;width:50px;height:50px;font-size:11px}.fatal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:#06101c;z-index:100;padding:24px;text-align:center}.fatal.show{display:flex}@media (max-width: 720px){.radar{width:120px;height:78px;bottom:auto;top:60px;left:12px}.meters{bottom:170px;width:46vw;left:auto;right:12px;transform:none}.score-pill{font-size:20px}.score-pill .team{min-width:66px;padding:6px 8px}.score-pill .num{font-size:22px}}.onb-root{position:fixed;inset:0;z-index:9000;pointer-events:none;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#eaf1fb;-webkit-user-select:none;user-select:none;overflow:hidden}.onb-root *{box-sizing:border-box}.onb-coach{position:absolute;left:50%;transform:translate(-50%) translateY(16px);width:min(420px,calc(100vw - 28px));background:#0c1420d9;-webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%);border:1px solid rgba(234,241,251,.12);border-radius:22px;box-shadow:0 18px 50px #0000008c,0 0 0 1px #2b6cff0f inset;padding:16px 18px 14px;opacity:0;transition:opacity .34s ease,transform .34s cubic-bezier(.2,.9,.25,1.2);pointer-events:auto;will-change:transform,opacity}.onb-root[data-mode=desktop] .onb-coach{bottom:74px}.onb-root[data-mode=mobile] .onb-coach{top:calc(14px + env(safe-area-inset-top,0px))}.onb-coach.is-in{opacity:1;transform:translate(-50%) translateY(0)}.onb-coach.is-out{opacity:0;transform:translate(-50%) translateY(14px)}.onb-coach-top{display:flex;align-items:center;gap:13px}.onb-emoji{font-size:40px;line-height:1;flex:0 0 auto;filter:drop-shadow(0 3px 6px rgba(0,0,0,.45));animation:onb-bob 2.4s ease-in-out infinite}@keyframes onb-bob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}.onb-text{flex:1 1 auto;min-width:0}.onb-title{font-size:20px;font-weight:800;letter-spacing:.2px;line-height:1.15;color:#eaf1fb}.onb-title .onb-accent{color:#1ecb7b}.onb-sub{margin-top:3px;font-size:13px;font-weight:500;line-height:1.25;color:#eaf1fbb3}.onb-coach-bottom{margin-top:13px;display:flex;align-items:center;justify-content:space-between;gap:10px}.onb-dots{display:flex;gap:8px;align-items:center}.onb-dot{width:9px;height:9px;border-radius:50%;background:#eaf1fb33;transition:all .3s ease}.onb-dot.is-done{background:#1ecb7b}.onb-dot.is-active{background:#2b6cff;box-shadow:0 0 0 4px #2b6cff40;animation:onb-dotpulse 1.3s ease-in-out infinite}@keyframes onb-dotpulse{0%,to{box-shadow:0 0 0 4px #2b6cff38}50%{box-shadow:0 0 0 7px #2b6cff14}}.onb-skip{pointer-events:auto;cursor:pointer;border:none;background:#eaf1fb14;color:#eaf1fbb8;font-size:13px;font-weight:700;padding:9px 16px;border-radius:999px;transition:background .2s ease,color .2s ease,transform .08s ease;min-height:38px}.onb-skip:hover{background:#eaf1fb29;color:#eaf1fb}.onb-skip:active{transform:scale(.94)}.onb-keys{position:absolute;left:50%;transform:translate(-50%);display:flex;gap:10px;align-items:flex-end;justify-content:center;flex-wrap:wrap;max-width:92vw;opacity:0;transition:opacity .3s ease;pointer-events:none}.onb-root[data-mode=desktop] .onb-keys{bottom:200px}.onb-keys.is-in{opacity:1}.onb-key{min-width:52px;height:52px;padding:0 14px;border-radius:14px;background:linear-gradient(180deg,#1e2c42f5,#0e1624f5);border:1px solid rgba(234,241,251,.16);box-shadow:0 6px #00000080,0 10px 22px #00000073;color:#eaf1fb;font-size:22px;font-weight:800;display:flex;align-items:center;justify-content:center;animation:onb-keypulse 1.15s ease-in-out infinite}.onb-key.is-wide{min-width:84px;font-size:16px;letter-spacing:.5px}@keyframes onb-keypulse{0%,to{transform:translateY(0);border-color:#1ecb7b59;box-shadow:0 6px #00000080,0 0 #1ecb7b80,0 10px 22px #00000073}50%{transform:translateY(-6px);border-color:#1ecb7be6;box-shadow:0 6px #00000080,0 0 0 8px #1ecb7b24,0 10px 22px #00000073}}.onb-key:nth-child(2){animation-delay:.12s}.onb-key:nth-child(3){animation-delay:.24s}.onb-key:nth-child(4){animation-delay:.36s}.onb-pointer{position:absolute;width:148px;height:148px;opacity:0;transition:opacity .3s ease;pointer-events:none}.onb-pointer.is-in{opacity:1}.onb-pointer.at-joystick{left:26px;bottom:calc(14px + env(safe-area-inset-bottom,0px))}.onb-pointer.at-buttons{right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}.onb-ring{position:absolute;inset:0;border-radius:50%;border:3px solid rgba(30,203,123,.9);box-shadow:0 0 22px #1ecb7b8c}.onb-ring:before,.onb-ring:after{content:"";position:absolute;inset:0;border-radius:50%;border:3px solid rgba(30,203,123,.55);animation:onb-ringpulse 1.6s ease-out infinite}.onb-ring:after{animation-delay:.8s}@keyframes onb-ringpulse{0%{transform:scale(.72);opacity:.9}to{transform:scale(1.5);opacity:0}}.onb-arrow{position:absolute;font-size:40px;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.6));animation:onb-arrowbob 1s ease-in-out infinite}.onb-pointer.at-joystick .onb-arrow,.onb-pointer.at-buttons .onb-arrow{top:-46px;left:50%;transform:translate(-50%)}@keyframes onb-arrowbob{0%,to{margin-top:0}50%{margin-top:8px}}.onb-plabel{position:absolute;left:50%;transform:translate(-50%);top:-84px;white-space:nowrap;background:#0c1420e6;border:1px solid rgba(30,203,123,.5);color:#eaf1fb;font-size:13px;font-weight:800;padding:6px 12px;border-radius:999px;box-shadow:0 8px 20px #00000080}.onb-check{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.4);width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 50% 42%,#1ecb7bfa,#14965cf2);box-shadow:0 0 0 10px #1ecb7b2e,0 16px 40px #00000080;display:flex;align-items:center;justify-content:center;font-size:64px;color:#fff;opacity:0;pointer-events:none;z-index:3}.onb-check.is-pop{animation:onb-checkpop .85s cubic-bezier(.2,.9,.25,1.3) forwards}@keyframes onb-checkpop{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(-12deg)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.08) rotate(4deg)}60%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-55%) scale(1.05)}}.onb-finish{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.6);text-align:center;padding:26px 34px;border-radius:26px;background:#0c1420e6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,210,63,.4);box-shadow:0 22px 60px #0009;opacity:0;pointer-events:none;z-index:4}.onb-finish.is-in{animation:onb-finishpop .6s cubic-bezier(.2,.9,.25,1.35) forwards}.onb-finish.is-out{opacity:0;transform:translate(-50%,-50%) scale(.9);transition:opacity .4s ease,transform .4s ease}@keyframes onb-finishpop{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.onb-finish-emoji{font-size:60px;animation:onb-bob 1.4s ease-in-out infinite}.onb-finish-title{margin-top:8px;font-size:26px;font-weight:900;color:#ffd23f;text-shadow:0 2px 10px rgba(0,0,0,.5)}.onb-finish-sub{margin-top:4px;font-size:15px;font-weight:600;color:#eaf1fb}.onb-confetti{position:absolute;top:-8px;width:9px;height:14px;border-radius:2px;opacity:0;z-index:3}.onb-confetti.is-go{animation:onb-fall 1.5s ease-in forwards}@keyframes onb-fall{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(80vh) rotate(540deg)}}@media (prefers-reduced-motion: reduce){.onb-emoji,.onb-key,.onb-dot.is-active,.onb-ring:before,.onb-ring:after,.onb-arrow,.onb-finish-emoji{animation:none!important}}
