*,:after,:before{margin:0;padding:0;box-sizing:border-box}body,html{background:#000;color:#fff;font-family:Segoe UI,system-ui,sans-serif;overflow:hidden;height:100%;overscroll-behavior:none;-webkit-text-size-adjust:100%}.canvas-root{touch-action:none;display:block}.canvas-root,.hud{position:fixed;inset:0}.hud{pointer-events:none;z-index:10}.hud-top{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 12px;gap:6px}@media (pointer:coarse){.hud-top{padding:8px;gap:4px}.hud-pill{min-width:46px;padding:4px 8px}}.hud-bottom{position:absolute;bottom:0;width:100%;display:flex;justify-content:space-between;align-items:flex-end;padding:10px 12px 14px}@media (pointer:coarse){.hud-bottom{padding-bottom:190px;gap:8px}}@supports (padding:env(safe-area-inset-bottom)){@media (pointer:coarse){.hud-bottom{padding-bottom:calc(190px + env(safe-area-inset-bottom))}}}.hud-pill{display:flex;flex-direction:column;gap:2px;background:rgba(0,0,0,.52);border:1px solid hsla(0,0%,100%,.1);border-radius:8px;padding:5px 10px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);min-width:54px}.hud-label{font-size:9px;letter-spacing:.08em;text-transform:uppercase;opacity:.5;line-height:1}.hud-value{font-size:15px;font-weight:700;line-height:1.1}.hud-wave{align-items:center}.hud-loadout{display:flex;align-items:stretch;justify-content:flex-end;gap:6px;max-width:min(620px,62vw)}.hud-weapon-slot{position:relative;display:flex;align-items:center;gap:7px;min-width:132px;padding:6px 8px;background:rgba(0,0,0,.52);border:1px solid hsla(0,0%,100%,.12);border-radius:9px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:hsla(0,0%,100%,.82);transition:border-color .15s,box-shadow .15s,background .15s}.hud-weapon-slot.active{background:rgba(231,76,60,.22);border-color:rgba(231,76,60,.9);box-shadow:0 0 16px rgba(231,76,60,.22);color:#fff}.hud-slot-hotkey{display:grid;place-items:center;flex:0 0 auto;width:22px;height:22px;border-radius:6px;background:hsla(0,0%,100%,.12);border:1px solid hsla(0,0%,100%,.18);font-size:12px;font-weight:900;line-height:1}.hud-weapon-slot.active .hud-slot-hotkey{background:#e74c3c;border-color:hsla(0,0%,100%,.34)}.hud-slot-copy{display:flex;flex-direction:column;min-width:0;text-align:right}.hud-slot-name{max-width:118px;overflow:hidden;text-overflow:ellipsis;font-size:12px;line-height:1.1}.hud-slot-name,.hud-slot-status{white-space:nowrap;font-weight:800}.hud-slot-status{font-size:13px;line-height:1.15}@media (pointer:coarse){.hud-loadout{flex-direction:column;gap:4px;max-width:42vw}.hud-weapon-slot{min-width:118px;padding:4px 6px;gap:5px}.hud-slot-hotkey{width:18px;height:18px;font-size:10px;border-radius:5px}.hud-slot-name{max-width:88px;font-size:10px}.hud-slot-status{font-size:11px}}@media (max-width:560px){.hud-loadout{max-width:48vw}.hud-weapon-slot{min-width:104px}}.health-bar,.xp-bar{width:100px;height:6px;background:hsla(0,0%,100%,.12);border-radius:3px;overflow:hidden}@media (pointer:coarse){.health-bar,.xp-bar{width:80px}}.health-fill{background:linear-gradient(90deg,#c0392b,#e67e22);transition:width .15s}.health-fill,.xp-fill{height:100%;border-radius:3px}.xp-fill{background:linear-gradient(90deg,#8e44ad,#3498db);transition:width .5s ease}.crosshair{top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;color:hsla(0,0%,100%,.9);font-size:22px;line-height:1;text-shadow:0 0 4px #000,0 0 8px #000}.crosshair,.kill-feed{position:fixed;pointer-events:none}.kill-feed{top:130px;right:12px;z-index:12;display:flex;flex-direction:column;gap:3px}@media (pointer:coarse){.kill-feed{top:8px;right:8px;max-width:140px}}.kill-entry{background:rgba(0,0,0,.6);border-left:3px solid #e74c3c;padding:2px 6px;font-size:10px;border-radius:0 4px 4px 0;animation:slideIn .2s ease,fadeOut .3s 2.5s forwards;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes slideIn{0%{transform:translateX(50px);opacity:0}to{transform:none;opacity:1}}@keyframes fadeOut{to{opacity:0;transform:translateX(20px)}}.wave-announcement{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(26px,7vw,50px);font-weight:900;color:#e74c3c;text-shadow:0 0 40px #e74c3c;pointer-events:none;z-index:15;text-align:center;white-space:nowrap;animation:fadeScale 2.5s forwards}@keyframes fadeScale{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}@keyframes unlockPop{0%{opacity:0;transform:scale(.55) translateY(20px)}60%{opacity:1;transform:scale(1.06) translateY(-4px)}80%{transform:scale(.97)}to{opacity:1;transform:scale(1) translateY(0)}}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.86);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:20;gap:12px;padding:20px 16px;pointer-events:all}.menu-scroll{overflow-y:auto;justify-content:flex-start;padding-top:28px;touch-action:pan-y}@media (max-height:640px){.overlay{justify-content:flex-start}}.overlay h1{font-size:clamp(26px,7vw,46px);font-weight:900;letter-spacing:4px;text-transform:uppercase;color:#e74c3c;text-shadow:0 0 30px #e74c3c88}.btn{pointer-events:all;cursor:pointer;padding:10px 22px;border-radius:8px;font-size:14px;font-weight:600;border:none;transition:all .14s;min-height:44px}.btn-primary{background:#e74c3c;color:#fff}.btn-primary:active,.btn-primary:hover{background:#c0392b;transform:scale(1.03)}.btn-secondary{background:hsla(0,0%,100%,.08);color:#fff;border:1px solid hsla(0,0%,100%,.16)}.btn-secondary:active,.btn-secondary:hover{background:hsla(0,0%,100%,.16)}.input{pointer-events:all;padding:9px 13px;border-radius:8px;background:hsla(0,0%,100%,.07);border:1px solid hsla(0,0%,100%,.16);color:#fff;font-size:14px;outline:none;width:260px;min-height:44px}.input:focus{border-color:#e74c3c}.lobby-panel{background:rgba(20,0,0,.8);border:1px solid rgba(231,76,60,.25);border-radius:12px;padding:18px 22px;display:flex;flex-direction:column;gap:10px;width:100%;max-width:360px}.lobby-panel h3{font-size:16px;font-weight:700;color:#e74c3c}.peer-id-box{background:hsla(0,0%,100%,.05);border-radius:6px;padding:7px 11px;font-size:11px;font-family:monospace;word-break:break-all;color:#aaa;-webkit-user-select:all;-moz-user-select:all;user-select:all}.menu-section{width:100%;max-width:580px}.section-title{font-size:10px;letter-spacing:.12em;opacity:.45;text-transform:uppercase;margin-bottom:6px;text-align:center}.card-row{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}.pick-card{background:hsla(0,0%,100%,.05);border:1.5px solid hsla(0,0%,100%,.1);border-radius:9px;padding:8px 12px;cursor:pointer;transition:all .13s;text-align:center;min-width:88px;pointer-events:all}.pick-card:hover{border-color:hsla(0,0%,100%,.3);background:hsla(0,0%,100%,.09)}.pick-card.selected{border-color:#e74c3c;background:rgba(231,76,60,.12)}.pick-card.locked{opacity:.35;cursor:not-allowed}.pick-name{font-weight:700;font-size:12px}.pick-sub{font-size:10px;opacity:.5;margin-top:2px}.locked-label{color:#fa0;opacity:1!important}.menu-root{position:fixed;inset:0;background:#080808;display:flex;flex-direction:column;align-items:center;overflow-y:auto;overflow-x:hidden;z-index:20;pointer-events:all;touch-action:pan-y}.menu-bg-glow{background:radial-gradient(ellipse 70% 40% at 50% 0,rgba(231,76,60,.12) 0,transparent 70%),radial-gradient(ellipse 50% 30% at 50% 100%,rgba(180,30,20,.08) 0,transparent 60%)}.menu-bg-glow,.menu-bg-grid{position:fixed;inset:0;pointer-events:none;z-index:0}.menu-bg-grid{background-image:linear-gradient(hsla(0,0%,100%,.025) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.025) 1px,transparent 0);background-size:40px 40px;-webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,#000 40%,transparent 100%);mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,#000 40%,transparent 100%)}.menu-root>*{position:relative;z-index:1}.menu-header{width:100%;text-align:center;padding:36px 20px 8px;flex-shrink:0}.menu-title{font-size:clamp(36px,8vw,64px);font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:#fff;text-shadow:0 0 40px rgba(231,76,60,.8),0 0 80px rgba(231,76,60,.3),0 2px 0 rgba(0,0,0,.8);line-height:1}.menu-subtitle{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:#e74c3c;opacity:.7;margin-top:6px}.menu-stats-bar{justify-content:center;gap:0;background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.08);border-radius:12px;padding:12px 24px;margin:18px 20px 0;width:calc(100% - 40px);max-width:860px;flex-wrap:wrap;gap:4px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.menu-stat,.menu-stats-bar{display:flex;align-items:center}.menu-stat{flex-direction:column;gap:3px;padding:0 20px;flex:1 1;min-width:100px}.menu-stat-divider{width:1px;height:36px;background:hsla(0,0%,100%,.1);flex-shrink:0}.menu-stat-label{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:hsla(0,0%,100%,.4);font-weight:600}.menu-stat-value{font-size:22px;font-weight:800;color:#fff;line-height:1}.menu-stat-value.red{color:#e74c3c}.menu-stat-sub{font-size:9px;color:hsla(0,0%,100%,.3);letter-spacing:.06em}.menu-xp-bar{width:72px;height:4px;background:hsla(0,0%,100%,.1);border-radius:2px;overflow:hidden}.menu-xp-fill{height:100%;background:linear-gradient(90deg,#8e44ad,#3498db);border-radius:2px;transition:width .5s ease}.menu-name-input{background:transparent;border:none;border-bottom:1px solid hsla(0,0%,100%,.2);color:#fff;font-size:15px;font-weight:600;text-align:center;outline:none;width:130px;padding:2px 4px;pointer-events:all;transition:border-color .15s}.menu-name-input::placeholder{color:hsla(0,0%,100%,.25);font-weight:400}.menu-name-input:focus{border-bottom-color:#e74c3c}.menu-nav{display:flex;gap:4px;margin:20px 20px 0;background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.08);border-radius:10px;padding:4px;max-width:860px;width:calc(100% - 40px)}.menu-nav-btn{flex:1 1;background:transparent;border:none;color:hsla(0,0%,100%,.45);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:9px 16px;border-radius:7px;cursor:pointer;transition:all .15s;pointer-events:all}.menu-nav-btn:hover{color:hsla(0,0%,100%,.75);background:hsla(0,0%,100%,.05)}.menu-nav-btn.active{background:rgba(231,76,60,.18);color:#fff;border:1px solid rgba(231,76,60,.35)}.menu-content{width:calc(100% - 40px);max-width:860px;margin:16px 20px 32px;display:flex;flex-direction:column;gap:14px}.menu-selector-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:560px){.menu-selector-row{grid-template-columns:1fr}}.menu-selector-col{background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.07);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px}.menu-col-label{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:hsla(0,0%,100%,.35);font-weight:700;margin-bottom:2px}.menu-card-list{display:flex;flex-wrap:wrap;gap:6px}.menu-card{background:hsla(0,0%,100%,.05);border:1.5px solid hsla(0,0%,100%,.09);border-radius:8px;padding:7px 11px;cursor:pointer;transition:all .12s;pointer-events:all;flex:1 1;min-width:80px}.menu-card:hover{background:hsla(0,0%,100%,.09);border-color:hsla(0,0%,100%,.22)}.menu-card.selected{background:rgba(231,76,60,.14);border-color:#e74c3c;box-shadow:0 0 12px rgba(231,76,60,.15)}.menu-card.locked{opacity:.32;cursor:not-allowed}.menu-card-name{font-size:12px;font-weight:700;color:#fff}.menu-card-sub{font-size:10px;color:hsla(0,0%,100%,.42);margin-top:2px;line-height:1.3}.menu-mode-tabs{display:flex;gap:6px;justify-content:center}.menu-mode-btn{background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1);border-radius:8px;color:hsla(0,0%,100%,.5);font-size:11px;font-weight:700;letter-spacing:.1em;padding:8px 24px;cursor:pointer;transition:all .13s;pointer-events:all}.menu-mode-btn:hover{background:hsla(0,0%,100%,.09);color:#fff}.menu-mode-btn.active{background:rgba(231,76,60,.16);border-color:rgba(231,76,60,.4);color:#fff}.menu-action-row{display:flex;flex-direction:column;align-items:center;gap:10px}.menu-btn-primary{background:#e74c3c;color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:800;letter-spacing:.12em;padding:14px 56px;cursor:pointer;pointer-events:all;transition:all .14s;box-shadow:0 4px 24px rgba(231,76,60,.35)}.menu-btn-primary:hover{background:#c0392b;transform:scale(1.04);box-shadow:0 6px 32px rgba(231,76,60,.5)}.menu-btn-secondary{background:hsla(0,0%,100%,.06);color:hsla(0,0%,100%,.75);border:1px solid hsla(0,0%,100%,.14);border-radius:8px;font-size:13px;font-weight:600;padding:10px 22px;cursor:pointer;pointer-events:all;transition:all .13s}.menu-btn-secondary:hover{background:hsla(0,0%,100%,.1);color:#fff}.menu-btn-secondary:disabled{opacity:.4;cursor:not-allowed}.menu-multi-panel{display:flex;gap:0;background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.07);border-radius:12px;overflow:hidden}.menu-multi-col{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px}.menu-multi-divider{width:1px;background:hsla(0,0%,100%,.07);flex-shrink:0}@media (max-width:480px){.menu-multi-panel{flex-direction:column}.menu-multi-divider{width:100%;height:1px}}.menu-lobby-code{background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1);border-radius:8px;padding:8px 16px;font-family:monospace;font-size:16px;font-weight:700;letter-spacing:.15em;color:#e74c3c;-webkit-user-select:all;-moz-user-select:all;user-select:all;text-align:center}.menu-leaderboard-panel{background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.07);border-radius:12px;padding:16px}.editor-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr) 320px;grid-template-rows:72px minmax(0,1fr) 56px;grid-template-areas:"top top top" "palette canvas inspector" "status status status";background:#0e1116;color:#e9edf5;grid-gap:10px;gap:10px;padding:10px}.editor-region{background:#171c24;border:1px solid #2b3340;border-radius:10px;padding:12px}.editor-topbar{grid-area:top}.editor-palette{grid-area:palette}.editor-inspector{grid-area:inspector}.editor-status{grid-area:status}@media (max-width:1200px){.editor-shell{grid-template-columns:220px minmax(0,1fr) 260px}}@media (max-width:900px){.editor-shell{grid-template-columns:1fr;grid-template-rows:auto auto minmax(220px,1fr) auto;grid-template-areas:"top" "palette" "inspector" "status"}}.editor-shell-integrated{grid-template-columns:280px minmax(0,1fr) 360px;grid-template-areas:"top top top" "palette canvas inspector" "status status status";background:radial-gradient(circle at 20% 0,rgba(231,76,60,.16),transparent 34%),linear-gradient(135deg,#080b10,#111826)}.editor-canvas-region{grid-area:canvas;min-width:0;overflow:hidden}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.editor-canvas-header h2,.editor-toolbar h1{margin:0}.editor-kicker{margin:0 0 3px;color:#e74c3c;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.editor-mode-tabs,.editor-status-metrics,.editor-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.editor-entity-list button,.editor-live-inspector button,.editor-mode-tabs button,.editor-palette-grid button,.editor-stack button,.editor-statusbar button,.editor-toolbar button{border:1px solid hsla(0,0%,100%,.14);background:hsla(0,0%,100%,.06);color:#edf3ff;border-radius:9px;padding:8px 10px;cursor:pointer;transition:border-color .14s,background .14s,transform .14s}.editor-entity-list button:hover,.editor-live-inspector button:hover,.editor-mode-tabs button:hover,.editor-palette-grid button:hover,.editor-stack button:hover,.editor-statusbar button:hover,.editor-toolbar button:hover{border-color:rgba(231,76,60,.75);background:rgba(231,76,60,.14)}.editor-entity-list button:focus-visible,.editor-entity:focus-visible,.editor-live-inspector button:focus-visible,.editor-mode-tabs button:focus-visible,.editor-palette-grid button:focus-visible,.editor-stack button:focus-visible,.editor-statusbar button:focus-visible,.editor-tile:focus-visible,.editor-toolbar button:focus-visible{outline:2px solid #8db5ff;outline-offset:2px}.editor-toolbar button:disabled{cursor:not-allowed;opacity:.45}.editor-toolbar button.primary{background:#e74c3c;border-color:#ff7d70;color:#fff;font-weight:800}.editor-live-inspector button.danger{border-color:#ff6a6a;color:#ffb7b7}.editor-panel-section{display:grid;grid-gap:10px;gap:10px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid hsla(0,0%,100%,.08)}.editor-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.editor-section-heading h2{margin:0;font-size:16px}.editor-canvas-header p,.editor-entity-list small,.editor-palette-grid small,.editor-section-heading span{color:#aebbd3;font-size:12px}.editor-entity-list,.editor-palette-grid,.editor-stack{display:grid;grid-gap:8px;gap:8px}.editor-entity-list button,.editor-palette-grid button{text-align:left;display:grid;grid-gap:3px;gap:3px}.editor-entity-list button.selected,.editor-mode-tabs button.selected,.editor-palette-grid button.selected{background:rgba(141,181,255,.2);border-color:#8db5ff}.editor-disclosure{width:100%;display:flex;justify-content:space-between;border:0;background:transparent;color:#edf3ff;padding:0;font-weight:800}.editor-error-list,.editor-help-list,.editor-qa-panel ul{margin:0;padding-left:18px;color:#c8d3e8;font-size:13px;line-height:1.45}.editor-canvas-header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.editor-canvas-scroll{position:relative;width:100%;height:calc(100vh - 180px);min-height:420px;overflow:auto;border-radius:12px;background:#0b1019;border:1px solid hsla(0,0%,100%,.08)}.editor-canvas-grid{position:relative;display:grid;grid-gap:0;gap:0;background-image:linear-gradient(hsla(0,0%,100%,.04) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.04) 1px,transparent 0);background-size:28px 28px}.editor-tile{width:28px;height:28px;border:1px solid hsla(0,0%,100%,.045);padding:0}.editor-tile.floor{background:#1d2430}.editor-tile.wall{background:#59302a;box-shadow:inset 0 0 0 4px rgba(0,0,0,.15)}.editor-tile.spawn{background:#1d3f2d}.editor-tile.objective{background:#4a3d19}.editor-tile:hover{filter:brightness(1.28)}.editor-entity{position:absolute;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:999px;border:2px solid #fff;background:#e74c3c;color:#fff;font-size:11px;font-weight:900;z-index:2;cursor:-webkit-grab;cursor:grab}.editor-entity.selected{outline:3px solid #8db5ff;box-shadow:0 0 22px rgba(141,181,255,.75)}.editor-statusbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;position:relative}.editor-notice{border-radius:8px;padding:8px 10px;border:1px solid hsla(0,0%,100%,.12)}.editor-notice.info{background:rgba(141,181,255,.1);color:#cfe0ff}.editor-notice.success,.editor-validation.valid{background:rgba(60,180,110,.12);color:#a9f0c4}.editor-notice.warning{background:rgba(255,190,75,.12);color:#ffe0a3}.editor-notice.error,.editor-validation.invalid{background:rgba(255,80,80,.12);color:#ffb7b7}.editor-validation{margin:0;border-radius:8px;padding:8px}.editor-error-list code{color:#ffdfaa}.editor-qa-panel{grid-column:1/-1;background:#101725;border:1px solid rgba(141,181,255,.28);border-radius:12px;padding:12px;max-height:240px;overflow:auto}.editor-qa-panel h2{margin:0 0 8px;font-size:15px}.editor-qa-panel h2:not(:first-child){margin-top:12px}.editor-live-inspector{width:auto}@media (max-width:900px){.editor-shell-integrated{grid-template-areas:"top" "palette" "canvas" "inspector" "status";grid-template-rows:auto auto minmax(360px,1fr) auto auto}.editor-canvas-header,.editor-statusbar,.editor-toolbar{align-items:stretch;flex-direction:column;grid-template-columns:1fr}.editor-canvas-scroll{height:420px}}