:root{color:#f7fbff;font-synthesis:none;--cyan:#41dcff;--cyan-deep:#0f6d9d;--coral:#ff768e;--coral-deep:#a72f66;--ink:#070b19;--panel:#080c1cdb;--line:#ffffff29;background:#070b19;font-family:Noto Sans CJK SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(circle at 50% 22%,#222b4e,#070b19 58%)}button{font:inherit}button:focus-visible{outline-offset:3px;outline:3px solid #fff}.is-hidden{display:none!important}#game-canvas{place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}#game-canvas canvas{filter:saturate(1.06)contrast(1.02);max-width:100%;max-height:100%;display:block}.overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#0306126b;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.overlay--start{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(90deg,#020716f0 0%,#030714b8 42%,#03071414 76%);justify-content:start;padding-left:clamp(24px,7vw,110px);overflow:hidden}.overlay--compact{background:#030612bd}.start-card{border:1px solid var(--line);background:linear-gradient(145deg,#0a1127f0,#0b0e1ed1);border-radius:28px;width:min(550px,94vw);padding:32px;box-shadow:0 32px 90px #0000006b,inset 0 1px #ffffff17}.kicker{color:var(--cyan);letter-spacing:.18em;margin:0 0 12px;font-size:12px;font-weight:900}h1{letter-spacing:-.05em;text-transform:uppercase;text-shadow:0 8px #00000038;margin:0;font-family:Impact,Noto Sans CJK SC,sans-serif;font-size:clamp(54px,7vw,92px);line-height:.84}h1 span{color:#0000;-webkit-text-stroke:2px var(--coral);text-shadow:0 0 30px #ff768e47}.intro{color:#cbd6ea;max-width:460px;margin:24px 0;line-height:1.75}kbd{color:#fff;background:#ffffff14;border:1px solid #ffffff3d;border-bottom-width:3px;border-radius:7px;place-items:center;min-width:27px;min-height:27px;margin:0 2px;font-size:12px;font-weight:900;display:inline-grid}.choice-group{border:0;margin:18px 0;padding:0}.choice-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.choice-grid .choice-group{margin:0 0 18px}.choice-grid .segmented button{white-space:nowrap;padding-inline:8px}.choice-group legend{color:#9cabca;letter-spacing:.08em;margin-bottom:8px;font-size:12px;font-weight:900}.segmented{border:1px solid var(--line);background:#0000003b;border-radius:14px;grid-template-columns:1fr 1fr;gap:6px;padding:6px;display:grid}.segmented button{color:#95a3c2;cursor:pointer;background:0 0;border:0;border-radius:9px;padding:11px 14px;font-weight:900}.segmented button.is-selected{color:#09101f;background:#f3f8ff;box-shadow:0 6px 20px #0000003d}.primary-button,.secondary-button{cursor:pointer;border-radius:14px;width:100%;min-height:54px;font-weight:900}.primary-button{background:linear-gradient(100deg, var(--cyan), #86f4ff 46%, var(--coral));color:#08111e;border:0;justify-content:space-between;align-items:center;margin-top:20px;padding:0 19px;display:flex;box-shadow:0 12px 30px #41dcff38}.primary-button:hover{filter:brightness(1.07);transform:translateY(-1px)}.secondary-button{border:1px solid var(--line);color:#cbd6ea;background:#ffffff0a;margin-top:10px}.asset-note{color:#6f7d9e;text-align:center;margin:14px 0 0;font-size:11px}.hud{z-index:40;top:max(16px, env(safe-area-inset-top));pointer-events:none;grid-template-columns:180px 1fr 180px;align-items:start;gap:16px;width:min(1180px,100% - 32px);height:82px;display:grid;position:absolute;left:50%;transform:translate(-50%)}.fighter-label{text-shadow:0 2px 10px #000;flex-direction:column;padding-top:5px;display:flex}.fighter-label--right{text-align:right}.fighter-label__eyebrow{color:#94a4c7;letter-spacing:.16em;font-size:9px;font-weight:900}.fighter-label strong{font-size:21px;font-weight:900}.health{padding-top:7px;position:relative}.health__track{background:#16192c;border:2px solid #ffffffb3;border-radius:999px;height:24px;padding:4px;overflow:hidden;box-shadow:0 8px 18px #0006}.health__fill{border-radius:inherit;background:linear-gradient(90deg, var(--cyan), #cbf8ff);width:50%;height:100%;transition:width .1s linear}.health__fill[data-side=toy]{background:linear-gradient(90deg, #ffd1d8, var(--coral));margin-left:auto}.health__icons{color:#fff;justify-content:space-between;align-items:center;font-size:21px;display:flex;position:absolute;inset:0;transform:translateY(-1px)}.health__icons span:first-child{color:var(--cyan)}.health__icons span:last-child{color:var(--coral)}.stats{color:#c8d3e8;font-variant-numeric:tabular-nums;letter-spacing:.08em;gap:18px;font-size:12px;font-weight:900;display:flex;position:absolute;top:42px;left:50%;transform:translate(-50%)}.autoplay-badge{color:#a7f4ff;letter-spacing:.08em;white-space:nowrap;background:#040c1cd1;border:1px solid #7cecff70;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:9px;font-weight:900;display:flex;position:absolute;top:65px;left:50%;transform:translate(-50%);box-shadow:0 0 20px #41dcff2e}.autoplay-badge span{background:#ff768e;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite auto-record-pulse;box-shadow:0 0 10px #ff768e}@keyframes auto-record-pulse{50%{opacity:.45;transform:scale(.72)}}.icon-button{border:1px solid var(--line);background:var(--panel);color:#fff;pointer-events:auto;cursor:pointer;border-radius:50%;width:38px;height:38px;position:fixed;top:48px;right:0}.touch-controls{z-index:70;left:50%;bottom:calc(82px + env(safe-area-inset-bottom));gap:10px;display:none;position:absolute;transform:translate(-50%)}.touch-controls button{color:#eaf7ff;touch-action:manipulation;background:#080f21b8;border:2px solid #ffffff94;border-radius:18px;width:68px;height:68px;font-family:Arial Black,sans-serif;font-size:38px;box-shadow:0 8px 20px #0000004d}.touch-controls button:active,.touch-controls button.is-held{background:#41dcff73;transform:scale(.92);box-shadow:0 0 0 4px #41dcff33,0 0 28px #41dcff6b}.countdown{z-index:80;color:#fff;text-shadow:8px 10px #0d7499,-8px -4px #a52e62,0 24px 60px #000;pointer-events:none;font-family:Impact,sans-serif;font-size:min(26vw,220px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.modal-card{border:1px solid var(--line);text-align:center;background:linear-gradient(145deg,#0d142bfa,#070a18fa);border-radius:26px;width:min(440px,92vw);padding:30px;box-shadow:0 30px 90px #000}.modal-card h2{margin:0 0 22px;font-size:38px}.result-grid{grid-template-columns:1fr 1fr;gap:8px;margin:20px 0;display:grid}.result-grid div{border:1px solid var(--line);background:#ffffff09;border-radius:12px;flex-direction:column;gap:5px;padding:15px;display:flex}.result-grid span{color:#8290ad;font-size:11px}.result-grid strong{font-size:24px}@media (max-width:760px),(pointer:coarse){.overlay--start{background:#030612bd;justify-content:center;padding:14px}.overlay--start:after{content:"";z-index:0;aspect-ratio:1;opacity:.8;filter:drop-shadow(0 15px 24px #00000080);pointer-events:none;background:50%/contain no-repeat;width:230px;position:absolute;top:12px;right:0}.overlay--start[data-side=block]:after{background-image:url(../assets/characters/block-fighter/02.webp)}.overlay--start[data-side=toy]:after{background-image:url(../assets/characters/toy-maestro/02.webp)}.start-card{z-index:1;border-radius:22px;padding:22px;position:relative}h1{font-size:clamp(44px,15vw,68px)}.intro{margin:18px 0;font-size:13px}.choice-group{margin:12px 0}.touch-controls{display:flex}.hud{top:max(8px, env(safe-area-inset-top));grid-template-columns:94px 1fr 94px;gap:6px}.fighter-label strong{font-size:13px}.fighter-label__eyebrow{display:none}.stats{gap:8px;font-size:9px;top:38px}.autoplay-badge{padding:4px 8px;font-size:8px;top:57px}.icon-button{top:40px;right:-2px}}@media (max-width:760px) and (orientation:portrait){#game-canvas{inset:11vh 0 30vh;overflow:hidden}#game-canvas canvas{top:0;left:50%;transform:translate(-50%);width:104.889vh!important;max-width:none!important;height:59vh!important;margin:0!important;position:absolute!important}}@media (max-height:620px) and (orientation:landscape){#game-canvas{inset:0}.start-card{transform-origin:0;transform:scale(.82)}.touch-controls{bottom:16px;left:auto;right:20px;transform:none}.touch-controls button{width:56px;height:56px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
