@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-700-normal-Dkw14w9r.woff2)format("woff2"),url(/assets/cinzel-latin-700-normal-C-gK7hA8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}*,:before,:after{box-sizing:border-box}html,body{background:var(--void);height:100%;color:var(--text);font-family:Inter,system-ui,sans-serif;font-size:var(--text-min);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}#game{touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}#game canvas{display:block}#hud{pointer-events:none;position:fixed;inset:0}#hud>*{pointer-events:auto}.panel{background:var(--panel);border:1px solid var(--gold-border);border-radius:var(--panel-radius);box-shadow:0 8px 28px var(--shadow)}.display{letter-spacing:.12em;text-transform:uppercase;font-family:Cinzel,serif;font-weight:700}#loading{background:var(--void);z-index:10;place-content:center;justify-items:center;gap:22px;transition:opacity .22s ease-out;display:grid;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}#loading .logo{color:var(--gold);text-shadow:0 0 24px var(--gold-soft);font-size:56px}#loading .bar{background:var(--rock);border-radius:2px;width:240px;height:3px;overflow:hidden}#loading .bar>div{transform-origin:0;width:100%;height:100%;transform:scaleX(var(--progress,0));background:linear-gradient(90deg, var(--lava), var(--lava-hot));transition:transform .2s ease-out}#loading .step{color:var(--text-2);min-height:1.2em}.icon-button{width:40px;height:40px;color:var(--text-2);cursor:pointer;place-items:center;transition:color .15s ease-out;display:grid;position:absolute;top:12px;right:12px}.icon-button:hover,.icon-button:focus-visible{color:var(--gold);outline:none}#settings{width:min(420px,100vw - 32px);padding:22px 24px 24px;transition:opacity .18s ease-out,transform .18s ease-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#settings[hidden]{opacity:0;pointer-events:none;display:block;transform:translate(-50%,calc(8px - 50%))}#settings h2{color:var(--gold);margin:0 0 18px;font-size:20px}#settings h3{color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px;font-size:14px;font-weight:600}.segmented{grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;margin-bottom:18px;display:grid}.segmented button{font:inherit;color:var(--text);border:1px solid var(--gold-border);cursor:pointer;background:0 0;border-radius:8px;padding:10px 12px;font-weight:600;transition:background .15s ease-out,border-color .15s ease-out}.segmented button[aria-pressed=true]{background:var(--gold-soft);border-color:var(--gold);color:var(--gold)}.bindings{grid-template-columns:1fr auto;gap:6px 16px;margin:0;display:grid}.bindings dt{color:var(--text-2)}.bindings dd{font-variant-numeric:tabular-nums;text-align:right;margin:0;font-weight:600}.close{width:32px;height:32px;color:var(--text-2);cursor:pointer;background:0 0;border:none;font-size:20px;position:absolute;top:14px;right:14px}.close:hover{color:var(--text)}#debug-panel{font-variant-numeric:tabular-nums;white-space:pre;color:var(--text);pointer-events:none;padding:10px 12px;font-size:14px;line-height:1.45;position:absolute;top:12px;left:12px}.lobby{z-index:5;place-items:center;padding:16px;display:grid;position:absolute;inset:0;overflow-y:auto}.lobby[hidden],.lobby-card[hidden],.field[hidden]{display:none}.lobby-card{gap:14px;width:min(460px,100%);padding:28px 28px 24px;animation:.22s ease-out card-in;display:grid}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}}.lobby-title{text-align:center;color:var(--gold);text-shadow:0 0 28px var(--gold-soft);margin:0;font-size:clamp(40px,9vw,60px)}.lobby-tagline{text-align:center;color:var(--text-2);margin:-6px 0 6px}.field{gap:6px;display:grid}.field-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;font-size:14px;font-weight:600}.lobby input{font:inherit;color:var(--text);background:var(--void);border:1px solid var(--gold-border);border-radius:8px;min-width:0;padding:11px 12px;font-size:16px}.lobby input:focus-visible{border-color:var(--gold);outline:none}.colors{grid-template-columns:repeat(8,1fr);gap:6px;display:grid}.color{aspect-ratio:1;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:0;transition:border-color .15s ease-out,opacity .15s ease-out}.color img{width:100%;height:100%;display:block}.color[aria-pressed=true]{border-color:var(--gold);background:var(--gold-soft)}.color:disabled{opacity:.25;cursor:not-allowed}.btn{font:inherit;cursor:pointer;border-radius:8px;padding:12px 16px;font-size:16px;font-weight:600;transition:background .15s ease-out,border-color .15s ease-out,opacity .15s ease-out}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{color:var(--void);background:var(--gold);border:1px solid var(--gold)}.btn.primary:not(:disabled):hover{background:var(--lava-hot)}.btn.secondary{color:var(--text);border:1px solid var(--gold-border);background:0 0}.btn.secondary:not(:disabled):hover,.btn.secondary[aria-pressed=true]{border-color:var(--gold);background:var(--gold-soft)}.btn.link{color:var(--text-2);text-underline-offset:3px;background:0 0;border:none;justify-self:center;padding:6px;text-decoration:underline}.btn.link:hover{color:var(--text)}.btn[hidden]{display:none}.join-row{grid-template-columns:1fr auto;gap:8px;display:grid}.code-input{text-transform:uppercase;letter-spacing:.3em;font-variant-numeric:tabular-nums}.lobby-error{min-height:1.2em;color:var(--danger);text-align:center;margin:0}.room-code{letter-spacing:.22em;color:var(--gold);text-shadow:0 0 28px var(--gold-soft);background:0 0;border:none;justify-self:center;margin-top:-6px;padding:0 0 0 .22em;font-family:Cinzel,serif;font-size:clamp(48px,12vw,72px);font-weight:700}.players{gap:4px;margin:0;padding:0;list-style:none;display:grid}.player{background:var(--gold-soft);border-radius:8px;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:4px 8px 4px 4px;display:grid}.player .preview{width:40px;height:40px}.player-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.player-tags{gap:6px;display:flex}.tag{color:var(--text-2);font-size:14px}.tag-host,.tag-ready{color:var(--gold)}.tag-you{color:var(--text)}.lobby-hint{color:var(--text-2);text-align:center;margin:0}.room-buttons{grid-auto-columns:1fr;grid-auto-flow:column;gap:8px;display:grid}#hud>.hud{pointer-events:none;position:absolute;inset:0}.hud[hidden],.hud [hidden]{display:none}.hud>*{pointer-events:none}.hud-top{text-shadow:0 2px 8px var(--shadow);justify-items:center;gap:2px;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}.hud-round{color:var(--gold);font-size:16px}.hud-timer{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.hud-status{min-height:1.3em;color:var(--text-2);font-weight:600}.hud-status[data-kind=warn]{color:var(--lava-hot);animation:.6s ease-in-out infinite alternate pulse}.hud-status[data-kind=danger]{color:var(--danger);letter-spacing:.08em;text-transform:uppercase}@keyframes pulse{to{opacity:.45}}.kill-feed{justify-items:end;gap:6px;margin:0;padding:0;list-style:none;display:grid;position:absolute;top:64px;right:12px}.kill{gap:8px;padding:6px 10px;font-size:14px;animation:.18s ease-out feed-in,.6s ease-in 4.4s forwards feed-out;display:flex}@keyframes feed-in{0%{opacity:0;transform:translate(12px)}}@keyframes feed-out{to{opacity:0}}.kill-name{font-weight:600}.kill{align-items:center}.kill-sep{color:var(--text-2)}.countdown{color:var(--gold);text-shadow:0 0 40px var(--gold-soft), 0 4px 18px var(--shadow);font-size:clamp(72px,16vw,150px);position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.countdown.pop{animation:.45s ease-out count-pop}@keyframes count-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(1.6)}}.hud-banner{color:var(--text-2);padding:10px 16px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.scoreboard,.results{width:min(460px,100vw - 32px);padding:20px 22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scoreboard h2,.results-title{color:var(--gold);text-align:center;margin:0 0 12px;font-size:22px}.score-row{grid-template-columns:36px 1fr 64px 52px 52px;align-items:center;gap:10px;padding:4px 0;display:grid}.score-head{color:var(--text-2);font-size:14px}.score-row .preview,.placement .preview{width:36px;height:36px}.score-row.left{opacity:.4}.num,.points,.earned{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.results{animation:.22s ease-out card-in}.results-title{margin-bottom:4px;font-size:clamp(28px,6vw,40px)}.results-sub{text-align:center;color:var(--text-2);margin:0 0 14px}.placements{gap:4px;margin:0;padding:0;list-style:none;display:grid}.placement{background:var(--gold-soft);animation:.22s ease-out backwards slide-in;animation-delay:calc(var(--i) * 70ms);border-radius:8px;grid-template-columns:40px 36px 1fr 52px 44px 44px;align-items:center;gap:10px;padding:4px 8px;display:grid}@keyframes slide-in{0%{opacity:0;transform:translate(-16px)}}.place{color:var(--gold);font-weight:600}.earned-gold,.num.gold{text-align:right;font-variant-numeric:tabular-nums;color:var(--lava-hot);font-weight:600}.earned{color:var(--gold)}.podium{background:radial-gradient(circle at 50% 40%, transparent, var(--shadow));place-content:center;justify-items:center;gap:12px;display:grid;position:absolute;inset:0;overflow:hidden}.podium-title{color:var(--gold);text-shadow:0 0 30px var(--gold-soft);margin:0;font-size:clamp(32px,7vw,56px);animation:.3s ease-out card-in}.podium-sub{color:var(--text-2);margin:0}.stands{align-items:flex-end;gap:18px;display:flex}.stand{justify-items:center;gap:6px;width:clamp(110px,18vw,170px);animation:.4s ease-out backwards card-in;display:grid}.stand-1{animation-delay:.3s}.stand-3{animation-delay:.15s}.podium-warlock{aspect-ratio:1;width:100%}.stand-block{width:100%;color:var(--gold);background:var(--panel);border:1px solid var(--gold-border);border-radius:10px 10px 0 0;place-items:center;font-size:36px;display:grid}.stand-1 .stand-block{height:120px}.stand-2 .stand-block{height:84px}.stand-3 .stand-block{height:60px}.stand-points{color:var(--text-2);font-size:14px}.confetti{position:absolute;inset:0}.confetti i{width:8px;height:14px;animation:confetti-fall 3.2s linear var(--delay) infinite;border-radius:2px;position:absolute;top:-20px}@keyframes confetti-fall{to{transform:translate(var(--drift), 110vh) rotate(var(--spin))}}.spell-icon{-webkit-user-select:none;user-select:none;border-radius:12px;width:100%;height:100%;display:block}.spell-icon.big{width:56px;height:56px}.spell-icon.tiny{border-radius:4px;width:18px;height:18px}.pips{gap:3px;display:flex}.pips i{border:1px solid var(--gold);border-radius:50%;width:6px;height:6px}.pips i.on{background:var(--gold)}#hud>.spell-bar{pointer-events:none;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}#hud>.spell-bar[hidden]{display:none}.spell-slot{background:var(--panel);border:1px solid var(--gold-border);border-radius:12px;width:56px;height:56px;position:relative;overflow:hidden}.spell-slot.empty{opacity:.45}.spell-slot:after{content:"";background:conic-gradient(var(--shadow) calc(var(--cd,0) * 360deg), transparent 0);pointer-events:none;position:absolute;inset:0}.spell-slot.cooling .spell-icon{filter:saturate(.4)brightness(.7)}.spell-key{z-index:1;text-shadow:0 1px 3px var(--void);font-size:11px;font-weight:600;position:absolute;top:2px;left:4px}.spell-seconds{z-index:1;font-variant-numeric:tabular-nums;text-shadow:0 1px 4px var(--void);place-items:center;font-size:20px;font-weight:600;display:grid;position:absolute;inset:0}.spell-slot .pips{z-index:1;position:absolute;bottom:3px;right:4px}.spell-slot .pips i{width:5px;height:5px}.spell-slot:before{content:"";z-index:2;background:linear-gradient(110deg, transparent 35%, var(--gold-soft) 50%, transparent 65%);pointer-events:none;position:absolute;inset:0;transform:translate(-100%)}.spell-slot[data-shine=a]:before{animation:.42s ease-out shine-a}.spell-slot[data-shine=b]:before{animation:.42s ease-out shine-b}@keyframes shine-a{to{transform:translate(100%)}}@keyframes shine-b{to{transform:translate(100%)}}.spell-hint{color:var(--text-2);background:var(--panel);border-radius:6px;align-self:center;margin-left:6px;padding:4px 8px;font-size:14px}#hud>.shop{background:linear-gradient(var(--panel), var(--shadow));grid-template-rows:auto 1fr auto;gap:16px;padding:24px clamp(16px,4vw,48px);animation:.2s ease-out card-in;display:grid;position:absolute;inset:0;overflow:auto}#hud>.shop[hidden]{display:none}.shop-head{justify-content:space-between;align-items:flex-start;gap:16px;padding-right:52px;display:flex}.shop-title{color:var(--gold);margin:0;font-size:clamp(28px,5vw,44px)}.shop-sub{color:var(--text-2);margin:4px 0 0}.shop-gold{font-variant-numeric:tabular-nums;color:var(--gold);padding:10px 16px;font-size:22px;font-weight:600}.shop-gold[data-bump=a]{animation:.3s ease-out bump-a}.shop-gold[data-bump=b]{animation:.3s ease-out bump-b}@keyframes bump-a{40%{transform:scale(1.12)}}@keyframes bump-b{40%{transform:scale(1.12)}}.shop-body{grid-template-columns:1fr min(300px,32vw);align-items:start;gap:16px;min-height:0;display:grid}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.shop-card{outline:none;grid-template-columns:56px 1fr;grid-template-areas:"icon name""icon pips""desc desc""row row";gap:4px 12px;padding:12px;transition:border-color .15s ease-out,transform .15s ease-out;display:grid}.shop-card:hover,.shop-card:focus-visible,.shop-card.inspected{border-color:var(--gold)}.shop-card.owned{background:linear-gradient(var(--gold-soft), var(--panel))}.shop-card.locked .spell-icon{filter:grayscale(.8)brightness(.6)}.shop-card .spell-icon{grid-area:icon}.card-name{grid-area:name;align-self:end;margin:0;font-size:16px}.shop-card .pips{grid-area:pips}.card-desc{color:var(--text-2);grid-area:desc;margin:4px 0;font-size:14px;line-height:1.35}.card-row{grid-area:row;align-items:center;gap:8px;display:flex}.card-action{flex:1;padding:8px 10px;font-size:14px}.card-sell{padding:4px;font-size:14px}.shop-details{justify-items:start;gap:8px;padding:16px;display:grid;position:sticky;top:0}.shop-details>*{grid-area:auto}.shop-details[hidden]{display:none}.stats{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.stats th{color:var(--gold);text-align:right;font-weight:600}.stats td{text-align:right;padding:3px 0}.stats td:first-child{text-align:left;color:var(--text-2)}.spell-icon.animated[data-glyph=orb],.spell-icon.animated[data-glyph=arrowhead]{animation:1.1s ease-in-out infinite icon-fly}.spell-icon.animated[data-glyph=bolt]{animation:.9s step-end infinite icon-flicker}.spell-icon.animated[data-glyph=streak]{animation:.8s ease-in infinite icon-dash}.spell-icon.animated[data-glyph=burst]{animation:1.2s ease-in-out infinite icon-blink}.spell-icon.animated[data-glyph=hexagon]{animation:1.2s ease-in-out infinite icon-pulse}@keyframes icon-fly{50%{transform:translate(6px,-4px)rotate(4deg)}}@keyframes icon-flicker{0%,60%{opacity:1}70%{opacity:.4}80%{opacity:1}90%{opacity:.5}}@keyframes icon-dash{70%{transform:translate(8px)scaleX(1.15)}}@keyframes icon-blink{45%{opacity:.2;transform:scale(.7)}55%{opacity:.2;transform:translate(6px)scale(.7)}}@keyframes icon-pulse{50%{opacity:.8;transform:scale(1.08)}}.shop-foot{justify-content:space-between;align-items:center;gap:16px;display:flex}.shop-slots{gap:8px;display:flex}.shop-slot{border:1px solid var(--gold-border);background:var(--panel);border-radius:10px;width:48px;height:48px;position:relative}.shop-slot.empty{opacity:.5}.shop-ready{justify-content:center;align-items:center;gap:10px;min-width:160px;display:flex}.shop-ready[aria-pressed=true]{background:var(--lava-hot)}.shop-timer{font-variant-numeric:tabular-nums;background:radial-gradient(var(--gold) 58%, transparent 60%), conic-gradient(var(--void) calc(var(--t,1) * 360deg), var(--gold-soft) 0);border-radius:50%;place-items:center;width:32px;height:32px;font-size:13px;display:grid}@media (width<=720px){.shop-body{grid-template-columns:1fr}.shop-details{display:none}}@media (prefers-reduced-motion:reduce){*{transition-duration:1ms!important}.spell-icon.animated,.spell-slot:before,.shop-gold{animation:none!important}}
