:root{--bg: #05070c;--bg-2: #090d16;--ink: #e9f2ff;--ink-dim: #8fa2bd;--ink-faint: #566482;--cy: #45f0ff;--mg: #ff3d8b;--tox: #9dff4a;--fire: #ff7a29;--blood: #e5344a;--void: #a05cff;--gold: #ffcb45;--line: rgba(120, 190, 230, .16);--line-hot: rgba(69, 240, 255, .5);--panel: rgba(9, 14, 23, .92);--font-ui: "Chakra Petch", "Segoe UI", system-ui, sans-serif;--font-disp: "Barlow Condensed", "Chakra Petch", Impact, sans-serif;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;width:100%;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--ink);font-family:var(--font-ui);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#app{position:fixed;inset:0;overflow:hidden}#stage{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;background:#04060a}.hidden{display:none!important}.overlay{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:calc(16px + var(--safe-t)) calc(16px + var(--safe-r)) calc(16px + var(--safe-b)) calc(16px + var(--safe-l));background:radial-gradient(120% 90% at 50% 40%,#080e18b8,#020408f2);backdrop-filter:blur(7px) saturate(.8);-webkit-backdrop-filter:blur(7px) saturate(.8);overflow-y:auto;overscroll-behavior:contain;animation:fadeIn .22s ease both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.primary-btn{position:relative;font-family:var(--font-disp);font-size:22px;letter-spacing:.16em;padding:14px 40px;color:#04121a;cursor:pointer;border:0;background:linear-gradient(180deg,#9ffbff,var(--cy) 55%,#14b9cf);clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);box-shadow:0 0 0 1px #45f0ff80,0 8px 30px #45f0ff47;transition:transform .12s ease,filter .12s ease}.primary-btn.big{font-size:26px;padding:16px 54px}.primary-btn:hover{transform:translateY(-2px);filter:brightness(1.12)}.primary-btn:active{transform:translateY(1px) scale(.99)}.ghost-btn{font-family:var(--font-ui);font-weight:600;font-size:13px;letter-spacing:.14em;color:var(--ink-dim);background:#ffffff08;border:1px solid var(--line);padding:10px 18px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.ghost-btn:hover{color:var(--cy);border-color:var(--line-hot);background:#45f0ff12}.ghost-btn:disabled{opacity:.32;cursor:default}.ghost-btn.small{padding:7px 12px;font-size:11px}.icon-btn{width:40px;height:40px;display:grid;place-items:center;font-family:var(--font-disp);font-size:16px;letter-spacing:2px;color:var(--ink-dim);background:#060a12b3;border:1px solid var(--line);cursor:pointer}.icon-btn:hover{color:var(--cy);border-color:var(--line-hot)}.seg{display:inline-flex;border:1px solid var(--line)}.seg button{font-family:var(--font-ui);font-size:11px;letter-spacing:.12em;font-weight:600;padding:7px 14px;background:transparent;color:var(--ink-faint);border:0;cursor:pointer}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:#45f0ff24;color:var(--cy)}.fps{position:absolute;right:calc(8px + var(--safe-r));bottom:calc(8px + var(--safe-b));z-index:60;font:600 11px/1.4 var(--font-ui);color:var(--ink-faint);background:#00000073;padding:4px 7px;pointer-events:none;white-space:pre}.touch-layer{position:absolute;inset:0;z-index:10;touch-action:none}button,.card{touch-action:manipulation}.hud{position:absolute;inset:0;z-index:20;pointer-events:none}.hud-top{position:absolute;top:calc(10px + var(--safe-t));left:calc(12px + var(--safe-l));right:calc(12px + var(--safe-r));display:flex;align-items:flex-start;gap:14px}.vitals{width:min(320px,38vw)}.hp-bar{position:relative;height:20px;background:#04080ed9;border:1px solid var(--line);overflow:hidden;clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%)}.hp-ghost{position:absolute;inset:0 auto 0 0;width:100%;background:#ff3d8b59;transition:width .45s cubic-bezier(.2,0,0,1) .12s}.hp-fill{position:absolute;inset:0 auto 0 0;width:100%;z-index:1;background:linear-gradient(180deg,#ff86ae,var(--mg) 55%,#a3134f);box-shadow:0 0 14px #ff3d8b8c;transition:width .12s linear}.hp-text{position:absolute;inset:0;z-index:2;display:grid;place-items:center;font:700 11px/1 var(--font-ui);letter-spacing:.1em;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9)}.xp-bar{margin-top:4px;height:6px;background:#04080ed9;border:1px solid var(--line);overflow:hidden}.xp-fill{height:100%;width:0%;background:linear-gradient(90deg,#1e6f7d,var(--cy));box-shadow:0 0 10px #45f0ff99;transition:width .12s linear}.vital-meta{display:flex;gap:6px;margin-top:6px}.pill{font:700 11px/1 var(--font-ui);letter-spacing:.12em;padding:5px 8px;color:var(--cy);background:#45f0ff1a;border:1px solid var(--line-hot)}.pill.combo{color:var(--gold);background:#ffcb451f;border-color:#ffcb4580}.pill.combo.pop{animation:comboPop .28s ease}@keyframes comboPop{0%{transform:scale(1.5)}to{transform:scale(1)}}.stage-info{flex:1;text-align:center}.stage-name{font:700 20px/1 var(--font-disp);letter-spacing:.34em;color:var(--ink);text-shadow:0 0 18px rgba(69,240,255,.35)}.stage-sub{font:600 10px/1.6 var(--font-ui);letter-spacing:.3em;color:var(--ink-faint)}.wave-progress{margin:6px auto 0;width:min(260px,40vw);height:3px;background:#ffffff12}.wave-progress>div{height:100%;width:0%;background:var(--cy);box-shadow:0 0 8px var(--cy);transition:width .2s linear}.hud-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:auto}.timer{font:700 15px/1 var(--font-disp);letter-spacing:.18em;color:var(--ink-dim)}.boss-bar{position:absolute;top:calc(106px + var(--safe-t));left:50%;transform:translate(-50%);width:min(680px,88vw);text-align:center;animation:bossIn .5s cubic-bezier(.2,.8,.2,1) both}@keyframes bossIn{0%{opacity:0;transform:translate(-50%,-14px)}to{opacity:1;transform:translate(-50%)}}.boss-name{font:700 15px/1 var(--font-disp);letter-spacing:.5em;color:var(--mg);text-shadow:0 0 20px rgba(255,61,139,.7);margin-bottom:5px}.boss-track{position:relative;height:13px;background:#04080ee6;border:1px solid rgba(255,61,139,.45);overflow:hidden}.boss-ghost{position:absolute;inset:0 auto 0 0;width:100%;background:#ffffff38;transition:width .5s ease .15s}.boss-fill{position:absolute;inset:0 auto 0 0;width:100%;z-index:1;background:linear-gradient(180deg,#ff8fb8,var(--mg) 60%,#8f0f3f);box-shadow:0 0 16px #ff3d8b99;transition:width .12s linear}.boss-notch{position:absolute;z-index:2;left:50%;top:0;bottom:0;width:2px;background:#000000b3}.organ-strip{position:absolute;left:calc(12px + var(--safe-l));bottom:calc(12px + var(--safe-b));display:flex;flex-wrap:wrap;gap:5px;max-width:min(340px,52vw)}.organ-chip{display:flex;align-items:center;gap:5px;padding:4px 8px 4px 5px;background:#060a12bf;border:1px solid var(--line);font:700 10px/1 var(--font-ui);letter-spacing:.1em;color:var(--ink-dim)}.organ-chip i{width:8px;height:8px;border-radius:50%;box-shadow:0 0 8px currentColor;background:currentColor}.organ-chip.evo{border-color:var(--gold);color:var(--gold);background:#ffcb451a}.organ-chip b{color:var(--ink);font-weight:700}.organ-chip.new{animation:chipIn .5s cubic-bezier(.2,1.4,.4,1) both}@keyframes chipIn{0%{transform:scale(.4) translateY(10px);opacity:0}to{transform:none;opacity:1}}.banner-layer{position:absolute;top:24%;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:10px}.banner{text-align:center;animation:bannerIn 2.4s cubic-bezier(.16,1,.3,1) both}.banner .b-kick{font:600 11px/1 var(--font-ui);letter-spacing:.55em;color:var(--ink-faint)}.banner .b-main{font:700 clamp(34px,7vw,66px)/1 var(--font-disp);letter-spacing:.14em;color:#fff;margin-top:4px}.banner .b-sub{font:600 12px/1.5 var(--font-ui);letter-spacing:.2em;color:var(--ink-dim);margin-top:6px}@keyframes bannerIn{0%{opacity:0;transform:scale(1.35) translateY(-6px);filter:blur(9px);letter-spacing:.5em}10%{opacity:1;transform:scale(1);filter:blur(0)}76%{opacity:1}to{opacity:0;transform:translateY(-26px) scale(.97)}}@media(max-width:720px){.vitals{width:44vw}.stage-name{font-size:15px;letter-spacing:.22em}.stage-sub{font-size:9px}.organ-strip{max-width:68vw;bottom:calc(96px + var(--safe-b))}.boss-bar{top:calc(84px + var(--safe-t))}}.reward{z-index:50}.reward-inner{width:100%;max-width:1080px;display:flex;flex-direction:column;align-items:center;gap:clamp(12px,2.4vh,28px)}.reward-head{text-align:center;animation:headIn .4s cubic-bezier(.2,1,.3,1) both}@keyframes headIn{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}.reward-kicker{font:600 11px/1 var(--font-ui);letter-spacing:.6em;color:var(--cy);text-shadow:0 0 18px rgba(69,240,255,.6)}.reward-title{font:700 clamp(26px,5.4vw,48px)/1 var(--font-disp);letter-spacing:.16em;margin:8px 0 4px}.reward-hint{font:500 12px/1 var(--font-ui);letter-spacing:.22em;color:var(--ink-faint)}.card-row{display:flex;gap:clamp(10px,2vw,22px);justify-content:center;align-items:stretch;flex-wrap:nowrap}.card{position:relative;width:clamp(178px,22vw,258px);aspect-ratio:5 / 7.4;cursor:pointer;background:transparent;border:0;padding:0;perspective:900px;pointer-events:auto;animation:dealIn .5s cubic-bezier(.2,1.1,.3,1) both}.card:nth-child(1){animation-delay:.02s}.card:nth-child(2){animation-delay:.09s}.card:nth-child(3){animation-delay:.16s}.card:nth-child(4){animation-delay:.23s}@keyframes dealIn{0%{opacity:0;transform:translateY(60px) rotate(-7deg) scale(.85)}to{opacity:1;transform:none}}.card-face{position:absolute;inset:0;display:flex;flex-direction:column;background:linear-gradient(180deg,#ffffff0f,#fff0 34%),linear-gradient(165deg,#131c2c,#080c14 62%,#05080e);border:1px solid var(--c-edge, rgba(120, 190, 230, .3));border-radius:12px;overflow:hidden;box-shadow:0 14px 40px #0000009e,inset 0 0 0 1px #ffffff0a,0 0 24px -6px var(--c-glow, rgba(69, 240, 255, .4));transition:transform .18s cubic-bezier(.2,1,.3,1),box-shadow .18s ease,border-color .18s ease;transform-style:preserve-3d}.card:after{content:"";position:absolute;inset:-2px;border-radius:14px;pointer-events:none;background:radial-gradient(60% 46% at 50% 0%,var(--c-glow, rgba(69,240,255,.5)),transparent 70%);opacity:0;transition:opacity .2s ease;z-index:-1;filter:blur(12px)}.card:hover .card-face,.card:focus-visible .card-face{transform:translateY(-14px) rotateX(6deg) scale(1.035);border-color:var(--c-accent, var(--cy));box-shadow:0 26px 60px #000000b3,0 0 46px -8px var(--c-glow, rgba(69, 240, 255, .65))}.card:hover:after,.card:focus-visible:after{opacity:1}.card:active .card-face{transform:translateY(-6px) scale(.99)}.c-rarity{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;font:700 9px/1 var(--font-ui);letter-spacing:.26em;color:var(--c-accent, var(--cy));background:linear-gradient(90deg,var(--c-band, rgba(69, 240, 255, .2)),transparent);border-bottom:1px solid var(--c-edge, rgba(120, 190, 230, .22))}.c-rarity .pips{display:flex;gap:3px}.c-rarity .pips i{width:5px;height:5px;background:currentColor;transform:rotate(45deg);box-shadow:0 0 6px currentColor}.c-art{position:relative;margin:9px 9px 0;height:43%;border:1px solid rgba(255,255,255,.08);border-radius:7px;overflow:hidden;background:radial-gradient(80% 70% at 50% 42%,var(--c-band, rgba(69,240,255,.22)),rgba(3,6,11,.9) 72%)}.c-art canvas{position:absolute;inset:0;width:100%;height:100%}.c-art:before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.24) 0 1px,transparent 1px 3px);opacity:.55;mix-blend-mode:multiply}.c-art:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(120deg,transparent 38%,rgba(255,255,255,.14) 48%,transparent 58%);transform:translate(-120%);transition:transform .55s ease}.card:hover .c-art:after{transform:translate(120%)}.c-name{padding:9px 11px 2px;font:700 clamp(15px,1.5vw,21px)/1.05 var(--font-disp);letter-spacing:.1em;color:#fff}.c-desc{padding:4px 11px 0;font:500 clamp(10px,.95vw,12.5px)/1.42 var(--font-ui);color:var(--ink-dim);flex:1}.c-desc em{color:var(--c-accent, var(--cy));font-style:normal;font-weight:700}.c-tags{display:flex;flex-wrap:wrap;gap:4px;padding:8px 10px 10px}.c-tag{font:700 8.5px/1 var(--font-ui);letter-spacing:.16em;padding:4px 6px;color:var(--ink-faint);border:1px solid var(--line);background:#ffffff08}.c-tag.hot{color:var(--c-accent, var(--cy));border-color:var(--c-edge);background:var(--c-band)}.c-omen{padding:7px 10px;font:700 9px/1.3 var(--font-ui);letter-spacing:.14em;color:var(--gold);background:#ffcb451a;border-top:1px solid rgba(255,203,69,.35);display:flex;align-items:center;gap:6px}.c-omen:before{content:"◆";font-size:8px}.card.chosen .card-face{animation:chosen .42s cubic-bezier(.3,1.6,.4,1) both}@keyframes chosen{0%{transform:translateY(-14px) scale(1.035)}40%{transform:translateY(-30px) scale(1.14);filter:brightness(1.9)}to{transform:translateY(-160px) scale(.5);opacity:0;filter:brightness(3)}}.card.rejected .card-face{animation:rejected .36s ease both}@keyframes rejected{to{transform:translateY(40px) scale(.86);opacity:0;filter:blur(5px)}}.reward-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center}.body-plan{display:flex;gap:5px;flex-wrap:wrap;justify-content:center}.bp-chip{font:700 10px/1 var(--font-ui);letter-spacing:.12em;padding:5px 8px;border:1px solid var(--line);color:var(--ink-faint);background:#ffffff08}.bp-chip b{color:var(--ink)}.bp-chip.el{color:var(--gold);border-color:#ffcb4566}@media(max-width:860px){.card-row{flex-wrap:wrap;gap:10px}.card{width:clamp(150px,29vw,210px)}}@media(max-width:560px){.card-row{flex-direction:column;align-items:stretch;width:100%;max-width:420px;gap:8px}.card{width:100%;aspect-ratio:auto;min-height:96px}.card-face{position:relative;flex-direction:row;align-items:stretch;border-radius:10px}.card:hover .card-face{transform:none}.c-rarity{flex-direction:column;justify-content:center;gap:8px;padding:8px 6px;border-bottom:0;border-right:1px solid var(--c-edge);writing-mode:vertical-rl;letter-spacing:.24em}.c-rarity .pips{flex-direction:column}.c-art{width:86px;height:auto;flex:none;margin:8px 0 8px 8px}.c-body{flex:1;display:flex;flex-direction:column;min-width:0}.c-name{font-size:18px;padding-top:10px}.c-desc{font-size:11.5px;padding-bottom:4px}.c-tags{padding:0 10px 8px}.c-omen{border-top:0}}.title{z-index:60}.title-inner{text-align:center;display:flex;flex-direction:column;align-items:center;gap:26px}.title-mark h1{margin:0;font-family:var(--font-disp);font-weight:700;font-size:clamp(52px,13vw,128px);line-height:.86;letter-spacing:.06em;color:#fff;text-shadow:0 0 60px rgba(69,240,255,.35)}.title-mark h1 span{display:block;color:transparent;letter-spacing:.22em;background:linear-gradient(180deg,#fff,var(--cy) 45%,var(--mg));-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 30px rgba(255,61,139,.45))}.title-rule{width:min(460px,72vw);height:1px;margin:18px auto 12px;background:linear-gradient(90deg,transparent,var(--line-hot),transparent)}.title-tag{margin:0;font:600 12px/1 var(--font-ui);letter-spacing:.42em;color:var(--ink-faint)}.title-controls{display:flex;flex-direction:column;gap:5px;font:500 12px/1.5 var(--font-ui);letter-spacing:.1em;color:var(--ink-faint)}.title-controls b{color:var(--cy);font-weight:700}.title-opts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}.title-opts label{font:700 10px/1 var(--font-ui);letter-spacing:.28em;color:var(--ink-faint)}.pause{z-index:55}.pause-inner{width:min(520px,92vw);background:var(--panel);border:1px solid var(--line);padding:26px 26px 22px;text-align:center}.pause-inner h2{margin:0 0 14px;font:700 34px/1 var(--font-disp);letter-spacing:.4em}.pause-body{text-align:left;font:500 12.5px/1.7 var(--font-ui);color:var(--ink-dim);margin-bottom:20px}.pause-body h4{margin:12px 0 6px;font:700 11px/1 var(--font-ui);letter-spacing:.3em;color:var(--cy)}.pause-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.summary{z-index:60}.summary-inner{width:min(680px,94vw);text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;animation:sumIn .5s cubic-bezier(.2,1,.3,1) both}@keyframes sumIn{0%{opacity:0;transform:translateY(28px) scale(.97)}to{opacity:1;transform:none}}.summary-title{margin:0;font:700 clamp(30px,7vw,62px)/1 var(--font-disp);letter-spacing:.14em;color:var(--mg);text-shadow:0 0 44px rgba(255,61,139,.5)}.summary-title.win{color:var(--gold);text-shadow:0 0 44px rgba(255,203,69,.55)}.summary-form{font:600 12px/1 var(--font-ui);letter-spacing:.44em;color:var(--ink-dim);padding:8px 16px;border:1px solid var(--line)}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;width:100%;background:var(--line);border:1px solid var(--line)}.stat{background:#060a12e6;padding:14px 8px}.stat .k{font:600 9.5px/1 var(--font-ui);letter-spacing:.24em;color:var(--ink-faint)}.stat .v{font:700 clamp(20px,3.4vw,30px)/1.15 var(--font-disp);letter-spacing:.06em;color:var(--ink);margin-top:5px}.stat .v.hot{color:var(--cy)}.summary-evos{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;min-height:26px}.evo-chip{font:700 10px/1 var(--font-ui);letter-spacing:.16em;padding:6px 10px;color:var(--gold);border:1px solid rgba(255,203,69,.45);background:#ffcb451a}.evo-chip.plain{color:var(--ink-faint);border-color:var(--line);background:#ffffff08}@media(max-width:560px){.summary-stats{grid-template-columns:repeat(2,1fr)}.title-inner{gap:18px}.title-tag{letter-spacing:.2em;font-size:11px}.title-controls{font-size:11px}}
