:root{--doom-red: #c01616;--doom-red-dark: #570000;--doom-red-hot: #ff3434;--doom-metal: #777;--doom-steel: #191919;--doom-paper: #f2f2f2;--doom-muted: #a7a7a7;color:#f5f5f5;background:#030303;font-family:Arial Narrow,Impact,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;height:100vh;margin:0;overflow:hidden;background:radial-gradient(circle at 50% -20%,rgba(120,0,0,.22),transparent 30rem),linear-gradient(180deg,#090909,#020202)}button,select,input{font:inherit}button,select{color:var(--doom-paper);background:linear-gradient(180deg,#2b2b2b,#101010 44%,#050505);border:2px solid var(--doom-metal);border-radius:0;box-shadow:inset 0 1px #ffffff2e,0 2px #050302}button{cursor:pointer;padding:.45rem .75rem;text-transform:uppercase;letter-spacing:.08em;font-family:Impact,Arial Black,Arial Narrow,sans-serif;font-size:.82rem;font-weight:900;text-shadow:2px 2px 0 #000}button:hover:not(:disabled),select:hover:not(:disabled){border-color:#c01818;filter:brightness(1.12)}button:disabled,select:disabled{cursor:not-allowed;color:#776b5b;border-color:#3b332c}select,input{min-height:2rem;padding:.35rem .5rem}#root{width:100%;height:100vh;overflow:hidden}.app-shell{display:flex;flex-direction:column;width:min(1500px,calc(100vw - 12px));height:100vh;margin:0 auto;padding:.45rem 0 .25rem;overflow-x:hidden;overflow-y:auto}.app-main{flex:1;min-height:0;overflow:hidden}.hero{display:flex;align-items:center;justify-content:space-between;gap:.75rem 1rem;flex-shrink:0;margin-bottom:.25rem;min-height:4.1rem;padding:.55rem .7rem .9rem;overflow:visible;border:2px solid #202020;background:linear-gradient(90deg,#080808fa,#3c0000c2),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0 1px,transparent 1px 6px);box-shadow:inset 0 0 0 1px #000,0 4px 16px #0006}.hero-brand{display:flex;align-items:center;gap:.65rem;flex:1;min-width:0;overflow:visible}.hero-meta{display:flex;flex-direction:column;justify-content:center;gap:.05rem;min-width:0}.hero-copy{display:grid;gap:.15rem;min-width:0}.eyebrow,.loader-kicker{color:#f4f4f4;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.62rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.doom-wordmark{display:flex;flex-shrink:0;align-items:flex-end;gap:.35rem;margin:0;padding:0 0 .12rem;line-height:1;overflow:visible}.doom-wordmark-logo{display:block;flex-shrink:0;width:auto;height:auto;max-height:3.15rem;max-width:8.6rem;aspect-ratio:1004 / 308;object-fit:contain;object-position:left bottom;image-rendering:pixelated;image-rendering:crisp-edges}.doom-wordmark-sub{display:inline-flex;align-items:center;align-self:center;padding:.2rem .38rem .16rem;color:#fff;background:linear-gradient(180deg,var(--doom-red) 0%,var(--doom-red-dark) 100%);border:2px solid #230000;font-family:Impact,Arial Black,Arial Narrow,sans-serif;font-size:.72rem;line-height:1;letter-spacing:.08em;text-shadow:1px 1px 0 #000;box-shadow:inset 0 1px #ffffff40,0 2px #080000}.hero-tagline,.hero p{max-width:none;margin:0;color:#b8b8b8;font-family:Arial Narrow,Arial,sans-serif;font-size:.72rem;line-height:1.25;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-tabs{display:flex;flex-shrink:0;align-items:center;gap:.3rem}.mode-tabs button{padding:.32rem .55rem;font-size:.72rem}.mode-tabs button.active,.doom-button:not(.secondary),.music-toggle.active{color:#fff;background:linear-gradient(180deg,var(--doom-red-hot),var(--doom-red-dark));border-color:#f1f1f1}.music-status{display:flex;flex-wrap:wrap;gap:.45rem .65rem;align-items:center;padding:.45rem .55rem;color:#d8d8d8;border:2px solid #252525;background:#050505;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.music-status--inline{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem .5rem;margin-left:0;padding:.22rem .38rem;color:#d8d8d8;border:1px solid #2a2a2a;background:#050505;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;white-space:nowrap;max-width:min(28rem,42vw)}.music-status--inline strong{color:#fff;font-weight:700;overflow:hidden;text-overflow:ellipsis;max-width:12rem}.music-viz{display:block;flex-shrink:0;width:88px;height:20px;border:1px solid #2a2a2a;background:#030303;box-shadow:inset 0 0 0 1px #000,inset 0 1px #ffffff0a;image-rendering:pixelated;image-rendering:crisp-edges}.music-status--compact{flex-shrink:0;padding:.35rem .5rem}.music-status--compact button{padding:.35rem .55rem;font-size:.68rem}.music-status div{display:grid;gap:.2rem}.music-status span{color:#ff3030;font-weight:900}.music-status strong{color:#fff}.doom-panel{border:3px solid #191919;background:linear-gradient(180deg,#070707f2,#000000f2),repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 7px);box-shadow:inset 0 0 0 2px #000,0 18px 60px #0000006b}.app-main>.doom-panel{height:100%;min-height:0}.level-viewer,.voxel-viewer{display:flex;flex-direction:column;gap:.28rem;height:100%;min-height:0;padding:.3rem;overflow:hidden}.voxel-toolbar{display:flex;flex-wrap:wrap;gap:.25rem .35rem;align-items:center;flex-shrink:0;padding:.22rem .3rem;border:1px solid #252525;background:#050505}.voxel-toolbar .doom-button{padding:.32rem .55rem;font-size:.72rem}.voxel-toolbar .doom-field--inline select{min-width:9rem;max-width:14rem}.voxel-toolbar .doom-field--file input[type=file]{max-width:9.5rem;padding:.22rem .35rem;font-size:.68rem}.doom-check--compact{min-height:0;padding:.22rem .4rem;gap:.35rem;border-width:1px;font-size:.68rem;letter-spacing:.03em}.voxel-status--inline{flex:1 1 12rem;min-width:0;margin:0;padding:.28rem .45rem;font-size:.68rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voxel-stage{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.45rem}.voxel-preview-card{margin:0;padding:.3rem;border:2px solid #202020;background:#030303}.voxel-preview-card__caption{display:flex;flex-wrap:wrap;gap:.35rem .65rem;align-items:baseline;margin:0 0 .35rem;color:#fff;font-family:Impact,Arial Black,Arial Narrow,sans-serif;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;text-shadow:1px 1px 0 #000}.voxel-preview-card__caption span{color:#9a9a9a;font-family:Arial Narrow,Arial,sans-serif;font-size:.65rem;font-weight:400;letter-spacing:.02em;text-transform:none;text-shadow:none}.voxel-preview-card canvas{display:block;width:100%;max-width:720px;height:auto}.level-controls{display:flex;flex-wrap:wrap;gap:.4rem .65rem;align-items:end;flex-shrink:0}.level-toolbar{--toolbar-control-height: 1.75rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem .5rem;flex-shrink:0;padding:.35rem .4rem;border:1px solid #252525;background:#050505}.level-toolbar__group{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .45rem;min-width:0}.level-toolbar label.doom-field.doom-field--inline{display:inline-flex;flex-direction:row;align-items:center;gap:.35rem;margin:0}.level-toolbar__group--end{margin-left:auto}.level-toolbar__group--music{flex-wrap:nowrap}.music-status--inline button{padding:.28rem .45rem;font-size:.64rem;flex-shrink:0}.music-status--inline span{color:#ff3030;font-weight:900;flex-shrink:0}.doom-field--inline{display:inline-flex;align-items:center;gap:.35rem}.doom-field--inline span{margin:0}.doom-field--inline select{min-width:7.5rem}.doom-field{display:grid;gap:.2rem}.doom-field span{color:#fff;font-family:Impact,Arial Black,Arial Narrow,sans-serif;font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;text-shadow:1px 1px 0 #000}.doom-field select{min-width:120px}.doom-field.compact input{width:74px}.doom-check{display:inline-flex;align-items:center;gap:.45rem;min-height:2.55rem;padding:.55rem .7rem;color:#fff;border:2px solid #3d3d3d;background:#080808;font-family:Arial Narrow,Arial,sans-serif;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.doom-check input,.doom-field input[type=checkbox]{accent-color:var(--doom-red)}.doom-field input,.doom-field input[type=file]{color:#eee;background:#080808;border:2px solid #3d3d3d}.voxel-status,.voxel-help{margin:0;padding:.75rem;border:2px solid #252525;background:#050505;font-family:Courier New,ui-monospace,monospace}.voxel-status{color:#fc6}.voxel-status.ready{color:#f4f4f4;border-color:#5c0000;box-shadow:inset 0 0 0 1px #160000}.voxel-help{color:#b8b8b8}.voxel-projections{display:flex;flex-wrap:wrap;gap:.75rem}.voxel-projections figure{padding:.5rem;border:2px solid #202020;background:#030303}.voxel-projections figcaption{margin-bottom:.4rem;color:#fff;font-family:Impact,Arial Black,Arial Narrow,sans-serif;letter-spacing:.08em;text-transform:uppercase;text-shadow:2px 2px 0 #000}.doom-loader{display:grid;gap:.25rem;flex-shrink:0;padding:.3rem .4rem;color:#fff;border:1px solid #262626;background:linear-gradient(180deg,#000000fa,#050505fa),repeating-linear-gradient(180deg,rgba(255,255,255,.035) 0 1px,transparent 1px 4px);font-family:Courier New,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;image-rendering:pixelated}.doom-loader--compact.is-settled{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .55rem;padding:.22rem .35rem}.doom-loader--compact.is-settled:before{display:inline-block;margin-bottom:0}.doom-loader--compact.is-settled .loader-header{flex:1;min-width:0;align-items:center}.doom-loader--compact.is-settled .loader-status-line{flex-basis:100%;min-height:auto;padding-top:0}.doom-loader--compact.is-settled .loader-title-group{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .55rem}.doom-loader--compact.is-settled .loader-kicker{margin-right:0}.doom-loader--compact.is-settled .loader-header h2{margin:0;font-size:.78rem}.doom-loader--compact.is-settled .wad-stats--inline{display:inline-flex;flex-wrap:wrap;gap:.3rem .5rem;padding:0;border-top:none}.doom-loader--compact.is-settled .cache-badge{padding:.18rem .35rem;font-size:.64rem}.level-toolbar .doom-button{display:inline-flex;align-items:center;justify-content:center;align-self:center;box-sizing:border-box;min-height:var(--toolbar-control-height);padding:.24rem .55rem;font-size:.74rem;line-height:1}.level-toolbar select{box-sizing:border-box;min-height:var(--toolbar-control-height);padding:.22rem .4rem;font-size:.78rem}.doom-loader--compact.ready .loader-header h2,.doom-loader--compact.cache-hit .loader-header h2{font-size:.88rem}.doom-loader--compact.map-loading .loader-segmented-bar{display:grid}.doom-loader--compact.map-loading .loader-status-line{display:block}.doom-loader:before{content:"DOOM WAD STARTUP";display:inline-block;width:fit-content;padding:.08rem .3rem;color:#fff;background:var(--doom-red);box-shadow:6px 0 #7b0000,12px 0 #4c0000;font-size:.58rem;font-weight:900;letter-spacing:.06em;line-height:1.2}.doom-loader--compact.ready:before,.doom-loader--compact.cache-hit:before{font-size:.58rem}.loader-header{display:flex;gap:.65rem;align-items:flex-start;justify-content:space-between}.loader-title-group{min-width:0}.loader-header h2{margin:.05rem 0 0;color:#fff;text-transform:uppercase;font-size:.82rem;line-height:1.15}.loader-header p{margin:.15rem 0 0;color:#dcdcdc;font-size:.66rem}.cache-badge{align-self:start;flex-shrink:0;padding:.22rem .4rem;color:#fff;border:1px solid #9f0000;background:#300;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;font-weight:900;line-height:1.2}.doom-loader.error .cache-badge{color:#fff;border-color:#ff3030;background:#7a0000}.loader-segmented-bar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.2rem;align-items:stretch}.loader-segment{display:flex;flex-direction:column;gap:.15rem;min-width:0}.loader-segment__label{color:#d8d8d8;font-size:.58rem;font-weight:700;letter-spacing:.02em;line-height:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loader-segment__track{display:block;height:.55rem;border:1px solid #510000;background:#120000;overflow:hidden}.loader-segment__fill{display:block;height:100%;background:repeating-linear-gradient(90deg,#5a0000 0,#5a0000 6px,#170000 6px,#170000 12px);transition:width .18s ease-out}.loader-segment.active .loader-segment__label{color:#fff}.loader-segment.active .loader-segment__fill{background:repeating-linear-gradient(90deg,#d40000 0,#d40000 6px,#8a0000 6px,#8a0000 12px);animation:loader-segment-pulse .9s ease-in-out infinite alternate}.loader-segment.complete .loader-segment__label{color:#fff}.loader-segment.complete .loader-segment__fill{background:repeating-linear-gradient(90deg,#ff3030 0,#ff3030 6px,#b00000 6px,#b00000 12px)}.loader-segment+.loader-segment .loader-segment__track{box-shadow:-1px 0 #ffffff0f}.loader-status-line{min-height:1rem;padding:.15rem .2rem 0;color:#ececec;font-size:.62rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loader-status-line:before{content:">";margin-right:.35rem;color:#c40000;font-weight:900}.loader-status-line.error-line{color:#ff5050}@keyframes loader-segment-pulse{0%{filter:brightness(.92)}to{filter:brightness(1.12)}}.wad-stats--inline{display:flex;flex-wrap:wrap;gap:.35rem .65rem;padding-top:.15rem;border-top:1px solid #290000}.wad-stats--inline span{display:inline-flex;align-items:center;min-height:auto;padding:0;color:#e8e8e8;font-size:.62rem}@media (max-width: 720px){.loader-segmented-bar{grid-template-columns:repeat(3,minmax(0,1fr))}}.app-shell--playing{width:100vw;max-width:none;height:100vh;padding:0;margin:0}.hero--hidden{display:none}.app-shell--playing .app-main>.doom-panel{border:none;box-shadow:none;padding:0}.level-viewer--playing{gap:0;padding:0}.level-viewer--playing .level-controls,.level-viewer--playing .doom-loader,.level-viewer--playing .game-card__caption{display:none}.game-stage{flex:1;min-height:0;display:flex}.game-stage .game-card{flex:1;width:100%;min-height:0}.game-stage .game-card__viewport{min-height:0;height:100%}.level-viewer--playing .game-stage{height:100%}.level-viewer--playing .game-card{flex:1;border:none;grid-template-rows:minmax(0,1fr)}.level-viewer--playing .game-card__viewport{min-height:0;height:100%}.game-canvas,.automap-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.game-canvas{z-index:1}.game-canvas--automap{visibility:hidden}.automap-canvas{z-index:2;pointer-events:none;opacity:0}.automap-canvas--active{opacity:1}.automap-hud{position:absolute;left:.65rem;top:.55rem;z-index:3;padding:.25rem .45rem;color:#fff;background:#000000b8;border:1px solid rgba(255,255,255,.18);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;letter-spacing:.08em;pointer-events:none}.canvas-grid{display:grid;grid-template-columns:minmax(160px,24%) minmax(0,1fr);gap:.45rem;flex:1;min-height:0;align-items:stretch}.canvas-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;margin:0;border:2px solid #202020;background:#000;overflow:hidden}.splash-host{overflow:hidden}.pixel-splash{position:absolute;left:50%;bottom:18%;width:0;height:0;pointer-events:none;z-index:5;filter:drop-shadow(0 0 10px var(--splash-color))}.pixel-splash:before{content:"";position:absolute;left:-56px;bottom:-12px;width:112px;height:18px;background:repeating-linear-gradient(90deg,var(--splash-color) 0 8px,transparent 8px 14px);opacity:.55;animation:splash-ring .62s steps(5,end) forwards}.pixel-splash i{position:absolute;width:8px;height:8px;background:var(--splash-color);image-rendering:pixelated;animation:splash-pixel .62s steps(6,end) forwards;transform:translate(0)}.pixel-splash.exit i{width:6px;height:6px;opacity:.8}@keyframes splash-pixel{0%{opacity:0;transform:translate(0) scale(1.2)}15%{opacity:1}to{opacity:0;transform:translate(var(--x),var(--y)) scale(.35)}}@keyframes splash-ring{0%{opacity:0;transform:scaleX(.35)}25%{opacity:.65}to{opacity:0;transform:scaleX(1.25)}}.canvas-card figcaption{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:space-between;padding:.3rem .45rem;color:#fff;border-bottom:2px solid #1a0000;background:linear-gradient(90deg,#a60000,#420000 55%,#090909),repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 2px,transparent 2px 8px);font-family:Impact,Arial Black,Arial Narrow,sans-serif;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;text-shadow:1px 1px 0 #000}.canvas-card figcaption span{color:#d0d0d0;font-size:.62rem;letter-spacing:.02em;text-transform:none}.canvas-card canvas{width:100%;height:100%;min-height:0;display:block;background:#020202}.game-card__viewport{position:relative;min-height:0;width:100%;height:100%}.doom-level-transition{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;pointer-events:none;background:transparent;visibility:hidden}.doom-level-transition--active{visibility:visible;background:#584848}.doom-level-transition__buffer{display:none}.doom-level-transition__overlay{width:100%;height:100%;display:block;image-rendering:pixelated;image-rendering:crisp-edges}.doom-intermission{position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;pointer-events:none;visibility:hidden;background:#584848}.doom-intermission--active{visibility:visible;pointer-events:auto}.doom-intermission__canvas{width:100%;height:100%;display:block;image-rendering:pixelated;image-rendering:crisp-edges}.doom-hud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;width:100%;height:100%;pointer-events:none;image-rendering:pixelated;image-rendering:crisp-edges}.game-card canvas,.minimap-card canvas{min-height:0}.fps-counter,.voxel-counter{position:fixed;right:12px;z-index:1000;padding:.35rem .55rem;color:#47ff58;background:#000000b8;border:1px solid rgba(71,255,88,.36);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;pointer-events:none}.fps-counter{top:12px}.voxel-counter{top:48px;color:#ff6060;border-color:#ff60605c}@media (max-width: 980px){.hero{flex-direction:column;align-items:stretch}.hero-brand{flex-wrap:wrap}.hero-tagline,.hero p{white-space:normal}.mode-tabs{justify-content:stretch;width:100%}.mode-tabs button{flex:1}.level-toolbar,.voxel-toolbar{align-items:stretch}.voxel-status--inline{flex-basis:100%;white-space:normal}.music-status--inline{margin-left:0;width:100%;flex-wrap:wrap}.canvas-grid{grid-template-columns:1fr;grid-template-rows:minmax(120px,22vh) minmax(0,1fr)}.level-controls{flex-direction:column;align-items:stretch}.music-status--compact{width:100%}}
