:root{--ink: #070708;--paper: #f4f1ea;--gold: #f0d56a;--life: #ffe14a;--life-deep: #f0a51a;--blood: #4a100e;--drive: #3ec6ff;--display: "Avenir Next Condensed", "DIN Alternate", "Arial Narrow", "PingFang SC", sans-serif;--text: "PingFang SC", "Hiragino Sans GB", "Avenir Next", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--paper);font-family:var(--text)}#app{position:relative;width:100vw;height:100vh;background:var(--ink)}#cam{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}#stage{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;z-index:1}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,#0000009e,#0000 16%),linear-gradient(0deg,#00000080,#0000 22%),linear-gradient(90deg,rgba(0,0,0,.28),transparent 18%,transparent 78%,rgba(0,0,0,.45))}.hud-top{position:absolute;top:18px;left:28px;right:128px;z-index:10;display:grid;grid-template-columns:1fr 148px 1fr;gap:18px;align-items:start;pointer-events:none}.who{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.meter.p2 .who{justify-content:flex-end}.tag{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.16em;color:var(--gold)}.nameplate{font-family:var(--display);font-weight:700;font-style:italic;font-size:clamp(22px,2.4vw,34px);letter-spacing:.04em;line-height:.9;text-shadow:0 2px 0 #000}.hp-track{height:22px;background:linear-gradient(#6e1b16,var(--blood));box-shadow:0 0 0 1px #000,0 0 0 3px #161616,0 0 0 4px #f0d56ad9;overflow:hidden;position:relative}.meter.p1 .hp-track{clip-path:polygon(0 0,100% 0,calc(100% - 14px) 100%,0 100%)}.meter.p2 .hp-track{clip-path:polygon(14px 0,100% 0,100% 100%,0 100%)}.hp-fill{height:100%;width:100%;transform-origin:left center;transform:scaleX(1);transition:transform .18s ease-out;background:linear-gradient(180deg,#fff6c2 0%,var(--life) 42%,var(--life-deep) 100%);box-shadow:inset 0 1px #ffffffa6}.hp-fill.opp{transform-origin:right center}.drive{margin-top:5px;height:5px;background:#14181c;box-shadow:0 0 0 1px #000;overflow:hidden}.meter.p1 .drive{clip-path:polygon(0 0,100% 0,calc(100% - 10px) 100%,0 100%)}.meter.p2 .drive{clip-path:polygon(10px 0,100% 0,100% 100%,0 100%)}.drive i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#1a6ea8,var(--drive))}.meter.p2 .drive i{background:linear-gradient(270deg,#1a6ea8,var(--drive))}.round-block{text-align:center;padding-top:2px}.round-label{font-family:var(--display);font-size:11px;letter-spacing:.28em;color:#f4f1eab3}.round-timer{font-family:var(--display);font-weight:700;font-size:clamp(52px,6vw,76px);line-height:.82;letter-spacing:-.03em;color:#fff;text-shadow:0 4px 0 #000}.pose-state{margin-top:4px;font-family:var(--display);font-size:12px;letter-spacing:.18em;color:#f4f1ea8c}.pose-state[data-state=charging]{color:#9fd7ff}.pose-state[data-state=releasing]{color:#fff}.pose-state[data-state=cooldown]{color:#f4f1ea59}.stand{position:absolute;left:6%;bottom:8%;z-index:6;width:200px;text-align:center;pointer-events:none}.stand .ring{width:168px;height:48px;margin:0 auto;border:2px solid rgba(240,213,106,.9);border-radius:50%;box-shadow:0 0 0 7px #f0d56a1f,0 10px 30px #00000059}.stand .label{margin-top:10px;font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.22em;color:var(--gold);text-shadow:0 2px 0 #000}.boot{position:absolute;left:6%;top:28%;z-index:6;max-width:420px;pointer-events:none}.boot .kicker{font-family:var(--display);letter-spacing:.32em;font-size:12px;color:var(--gold);margin-bottom:10px}.boot h1{font-family:var(--display);font-weight:700;font-size:clamp(64px,8vw,108px);line-height:.86;letter-spacing:.02em;text-shadow:0 6px 0 #000}.boot p:last-child{margin-top:16px;font-size:15px;line-height:1.7;color:#f4f1eac7;text-shadow:0 1px 2px #000}#app.camera-on .boot{display:none}.char-select{position:absolute;top:0;right:0;bottom:0;z-index:12;width:118px;display:flex;flex-direction:column;padding:92px 14px 18px 0;background:linear-gradient(90deg,#0000,#0000008c 28%,#000000c7)}.char-select-title{font-family:var(--display);font-size:11px;letter-spacing:.28em;color:#f4f1ea8c;margin:0 0 10px 8px}.char-grid{display:flex;flex-direction:column;gap:8px;overflow-y:auto}.char-thumb{position:relative;display:block;height:78px;border:0;border-left:3px solid transparent;background:#0c0c0e;color:var(--paper);cursor:pointer;overflow:hidden;padding:0;text-align:left}.char-thumb.active{border-left-color:var(--gold)}.thumb-img-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.thumb-img-wrap img{width:140%;height:140%;object-fit:cover;object-position:18% 20%;transform:scaleX(-1);filter:saturate(1.05) contrast(1.05)}.thumb-name{position:absolute;left:0;right:0;bottom:0;padding:14px 8px 5px;background:linear-gradient(transparent,#000000d9);font-family:var(--display);font-weight:700;font-style:italic;font-size:13px;letter-spacing:.06em}.thumb-name small{display:block;margin-top:1px;font-family:var(--text);font-style:normal;font-weight:400;font-size:10px;letter-spacing:.08em;color:#f4f1eab3}.hud-bottom{position:absolute;left:28px;bottom:22px;z-index:12;display:flex;flex-direction:column;align-items:flex-start;gap:10px;max-width:min(460px,42vw);pointer-events:none}.status{font-size:13px;letter-spacing:.04em;color:#f4f1eadb;text-shadow:0 1px 2px #000}.actions{display:flex;flex-wrap:wrap;gap:8px;pointer-events:auto}.btn{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.14em;padding:8px 16px;border-radius:999px;border:1px solid rgba(244,241,234,.28);background:#00000059;color:var(--paper);cursor:pointer}.btn:hover{border-color:var(--gold);color:var(--gold)}.btn.primary{background:var(--gold);color:#1a1406;border-color:var(--gold)}.btn.primary:hover{color:#1a1406;filter:brightness(1.05)}.btn.ghost{opacity:.7}.btn.ghost.active{opacity:1;border-color:#9fd7ff;color:#9fd7ff}.btn.photo{font-size:16px;padding:12px 28px;letter-spacing:.22em}.btn:disabled{opacity:.45;cursor:default;filter:none}.btn.hidden{display:none}.count-overlay{position:absolute;left:42%;top:42%;z-index:16;transform:translate(-50%,-50%);font-family:var(--display);font-weight:700;font-size:clamp(140px,24vw,260px);line-height:.8;letter-spacing:-.04em;color:#fff;text-shadow:0 10px 0 #000;pointer-events:none;opacity:0}.count-overlay.show{opacity:1}.pose-state[data-state=countdown]{color:#fff}.pose-state[data-state=fire]{color:#9fd7ff}.debug-panel{position:absolute;left:28px;bottom:108px;z-index:20;display:none;min-width:220px;padding:10px 12px;background:#000000c7;color:#9fd7ff;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.45;white-space:pre;pointer-events:none}.debug-panel.visible{display:block}.stamp-overlay{position:absolute;left:46%;top:42%;transform:translate(-50%,-50%) rotate(-8deg) scale(.7);z-index:15;font-family:var(--display);font-weight:700;font-style:italic;font-size:clamp(84px,14vw,168px);line-height:.8;letter-spacing:-.03em;pointer-events:none;opacity:0;-webkit-text-stroke:8px #000;paint-order:stroke fill;text-shadow:0 8px 0 rgba(0,0,0,.35)}.stamp-overlay.hit{color:#fff6c2}.stamp-overlay.ko{color:#ff3b30}.stamp-overlay.show{opacity:1;transform:translate(-50%,-50%) rotate(-8deg) scale(1)}.card-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:none;align-items:center;justify-content:center;background:#000000b8;padding:24px}.card-modal.show{display:flex}.card-panel{width:min(880px,94vw);background:#0c0c0e;border:1px solid rgba(240,213,106,.7);padding:16px 16px 18px}.card-panel h2{font-family:var(--display);font-weight:700;letter-spacing:.18em;font-size:18px;color:var(--gold);margin-bottom:12px}.card-panel img{width:100%;height:auto;display:block;background:#000}.card-actions{display:flex;gap:8px;margin-top:14px;justify-content:flex-end}@font-face{font-family:Squada One;src:url(/assets/SquadaOne-Regular-CPoWRyI9.ttf) format("truetype");font-display:swap}html:has(#app.godot-ui),html:has(#app.godot-ui) body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden}#app.godot-ui{--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;height:100dvh;overflow:hidden}#app.godot-ui .vignette,#app.godot-ui .boot,#app.godot-ui .stand,#app.godot-ui .hud-top,#app.godot-ui .char-select{display:none}#app.godot-ui .godot-hud{position:absolute;left:0;top:0;z-index:8;width:2188px;height:1280px;transform-origin:0 0;pointer-events:none}#app.godot-ui .godot-hud canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:2188px;height:1280px}#app.godot-ui .godot-hud .hud-you,#app.godot-ui .godot-hud .hud-score,#app.godot-ui .godot-hud .hud-p2,#app.godot-ui .godot-hud .hud-cpu,#app.godot-ui .godot-hud .hud-timer{position:absolute;font-family:"Squada One",var(--display);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.6);white-space:nowrap}#app.godot-ui .hud-you{left:249px;top:129px;font-size:25px}#app.godot-ui .hud-score{left:487px;top:79px;font-size:30px}#app.godot-ui .hud-p2{left:1597px;top:79px;font-size:30px}#app.godot-ui .hud-cpu{left:1835px;top:129px;font-size:25px}#app.godot-ui .hud-timer{left:1036px;top:70px;width:140px;font-size:125px;line-height:.85;text-align:center;color:#4e1539;-webkit-text-stroke:6px #ed46ab;paint-order:stroke fill;text-shadow:none}#app.godot-ui .pose-state{position:absolute;left:996px;top:210px;width:220px;text-align:center;font-family:"Squada One",var(--display);font-size:28px;letter-spacing:.12em;color:#f0d56a}#app.godot-ui .godot-roster{position:absolute;left:10px;top:28%;bottom:24%;z-index:14;width:min(96px,9vw);display:flex;flex-direction:column;justify-content:center;gap:4px}#app.godot-ui .godot-card{border:0;padding:0;background:transparent;cursor:pointer;transform-origin:center right}#app.godot-ui .godot-card img{display:block;width:100%;height:auto}#app.godot-ui .godot-card.active{transform:scale(1.08);z-index:2}#app.godot-ui .turn-hint{display:none}#app.godot-ui .godot-fire{position:absolute;left:50%;bottom:2.2vh;z-index:15;width:min(420px,48vw);transform:translate(-50%);border:0;padding:0;background:transparent;cursor:pointer}#app.godot-ui .godot-fire img{display:block;width:100%;height:auto}#app.godot-ui .godot-fire span{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:"Squada One",var(--display);font-size:clamp(22px,2.4vw,34px);letter-spacing:.14em;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.65);pointer-events:none}#app.godot-ui .godot-fire:disabled{opacity:.45;cursor:default}#app.godot-ui .godot-tools{position:absolute;left:28px;bottom:22px;z-index:14;display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:min(420px,40vw)}#app.godot-ui .godot-tools .status{pointer-events:none}@media (max-width: 900px){.hud-top{left:12px;right:96px;gap:8px;grid-template-columns:1fr 72px 1fr}.char-select{width:92px;padding-top:78px}.boot h1{font-size:64px}}@media (max-width: 900px),(max-height: 520px){#app.godot-ui .godot-roster{left:8px;right:auto;top:auto;bottom:calc(10px + var(--safe-bottom));width:auto;max-width:52vw;height:72px;flex-direction:row;align-items:flex-end;gap:4px}#app.godot-ui .godot-card{height:100%;width:auto;flex:0 0 auto}#app.godot-ui .godot-card img{width:auto;height:100%}#app.godot-ui .godot-fire{left:auto;right:8px;bottom:calc(12px + var(--safe-bottom));width:min(168px,40vw);height:56px;transform:none}#app.godot-ui .godot-fire img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill}#app.godot-ui .godot-fire span{font-size:22px}#app.godot-ui .godot-tools{left:8px;right:8px;bottom:calc(90px + var(--safe-bottom));max-width:none;flex-direction:row;align-items:center;gap:8px}#app.godot-ui .godot-tools .status{flex:1;font-size:12px;line-height:1.3}#app.godot-ui .godot-tools .actions{flex:0 0 auto}#app.godot-ui .godot-tools .btn{padding:6px 10px;font-size:11px}#app.godot-ui #btn-debug,#app.godot-ui #btn-cam{display:none}#app.godot-ui .count-overlay{left:50%;top:46%;font-size:min(42vw,180px)}}#app.godot-ui .card-modal.show{align-items:stretch;justify-content:flex-end;padding:8px 10px calc(8px + var(--safe-bottom));box-sizing:border-box}#app.godot-ui .card-panel{display:flex;flex-direction:column;width:min(960px,100%);max-height:100%;min-height:0;margin:0 auto;box-sizing:border-box;background:#0c0c0e;border:1px solid rgba(240,213,106,.7);padding:8px}#app.godot-ui .card-panel h2{display:none}#app.godot-ui .card-panel img{flex:1 1 auto;display:block;width:100%;min-height:0;max-height:calc(var(--app-h, 100dvh) - 92px - var(--safe-bottom));height:auto;object-fit:contain}#app.godot-ui .card-actions{flex:0 0 auto;margin-top:8px;justify-content:flex-end}#app.godot-ui .landscape-gate{display:none}#app.godot-ui .landscape-gate p{margin:0;font-family:"Squada One",var(--display);font-size:36px;letter-spacing:.08em}#app.godot-ui .landscape-sub{font-family:var(--text);font-size:15px;letter-spacing:.04em;color:#f4f1eab8}#app.godot-ui .landscape-phone{width:54px;height:96px;margin-bottom:8px;border:3px solid #f0d56a;border-radius:10px;position:relative;animation:turn-phone 1.8s ease-in-out infinite}#app.godot-ui .landscape-phone:after{content:"";position:absolute;left:50%;bottom:8px;width:16px;height:3px;border-radius:2px;background:#f0d56a;transform:translate(-50%)}@keyframes turn-phone{0%,35%{transform:rotate(0)}70%,to{transform:rotate(-90deg)}}@media (orientation: portrait) and (max-width: 900px){#app.godot-ui .landscape-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;background:#070708;color:#f4f1ea;text-align:center}}
