html,body{color:#c9b38a;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#000;height:100%;margin:0;font-family:ui-monospace,Courier New,monospace;overflow:hidden}#game{width:100vw;height:100dvh;image-rendering:pixelated;display:block}#game.shake{animation:.12s ease-out cast-shake}@keyframes cast-shake{0%,to{transform:translate(0)}25%{transform:translate(-2px,1px)}50%{transform:translate(2px,-1px)}75%{transform:translate(-1px,-2px)}}#crosshair{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair .dot{border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair.hit{animation:.18s ease-out crosshair-hit}@keyframes crosshair-hit{0%{filter:brightness(2.4);transform:translate(-50%,-50%)scale(1)}45%{filter:brightness(3.2);transform:translate(-50%,-50%)scale(1.18)}to{filter:brightness();transform:translate(-50%,-50%)scale(1)}}#crosshair.blocking .dot{opacity:.35}#crosshair.style-dot{width:4px;height:4px}#crosshair.style-dot .dot{background:#e0c090;border-radius:0;width:4px;height:4px}#crosshair.style-circle{border:2px solid #9ec5ffd1;border-radius:50%;width:30px;height:30px;box-shadow:0 0 6px #9ec5ff57,inset 0 0 8px #9ec5ff21}#crosshair.style-circle .dot{opacity:.76;background:#d2eafff5;width:3px;height:3px;box-shadow:0 0 7px #9ec5ffb8}#crosshair.style-brokenCircle{background:conic-gradient(from 12deg,#ffd67a00 0deg 12deg,#ffb23ae6 12deg 72deg,#ffd67a00 72deg 102deg,#ff7520e0 102deg 162deg,#ffd67a00 162deg 192deg,#ffb23ae6 192deg 252deg,#ffd67a00 252deg 282deg,#ff7520e0 282deg 342deg,#ffd67a00 342deg 360deg);border-radius:50%;width:46px;height:46px;box-shadow:0 0 9px #ff752047;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px))}#crosshair.style-brokenCircle .dot{opacity:.78;background:#ffd571f5;width:4px;height:4px}#crosshair.style-brokenCircle.hit{animation:.18s ease-out crosshair-fireball-hit}@keyframes crosshair-fireball-hit{0%{filter:brightness(2.2);transform:translate(-50%,-50%)scale(1)}46%{filter:brightness(3.2);transform:translate(-50%,-50%)scale(1.16)rotate(7deg)}to{filter:brightness();transform:translate(-50%,-50%)scale(1)}}#damage-numbers{position:absolute;inset:0;overflow:hidden}.damage-number{color:#f4e0b0;text-shadow:1px 1px #000,-1px 1px #000,1px -1px #000,-1px -1px #000;font-size:18px;font-weight:700;position:absolute;top:0;left:0}.damage-number.kill{color:#ff6a3a;font-size:22px}.damage-number.fire{color:#ffb36a}.damage-number.arcane{color:#a8ccff}.damage-number.tick{opacity:.85;font-size:13px}#debug-readout{white-space:pre;color:#c9e0a0;background:#0009;padding:4px 8px;font-size:12px;line-height:1.4;position:absolute;top:8px;left:8px}#loadout-bar{left:50%;bottom:max(12px, env(safe-area-inset-bottom));gap:4px;font-size:11px;line-height:1;display:flex;position:absolute;transform:translate(-50%)}.loadout-slot{color:#9a8a6c;background:#00000073;outline:1px solid #3a3029;align-items:center;gap:5px;padding:5px 7px;display:flex}.loadout-slot .key{color:#e8d6b0}.loadout-slot .cost{color:#8f7cf0}.loadout-slot.active{color:#f4e0b0;background:#281e14b3;outline-color:#e0c090}.loadout-slot.kind-caster.active{outline-color:#ff9a4a}.loadout-slot.kind-beam.active,.loadout-slot.kind-utility.active{outline-color:#8fb8ff}@media (width<=560px){.loadout-slot .label{display:none}}#net-status{right:max(8px, env(safe-area-inset-right));text-align:right;color:#c9e0ff;background:#0000008c;padding:4px 8px;font-size:13px;line-height:1.4;position:absolute;top:8px}#net-status .share{opacity:.75;font-size:11px}#net-status .note{color:#f4e0b0;font-size:11px}.touch-button{color:#e0c090cc;width:84px;height:84px;font:inherit;letter-spacing:.1em;pointer-events:auto;touch-action:none;background:#e0c09026;border:2px solid #e0c09073;border-radius:50%;font-size:.8rem;position:absolute}.touch-button:active{background:#e0c09059}#touch-jump{right:max(24px, env(safe-area-inset-right));bottom:max(32px, env(safe-area-inset-bottom))}#touch-attack{right:max(120px, calc(env(safe-area-inset-right) + 96px));bottom:max(56px, env(safe-area-inset-bottom));border-color:#ffaa5a80;width:96px;height:96px}#touch-ward{right:max(40px, env(safe-area-inset-right));bottom:max(136px, calc(env(safe-area-inset-bottom) + 104px));color:#bed7ffd9;border-color:#8fb8ff8c}#touch-swap{right:max(140px, calc(env(safe-area-inset-right) + 116px));bottom:max(170px, calc(env(safe-area-inset-bottom) + 138px));width:64px;height:64px;font-size:.7rem}#touch-stick{border:2px solid #e0c09059;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;display:none;position:absolute}#touch-stick .knob{background:#e0c09059;border-radius:50%;width:48px;height:48px;margin:-24px 0 0 -24px;position:absolute;top:50%;left:50%}#vitals{left:max(12px, env(safe-area-inset-left));bottom:max(12px, env(safe-area-inset-bottom));background:#00000073;gap:5px;padding:6px 8px;font-size:12px;line-height:1;display:grid;position:absolute}.vital{grid-template-columns:2.2em 132px 2.6em;align-items:center;gap:6px;display:grid}.vital .label{letter-spacing:.08em;color:#c9b38a}.vital .track{background:#1a1512;outline:1px solid #3a3029;height:9px;position:relative}.vital .fill,.vital .trail{transform-origin:0;position:absolute;inset:0}.vital .number{text-align:right;color:#e8d6b0}.vital.health .fill{background:linear-gradient(#d0503a 0 40%,#a8301f 40%)}.vital.health .trail{background:#f0d8b0}.vital.magic .fill{background:linear-gradient(#8f7cf0 0 40%,#5f48c8 40%)}.vital.magic .trail{background:#d8d0ff}.vital.low .track{animation:.8s steps(2,end) infinite vital-low}@keyframes vital-low{50%{outline-color:#d0503a}}.vital.empty .track{animation:.35s steps(3,end) vital-empty}@keyframes vital-empty{0%,66%{background:#3a2d6a;outline-color:#d8d0ff}}#ward-overlay{opacity:0;transition:opacity .22s ease-out;position:absolute;inset:0;overflow:hidden}#ward-overlay:before,#ward-overlay:after{content:"";mix-blend-mode:screen;position:absolute;top:50%;left:50%}#ward-overlay:before{filter:blur(14px);background:radial-gradient(circle,#b4dcffd9 0%,#78aae6b3 8%,#4678c88c 18%,#2850a059 30%,#14285a26 45%,#0000 60%);width:140vmax;height:140vmax;transition:transform .28s cubic-bezier(.2,.8,.3,1);animation:4s ease-in-out infinite ward-churn;transform:translate(-50%,-50%)scale(.4)}#ward-overlay:after{filter:blur(22px);background:radial-gradient(70% 50% at 40% 45%,#c8e6ff80 0%,#64a0dc4d 20%,#0000 50%),radial-gradient(55% 80% at 65% 55%,#a0c8fa66 0%,#5082d240 25%,#0000 55%),radial-gradient(80% 60% at 50% 60%,#82b4f073 0%,#0000 45%);width:120vmax;height:120vmax;transition:transform .3s cubic-bezier(.2,.8,.3,1);animation:6s ease-in-out infinite ward-drift;transform:translate(-50%,-50%)scale(.5)}#ward-overlay.active{opacity:.92;mix-blend-mode:screen;background:radial-gradient(circle,#d7ecff1c 0%,#6ea8ff12 26%,#0000 52%),repeating-conic-gradient(#6ea8ff1f 0deg,#6ea8ff05 10deg,#0000 18deg 32deg)}#ward-overlay.active:before,#ward-overlay.active:after{transform:translate(-50%,-50%)scale(1)}#ward-overlay.parry-flash:before,#ward-overlay.parry-flash:after{animation:.22s ease-out ward-parry}@keyframes ward-churn{0%,to{filter:blur(14px)hue-rotate()}50%{filter:blur(18px)hue-rotate(-15deg)}}@keyframes ward-drift{0%,to{filter:blur(22px)hue-rotate()}33%{filter:blur(28px)hue-rotate(10deg)}66%{filter:blur(20px)hue-rotate(-10deg)}}@keyframes ward-parry{0%{filter:blur(14px)brightness()}30%{filter:blur(6px)brightness(2.8)}to{filter:blur(14px)brightness()}}#crash-overlay{box-sizing:border-box;text-align:center;pointer-events:auto;background:#080402eb;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:16px;display:flex;position:absolute;inset:0;overflow:auto}#crash-overlay h2{color:#e0a040;letter-spacing:.2em;margin:0}#crash-overlay .message{overflow-wrap:anywhere;max-width:40rem;margin:0}#crash-overlay .note{opacity:.6;margin:0;font-size:.8rem}#crash-overlay .buttons{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}#crash-overlay button{font:inherit;color:#f3e6cf;cursor:pointer;background:#3a2414;border:1px solid #e0a040;padding:.5rem 1.5rem}#crash-overlay pre{text-align:left;opacity:.7;white-space:pre-wrap;overflow-wrap:anywhere;max-width:min(48rem,100%);max-height:40vh;margin:0;font-size:.7rem;overflow:auto}#title-overlay{text-align:center;cursor:pointer;pointer-events:auto;background:#000000bf;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;inset:0}#title-overlay.hidden{display:none}#title-overlay h1{letter-spacing:.3em;color:#e0a040;text-shadow:0 0 24px #ff781499;margin:0;font-size:clamp(2.5rem,10vw,6rem)}#title-overlay .hint{font-size:1.2rem;animation:1.6s ease-in-out infinite title-pulse}#title-overlay .controls{opacity:.7;padding:0 16px;font-size:.85rem;line-height:1.6}@keyframes title-pulse{50%{opacity:.35}}#title-overlay .online{font:inherit;color:#c9e0ff;cursor:pointer;background:#283c6480;border:1px solid #6ea8ff99;margin-top:.75rem;padding:.5rem 1rem;font-size:.95rem}#ui-root,.ui-layer{pointer-events:none;position:fixed;inset:0}.ui-layer[data-ui-layer=hud]{z-index:10}.ui-layer[data-ui-layer=menu]{z-index:20}.ui-layer[data-ui-layer=modal]{z-index:30}
