@font-face{font-family:Berkeley Mono;src:url(/fonts/BerkeleyMono-Regular.otf) format("opentype"),url(/fonts/BerkeleyMono-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Berkeley Mono;src:url(/fonts/BerkeleyMono-Italic.otf) format("opentype"),url(/fonts/BerkeleyMono-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Berkeley Mono;src:url(/fonts/BerkeleyMono-Bold.otf) format("opentype"),url(/fonts/BerkeleyMono-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Berkeley Mono;src:url(/fonts/BerkeleyMono-BoldItalic.otf) format("opentype"),url(/fonts/BerkeleyMono-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}:root{--font-mono: "Berkeley Mono", "Courier New", monospace}html{height:100%;overflow:hidden;background:#000;--sat: env(safe-area-inset-top);--sar: env(safe-area-inset-right);--sab: env(safe-area-inset-bottom);--sal: env(safe-area-inset-left)}body{margin:0;padding:0;background:#000;overflow:hidden;font-family:Berkeley Mono,Courier New,monospace;color:#0f0;height:100%;width:100%;padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}body:before{content:"";position:fixed;top:0;left:0;right:0;height:calc(env(safe-area-inset-top) + 40px);background:linear-gradient(to bottom,#000c,#0006,#0000);pointer-events:none;z-index:100}*{-webkit-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}canvas{display:block;cursor:crosshair;touch-action:none;position:absolute;top:0;left:0;width:100vw;height:100vh}#stats{position:fixed;top:50%;left:10px;background:#00000080;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);padding:15px;border:1px solid #0f0;font-size:12px;border-radius:3px;max-width:300px;user-select:none;-webkit-user-select:none;color:#0f0;transform-origin:left center}.stats-title-bar{background:#00ff001a;border-bottom:1px solid #0f0;padding:5px 10px;display:flex;justify-content:space-between;align-items:center;user-select:none;margin:-15px -15px 10px}.stats-title{font-weight:700;color:#0f0;text-transform:uppercase}.stats-controls{display:flex;gap:5px;align-items:center}.game-timer{font-size:11px;color:#0f0;opacity:.8}.stats-button{background:transparent;border:1px solid #0f0;color:#0f0;padding:2px 8px;cursor:pointer;font-family:Berkeley Mono,Courier New,monospace;transition:all .2s;text-transform:uppercase}.stats-button:hover{background:#0f03!important;box-shadow:0 0 5px #0f0}.stats-button:active{background:#0f06!important;box-shadow:0 0 10px #0f0;transform:scale(.95)}.stats-button.refresh{font-size:16px!important;line-height:1}.stats-button.close{font-size:12px}#stats *,#teamStats *{color:#0f0!important}#debugPanel{display:none;font-size:10px;color:#0f0;padding:0;margin:10px 0 0}#debugPanel *{color:#0f0!important}#winScreen{position:fixed!important;top:0!important;left:0!important;width:100%!important;height:100%!important;background:#000000f2!important;display:none;align-items:center!important;justify-content:center!important;z-index:10000!important;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}#winModal{background:#000000e6;border:2px solid #0f0;border-radius:3px;padding:40px 60px;box-shadow:0 0 30px #00ff0080;text-align:center;font-family:Berkeley Mono,Courier New,monospace;animation:winModalAppear .25s ease-out}@keyframes winModalAppear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}#winMessage{font-size:32px;font-weight:700;margin-bottom:30px;text-shadow:0 0 10px currentColor;letter-spacing:2px}#restartBtn{background:transparent!important;border:2px solid #0f0!important;color:#0f0!important;padding:12px 30px!important;font-size:18px!important;font-family:Berkeley Mono,Courier New,monospace!important;cursor:pointer!important;transition:all .2s!important;text-transform:uppercase!important;letter-spacing:1px!important}#restartBtn:hover{background:#00ff001a!important;box-shadow:0 0 15px #00ff0080!important;transform:scale(1.05)!important}#restartBtn:active{background:#00ff004d!important;box-shadow:0 0 20px #0f0c!important;transform:scale(.95)!important}#viewSessionBtn{background:transparent!important;border:2px solid #0f0!important;color:#0f0!important;padding:12px 30px!important;font-size:18px!important;font-family:Berkeley Mono,Courier New,monospace!important;cursor:pointer!important;transition:all .2s!important;text-transform:uppercase!important;letter-spacing:1px!important}#viewSessionBtn:hover{background:#00ff001a!important;box-shadow:0 0 15px #00ff0080!important;transform:scale(1.05)!important}#viewSessionBtn:active{background:#00ff004d!important;box-shadow:0 0 20px #0f0c!important;transform:scale(.95)!important}#endScreen{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000f2;display:none;align-items:center;justify-content:center;z-index:10000;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}#endScreenModal{background:#000000e6;border:2px solid #0f0;border-radius:3px;padding:40px 60px;box-shadow:0 0 30px #00ff0080;text-align:center;font-family:Berkeley Mono,Courier New,monospace;animation:winModalAppear .25s ease-out;max-width:80%;max-height:80%;display:flex;flex-direction:column}#endScreenContent{overflow-y:auto;margin-bottom:20px}#winnerMessage{font-size:32px;font-weight:700;margin-bottom:30px;text-shadow:0 0 10px currentColor;letter-spacing:2px;flex-shrink:0}#statsContainer,#commentaryContainer{margin-bottom:30px}#statsContainer h2,#commentaryContainer h2{font-size:24px;color:#0f0;text-transform:uppercase;margin-bottom:15px;border-bottom:1px solid #0f0;padding-bottom:10px}#statsTable{width:100%;border-collapse:collapse;font-size:16px}#statsTable th,#statsTable td{padding:8px 12px;text-align:left;border-bottom:1px solid rgba(0,255,0,.2)}#statsTable th{color:#0f0;text-transform:uppercase}#commentaryText{font-size:16px;font-style:italic;color:#0f0;opacity:.8;line-height:1.6}.managed-window{transition:opacity .2s,border-color .2s,filter .2s}.window-active{opacity:1!important;border-color:#0f0!important}.window-inactive{opacity:.85;border-color:#0a0!important;filter:brightness(.85)}.window-inactive *{opacity:.9}@keyframes alienPanelBootUp{0%{opacity:0;filter:brightness(3) contrast(3) blur(20px);clip-path:polygon(50% 50%,50% 50%,50% 50%,50% 50%)}25%{opacity:.3;filter:brightness(2) contrast(2) blur(10px);clip-path:polygon(48% 49%,52% 49%,52% 51%,48% 51%)}50%{opacity:.6;filter:brightness(1.5) contrast(1.5) blur(5px);clip-path:polygon(25% 40%,75% 40%,75% 60%,25% 60%)}75%{opacity:.85;filter:brightness(1.2) contrast(1.2) blur(2px);clip-path:polygon(5% 10%,95% 10%,95% 90%,5% 90%)}90%{opacity:.95;filter:brightness(1.1) contrast(1.1) blur(1px);clip-path:polygon(0% 2%,100% 2%,100% 98%,0% 98%)}to{opacity:1;filter:brightness(1) contrast(1) blur(0);clip-path:polygon(0% 0%,100% 0%,100% 100%,0% 100%)}}@keyframes alienPanelShutDown{0%{opacity:1;filter:brightness(1) contrast(1);clip-path:polygon(0% 0%,100% 0%,100% 100%,0% 100%)}25%{opacity:.9;filter:brightness(1.2) contrast(1.5);clip-path:polygon(0% 5%,100% 5%,100% 95%,0% 95%)}50%{opacity:.6;filter:brightness(1.5) contrast(2) blur(3px);clip-path:polygon(10% 20%,90% 20%,90% 80%,10% 80%)}75%{opacity:.3;filter:brightness(2) contrast(3) blur(10px);clip-path:polygon(40% 48%,60% 48%,60% 52%,40% 52%)}to{opacity:0;filter:brightness(4) contrast(5) blur(20px);clip-path:polygon(50% 50%,50% 50%,50% 50%,50% 50%)}}@keyframes dataScanLine{0%{transform:translate(-100%);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translate(100%);opacity:0}}#stats.alien-boot-up{animation:alienPanelBootUp .3s cubic-bezier(.4,0,.2,1) forwards}#stats.alien-shut-down{animation:alienPanelShutDown .25s cubic-bezier(.4,0,.6,1) forwards}#stats.alien-boot-up:before{content:"";position:absolute;top:0;bottom:0;left:0;width:2px;background:linear-gradient(90deg,transparent 0%,rgba(0,255,0,.8) 50%,transparent 100%);animation:dataScanLine .5s linear;pointer-events:none}.panel-flicker{animation:panelFlicker .15s infinite}@keyframes panelFlicker{0%,to{opacity:1}50%{opacity:.97}}.sci-fi-checkbox{position:relative;display:inline-block;width:16px;height:16px;margin-right:8px;vertical-align:middle}.sci-fi-checkbox input{opacity:0;width:0;height:0;position:absolute;-webkit-appearance:none;appearance:none}.sci-fi-checkbox .checkmark{position:absolute;top:0;left:0;height:16px;width:16px;background-color:transparent;border:1px solid #0f0;transition:all .2s}.sci-fi-checkbox input:checked~.checkmark{background-color:#0f0;box-shadow:0 0 5px #0f0}.sci-fi-checkbox .checkmark:after{content:"";position:absolute;display:none;left:5px;top:2px;width:4px;height:8px;border:solid #000;border-width:0 2px 2px 0;transform:rotate(45deg)}.sci-fi-checkbox input:checked~.checkmark:after{display:block}.ui-button{position:fixed;bottom:10px;background-color:#000000b3;color:#0f0;padding:5px 10px;font-family:Berkeley Mono,Courier New,monospace;font-size:14px;border-radius:3px;border:1px solid #0f0;cursor:pointer;user-select:none;transition:all .2s;text-transform:uppercase}.ui-button.left{left:10px}.ui-button.right{right:10px}.ui-button .shortcut{font-size:11px;opacity:.7}.ui-button:hover{background-color:#00ff001a!important;box-shadow:0 0 10px #00ff0080}.ui-button:active{background-color:#0f03!important;box-shadow:0 0 15px #0f0c;transform:scale(.95)}.stats-count,#versionNumber{color:#0f0}.version-display{position:fixed;top:calc(45px + env(safe-area-inset-top));left:10px;color:#0f0;font-family:Berkeley Mono,Courier New,monospace;font-size:10px;opacity:.5}#mainStats{line-height:1.4}.main-stats-table{width:100%;border-collapse:collapse;font-size:12px}.main-stats-table td{padding:2px 0;color:#0f0}.main-stats-table td:first-child{text-transform:uppercase;font-weight:700;padding-right:10px}#helpText{font-size:10px;color:#0f0;margin-top:10px;line-height:1.3}#debugPanel{font-size:10px;color:#0f0;margin-top:10px}#debugPanel strong{color:#0f0;font-weight:700}#helpToggleContainer{margin-top:15px}#helpToggleContainer label{display:flex;align-items:center;cursor:pointer;font-size:10px;color:#0f0;margin-bottom:8px;text-transform:uppercase}#helpToggleContainer label:last-child{margin-bottom:0}.renderer-info{color:#0f0}.renderer-hint{font-size:10px;color:#0f0;opacity:.7}#stats strong,#debugPanel strong,#teamStats strong{text-transform:uppercase}#logWindow{margin-top:env(safe-area-inset-top)}#fpsDisplay,#rendererDisplay,#spawnTypeDisplay{text-transform:uppercase}#rendererDisplay,#spawnTypeDisplay{top:calc(10px + env(safe-area-inset-top))!important}#fpsDisplay{top:calc(10px + env(safe-area-inset-top))!important;right:calc(10px + env(safe-area-inset-right))!important}.team-stats-table{width:100%;margin-top:5px;border-collapse:collapse;font-size:11px}.team-stats-table th{text-align:left;padding:3px 5px;border-bottom:1px solid #0f0;color:#0f0;font-weight:700;text-transform:uppercase;font-size:10px}.team-stats-table th:nth-child(2),.team-stats-table th:nth-child(3){text-align:right}.team-stats-table td{padding:2px 5px;color:#0f0}.team-stats-table .team-name{font-weight:700;text-transform:uppercase}.team-stats-table .team-units,.team-stats-table .team-kills{text-align:right!important}.debug-stats-table{width:100%;border-collapse:collapse;font-size:10px;margin-top:5px}.debug-stats-table td{padding:1px 3px;color:#0f0}.debug-stats-table td:first-child{text-transform:uppercase;font-weight:700;width:70%}.debug-stats-table .debug-value{text-align:right;width:30%}
