@font-face{font-family:Cinzel;src:url(./cinzel-BOqWLKHx.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}:root{--bg: #05070a;--panel: #0d1015;--panel-2: #131820;--gold: #d6b36a;--gold-bright: #f2d693;--gold-dim: #8a6f3f;--ink: #e9dfca;--muted: #9a958b;--muted-2: #6d695f;--red: #c0453b;--blue: #6fd6ff;--serif: "Cinzel", "Songti SC", "STSong", "SimSun", "Noto Serif SC", serif;--sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}#app{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 30%,#0b0f15,#04060a 70%)}#game-root,#ui-root{position:absolute;inset:0}#game-root canvas{display:block}#ui-root{pointer-events:none;z-index:2}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}[hidden]{display:none!important}.icon{width:1em;height:1em;display:block;flex:none}kbd{font-family:var(--serif);font-size:10px;padding:3px 7px;border:1px solid rgba(214,179,106,.35);border-bottom-color:#d6b36a99;background:#04060a99;color:#e7dcc8;letter-spacing:.08em;border-radius:1px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#0000004d}::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:4px}.screen{position:absolute;inset:0;pointer-events:auto;overflow:hidden}.screen-bg{position:absolute;inset:-40px;background-size:cover;background-position:center;filter:blur(3px) saturate(.75) brightness(.5);transform:scale(1.05)}.screen-bg-veil{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 38%,#080a0e0d,#030508e6 68%),linear-gradient(180deg,#04060ae6,#04060a40 38%,#04060af5)}.eyebrow{font-family:var(--serif);font-size:10px;letter-spacing:.36em;color:var(--gold-dim);text-transform:uppercase}.fan-note{position:absolute;left:0;right:0;bottom:0;padding:26px 0 12px;text-align:center;font-size:9.5px;letter-spacing:.1em;color:#c8bfac57;background:linear-gradient(0deg,#030509f5,#03050900);z-index:4;pointer-events:none}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 26px;border:1px solid rgba(214,179,106,.4);background:linear-gradient(180deg,#1c2028eb,#0c0f14f5);color:#d9cfbc;font-family:var(--serif);font-size:13px;letter-spacing:.16em;transition:transform .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}.btn:before{content:"";position:absolute;inset:4px;border:1px solid rgba(214,179,106,.12);pointer-events:none;clip-path:inherit}.btn:hover{border-color:var(--gold-bright);color:#fff6e2;box-shadow:0 0 30px #d6b36a29;transform:translateY(-1px)}.btn-primary{border-color:#d6b36ad9;background:linear-gradient(180deg,#2d2517,#171208);color:var(--gold-bright);box-shadow:inset 0 0 24px #d6b36a14,0 4px 20px #0006}.btn-primary:hover{background:linear-gradient(180deg,#3a2f1c,#1e170a);box-shadow:0 0 34px #d6b36a40}.btn-lg{padding:16px 38px;font-size:15px;gap:12px}.btn-block{width:100%}.btn-outline{border-color:#ffffff29;background:#080a0e8c;color:#b9b1a2}.btn-ghost{border-color:#ffffff1a;background:transparent;color:var(--muted)}.btn-icon{width:44px;height:44px;padding:0;font-size:16px;color:var(--muted)}.btn-icon:hover{color:var(--gold-bright)}.icon-btn{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);background:#06080c8c;color:#cfc6b5;font-size:17px;transition:.2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.icon-btn:hover{color:var(--gold-bright);border-color:var(--gold);background:#14120ccc}.icon-btn.is-muted{color:#6f6a61}.title-screen{display:flex;align-items:center;justify-content:center}.title-bg{filter:blur(2px) saturate(.65) brightness(.4)}.title-screen .screen-bg-veil{background:radial-gradient(ellipse at 50% 42%,#0a0e141a,#030508eb 64%),linear-gradient(180deg,#030509eb,#03050959 35%,#030509d9 78%,#04060a)}.title-top{position:absolute;top:28px;left:38px;right:38px;display:flex;align-items:center;justify-content:space-between;z-index:4}.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:10px;letter-spacing:.34em;color:#d6b36a99}.brand .icon{font-size:16px;color:var(--gold-dim)}.title-tools{display:flex;gap:10px}.title-content{position:relative;z-index:3;text-align:center;padding:0 24px 120px;max-width:900px;animation:fadeUp .9s ease both}.title-content:after{content:"";position:absolute;left:50%;top:45%;width:min(700px,80vw);aspect-ratio:1;margin-left:calc(min(700px,80vw)/-2);margin-top:calc(min(700px,80vw)/-2);border:1px dashed rgba(214,179,106,.09);border-radius:50%;animation:spin 80s linear infinite;pointer-events:none;z-index:-1}.title-crest{margin:18px auto 12px;display:flex;align-items:center;justify-content:center;gap:16px}.crest-line{width:min(140px,18vw);height:1px;background:linear-gradient(90deg,transparent,rgba(214,179,106,.75))}.crest-line:last-child{background:linear-gradient(90deg,rgba(214,179,106,.75),transparent)}.crest-diamond{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(214,179,106,.55);color:var(--gold-bright);transform:rotate(45deg);background:#080a0e8c;box-shadow:0 0 22px #d6b36a24}.crest-diamond .icon{width:20px;height:20px;transform:rotate(-45deg)}.game-title{margin:0;font-family:var(--serif);font-size:clamp(58px,9vw,128px);font-weight:700;line-height:1.02;letter-spacing:.14em;text-indent:.14em;background:linear-gradient(180deg,#fff5d6,#f0d79b 38%,#d6b36a 62%,#8a6f3f);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 28px rgba(0,0,0,.9)) drop-shadow(0 0 30px rgba(214,179,106,.12))}.title-en{margin-top:10px;font-family:var(--serif);font-size:11px;letter-spacing:.52em;text-indent:.52em;color:#d6b36ab8}.title-tagline{margin:26px 0 0;font-size:14px;line-height:2;color:#a8a091;letter-spacing:.12em;text-shadow:0 2px 12px #000}.title-actions{margin-top:32px;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.title-meta{margin-top:24px;font-size:10px;letter-spacing:.22em;color:#c8bfac66}.title-roster{position:absolute;left:50%;bottom:-52px;transform:translate(-50%);display:flex;gap:clamp(10px,2.2vw,32px);z-index:2;opacity:.38;filter:saturate(.75);mask-image:linear-gradient(180deg,transparent 0%,#000 38%,#000 88%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 38%,#000 88%,transparent 100%);pointer-events:none}.title-hero{width:clamp(98px,9.5vw,148px);text-align:center}.title-hero img{width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;border:1px solid rgba(214,179,106,.35);box-shadow:0 0 30px #000000b3,inset 0 0 0 3px #04060acc;filter:brightness(.75)}.title-hero span{display:none}.title-embers{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.title-embers span{position:absolute;left:var(--x);bottom:-10px;width:var(--size);height:var(--size);border-radius:50%;background:#f0b45c;box-shadow:0 0 8px #ffb347;opacity:0;animation:ember var(--dur) linear infinite;animation-delay:var(--delay)}@keyframes ember{0%{transform:translateY(0) scale(1);opacity:0}12%{opacity:.7}75%{opacity:.28}to{transform:translateY(-96vh) scale(.4);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#020408b8;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);pointer-events:auto;z-index:30}.modal{position:relative;width:min(520px,92vw);padding:36px;background:linear-gradient(180deg,#14181ff7,#080a0efc);border:1px solid rgba(214,179,106,.35);box-shadow:0 30px 100px #000000b3,inset 0 0 60px #0006;text-align:center;animation:panelIn .35s ease both}.modal:before{content:"";position:absolute;inset:7px;border:1px solid rgba(214,179,106,.1);pointer-events:none}.modal h2{margin:8px 0 22px;font-family:var(--serif);font-size:28px;letter-spacing:.14em;font-weight:600}.modal h3{margin:6px 0 0;font-family:var(--serif);font-size:24px;letter-spacing:.12em}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;text-align:left;margin-bottom:24px}.help-panel{text-align:left}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px}.help-grid>div{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.07);background:#ffffff05;font-size:12px;color:#b7af9f}.help-note{font-size:12px;line-height:1.9;color:var(--muted);margin:0 0 24px}.modal-note{margin-top:20px;font-size:11px;letter-spacing:.1em;color:var(--muted-2)}@keyframes panelIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}.select-screen{display:flex;flex-direction:column;gap:16px;padding:22px clamp(20px,3.6vw,56px) 44px;overflow-y:auto}.select-bg{filter:blur(24px) saturate(.9) brightness(.4);transform:scale(1.15);transition:background-image .5s ease}.screen-head{position:relative;z-index:2;display:flex;align-items:center;gap:20px}.head-title h2{margin:2px 0 0;font-family:var(--serif);font-size:clamp(24px,2.4vw,32px);font-weight:600;letter-spacing:.14em}.head-right{margin-left:auto;display:flex;align-items:center;gap:18px}.head-tip{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.08em;color:#c8bfac80}.head-tip .icon{color:var(--gold-dim)}.hero-roster{position:relative;z-index:2;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.hero-card{position:relative;height:clamp(150px,21vh,228px);border:1px solid rgba(255,255,255,.08);background:#080b10;overflow:hidden;text-align:left;padding:0;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}.hero-card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;filter:saturate(.85) brightness(.72);transition:transform .6s ease,filter .4s ease}.hero-card-grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,6,10,.55) 0%,transparent 28%,transparent 48%,rgba(3,5,9,.94) 100%),linear-gradient(0deg,var(--accent),transparent 42%);opacity:.24;mix-blend-mode:screen}.hero-card-top{position:absolute;top:10px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.14em}.hero-card .origin{padding:3px 7px;border:1px solid rgba(255,255,255,.16);background:#0305098c;color:#c6bcaa;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hero-card .diff{color:#d6b36abf;letter-spacing:.12em;text-shadow:0 1px 4px #000}.hero-card-bottom{position:absolute;left:14px;right:14px;bottom:12px;display:flex;flex-direction:column;gap:2px}.hero-card .role{font-size:9px;letter-spacing:.2em;color:var(--accent);opacity:.75}.hero-card strong{font-family:var(--serif);font-size:clamp(17px,1.6vw,22px);font-weight:600;letter-spacing:.12em;color:#efe5d2;text-shadow:0 2px 10px #000}.hero-card .en{font-family:var(--serif);font-size:8px;letter-spacing:.18em;color:#d6cab294;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-card:hover{border-color:#d6b36a73;transform:translateY(-4px)}.hero-card:hover .hero-card-img{transform:scale(1.05);filter:saturate(1) brightness(.9)}.hero-card.selected{border-color:var(--gold);box-shadow:0 0 0 1px #d6b36a66,0 12px 40px #0009,0 0 34px #d6b36a24}.hero-card.selected .hero-card-img{filter:saturate(1.05) brightness(.95)}.hero-card.selected:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}.hero-detail{position:relative;z-index:2;flex:1;min-height:330px;display:grid;grid-template-columns:minmax(190px,290px) minmax(280px,1fr) minmax(180px,240px);gap:clamp(18px,2.4vw,34px);padding:clamp(18px,2.4vw,30px);background:radial-gradient(ellipse at 12% 20%,rgba(214,179,106,.06),transparent 40%),linear-gradient(180deg,#0f1218e6,#07090df5);border:1px solid rgba(214,179,106,.18);box-shadow:0 20px 60px #00000073;overflow-y:auto;clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px)}.hero-detail.swap{animation:detailIn .35s ease both}@keyframes detailIn{0%{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:none}}.detail-portrait{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}.portrait-frame{position:relative;width:clamp(140px,17vw,200px);aspect-ratio:1;padding:7px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);background:radial-gradient(circle,color-mix(in srgb,var(--accent) 16%,transparent),transparent 70%);box-shadow:0 0 0 1px #000c,0 0 44px color-mix(in srgb,var(--accent) 18%,transparent),0 18px 40px #0009}.portrait-frame:after{content:"";position:absolute;inset:7px;border-radius:50%;box-shadow:inset 0 0 30px #000000bf;pointer-events:none}.portrait-frame img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 18%;display:block}.detail-portrait blockquote{margin:0;font-family:var(--serif);font-size:12px;line-height:1.8;letter-spacing:.08em;color:#e9dfca99;text-align:center;max-width:240px}.detail-main{display:flex;flex-direction:column;gap:14px;min-width:0}.detail-heading .origin{font-size:10px;letter-spacing:.22em;color:color-mix(in srgb,var(--accent) 75%,#c9c0af)}.detail-heading h3{margin:4px 0 0;font-family:var(--serif);font-size:clamp(26px,2.8vw,38px);font-weight:600;letter-spacing:.12em;color:#f2e8d5;line-height:1.15}.detail-heading .hero-title{margin:6px 0 0;font-size:12px;letter-spacing:.1em;color:var(--muted)}.detail-heading .hero-title .en{font-family:var(--serif);font-size:9px;letter-spacing:.14em;color:#c8bfac59;margin-left:8px}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:2px 0 4px}.stat-head{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.16em;color:var(--muted);margin-bottom:6px}.stat-head b{color:var(--accent);font-family:var(--serif)}.stat-track{height:4px;background:#ffffff12;overflow:hidden}.stat-track i{display:block;height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,#6a5a3a),var(--accent));box-shadow:0 0 10px color-mix(in srgb,var(--accent) 50%,transparent)}.ability-grid{display:flex;flex-direction:column;gap:8px}.ability{display:flex;gap:14px;align-items:flex-start;padding:10px 14px 10px 12px;border:1px solid rgba(255,255,255,.055);background:linear-gradient(90deg,rgba(255,255,255,.025),transparent);transition:border-color .2s,background .2s}.ability:hover{border-color:color-mix(in srgb,var(--accent) 30%,transparent);background:#ffffff09}.ability-icon{width:38px;height:38px;flex:none;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent);background:#0000004d;transform:rotate(45deg);margin:4px 4px 0 2px;box-shadow:0 0 14px color-mix(in srgb,var(--accent) 12%,transparent)}.ability-icon .icon{width:19px;height:19px;transform:rotate(-45deg)}.ability-kicker{font-size:9px;letter-spacing:.2em;color:#d6b36a99;text-transform:uppercase}.ability-name{font-family:var(--serif);font-size:15px;letter-spacing:.08em;color:#eadfcb;margin:1px 0 3px}.ability-copy p{margin:0;font-size:11.5px;line-height:1.65;color:var(--muted)}.detail-side{display:flex;flex-direction:column;gap:14px;justify-content:center}.record-box{padding:14px 16px;border:1px solid rgba(214,179,106,.16);background:#00000042;font-size:11.5px;line-height:1.9;color:var(--muted)}.record-box strong{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:12px;letter-spacing:.12em;color:var(--gold);margin-bottom:4px;font-weight:500}.record-box strong .icon{font-size:14px}.record-box b{color:#ddd1ba;font-family:var(--serif);font-weight:500}.difficulty-row{display:flex;align-items:center;justify-content:space-between;padding:0 2px;font-size:10px;letter-spacing:.2em;color:var(--muted-2)}.difficulty-row b{color:#d6b36ab3;letter-spacing:.14em;font-weight:400}.detail-side .btn-block{margin-top:auto}.play-note{text-align:center;font-size:10px;letter-spacing:.1em;color:var(--muted-2)}.game-shell{position:absolute;inset:0;pointer-events:none}.hud{position:absolute;inset:0;pointer-events:none;transition:opacity .5s ease,filter .5s ease}.hud.dimmed{opacity:.28;filter:blur(1.5px)}.xpbar{position:absolute;top:0;left:0;right:0;height:7px;background:#000000b8;border-bottom:1px solid rgba(214,179,106,.15);z-index:6}.xpbar-fill{height:100%;width:0;background:linear-gradient(90deg,#2f6c8f,#7fe8ff 60%,#d6b36a);box-shadow:0 0 14px #6fd6ff80;transition:width .25s ease}.hud-top-left{position:absolute;top:24px;left:28px;display:flex;gap:13px;align-items:center;z-index:5}.hud-portrait{position:relative;width:60px;height:60px;flex:none;padding:3px;border-radius:50%;border:1px solid rgba(214,179,106,.65);background:#080b10;box-shadow:0 0 22px color-mix(in srgb,var(--accent) 22%,transparent),0 6px 20px #0009}.hud-portrait img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 18%;display:block}.hud-level{position:absolute;left:50%;bottom:-8px;transform:translate(-50%);padding:1px 7px 2px;background:#090c11;border:1px solid rgba(214,179,106,.6);color:var(--gold-bright);font-family:var(--serif);font-size:9px;letter-spacing:.08em;white-space:nowrap;box-shadow:0 2px 8px #0009}.hud-vitals{display:flex;flex-direction:column;gap:5px;min-width:0}.hud-name{display:flex;align-items:baseline;gap:10px}.hud-name strong{font-family:var(--serif);font-size:16px;font-weight:600;letter-spacing:.12em;color:#f1e6d2;text-shadow:0 2px 8px #000}.hud-name span{font-size:10px;color:#c8bfac80;letter-spacing:.08em;text-shadow:0 1px 4px #000}.hp-bar{position:relative;width:clamp(170px,17vw,250px);height:15px;background:#0000009e;border:1px solid rgba(255,255,255,.13);overflow:hidden;box-shadow:inset 0 1px 6px #000000b3}.hp-bar:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 24%,rgba(0,0,0,.18) 25%);pointer-events:none}.hp-fill{height:100%;width:100%;background:linear-gradient(90deg,#54201d,#b23b33 55%,#e27564);box-shadow:0 0 12px #dc503c59;transition:width .18s ease}.hp-fill.low{background:linear-gradient(90deg,#6b1212,#d02f26 60%,#ff7d6a);animation:hpPulse 1.1s ease-in-out infinite}@keyframes hpPulse{50%{filter:brightness(1.35)}}.hp-text{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-size:9.5px;letter-spacing:.1em;color:#f3e6d8;text-shadow:0 1px 3px #000,0 0 6px #000;z-index:1}.hud-sub{display:flex;align-items:center;gap:7px;font-size:10px;letter-spacing:.06em;color:#c8bfac8c;text-shadow:0 1px 4px #000}.hud-weapon{display:flex;align-items:center;gap:5px;color:#d6b36abf}.hud-weapon .icon{font-size:11px}.dot{color:#c8bfac40}.hud-top-center{position:absolute;top:20px;left:50%;transform:translate(-50%);text-align:center;z-index:5;width:min(44vw,520px);pointer-events:none}.timer{font-family:var(--serif);font-size:clamp(26px,2.7vw,36px);letter-spacing:.14em;color:#f2e7d2;text-shadow:0 2px 20px rgba(0,0,0,.95),0 0 30px rgba(0,0,0,.7);line-height:1;font-variant-numeric:tabular-nums}.wave{margin-top:6px;font-size:10px;letter-spacing:.28em;color:#d6b36acc;text-shadow:0 1px 6px #000}.bossbar{margin:12px auto 0;width:100%;opacity:0;transform:translateY(-6px);transition:opacity .3s ease,transform .3s ease}.bossbar.boss-in{opacity:1;transform:none}.bossbar-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3px}.boss-name{font-family:var(--serif);font-size:15px;letter-spacing:.22em;color:#ffc1ae;text-shadow:0 0 16px rgba(255,80,50,.35),0 2px 6px #000}.boss-hp-text{font-family:var(--serif);font-size:11px;letter-spacing:.08em;color:#ffe8dae6;text-shadow:0 1px 5px #000,0 0 10px rgba(255,90,60,.35)}.boss-sub{text-align:left;font-size:10px;letter-spacing:.16em;color:#eed2c8a8;margin-bottom:4px}.boss-track{height:9px;background:#000000b3;border:1px solid rgba(255,120,90,.45);overflow:hidden;box-shadow:0 0 20px #ff46282e}.boss-fill{height:100%;width:100%;background:linear-gradient(90deg,#4d0c0c,var(--boss, #ff5a3c));box-shadow:0 0 16px var(--boss, #ff5a3c);transition:width .18s linear}.hud-top-right{position:absolute;top:24px;right:28px;display:flex;flex-direction:column;align-items:flex-end;gap:10px;z-index:5}.kills{display:flex;align-items:center;gap:9px;padding:5px 13px 6px;background:#04060a80;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-shadow:0 2px 10px #000}.kills-label{font-size:9px;letter-spacing:.22em;color:#dcd2be8c}.kills strong{font-family:var(--serif);font-size:19px;font-weight:500;letter-spacing:.06em;color:#efe4d0;font-variant-numeric:tabular-nums;line-height:1}.hud-buttons{display:flex;gap:7px;pointer-events:auto}.controls-hint{position:absolute;left:28px;bottom:26px;display:flex;gap:16px;font-size:10px;letter-spacing:.06em;color:#e6dcc88c;z-index:5;transition:opacity 1s ease;text-shadow:0 1px 4px #000}.controls-hint>span{display:flex;align-items:center;gap:6px}.controls-hint.faded{opacity:0}.hud-bottom-right{position:absolute;right:32px;bottom:34px;display:flex;align-items:flex-end;gap:18px;z-index:5}.skill{position:relative;width:58px;height:58px;border-radius:50%;border:1px solid rgba(214,179,106,.35);background:radial-gradient(circle at 50% 35%,#1e222af2,#04060afa 75%);display:grid;place-items:center;box-shadow:0 6px 24px #0009,inset 0 0 20px #000000b3}.skill:before{content:"";position:absolute;inset:4px;border-radius:50%;border:1px solid rgba(255,255,255,.06)}.skill.ultimate{width:84px;height:84px;border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 8px 30px #000000a6,inset 0 0 30px #000000b3,0 0 24px color-mix(in srgb,var(--accent) 12%,transparent)}.skill.ready{border-color:var(--gold)}.skill.ultimate.ready{border-color:color-mix(in srgb,var(--accent) 80%,var(--gold));box-shadow:0 0 28px color-mix(in srgb,var(--accent) 28%,transparent),inset 0 0 24px #0009}.skill.active{animation:skillPulse .8s ease-in-out infinite;border-color:#fff3d0}@keyframes skillPulse{50%{box-shadow:0 0 40px color-mix(in srgb,var(--accent) 55%,transparent),inset 0 0 30px #ffffff1f}}.skill-icon{color:color-mix(in srgb,var(--accent) 85%,#d8cfbd);font-size:25px;line-height:1;filter:drop-shadow(0 0 8px color-mix(in srgb,var(--accent) 55%,transparent))}.skill.ultimate .skill-icon{font-size:34px}.skill-sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(rgba(2,4,7,.82) calc(var(--p, 0) * 360deg),transparent 0deg);pointer-events:none}.skill-cd-text{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-size:12px;letter-spacing:.05em;color:#fff0d2;text-shadow:0 1px 5px #000;pointer-events:none}.skill.ultimate .skill-cd-text{font-size:15px}.skill-key{position:absolute;left:50%;bottom:-17px;transform:translate(-50%);font-family:var(--serif);font-size:8px;letter-spacing:.2em;color:#c8bfac6b;white-space:nowrap}.skill-name{position:absolute;left:50%;top:-28px;transform:translate(-50%);padding:2px 9px 3px;background:#04060a99;border:1px solid rgba(214,179,106,.22);font-family:var(--serif);font-size:9px;letter-spacing:.16em;color:#e8d3a8d9;white-space:nowrap;text-shadow:0 1px 4px #000}.touch-stick{position:absolute;left:max(22px,env(safe-area-inset-left));bottom:max(22px,env(safe-area-inset-bottom));width:132px;height:132px;border-radius:50%;border:1px solid rgba(214,179,106,.24);background:radial-gradient(circle at 50% 44%,#1a1e266b,#04060a3d 72%);box-shadow:inset 0 0 30px #00000073,0 10px 34px #00000059;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;touch-action:none;z-index:7;display:none;opacity:.82;transition:opacity .2s ease}.touch-mode .touch-stick{display:block}.touch-stick.engaged{opacity:1}.touch-stick-ring{position:absolute;inset:15px;border-radius:50%;border:1px dashed rgba(214,179,106,.16);pointer-events:none}.touch-stick-knob{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;border:1px solid rgba(214,179,106,.55);background:radial-gradient(circle at 50% 36%,#565a64eb,#090b10fa 74%);box-shadow:0 6px 20px #0000008c,inset 0 0 16px #000000b3,0 0 18px #d6b36a1a;will-change:transform;pointer-events:none}.touch-stick.engaged .touch-stick-knob{border-color:#f2d693cc;box-shadow:0 6px 20px #0000008c,inset 0 0 16px #000000b3,0 0 26px #d6b36a47}.touch-stick-label{position:absolute;left:50%;bottom:-19px;transform:translate(-50%);font-size:9px;letter-spacing:.26em;color:#e6dcc866;white-space:nowrap;text-shadow:0 1px 4px #000}.dash-name{display:none}.touch-mode .hud-bottom-right{right:max(20px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));gap:16px;pointer-events:auto}.touch-mode .skill{width:68px;height:68px;cursor:pointer;touch-action:none;transition:transform .08s ease,filter .12s ease}.touch-mode .skill.ultimate{width:92px;height:92px}.touch-mode .skill.pressed{transform:scale(.93);filter:brightness(1.25)}.touch-mode .skill-key{display:none}.touch-mode .skill-name{top:-24px;font-size:10px}.touch-mode .dash-name{display:block}.touch-mode .skill-icon{font-size:29px}.touch-mode .skill.ultimate .skill-icon{font-size:38px}.touch-mode .controls-hint,.touch-mode .key-hint{display:none}@media(pointer:coarse){.hud-top-left{top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));gap:10px}.hud-portrait{width:54px;height:54px}.hud-top-right{top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right))}.hud-top-center{top:max(14px,env(safe-area-inset-top));width:min(50vw,460px)}.timer{font-size:clamp(22px,6vw,30px)}.wave{font-size:9px;letter-spacing:.2em}.hp-bar{width:clamp(120px,30vw,210px);height:13px}.hud-name span,.hud-sub{display:none}.kills{padding:4px 10px 5px}.kills strong{font-size:16px}.icon-btn{width:42px;height:42px;font-size:18px}}.hurt-flash{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 32%,rgba(150,0,0,.55) 100%);opacity:0;transition:opacity .3s ease;pointer-events:none}.hurt-flash.on{opacity:1;transition:opacity .05s ease}.lowhp{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 48%,rgba(120,0,0,.55) 100%);opacity:0;pointer-events:none;transition:opacity .6s ease}.lowhp.active{opacity:1;animation:lowPulse 1.5s ease-in-out infinite}@keyframes lowPulse{50%{opacity:.55}}.banner{position:absolute;top:118px;left:50%;transform:translate(-50%) translateY(8px);text-align:center;opacity:0;pointer-events:none;transition:opacity .35s ease,transform .35s ease;z-index:12;width:min(90vw,760px)}.banner.show{opacity:1;transform:translate(-50%) translateY(0)}.banner-title{font-family:var(--serif);font-size:clamp(22px,2.8vw,34px);letter-spacing:.2em;color:var(--gold-bright);text-shadow:0 2px 24px rgba(0,0,0,.95),0 0 24px rgba(214,179,106,.25)}.banner-sub{margin-top:7px;font-size:11px;letter-spacing:.3em;color:#d6c8ac99;text-shadow:0 1px 6px #000}.banner.tone-red .banner-title{color:#ff9f8a;text-shadow:0 2px 24px rgba(0,0,0,.95),0 0 26px rgba(255,60,30,.3)}.banner.tone-blue .banner-title{color:#a9e8ff;text-shadow:0 2px 24px rgba(0,0,0,.95),0 0 26px rgba(80,180,255,.3)}.banner.tone-purple .banner-title{color:#d8b0ff;text-shadow:0 2px 24px rgba(0,0,0,.95),0 0 26px rgba(160,80,255,.3)}.ability-callout{position:absolute;left:50%;bottom:165px;transform:translate(-50%) translateY(8px);font-family:var(--serif);font-size:24px;letter-spacing:.24em;color:var(--gold-bright);opacity:0;z-index:12;text-shadow:0 2px 20px rgba(0,0,0,.95),0 0 24px currentColor;transition:opacity .25s ease,transform .25s ease;pointer-events:none;white-space:nowrap}.ability-callout.show{opacity:1;transform:translate(-50%) translateY(0)}.toast-wrap{position:absolute;left:50%;bottom:108px;transform:translate(-50%);display:flex;flex-direction:column;gap:7px;align-items:center;z-index:14;pointer-events:none}.toast{display:flex;align-items:center;gap:9px;padding:9px 18px;border:1px solid rgba(214,179,106,.3);background:#070a0ee6;font-size:11.5px;letter-spacing:.08em;color:#ded2bc;animation:toastIn .3s ease both;box-shadow:0 8px 30px #00000080}.toast .icon{color:var(--gold-bright);font-size:14px}.toast.out{opacity:0;transform:translateY(-6px);transition:.35s ease}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.levelup-overlay{z-index:25;background:radial-gradient(ellipse at 50% 45%,#281e0a40,#020408db 70%)}.levelup-panel{width:min(1080px,94vw);text-align:center;animation:panelIn .35s ease both}.levelup-head h2{margin:8px 0 6px;font-family:var(--serif);font-size:clamp(26px,2.8vw,34px);font-weight:600;letter-spacing:.14em;color:#f2e7d2}.levelup-head h2 span{color:var(--gold-bright);text-shadow:0 0 24px rgba(214,179,106,.4)}.levelup-head p{margin:0;font-size:12px;letter-spacing:.14em;color:var(--muted)}.upgrade-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.upgrade-card{--rarity: #8d96a5;--rarity-glow: rgba(140, 150, 165, .2);position:relative;text-align:left;min-height:306px;padding:24px 22px 18px;border:1px solid color-mix(in srgb,var(--rarity) 55%,transparent);background:radial-gradient(ellipse at 50% 0%,var(--rarity-glow),transparent 55%),linear-gradient(180deg,#171b22f7,#080a0efc);color:var(--ink);cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;animation:cardIn .45s ease both;clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}.upgrade-card:before{content:"";position:absolute;inset:6px;border:1px solid color-mix(in srgb,var(--rarity) 18%,transparent);pointer-events:none}.upgrade-card.rarity-common{--rarity: #8d96a5;--rarity-glow: rgba(140, 150, 165, .16)}.upgrade-card.rarity-rare{--rarity: #55a8ff;--rarity-glow: rgba(70, 150, 255, .16)}.upgrade-card.rarity-epic{--rarity: #c07bff;--rarity-glow: rgba(170, 90, 255, .18)}.upgrade-card:hover{transform:translateY(-7px);border-color:var(--rarity);box-shadow:0 20px 50px #000000a6,0 0 34px var(--rarity-glow)}@keyframes cardIn{0%{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:none}}.upgrade-rarity{position:absolute;top:16px;right:18px;font-family:var(--serif);font-size:8.5px;letter-spacing:.24em;color:color-mix(in srgb,var(--rarity) 80%,#ffffff);text-transform:uppercase}.upgrade-icon{width:62px;height:62px;margin:16px 0 22px;display:grid;place-items:center;border:1px solid var(--rarity);color:var(--rarity);background:#00000052;transform:rotate(45deg);box-shadow:0 0 24px var(--rarity-glow),inset 0 0 14px #00000080}.upgrade-icon .icon{width:28px;height:28px;transform:rotate(-45deg);filter:drop-shadow(0 0 7px var(--rarity-glow))}.upgrade-name{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.08em;color:#f0e5d2;margin-bottom:8px}.upgrade-desc{margin:0;font-size:12px;line-height:1.8;color:var(--muted);min-height:66px}.upgrade-foot{position:absolute;left:22px;right:20px;bottom:18px;display:flex;align-items:center;justify-content:space-between}.pips{display:flex;gap:6px}.pips i{width:7px;height:7px;border:1px solid color-mix(in srgb,var(--rarity) 65%,transparent);transform:rotate(45deg);display:block}.pips i.on{background:var(--rarity);box-shadow:0 0 7px var(--rarity)}.key-hint{width:22px;height:22px;display:grid;place-items:center;font-family:var(--serif);font-size:10px;color:#e6dcc880;border:1px solid rgba(230,220,200,.18)}.upgrade-card.picked{border-color:var(--gold-bright);box-shadow:0 0 44px #d6b36a59}.upgrade-card.locked{pointer-events:none}.upgrade-card.locked:not(.picked){opacity:.35}.levelup-hint{margin-top:24px;font-size:11px;letter-spacing:.12em;color:var(--muted-2);display:flex;align-items:center;justify-content:center;gap:6px}.levelup-hint kbd{font-size:9px;padding:2px 5px}.pause-overlay{z-index:24}.pause-panel{width:min(440px,92vw)}.pause-meta{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.1em;color:var(--muted);margin:-10px 0 24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.07)}.pause-meta span:last-child{font-family:var(--serif);color:var(--gold)}.pause-actions{display:flex;flex-direction:column;gap:10px}.pause-actions .btn{width:100%}.loading-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,#161a22e6,#04060a 70%);display:grid;place-items:center;z-index:60;transition:opacity .55s ease;pointer-events:auto}.loading-overlay.done{opacity:0;pointer-events:none}.loading-inner{text-align:center;display:flex;flex-direction:column;align-items:center}.loading-rune{width:58px;height:58px;border:1px solid rgba(214,179,106,.4);transform:rotate(45deg);position:relative;animation:runeSpin 3.4s linear infinite;box-shadow:0 0 34px #d6b36a1f}.loading-rune:before{content:"";position:absolute;inset:8px;border:1px solid rgba(214,179,106,.25)}.loading-rune:after{content:"";position:absolute;inset:18px;background:#d6b36a8c;box-shadow:0 0 18px #d6b36a99}@keyframes runeSpin{to{transform:rotate(405deg)}}.loading-text{margin-top:30px;font-family:var(--serif);font-size:13px;letter-spacing:.32em;color:var(--gold-bright)}.loading-sub{margin-top:9px;font-size:10px;letter-spacing:.2em;color:var(--muted)}.end-overlay{z-index:40;background:#020408c7;overflow:hidden}.end-backdrop{position:absolute;inset:-60px;background-size:cover;background-position:50% 20%;filter:blur(28px) saturate(.7) brightness(.35);opacity:.8}.end-veil{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 40%,rgba(214,179,106,.08),transparent 45%),radial-gradient(ellipse at 70% 60%,rgba(60,120,180,.06),transparent 50%),linear-gradient(180deg,#04060a99,#04060af5)}.end-overlay.defeat .end-veil{background:radial-gradient(ellipse at 30% 40%,rgba(180,40,30,.1),transparent 45%),linear-gradient(180deg,#04060aa6,#04060af7)}.end-panel{position:relative;width:min(940px,94vw);display:grid;grid-template-columns:280px 1fr;border:1px solid rgba(214,179,106,.32);background:linear-gradient(180deg,#0f1218f7,#07090dfc);box-shadow:0 40px 120px #000000bf,inset 0 0 80px #0006;animation:endIn .6s cubic-bezier(.2,.8,.3,1) both;overflow:hidden;clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px)}.end-overlay.defeat .end-panel{border-color:#b45a5059}@keyframes endIn{0%{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:none}}.end-side{position:relative;min-height:440px;overflow:hidden;border-right:1px solid rgba(214,179,106,.14)}.end-side img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 18%;filter:saturate(.85) brightness(.72)}.end-side:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(4,6,10,.95) 100%)}.end-side-info{position:absolute;left:22px;right:22px;bottom:22px;z-index:2;display:flex;flex-direction:column;gap:4px}.end-side-info strong{font-family:var(--serif);font-size:24px;letter-spacing:.14em;color:#f2e7d2;text-shadow:0 2px 12px #000}.end-side-info span{font-size:10px;letter-spacing:.16em;color:#d6b36aa6}.end-main{padding:clamp(24px,3.4vw,42px);display:flex;flex-direction:column;gap:16px}.end-overlay.victory .eyebrow{color:var(--gold)}.end-overlay.defeat .eyebrow{color:#b96b5f}.end-main h2{margin:0;font-family:var(--serif);font-size:clamp(26px,3.2vw,40px);font-weight:600;letter-spacing:.08em;line-height:1.2;color:#f4ead7;text-shadow:0 2px 24px rgba(0,0,0,.8)}.end-overlay.victory .end-main h2{background:linear-gradient(180deg,#fff2cf,#d6b36a);-webkit-background-clip:text;background-clip:text;color:transparent}.end-overlay.defeat .end-main h2{color:#e5c3ba}.end-flavor{margin:0;font-size:12px;line-height:1.85;color:var(--muted);max-width:540px}.end-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#ffffff12;border:1px solid rgba(255,255,255,.07);margin-top:4px}.end-stat{background:#06080ceb;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.end-stat span{font-size:9px;letter-spacing:.16em;color:var(--muted-2)}.end-stat strong{font-family:var(--serif);font-size:18px;font-weight:500;letter-spacing:.05em;color:#eee2cd;font-variant-numeric:tabular-nums}.record-line{display:flex;gap:12px;align-items:flex-start;padding:11px 14px;border:1px solid rgba(214,179,106,.14);background:#ffffff05;color:var(--muted)}.record-line>.icon{color:var(--gold-dim);font-size:18px;margin-top:2px}.record-line b{display:block;font-family:var(--serif);font-size:12px;font-weight:500;letter-spacing:.1em;color:#d9cebb}.record-line span{font-size:10.5px;letter-spacing:.05em;color:var(--muted-2)}.record-line.is-new{border-color:#d6b36a6b;background:linear-gradient(90deg,rgba(214,179,106,.1),transparent);box-shadow:inset 0 0 24px #d6b36a0d}.record-line.is-new>.icon,.record-line.is-new b{color:var(--gold-bright)}.end-build{display:flex;gap:14px;align-items:flex-start}.end-build-label{flex:none;font-size:9px;letter-spacing:.2em;color:var(--muted-2);padding-top:6px}.end-upgrades{display:flex;flex-wrap:wrap;gap:6px}.end-upgrade{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid rgba(255,255,255,.08);background:#ffffff06;font-size:10px;letter-spacing:.05em;color:#b5ad9d}.end-upgrade .icon{font-size:12px;color:var(--gold)}.end-actions{display:flex;gap:10px;margin-top:auto;padding-top:8px;flex-wrap:wrap}.end-actions .btn-primary{flex:1;min-width:160px}@media(max-width:1120px){.hero-detail{grid-template-columns:190px 1fr 200px;gap:18px}.portrait-frame{width:150px}.detail-portrait blockquote,.head-tip{display:none}}@media(max-width:900px){.hero-roster{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-card{height:140px}.hero-detail{grid-template-columns:1fr}.detail-portrait{display:none}.detail-side{flex-direction:row;flex-wrap:wrap;align-items:stretch}.record-box{flex:1;min-width:180px}.detail-side .btn-block{min-width:200px}.play-note,.difficulty-row{display:none}.upgrade-row{grid-template-columns:1fr;max-height:56vh;overflow-y:auto;padding:4px 6px 12px}.upgrade-card{min-height:0;padding:18px 20px 16px 84px}.upgrade-icon{position:absolute;left:24px;top:28px;width:46px;height:46px;margin:0}.upgrade-icon .icon{width:22px;height:22px}.upgrade-desc{min-height:0}.upgrade-foot{position:static;margin-top:14px}.end-panel{grid-template-columns:1fr;max-height:92vh;overflow-y:auto}.end-side{display:none}.end-stats{grid-template-columns:1fr 1fr}.hud-name span,.hud-sub{display:none}.hud-top-center{width:46vw}}@media(max-height:800px){.title-roster{display:none}.title-content{padding-bottom:30px}.game-title{font-size:clamp(52px,8vw,100px)}.title-tagline{margin-top:18px;line-height:1.8}.title-actions{margin-top:24px}.hero-card{height:150px}.hero-detail{min-height:280px}.detail-heading h3{font-size:28px}.ability{padding-top:8px;padding-bottom:8px}.ability-copy p{font-size:11px}.upgrade-card{min-height:270px}}@media(max-height:660px){.title-tagline,.title-meta{display:none}.hero-card{height:118px}.detail-portrait{display:none}.hero-detail{grid-template-columns:1fr 200px}.play-note{display:none}}@media(max-height:560px)and (pointer:coarse){.levelup-overlay{padding:10px 16px}.levelup-head .eyebrow{display:none}.levelup-head h2{margin:0 0 4px;font-size:clamp(20px,5.5vh,28px)}.levelup-head p{display:none}.upgrade-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;max-height:none;overflow:visible;padding:0}.upgrade-card{min-height:0;padding:10px 12px 8px;display:flex;flex-direction:column}.upgrade-icon{position:static;width:34px;height:34px;margin:2px 0 8px}.upgrade-icon .icon{width:17px;height:17px}.upgrade-name{font-size:16px;margin-bottom:4px}.upgrade-desc{font-size:11px;line-height:1.5;min-height:0}.upgrade-foot{position:static;margin-top:auto;padding-top:8px}.levelup-hint{margin-top:10px;font-size:10px}.levelup-hint kbd{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
