:root{--bg: #06110f;--bg2: #0b1f1a;--ink: #e9f5f1;--muted: #93aba4;--line: rgba(233, 245, 241, .12);--outline: #2a423c;--jade: #2fd6a6;--jade-hi: #8ff5d6;--jade-deep: #0b7a5f;--gold: #f5c35b;--ember: #ff8a3d;--danger: #ff6b6b;--good: #4fdb86;--glass: rgba(16, 38, 33, .46);--glass-strong: rgba(28, 60, 52, .66);--edge: rgba(160, 255, 225, .16);--hi: rgba(255, 255, 255, .16);--shadow: rgba(0, 0, 0, .6);--t1: #79a6ff;--t2: #4fdb86;--t3: #fbbd3c;--t4: #ff7b7b;--t5: #8fa39e;--f-title: "Cinzel", "Trajan Pro", Georgia, serif;--f-ui: "Sora", "Noto Sans SC", system-ui, -apple-system, sans-serif;--f-han: "Noto Serif SC", "Songti SC", "STSong", serif;--f-hans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--r: 22px;--r-sm: 14px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);font:15px/1.55 var(--f-ui);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--jade-hi);outline-offset:3px}h1,h2,h3{margin:0;text-wrap:balance}p{margin:0}input,select{font:inherit;color:var(--ink);background:var(--glass-strong);border:1px solid var(--edge);border-radius:10px;padding:8px 10px;max-width:100%}input[type=checkbox]{width:20px;height:20px;accent-color:var(--jade)}.dungeon-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse 60% 40% at 50% 110%,rgba(47,214,166,.18),transparent 70%),linear-gradient(180deg,#040b0a,#081814 60%,#0a1f1a)}.dungeon-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.35;background-image:linear-gradient(rgba(0,0,0,.55) 2px,transparent 2px),linear-gradient(90deg,rgba(0,0,0,.45) 2px,transparent 2px),linear-gradient(90deg,rgba(0,0,0,.45) 2px,transparent 2px);background-size:100% 46px,92px 92px,92px 92px;background-position:0 0,0 0,46px 46px}.torch{position:absolute;top:18vh;width:46vmax;height:46vmax;border-radius:50%;filter:blur(50px);background:radial-gradient(circle,rgba(255,150,60,.28),rgba(255,110,30,.06) 45%,transparent 70%);animation:flicker 3.2s ease-in-out infinite alternate}.torch.l{left:-22vmax}.torch.r{right:-22vmax;animation-delay:-1.4s}.fog{position:absolute;inset:auto -20% -10% -20%;height:40vh;background:radial-gradient(ellipse at center,rgba(143,245,214,.1),transparent 65%);filter:blur(30px);animation:fog 18s ease-in-out infinite alternate}@keyframes flicker{0%{opacity:.75;transform:scale(1)}40%{opacity:1}70%{opacity:.82;transform:scale(1.04)}to{opacity:.95}}@keyframes fog{to{transform:translate(8%)}}.glass{position:relative;background:var(--glass);-webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);border:1px solid var(--edge);border-radius:var(--r);box-shadow:inset 0 1px 0 var(--hi),inset 0 -1px 1px #0006,0 22px 50px -24px var(--shadow)}.glass:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(160deg,rgba(255,255,255,.09),transparent 38%)}.app{max-width:1100px;margin:0 auto;padding-inline:16px;padding-block:12px 48px;min-height:100vh}.stage{margin-top:14px}.eyebrow{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--jade-hi);opacity:.85}.eyebrow.bad{color:var(--danger)}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}.col{flex-direction:column}.lead{font-size:17px}.han-inline{font-family:var(--f-han);font-weight:600;color:var(--jade-hi)}.good-msg{color:var(--good);font-weight:600}.bad-msg{color:var(--danger);font-weight:600}.warn-msg{color:var(--gold);font-weight:600}.big-msg{font-family:var(--f-title);font-size:26px;letter-spacing:.02em}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:11px 20px;font-weight:600;font-size:15px;background:var(--glass-strong);border:1px solid var(--edge);box-shadow:inset 0 1px 0 var(--hi),0 8px 20px -12px var(--shadow);transition:transform .12s,filter .2s}.btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.12)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45}.btn.primary{color:#03140f;border-color:transparent;background:linear-gradient(180deg,var(--jade-hi),var(--jade) 55%,var(--jade-deep));box-shadow:inset 0 1px #ffffffb3,inset 0 -3px 8px #00000040,0 10px 26px -10px #2fd6a6cc}.btn.big{font-size:18px;padding:15px 30px;font-family:var(--f-title);letter-spacing:.04em}.btn.wide{width:100%}.btn.danger{color:var(--danger)}.ghost{color:var(--muted);font-weight:500;padding:8px 4px}.ghost:hover{color:var(--ink)}.tiny{font-size:11px;font-weight:700;border:1px solid var(--edge);border-radius:6px;padding:2px 6px;color:var(--muted)}.coin,.gem{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:-2px;margin-right:5px;flex:none}.coin{background:radial-gradient(circle at 35% 30%,#fff3c4,var(--gold) 45%,#a8741a);box-shadow:0 0 8px #f5c35b80}.gem{border-radius:3px;transform:rotate(45deg) scale(.85)}.gem.jade{background:linear-gradient(135deg,var(--jade-hi),var(--jade-deep))}.gem.ink{background:linear-gradient(135deg,#8aa0ff,#1b2468)}.gem.silk{background:linear-gradient(135deg,#ffc3e6,#b0437c)}.t1{color:var(--t1)}.t2{color:var(--t2)}.t3{color:var(--t3)}.t4{color:var(--t4)}.t5{color:var(--t5)}.py{font-weight:500;letter-spacing:.01em}.py.plain{color:var(--muted)}.say{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--jade-hi);background:var(--glass-strong);border:1px solid var(--edge);vertical-align:middle;transition:transform .12s}.say:hover{transform:scale(1.08)}.say.big{width:64px;height:64px;color:#03140f;background:linear-gradient(180deg,var(--jade-hi),var(--jade));box-shadow:0 0 0 6px #2fd6a626,0 10px 24px -8px #2fd6a6b3}.bar{position:relative;height:14px;border-radius:99px;background:#00000073;box-shadow:inset 0 1px 3px #0009;overflow:hidden}.bar i{display:block;height:100%;border-radius:inherit;transition:width .4s cubic-bezier(.2,.8,.2,1);box-shadow:inset 0 1px #ffffff80}.bar span{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:10px;font-weight:700;text-shadow:0 1px 2px #000;font-variant-numeric:tabular-nums}.bar.hp i{background:linear-gradient(180deg,#8af5b5,#1fae63)}.bar.foe i{background:linear-gradient(180deg,#ff9d8a,#c8312a)}.bar.xp i{background:linear-gradient(180deg,#ffe39a,var(--gold))}.bar.foe{height:16px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px 8px 8px;border-radius:999px;position:sticky;top:calc(env(safe-area-inset-top,0px) + 8px);z-index:20}.lvl-badge{display:flex;align-items:center;gap:10px;min-width:0}.lvl-badge>b{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font-family:var(--f-title);font-size:18px;color:#2a1a00;background:radial-gradient(circle at 35% 30%,#fff3c4,var(--gold) 50%,#9a6814);box-shadow:0 0 14px #f5c35b73,inset 0 -2px 4px #0000004d;flex:none}.lvl-xp{display:flex;flex-direction:column;gap:3px;width:110px;font-size:11px;color:var(--muted);text-align:left}.lvl-xp .bar{height:7px}.res{display:flex;align-items:center;gap:12px;font-weight:600;font-variant-numeric:tabular-nums;font-size:14px;flex-wrap:wrap;justify-content:flex-end}.res>span{display:inline-flex;align-items:center}.flame-chip{display:inline-flex;align-items:center;gap:2px;padding:4px 10px;border-radius:99px;background:#ff8a3d26;color:#ffc18f;font-weight:700}.flame{display:inline-block;width:12px;height:16px;margin-right:4px;border-radius:50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#fff2b0,var(--ember) 55%,#c2301a);box-shadow:0 0 10px var(--ember);animation:flame 1s ease-in-out infinite alternate}@keyframes flame{to{transform:scaleY(1.15) translateY(-1px)}}@media(max-width:560px){.lvl-xp{width:70px}.res{gap:8px;font-size:13px}.res>span:nth-child(3),.res>span:nth-child(4){display:none}}.town{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:center;min-height:calc(100vh - 120px)}@media(max-width:860px){.town{grid-template-columns:1fr;min-height:0}}.tower-scene{display:flex;align-items:center;gap:12px}@media(max-width:560px){.tower-scene{flex-direction:column;text-align:center}}.jade-tower{width:min(260px,48vw);flex:none;filter:drop-shadow(0 0 30px rgba(47,214,166,.25));transition:transform .3s}.jade-tower:hover{transform:translateY(-4px)}.jade-tower svg{width:100%;height:auto;display:block}.window.now{animation:win 1.4s ease-in-out infinite alternate}@keyframes win{to{fill:#fff3c4;filter:drop-shadow(0 0 6px #ffd27a)}}.scene-cta{display:flex;flex-direction:column;gap:12px;align-items:flex-start;min-width:0}@media(max-width:560px){.scene-cta{align-items:center}}.scene-cta h1{font-family:var(--f-title);font-size:clamp(28px,4.5vw,44px);line-height:1.1;text-shadow:0 0 30px rgba(47,214,166,.35)}.places{display:grid;grid-template-columns:1fr;gap:12px}@media(max-width:860px)and (min-width:561px){.places{grid-template-columns:1fr 1fr}}.place{display:flex;align-items:center;gap:14px;padding:14px 18px;text-align:left;transition:transform .15s,border-color .2s}.place:hover{transform:translate(4px);border-color:#8ff5d666}.place-g{display:grid;place-items:center;width:50px;height:50px;border-radius:14px;font-family:var(--f-han);font-weight:900;font-size:26px;flex:none;background:radial-gradient(circle at 35% 30%,#8ff5d659,#0b7a5f59);border:1px solid var(--edge);color:var(--jade-hi)}.place-t{display:flex;flex-direction:column;min-width:0;flex:1}.place-t b{font-family:var(--f-title);font-size:17px;letter-spacing:.02em}.place-t small{color:var(--muted);font-size:13px}.badge{min-width:26px;height:26px;padding:0 7px;border-radius:99px;display:grid;place-items:center;font-weight:700;font-size:13px;background:var(--danger);color:#fff;box-shadow:0 0 12px #ff6b6b99;animation:pulse 1.6s infinite}@keyframes pulse{50%{transform:scale(1.12)}}.page{display:flex;flex-direction:column;gap:18px}.page-head{display:flex;gap:14px;align-items:flex-start}.page-head h1{font-family:var(--f-title);font-size:clamp(24px,3.6vw,34px);line-height:1.15}.page-head p{margin-top:4px;max-width:60ch}.sec{font-family:var(--f-title);font-size:22px;margin-top:8px}.floors{display:flex;flex-direction:column;gap:10px}.floor-slab{display:grid;grid-template-columns:52px 1fr auto;gap:14px;align-items:center;padding:12px 18px 12px 12px;text-align:left;transition:transform .15s}.floor-slab:hover:not(:disabled){transform:translate(4px)}.floor-slab.locked{opacity:.45}.floor-slab.done .fs-num{background:linear-gradient(180deg,#ffe39a,var(--gold));color:#2a1a00}.fs-num{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;font-family:var(--f-title);font-size:22px;font-weight:800;background:hsl(var(--h) 50% 22% / .8);border:1px solid hsl(var(--h) 80% 70% / .3)}.fs-t{display:flex;flex-direction:column;min-width:0}.fs-t small{color:var(--muted)}.fs-p{font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.floor-slab.done .fs-p{color:var(--gold)}.map{position:relative;width:100%;max-width:760px;margin:0 auto;padding:0;overflow:visible;background:radial-gradient(ellipse at 50% 40%,hsl(var(--h) 60% 20% / .35),transparent 70%),var(--glass)}.corridors{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.cor{stroke:#ffffff1a;stroke-width:10;stroke-linecap:round;vector-effect:non-scaling-stroke}.cor.on{stroke:hsl(var(--h) 80% 60% / .55);filter:drop-shadow(0 0 6px hsl(var(--h) 80% 60%))}.node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;width:30%}.n-g{display:grid;place-items:center;width:clamp(54px,11vw,78px);aspect-ratio:1;border-radius:50%;font-family:var(--f-han);font-weight:900;font-size:clamp(24px,4.5vw,34px);background:radial-gradient(circle at 35% 30%,hsl(var(--h) 80% 75% / .55),hsl(var(--h) 70% 25% / .9));border:2px solid hsl(var(--h) 80% 75% / .5);box-shadow:inset 0 2px #ffffff59,0 10px 22px -8px #000;transition:transform .15s}.n-l{display:flex;flex-direction:column;align-items:center;text-align:center;line-height:1.25}.n-l b{font-size:13px}.n-l small{font-size:11px;color:var(--muted)}.node:hover:not(:disabled) .n-g{transform:scale(1.08)}.node.open .n-g{animation:beckon 1.5s ease-in-out infinite}@keyframes beckon{50%{box-shadow:inset 0 2px #ffffff59,0 0 0 10px hsl(var(--h) 80% 60% / .18),0 0 30px hsl(var(--h) 80% 60% / .5)}}.node.done .n-g{background:radial-gradient(circle at 35% 30%,#fff3c4,var(--gold) 55%,#8a5a10);color:#2a1a00;border-color:#ffe39a}.node.locked{opacity:.45}.node.locked .n-g{background:#0006;border-color:#ffffff1a;color:var(--muted)}.node.boss .n-g{width:clamp(68px,14vw,100px);background:radial-gradient(circle at 35% 30%,#ffb3a0,#b3261e 60%,#3b0705);border-color:#ff9d8a;color:#fff}.node.boss.locked .n-g{background:#3c000080}.floor-info{display:grid;grid-template-columns:1fr 1.4fr;gap:20px;padding:18px 20px}@media(max-width:700px){.floor-info{grid-template-columns:1fr}}.word-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.wchip{font-family:var(--f-han);font-weight:600;font-size:18px;padding:4px 10px;border-radius:10px;background:var(--glass-strong);border:1px solid var(--edge)}.wchip.unk{color:var(--muted)}.monster{width:min(240px,58vw);aspect-ratio:1;animation:bob 2.4s ease-in-out infinite;filter:drop-shadow(0 18px 30px rgba(0,0,0,.5))}.monster.small{width:100%;animation-duration:3s}.monster.boss{width:min(300px,72vw)}.monster svg{width:100%;height:100%;overflow:visible}.mglyph{font-family:var(--f-han);font-weight:900;fill:#06110f;paint-order:stroke;stroke:#ffffff8c;stroke-width:3px}.monster.boss .mglyph{fill:#fff;stroke:#0009}.monster .eyes{animation:blink 4s infinite;transform-origin:100px 84px}@keyframes bob{50%{transform:translateY(-8px) scale(1.02,.98)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}.monster.hit{animation:hit .4s}.monster.crit{animation:crit .5s}.monster.attack{animation:lunge .45s}.monster.die{animation:die .6s forwards}@keyframes hit{30%{transform:translate(10px) rotate(4deg);filter:brightness(2.2)}60%{transform:translate(-6px)}}@keyframes crit{20%{transform:scale(.85) rotate(-6deg);filter:brightness(3) hue-rotate(40deg)}50%{transform:scale(1.1) rotate(4deg)}}@keyframes lunge{40%{transform:translateY(24px) scale(1.18)}}@keyframes die{to{transform:scale(.2) rotate(30deg);opacity:0;filter:brightness(3)}}.battle,.room{display:flex;flex-direction:column;gap:12px;max-width:640px;margin:0 auto}.b-top{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.b-title{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}.b-title strong{font-family:var(--f-title);font-size:18px}.foe-dots{display:flex;gap:5px}.foe-dots i{width:9px;height:9px;border-radius:50%;background:#ffffff26}.foe-dots i.now{background:var(--danger);box-shadow:0 0 8px var(--danger)}.foe-dots i.done{background:var(--gold)}.arena{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding-block:6px;background:radial-gradient(ellipse 60% 50% at 50% 70%,hsl(var(--h) 70% 40% / .22),transparent 70%)}.foe-bar{width:min(320px,80%)}.foe-wrap{position:relative;display:grid;place-items:center}.float{position:absolute;top:20%;left:50%;transform:translate(-50%);font-family:var(--f-title);font-weight:800;font-size:30px;pointer-events:none;white-space:nowrap;text-shadow:0 2px 0 #000,0 0 14px currentColor;animation:float 1s forwards}.float.dmg{color:#fff}.float.crit{color:var(--gold);font-size:38px}.float.hurt{color:var(--danger);top:80%}.float.gold{color:var(--gold);font-size:22px}.float.heal{color:var(--good);top:80%}@keyframes float{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}20%{opacity:1;transform:translate(-50%) scale(1.15)}to{opacity:0;transform:translate(-50%,-50px) scale(1)}}.combo{position:absolute;right:4%;top:30%;font-family:var(--f-title);font-weight:800;font-size:22px;color:var(--gold);text-shadow:0 0 14px rgba(245,195,91,.7);animation:pop .35s}@keyframes pop{0%{transform:scale(1.8);opacity:0}}.shake{animation:shake .4s}@keyframes shake{20%{transform:translate(-8px,3px)}40%{transform:translate(7px,-3px)}60%{transform:translate(-5px,2px)}80%{transform:translate(3px)}}.battle.shake:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,transparent 50%,rgba(255,40,40,.35));pointer-events:none;animation:redflash .45s forwards}@keyframes redflash{to{opacity:0}}.hero-hud{padding:10px 12px;display:flex;flex-direction:column;gap:8px}.hud-row{display:flex;align-items:center;gap:8px}.hp-box{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.item{position:relative;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--glass-strong);border:1px solid var(--edge);flex:none;transition:transform .12s}.item b{font-family:var(--f-han);font-size:20px;font-weight:900;color:var(--jade-hi)}.item small{position:absolute;right:-4px;bottom:-4px;min-width:20px;height:20px;padding:0 4px;border-radius:99px;background:#0b1f1a;border:1px solid var(--edge);font-size:11px;font-weight:700;display:grid;place-items:center}.item:disabled{opacity:.4}.item:hover:not(:disabled){transform:translateY(-2px)}.item.spell b{color:#c9b6ff}.item.spell.ready{border-color:#c9b6ff;box-shadow:0 0 0 3px #c9b6ff40,0 0 22px #c9b6ff99;animation:pulse 1.2s infinite}.timer{height:5px;border-radius:99px;background:#0006;overflow:hidden}.timer i{display:block;height:100%;background:linear-gradient(90deg,var(--danger),var(--gold),var(--jade));animation:drain var(--dur) linear forwards;transform-origin:left}@keyframes drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.q-panel{padding:18px;display:flex;flex-direction:column;gap:14px}.prompt{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;justify-content:center;text-align:center}.p-han{font-family:var(--f-han);font-weight:700;font-size:44px;line-height:1}.p-ask{width:100%;font-size:17px}.prompt .py{font-size:20px}.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.opt{min-height:60px;padding:10px 12px;border-radius:var(--r-sm);background:var(--glass-strong);border:1px solid var(--edge);font-weight:500;font-size:16px;line-height:1.3;box-shadow:inset 0 1px 0 var(--hi),0 6px 14px -10px #000;transition:transform .12s,background .2s,border-color .2s}.opt:hover:not(:disabled){transform:translateY(-2px);border-color:#8ff5d673}.opt:disabled:not(.right):not(.wrong){opacity:.35}.opts.han .opt{font-family:var(--f-han);font-weight:700;font-size:30px}.opt.right{background:#4fdb8638;border-color:var(--good);box-shadow:0 0 0 3px #4fdb8640;opacity:1}.opt.wrong{background:#ff6b6b33;border-color:var(--danger);animation:shake .35s;opacity:1}.tone-opt{display:inline-flex;flex-direction:column;align-items:center;gap:2px}.tone-opt>svg+svg{margin-left:-2px}.tone-opt{flex-direction:row;flex-wrap:wrap;justify-content:center}.tone-opt small{width:100%;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.msg{text-align:center;color:var(--gold);font-size:14px}.intro{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.intro-row{display:flex;align-items:center;gap:18px}.intro-han{font-family:var(--f-han);font-weight:700;font-size:72px;line-height:1.05}.intro-py{font-size:24px}.intro-m{font-size:19px;margin-bottom:6px}.demo{border-radius:14px;background:#00000040;border:1px solid var(--edge)}.reveal{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.reveal-row{display:flex;align-items:center;gap:18px;text-align:left}.reveal-han{font-family:var(--f-han);font-weight:700;font-size:56px;line-height:1}.reveal-row .py{font-size:20px}.reveal-m{font-size:17px;margin-top:2px}.rune{display:grid;grid-template-columns:1fr auto;gap:22px;padding:22px;align-items:center}@media(max-width:620px){.rune{grid-template-columns:1fr;justify-items:center;text-align:center}}.rune-info{display:flex;flex-direction:column;gap:10px;min-width:0}.rune-runes{display:flex;gap:8px}@media(max-width:620px){.rune-runes{justify-content:center}}.rune-runes span{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;font-family:var(--f-han);font-size:26px;font-weight:700;background:#00000059;border:1px solid var(--edge);color:var(--muted)}.rune-runes span.now{border-color:var(--jade);color:var(--ink);box-shadow:0 0 16px #2fd6a666}.rune-runes span.lit{background:linear-gradient(180deg,#ffe39a,var(--gold));color:#2a1a00}.rune-word .py{font-size:24px}.switch{display:inline-flex;gap:8px;align-items:center;color:var(--muted);font-size:14px;cursor:pointer}.rune-pad{display:flex;flex-direction:column;align-items:center;gap:10px}.pad{position:relative;max-width:100%;border-radius:18px;background:radial-gradient(circle at 50% 40%,#ffffff12,#0000004d);border:1px solid var(--edge);box-shadow:inset 0 0 0 1px #8ff5d61f,inset 0 0 40px #0006;touch-action:none}.pad .grid{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;color:#ff786459}.pad-writer{position:absolute;top:0;right:0;bottom:0;left:0}.pad-writer svg{display:block}.status{min-height:22px;font-weight:500;color:var(--jade-hi);text-align:center}.lock,.bridge,.riddle,.shrine,.scroll{padding:22px;display:flex;flex-direction:column;gap:16px}.dials{display:flex;justify-content:center;gap:10px}.dials i{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.15);background:#00000059}.dials i.now{border-color:var(--jade);box-shadow:0 0 12px #2fd6a680}.dials i.ok{background:radial-gradient(circle at 35% 30%,#fff3c4,var(--gold));border-color:#ffe39a}.dials i.bad{background:#ff6b6b66;border-color:var(--danger)}.lock-word{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}.lock-han{font-family:var(--f-han);font-weight:700;font-size:58px;line-height:1}.lock-word .py{font-size:22px}.opts.tones .opt{min-height:72px}.en{font-size:19px;font-style:italic}.slots{min-height:84px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;padding:12px;border-radius:var(--r-sm);background:repeating-linear-gradient(90deg,#78502859 0,#78502859 46px,#50321959 46px,#50321959 48px);border:1px dashed rgba(255,255,255,.2)}.slots.ok{border:1px solid var(--good);box-shadow:0 0 20px #4fdb864d}.slots.bad{border:1px solid var(--danger);animation:shake .4s}.tiles{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.tile{display:inline-flex;flex-direction:column;align-items:center;padding:8px 14px;border-radius:12px;background:linear-gradient(180deg,#f3e3c3,#d6bb8a);color:#2a1a00;box-shadow:inset 0 1px #fff,0 4px #8a6a3a,0 8px 14px -6px #000;transition:transform .1s}.tile b{font-family:var(--f-han);font-size:26px;font-weight:700;line-height:1.15}.tile small{font-size:11px}.tile small .t1{color:#1d4fc2}.tile small .t2{color:#127a3a}.tile small .t3{color:#a35a00}.tile small .t4{color:#b51e1e}.tile small .t5{color:#5a5a5a}.tile:hover{transform:translateY(-2px)}.tile:active{transform:translateY(2px);box-shadow:inset 0 1px #fff,0 2px #8a6a3a}.punct{font-family:var(--f-han);font-size:26px}.answer-line{font-family:var(--f-han);font-size:24px}.scroll{background:linear-gradient(180deg,#3026168c,#141e1a8c),var(--glass)}.scroll-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.han-title{font-family:var(--f-han);font-size:30px;font-weight:900;color:var(--gold)}.story{display:flex;flex-direction:column;gap:6px}.s-line{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;padding:4px 8px;border-radius:12px;transition:background .3s}.s-line.reading{background:#f5c35b24;box-shadow:inset 3px 0 0 var(--gold)}.s-line p{font-family:var(--f-hans);font-size:26px;line-height:2.2;min-width:0}.s-tools{display:flex;gap:6px;align-items:center}.s-en{grid-column:1 / -1;color:var(--muted);font-size:14px}.tok{font:inherit;line-height:inherit;padding:0 2px;border-radius:8px;transition:background .15s}.tok:hover{background:#ffffff14}.tok.sel{background:#2fd6a633;box-shadow:inset 0 -2px 0 var(--jade)}.tok.unk{text-decoration:underline dotted rgba(245,195,91,.6);text-underline-offset:8px}.tok rt{font-family:var(--f-ui);font-size:12px;line-height:1}.gloss{position:sticky;bottom:12px;display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;padding:14px 16px;border-radius:var(--r-sm);background:#0e221eeb;border:1px solid var(--edge);box-shadow:0 16px 40px -10px #000;z-index:5}@media(max-width:560px){.gloss{grid-template-columns:auto 1fr auto}.gloss .btn{grid-column:1 / -1}}.g-han{font-family:var(--f-han);font-size:42px;font-weight:700;line-height:1}.chest-room{display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:20px}.chest{position:relative;width:min(280px,70vw);filter:drop-shadow(0 0 30px rgba(245,195,91,.3));animation:bob 2.6s ease-in-out infinite}.chest svg{width:100%;height:auto;display:block}.chest .lid{transform-origin:30px 76px;transition:transform .5s cubic-bezier(.3,1.6,.5,1)}.chest.open .lid{transform:rotate(-28deg) translateY(-10px)}.loot-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:14px}.loot-list>span{display:inline-flex;align-items:center;padding:6px 12px;border-radius:99px;background:var(--glass-strong);border:1px solid var(--edge);font-weight:600}.chest-room .loot-list .btn{width:100%}.burst{position:absolute;left:50%;top:45%;width:0;height:0;pointer-events:none}.burst i{position:absolute;width:8px;height:14px;border-radius:2px;background:var(--gold);transform:rotate(var(--a)) translateY(0);animation:burst 1s ease-out forwards}.burst i:nth-child(3n){background:var(--jade-hi)}.burst i:nth-child(3n+1){background:#ff9d8a}@keyframes burst{to{transform:rotate(var(--a)) translateY(calc(-1 * var(--d) - 40px));opacity:0}}.statues{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}@media(max-width:560px){.statues{grid-template-columns:1fr 1fr}}.statue{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-radius:var(--r-sm);background:#00000040;border:1px solid var(--edge);transition:transform .15s}.statue:hover{transform:translateY(-3px)}.statue.lit{border-color:var(--gold);box-shadow:0 0 18px #f5c35b4d}.statue .monster{width:80%}.statue b{font-size:20px}.statue small{color:var(--muted);font-size:11px;text-align:center}.shrine h3{font-family:var(--f-title);font-size:20px}.demo-row{display:flex;gap:14px;align-items:center}.tonelab{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:var(--r-sm);background:#00000040;border:1px solid var(--edge)}.tl-targets{display:flex;gap:8px;flex-wrap:wrap}.tl-t{display:flex;align-items:baseline;gap:6px;padding:8px 14px;border-radius:12px;border:1px solid var(--edge);background:var(--glass-strong)}.tl-t b{font-family:var(--f-han);font-size:22px}.tl-t.on{border-color:var(--jade);box-shadow:0 0 0 3px #2fd6a633}.tl-graph{width:100%;height:auto;max-height:180px;background:#00000040;border-radius:12px}.tl-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn.rec{background:linear-gradient(180deg,#ffb3a0,var(--danger))}.lvl{display:inline-block;width:40px;height:8px;border-radius:99px;background:#0000004d;position:relative;overflow:hidden}.lvl:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left;transform:scaleX(var(--l));background:#fff}.tl-result{color:var(--muted);font-size:14px}.field-scene{padding:22px;display:flex;flex-direction:column;gap:18px;background:radial-gradient(ellipse at 50% 100%,rgba(79,219,134,.18),transparent 70%),var(--glass)}.herd{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px}.herd-m{animation:bob 2.6s ease-in-out infinite;animation-delay:calc(var(--i) * -.3s)}.forge{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:760px){.forge{grid-template-columns:1fr}}.gear{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:18px;align-items:center}.gear .btn,.gear .good-msg{grid-column:1 / -1}.gear.flash{animation:forgeflash .7s}@keyframes forgeflash{30%{box-shadow:0 0 0 4px var(--gold),0 0 50px var(--ember)}}.gear-icon{position:relative;display:grid;place-items:center;width:64px;height:64px;border-radius:16px;font-family:var(--f-han);font-size:32px;font-weight:900;background:radial-gradient(circle at 35% 30%,#ffe39a,#a8741a);color:#2a1a00;box-shadow:0 0 20px #f5c35b4d}.gear-icon small{position:absolute;bottom:-6px;right:-6px;font-family:var(--f-ui);font-size:12px;font-weight:800;padding:2px 6px;border-radius:99px;background:var(--bg2);color:var(--gold);border:1px solid var(--edge)}.gear-t{display:flex;flex-direction:column;min-width:0}.gear-t b{font-family:var(--f-title);font-size:18px}.gear-t small{color:var(--muted)}.gear-t .next{color:var(--jade-hi)}.cost{display:inline-flex;gap:8px;margin-left:4px;font-variant-numeric:tabular-nums}.cost span{display:inline-flex;align-items:center}.shop{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:760px){.shop{grid-template-columns:1fr}}.ware{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px 16px}.ware>div{display:flex;flex-direction:column;min-width:0}.ware small{color:var(--muted);font-size:13px}.ware .own{color:var(--jade-hi)}.ware-g{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;font-family:var(--f-han);font-size:22px;font-weight:900;background:#0000004d;border:1px solid var(--edge);color:var(--gold)}.camp{display:grid;grid-template-columns:1fr 1.3fr;gap:16px}@media(max-width:760px){.camp{grid-template-columns:1fr}}.fire{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px;background:radial-gradient(ellipse at 50% 30%,rgba(255,138,61,.25),transparent 60%),var(--glass)}.bonfire{position:relative;width:90px;height:100px}.bonfire i{position:absolute;bottom:10px;left:50%;width:46px;height:70px;margin-left:-23px;border-radius:50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 75%,#fff2b0,var(--ember) 50%,rgba(194,48,26,.8));filter:blur(1px);animation:flame .6s ease-in-out infinite alternate;transform-origin:bottom;opacity:.9}.bonfire i:nth-child(2){width:32px;margin-left:-34px;height:48px;animation-delay:-.2s}.bonfire i:nth-child(3){width:30px;margin-left:4px;height:52px;animation-delay:-.4s}.bonfire:after{content:"";position:absolute;bottom:0;left:10px;right:10px;height:14px;border-radius:8px;background:linear-gradient(90deg,#5a3416,#8a5a2a,#5a3416)}.bonfire:not(.roaring) i{transform:scale(.6);opacity:.55}.streak-num{font-family:var(--f-title);font-size:52px;line-height:1;color:#ffc18f;text-shadow:0 0 24px var(--ember)}.goal-ring{width:130px;margin-top:8px}.ring-big{fill:var(--ink);font:700 26px var(--f-ui)}.ring-small{fill:var(--muted);font:500 11px var(--f-ui)}.quests{padding:20px;display:flex;flex-direction:column;gap:12px;min-width:0}.quest{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px;border-radius:var(--r-sm);background:#00000038;border:1px solid var(--edge)}.quest.claimed{opacity:.5}.q-t{display:flex;flex-direction:column;gap:6px;min-width:0}.q-t .bar{height:12px}.heat{display:grid;gap:3px;overflow-x:auto}.heat-col{display:grid;grid-template-rows:repeat(7,1fr);gap:3px}.heat i{aspect-ratio:1;border-radius:3px;background:#ffffff12;min-width:8px}.heat i.on{background:var(--jade)}.row-l{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.hero-grid{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}@media(max-width:860px){.hero-grid{grid-template-columns:1fr}}.hero-grid>.glass{padding:18px;min-width:0}.hero-av{display:grid;place-items:center;width:84px;height:84px;margin:0 auto 12px;border-radius:50%;font-family:var(--f-han);font-size:44px;font-weight:900;color:#03140f;background:radial-gradient(circle at 35% 30%,var(--jade-hi),var(--jade-deep));box-shadow:0 0 30px #2fd6a666}.stats{margin:0;display:flex;flex-direction:column;gap:6px}.stats div{display:flex;justify-content:space-between;gap:10px;font-size:14px;border-bottom:1px solid var(--line);padding-bottom:6px}.stats dt{color:var(--muted)}.stats dd{margin:0;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.bestiary-head{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px}.legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px;background:currentColor}.best-row{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:center;margin-bottom:6px}.best-u{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.best-cells{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;max-width:480px}.best{aspect-ratio:1;border-radius:8px;font-family:var(--f-han);font-weight:700;font-size:clamp(11px,1.8vw,16px);display:grid;place-items:center;overflow:hidden;white-space:nowrap;border:1px solid transparent}.best.m-unseen{background:#ffffff0a;color:#fff3}.best.m-new{background:#ff7b7b33;border-color:#ff7b7b66}.best.m-learning{background:#fbbd3c33;border-color:#fbbd3c73}.best.m-tamed{background:#2fd6a638;border-color:#2fd6a680}.best.m-mastered{background:linear-gradient(180deg,#ffe39a,var(--gold));color:#2a1a00}.m-unseen{color:#ffffff4d}.m-new{color:#ff9d9d}.m-learning{color:var(--t3)}.m-tamed{color:var(--jade)}.m-mastered{color:var(--gold)}.settings{padding:18px;display:flex;flex-direction:column;gap:14px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:#020807b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade .25s}.modal{width:min(420px,100%);padding:26px 22px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;animation:rise .35s cubic-bezier(.2,1.4,.4,1);overflow:hidden}.modal h2{font-family:var(--f-title);font-size:30px}.levelup{font-family:var(--f-title);font-weight:800;color:var(--gold);font-size:18px;text-shadow:0 0 14px rgba(245,195,91,.6)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(30px) scale(.94);opacity:0}}@media(max-width:560px){.opts.han .opt{font-size:26px}.p-han{font-size:38px}.s-line p{font-size:22px}.q-panel{padding:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.timer i{animation-duration:var(--dur)!important}}.battle{max-width:720px}.arena{display:block;position:relative;height:clamp(250px,46vw,340px);padding:0;border-radius:var(--r);overflow:hidden;isolation:isolate;border:1px solid var(--edge);box-shadow:inset 0 0 80px #000c,0 20px 50px -20px #000;background:radial-gradient(ellipse 50% 60% at 50% 30%,hsl(var(--h) 60% 30% / .35),transparent 70%),repeating-linear-gradient(0deg,rgba(0,0,0,.35) 0 2px,transparent 2px 38px),repeating-linear-gradient(90deg,rgba(0,0,0,.28) 0 2px,transparent 2px 76px),linear-gradient(180deg,hsl(var(--h) 25% 10%),hsl(var(--h) 30% 16%))}.boss-arena{background:radial-gradient(ellipse 55% 60% at 70% 45%,rgba(255,60,40,.22),transparent 70%),repeating-linear-gradient(0deg,rgba(0,0,0,.35) 0 2px,transparent 2px 38px),repeating-linear-gradient(90deg,rgba(0,0,0,.28) 0 2px,transparent 2px 76px),linear-gradient(180deg,#120807,hsl(var(--h) 30% 12%))}.battle.enraged .arena{box-shadow:inset 0 0 90px #ff1e1473,0 20px 50px -20px #000;animation:rageglow 1.2s ease-in-out infinite alternate}@keyframes rageglow{to{box-shadow:inset 0 0 130px #ff1e14b3,0 20px 50px -20px #000}}.arena-floor{position:absolute;left:-30%;right:-30%;bottom:0;height:40%;transform:perspective(260px) rotateX(58deg);transform-origin:bottom;z-index:0;background:repeating-linear-gradient(90deg,rgba(0,0,0,.5) 0 3px,transparent 3px 70px),repeating-linear-gradient(0deg,rgba(0,0,0,.5) 0 3px,transparent 3px 46px),linear-gradient(180deg,hsl(var(--h) 20% 14%),hsl(var(--h) 25% 24%))}.pillar{position:absolute;bottom:30%;width:30px;height:64%;z-index:0;border-radius:4px 4px 0 0;background:linear-gradient(90deg,#0d1715,#2a3b37 40%,#0d1715);box-shadow:0 0 0 2px #0006}.pillar.l{left:3%}.pillar.r{right:3%}.tflame{position:absolute;top:-26px;left:50%;width:18px;height:26px;margin-left:-9px;border-radius:50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#fff2b0,var(--ember) 55%,transparent 75%);box-shadow:0 0 30px 12px #ff8a3d59;animation:flame .5s ease-in-out infinite alternate;transform-origin:bottom}.arena .foe-bar{position:absolute;top:14px;right:6%;width:46%;z-index:4}.boss-arena .foe-bar{left:8%;right:8%;width:auto}.boss-arena .bar.foe{height:20px;border:1px solid rgba(255,157,138,.4)}.hero-spot{position:absolute;left:7%;bottom:9%;width:clamp(86px,18vw,130px);z-index:2}.foe-spot{position:absolute;right:5%;bottom:7%;width:clamp(150px,34vw,230px);z-index:1;display:grid;place-items:center}.boss-arena .foe-spot{width:clamp(190px,44vw,300px);right:3%;bottom:3%}.foe-spot .monster,.foe-spot .monster.boss{width:100%}.arena .float{top:10%}.arena .float.hurt,.arena .float.heal{left:-95%;top:30%}.arena .combo{right:auto;left:4%;top:14px;display:flex;align-items:baseline;gap:4px;font-size:28px;z-index:4}.arena .combo small{font-size:13px;letter-spacing:.04em}.monster.enter{animation:enter .6s cubic-bezier(.3,1.4,.5,1)}@keyframes enter{0%{transform:translateY(-120%) scale(.6);opacity:0}70%{transform:translateY(6%) scale(1.12,.88);opacity:1}}.monster.rise{animation:rise 1.5s cubic-bezier(.2,.9,.3,1) both}@keyframes rise{0%{transform:translateY(70%) scale(.3);opacity:0;filter:brightness(0)}60%{transform:translateY(-6%) scale(1.15);opacity:1;filter:brightness(.6)}75%{transform:translateY(0) scale(.95)}to{transform:none;filter:none}}.monster.attack{animation:lunge2 .55s}@keyframes lunge2{35%{transform:translate(-60%) scale(1.15) rotate(-6deg)}55%{transform:translate(-55%) scale(1.1)}}.monster.boss-attack{animation:bosslunge .7s}@keyframes bosslunge{25%{transform:translate(8%) scale(1.1)}45%{transform:translate(-70%) scale(1.25) rotate(-8deg)}65%{transform:translate(-60%) scale(1.2)}}.monster.charging{animation:charging .5s ease-in-out infinite alternate;filter:drop-shadow(0 0 22px rgba(255,60,40,.9))}@keyframes charging{0%{transform:scale(1) translate(0)}to{transform:scale(1.06,.95) translate(3px)}}.monster.enrage{animation:enrage .45s ease-in-out 4}@keyframes enrage{50%{transform:scale(1.18);filter:brightness(1.8) drop-shadow(0 0 30px #ff3020)}}.battle.enraged .monster.boss:not(.boss-die){filter:drop-shadow(0 0 18px rgba(255,40,30,.8))}.monster.boss-die{animation:bossdie 2.4s forwards}@keyframes bossdie{0%,50%{filter:brightness(1.5)}5%{transform:translate(-6px,3px) rotate(-3deg)}10%{transform:translate(6px,-2px) rotate(3deg)}15%{transform:translate(-5px,2px)}20%{transform:translate(5px,-3px) rotate(-2deg)}25%{transform:translate(-6px,1px)}30%{transform:translate(6px,2px) rotate(3deg)}35%{transform:translate(-4px,-2px)}40%{transform:translate(4px,3px)}45%{transform:translate(-3px)}62%{transform:scale(1.25);filter:brightness(3) saturate(0);opacity:1}to{transform:scale(.1) translateY(40%);filter:brightness(4);opacity:0}}.charge-ring{position:absolute;top:8%;right:8%;bottom:8%;left:8%;border-radius:50%;border:3px solid rgba(255,80,60,.8);box-shadow:0 0 30px #ff3c28b3,inset 0 0 30px #ff3c2880;animation:ring 1s ease-in-out infinite}@keyframes ring{0%{transform:scale(1.15);opacity:0}50%{opacity:1}to{transform:scale(.85);opacity:0}}.hero-sprite{width:100%}.hero-sprite svg{width:100%;height:auto;display:block;overflow:visible;animation:breathe 2.2s ease-in-out infinite;transform-origin:60px 150px}@keyframes breathe{50%{transform:scale(1.015,.985)}}.hero-sprite .brush-arm{transform-origin:80px 84px;transition:transform .2s}.hero-sprite .tip.glow{filter:drop-shadow(0 0 6px var(--tip))}.hero-sprite .aura{animation:pulse 2s infinite;transform-origin:60px 96px}.hero-sprite.attack{animation:dash .55s cubic-bezier(.3,.7,.3,1)}.hero-sprite.crit{animation:dashcrit .6s cubic-bezier(.3,.7,.3,1)}.hero-sprite.attack .brush-arm,.hero-sprite.crit .brush-arm{animation:swing .55s}@keyframes dash{45%{transform:translate(230%)}60%{transform:translate(225%)}}@keyframes dashcrit{40%{transform:translate(245%) translateY(-28%) rotate(-10deg)}55%{transform:translate(240%) translateY(0)}}@keyframes swing{0%{transform:rotate(0)}30%{transform:rotate(-70deg)}50%{transform:rotate(95deg)}to{transform:rotate(0)}}.hero-sprite.cast .brush-arm{transform:rotate(-110deg)}.hero-sprite.cast svg{filter:drop-shadow(0 0 14px #c9b6ff);animation:castglow .6s ease-in-out infinite alternate}@keyframes castglow{to{filter:drop-shadow(0 0 26px #c9b6ff)}}.hero-sprite.hurt{animation:knock .5s}@keyframes knock{25%{transform:translate(-22%) rotate(-8deg);filter:brightness(2) sepia(1) hue-rotate(-50deg) saturate(5)}}.hero-sprite.victory{animation:hop .5s ease-in-out 3}@keyframes hop{50%{transform:translateY(-22%)}}.hero-sprite.victory .brush-arm{transform:rotate(-120deg)}.hero-sprite.dead{transform:rotate(-80deg) translate(-20%,30%);opacity:.55;transition:transform .6s,opacity .6s}.hero-sprite.walk svg{animation:walkbob .25s ease-in-out infinite alternate}@keyframes walkbob{to{transform:translateY(-8%) rotate(4deg)}}.hero-sprite.mini svg{animation:none}.fx-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.fx{position:absolute;transform:translate(-50%,-50%)}.fx.slash,.fx.critslash{width:46%;overflow:visible}.fx.slash path,.fx.critslash path{fill:none;stroke-linecap:round;stroke-dasharray:260;stroke-dashoffset:260;animation:draw .3s ease-out forwards,fadeout .3s .3s forwards}.fx.slash path{stroke:#0a0f0e;stroke-width:12;filter:drop-shadow(0 0 6px var(--jade-hi))}.fx.critslash path{stroke:#fff3c4;stroke-width:16;filter:drop-shadow(0 0 12px var(--gold))}.fx.critslash .second{animation-delay:.08s,.38s}@keyframes draw{to{stroke-dashoffset:0}}@keyframes fadeout{to{opacity:0}}.fx.claw{width:22%;overflow:visible}.fx.claw path{fill:none;stroke:#ff5b4f;stroke-width:7;stroke-linecap:round;stroke-dasharray:130;stroke-dashoffset:130;filter:drop-shadow(0 0 8px #ff2a1a);animation:draw .2s ease-out forwards,fadeout .35s .3s forwards}.fx.claw path:nth-child(2){animation-delay:.05s,.35s}.fx.claw path:nth-child(3){animation-delay:.1s,.4s}.fx.spell{top:46%;left:24%;font-family:var(--f-han);font-weight:900;font-size:54px;color:#fff;text-shadow:0 0 12px #c9b6ff,0 0 30px #8a6bff,0 0 60px #8a6bff;animation:fly .65s cubic-bezier(.5,0,.8,.6) forwards}@keyframes fly{0%{left:24%;transform:translate(-50%,-50%) scale(.5) rotate(-40deg)}to{left:72%;transform:translate(-50%,-50%) scale(1.4) rotate(20deg)}}.fx.parry{font-family:var(--f-title);font-weight:800;font-size:40px;color:var(--gold);text-shadow:0 0 20px var(--gold),0 3px 0 #000;animation:pop .4s,fadeout .4s .6s forwards}.fx.coins i{position:absolute;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3c4,var(--gold) 50%,#a8741a);box-shadow:0 0 8px #f5c35bcc;animation:coin 1s var(--t) cubic-bezier(.2,.8,.4,1) both}@keyframes coin{0%{transform:rotate(var(--a)) translate(0);opacity:1}55%{transform:rotate(var(--a)) translate(var(--d));opacity:1}to{transform:rotate(var(--a)) translate(var(--d)) translateY(40px);opacity:0}}.fx.explode b{position:absolute;left:-40px;top:-40px;width:80px;height:80px;border-radius:50%;background:radial-gradient(circle,#fff,#ffd27a 30%,#ff6a2a 55%,transparent 70%);animation:boom .7s ease-out forwards}@keyframes boom{0%{transform:scale(.2);opacity:1}to{transform:scale(2.4);opacity:0}}.fx.explode i{position:absolute;width:6px;height:16px;border-radius:3px;background:#ffd27a;box-shadow:0 0 8px #ff8a3d;animation:spark .7s ease-out forwards}@keyframes spark{0%{transform:rotate(var(--a)) translateY(0);opacity:1}to{transform:rotate(var(--a)) translateY(calc(-1 * var(--d)));opacity:0}}.fx.heal i{position:absolute;left:calc((var(--i) - 4) * 12px);width:10px;height:10px;background:var(--good);clip-path:polygon(35% 0,65% 0,65% 35%,100% 35%,100% 65%,65% 65%,65% 100%,35% 100%,35% 65%,0 65%,0 35%,35% 35%);animation:healup 1.1s calc(var(--i) * 60ms) ease-out both}@keyframes healup{0%{transform:translateY(30px);opacity:0}30%{opacity:1}to{transform:translateY(-60px);opacity:0}}.flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:5;pointer-events:none;animation:flashout .35s ease-out forwards}@keyframes flashout{0%{opacity:.75}to{opacity:0}}.boss-intro{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;background:radial-gradient(ellipse at center,#00000040,#000c);animation:fade .4s}.bi-eyebrow{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:#ff9d8a;animation:slidein .5s .5s both}.bi-name{font-family:var(--f-title);font-weight:800;font-size:clamp(30px,6vw,52px);line-height:1.05;color:#fff;text-shadow:0 0 24px rgba(255,60,40,.9),0 4px 0 #000;animation:slam .55s .75s cubic-bezier(.3,1.6,.5,1) both}.bi-zh{font-family:var(--f-han);font-weight:900;font-size:clamp(22px,4vw,32px);color:#ffb3a0;animation:slidein .5s 1.1s both;margin-bottom:8px}.boss-intro .btn{animation:pop .3s}@keyframes slidein{0%{transform:translateY(14px);opacity:0}}@keyframes slam{0%{transform:scale(2.6);opacity:0;letter-spacing:.3em}}.banner{position:absolute;left:0;right:0;top:38%;z-index:6;display:flex;flex-direction:column;align-items:center;padding:14px;text-align:center;background:linear-gradient(90deg,transparent,rgba(150,10,0,.9) 20%,rgba(150,10,0,.9) 80%,transparent);animation:banner 1.8s ease-in-out forwards}.banner span{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#ffd0c4}.banner strong{font-family:var(--f-title);font-weight:800;font-size:32px;color:#fff;text-shadow:0 0 20px #ff3020}@keyframes banner{0%{transform:scaleY(0)}12%{transform:scaleY(1)}85%{transform:scaleY(1);opacity:1}to{transform:scaleY(0);opacity:0}}.warn-strip{position:absolute;left:10px;right:10px;bottom:10px;z-index:5;text-align:center;font-size:13px;font-weight:700;color:#fff;padding:6px 10px;border-radius:99px;background:#b4140abf;box-shadow:0 0 20px #ff281499;animation:pulse .9s infinite}.q-panel.danger{border-color:#ff5a4699;box-shadow:0 0 0 2px #ff5a4633,0 0 30px #ff281440}.battle.jolt .arena{animation:jolt .25s}@keyframes jolt{30%{transform:translate(5px,-3px)}60%{transform:translate(-4px,2px)}}.battle.quake{animation:quake .5s}@keyframes quake{10%{transform:translate(-10px,4px)}20%{transform:translate(10px,-5px)}30%{transform:translate(-9px,3px)}40%{transform:translate(8px,-2px)}55%{transform:translate(-6px,3px)}70%{transform:translate(4px,-2px)}85%{transform:translate(-2px,1px)}}.battle.quake:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,transparent 45%,rgba(255,40,40,.3));pointer-events:none;animation:redflash .5s forwards}@media(max-width:560px){.arena{height:250px}.arena .foe-bar{width:52%}.fx.spell{font-size:40px}.banner strong{font-size:24px}}.n-g{border-radius:18px}.node.boss .n-g{border-radius:22px}.node .n-g{background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 2px,transparent 2px 12px),radial-gradient(circle at 35% 30%,hsl(var(--h) 80% 75% / .55),hsl(var(--h) 70% 25% / .9))}.node.done .n-g{background-image:radial-gradient(circle at 35% 30%,#fff3c4,var(--gold) 55%,#8a5a10)}.node.locked .n-g{background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0 2px,transparent 2px 12px)}.node.boss .n-g{background-image:radial-gradient(circle at 35% 30%,#ffb3a0,#b3261e 60%,#3b0705)}.map-hero{position:absolute;z-index:3;width:clamp(34px,6vw,48px);transform:translate(-130%,-78%);transition:left .6s ease-in-out,top .6s ease-in-out;pointer-events:none;filter:drop-shadow(0 6px 8px #000)}.slab-wrap{display:flex;flex-direction:column;gap:10px}.tower-sec{display:flex;align-items:center;gap:10px;font-size:18px;margin-top:10px}.tower-sec span{font-family:var(--f-ui);font-size:11px;font-weight:700;letter-spacing:.1em;padding:3px 9px;border-radius:99px;background:var(--jade);color:#03140f}.seg-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:99px;background:#0000004d;border:1px solid var(--edge)}.seg-tabs button{padding:5px 14px;border-radius:99px;font-size:13px;font-weight:600;color:var(--muted)}.seg-tabs button[aria-pressed=true]{background:var(--glass-strong);color:var(--ink);box-shadow:inset 0 1px 0 var(--hi)}.welcome{gap:14px}.w-logo{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;font-family:var(--f-han);font-weight:900;font-size:38px;color:#03140f;background:radial-gradient(circle at 35% 30%,var(--jade-hi),var(--jade-deep));box-shadow:0 0 40px #2fd6a680}.w-field{display:flex;flex-direction:column;gap:6px;width:100%;text-align:left;font-size:13px;color:var(--muted)}.w-field input{width:100%;font-size:16px;padding:12px 14px}.sub-h{font-family:var(--f-title);font-size:17px}.cutscene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top,0px) + 16px) 16px calc(env(safe-area-inset-bottom,0px) + 24px);background:radial-gradient(ellipse at 50% 30%,rgba(47,214,166,.12),transparent 60%),#020807d1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;animation:fade .3s}.cs-title{position:absolute;top:calc(env(safe-area-inset-top,0px) + 22px);left:0;right:0;text-align:center;font-family:var(--f-title);font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--jade-hi);opacity:.8}.cs-skip{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);right:16px}.cs-box{width:min(760px,100%);display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;padding:20px 22px;min-height:150px;animation:rise .35s cubic-bezier(.2,1.3,.4,1)}.cs-box.narr{grid-template-columns:1fr;text-align:center;background:#0a0e0cbf}.cs-portrait{display:grid;place-items:center;width:84px;height:84px;border-radius:22px;font-family:var(--f-han);font-weight:900;font-size:44px;animation:pop .35s;background:radial-gradient(circle at 35% 30%,var(--jade-hi),var(--jade-deep));color:#03140f;box-shadow:0 0 30px #2fd6a666}.cs-portrait.tone-scribe{background:radial-gradient(circle at 35% 30%,#c9b6ff,#3b1d7a);color:#fff;box-shadow:0 0 30px #8c64ff99}.cs-portrait.tone-hero{background:radial-gradient(circle at 35% 30%,#fff3c4,var(--gold) 60%,#8a5a10);color:#2a1a00}.cs-portrait.tone-mimi{background:radial-gradient(circle at 35% 30%,#ffd9b0,#c8742a);color:#2a1300}.cs-portrait.tone-xiaoming{background:radial-gradient(circle at 35% 30%,#b8d8ff,#2a5aa8);color:#fff}.cs-portrait.tone-tie{background:radial-gradient(circle at 35% 30%,#ffc89a,#8a3a12);color:#fff}.cs-portrait.tone-warden{background:radial-gradient(circle at 35% 30%,#ffb3a0,#8a1a12);color:#fff;font-size:28px;line-height:1;padding:6px;text-align:center}.cs-body{display:flex;flex-direction:column;gap:6px;min-width:0}.cs-name{font-family:var(--f-title);font-weight:800;font-size:16px;color:var(--jade-hi)}.tone-scribe .cs-name{color:#c9b6ff}.tone-warden .cs-name{color:#ffb3a0}.tone-hero .cs-name{color:var(--gold)}.tone-tie .cs-name{color:#ffc89a}.cs-text{font-size:18px;line-height:1.6;min-height:3.2em}.narr .cs-text{font-family:var(--f-title);font-size:19px;letter-spacing:.01em}.cs-zh{color:var(--muted);font-style:italic;font-size:14px}.cs-next{align-self:flex-end;font-size:12px;color:var(--muted);letter-spacing:.06em;min-height:16px;animation:pulse 1.6s infinite}.cs-caret{color:var(--jade-hi)}.cs-dots{display:flex;gap:6px}.cs-dots i{width:7px;height:7px;border-radius:50%;background:#fff3}.cs-dots i.on{background:var(--jade-hi)}.cs-dots i.past{background:#8ff5d673}@media(max-width:560px){.cs-box{grid-template-columns:1fr;justify-items:start}.cs-portrait{width:60px;height:60px;font-size:32px}.cs-text{font-size:16px}}.bi-taunt{max-width:46ch;margin:2px 16px 8px;font-style:italic;color:#ffd0c4;font-size:15px;animation:slidein .5s 1.3s both}.bi-trait{font-size:13px;color:#fff;padding:4px 12px;border-radius:99px;background:#96140a99;margin-bottom:6px;animation:slidein .5s 1.4s both}.journal{padding:10px;display:flex;flex-direction:column;gap:4px;max-height:320px;overflow-y:auto}.j-entry{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;text-align:left}.j-entry:hover{background:var(--glass-strong)}.j-entry small{color:var(--jade-hi)}.finisher{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.fin-eyebrow{font-family:var(--f-title);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:14px;color:var(--gold);text-shadow:0 0 14px rgba(245,195,91,.6);animation:pulse 1.2s infinite}.finisher.done .fin-eyebrow{animation:none}.fin-word{display:flex;flex-direction:column;align-items:center;gap:2px}.fin-han{font-family:var(--f-han);font-weight:700;font-size:60px;line-height:1.05}.fin-m{font-size:17px;color:var(--muted)}.fin-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;width:100%}.fin-form input{flex:1 1 200px;max-width:320px;font-size:22px;padding:12px 16px;text-align:center;letter-spacing:.04em;border-radius:14px;border:2px solid var(--gold);background:#00000059}.tone-keys{display:flex;gap:6px}.tone-keys button{width:44px;height:44px;border-radius:12px;font-weight:800;font-size:18px;background:var(--glass-strong);border:1px solid var(--edge)}.fin-write{display:flex;flex-direction:column;align-items:center;gap:10px}.fin-clue{display:flex;gap:12px;align-items:baseline;font-size:18px}.fin-result{display:flex;flex-direction:column;gap:4px;align-items:center;animation:pop .3s}.fin-result strong{font-family:var(--f-title);font-size:26px}.finisher.perfect .fin-result strong{color:var(--gold);text-shadow:0 0 20px var(--gold)}.finisher.good .fin-result strong{color:var(--good)}.finisher.fail .fin-result strong{color:var(--danger)}.q-panel.fin-panel{border-color:#f5c35b8c;box-shadow:0 0 0 2px #f5c35b26,0 0 40px #f5c35b33}.monster.stagger{animation:stagger .8s ease-in-out infinite;filter:saturate(.5) brightness(.85)}@keyframes stagger{25%{transform:rotate(-7deg) translate(-4px)}75%{transform:rotate(7deg) translate(4px)}}.monster.trick{animation:trick .4s}@keyframes trick{50%{transform:scaleX(-1)}}.fx.seal span{display:grid;place-items:center;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:16px;font-family:var(--f-han);font-weight:900;font-size:84px;color:#fff;background:#c0283a;border:6px solid #ff9d8a;box-shadow:0 0 40px #ff3c3ccc;animation:stamp .6s cubic-bezier(.3,1.6,.5,1) forwards,fadeout .4s .9s forwards}@keyframes stamp{0%{transform:scale(3) rotate(-25deg);opacity:0}to{transform:scale(1) rotate(-8deg);opacity:1}}.fx.shatter i{position:absolute;width:14px;height:20px;background:#bfe6ffd9;clip-path:polygon(50% 0,100% 60%,30% 100%,0 40%);animation:spark .7s ease-out forwards}.elite-tag{display:inline-block;margin-bottom:4px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:2px 9px;border-radius:99px;background:#6a3bd1;color:#fff;box-shadow:0 0 12px #8c64ff99}.elite-tag.shield{background:#2a6fb0}.elite-tag.swift{background:#b08a10}.elite-tag.mimic{background:#8a5a10}.elite-tag.trait{background:#8a1a12}.foe-dots i.elite{outline:2px solid #c9b6ff;outline-offset:1px}.monster .wings .wing{transform-box:fill-box;animation:flap .35s ease-in-out infinite alternate}.monster .wings .wing.l{transform-origin:right center}.monster .wings .wing.r{transform-origin:left center}@keyframes flap{to{transform:scaleY(.6) rotate(8deg)}}.monster.elite-swift{animation-duration:1s}.monster .shield-bubble{animation:pulse 2s infinite;transform-origin:100px 100px}.monster.mimic .mimic-lid{transform-origin:30px 92px;animation:chomp .9s ease-in-out infinite}@keyframes chomp{50%{transform:rotate(-10deg)}}.chest.mimic-reveal{animation:shake .3s 3,none;filter:drop-shadow(0 0 30px rgba(255,50,50,.8))}.charms{padding:18px;display:flex;flex-direction:column;gap:14px}.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.slot{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 6px;border-radius:16px;border:2px dashed rgba(255,255,255,.18);background:#00000040}.slot b{font-family:var(--f-han);font-size:30px;line-height:1.1}.slot small{font-size:12px;color:var(--muted);text-align:center}.slot.locked{opacity:.5}.slot[class*=r-]{border-style:solid}.bag{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:8px}.gem-charm{aspect-ratio:1;border-radius:12px;font-family:var(--f-han);font-weight:900;font-size:22px;border:2px solid;position:relative;transition:transform .12s}.gem-charm:hover{transform:translateY(-2px)}.gem-charm.on:after{content:"✓";position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;font:700 11px/18px var(--f-ui);background:var(--jade);color:#03140f}.gem-charm.sel{outline:2px solid #fff;outline-offset:2px}.r-common{--rc: #a9b8b4}.r-rare{--rc: #5fa8ff}.r-epic{--rc: #b98cff}.r-legendary{--rc: #ffcf5a}.gem-charm,.slot[class*=r-],.charm-card,.charm-detail{border-color:var(--rc);color:var(--rc);background:color-mix(in srgb,var(--rc) 14%,rgba(0,0,0,.35))}.r-legendary.gem-charm,.charm-card.r-legendary,.charm-detail.r-legendary{box-shadow:0 0 18px #ffcf5a80}.r-epic.gem-charm,.charm-card.r-epic{box-shadow:0 0 14px #b98cff66}.charm-detail{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:14px;border-radius:14px;border:1px solid}.charm-detail .row{grid-column:1 / -1}.charm-detail b{color:var(--ink);font-size:16px}.charm-detail p{color:var(--ink);margin-top:2px}.c-g{display:grid;place-items:center;width:54px;height:54px;border-radius:14px;font-family:var(--f-han);font-weight:900;font-size:30px;border:2px solid var(--rc);color:var(--rc);background:#0000004d}.rar{margin-left:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.charm-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;width:100%}.charm-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px;border-radius:14px;border:1px solid;min-width:140px;flex:1;animation:pop .4s}.charm-card b{color:var(--ink)}.charm-card small{font-size:12px;text-align:center}.abyss-gate,.abyss-over,.depth-done{padding:24px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;background:radial-gradient(ellipse at 50% 20%,rgba(120,70,255,.22),transparent 65%),var(--glass)}.portal{position:relative;width:170px;height:170px;display:grid;place-items:center}.portal i{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid rgba(160,120,255,.6);animation:swirl 6s linear infinite}.portal i:nth-child(2){top:18px;right:18px;bottom:18px;left:18px;border-color:#2fd6a680;animation-duration:4s;animation-direction:reverse;border-style:dashed}.portal i:nth-child(3){top:36px;right:36px;bottom:36px;left:36px;background:radial-gradient(circle,#000 30%,#5028c899);border:none;animation-duration:3s}.portal b{position:relative;font-family:var(--f-han);font-weight:900;font-size:54px;color:#c9b6ff;text-shadow:0 0 20px #8a6bff}@keyframes swirl{to{transform:rotate(360deg)}}.abyss-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;max-width:480px}.abyss-stats strong{display:block;font-family:var(--f-title);font-size:30px}.abyss-rules{text-align:left;color:var(--muted);font-size:14px;max-width:520px;margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.abyss-choice{display:flex;flex-direction:column;gap:14px;align-items:center}.run-hud{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;font-weight:600;font-variant-numeric:tabular-nums}.run-hud span{display:inline-flex;align-items:center}.boons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%}@media(max-width:640px){.boons{grid-template-columns:1fr}}.boon{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 12px;transition:transform .15s,border-color .2s}.boon:hover{transform:translateY(-4px);border-color:#c9b6ff99}.boon-g{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;font-family:var(--f-han);font-weight:900;font-size:32px;color:#c9b6ff;background:radial-gradient(circle,rgba(120,70,255,.35),transparent);border:1px solid rgba(201,182,255,.4)}.boon b{font-family:var(--f-title);font-size:17px}.boon small{color:var(--muted)}.boss-arena .combo{top:46px}.soundcheck{padding:18px;display:flex;flex-direction:column;gap:12px}.sc-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.sc-row>div{display:flex;flex-direction:column;min-width:0}.sc-row small{color:var(--muted)}@media(max-width:560px){.sc-row{grid-template-columns:auto 1fr}.sc-row .btn{grid-column:1 / -1}}.sc-dot{width:12px;height:12px;border-radius:50%;background:var(--muted)}.sc-dot.ok{background:var(--good);box-shadow:0 0 10px var(--good)}.sc-dot.bad{background:var(--danger);box-shadow:0 0 10px var(--danger)}.sc-dot.warn{background:var(--gold)}.sc-tips{margin:0;padding-left:18px;color:var(--muted);font-size:14px;display:flex;flex-direction:column;gap:6px}.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);transform:translate(-50%);z-index:70;width:min(560px,calc(100% - 32px));display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 16px;font-size:14px;border-color:#f5c35b80;animation:rise .3s}.arena-page{--rh: 150}.realm-card{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;padding:22px;background:radial-gradient(ellipse at 15% 40%,hsl(var(--rh) 70% 45% / .25),transparent 60%),var(--glass)}.realm-info{display:flex;flex-direction:column;gap:6px;min-width:0}.realm-name{font-family:var(--f-han);font-size:34px;font-weight:900;color:hsl(var(--rh) 80% 75%);text-shadow:0 0 20px hsl(var(--rh) 80% 50% / .5)}.realm-name small{display:block;font-family:var(--f-title);font-size:15px;color:var(--ink);font-weight:600;letter-spacing:.02em}.realm-bar{height:10px;border-radius:99px;background:#0006;overflow:hidden;max-width:420px}.realm-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,hsl(var(--rh) 70% 40%),hsl(var(--rh) 90% 70%));box-shadow:0 0 12px hsl(var(--rh) 90% 60%)}.wl{font-size:14px}.realm-ladder{grid-column:1 / -1;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px}.realm-ladder li{text-align:center;font-family:var(--f-han);font-weight:700;font-size:clamp(12px,2.4vw,17px);padding:8px 2px;border-radius:10px;background:#0000004d;color:#ffffff4d;border:1px solid rgba(255,255,255,.06)}.realm-ladder li.past{color:hsl(var(--rh) 70% 70%);border-color:hsl(var(--rh) 70% 50% / .3)}.realm-ladder li.now{color:#fff;background:hsl(var(--rh) 70% 35% / .6);border-color:hsl(var(--rh) 90% 70%);box-shadow:0 0 16px hsl(var(--rh) 90% 55% / .6)}@media(max-width:600px){.realm-card{grid-template-columns:1fr;justify-items:center;text-align:center}.realm-bar{margin:0 auto;width:100%}}.emblem{position:relative;display:grid;place-items:center;border-radius:50%;flex:none;background:radial-gradient(circle at 50% 40%,hsl(var(--rh) 60% 30%),#050a09 75%);box-shadow:0 0 40px hsl(var(--rh) 90% 50% / .45),inset 0 0 30px #000c}.emblem .ring{position:absolute;top:4%;right:4%;bottom:4%;left:4%;border-radius:50%;border:3px solid transparent;background:conic-gradient(from 0deg,hsl(var(--rh) 90% 70%),transparent 40%,hsl(var(--rh) 90% 70%) 60%,transparent) border-box;-webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:swirl 6s linear infinite}.emblem .ring.b{top:14%;right:14%;bottom:14%;left:14%;animation-duration:9s;animation-direction:reverse;opacity:.6}.emblem b{position:relative;font-family:var(--f-han);font-weight:900;font-size:2.1em;line-height:1;color:#fff3c4;text-shadow:0 0 14px hsl(var(--rh) 90% 60%),0 2px 0 #000;font-size:calc(var(--es, 1) * 34px)}.emblem small{position:absolute;bottom:14%;font-family:var(--f-han);font-size:13px;color:hsl(var(--rh) 80% 80%)}.arena-locked{padding:26px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.modes{display:grid;grid-template-columns:1fr 1fr;gap:14px}.mode{display:flex;flex-direction:column;gap:8px;padding:20px;align-items:flex-start}.mode>b{font-family:var(--f-title);font-size:20px}.mode>small{color:var(--muted)}.mode-g{display:grid;place-items:center;width:54px;height:54px;border-radius:14px;font-family:var(--f-han);font-weight:900;font-size:28px;color:#fff;background:linear-gradient(160deg,#e0483a,#7a120a);box-shadow:0 0 20px #e0483a73,inset 0 1px #fff6}.rivals-mode{grid-column:1 / -1}.rivals{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;width:100%}.rival{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;background:#00000047;border:1px solid var(--edge);text-align:left;transition:transform .15s,border-color .2s}.rival:hover{transform:translateY(-2px);border-color:#ff9d8a80}.rv-g{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;font-family:var(--f-han);font-weight:900;font-size:22px;background:radial-gradient(circle at 35% 30%,#ffb3a0,#6a1a12);color:#fff}.rv-t{display:flex;flex-direction:column;min-width:0}.rv-t small{color:var(--muted);font-size:12px}.rv-d{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:99px;background:#f5c35b33;color:var(--gold)}.rv-d.hard{background:#ff6b6b33;color:var(--danger)}.rv-d.easy{background:#4fdb8633;color:var(--good)}.join{display:flex;flex-wrap:wrap;gap:8px;align-items:center;width:100%}.join input{flex:1 1 140px;font-size:18px;letter-spacing:.1em}.newkey{display:flex;flex-direction:column;gap:8px;width:100%}.keybox{display:block;padding:10px 12px;border-radius:10px;background:#0006;border:1px dashed var(--gold);font:600 16px var(--f-ui);color:var(--gold);word-break:break-all;-webkit-user-select:all;user-select:all}.search{padding:26px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.search-ring{position:relative;width:120px;height:120px;display:grid;place-items:center}.search-ring i{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid transparent;border-top-color:#e0483a;border-right-color:var(--gold);animation:swirl 1.4s linear infinite}.search-ring i:nth-child(2){top:16px;right:16px;bottom:16px;left:16px;animation-duration:2.2s;animation-direction:reverse;border-top-color:var(--jade);border-right-color:transparent}.search-ring b{font-family:var(--f-han);font-weight:900;font-size:40px;color:#ffb3a0}.room-code{font:800 46px var(--f-ui);letter-spacing:.25em;color:var(--gold);text-shadow:0 0 20px rgba(245,195,91,.5);padding-left:.25em}.loadout{padding:18px;display:flex;flex-direction:column;gap:12px}.skills{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}@media(max-width:760px){.skills{grid-template-columns:repeat(2,minmax(0,1fr))}.modes{grid-template-columns:1fr}}.skill-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;border-radius:16px;text-align:center;background:#0000004d;border:2px solid rgba(255,255,255,.08);transition:transform .15s,border-color .2s}.skill-card:hover:not(:disabled){transform:translateY(-2px)}.skill-card.on{border-color:hsl(var(--rh) 90% 65%);background:hsl(var(--rh) 60% 25% / .45);box-shadow:0 0 18px hsl(var(--rh) 90% 55% / .4)}.skill-card.on:after{content:"✓";position:absolute;top:8px;right:10px;color:hsl(var(--rh) 90% 75%);font-weight:800}.skill-card.locked{opacity:.45}.skill-card .sk-g{font-family:var(--f-han);font-weight:900;font-size:30px;color:hsl(var(--rh) 90% 75%)}.skill-card b{font-size:14px}.skill-card small{font-size:12px;color:var(--muted)}.sk-cost{font-size:11px;font-weight:700;color:#9fd8ff}.arena-bottom{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:760px){.arena-bottom{grid-template-columns:1fr}}.board,.history{padding:18px}.board ol,.history ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.board li{display:grid;grid-template-columns:28px 1fr auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:#0003;font-variant-numeric:tabular-nums}.board li.me{background:#2fd6a62e;border:1px solid rgba(47,214,166,.4)}.board li:nth-child(1) .b-n{color:var(--gold)}.b-n{font-weight:800;color:var(--muted)}.b-r{font-family:var(--f-han);color:var(--jade-hi)}.b-p{font-weight:700}.history li{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:6px 10px;border-radius:10px;background:#0003}.history li b{font-family:var(--f-han);font-size:18px}.duel{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:10px}.duel-loading{display:grid;place-items:center;min-height:60vh}.duel-top{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}.vs{display:flex;flex-direction:column;align-items:center}.vs b{font-family:var(--f-title);font-weight:800;font-size:26px;color:#ffb3a0;text-shadow:0 0 14px rgba(255,80,60,.6)}.vs span{font-family:var(--f-han);font-size:12px;color:var(--muted)}.plate{display:flex;flex-direction:column;gap:5px;padding:10px 12px;border-radius:16px;min-width:0;background:linear-gradient(160deg,hsl(var(--rh) 40% 18% / .85),#060e0cd9);border:1px solid hsl(var(--rh) 70% 60% / .35);box-shadow:inset 0 1px #ffffff1f}.plate.right{text-align:right}.pl-head{display:flex;align-items:center;gap:8px;min-width:0}.plate.right .pl-head{flex-direction:row-reverse}.pl-realm{font-family:var(--f-han);font-weight:900;font-size:13px;padding:2px 7px;border-radius:6px;background:hsl(var(--rh) 70% 35%);color:#fff;flex:none}.pl-name{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.pl-rounds{display:flex;gap:4px}.pl-rounds i{width:12px;height:12px;border-radius:50%;border:2px solid var(--gold)}.pl-rounds i.won{background:var(--gold);box-shadow:0 0 8px var(--gold)}.pl-hp,.pl-qi{position:relative;height:16px;border-radius:6px;background:#00000080;overflow:hidden}.pl-qi{height:9px}.pl-hp i{display:block;height:100%;background:linear-gradient(180deg,#8af5b5,#12a35a);transition:width .35s cubic-bezier(.2,.8,.2,1)}.plate.right .pl-hp i,.plate.right .pl-qi i{margin-left:auto}.pl-qi i{display:block;height:100%;background:linear-gradient(90deg,#6fb7ff,#c9b6ff);transition:width .3s;box-shadow:0 0 8px #9fd8ff}.pl-hp span,.pl-qi span{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:10px;font-weight:800;text-shadow:0 1px 2px #000}.pl-qi span{font-size:8px}.pl-status{display:flex;gap:4px;min-height:18px}.plate.right .pl-status{justify-content:flex-end}.pl-status span{font-family:var(--f-han);font-size:12px;font-weight:800;padding:0 5px;border-radius:5px;background:#ffffff1f}.pl-status .x{color:var(--danger)}@media(max-width:560px){.vs b{font-size:18px}.plate{padding:8px}.pl-name{font-size:12px}}.leitai{position:relative;height:clamp(250px,44vw,380px);border-radius:var(--r);overflow:hidden;isolation:isolate;border:1px solid rgba(255,180,120,.25);background:linear-gradient(180deg,#0a0820,#1d1033 40%,#4a1a1a 78%,#2a0d0a);box-shadow:inset 0 0 80px #000000b3,0 24px 60px -24px #000}.lt-sky .moon{position:absolute;top:9%;right:16%;width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#fff8dc,#f5d78a 60%,#c99a3a);box-shadow:0 0 40px 10px #ffdc8c59}.lt-sky:before{content:"";position:absolute;left:-5%;right:-5%;top:12%;height:30px;border-top:2px solid rgba(0,0,0,.6);border-radius:50%}.lantern{position:absolute;top:calc(12% + 4px);left:calc(8% + var(--i) * 13%);width:22px;height:28px;border-radius:45%;transform-origin:top center;background:radial-gradient(circle at 50% 45%,#ffd27a,#e0331f 60%,#7a120a);box-shadow:0 0 20px #ff5a28b3;animation:sway 3s ease-in-out infinite alternate;animation-delay:calc(var(--i) * -.4s)}.lantern:after{content:"";position:absolute;left:50%;bottom:-8px;width:2px;height:8px;background:var(--gold)}@keyframes sway{0%{transform:rotate(-5deg)}to{transform:rotate(5deg)}}.lt-banner{position:absolute;top:22%;width:34px;height:46%;display:grid;place-items:start center;padding-top:10px;font-family:var(--f-han);font-weight:900;font-size:22px;color:var(--gold);background:linear-gradient(180deg,#b3261e,#6a0f09);clip-path:polygon(0 0,100% 0,100% 100%,50% 90%,0 100%);box-shadow:0 0 20px #00000080}.lt-banner.l{left:3%}.lt-banner.r{right:3%}.lt-stage{position:absolute;left:-10%;right:-10%;bottom:0;height:30%;transform:perspective(300px) rotateX(48deg);transform-origin:bottom;background:repeating-linear-gradient(90deg,rgba(0,0,0,.25) 0 2px,transparent 2px 60px),linear-gradient(180deg,#c0392b,#7a1a12);border-top:6px solid var(--gold);box-shadow:0 -6px 30px #ff783c59}.lt-rope{position:absolute;left:6%;right:6%;top:-40px;height:2px;background:repeating-linear-gradient(90deg,var(--gold) 0 10px,#b3261e 10px 20px)}.lt-crowd{position:absolute;left:0;right:0;bottom:-6px;height:34px;display:flex;justify-content:space-around;z-index:3;pointer-events:none}.lt-crowd i{width:34px;height:40px;border-radius:50% 50% 0 0;background:#050307;animation:cheer 1.2s ease-in-out infinite;animation-delay:calc(var(--i) * -.17s)}@keyframes cheer{50%{transform:translateY(-5px)}}.fighter{position:absolute;bottom:15%;width:clamp(80px,16vw,130px);z-index:2}.fighter.left{left:16%}.fighter.right{right:16%;transform:scaleX(-1)}.fighter:before,.fighter:after{content:"";position:absolute;pointer-events:none;opacity:0;transition:opacity .3s}.fighter.fire:before{opacity:1;top:-20%;right:-15%;bottom:0;left:-15%;border-radius:50% 50% 40% 40%;background:radial-gradient(ellipse at 50% 85%,rgba(255,140,40,.75),rgba(255,60,20,.3) 45%,transparent 70%);filter:blur(4px);animation:flame .3s ease-in-out infinite alternate}.fighter.shielded:after{opacity:1;top:-14%;right:-22%;bottom:-14%;left:-22%;border-radius:50%;border:3px solid #bfe6ff;background:radial-gradient(circle,transparent 55%,rgba(140,200,255,.35));box-shadow:0 0 24px #8cc8ff99;animation:pulse 1.6s infinite}.fighter.thunder .hero-sprite svg{filter:drop-shadow(0 0 6px #9fd8ff) drop-shadow(0 0 14px #6f7bff);animation:crackle .15s steps(2) infinite}@keyframes crackle{50%{filter:drop-shadow(0 0 12px #fff) drop-shadow(0 0 20px #6f7bff)}}.fighter.frozen .hero-sprite{filter:saturate(.2) brightness(1.3) hue-rotate(160deg)}.fighter.frozen:after{opacity:1;top:0;right:-6%;bottom:0;left:-6%;border-radius:12px;background:linear-gradient(160deg,#c8f0ff8c,#78beff40);border:2px solid rgba(220,245,255,.9);clip-path:polygon(10% 0,90% 4%,100% 60%,85% 100%,15% 96%,0 40%)}.dfloat{position:absolute;top:18%;z-index:5;transform:translate(-50%);font-family:var(--f-title);font-weight:800;font-size:26px;white-space:nowrap;pointer-events:none;text-shadow:0 2px 0 #000,0 0 12px currentColor;animation:float 1.15s forwards}.dfloat.on-left{left:26%}.dfloat.on-right{left:74%}.dfloat.crit{color:var(--gold);font-size:34px}.dfloat.dmg{color:#fff}.dfloat.hurt{color:var(--danger)}.dfloat.miss{color:#ffb3a0;font-size:18px}.dfloat.block{color:#bfe6ff}.dfloat.heal{color:var(--good);top:30%}.dfloat.skill{color:#c9b6ff;font-size:20px;top:8%}.dfloat.speed{color:var(--jade-hi);font-size:14px;top:40%}.cast-glyph{position:absolute;top:20%;z-index:4;transform:translate(-50%);font-family:var(--f-han);font-weight:900;font-size:110px;line-height:1;pointer-events:none;color:#fff;animation:castup 1s ease-out forwards}.cast-glyph.on-left{left:26%}.cast-glyph.on-right{left:74%}.cast-glyph.sk-fire{text-shadow:0 0 20px #ff6a1a,0 0 50px #ff3010}.cast-glyph.sk-shield{text-shadow:0 0 20px #8fd0ff,0 0 50px #4a90ff}.cast-glyph.sk-heal{text-shadow:0 0 20px #4fdb86,0 0 50px #1fae63}.cast-glyph.sk-fog{color:#222;text-shadow:0 0 20px #000,0 0 40px #7a6bff}.cast-glyph.sk-freeze{text-shadow:0 0 20px #bfe6ff,0 0 50px #6fc7ff}.cast-glyph.sk-drain{text-shadow:0 0 20px #c9b6ff,0 0 50px #8a3bff}.cast-glyph.sk-silence{text-shadow:0 0 20px #aaa,0 0 50px #555}.cast-glyph.sk-thunder{text-shadow:0 0 20px #fff,0 0 50px #6f7bff}@keyframes castup{0%{transform:translate(-50%,30px) scale(.4);opacity:0}25%{transform:translate(-50%) scale(1.15);opacity:1}to{transform:translate(-50%,-40px) scale(1);opacity:0}}.bolt{position:absolute;top:0;height:85%;width:70px;z-index:4;transform:translate(-50%);animation:boltin .45s ease-out forwards}.bolt.on-left{left:26%}.bolt.on-right{left:74%}.bolt path{fill:#e6f0ff;filter:drop-shadow(0 0 10px #9fd8ff) drop-shadow(0 0 24px #6f7bff)}@keyframes boltin{0%{opacity:0}15%,45%{opacity:1}30%{opacity:.3}to{opacity:0}}.announce{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;animation:annIn .5s cubic-bezier(.2,1.5,.4,1)}.announce b{font-family:var(--f-han);font-weight:900;font-size:clamp(54px,11vw,96px);line-height:1;color:#fff3c4;-webkit-text-stroke:2px #7a120a;text-shadow:0 0 30px rgba(255,120,40,.8),0 6px 0 #3a0705;letter-spacing:.05em}.announce small{font-family:var(--f-title);font-weight:800;font-size:18px;letter-spacing:.3em;text-transform:uppercase;color:#ffd0c4;margin-top:6px}.announce.go b{color:#ff5b4f;-webkit-text-stroke:2px #fff3c4}.announce.ko b{font-family:var(--f-title);font-size:clamp(70px,14vw,130px);color:#ff3b2f;-webkit-text-stroke:3px #fff;animation:koShake .5s}@keyframes annIn{0%{transform:scale(2.4);opacity:0}}@keyframes koShake{20%{transform:translate(-8px,4px) rotate(-3deg)}40%{transform:translate(8px,-4px) rotate(3deg)}60%{transform:translate(-5px,2px)}}.rival-taunt{position:absolute;top:12px;right:12px;z-index:5;max-width:320px;display:flex;gap:10px;align-items:center;padding:10px 14px;font-size:14px;font-style:italic;animation:rise .4s}.duel-notice{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:6;padding:6px 14px;border-radius:99px;background:#000000b3;font-size:13px}.duel.jolt .leitai{animation:jolt .25s}.duel.shake{animation:shake .35s}.duel.quake{animation:quake .5s}.duel-q{position:relative;padding:16px;display:flex;flex-direction:column;gap:12px;overflow:hidden;min-height:210px}.duel-q .opt{position:relative}.duel-q .opt .key{position:absolute;top:6px;left:8px;font:700 11px var(--f-ui);color:var(--muted)}.duel-q .opt.chosen{border-color:var(--gold);box-shadow:0 0 0 3px #f5c35b40}.dq-timer{height:6px;border-radius:99px;background:#0006;overflow:hidden}.dq-timer i{display:block;height:100%;background:linear-gradient(90deg,var(--danger),var(--gold),var(--jade));transition:width .1s linear}.dq-status{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--f-title);font-weight:800;font-size:26px;color:#ffb3a0;background:#0a04048c;pointer-events:none}.dq-learn{text-align:center;font-size:15px}.dq-wait{padding:30px 0}.duel-q.fogged .opts,.duel-q.fogged .prompt{filter:blur(7px)}.ink-fog{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ink-fog i{position:absolute;width:60%;height:80%;border-radius:50%;background:radial-gradient(circle,rgba(8,6,14,.9),transparent 70%);animation:fogdrift 3s ease-in-out infinite alternate}.ink-fog i:nth-child(1){left:-10%;top:10%}.ink-fog i:nth-child(2){left:30%;top:30%;animation-delay:-1s}.ink-fog i:nth-child(3){left:55%;top:-10%;animation-delay:-2s}@keyframes fogdrift{to{transform:translate(30px,10px) scale(1.15)}}.duel-q.iced{border-color:#bfe6ffcc;box-shadow:inset 0 0 40px #8cc8ff59}.skillbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px;align-items:stretch}.skill-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-radius:16px;overflow:hidden;isolation:isolate;background:#0a121eb3;border:2px solid rgba(159,216,255,.2);color:var(--muted)}.skill-btn .sk-g{font-family:var(--f-han);font-weight:900;font-size:30px;line-height:1.1}.skill-btn b{font-size:13px}.skill-btn small{font-size:11px}.sk-fill{position:absolute;left:0;right:0;bottom:0;z-index:-1;background:linear-gradient(0deg,#6fb7ff59,#c9b6ff26);transition:height .3s}.skill-btn.ready{color:#fff;border-color:#c9b6ff;box-shadow:0 0 18px #c9b6ff80;animation:pulse 1.4s infinite}.skill-btn.ready .sk-g{color:#e8deff;text-shadow:0 0 12px #8a6bff}.forfeit{align-self:center;padding:0 8px}@media(max-width:560px){.skillbar{grid-template-columns:repeat(3,minmax(0,1fr))}.forfeit{grid-column:1 / -1}.skill-btn .sk-g{font-size:24px}}.duel-result .dr-big{width:110px;height:110px;display:grid;place-items:center;border-radius:16px;font-family:var(--f-han);font-weight:900;font-size:76px;color:#fff;transform:rotate(-6deg);background:#b3261e;border:5px solid #ff9d8a;box-shadow:0 0 40px #ff3c2899;animation:stamp .6s cubic-bezier(.3,1.6,.5,1)}.duel-result.lose .dr-big{background:#333a40;border-color:#8a9aa0;box-shadow:none}.dr-rank{font-family:var(--f-han);font-weight:700}.breakthrough{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;text-align:center;padding:20px;background:radial-gradient(ellipse at center,#281e50e6,#000000f5);cursor:pointer;animation:fade .4s}.bt-bolts{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.bt-bolts path{fill:#f0f4ff;filter:drop-shadow(0 0 20px #9fd8ff) drop-shadow(0 0 50px #6f7bff);animation:boltin 1.2s ease-out 2}.bt-small{position:relative;font-family:var(--f-title);font-weight:800;letter-spacing:.3em;color:#c9b6ff}.bt-realm{position:relative;font-family:var(--f-han);font-weight:900;font-size:clamp(90px,22vw,180px);line-height:1;color:#fff8dc;text-shadow:0 0 30px hsl(var(--rh) 90% 60%),0 0 80px hsl(var(--rh) 90% 50%);animation:stamp .9s cubic-bezier(.3,1.6,.5,1)}.bt-en{position:relative;font-family:var(--f-title);font-size:22px}.bt-skill{position:relative;color:var(--gold);font-weight:700}.cs-villain{background:radial-gradient(ellipse at 50% 20%,rgba(110,40,180,.35),transparent 60%),#06020ceb}.cs-villain .cs-title{color:#c9b6ff}.cs-villain .cs-box{border-color:#c9b6ff59;background:#0e061ad1}.cs-ink{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.cs-ink i{position:absolute;top:-20%;left:calc(var(--k) * 11%);width:6px;height:40%;border-radius:0 0 6px 6px;background:linear-gradient(180deg,transparent,#000 40%,#1a0830);animation:drip 4s ease-in calc(var(--k) * -.45s) infinite;opacity:.8}@keyframes drip{0%{transform:translateY(-60%)}to{transform:translateY(260%)}}.cs-finale{background:radial-gradient(ellipse at 50% 30%,rgba(245,195,91,.22),transparent 60%),#04060aeb}.cs-finale .cs-title{color:var(--gold)}.cs-portrait.tone-wang{background:radial-gradient(circle at 35% 30%,#fff1d6,#b0743a);color:#2a1300}.cs-portrait.tone-li{background:radial-gradient(circle at 35% 30%,#e6fbff,#3a8aa8);color:#02161e}.cs-portrait.tone-emperor{background:radial-gradient(circle at 35% 30%,#fff3c4,#c99a1a 55%,#6a4a05);color:#2a1a00}.cs-portrait.tone-xiaohong{background:radial-gradient(circle at 35% 30%,#ffd0dc,#c8325a);color:#fff}.cs-portrait.tone-moying{background:radial-gradient(circle at 35% 30%,#d8d0ff,#2a1d4a);color:#fff;box-shadow:0 0 24px #8c64ff80}.tone-moying .cs-name{color:#d8d0ff}.tone-emperor .cs-name{color:var(--gold)}.tone-wang .cs-name{color:#ffd9a8}.tone-xiaohong .cs-name{color:#ffb3c6}.cs-say{display:grid;grid-template-columns:auto auto 1fr;grid-template-rows:auto auto;gap:2px 10px;align-items:center;margin-top:6px;padding:10px 14px;border-radius:14px;cursor:pointer;background:#f5c35b1a;border:1px solid rgba(245,195,91,.35);cursor:default;animation:pop .3s}.cs-say-zh{font-family:var(--f-han);font-weight:700;font-size:30px;line-height:1.1}.cs-say-py{grid-column:3;color:var(--gold);font-weight:600}.cs-say-en{grid-column:1 / -1;color:var(--muted);font-size:14px}.cs-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:min(760px,100%);animation:rise .4s}@media(max-width:560px){.cs-choices{grid-template-columns:1fr}}.cs-choice{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:16px;text-align:left;cursor:pointer;transition:transform .15s,border-color .2s}.cs-choice:hover{transform:translateY(-3px);border-color:var(--gold)}.cs-choice b{display:grid;place-items:center;width:58px;height:58px;border-radius:12px;font-family:var(--f-han);font-weight:900;font-size:34px;color:#fff;background:#b3261e;border:3px solid #ff9d8a}.cs-choice span{display:flex;flex-direction:column;gap:2px}.cs-choice small{color:var(--muted)}.party{position:absolute;left:3%;bottom:6%;z-index:3;display:flex;gap:4px}.pm{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-family:var(--f-han);font-weight:900;font-size:14px;background:#0000008c;border:1px solid var(--gold);color:#fff3c4;animation:bob 2.4s ease-in-out infinite}.pm-mimi{border-color:#ffb36b}.pm-moying{border-color:#c9b6ff}.bark{position:absolute;top:44px;left:50%;transform:translate(-50%);z-index:6;display:flex;gap:10px;align-items:center;max-width:min(520px,92%);padding:10px 14px;border-radius:14px;background:#080410e0;border:1px solid rgba(201,182,255,.45);box-shadow:0 10px 30px #00000080;font-size:14px;animation:rise .35s}.bark b{display:block;font-size:12px;color:#c9b6ff;letter-spacing:.04em}.bark-p{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:10px;font-family:var(--f-han);font-weight:900;font-size:22px;background:radial-gradient(circle at 35% 30%,#c9b6ff,#3b1d7a);color:#fff}.bark.tone-mo .bark-p{background:radial-gradient(circle at 35% 30%,var(--jade-hi),var(--jade-deep));color:#03140f}.bark.tone-mo b{color:var(--jade-hi)}.village{grid-column:1 / -1;padding:18px;display:flex;flex-direction:column;gap:12px}.mo-card{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}.mo-card p{margin-top:2px}.mo-p{display:grid;place-items:center;width:60px;height:60px;border-radius:18px;font-family:var(--f-han);font-weight:900;font-size:34px;color:#03140f;background:radial-gradient(circle at 35% 30%,var(--jade-hi),var(--jade-deep));box-shadow:0 0 24px #2fd6a673;transition:opacity .6s,filter .6s}.mo-card.fade-1 .mo-p{opacity:.75}.mo-card.fade-2 .mo-p{opacity:.5;filter:blur(1px);animation:flicker 1.6s infinite}.mo-card.fade-3 .mo-p{opacity:.28;filter:blur(2px) grayscale(.6);animation:flicker .9s infinite}.mo-card.fade-2 p,.mo-card.fade-3 p{color:#ffc89a}.small-btn{padding:7px 14px;font-size:13px;margin-top:6px}.houses{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding-top:4px}.houses i{position:relative;width:38px;height:30px;background:#1b2522;border-radius:3px;margin-top:14px}.houses i:before{content:"";position:absolute;left:-6px;right:-6px;top:-14px;height:16px;background:#3a1a12;clip-path:polygon(50% 0,100% 100%,0 100%)}.houses i:after{content:"";position:absolute;left:13px;top:9px;width:12px;height:12px;border-radius:2px;background:#0a0f0e}.houses i.on:after{background:#ffd27a;box-shadow:0 0 12px #ffb340,0 0 24px #ffb43c80}.houses i.on:before{background:#8a2a1a}.companions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}@media(max-width:640px){.companions{grid-template-columns:repeat(3,minmax(0,1fr))}}.comp{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:14px;background:#00000040;border:1px solid var(--edge);transition:transform .15s}.comp:hover:not(:disabled){transform:translateY(-2px)}.comp small{font-size:11px;color:var(--muted);text-align:center}.comp.locked .comp-p{background:#ffffff0f;color:#ffffff4d;box-shadow:none}.comp-p{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;font-family:var(--f-han);font-weight:900;font-size:24px;flex:none;background:radial-gradient(circle at 35% 30%,#fff3c4,#c99a1a 60%,#6a4a05);color:#2a1a00;box-shadow:0 0 14px #f5c35b59}.comp.tone-mimi .comp-p,.comp-p.tone-mimi{background:radial-gradient(circle at 35% 30%,#ffd9b0,#c8742a)}.comp.tone-moying .comp-p,.comp-p.tone-moying{background:radial-gradient(circle at 35% 30%,#d8d0ff,#2a1d4a);color:#fff}.comp.tone-xiaohong .comp-p,.comp-p.tone-xiaohong{background:radial-gradient(circle at 35% 30%,#ffd0dc,#c8325a);color:#fff}.comp.tone-li .comp-p,.comp-p.tone-li{background:radial-gradient(circle at 35% 30%,#e6fbff,#3a8aa8)}.comp.tone-wang .comp-p,.comp-p.tone-wang{background:radial-gradient(circle at 35% 30%,#fff1d6,#b0743a)}.comp-talk{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:12px 14px;border-radius:14px;background:#0000004d;border:1px solid rgba(245,195,91,.35);animation:rise .3s}.ct-zh{font-family:var(--f-han);font-weight:700;font-size:24px}.ct-py{color:var(--gold);font-weight:600}.ct-en{color:var(--muted);font-size:14px}.comp-list{padding:14px;display:flex;flex-direction:column;gap:8px}.cl-row{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}.cl-row>div{display:flex;flex-direction:column}.cl-row small{color:var(--muted)}.cl-row.locked{opacity:.5}
