@font-face{font-family:Noto Sans KR;src:url(../fonts/NotoSansKR-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Noto Sans KR;src:url(../fonts/NotoSansKR-Bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Cinzel;src:url(../fonts/Cinzel-latin.woff2)format("woff2");font-weight:400 900;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}@font-face{font-family:Noto Sans Runic;src:url(../fonts/NotoSansRunic.woff2)format("woff2");font-weight:400;font-display:swap;unicode-range:U+16A0-16F8}:root{--stone:#1c1726;--stone-hi:#272036;--stone-lo:#120f19;--bone:#efe6d2;--bone-dim:#b5abc4;--bone-faint:#efe6d233;--tone-down:#0000003d;--tone-up:#efe6d214;--tone-up-2:#efe6d226;--hud-bg:#120f19db;--arcane:#7fe3d8;--yellow:#e9b44c;--red:#ff8c7c;--blue:#8fc4e6;--green:#9bdc8a;--cut:12px;--tablet:polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 calc(100% - var(--cut)), 0 var(--cut));--gold:var(--yellow);--cyan:var(--blue);--orange:#f0a35e;--dim:var(--bone-dim);--text:var(--bone);--display:"Noto Sans KR", system-ui, sans-serif;--word:"Cinzel", "Noto Sans KR", Georgia, serif;--rune:"Noto Sans Runic", "Segoe UI Historic", "Segoe UI Symbol", sans-serif;--body:"Noto Sans KR", system-ui, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{background:var(--stone-lo);height:100%;color:var(--bone);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}#game{outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}#ui{pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}button,input,select{font-family:inherit}b{font-weight:700}.lead,.tagline,.help-grid p,.muted,.sc-desc,.toast span,.ward-msg,.teacher-msg,.swap-msg,.staff-card span,.mode-card span,.skill-card.empty{word-break:keep-all;overflow-wrap:anywhere}.panel h2,.banner b{text-wrap:balance}button{touch-action:manipulation}:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.muted{color:var(--bone-dim);margin:6px 0;font-size:14px}.muted.small{font-size:13px}kbd{background:var(--tone-up-2);min-width:22px;font:700 12px/1.6 var(--body);text-align:center;color:var(--bone);border:0;border-radius:3px;padding:0 6px;display:inline-block}.fatal{color:var(--red);pointer-events:auto;place-items:center;font-size:18px;display:grid;position:absolute;inset:0}.screen{justify-content:center;align-items:safe center;padding:24px;display:none;position:absolute;inset:0;overflow:auto}.screen.is-active{pointer-events:auto;display:flex}.screen[data-screen=boot].is-active{background:var(--stone)}.screen[data-screen=title].is-active{background:linear-gradient(90deg,#120f19eb 0,#120f19cc 38%,#120f1900 66%);justify-content:flex-start}.screen[data-screen=loadout].is-active,.screen[data-screen=help].is-active,.screen[data-screen=settings].is-active,.screen[data-screen=wordbook].is-active,.screen[data-screen=results].is-active,.screen[data-screen=pause].is-active,.screen[data-screen=ward].is-active,.screen[data-screen=teacher].is-active{background:#0c0912c2}.boot-box{width:min(420px,90vw)}.boot-icon{display:none}.bar{background:var(--bone-faint);height:6px;margin:22px 0 10px;overflow:hidden}.bar i{background:var(--bone);width:0;height:100%;transition:width .25s;display:block}.title-wrap{text-align:left;width:min(520px,92vw);margin-left:clamp(16px,7vw,120px)}.logo{line-height:.9;display:block}.logo-text{font-family:var(--word);letter-spacing:.01em;color:var(--bone);font-size:clamp(60px,9.4vw,124px);font-weight:700;display:inline-block}.logo-text i{color:var(--yellow);font-style:normal}.logo.small .logo-text{font-size:44px}.screen[data-screen=title].is-active .logo-text{animation:1.1s cubic-bezier(.3,.7,.3,1) both spellin}@keyframes spellin{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.logo-runes{font:400 clamp(22px, 2.6vw, 32px)/1 var(--rune);letter-spacing:.32em;color:var(--arcane);margin:14px 0 0 4px}.logo-runes i,.sc-runes i{font-style:normal;display:inline-block}.screen[data-screen=title].is-active .logo-runes i{animation:.5s both ignite;animation-delay:calc(.9s + var(--i) * 70ms)}@keyframes ignite{0%{opacity:.15;text-shadow:none}60%{opacity:1;text-shadow:0 0 14px}to{opacity:1;text-shadow:0 0 6px color-mix(in srgb, currentColor 55%, transparent)}}.logo-sub{display:none}.tagline{color:var(--bone);max-width:26em;margin:22px 0 32px;font-size:clamp(16px,1.6vw,19px);line-height:1.65}.modes{flex-direction:column;gap:8px;margin:0 0 28px;display:flex}.mode-card{--c:var(--yellow);cursor:pointer;color:var(--bone);text-align:left;font:inherit;clip-path:var(--tablet);background:#120f19b8;border:0;grid-template-columns:190px 1fr;align-items:baseline;gap:16px;padding:18px 20px;display:grid}.mode-card b{font-family:var(--word);letter-spacing:.02em;color:var(--c);font-size:32px;font-weight:700;line-height:1}.mode-card span{color:var(--bone);font-size:16px;line-height:1.5}.mode-card:hover b,.mode-card:focus-visible b{text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:3px}.mode-card:hover,.mode-card:focus-visible{background:var(--stone-hi)}.menu{flex-wrap:wrap;gap:10px;display:flex}.title-wrap .menu{justify-content:flex-start}.menu.col{flex-direction:column;align-items:stretch}.best{color:var(--bone-dim);margin-top:22px;font-size:13px}.btn{--cut:7px;cursor:pointer;background:var(--tone-up);color:var(--bone);clip-path:var(--tablet);border:2px solid #0000;border-radius:0;padding:9px 18px;font-size:15px;font-weight:700;transition:border-color .12s,background .12s,color .12s}.btn:hover{background:var(--tone-up-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn.primary{background:var(--yellow);border-color:var(--yellow);color:var(--stone-lo)}.btn.primary:hover{background:#f4cd78;border-color:#f4cd78}.btn.primary.ready{background:var(--green);border-color:var(--green)}.btn.big{padding:12px 28px;font-size:17px}.btn.danger{color:var(--red)}.btn.danger:hover{background:#ec7a7a24}.mini{cursor:pointer;background:var(--tone-up);color:var(--bone);border:0;border-radius:2px;min-height:30px;margin-left:auto;padding:4px 12px;font-size:13px}.mini:hover{background:var(--tone-up-2)}.panel{overscroll-behavior:contain;background:var(--stone);width:min(1080px,96vw);max-height:96vh;clip-path:var(--tablet);border:0;border-radius:0;padding:32px 36px;position:relative;overflow:auto}.panel.narrow{width:min(470px,94vw)}.panel h2{font-family:var(--display);letter-spacing:-.03em;color:var(--bone);margin:0 0 10px;font-size:34px;font-weight:700;line-height:1.15}.panel h2.win{color:var(--yellow)}.panel h2.lose{color:var(--red)}.panel h3{color:var(--bone);margin:22px 0 8px;font-size:16px}.lead{color:var(--bone);max-width:64ch;margin:4px 0 24px;font-size:16px;line-height:1.7}.lead b{color:var(--bone)}.gold{color:var(--yellow)}.row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;display:flex}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.staff-pick{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.staff-pick>.muted{color:var(--bone);margin:0;font-size:14px;font-weight:700}.staff-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.map-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.staff-card{--c:var(--bone);text-align:left;color:var(--bone);font-family:var(--body);cursor:pointer;background:var(--tone-down);border:0;border-radius:2px;flex-direction:column;gap:3px;padding:10px 12px 10px 32px;display:flex;position:relative}.staff-card:before{content:"";border:2px solid var(--c);border-radius:50%;width:11px;height:11px;position:absolute;top:13px;left:11px}.staff-card.on{background:var(--tone-up-2)}.staff-card.on:before{background:var(--c)}.staff-card b{font-size:15px}.staff-card span{color:var(--bone-dim);font-size:13px;line-height:1.45}.staff-card:hover{background:var(--tone-up)}.staff-card:disabled{cursor:default;opacity:.5}.staff-card.on:disabled{opacity:1}#map-note{color:var(--blue);margin-left:6px;font-style:normal;font-weight:400}.slots3{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:6px;display:grid}.lslot{flex-direction:column;gap:12px;display:flex}.lslot-top{color:var(--bone-dim);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.key{background:var(--tone-up-2);min-width:26px;height:22px;font:700 12px var(--body);color:var(--bone);border-radius:2px;place-items:center;padding:0 6px;display:inline-grid}.word-input,#swap-word{border:0;border-bottom:2px solid var(--bone-dim);width:100%;color:var(--bone);font:700 28px var(--word);letter-spacing:.02em;background:0 0;border-radius:0;outline:none;padding:6px 2px}.word-input:focus,#swap-word:focus{border-bottom-color:var(--yellow)}.word-input::placeholder,#swap-word::placeholder{color:#efe6d299;font:400 16px var(--body);letter-spacing:0}.skill-card{--c:#8892a8;--cut:10px;color:var(--bone);background:var(--stone-hi);clip-path:var(--tablet);min-height:196px;padding:16px 18px;position:relative}.skill-card.empty{text-align:center;color:var(--bone-dim);background:var(--tone-down);place-items:center;padding:20px;font-size:15px;line-height:1.6;display:grid}.sc-runes{font:400 24px/1 var(--rune);letter-spacing:.22em;color:var(--c);white-space:nowrap;text-overflow:clip;min-height:26px;margin-bottom:10px;overflow:hidden}.sc-runes i{animation:.45s both ignite;animation-delay:calc(var(--i) * 45ms)}.sc-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.sc-word{font:700 30px/1.05 var(--word);letter-spacing:.02em;color:var(--bone)}.sc-mean{color:var(--bone);font-size:16px;font-weight:700}.sc-pos{color:var(--bone-dim);margin-left:4px;font-size:12px;font-weight:400}.sc-tags{flex-wrap:wrap;gap:5px;margin:12px 0 6px;display:flex}.tag{color:var(--bone-dim);background:var(--tone-down);border:0;border-radius:2px;padding:2px 8px;font-size:12px;font-weight:700}.tag[style*=--c]{color:var(--c);background:color-mix(in srgb, var(--c) 16%, transparent)}.tag-warn{color:var(--orange)}.sc-desc{color:var(--bone);margin:8px 0 10px;font-size:14px;line-height:1.65}.sc-stats{color:var(--bone-dim);flex-wrap:wrap;gap:16px;font-size:13px;display:flex}.sc-stats b{color:var(--bone);font-family:var(--word);font-weight:700}.suggest{margin-top:20px}.suggest>.muted{color:var(--bone);font-size:14px;font-weight:700}.chips{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.chip{--c:var(--bone-dim);cursor:pointer;border:0;border-left:4px solid var(--c);background:var(--tone-down);color:var(--bone);font:600 15px var(--word);border-radius:2px;align-items:baseline;gap:6px;min-height:32px;padding:4px 10px 4px 9px;display:inline-flex}.chip small{font:400 13px var(--body);color:var(--bone-dim)}.chip:hover{background:var(--tone-up)}.pip{border:1.5px solid var(--c,#fff);opacity:.5;border-radius:50%;width:8px;height:8px;margin-right:3px;display:inline-block}.pip.on{background:var(--c,#fff);opacity:1}.help-grid{grid-template-columns:repeat(2,1fr);gap:4px 36px;display:grid}.help-grid h3{margin-top:18px}.help-grid p{color:var(--bone);margin:6px 0;font-size:15px;line-height:1.75}.help-grid p b{color:var(--bone)}.field{justify-content:space-between;align-items:center;gap:16px;padding:10px 0;font-size:15px;font-weight:700;display:flex}.field input[type=range]{width:200px;accent-color:var(--yellow)}.field input[type=checkbox]{accent-color:var(--yellow);width:16px;height:16px}.field.check{justify-content:flex-start}.field select{background:var(--stone-lo);color:var(--bone);border:2px solid var(--bone-dim);border-radius:2px;padding:6px 10px}.wordlist{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;max-height:52vh;padding:6px 4px;display:grid;overflow:auto}.wb-item{--c:#8892a8;--cut:8px;background:var(--stone-hi);color:var(--bone);clip-path:var(--tablet);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.wb-item .runes,.swap-slot .runes{font:400 15px/1 var(--rune);letter-spacing:.18em;color:var(--c);white-space:nowrap;overflow:hidden}.wb-item b{font:700 18px var(--word);color:var(--bone)}.wb-item span{font-size:13px}.wb-item small{color:var(--bone-dim)}.stat-grid{grid-template-columns:repeat(6,1fr);gap:4px;margin:16px 0 8px;display:grid}.stat-grid>div{background:var(--tone-down);padding:12px 16px}.stat-grid small{color:var(--bone-dim);font-size:13px;display:block}.stat-grid b{font:600 32px/1.2 var(--word);color:var(--bone)}.ward-score{grid-template-columns:repeat(2,minmax(0,1fr));max-width:420px}.wtable{border-collapse:collapse;border-collapse:separate;border-spacing:0 4px;width:100%;font-size:14px}.wtable th{text-align:left;color:var(--bone-dim);padding:4px 12px;font-size:12px;font-weight:700}.wtable td{background:var(--tone-down);padding:10px 12px}.wtable td:first-child{border-radius:4px 0 0 4px}.wtable td:last-child{border-radius:0 4px 4px 0}.wtable th,.wtable td{white-space:nowrap}.wtable td:first-child b{font:600 16px var(--word)}.hud{pointer-events:none;font-weight:700;display:none;position:absolute;inset:0}.hud.is-active{display:block}.hud-top{text-align:center;text-shadow:0 1px 2px #000000e6,0 0 12px #0000008c;position:absolute;top:16px;left:50%;transform:translate(-50%)}.wave-title{font-family:var(--display);letter-spacing:-.02em;font-size:26px;font-weight:700}.wave-sub{color:var(--bone);margin-top:2px;font-size:14px;font-weight:400}.hud-score{text-align:right;text-shadow:0 1px 2px #000000e6,0 0 12px #0000008c;position:absolute;top:16px;right:24px}.score,.ammo b,.stat-grid b,.ss-cd,.hpbar span,.wtable td,.ward-code{font-variant-numeric:tabular-nums}.score{font:600 30px var(--word);color:var(--yellow)}.combo{color:var(--bone);min-height:20px;font-size:14px;font-weight:400}.crosshair{--gap:6px;width:0;height:0;transition:opacity .12s;position:absolute;top:50%;left:50%}.crosshair.hide{opacity:0}.ch{background:#fff;position:absolute;box-shadow:0 0 2px #000,0 0 1px #000}.ch.t,.ch.b{width:2px;height:9px;left:-1px}.ch.l,.ch.r{width:9px;height:2px;top:-1px}.ch.t{top:calc(var(--gap) * -1 - 9px)}.ch.b{top:var(--gap)}.ch.l{left:calc(var(--gap) * -1 - 9px)}.ch.r{left:var(--gap)}.dot{background:var(--yellow);border-radius:50%;width:3px;height:3px;position:absolute;top:-1.5px;left:-1.5px;box-shadow:0 0 2px #000}.crosshair.aim .ch{background:var(--yellow)}.hitmarker{opacity:0;width:28px;height:28px;position:absolute;top:-14px;left:-14px}.hitmarker:before,.hitmarker:after{content:"";background:#fff;width:3px;height:26px;margin:-13px 0 0 -1.5px;position:absolute;top:50%;left:50%;box-shadow:0 0 3px #000}.hitmarker:before{transform:rotate(45deg)}.hitmarker:after{transform:rotate(-45deg)}.hitmarker.show{opacity:1;animation:.18s ease-out hitpop}.hitmarker.crit:before,.hitmarker.crit:after{background:var(--yellow)}.hitmarker.kill:before,.hitmarker.kill:after{background:var(--red);height:34px;margin-top:-17px}@keyframes hitpop{0%{transform:scale(1.5)}to{transform:scale(1)}}.target-info{text-shadow:0 1px 3px #000;flex-direction:column;align-items:center;gap:3px;font-size:13px;display:none;position:absolute;top:calc(50% + 46px);left:50%;transform:translate(-50%)}.target-info.show{display:flex}.target-info i{background:#0009;outline:1px solid #ffffff59;width:110px;height:5px;display:block;overflow:hidden}.target-info em{background:var(--red);height:100%;display:block}.target-info small{color:var(--yellow);font-weight:400}.hud-bl{width:min(280px,22vw);position:absolute;bottom:26px;left:24px}.hpbar{isolation:isolate;background:var(--hud-bg);border:2px solid var(--bone);height:22px;position:relative;overflow:hidden}.hpbar .fill{background:var(--green);transition:width .15s;position:absolute;inset:0 auto 0 0}.hpbar .fill.low{background:var(--red);animation:.7s infinite alternate lowpulse}.hpbar .shield{background:var(--blue);z-index:2;height:5px;position:absolute;inset:auto auto 0 0}.hpbar span{font:700 13px var(--word);color:#fff;text-shadow:0 0 3px #000,0 1px 2px #000;z-index:3;place-items:center;display:grid;position:absolute;inset:0}@keyframes lowpulse{0%{filter:brightness()}to{filter:brightness(1.35)}}.buffs{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.buff{background:var(--hud-bg);border:1px solid var(--blue);color:var(--bone);border-radius:2px;padding:1px 8px;font-size:12px}.hud-br{text-align:right;text-shadow:0 1px 2px #000,0 0 10px #00000080;position:absolute;bottom:24px;right:26px}.ammo b{font:600 50px/1 var(--word)}.ammo b.empty{color:var(--red)}.ammo span{color:var(--bone-dim);margin-left:4px;font-size:16px}.reload{background:#fff3;width:140px;height:3px;margin:6px 0 0 auto;overflow:hidden}.reload i{background:var(--bone);width:0;height:100%;display:block}.viewtag{color:var(--bone-dim);margin-top:6px;font-size:12px;font-weight:400}.skills{align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.skill-slot{--c:#8892a8;--cd:0;--cut:8px;background:var(--hud-bg);width:150px;min-height:96px;clip-path:var(--tablet);padding:10px 12px 8px 14px;transition:transform .1s;position:relative;overflow:hidden}.ss-icon{width:78px;height:78px;color:var(--c);opacity:.16;pointer-events:none;position:absolute;bottom:-12px;right:-10px}.ss-icon svg{width:100%;height:100%;display:block}.skill-slot.ready .ss-icon{opacity:.26}.skill-slot>:where(.ss-word,.ss-ko,.ss-pips,.ss-note){position:relative}.skill-slot.ready .ss-word{color:var(--bone)}.skill-slot.flash{transform:translateY(-4px)}.skill-slot.empty{opacity:.75}.skill-slot .key{position:absolute;top:7px;right:8px}.ss-word{font:600 19px var(--word);letter-spacing:-.01em;color:var(--bone-dim);text-overflow:ellipsis;white-space:nowrap;max-width:100px;overflow:hidden}.ss-ko{color:var(--bone-dim);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:13px;font-weight:400;overflow:hidden}.ss-pips{min-height:12px;margin-top:7px}.ss-note{color:var(--yellow);min-height:14px;margin-top:4px;font-size:12px;font-weight:400}.ss-cd{font:600 22px var(--word);color:var(--bone);text-shadow:0 1px 3px #000;background:linear-gradient(to top, #0000008c calc(var(--cd) * 100%), transparent calc(var(--cd) * 100%));justify-content:flex-end;align-items:flex-end;padding:0 10px 6px 0;display:flex;position:absolute;inset:0}.ss-cd:empty{background:0 0}.swap-btn{--cut:8px;clip-path:var(--tablet);pointer-events:auto;cursor:pointer;background:var(--hud-bg);width:96px;color:var(--bone);border:0;border-radius:0;align-self:stretch;font-size:13px;font-weight:700;line-height:1.6}.swap-btn:hover{background:#272036f0}.feed{flex-direction:column;gap:4px;width:290px;display:flex;position:absolute;top:90px;left:24px}.feed-item{--c:var(--bone);border-left:3px solid var(--c);background:var(--hud-bg);padding:4px 10px;font-size:13px;font-weight:400;animation:.25s both feedin,.6s 6.4s forwards feedout}@keyframes feedin{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:none}}@keyframes feedout{to{opacity:0}}.toasts{flex-direction:column;gap:8px;width:320px;display:flex;position:absolute;top:100px;right:24px}.toast{--c:var(--blue);background:var(--hud-bg);border-left:4px solid var(--c);flex-direction:column;gap:2px;padding:9px 13px;animation:.3s both toastin,.5s 4.7s forwards feedout;display:flex}.toast b{color:var(--c);font-size:14px}.toast span{color:var(--bone);font-size:12.5px;font-weight:400;line-height:1.5}.toast.warn{--c:var(--orange)}.toast.good{--c:var(--green)}@keyframes toastin{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.banner{text-align:center;opacity:0;text-shadow:0 2px 3px #000c,0 0 24px #0009;flex-direction:column;gap:6px;display:flex;position:absolute;top:24%;left:0;right:0}.banner b{font-family:var(--display);letter-spacing:-.03em;font-size:clamp(36px,6vw,64px);font-weight:700}.banner span{color:var(--bone);font-size:18px;font-weight:400}.banner.show{animation:2.6s both banner}@keyframes banner{0%{opacity:0;transform:translateY(8px)}12%{opacity:1;transform:none}78%{opacity:1}to{opacity:0;transform:translateY(-10px)}}.markers{position:absolute;inset:0;overflow:hidden}.marker{will-change:transform;text-shadow:0 1px 3px #000;flex-direction:column;align-items:center;width:56px;margin-left:-28px;font-size:12px;display:flex;position:absolute;top:0;left:0}.marker i{background:#000000a6;outline:1px solid #ffffff59;width:50px;height:4px;display:block;overflow:hidden}.marker em{background:var(--red);height:100%;display:block}.marker span{white-space:nowrap;color:var(--bone);margin-top:2px;font-weight:400}.marker[data-kind=sniper] em{background:#c79bff}.marker[data-kind=heavy] em{background:var(--orange)}.popups{position:absolute;inset:0;overflow:hidden}.popup{--c:#fff;font:700 22px var(--word);color:var(--c);text-shadow:0 1px 2px #000,0 0 8px #0009;white-space:nowrap;animation:1s ease-out forwards rise;position:absolute;transform:translate(-50%,-50%)}.popup.crit{color:var(--yellow);font-size:28px}.popup.heal{color:var(--green);font-size:24px}.popup.info{color:#fff;font-size:18px}.popup.skill{font-size:26px;animation-duration:1.3s}@keyframes rise{0%{opacity:0;margin-top:10px}15%{opacity:1}to{opacity:0;margin-top:-46px}}.dmg-ind{width:0;height:0;position:absolute;top:50%;left:50%}.dmg-arc{clip-path:polygon(30% 0,70% 0,70% 22%,30% 22%);border:8px solid #0000;border-top-color:#ec5a5ae6;border-radius:50%;width:260px;height:260px;animation:.9s forwards feedout;position:absolute;top:-130px;left:-130px}.adapt-badge{background:var(--hud-bg);border-left:4px solid var(--orange);padding:4px 14px;font-size:13px;font-weight:400;display:none;position:absolute;top:82px;left:50%;transform:translate(-50%)}.adapt-badge.show{display:block}.start-hint{color:var(--bone);background:var(--hud-bg);white-space:nowrap;padding:6px 14px;font-size:13px;font-weight:400;display:none;position:absolute;bottom:152px;left:50%;transform:translate(-50%)}.start-hint.show{gap:16px;display:flex}.start-hint kbd{margin-right:4px}.vignette{opacity:0;background:radial-gradient(#0000 55%,#dc283280);position:absolute;inset:0}.vignette.hit{animation:.45s ease-out vighit}.hud.danger .vignette{opacity:.45;animation:1.1s infinite alternate dangerpulse}@keyframes vighit{0%{opacity:.95}to{opacity:0}}@keyframes dangerpulse{0%{opacity:.25}to{opacity:.6}}.swap{z-index:10;background:#0c091299;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.swap.open{pointer-events:auto;display:flex}.swap-box{overscroll-behavior:contain;background:var(--stone);width:min(760px,94vw);max-height:94vh;clip-path:var(--tablet);border:0;border-radius:0;padding:28px 32px;overflow:auto}.swap-head{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.swap-head h2{font-family:var(--display);letter-spacing:-.03em;margin:0;font-size:28px;font-weight:700}.warn-pill{color:var(--red);font-size:13px}.swap-slots{grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0;display:grid}.swap-slot{--c:#8892a8;--cut:8px;cursor:pointer;text-align:left;background:var(--tone-down);clip-path:var(--tablet);color:var(--bone);border:0;border-radius:0;flex-direction:column;gap:4px;padding:10px 14px;display:flex}.swap-slot b{font:600 18px var(--word)}.swap-slot .key{align-self:flex-start;margin-bottom:4px}.swap-slot small{color:var(--bone-dim);font-size:13px}.swap-slot.sel{background:var(--tone-up-2)}.swap-input{align-items:flex-end;gap:12px;display:flex}.swap-msg{color:var(--red);min-height:20px;margin:8px 0;font-size:13px}#swap-preview{margin:14px 0 4px}.click-prompt{background:var(--hud-bg);border:2px solid var(--bone);z-index:5;padding:9px 20px;font-weight:700;display:none;position:absolute;top:58%;left:50%;transform:translate(-50%)}.click-prompt.show{display:block}.ward-panel .field input[type=text],#ward-name,#ward-code{border:0;border-bottom:2px solid var(--bone-dim);color:var(--bone);font:600 18px var(--word);background:0 0;border-radius:0;outline:none;padding:6px 2px}[data-screen=ward] .field:has(#ward-name){flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:6px}#ward-name{width:240px;font-family:var(--body);font-weight:700}#ward-name:focus,#ward-code:focus{border-bottom-color:var(--yellow)}.ward-box{flex-direction:column;align-items:flex-start;gap:12px;padding:20px 0 6px;display:flex}.ward-box[hidden]{display:none}.ward-or{margin:0}.ward-join{align-items:flex-end;gap:12px;width:100%;display:flex}#ward-code{letter-spacing:.3em;text-transform:uppercase;width:190px;font-size:24px}#ward-code::placeholder{letter-spacing:0;font:400 14px var(--body);color:#efe6d299;text-transform:none}.ward-code{font:700 64px/1 var(--word);letter-spacing:.14em;color:var(--yellow);-webkit-user-select:all;user-select:all}.ward-pulse{animation:1.6s ease-in-out infinite wardPulse}@keyframes wardPulse{50%{opacity:.45}}.ward-msg{min-height:1.4em;color:var(--bone);margin:12px 0 4px;font-weight:700}.ward-msg.error{color:var(--red)}.ward-status{background:var(--tone-down);flex-wrap:wrap;align-items:center;gap:6px 22px;margin:4px 0 16px;padding:12px 16px;font-size:15px;display:none}.ward-status.show{display:flex}.ward-status .tag{font:600 13px var(--word);color:var(--yellow);background:0 0;border:0;padding:0}.ward-status .ok{color:var(--green)}.teacher-btn{width:100%;margin-top:16px;display:block}.teacher-btn small{color:var(--yellow);font-weight:400}.teacher-state{color:var(--bone-dim);font-size:13px;font-weight:700;display:inline-block}.teacher-state.on{color:var(--yellow)}.teacher-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px 18px;max-height:46vh;padding:2px;display:grid;overflow:auto}.t-slot{align-items:baseline;gap:6px;display:flex;position:relative}.t-slot span{text-align:right;width:22px;color:var(--bone-dim);font:400 12px var(--word);flex:none}.t-word{border:0;border-bottom:2px solid var(--bone-dim);width:100%;min-width:0;color:var(--bone);font:500 17px var(--word);background:0 0;border-radius:0;outline:none;padding:5px 2px}.t-word:focus{border-bottom-color:var(--yellow)}.t-word::placeholder{color:#efe6d299;font:400 14px var(--body)}.t-slot em{color:var(--red);pointer-events:none;font-size:12px;font-style:normal;position:absolute;bottom:6px;right:2px}.t-slot.bad .t-word{border-bottom-color:var(--red)}.teacher-add{justify-content:space-between;align-items:center;margin:14px 0 4px}.teacher-msg{min-height:1.4em;color:var(--green);margin:8px 0 10px;font-weight:700}.teacher-msg.error{color:var(--red)}.teacher-note{color:var(--yellow);margin:0 0 10px;font-size:13px;font-weight:700}.teacher-note:empty,#teacher-lock[hidden],#teacher-body[hidden],#teacher-reload[hidden]{display:none}.teacher-pw{border:0;border-bottom:2px solid var(--bone-dim);width:100%;color:var(--bone);font:600 22px var(--word);letter-spacing:.12em;background:0 0;border-radius:0;outline:none;padding:8px 2px}.teacher-pw:focus{border-bottom-color:var(--yellow)}.teacher-top{gap:8px 18px;margin:0 0 14px}.teacher-top .mini{margin-left:0}.teacher-sync{color:var(--green);font-size:13px}.teacher-sync:empty{display:none}.teacher-sync.error{color:var(--red)}@media (max-width:900px){.slots3,.help-grid,.swap-slots{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(3,1fr)}.staff-cards,.map-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.skill-slot{width:128px}.feed,.toasts{display:none}}@media (max-width:560px){.teacher-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-card{grid-template-columns:1fr;gap:4px}.ward-code{font-size:46px}.title-wrap{margin-left:0}}@media (max-height:700px){.skill-slot{min-height:80px}.panel{padding:18px 22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.pickers{margin-top:28px}.ward-code-label{color:var(--bone);font-size:15px;font-weight:700}.touch #ui{-webkit-user-select:none;-webkit-touch-callout:none}.touch .start-hint kbd,.touch-only{display:none}.touch .touch-only{display:inline}.touch .pc-only{display:none}.touch-layer{pointer-events:auto;touch-action:none;position:absolute;inset:0}.stick-base{--r:56px;--mc:#a98bff;opacity:.82;pointer-events:none;place-items:center;width:176px;height:176px;margin:-88px 0 0 -88px;transition:opacity .15s;display:grid;position:absolute;top:calc(100% - 104px);left:110px}.stick-base.on{opacity:1}.stick-base:before{content:"";background:radial-gradient(circle,#a98bff29 0,#1e143c61 62%,#0000 72%);border-radius:50%;position:absolute;inset:14px}.mc-ring{filter:drop-shadow(0 0 4px #a98bffd9);width:100%;height:100%;position:absolute;inset:0;overflow:visible}.mc-line{fill:none;stroke:var(--mc,#a98bff);stroke-width:2.4px}.mc-line.thin{stroke-width:1.4px}.mc-line.faint{stroke-width:1.2px;opacity:.55}.mc-gems path{fill:#e9e0ff}.mc-runes{font:400 13px var(--rune);letter-spacing:6.2px;fill:#d9ccff;opacity:.8}.mc-spin{transform-origin:0 0}.stick-base.on .mc-spin{animation:9s linear infinite mcspin}@keyframes mcspin{to{transform:rotate(360deg)}}.stick-knob{background:radial-gradient(circle at 50% 40%,#e9e0ff80,#9678f052 55%,#3c28788c);border-radius:50%;place-items:center;width:66px;height:66px;display:grid;position:relative;box-shadow:0 0 0 2px #e9e0ffb3,0 0 16px #a98bffcc}.mc-star{fill:#f4efff;filter:drop-shadow(0 0 3px #fff);width:44px;height:44px}.mc-star .dim,.mc-attack .dim{opacity:.65}.touch-pad{width:1px;height:1px;position:absolute;bottom:0;right:0}.tbtn{--mc:#b9a8e8;pointer-events:auto;touch-action:none;color:#ece6ff;font:700 11px var(--body);-webkit-tap-highlight-color:transparent;background:radial-gradient(circle,#281e468c 0,#120f1980 70%);border:0;border-radius:50%;align-content:center;place-items:center;gap:1px;padding:0;display:grid;position:absolute;box-shadow:0 0 0 1.5px #c8baf599,inset 0 0 0 5px #120f194d,inset 0 0 0 6px #c8baf540}.tbtn.on{background:radial-gradient(circle,#a98bff73 0,#281e4699 70%);box-shadow:0 0 0 2px #e9e0ff,0 0 14px #a98bffe6}.mc-icon{fill:#ece6ff;stroke:#ece6ff;stroke-linecap:round;width:22px;height:22px}.tbtn span{text-shadow:0 1px 2px #000;line-height:1}.t-fire{--mc:#b49bff;width:100px;height:100px;box-shadow:none;background:radial-gradient(circle,#a98bff4d 0,#28195a80 62%,#0000 72%);bottom:18px;right:20px}.t-fire.on{box-shadow:none;background:radial-gradient(circle,#dccdff8c 0,#6e50dc8c 62%,#0000 74%)}.mc-attack{fill:#f4efff;filter:drop-shadow(0 0 4px #a98bfff2);width:calc(100% + 16px);height:calc(100% + 16px);position:absolute;inset:-8px;overflow:visible}.mc-attack .orbit{stroke-width:2px;opacity:.85}.tbtn.t-small{width:54px;height:54px}.t-jump{bottom:101px;right:235px}.t-reload{bottom:13px;right:243px}.t-aim{bottom:235px;right:123px}.tbtn.t-view{width:46px;height:46px;bottom:245px;right:27px}.t-view span,.t-aim span{display:none}.t-view .mc-icon,.t-aim .mc-icon{width:24px;height:24px}.t-pause{width:44px;height:44px;top:12px;left:14px}.t-pause .mc-icon{stroke:none;width:18px;height:18px}.rotate-hint{display:none}.touch .skills{pointer-events:none;display:block;inset:0;transform:none}.touch .skill-slot{pointer-events:auto;touch-action:none;clip-path:none;background:radial-gradient(circle, color-mix(in srgb, var(--c) 34%, #120f19e6) 0, #120f19d1 68%);width:74px;height:74px;min-height:0;box-shadow:0 0 14px color-mix(in srgb, var(--c) 55%, transparent), inset 0 0 14px color-mix(in srgb, var(--c) 45%, transparent);-webkit-tap-highlight-color:transparent;border:0;border-radius:50%;place-items:center;padding:0;transition:transform .1s,box-shadow .2s;display:grid;position:absolute;overflow:visible}.touch .skill-slot.cooling,.touch .skill-slot.empty{box-shadow:0 0 6px color-mix(in srgb, var(--c) 30%, transparent)}.mc-skill{--mc:var(--c);pointer-events:none;width:calc(100% + 10px);height:calc(100% + 10px);position:absolute;inset:-5px;overflow:visible}.mc-skill .mc-line{stroke-width:3px}.mc-skill .mc-gems path{fill:var(--c)}.touch .skill-slot[data-slot="0"]{bottom:31px;right:145px}.touch .skill-slot[data-slot="1"]{bottom:110px;right:112px}.touch .skill-slot[data-slot="2"]{bottom:143px;right:33px}.touch .skill-slot.on,.touch .skill-slot.flash{transform:scale(.93)}.touch .skill-slot .key,.touch .ss-ko,.touch .ss-note,.touch .ss-pips{display:none}.touch .ss-icon{opacity:.42;width:calc(100% - 26px);height:calc(100% - 26px);position:absolute;inset:13px auto auto 13px}.touch .skill-slot.ready .ss-icon{opacity:.5}.touch .ss-word{z-index:1;color:#fff;max-width:66px;font-size:clamp(9px, calc(92px / var(--len,5)), 15px);letter-spacing:0;text-align:center;text-shadow:0 0 6px #000, 0 0 3px #000, 0 0 8px var(--c)}.touch .skill-slot.cooling .ss-word{opacity:.6}.touch .ss-cd{z-index:2;background:conic-gradient(#0009 calc(var(--cd) * 360deg), transparent 0);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:20px;inset:0}.touch .ss-cd:empty{background:0 0}.touch .swap-btn{pointer-events:auto;clip-path:none;color:#ece6ff;background:radial-gradient(circle,#281e4699 0,#120f1999 80%);border-radius:22px;width:auto;height:44px;padding:0 16px;font-size:13px;position:absolute;top:12px;left:66px;box-shadow:0 0 0 1.5px #c8baf599}.touch .swap-btn kbd{display:none}.touch .hud-bl{width:min(240px,34vw);top:66px;bottom:auto;left:14px}.touch .hud-br{top:52px;bottom:auto;right:18px}.touch .ammo b{font-size:28px}.touch .ammo span{font-size:12px}.touch .viewtag,.touch .feed{display:none}.touch .toasts{width:min(280px,40vw);display:flex;top:98px;right:14px}.touch .start-hint{top:30%;bottom:auto}.touch .wave-title{font-size:20px}.touch .hud-top{top:10px}.touch .hud-score{top:10px;right:18px}.touch .score{font-size:22px}@media (orientation:portrait){.touch .rotate-hint{z-index:20;pointer-events:auto;text-align:center;background:var(--stone-lo);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex;position:absolute;inset:0}.touch .rotate-hint b{font-size:22px}.touch .rotate-hint span{color:var(--bone-dim);word-break:keep-all;font-size:15px}}@media (max-height:500px){.screen{padding:10px}.logo-text{font-size:clamp(40px,7vw,64px)}.logo-runes{margin-top:8px;font-size:18px}.tagline{margin:10px 0 14px;font-size:14px}.modes{gap:6px;margin-bottom:14px}.mode-card{grid-template-columns:140px 1fr;padding:10px 16px}.mode-card b{font-size:24px}.mode-card span{font-size:14px}.best{margin-top:10px}.panel,.swap-box{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);padding:16px 20px}.panel h2{font-size:24px}.lead{margin-bottom:12px;font-size:14px;line-height:1.55}.skill-card{min-height:0;padding:12px 14px}.slots3,.swap-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.swap-box{padding:14px 18px}.swap-head h2,.word-input{font-size:22px}.sc-runes{margin-bottom:6px;font-size:18px}.sc-word{font-size:22px}.sc-desc{margin:4px 0 6px;font-size:13px}}
