html,body{touch-action:pan-x pan-y;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;background:#000;width:100%;height:100%;margin:0;padding:0;overflow:hidden}:where(body *){touch-action:manipulation}body{position:relative;overflow:clip}input,textarea,[contenteditable]:not([contenteditable=false]){-webkit-touch-callout:default}:root{--zc-hud-gap-top:var(--zc-vv-gap-top,0px);--zc-hud-gap-right:var(--zc-vv-gap-right,0px);--zc-hud-gap-bottom:var(--zc-vv-gap-bottom,0px);--zc-hud-gap-left:var(--zc-vv-gap-left,0px);--zc-safe-beyond-top:max(0px, calc(env(safe-area-inset-top,0px) - var(--zc-hud-gap-top)));--zc-safe-beyond-right:max(0px, calc(env(safe-area-inset-right,0px) - var(--zc-hud-gap-right) - var(--zc-vv-outside-x,0px)));--zc-safe-beyond-bottom:max(0px, calc(env(safe-area-inset-bottom,0px) - var(--zc-hud-gap-bottom)));--zc-safe-beyond-left:max(0px, calc(env(safe-area-inset-left,0px) - var(--zc-hud-gap-left) - var(--zc-vv-outside-x,0px)));--zc-safe-top:calc(var(--zc-hud-gap-top) + var(--zc-safe-beyond-top));--zc-safe-right:calc(var(--zc-hud-gap-right) + var(--zc-safe-beyond-right));--zc-safe-bottom:calc(var(--zc-hud-gap-bottom) + var(--zc-safe-beyond-bottom));--zc-safe-left:calc(var(--zc-hud-gap-left) + var(--zc-safe-beyond-left))}:root:has(:is(input,textarea,[contenteditable]):focus){--zc-hud-gap-bottom:0px}#game-container{width:100vw;height:100vh;justify-content:center;align-items:center;height:100dvh;display:flex;position:fixed;inset:0;overflow:hidden}canvas{touch-action:none;image-rendering:-webkit-optimize-contrast;image-rendering:-moz-crisp-edges;image-rendering:-o-crisp-edges;image-rendering:crisp-edges;image-rendering:pixelated;display:block}.overhead-layer{z-index:100;pointer-events:none;will-change:transform;width:0;height:0;position:absolute;top:0;left:0}.character-nametag.npc-nametag{box-shadow:none;color:var(--npc-name-color,#ffeb04);background-color:#0000;border:0;padding:0}.character-nametag{transform-origin:50% 100%;z-index:100;color:var(--zc-ink-strong);text-shadow:-1px -1px #000,0 -1px #000,1px -1px #000,-1px 0 #000,1px 0 #000,-1px 1px #000,0 1px #000,1px 1px #000;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;image-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#141414eb;border:1px solid #000;border-radius:3px;padding:1px 6px;font-family:Nanum Gothic,나눔고딕,Noto Sans KR,Malgun Gothic,sans-serif;font-size:12px;font-weight:700;line-height:1.2;position:absolute;top:0;left:0;transform:translate(-50%,-100%)}.character-nametag:not(.npc-nametag){box-sizing:border-box;letter-spacing:0;color:#fff;justify-content:center;align-items:center;height:18.4px;padding:1px 6px;font-family:ZCR Gothic Bold,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;font-size:12px;font-weight:400;line-height:1.2;display:flex}.character-nametag[hidden]{display:none}:root[lang=ja] .character-nametag:not(.npc-nametag){font-family:ZCR Sans JP,ZCR Gothic Bold,Hiragino Sans,Yu Gothic,Meiryo,sans-serif}.character-hp{box-sizing:border-box;transform-origin:50% 100%;z-index:101;pointer-events:none;-webkit-user-select:none;user-select:none;background:#151515;border:2px solid #000;border-radius:2px;width:52px;height:8px;position:absolute;top:0;left:0;overflow:hidden;transform:translate(-50%,-100%)}.character-hp-fill{background:red;width:100%;height:100%;transition:width .12s ease-out}.character-speech{box-sizing:border-box;z-index:200;letter-spacing:0;color:#000;white-space:pre;text-align:center;border-style:solid;border-width:0;pointer-events:none;-webkit-user-select:none;user-select:none;border-image-source:url(/assets/ui/chat-balloon/background.png);border-image-slice:12 28 16 fill;border-image-width:7px 15px 9px;border-image-repeat:stretch;padding:2.2px 0 0;font-family:ZCR Gothic Bold,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;font-size:9.9px;font-weight:400;line-height:11.55px;position:absolute;top:0;left:0}.character-speech-line{height:1.16667em}.character-speech-line>span{text-align:left;display:inline-block}:root[lang=ja] .character-speech{font-family:ZCR Sans JP,ZCR Gothic Bold,Hiragino Sans,Yu Gothic,Meiryo,sans-serif}:root[lang=ja] .character-speech-line{height:1.44444em}.character-speech:after{content:"";left:var(--speech-tail-left,50%);bottom:var(--speech-tail-drop,-6px);width:var(--speech-tail-size,10px);height:var(--speech-tail-size,10px);background:url(/assets/ui/chat-balloon/tail.png) 0 0/100% 100% no-repeat;position:absolute}.character-nametag.character-mine{z-index:300}.character-hp.character-mine{z-index:301}.character-speech.character-mine{z-index:400}:root{--ctrl-unit:150px;--ctrl-band:max(calc(var(--zc-safe-bottom,env(safe-area-inset-bottom,0px)) + var(--ctrl-unit) * (151 + var(--dpad-dy,0) + 100 * var(--dpad-scale,1)) / 196), calc(var(--zc-safe-bottom,env(safe-area-inset-bottom,0px)) + var(--ctrl-unit) * (210 + var(--action-dy,0) + 38.16 * var(--action-scale,1)) / 196), var(--npc-talk-band,0px));--ctrl-side:max(calc(var(--zc-safe-left,env(safe-area-inset-left,0px)) + var(--ctrl-unit) * (164.67 + var(--dpad-dx,0) + 98 * var(--dpad-scale,1)) / 196), calc(var(--zc-safe-right,env(safe-area-inset-right,0px)) + var(--ctrl-unit) * (203.26 + 53) / 196))}:root:has(#npc-talk:not([hidden])){--npc-talk-band:calc(var(--zc-safe-bottom,env(safe-area-inset-bottom,0px)) + var(--ctrl-unit) * (116.43 + var(--skill0-dy,0) + (118 + 53 + 22.4) * var(--skill0-scale,1)) / 196 + 8px * var(--skill0-scale,1))}#dpad{left:calc(var(--zc-safe-left,env(safe-area-inset-left,0px)) + var(--ctrl-unit) * 164.67 / 196);bottom:calc(var(--zc-safe-bottom,env(safe-area-inset-bottom,0px)) + var(--ctrl-unit) * 151 / 196);transform:translate(calc(-50% + var(--ctrl-unit) * var(--dpad-dx,0) / 196), calc(50% - var(--ctrl-unit) * var(--dpad-dy,0) / 196)) scale(var(--dpad-scale,1));width:var(--ctrl-unit);height:calc(var(--ctrl-unit) * 200 / 196);opacity:.8;z-index:880;touch-action:none;-webkit-user-select:none;user-select:none;background:url(/assets/ui/dpad-base.png) 50%/100% 100% no-repeat;grid-template-rows:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr;display:grid;position:fixed}.dpad-btn{appearance:none;color:#0000;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;font-size:0}#dpad-up{grid-area:1/2}#dpad-left{grid-area:2/1}#dpad-right{grid-area:2/3}#dpad-down{grid-area:3/2}#dpad[data-dir=up]{background-image:url(/assets/ui/dpad-up.png)}#dpad[data-dir=down]{background-image:url(/assets/ui/dpad-down.png)}#dpad[data-dir=left]{background-image:url(/assets/ui/dpad-left.png)}#dpad[data-dir=right]{background-image:url(/assets/ui/dpad-right.png)}#skill-bar{right:var(--zc-safe-right,env(safe-area-inset-right,0px));bottom:var(--zc-safe-bottom,env(safe-area-inset-bottom,0px));z-index:880;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;width:0;height:0;position:fixed}#skill-bar[hidden]{display:none}.skill-btn{appearance:none;cursor:pointer;pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;width:calc(var(--ctrl-unit) * 106 / 196 * var(--slot-scale));height:calc(var(--ctrl-unit) * 106 / 196 * var(--slot-scale));transform:translate(calc(50% + var(--ctrl-unit) * var(--slot-dx,0) / 196), calc(50% - var(--ctrl-unit) * var(--slot-dy,0) / 196)) scale(var(--slot-user-scale,1));background:0 0;border:0;border-radius:50%;padding:0;position:absolute}.skill-btn:disabled{cursor:default;opacity:.45}.skill-btn:focus-visible{outline:2px solid var(--zc-gold);outline-offset:2px}#skill-0,#npc-talk{--slot-scale:1;--slot-dx:var(--skill0-dx,0);--slot-dy:var(--skill0-dy,0);--slot-user-scale:var(--skill0-scale,1);right:calc(var(--ctrl-unit) * 203.26 / 196);bottom:calc(var(--ctrl-unit) * 116.43 / 196)}#npc-talk{bottom:calc(var(--ctrl-unit) * (116.43 + 118 * var(--skill0-scale,1)) / 196)}#npc-talk[hidden]{display:none}.npc-talk-symbol{pointer-events:none;width:64%;height:56%;position:absolute;top:22%;left:18%}.npc-talk-target{background-color:var(--zc-panel);max-width:160px;color:var(--zc-ink-bright);font:600 calc(var(--ctrl-unit) * 16 / 196) / 1.4 var(--zc-font);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;border-radius:4px;padding:2px 6px;position:absolute;bottom:calc(100% + 4px);left:50%;overflow:hidden;transform:translate(-50%)}#skill-1{--slot-scale:.9;--slot-dx:var(--skill1-dx,0);--slot-dy:var(--skill1-dy,0);--slot-user-scale:var(--skill1-scale,1);right:calc(var(--ctrl-unit) * 82.21 / 196);bottom:calc(var(--ctrl-unit) * 116 / 196)}#skill-2{--slot-scale:.72;--slot-dx:var(--action-dx,0);--slot-dy:var(--action-dy,0);--slot-user-scale:var(--action-scale,1);right:calc(var(--ctrl-unit) * 55 / 196);bottom:calc(var(--ctrl-unit) * 210 / 196)}.skill-icon{background:url(/assets/ui/skill-bg.png) 50%/100% 100% no-repeat;width:88.6792%;height:88.6792%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.skill-emblem{width:calc(var(--ctrl-unit) * var(--emblem-w,48) / 196 * var(--slot-scale));height:calc(var(--ctrl-unit) * var(--emblem-h,48) / 196 * var(--slot-scale));background-position:50%;background-repeat:no-repeat;background-size:100% 100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.skill-gauge-back,.skill-gauge{background-position:50%;background-repeat:no-repeat;background-size:100% 100%;position:absolute;inset:0}.skill-gauge-back{background-image:url(/assets/ui/skill-gauge-back.png)}.skill-gauge{--skill-fill:1turn;-webkit-mask-image:conic-gradient(from 180deg, #000 var(--skill-fill), transparent 0);-webkit-mask-image:conic-gradient(from 180deg, #000 var(--skill-fill), transparent 0);mask-image:conic-gradient(from 180deg, #000 var(--skill-fill), transparent 0);background-image:url(/assets/ui/skill-gauge.png)}.skill-btn:active .skill-icon,.skill-btn.pressed .skill-icon{background-image:url(/assets/ui/skill-bg-pressed.png)}#action-menu{box-sizing:border-box;right:calc(var(--zc-safe-right,env(safe-area-inset-right,0px)) + var(--ctrl-unit) * 20 / 196);bottom:calc(var(--zc-safe-bottom,env(safe-area-inset-bottom,0px)) + var(--ctrl-unit) * 265 / 196);width:calc(var(--ctrl-unit) * 170 / 196);max-height:min(calc(var(--ctrl-unit) * 400 / 196), calc(var(--zc-vv-height,100%) + var(--zc-vv-gap-bottom,0px) - var(--zc-safe-bottom,env(safe-area-inset-bottom,0px)) - var(--ctrl-unit) * 265 / 196 - 12px));overscroll-behavior:contain;z-index:950;touch-action:pan-y;-webkit-overflow-scrolling:touch;border-style:solid;border-width:10px;border-image:url(/assets/ui/action-list-bg.png) 10 fill;flex-direction:column;gap:2px;padding:8px;display:flex;position:fixed;overflow-y:auto}#action-menu[hidden]{display:none}.action-menu-item{appearance:none;color:#fff;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:4px;padding:7px 8px;font-family:Nanum Gothic,ui-sans-serif,system-ui,sans-serif;font-size:14px;font-weight:700}.action-menu-item:hover,.action-menu-item:focus-visible{background:#ffffff29}.action-menu-item:active{background:#ffffff47}.action-menu-empty{color:#ffffffb8;margin:0;padding:8px;font-family:Nanum Gothic,ui-sans-serif,system-ui,sans-serif;font-size:13px}body.controller-settings-open #dpad,body.controller-settings-open #skill-bar{pointer-events:none}#game-timer{top:calc(var(--zc-hud-gap-top,0px) + max(12px, var(--zc-safe-beyond-top,env(safe-area-inset-top,0px))));left:calc(var(--zc-vv-left,0px) + var(--zc-vv-width,100%) / 2);z-index:950;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:.5px;background:#14141ed9;border:1px solid #fff3;border-radius:14px;padding:5.5px 14px 1.5px;font-family:Nanum Gothic,ui-sans-serif,system-ui,sans-serif;font-size:18px;font-weight:800;line-height:1.2;position:fixed;transform:translate(-50%);box-shadow:0 2px 8px #0006}#game-timer:not([hidden]){flex-direction:column;align-items:center;gap:2px;display:flex}#game-timer-elapsed{text-align:center;flex-direction:column;align-items:center;gap:3px;display:flex}.game-timer-label{color:#ffffff80;letter-spacing:0;white-space:nowrap;font-size:9px;font-weight:700;line-height:9.65px}.game-timer-time{white-space:nowrap;line-height:1}#game-timer[data-lines="2"]{padding-bottom:5.5px}#game-timer[data-lines="2"] #game-timer-remaining{margin-left:0;font-size:13px}#game-timer-remaining{color:#fb7;margin-left:6px;font-size:13px;font-weight:700}#game-timer.urgent{animation:.6s ease-in-out infinite timer-pulse}@keyframes timer-pulse{0%,to{background:#a01e1eeb}50%{background:#dc5050eb}}@media (max-width:600px){:root{--ctrl-unit:116px}#game-timer{padding:4px 10px;font-size:13px}.game-timer-label{font-size:7px;line-height:7.5px}#game-timer-elapsed{gap:2px}#game-timer-remaining{margin-left:4px;font-size:11px}}@media (pointer:coarse) and (min-width:601px) and (min-height:481px){:root{--ctrl-unit:max(150px, var(--zc-ctrl-unit-original,150px))}}@media (pointer:coarse) and (max-height:480px){:root{--ctrl-unit:min(150px, calc(var(--zc-vv-height,390px) * 196 / 576))}}body.td-mode #dpad,body.td-mode #skill-bar,body.dialogue-open #dpad,body.dialogue-open #skill-bar,body.dialogue-open #action-menu,body.cutscene-open #dpad,body.cutscene-open #skill-bar,body.cutscene-open #action-menu{display:none!important}#map-entry-fade{z-index:2900;opacity:1;transition:opacity var(--map-entry-fade-duration,.18s) linear;background:#000;position:fixed;inset:0}#map-entry-fade[data-state=revealing]{opacity:0}#lobby-panel{top:calc(var(--zc-hud-gap-top,0px) + max(12px, var(--zc-safe-beyond-top,env(safe-area-inset-top,0px))));right:calc(var(--zc-hud-gap-right,0px) + max(12px, var(--zc-safe-beyond-right,env(safe-area-inset-right,0px))));z-index:900;font-family:var(--zc-font);background:var(--zc-popup);border:1px solid var(--zc-line);width:260px;box-shadow:var(--zc-shadow);border-radius:var(--zc-r);flex-direction:column;align-items:stretch;gap:6px;padding:10px;display:flex;position:fixed}.auth-brand{display:none}body.dialogue-open #lobby-panel,body.dialogue-open #room-hud,body.dialogue-open #inventory-hotbar,body.cutscene-open #lobby-panel,body.cutscene-open #room-hud,body.cutscene-open #inventory-hotbar,body.cutscene-open #room-minimap,body.cutscene-open #game-timer,body.cutscene-open #event-ui-layer,body.cutscene-open #npc-talk,body.auth-gate-open #dpad,body.auth-gate-open #skill-bar,body.auth-gate-open #game-timer,body.auth-gate-open #action-menu,body.auth-gate-open #map-entry-fade,body.auth-gate-open .character-nametag,body.auth-gate-open .character-speech{display:none!important}body.auth-gate-open #lobby-panel{box-sizing:border-box;width:auto;max-width:none;max-height:none;padding:calc(var(--zc-hud-gap-top,0px) + max(24px, var(--zc-safe-beyond-top,env(safe-area-inset-top,0px)))) calc(var(--zc-hud-gap-right,0px) + max(18px, var(--zc-safe-beyond-right,env(safe-area-inset-right,0px)))) calc(var(--zc-hud-gap-bottom,0px) + max(24px, var(--zc-safe-beyond-bottom,env(safe-area-inset-bottom,0px)))) calc(var(--zc-hud-gap-left,0px) + max(18px, var(--zc-safe-beyond-left,env(safe-area-inset-left,0px))));overscroll-behavior:contain;background:var(--zc-scrim);-webkit-backdrop-filter:none;box-shadow:none;border:0;border-radius:0;place-items:safe center;display:grid;inset:0;overflow-y:auto}body.auth-gate-open #lobby-status,body.auth-gate-open #lobby-buttons{display:none}body.auth-gate-open #auth-panel{box-sizing:border-box;background:var(--zc-deco-panel), var(--zc-popup);border:1px solid var(--zc-line);border-radius:var(--zc-r-lg);width:min(390px,100vw - 36px);box-shadow:var(--zc-shadow-lg);gap:14px;padding:30px 28px 26px}body.auth-gate-open .auth-brand{text-align:center;flex-direction:column;align-items:center;margin-bottom:4px;display:flex}.auth-brand-badge{min-height:22px;color:var(--zc-ink-strong);font-size:var(--zc-text-xs);letter-spacing:.18em;text-indent:.18em;isolation:isolate;text-shadow:var(--zc-cta-text-shadow);background:0 0;align-items:center;margin-bottom:10px;padding:0 11px;font-weight:800;display:inline-flex;position:relative}.auth-brand-badge:before{content:"";z-index:-1;border:2px solid var(--zc-edge-light);border-radius:var(--zc-r-pill);background:var(--zc-red);position:absolute;inset:0}.auth-brand h1{color:var(--zc-ink-strong);letter-spacing:-.055em;margin:0;font-size:clamp(27px,7vw,34px);line-height:1.2}.auth-brand p{color:var(--zc-ink-dim);font-family:var(--zc-font-detail);font-size:var(--zc-text-sm);margin:9px 0 0;line-height:1.5}body.auth-gate-open #auth-form{gap:8px}body.auth-gate-open #auth-panel label{color:var(--zc-ink);font-size:var(--zc-text-sm);margin-top:3px}body.auth-gate-open #auth-form input{border-color:var(--zc-line-soft);border-radius:var(--zc-r-sm);background:var(--zc-input-bg);font-size:var(--zc-text-md);-webkit-user-select:text;user-select:text;padding:11px 12px}body.auth-gate-open #auth-form input:focus{border-color:var(--zc-gold);box-shadow:0 0 0 2px #d3aa3b38}.auth-remember{font-size:var(--zc-text-sm);color:var(--zc-ink);cursor:pointer;align-items:center;gap:6px;display:flex}body.auth-gate-open .auth-remember{margin:2px 0 6px}.auth-remember input,body.auth-gate-open #auth-form .auth-remember input{width:16px;height:16px;accent-color:var(--zc-gold);margin:0}body.auth-gate-open .auth-actions{gap:8px;margin-top:8px}body.auth-gate-open #auth-panel button{border-radius:var(--zc-r);min-height:42px;font-size:var(--zc-text);padding:8px 12px}body.auth-gate-open #auth-login{background:var(--zc-red);border-color:var(--zc-edge-light);box-shadow:inset 0 2px 0 var(--zc-red-shade), inset 0 -2px 0 var(--zc-red-shade);text-shadow:var(--zc-cta-text-shadow);color:var(--zc-ink-strong)}body.auth-gate-open #auth-login:hover{filter:brightness(1.12)}body.auth-gate-open #auth-register{background:var(--zc-popup)}body.auth-gate-open #auth-panel .auth-exit-maker{background:var(--zc-popup);width:100%;margin-top:12px}body.auth-gate-open #auth-panel .auth-exit-maker[hidden]{display:none}body.auth-gate-open #auth-panel .auth-link{min-height:0;box-shadow:none;color:var(--zc-ink-dim);font-size:var(--zc-text-sm);cursor:pointer;background:0 0;border:none;margin:6px auto 0;padding:2px 4px;font-weight:400;text-decoration:underline}body.auth-gate-open #auth-panel .auth-link:hover{color:var(--zc-ink-bright)}body.auth-gate-open #auth-panel .auth-links{flex-wrap:wrap;justify-content:center;gap:4px 16px;margin-top:6px;display:flex}body.auth-gate-open #auth-panel .auth-links .auth-link{margin:0}@media (pointer:coarse){body.auth-gate-open #auth-panel .auth-link,body.auth-gate-open #auth-panel .auth-remember{position:relative}body.auth-gate-open #auth-panel .auth-link:after,body.auth-gate-open #auth-panel .auth-remember:after{content:"";height:max(100%, calc(36px / var(--auth-panel-zoom,1)));position:absolute;top:50%;left:-8px;right:-8px;transform:translateY(-50%)}body.auth-gate-open #auth-panel .auth-remember:after{left:0;right:0}body.auth-gate-open #auth-form>input,body.auth-gate-open #auth-form .password-reveal,body.auth-gate-open #auth-panel .auth-actions>button,body.auth-gate-open #auth-panel .auth-profile-actions>button,body.auth-gate-open #auth-panel .auth-exit-maker{z-index:1;position:relative}}body.auth-gate-open #auth-loading,body.auth-gate-open #auth-message{min-height:15px;color:var(--zc-ink-dim);font-size:var(--zc-text-xs);text-align:center}body.auth-gate-open #auth-message[data-tone=error]{color:var(--zc-red-ink)}body.auth-gate-open #auth-message[data-tone=ok]{color:var(--zc-gold)}#lobby-status{color:var(--zc-ink);font-size:var(--zc-text-sm);align-items:center;gap:6px;padding:2px 4px;font-weight:700;display:flex}#lobby-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}#lobby-status-dot.offline{background:var(--zc-ink-dim)}#lobby-status-dot.connecting{background:var(--zc-gold);animation:1s ease-in-out infinite lobby-pulse}#lobby-status-dot.ready,#lobby-status-dot.online{background:var(--zc-gold)}body.in-room #lobby-panel{display:none!important}#room-hud{top:calc(var(--zc-hud-gap-top,0px) + max(12px, var(--zc-safe-beyond-top,env(safe-area-inset-top,0px))));right:calc(var(--zc-hud-gap-right,0px) + max(12px, var(--zc-safe-beyond-right,env(safe-area-inset-right,0px))));z-index:900;font-family:var(--zc-font);background:var(--zc-popup);border:1px solid var(--zc-line);border-radius:var(--zc-r);min-width:160px;box-shadow:var(--zc-shadow);grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:10px;display:none;position:fixed}#room-hud:not([hidden]){display:grid}#room-hud-toggle{flex:none;grid-area:1/2;align-self:center;width:44px;min-height:44px;padding:0;display:flex}.room-hud-toggle-mark{background:linear-gradient(var(--zc-ink), var(--zc-ink)) left top / 100% 2px no-repeat, linear-gradient(var(--zc-ink), var(--zc-ink)) left center / 100% 2px no-repeat, linear-gradient(var(--zc-ink), var(--zc-ink)) left bottom / 100% 2px no-repeat;width:18px;height:12px}#room-hud[data-menu=open] #room-hud-toggle{background:0 0;border-color:#0000;width:28px;min-height:28px}#room-hud[data-menu=open] #room-hud-toggle:is(:hover,:focus-visible){border-color:var(--zc-line);background:var(--zc-btn-press)}#room-hud-status{min-width:0;color:var(--zc-ink);font-size:var(--zc-text-sm);grid-area:1/1;align-items:center;gap:6px;font-weight:700;display:flex}#room-hud-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#room-hud-occupancy{font-size:var(--zc-text-xs);color:var(--zc-ink-bright);grid-column:1/-1;align-items:baseline;gap:2px;padding:2px 0;font-weight:700;display:flex}.room-hud-code{color:var(--zc-ink-dim);font-family:var(--zc-font-mono);font-size:var(--zc-text-xs);letter-spacing:.06em;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0 2px}.room-hud-code:is(:hover,:focus-visible){color:var(--zc-gold)}#room-hud-occupancy-max,.room-hud-occupancy-suffix{color:var(--zc-ink-dim);font-weight:400}.room-hud-btn-settings{color:var(--zc-ink)}#room-hud-actions{flex-direction:column;grid-column:1/-1;gap:4px;margin-top:2px;display:flex;container-type:inline-size}.room-hud-btn{white-space:nowrap;min-width:0;font-size:var(--hud-btn-font,var(--zc-text));border:1px solid var(--zc-line);border-radius:var(--zc-r-sm);background:var(--zc-popup);color:var(--zc-ink);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-family:inherit;font-weight:800;transition:filter .12s;display:flex}.room-hud-btn[hidden]{display:none}.room-hud-badge{border-radius:var(--zc-r-pill);background:var(--zc-info);min-width:16px;color:var(--zc-ink-strong);font-size:var(--zc-text-xs);text-align:center;flex:none;padding:1px 5px;font-weight:800;line-height:1.4}.room-hud-badge[hidden]{display:none}.room-hud-btn:hover{filter:brightness(1.22)}.room-hud-btn:active{background:var(--zc-btn-press)}.room-hud-btn-start{background:var(--zc-red);border-color:var(--zc-edge-light);box-shadow:inset 0 2px 0 var(--zc-red-shade), inset 0 -2px 0 var(--zc-red-shade);text-shadow:var(--zc-cta-text-shadow);color:var(--zc-ink-strong)}.room-hud-btn-start:active{filter:brightness(.88)}#btn-zombie-link{white-space:normal;text-align:left;background:var(--zc-gold);border-color:var(--zc-gold-dim);color:var(--zc-ink-on-light);flex:none;justify-content:space-between;gap:10px;margin-top:5px;padding:11px 12px}#btn-zombie-link:active{filter:brightness(.88)}#btn-zombie-link:focus-visible{outline:2px solid var(--zc-ink-strong);outline-offset:3px}.room-hud-link-copy{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.room-hud-link-benefit{color:var(--zc-ink-on-light-soft);font-size:var(--zc-text-xs);word-break:keep-all;overflow-wrap:anywhere;text-wrap:pretty;font-weight:700;line-height:1.5}.room-hud-link-action{font-size:var(--zc-text);font-weight:800;line-height:1.4}.room-hud-link-arrow{border-top:2px solid;border-right:2px solid;flex:none;width:6px;height:6px;margin-right:2px;transform:rotate(45deg)}.room-hud-btn-leave{color:var(--zc-red-ink)}#lobby-occupancy{font-size:var(--zc-text-xs);color:var(--zc-ink-bright);align-items:baseline;gap:1px;padding:2px 4px;font-weight:700;display:flex}#lobby-occupancy-max{color:var(--zc-ink-dim);font-weight:400}.lobby-occupancy-suffix{color:var(--zc-ink-dim);margin-left:2px;font-weight:400}#lobby-panel[data-mode=offline] #lobby-occupancy,#lobby-panel[data-mode=connecting] #lobby-occupancy{display:none!important}#lobby-panel[data-mode=online] #lobby-occupancy{display:flex!important}@keyframes lobby-pulse{0%,to{opacity:1}50%{opacity:.3}}#auth-panel,#auth-form,#auth-profile{flex-direction:column;gap:5px;display:flex}#auth-panel [hidden]{display:none!important}#auth-panel label{font-size:var(--zc-text-xs);color:var(--zc-ink);font-weight:700}#auth-loading,#auth-message{color:var(--zc-ink-dim);font-size:var(--zc-text-xs);line-height:1.35}#auth-message:empty{display:none}#auth-panel .auth-queue{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:8px 0 2px;display:flex}.auth-queue-title{color:var(--zc-ink-strong);font-size:var(--zc-text-md)}.auth-queue-ahead{color:var(--zc-gold);font-size:var(--zc-text-lg);overflow-wrap:anywhere;margin:0;font-weight:800}.auth-queue-eta{color:var(--zc-ink-dim);font-size:var(--zc-text-sm);margin:0}#auth-panel .auth-queue-cancel{width:100%;margin-top:8px}body.auth-gate-open #auth-panel .auth-queue-cancel{background:var(--zc-popup)}#auth-message[data-tone=ok]{color:var(--zc-gold)}#auth-message[data-tone=error]{color:var(--zc-red-ink)}#auth-form input{box-sizing:border-box;border:1px solid var(--zc-line-soft);border-radius:var(--zc-r-sm);background:var(--zc-input-bg);width:100%;color:var(--zc-input-ink);caret-color:var(--zc-input-ink);font-family:inherit;font-size:var(--zc-text-sm);padding:7px 9px}#auth-form input::placeholder{color:var(--zc-input-placeholder)}#auth-form input:focus{border-color:var(--zc-gold);outline:none}.auth-actions,.auth-profile-heading{align-items:center;gap:5px;display:flex}.auth-actions>button{flex:1}.auth-profile-heading{color:var(--zc-ink);font-size:var(--zc-text-xs);justify-content:space-between}.auth-profile-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:6px;display:flex}#auth-panel button{border:1px solid var(--zc-line);border-radius:var(--zc-r-sm);background:var(--zc-popup);color:var(--zc-ink);font-family:inherit;font-size:var(--zc-text-xs);cursor:pointer;padding:6px 9px;font-weight:800;transition:filter .12s}#auth-panel button:hover{filter:brightness(1.22)}#auth-panel button:active{background:var(--zc-btn-press)}#auth-panel button:disabled{opacity:.5;cursor:wait}#lobby-buttons{flex-direction:column;gap:6px;display:flex}.lobby-btn{border:1px solid var(--zc-line);border-radius:var(--zc-r-sm);background:var(--zc-popup);color:var(--zc-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;align-items:center;padding:9px 14px;font-family:inherit;transition:filter .12s,transform 50ms;display:flex}.lobby-btn[hidden]{display:none}.lobby-btn:hover{filter:brightness(1.22)}.lobby-btn:active{background:var(--zc-btn-press);transform:scale(.98)}.lobby-btn:disabled{opacity:.5;cursor:not-allowed}.lobby-btn-primary{background:var(--zc-red);border-color:var(--zc-edge-light);box-shadow:inset 0 2px 0 var(--zc-red-shade), inset 0 -2px 0 var(--zc-red-shade);text-shadow:var(--zc-cta-text-shadow);color:var(--zc-ink-strong)}.lobby-btn-secondary{border-color:var(--zc-gold);color:var(--zc-gold)}.lobby-btn-leave{color:var(--zc-red-ink)}.lobby-btn-start{border-color:var(--zc-gold);color:var(--zc-gold)}#lobby-wait{font-size:var(--zc-text-xs);color:var(--zc-ink);background:var(--zc-fill);border-radius:var(--zc-r-sm);text-align:center;padding:6px 8px}#room-result{z-index:1300;background:var(--zc-scrim-deep);box-sizing:border-box;font-family:var(--zc-font);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.room-result-card{background:var(--zc-popup);color:var(--zc-ink);border:1px solid var(--zc-line);text-align:center;box-sizing:border-box;border-radius:16px;flex-direction:column;align-items:stretch;gap:18px;width:100%;min-width:0;max-width:440px;max-height:100%;padding:24px;display:flex;overflow-y:auto;box-shadow:0 24px 80px #00000080,inset 0 1px #ffffff0a}.room-result-title{font-size:var(--zc-text-xl);color:var(--zc-gold);text-shadow:0 2px #00000073;overflow-wrap:anywhere;margin:0;font-weight:800;line-height:1.3}#room-result[data-outcome=lose] .room-result-title,#room-result[data-outcome=gameover] .room-result-title{color:var(--zc-red-ink)}#room-result[data-outcome=draw] .room-result-title{color:var(--zc-ink-dim)}.room-result-body{font-size:var(--zc-text-md);overflow-wrap:anywhere}#room-result-name{color:var(--zc-gold);font-weight:800}.room-result-ranking{flex-direction:column;flex-shrink:0;gap:6px;width:100%;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.room-result-row{background:var(--zc-panel);font-size:var(--zc-text-md);text-align:left;border-radius:8px;flex-shrink:0;grid-template-columns:28px minmax(0,1fr) minmax(0,auto);align-items:center;gap:8px;padding:10px 12px;display:grid}.room-result-row[data-local=true]{box-shadow:inset 0 0 0 1px var(--zc-gold);background:#d3aa3b24;font-weight:800}.room-result-rank{color:var(--zc-gold);text-align:center;font-weight:800}.room-result-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.room-result-status{font-size:var(--zc-text-sm);color:var(--zc-ink-dim);overflow-wrap:anywhere}.room-result-time{font-size:var(--zc-text-sm);font-variant-numeric:tabular-nums;color:var(--zc-ink-strong);white-space:nowrap}.room-result-row:has(>.room-result-time){grid-template-columns:28px minmax(0,1fr) minmax(0,auto) auto}.room-result-clear-time{font-size:var(--zc-text-md);font-variant-numeric:tabular-nums;color:var(--zc-gold);font-weight:800}.room-result-row.room-result-winner{box-sizing:border-box;background:radial-gradient(ellipse at 12% 80%, #d3aa3b29, transparent 65%), var(--zc-panel);border:1px solid #d3aa3b80;border-radius:12px;grid-template-columns:auto minmax(0,1fr);gap:20px;min-height:130px;padding:14px 20px}.room-result-winner-details{flex-direction:column;grid-column:-2/-1;align-items:flex-start;gap:8px;min-width:0;display:flex}.room-result-winner .room-result-rank{font-size:var(--zc-text-sm);background:#d3aa3b1f;border:1px solid #d3aa3b59;border-radius:20px;padding:3px 10px}.room-result-winner .room-result-name{max-width:100%;font-size:var(--zc-text-lg);color:var(--zc-ink-strong);font-weight:800}.room-result-portrait{place-items:center;width:88px;height:104px;display:grid;position:relative}.room-result-portrait:before{content:"";background:#d3aa3b1f;border:1px solid #d3aa3b4d;border-radius:50%;width:80px;height:20px;position:absolute;bottom:0}.room-result-portrait .atlas-frame-preview{z-index:1;width:100%;height:100%;position:absolute;inset:0}.room-result-portrait canvas{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;filter:drop-shadow(0 4px #0003);display:block}.room-result-actions{border-top:1px solid var(--zc-line-soft);flex-direction:column;flex-shrink:0;gap:8px;width:100%;padding-top:16px;display:flex}.room-result-action-row:not([hidden]){grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;display:grid}.room-result-primary:has(#room-result-lobby:not([hidden])){grid-template-columns:minmax(0,1fr) 96px}.room-result-footer:not([hidden]){justify-content:flex-end;margin-top:2px;display:flex}#room-result button{background:var(--zc-popup);color:var(--zc-ink);border:1px solid var(--zc-line);border-radius:var(--zc-r);white-space:nowrap;min-width:0;min-height:44px;font-family:inherit;font-size:var(--zc-text);cursor:pointer;padding:10px 12px;font-weight:800;transition:filter .12s}#room-result button:hover{filter:brightness(1.22)}#room-result button:focus-visible{outline:2px solid var(--zc-gold);outline-offset:3px}#room-result button:active{background:var(--zc-btn-press)}#room-result #room-result-lobby{background:var(--zc-red);border-color:var(--zc-edge-light);box-shadow:inset 0 2px 0 var(--zc-red-shade), inset 0 -2px 0 var(--zc-red-shade);text-shadow:var(--zc-cta-text-shadow);color:var(--zc-ink-strong)}#room-result #room-result-rate{color:var(--zc-gold)}#room-result #room-result-report{min-height:32px;font-size:var(--zc-text-sm);color:var(--zc-ink-dim);background:0 0;border-color:#0000;padding:4px 8px;font-weight:500}@media (max-width:380px){#room-result{padding:12px}.room-result-card{gap:14px;padding:18px 14px}.room-result-row.room-result-winner{gap:12px;padding:12px}.room-result-primary:has(#room-result-lobby:not([hidden])){grid-template-columns:minmax(0,1fr) 72px}#room-result button{font-size:var(--zc-text-sm);padding-inline:8px}}@media (max-height:440px){#room-result{align-items:flex-start;padding-block:10px}.room-result-card{gap:12px;padding:16px}}.lobby-btn-title{font-size:var(--zc-text);font-weight:700;line-height:1.1}.lobby-btn-sub{font-size:var(--zc-text-xs);opacity:.7;margin-top:2px;font-weight:400}body.editor-test-mode #lobby-panel,body.in-editor #lobby-panel,body.in-editor #dpad,body.in-editor #skill-bar,body.in-editor #game-timer,#game-timer[hidden],#lobby-panel[data-mode=connecting]~#room-hud #btn-leave{display:none!important}#lobby-panel[data-mode=connecting] #lobby-buttons .lobby-btn{pointer-events:none;opacity:.5}@media (max-width:600px){#lobby-panel{width:min(300px,100vw - 24px);min-width:0;max-width:none;max-height:calc(100vh - 24px);border-radius:var(--zc-r-sm);gap:4px;max-height:calc(100dvh - 24px);padding:6px 7px;overflow-y:auto}#lobby-status{font-size:var(--zc-text-xs);gap:4px;padding:1px 2px}#lobby-status-dot{width:6px;height:6px}#lobby-occupancy{font-size:var(--zc-text-xs);padding:1px 2px}#auth-panel label,#auth-loading,#auth-message{font-size:var(--zc-text-xs)}#auth-form input{font-size:var(--zc-text-xs);border-radius:var(--zc-r-sm);padding:4px 6px}#lobby-buttons{gap:4px}.lobby-btn{border-radius:var(--zc-r-sm);padding:5px 8px}.lobby-btn-title{font-size:var(--zc-text-xs)}.lobby-btn-sub{font-size:var(--zc-text-xs);margin-top:1px}#room-hud{border-radius:var(--zc-r-sm);gap:4px;min-width:min(160px,100vw - 24px);max-width:42vw;padding:6px 7px}#room-hud-status{font-size:var(--zc-text-xs);gap:4px}#room-hud-occupancy{font-size:var(--zc-text-xs)}.room-hud-btn{font-size:var(--zc-text-xs);border-radius:var(--zc-r-sm);padding:5px 8px}#lobby-wait{font-size:var(--zc-text-xs);padding:3px 4px}}#td-hud,#td-build-dock,#td-tower-panel{font-family:var(--zc-font);color:var(--zc-ink-bright)}#td-hud{top:calc(var(--zc-hud-gap-top,0px) + max(14px, var(--zc-safe-beyond-top,env(safe-area-inset-top,0px))));left:calc(var(--zc-hud-gap-left,0px) + max(14px, var(--zc-safe-beyond-left,env(safe-area-inset-left,0px))));z-index:900;box-sizing:border-box;width:288px;max-height:calc(100vh - calc(var(--zc-hud-gap-top,0px) + max(14px, var(--zc-safe-beyond-top,env(safe-area-inset-top,0px)))) - 14px);max-height:calc(100dvh - calc(var(--zc-hud-gap-top,0px) + max(14px, var(--zc-safe-beyond-top,env(safe-area-inset-top,0px)))) - 14px);overscroll-behavior:contain;border:1px solid var(--zc-line-soft);border-radius:var(--zc-r-lg);background:var(--zc-popup);box-shadow:0 18px 45px #0000006b, inset 0 1px var(--zc-fill);flex-direction:column;gap:12px;padding:14px;display:flex;position:fixed;overflow-y:auto}.td-hud-head,.td-tower-panel-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.td-hud-head>div,.td-tower-panel-head>div{flex-direction:column;gap:3px;min-width:0;display:flex}.td-hud-kicker{color:var(--zc-ink-dim);font-size:var(--zc-text-xs);letter-spacing:.14em;font-weight:800;line-height:1}.td-hud-heading,.td-hud-selection-type{color:var(--zc-ink-strong);font-size:var(--zc-text-md);text-overflow:ellipsis;white-space:nowrap;font-weight:800;line-height:1.25;overflow:hidden}.td-hud-wave-phase{border-radius:var(--zc-r-pill);color:var(--zc-ink-bright);font-size:var(--zc-text-xs);white-space:nowrap;background:#d3aa3b26;border:1px solid #d3aa3b40;padding:5px 9px;font-weight:800}#td-hud[data-wave-phase=cleared] .td-hud-wave-phase,#td-hud[data-wave-phase=victory] .td-hud-wave-phase{color:var(--zc-ink-bright);background:#d3aa3b29;border-color:#d3aa3b4d}.td-hud-waiting-note{font-family:var(--zc-font-detail);border:1px solid var(--zc-fill);border-radius:var(--zc-r-lg);background:var(--zc-fill);color:var(--zc-ink);font-size:var(--zc-text-xs);text-align:center;padding:10px;line-height:1.5;display:none}#td-hud[data-phase=waiting] .td-hud-waiting-note{display:block}#td-hud[data-phase=waiting] .td-hud-resource-grid,#td-hud[data-phase=waiting] .td-hud-wave,#td-hud[data-phase=waiting] .td-hud-attributes{display:none}.td-hud-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.td-hud-resource{border:1px solid var(--zc-fill);border-radius:var(--zc-r);background:var(--zc-fill);flex-direction:column;gap:3px;min-width:0;padding:10px 11px;display:flex}.td-hud-resource>span{color:var(--zc-ink-dim);font-size:var(--zc-text-xs);font-weight:700}.td-hud-resource>strong{font-variant-numeric:tabular-nums;font-size:20px;font-weight:900;line-height:1}.td-hud-resource-minerals>strong{color:var(--zc-gold)}.td-hud-resource-lives>strong{color:var(--zc-red-ink)}.td-hud-wave{flex-direction:column;gap:7px;display:flex}.td-hud-wave-copy{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.td-hud-wave-copy strong{font-size:var(--zc-text-sm);font-weight:800}.td-hud-wave-copy span{color:var(--zc-ink-dim);font-size:var(--zc-text-xs);font-weight:700}.td-hud-wave-track{border-radius:var(--zc-r-pill);background:var(--zc-fill);height:5px;overflow:hidden}.td-hud-wave-progress{border-radius:inherit;background:var(--zc-gold);width:0;height:100%;transition:width .18s;display:block}.td-hud-btn{border:1px solid var(--zc-line-soft);border-radius:var(--zc-r);background:var(--zc-fill);min-height:36px;color:var(--zc-ink-strong);font-family:inherit;font-size:var(--zc-text-sm);cursor:pointer;padding:8px 11px;font-weight:800;transition:border-color .12s,background .12s,transform .12s}.td-hud-btn:hover:not(:disabled){border-color:var(--zc-line);background:var(--zc-fill-hover);transform:translateY(-1px)}.td-hud-btn:focus-visible,.td-tower-panel-close:focus-visible{outline:2px solid var(--zc-gold);outline-offset:2px}.td-hud-btn:disabled{opacity:.38;cursor:not-allowed}.td-hud-btn-nextwave{width:100%;color:var(--zc-ink-bright);background:#d3aa3b33;border-color:#d3aa3b66}.td-hud-attributes{border-top:1px solid var(--zc-fill);flex-direction:column;gap:7px;padding-top:12px;display:flex}.td-hud-section-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:1px;display:flex}.td-hud-section-head strong{font-size:var(--zc-text-sm);font-weight:800}.td-hud-section-head span{color:var(--zc-ink-dim);font-size:var(--zc-text-xs)}.td-hud-attr-row{border:1px solid var(--zc-fill);border-radius:var(--zc-r-lg);background:var(--zc-fill);grid-template-columns:38px minmax(0,1fr) 66px;align-items:center;gap:8px;padding:7px;display:grid}.td-hud-attr-icon{border-radius:var(--zc-r);width:34px;height:34px;font-size:var(--zc-text-xs);place-items:center;font-weight:900;display:grid}.td-hud-attr-row[data-attr=fire] .td-hud-attr-icon{color:var(--zc-red-ink);background:#e9495626}.td-hud-attr-row[data-attr=water] .td-hud-attr-icon{color:var(--zc-gold);background:#d3aa3b26}.td-hud-attr-row[data-attr=wind] .td-hud-attr-icon{color:var(--zc-ink-bright);background:#d3aa3b26}.td-hud-attr-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.td-hud-attr-level{font-size:var(--zc-text-sm);font-weight:900}.td-hud-attr-bonus{color:var(--zc-ink-dim);font-size:var(--zc-text-xs);white-space:nowrap}.td-hud-attributes .td-hud-btn-attr{min-height:32px;font-size:var(--zc-text-xs);font-variant-numeric:tabular-nums;padding:6px 8px}#td-build-dock{bottom:calc(var(--zc-hud-gap-bottom,0px) + max(18px, var(--zc-safe-beyond-bottom,env(safe-area-inset-bottom,0px))));z-index:910;box-sizing:border-box;border:1px solid var(--zc-line-soft);border-radius:var(--zc-r-lg);background:var(--zc-popup);grid-template-columns:42px minmax(180px,1fr) auto;align-items:center;gap:10px;width:min(680px,100vw - 36px);padding:10px;display:grid;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 16px 44px #00000080}#td-build-dock[hidden]{display:none}.td-build-dock-mark{border-radius:var(--zc-r-lg);width:42px;height:42px;color:var(--zc-gold);background:#d3aa3b21;border:1px solid #d3aa3b47;place-items:center;font-size:25px;font-weight:300;display:grid}.td-build-dock-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.td-build-dock-copy strong{font-size:var(--zc-text);text-overflow:ellipsis;white-space:nowrap;font-weight:900;overflow:hidden}.td-build-dock-copy span{color:var(--zc-ink-dim);font-size:var(--zc-text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.td-build-dock-primary{background:#d3aa3b33;border-color:#d3aa3b61;justify-content:space-between;align-items:center;gap:12px;min-width:142px;display:flex}.td-build-dock-cost{border-left:1px solid var(--zc-fill-hover);color:var(--zc-gold);font-variant-numeric:tabular-nums;padding-left:10px}#td-build-dock[data-state=building]{border-color:#d3aa3b70}#td-build-dock[data-state=building] .td-build-dock-mark{color:var(--zc-ink-bright);background:#d3aa3b29;border-color:#d3aa3b66}#td-build-dock[data-state=building] .td-build-dock-primary{background:#d3aa3b33;border-color:#d3aa3b6b}#td-tower-panel{top:max(126px, calc(var(--zc-safe-top,env(safe-area-inset-top,0px)) + 112px));right:calc(var(--zc-hud-gap-right,0px) + max(14px, var(--zc-safe-beyond-right,env(safe-area-inset-right,0px))));z-index:900;box-sizing:border-box;width:276px;max-height:calc(100vh - max(126px, calc(var(--zc-safe-top,env(safe-area-inset-top,0px)) + 112px)) - 14px);max-height:calc(100dvh - max(126px, calc(var(--zc-safe-top,env(safe-area-inset-top,0px)) + 112px)) - 14px);overscroll-behavior:contain;border:1px solid var(--zc-line-soft);border-radius:var(--zc-r-lg);background:var(--zc-popup);flex-direction:column;gap:12px;padding:14px;display:flex;position:fixed;overflow-y:auto;box-shadow:0 18px 45px #0000006b}#td-tower-panel[hidden]{display:none}.td-tower-panel-close{border-radius:var(--zc-r);background:var(--zc-fill);width:30px;height:30px;color:var(--zc-ink-dim);cursor:pointer;border:0;padding:0;font-size:19px;line-height:1}.td-hud-selection-badges{gap:6px;display:flex}.td-hud-selection-tier,.td-hud-selection-attr{border-radius:var(--zc-r-pill);font-size:var(--zc-text-xs);padding:4px 8px;font-weight:900}.td-hud-selection-tier{background:var(--zc-fill);color:var(--zc-ink)}.td-hud-selection-tier[data-tier=magic]{color:var(--zc-gold);background:#d3aa3b33}.td-hud-selection-tier[data-tier=rare],.td-hud-selection-tier[data-tier=unique]{color:var(--zc-gold);background:#d3aa3b38}.td-hud-selection-tier[data-tier=epic]{color:var(--zc-red-ink);background:#e9495638}.td-hud-selection-attr[data-attr=fire]{color:var(--zc-red-ink);background:#e949562b}.td-hud-selection-attr[data-attr=water]{color:var(--zc-gold);background:#d3aa3b2b}.td-hud-selection-attr[data-attr=wind]{color:var(--zc-ink-bright);background:#d3aa3b2b}.td-hud-selection-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.td-hud-selection-stats>div{border:1px solid var(--zc-fill);border-radius:var(--zc-r);background:var(--zc-fill);text-align:center;flex-direction:column;gap:4px;min-width:0;padding:9px 7px;display:flex}.td-hud-selection-stats span{color:var(--zc-ink-dim);font-size:var(--zc-text-xs);white-space:nowrap}.td-hud-selection-stats strong{font-size:var(--zc-text-sm);font-variant-numeric:tabular-nums;font-weight:900}.td-hud-selection-merge{border-radius:var(--zc-r-lg);background:var(--zc-fill);flex-direction:column;gap:4px;padding:10px;display:flex}.td-hud-selection-merge strong{color:var(--zc-ink);font-size:var(--zc-text-xs)}.td-hud-selection-merge span{color:var(--zc-ink-dim);font-size:var(--zc-text-xs)}.td-hud-selection-actions{grid-template-columns:1fr 1fr;gap:7px;display:grid}.td-hud-btn-merge{color:var(--zc-ink-bright);background:#d3aa3b33;border-color:#d3aa3b57}.td-hud-btn-sell{color:var(--zc-red-ink);border-color:#e9495640}#td-hud-banner:not([hidden]){z-index:1200;pointer-events:none;font-family:var(--zc-font);background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#td-hud-banner .td-hud-banner-text{color:var(--zc-ink-strong);letter-spacing:8px;text-shadow:0 4px 12px #000000b3;font-size:64px;font-weight:800}#td-hud-banner[data-result=victory] .td-hud-banner-text{color:var(--zc-gold)}#td-hud-banner[data-result=defeat] .td-hud-banner-text{color:var(--zc-red-ink)}@media (max-width:760px){#td-hud{top:calc(var(--zc-hud-gap-top,0px) + max(8px, var(--zc-safe-beyond-top,env(safe-area-inset-top,0px))));left:calc(var(--zc-hud-gap-left,0px) + max(8px, var(--zc-safe-beyond-left,env(safe-area-inset-left,0px))));border-radius:var(--zc-r-lg);gap:8px;width:min(242px,52vw - 12px);padding:10px}.td-hud-resource{padding:7px 8px}.td-hud-resource>strong{font-size:var(--zc-text-md)}.td-hud-attributes{gap:4px}.td-hud-section-head span,.td-hud-attr-bonus{display:none}.td-hud-attr-row{grid-template-columns:30px minmax(0,1fr) 54px;gap:5px;padding:5px}.td-hud-attr-icon{width:28px;height:28px}#td-tower-panel{top:112px;right:calc(var(--zc-hud-gap-right,0px) + max(8px, var(--zc-safe-beyond-right,env(safe-area-inset-right,0px))));border-radius:var(--zc-r-lg);gap:8px;width:min(230px,48vw - 12px);padding:10px}#td-build-dock{bottom:calc(var(--zc-hud-gap-bottom,0px) + max(8px, var(--zc-safe-beyond-bottom,env(safe-area-inset-bottom,0px))));border-radius:var(--zc-r-lg);grid-template-columns:36px minmax(0,1fr) auto;gap:7px;width:calc(100vw - 16px);padding:7px}.td-build-dock-mark{width:36px;height:36px}.td-build-dock-primary{min-width:118px}#td-hud-banner .td-hud-banner-text{letter-spacing:4px;font-size:40px}}#inventory-hotbar{left:50%;bottom:calc(var(--zc-hud-gap-bottom,0px) + max(14px, var(--zc-safe-beyond-bottom,env(safe-area-inset-bottom,0px))));z-index:890;border:1px solid var(--zc-line-soft);border-radius:var(--zc-r-lg);background:var(--zc-popup);font-family:var(--zc-font);gap:5px;padding:7px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 5px 20px #00000073}#inventory-hotbar[hidden]{display:none}.inventory-slot{border:1px solid var(--zc-fill-active);border-radius:var(--zc-r);background:var(--zc-popup);width:56px;height:58px;color:var(--zc-ink);cursor:pointer;place-items:center;padding:4px;display:grid;position:relative;overflow:hidden}.inventory-slot[hidden]{display:none}.inventory-slot-armed{border-color:var(--zc-gold);box-shadow:0 0 0 2px #d3aa3b59}.inventory-tooltip{z-index:2500;border:1px solid var(--zc-line);border-radius:var(--zc-r);background:var(--zc-popup);min-width:160px;max-width:280px;color:var(--zc-ink);font-size:var(--zc-text-sm);box-shadow:var(--zc-shadow-lg);pointer-events:none;padding:8px 10px;line-height:1.5;position:fixed;bottom:0;left:0;transform:translate(-50%)}.inventory-tooltip[hidden]{display:none}.inventory-tooltip-name{color:var(--zc-ink-strong);font-weight:800}.inventory-tooltip-effects{margin:4px 0 0;padding-left:16px}.inventory-tooltip-hint{color:var(--zc-ink-dim);font-size:var(--zc-text-xs);margin-top:6px}.inventory-slot:hover{border-color:var(--zc-gold);transform:translateY(-2px)}.inventory-slot-key,.inventory-slot-count{z-index:1;border-radius:var(--zc-r-sm);font-size:var(--zc-text-xs);text-align:center;background:#000000c7;line-height:1.1;position:absolute}.inventory-slot-key{min-width:13px;color:var(--zc-ink-dim);padding:1px 3px;font-weight:700;top:2px;left:2px}.inventory-slot-count{min-width:16px;color:var(--zc-gold);border:1px solid #ffffff3d;padding:1px 4px;font-weight:800;bottom:2px;right:2px}.inventory-slot-icon{object-fit:contain;width:36px;height:36px;font-size:24px;font-weight:700}#inventory-hotbar:not([hidden])~#chatbox{--chat-clear:92px}@media (max-width:600px){#inventory-hotbar{gap:2px;max-width:calc(100vw - 10px);padding:4px}.inventory-slot{width:42px;height:48px}.inventory-slot-icon{width:25px;height:25px}}body:not(.in-room) #room-hud-occupancy,body.signed-in #lobby-panel{display:none}body.in-editor #room-hud{display:none!important}@media (hover:none) and (pointer:coarse){.room-hud-btn,.lobby-btn{min-height:44px}#room-hud[data-menu=open] #room-hud-toggle{width:44px;min-height:44px}}@media (hover:none) and (pointer:coarse) and (max-height:480px){#room-hud:not([hidden]){display:flex}#room-hud{box-sizing:border-box;flex-flow:row;align-items:center;gap:8px;width:auto;max-width:calc(100vw - 24px);padding:6px 8px}#room-hud-toggle{order:1}#room-hud-status{text-overflow:ellipsis;white-space:nowrap;flex-shrink:100;min-width:0;overflow:hidden}#room-hud-occupancy{white-space:nowrap;flex:none;padding:0}#room-hud-actions{--hud-btn-font:clamp(10px, 1.5vw, var(--zc-text));flex-flow:wrap;justify-content:flex-end;min-width:0;container-type:normal}.room-hud-btn{flex:none;min-width:44px;padding-left:8px;padding-right:8px}#btn-zombie-link{max-width:200px;margin-top:0;padding:8px 10px}}@media (hover:none) and (pointer:coarse) and (max-width:760px) and (min-height:481px){#room-hud:not([hidden]){display:flex}#room-hud{top:calc(var(--zc-hud-gap-top,0px) + max(8px, var(--zc-safe-beyond-top,env(safe-area-inset-top,0px))));left:calc(var(--zc-hud-gap-left,0px) + max(8px, var(--zc-safe-beyond-left,env(safe-area-inset-left,0px))));right:calc(var(--zc-hud-gap-right,0px) + max(8px, var(--zc-safe-beyond-right,env(safe-area-inset-right,0px))));border-radius:var(--zc-r-sm);flex-flow:wrap;align-items:center;gap:4px;width:auto;min-width:0;max-width:none;padding:6px 8px}#room-hud-status{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}#room-hud-occupancy{flex:none;margin-left:auto;padding:0}#room-hud-actions{--hud-btn-font:clamp(10px, 3.6cqw, var(--zc-text));flex-flow:wrap;flex:1 0 100%;gap:4px;margin-top:0}.room-hud-btn{min-width:0;font-size:var(--hud-btn-font,var(--zc-text));flex:auto;padding-left:8px;padding-right:8px}#btn-zombie-link{flex-basis:100%;margin-top:2px;padding:10px 12px}.room-hud-link-copy{flex-flow:wrap;justify-content:space-between;align-items:baseline;column-gap:12px}}#room-hud[data-menu=collapsed]{width:auto;min-width:0;max-width:none;box-shadow:none;background:0 0;border-color:#0000;gap:0;padding:0;left:auto}#room-hud[data-menu=collapsed]>:not(#room-hud-toggle){display:none}#room-hud[data-menu=open]{z-index:960}@media (hover:none) and (pointer:coarse) and ((max-width:760px) or (max-height:480px)){body:has(.settings-dialog:not([hidden])) #room-hud{display:none!important}}@media (hover:none) and (pointer:coarse) and (max-width:760px) and (min-height:481px){:root{--hotbar-dock:calc(var(--ctrl-band) + 8px);--hotbar-height:58px}#inventory-hotbar{bottom:var(--hotbar-dock);overscroll-behavior-x:contain;max-width:calc(100vw - 12px);overflow-x:auto}.inventory-slot{flex:none}#inventory-hotbar:not([hidden])~#chatbox{--chat-clear:calc(var(--hotbar-dock) + var(--hotbar-height) + 6px)}}@media (hover:none) and (pointer:coarse) and (max-height:480px){:root{--hotbar-dock:calc(var(--zc-hud-gap-bottom,0px) + max(14px, var(--zc-safe-beyond-bottom,env(safe-area-inset-bottom,0px))));--hotbar-height:58px}#inventory-hotbar{bottom:var(--hotbar-dock);max-width:max(200px, calc(100vw - 2 * var(--ctrl-side) - 16px));overscroll-behavior-x:contain;gap:2px;padding:4px;overflow-x:auto}.inventory-slot{flex:none;width:42px;height:48px}.inventory-slot-icon{width:25px;height:25px}#inventory-hotbar:not([hidden])~#chatbox{--chat-clear:calc(var(--hotbar-dock) + var(--hotbar-height) + 6px)}}#round-end-presentation{--end-light:#fff4bc;--end-color:#ffc94d;--end-deep:#9c521b;--end-glow:#ffc14252;z-index:1300;isolation:isolate;font-family:var(--zc-font);pointer-events:auto;animation:round-end-screen var(--round-end-duration) ease both;background:radial-gradient(#0000 15%,#090a1394);grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}#round-end-presentation[data-outcome=lose]{--end-light:#ffd3cf;--end-color:#ef6261;--end-deep:#8f232c;--end-glow:#d6404c3d}#round-end-presentation[data-outcome=draw]{--end-light:#e3fff9;--end-color:#8fddce;--end-deep:#376a71;--end-glow:#6ddccd3d}#round-end-presentation>*{pointer-events:none;grid-area:1/1}.round-end-halo{aspect-ratio:1;background:radial-gradient(circle, var(--end-glow), transparent 62%);width:min(760px,130vw);animation:round-end-halo var(--round-end-duration) ease-out both;border-radius:50%}.round-end-halo:after{content:"";border:1px solid var(--end-color);box-shadow:0 0 26px var(--end-glow), inset 0 0 26px var(--end-glow);opacity:.35;border-radius:50%;position:absolute;inset:23%}.round-end-ribbon{border-block:2px solid var(--end-color);clip-path:polygon(0 0,100% 0,96% 50%,100% 100%,0 100%,4% 50%);width:min(650px,92vw);height:clamp(86px,18vw,148px);animation:round-end-ribbon var(--round-end-duration) cubic-bezier(.16, 1, .3, 1) both;background:linear-gradient(110deg,#0000,#171922 15%,#25232b 50%,#171922 85%,#0000);box-shadow:0 10px 50px #0006}.round-end-ribbon:after{content:"";border-block:1px solid var(--end-deep);background:linear-gradient(105deg, transparent 35%, var(--end-glow) 50%, transparent 65%);position:absolute;inset:7px 0}.round-end-title-wrap{letter-spacing:-.045em;white-space:nowrap;animation:round-end-title var(--round-end-duration) cubic-bezier(.2, .8, .2, 1) both;margin-top:-8px;font-size:clamp(48px,12vw,100px);font-weight:900;line-height:1.15;position:relative}#round-end-presentation[data-outcome=lose] .round-end-ribbon,#round-end-presentation[data-outcome=lose] .round-end-title-wrap{animation:round-end-defeat-settle var(--round-end-duration) cubic-bezier(.4, 0, .7, 1) both}.round-end-title{color:var(--end-light);background-image:linear-gradient(180deg, #fff 8%, var(--end-light) 38%, var(--end-color) 63%, var(--end-deep) 100%);-webkit-text-fill-color:transparent;-webkit-text-stroke:1px var(--end-light);filter:drop-shadow(0 3px 0 var(--end-deep)) drop-shadow(0 6px 0 #121421) drop-shadow(0 7px 14px #000000a6);-webkit-background-clip:text;background-clip:text;padding:12px 24px;display:block;position:relative}.round-end-title-wrap:before{content:attr(data-text);z-index:-1;-webkit-text-stroke:9px #141521;-webkit-text-fill-color:#141521;position:absolute;inset:12px 24px}.round-end-sparks{width:min(610px,88vw);height:clamp(160px,38vw,260px);position:relative}.round-end-sparks i{left:calc(8% + var(--spark) * 12%);top:calc(15% + mod(var(--spark), 3) * 35%);background:var(--end-light);width:9px;height:9px;box-shadow:0 0 12px var(--end-color);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:round-end-spark var(--round-end-duration) ease-out both;animation-delay:calc(var(--spark) * 18ms);position:absolute}@keyframes round-end-screen{0%{opacity:0}10%,85%{opacity:1}to{opacity:0}}@keyframes round-end-title{0%{opacity:0;transform:translateY(28px)rotate(-8deg)scale(.45)}18%{opacity:1;transform:translateY(-5px)rotate(-5deg)scale(1.12)}30%{transform:translateY(0)rotate(-6deg)scale(.98)}42%,82%{opacity:1;transform:translateY(0)rotate(-6deg)scale(1)}to{opacity:0;transform:translateY(-22px)rotate(-6deg)scale(1.06)}}@keyframes round-end-defeat-settle{0%{opacity:0;transform:translateY(-68px)rotate(0)scale(.96)}12%{opacity:1}38%{transform:translateY(14px)rotate(3deg)scale(1)}65%,84%{opacity:1;transform:translateY(22px)rotate(3deg)scale(1)}to{opacity:0;transform:translateY(58px)rotate(3deg)scale(.98)}}@keyframes round-end-ribbon{0%{opacity:0;transform:rotate(-6deg)scaleX(.1)}20%,85%{opacity:1;transform:rotate(-6deg)scaleX(1)}to{opacity:0;transform:rotate(-6deg)scaleX(1.08)}}@keyframes round-end-halo{0%{opacity:0;transform:scale(.4)}25%{opacity:1}80%{opacity:.8}to{opacity:0;transform:scale(1.25)}}@keyframes round-end-spark{0%,12%{opacity:0;transform:translateY(20px)scale(0)}30%{opacity:1;transform:translateY(0)scale(1.3)}65%{opacity:.8}90%,to{opacity:0;transform:translateY(-32px)scale(.5)}}@media (prefers-reduced-motion:reduce){#round-end-presentation,#round-end-presentation>*,.round-end-sparks i{animation:none}.round-end-ribbon,.round-end-title-wrap{transform:rotate(-6deg)}#round-end-presentation[data-outcome=lose] .round-end-ribbon,#round-end-presentation[data-outcome=lose] .round-end-title-wrap{animation:none;transform:translateY(22px)rotate(3deg)}.round-end-sparks{display:none}}.maker-onboarding{z-index:var(--zc-z-dialog);padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));background:var(--zc-scrim);font-family:var(--zc-font);color:var(--zc-ink);place-items:center;display:grid;position:fixed;inset:0}.maker-onboarding-card{box-sizing:border-box;border:1px solid var(--zc-line);border-radius:var(--zc-r-lg);background:var(--zc-popup);width:min(720px,100%);max-height:100%;box-shadow:var(--zc-shadow-lg);padding:24px;overflow-y:auto}.maker-onboarding-card h2{margin:0 0 12px}.maker-onboarding-card p{overflow-wrap:anywhere;line-height:1.6}.maker-onboarding-paths{grid-template-columns:1fr 1fr;gap:16px;display:grid}.maker-onboarding-paths h3{font-size:var(--zc-text);color:var(--zc-gold);margin:8px 0}.maker-onboarding-paths p{font-size:var(--zc-text-sm);margin:0 0 16px}.maker-onboarding-topics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.maker-onboarding button{border:1px solid var(--zc-line);border-radius:var(--zc-r);background:var(--zc-panel);min-height:44px;color:var(--zc-ink);font:inherit;cursor:pointer;padding:12px 16px}.maker-onboarding button:focus-visible{outline:2px solid var(--zc-gold);outline-offset:2px}.maker-onboarding button:disabled{cursor:wait;opacity:.65}.maker-onboarding-topics button{text-align:left}.maker-onboarding-topics button[aria-pressed=true]{border-color:var(--zc-gold);background:var(--zc-raised)}.maker-onboarding-topics strong{color:var(--zc-ink-strong);display:block}.maker-onboarding-topics span{font-size:var(--zc-text-sm);margin-top:4px;line-height:1.5;display:block}.maker-onboarding-curriculum{border:1px solid var(--zc-gold);border-radius:var(--zc-r);margin-bottom:16px;padding:12px}.maker-onboarding-curriculum p{font-size:var(--zc-text-sm);margin:0 0 10px}.maker-onboarding-curriculum button{text-align:left;width:100%;font-weight:700}.maker-onboarding-safety{font-size:var(--zc-text-sm)}.maker-onboarding-error{color:var(--zc-red-ink)}.maker-onboarding-actions{border-top:1px solid var(--zc-line);background:var(--zc-raised);flex-wrap:wrap;justify-content:flex-end;gap:12px;margin:0 -24px -24px;padding:12px 24px;display:flex;position:sticky;bottom:-24px}.maker-onboarding button[data-primary=true]{background:var(--zc-red);color:var(--zc-ink-strong);border-color:var(--zc-edge-light);text-shadow:var(--zc-cta-text-shadow);font-weight:800}@media (max-width:540px){.maker-onboarding-card{padding:16px}.maker-onboarding-paths{grid-template-columns:1fr;gap:0}.maker-onboarding-topics{grid-template-columns:1fr}.maker-onboarding-actions{flex-direction:column-reverse;margin:0 -16px -16px;padding:12px 16px;bottom:-16px}.maker-onboarding-actions button{width:100%}}
