@font-face{font-family:Pixelify;font-weight:500;src:url(../fonts/Pixelify500.woff2) format("woff2");font-display:block}@font-face{font-family:Pixelify;font-weight:700;src:url(../fonts/Pixelify700.woff2) format("woff2");font-display:block}@font-face{font-family:Inter;font-weight:100 900;src:url(../fonts/InterVar.woff2) format("woff2");font-display:block}@font-face{font-family:Tiny5;src:url(../fonts/Tiny5.woff2) format("woff2");font-display:block}html,body{margin:0;height:100%;background:#06061a;overflow:hidden;overscroll-behavior:none;touch-action:none}#game{position:fixed;inset:0;overflow:hidden}canvas{display:block;position:absolute;left:0;top:0;image-rendering:auto}#auth{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,#2834828c,#06061ae0);backdrop-filter:blur(4px);z-index:10;font-family:Inter,system-ui,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}#auth .win{width:min(360px,90vw);padding:22px 24px 24px;color:#f8f8ff;background:linear-gradient(180deg,#3b5fd2,#1f3598 45%,#0d1666);border:2px solid #f4f7ff;border-radius:12px;box-shadow:inset 0 0 0 3px #96a4e28c,inset 0 24px 36px #ffffff1a,0 12px 40px #040418b3;font-size:16px;line-height:1.45;letter-spacing:.01em;font-weight:500}#auth h1{margin:0 0 12px;text-align:center;font-family:Pixelify,Tiny5,monospace;font-size:36px;letter-spacing:2px;color:#ffdc6c;text-shadow:0 2px 0 #2a1a48,0 4px 14px rgba(255,200,80,.4);font-weight:700}#auth .tabs{display:flex;gap:8px;margin-bottom:12px}#auth .tabs button{flex:1;font:inherit;color:#a8b0d8;background:#060c3066;border:2px solid #5868b8;border-radius:8px;padding:4px;cursor:pointer;transition:border-color .15s,color .15s}#auth .tabs button.on{color:#ffdc6c;border-color:#ffdc6c}#auth label{display:block;margin:8px 0}#auth label.reg{display:none}#auth.register label.reg{display:block}#auth input{display:block;width:100%;box-sizing:border-box;margin-top:4px;font:inherit;color:#fff;background:#040824e0;border:2px solid #9098c8;border-radius:8px;padding:9px 11px;outline:none;transition:border-color .15s,box-shadow .15s}#auth input:focus{border-color:#ffdc6c;box-shadow:0 0 0 3px #ffdc6c33}#auth .err{min-height:20px;margin:6px 0;color:#ffa0a0;font-weight:600}#auth .go{width:100%;font:inherit;font-weight:700;color:#0c1040;background:linear-gradient(#ffe88a,#f2c23c);border:0;border-radius:8px;padding:9px;cursor:pointer;box-shadow:0 3px #a87a10}#auth .go:active{transform:translateY(2px);box-shadow:0 1px #a87a10}#auth .go:disabled{opacity:.6}.touch{position:fixed;inset:0;z-index:5;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none;--size: clamp(104px, 26vmin, 168px);--btn: clamp(58px, 14vmin, 86px);--above: 0px}.touch[hidden]{display:none}body:has(#auth) .touch{display:none}.touch .pad,.touch .btns,.touch .tops{position:absolute;pointer-events:none}.touch .stick,.touch .tbtn{pointer-events:auto;touch-action:none}.pad{left:max(env(safe-area-inset-left),14px);bottom:max(env(safe-area-inset-bottom),14px)}.stick{width:var(--size);height:var(--size);border-radius:50%;background:radial-gradient(circle at 50% 40%,#7896ff38,#0a104666);border:2px solid rgba(220,230,255,.55);box-shadow:0 6px 22px #00001480,inset 0 0 18px #a0beff40;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px)}.stick.on{border-color:#ffdc6c}.knob{width:42%;height:42%;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fff,#9ab4ff 70%);box-shadow:0 3px 10px #00001e99;pointer-events:none}.btns{right:max(env(safe-area-inset-right),14px);bottom:max(env(safe-area-inset-bottom),14px);width:calc(var(--btn) * 2.5);height:calc(var(--btn) * 2.3)}.tbtn{font:700 clamp(18px,4.4vmin,26px) / 1 Inter,system-ui,sans-serif;color:#fff;width:var(--btn);height:var(--btn);border-radius:50%;border:2px solid rgba(235,240,255,.75);background:radial-gradient(circle at 40% 30%,#6e8cff8c,#0e1864a6);box-shadow:0 5px 16px #0000148c;text-shadow:0 1px 3px #000;position:absolute;padding:0;cursor:pointer}.tbtn.on{transform:scale(.92);border-color:#ffdc6c;color:#ffdc6c}.tbtn.a{right:0;bottom:calc(var(--btn) * .55);background:radial-gradient(circle at 40% 30%,#ffe682b3,#aa6e14b3)}.tbtn.b{right:calc(var(--btn) * 1.2);bottom:0}.tbtn.m{right:calc(var(--btn) * .55);bottom:calc(var(--btn) * 1.35);width:calc(var(--btn) * .9);height:calc(var(--btn) * .55);border-radius:999px;font-size:clamp(12px,3vmin,17px)}.tops{top:max(env(safe-area-inset-top),10px);right:max(env(safe-area-inset-right),10px);display:flex;gap:10px}.tbtn.small{position:static;width:46px;height:46px;font-size:20px}.tbtn.small.off{opacity:.5;text-decoration:line-through}.tbtn[hidden]{display:none}.rotate{position:absolute;top:max(env(safe-area-inset-top),10px);left:50%;transform:translate(-50%);max-width:70vw;padding:8px 14px;border-radius:999px;background:#080c3cd9;border:1px solid rgba(220,230,255,.5);color:#fff;font:600 13px/1.3 Inter,system-ui,sans-serif;text-align:center;pointer-events:auto}.rotate[hidden]{display:none}body[data-scene=battle] .touch .pad,body[data-scene=battle] .touch .btns{bottom:calc(var(--above) + max(env(safe-area-inset-bottom),8px));opacity:.62}body[data-scene=battle] .touch{--size: clamp(86px, 20vmin, 128px);--btn: clamp(50px, 11vmin, 70px)}body[data-scene=title] .touch .pad,body[data-scene=end] .touch .pad,body[data-scene=title] .touch .tbtn.m,body[data-scene=end] .touch .tbtn.m{display:none}body[data-scene=title] .touch .btns,body[data-scene=end] .touch .btns{right:50%;transform:translate(50%)}body.portrait .touch{--size: clamp(110px, 30vw, 170px);--btn: clamp(60px, 17vw, 90px)}.hudbtns{position:fixed;z-index:20;top:max(env(safe-area-inset-top),8px);right:max(env(safe-area-inset-right),8px);display:flex;gap:8px}.hbtn{width:46px;height:46px;border-radius:14px;border:1.5px solid rgba(220,230,255,.55);background:#0a1046b8;color:#fff;font:600 21px/1 Inter,system-ui,sans-serif;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(6px);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.hbtn:hover{background:#1e2c82d9}.hbtn:focus-visible,.sbtn:focus-visible,.ptab:focus-visible,.overlay input:focus-visible{outline:3px solid #ffdc6c;outline-offset:2px}.hbtn.off{border-color:#ff7878cc}body.touch-ui .tops{right:calc(max(env(safe-area-inset-right),8px) + 108px);top:max(env(safe-area-inset-top),8px)}.overlay{position:fixed;inset:0;z-index:40;background:#020416b8;display:grid;place-items:center;padding:12px;backdrop-filter:blur(3px)}.panel{width:min(520px,100%);max-height:min(720px,100%);display:flex;flex-direction:column;border-radius:18px;border:2px solid rgba(225,232,255,.85);background:linear-gradient(180deg,#1a2a9a,#0a1252);color:#f8f8ff;font:500 16px/1.45 Inter,system-ui,sans-serif;box-shadow:0 18px 60px #0009;overflow:hidden}.phead{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 6px}.phead h2{margin:0;font:700 22px/1.2 Inter,system-ui,sans-serif;letter-spacing:.02em}.sbtn{min-height:44px;padding:0 16px;border-radius:12px;border:1.5px solid rgba(220,230,255,.6);background:#ffffff1a;color:#fff;font:600 15px/1 Inter,system-ui,sans-serif;cursor:pointer;touch-action:manipulation}.sbtn:hover{background:#fff3}.sbtn.on{background:#ffdc6c;color:#10143c;border-color:#ffdc6c}.sbtn.x{width:44px;padding:0;font-size:18px}.sbtn.danger{border-color:#ff8a8a;color:#ffd0d0}.ptabs{display:flex;gap:6px;padding:6px 16px 0;border-bottom:1px solid rgba(220,230,255,.25)}.ptab{min-height:44px;padding:0 14px;border:0;border-bottom:3px solid transparent;background:none;color:#c8d0ff;font:600 15px/1 Inter,system-ui,sans-serif;cursor:pointer}.ptab.on{color:#fff;border-bottom-color:#ffdc6c}.pbody{padding:6px 16px 18px;overflow-y:auto;overscroll-behavior:contain}.pbody h3{margin:18px 0 6px;font:700 13px/1.2 Inter,system-ui,sans-serif;text-transform:uppercase;letter-spacing:.1em;color:#ffdc6c}.pbody h3.danger{color:#ff9a9a}.pbody .row{display:grid;grid-template-columns:1fr minmax(120px,1.2fr) 48px;gap:10px;align-items:center;min-height:44px}.pbody .row.tog{grid-template-columns:1fr 28px}.pbody .row label{display:flex;flex-direction:column}.pbody .hint{color:#b4bdf0;font-size:13px;margin:2px 0}.pbody .row input[type=range]{width:100%;height:32px;accent-color:#ffdc6c}.pbody .row input[type=checkbox]{width:26px;height:26px;accent-color:#ffdc6c}.pbody .val{text-align:right;font-variant-numeric:tabular-nums;color:#dfe4ff}.pbody .seg{display:flex;gap:8px;margin:4px 0}.pbody .seg .sbtn{flex:1}.pbody .frow{display:flex;flex-direction:column;gap:4px;margin:8px 0}.pbody .frow input{min-height:44px;border-radius:10px;border:1.5px solid rgba(220,230,255,.6);background:#00001e8c;color:#fff;padding:0 12px;font:500 16px Inter,system-ui,sans-serif}.pbody .kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:4px 0}.pbody .kv dt{color:#b4bdf0}.pbody .kv dd{margin:0;overflow-wrap:anywhere}.pbody .btnrow{display:flex;gap:8px;flex-wrap:wrap}.pbody .msg{min-height:22px;margin-top:14px;color:#9dffb0}.pbody .msg.bad,.pbody .bad{color:#ff9a9a}.pbody .sbtn{margin:6px 6px 0 0}@media(max-height:520px){.panel{max-height:100%}.phead h2{font-size:18px}}@media(prefers-reduced-motion:reduce){.panel,.overlay{backdrop-filter:none}}
