:root{--bg-terminal:#0d0d0d;--color-phosphor:#00ff41;--color-white:#fff;--color-muted:#007a1f;--color-dark-green:#002208;--color-alert:#fff;--font-mono:"Fira Code", "VT323", "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-terminal);width:100%;height:100%;color:var(--color-phosphor);font-family:var(--font-mono);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;overscroll-behavior:none;overflow:hidden}#root{flex-direction:column;width:100%;height:100dvh;display:flex}button{cursor:pointer;font-family:inherit}.terminal-app{background-color:var(--bg-terminal);width:100%;height:100%;color:var(--color-phosphor);flex-direction:column;display:flex;overflow:hidden}.status-bar{border-bottom:2px solid var(--color-phosphor);letter-spacing:.5px;white-space:nowrap;background-color:#050505;flex-flow:row;flex-shrink:0;justify-content:flex-start;align-items:center;gap:10px;height:38px;padding:0 16px;font-size:11px;line-height:1;display:flex;overflow:auto hidden}.status-bar::-webkit-scrollbar{height:3px}.status-bar::-webkit-scrollbar-thumb{background:var(--color-muted)}.status-item{white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;display:inline-flex}.status-divider{color:#004d14;-webkit-user-select:none;user-select:none;flex-shrink:0;font-weight:700}.status-label{color:var(--color-muted);font-weight:700}.status-value{color:var(--color-phosphor)}.status-value.highlight{color:var(--color-white);font-weight:700}.status-value.warning{color:var(--color-phosphor);font-family:var(--font-mono)}.commands{white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:inline-flex}.key-hint{color:var(--color-muted);white-space:nowrap;align-items:center;font-size:10px;display:inline-flex}.key-hint kbd{color:var(--color-phosphor);border:1px solid var(--color-phosphor);font-size:9px;font-family:var(--font-mono);white-space:nowrap;background-color:#001a06;margin-right:4px;padding:1px 5px}.mainframe-section{background-color:var(--bg-terminal);flex:3;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative;overflow:hidden}.mainframe-wrapper{justify-content:center;align-items:center;width:100%;height:100%;display:flex;container-type:size}.mainframe-canvas{border:2px solid var(--color-phosphor);background-color:var(--bg-terminal);aspect-ratio:800/600;box-sizing:border-box;width:min(100cqw,133.333cqh);height:auto;image-rendering:pixelated;display:block;box-shadow:0 0 20px #00ff4126}.terminal-modal,.terminal-overlay{z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0d0d0deb;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.modal-content,.overlay-box{border:2px solid var(--color-phosphor);text-align:center;background-color:#080808;width:90%;max-width:680px;padding:28px 36px;box-shadow:0 0 30px #00ff4140}.terminal-heading{color:var(--color-white);letter-spacing:2px;text-shadow:0 0 8px #00ff4199;margin-bottom:6px;font-size:32px}.modal-sub{color:var(--color-muted);margin-bottom:20px;font-size:13px}.objective-callout{border:1px solid var(--color-phosphor);text-align:left;background-color:#031508;margin-bottom:20px;padding:14px 18px;box-shadow:inset 0 0 10px #00ff4126}.callout-tag{color:var(--color-white);letter-spacing:1px;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.objective-callout p{color:var(--color-phosphor);font-size:13px;line-height:1.6}.modal-rules{text-align:left;gap:16px;margin-bottom:20px;display:flex}.conditions-grid{text-align:left;gap:12px;margin-bottom:20px;display:flex}.condition-item{border:1px dashed var(--color-muted);background-color:#050505;flex:1;padding:8px 12px;font-size:11px;line-height:1.4}.condition-label{color:var(--color-white);margin-bottom:4px;font-weight:700;display:block}.rule-box{border:1px solid var(--color-muted);background-color:#051408;flex:1;padding:12px;font-size:12px;line-height:1.5}.rule-title{color:var(--color-white);border-bottom:1px solid var(--color-muted);margin-bottom:8px;padding-bottom:4px;font-weight:700;display:block}.alert-danger{border-color:#fff}.alert-danger h2{color:#fff;margin-bottom:12px}.alert-success h2{color:var(--color-phosphor);margin-bottom:12px}.terminal-action-btn{color:var(--color-phosphor);border:2px solid var(--color-phosphor);letter-spacing:1px;background-color:#001a06;outline:none;width:100%;margin-top:10px;padding:12px 24px;font-size:14px;font-weight:700;transition:all .2s}.terminal-action-btn:hover{background-color:var(--color-phosphor);color:#0d0d0d;box-shadow:0 0 15px #00ff4180}.logs-section{border-top:2px solid var(--color-phosphor);background-color:#050505;flex-direction:column;flex:1;min-height:160px;max-height:220px;display:flex;overflow:hidden}.terminal-container{flex-direction:column;height:100%;display:flex}.terminal-header{border-bottom:1px solid var(--color-dark-green);letter-spacing:.5px;background-color:#0a0a0a;justify-content:space-between;align-items:center;padding:6px 14px;font-size:11px;display:flex}.terminal-title{color:var(--color-muted)}.terminal-btn{color:var(--color-muted);border:1px solid var(--color-dark-green);background:0 0;padding:2px 8px;font-size:10px;transition:all .2s}.terminal-btn:hover{color:var(--color-phosphor);border-color:var(--color-phosphor)}.terminal-body{flex-direction:column;flex:1;gap:4px;padding:10px 14px;font-size:12px;line-height:1.6;display:flex;overflow-y:auto}.log-line{gap:10px;display:flex}.log-timestamp{color:var(--color-muted);flex-shrink:0;font-size:11px}.log-content{color:var(--color-phosphor);word-break:break-word}.log-type-ALERT .log-content{color:#fff;font-weight:700}.log-type-PURGE .log-content{color:#fff;background-color:#1a0000;padding:0 4px}.log-type-VICTORY .log-content{color:#fff;text-shadow:0 0 5px var(--color-phosphor)}.log-type-MISSION .log-content{color:#fff;border-left:2px solid var(--color-phosphor);background-color:#002b0f;padding:1px 6px;font-weight:700}.log-type-DENIED .log-content{color:var(--color-muted)}.terminal-cursor-line{align-items:center;margin-top:4px;display:flex}.terminal-prompt{color:var(--color-muted);font-size:12px}.blinking-cursor{color:var(--color-phosphor);font-weight:700;animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.menu-screen{justify-content:center;align-items:center;padding:16px;overflow-y:auto}.menu-screen .modal-content{max-width:820px}.controls-line{color:var(--color-muted);flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-bottom:12px;font-size:11px;display:flex}.controls-line kbd{color:var(--color-phosphor);border:1px solid var(--color-phosphor);font-size:10px;font-family:var(--font-mono);background-color:#001a06;padding:1px 5px}.confirm-overlay{z-index:30}.confirm-actions{gap:12px;margin-top:8px;display:flex}.confirm-actions .terminal-action-btn{white-space:nowrap;flex:1;padding:10px 12px;font-size:12px}.menu-screen .modal-rules{flex-wrap:wrap}.menu-screen .rule-box{min-width:200px}.menu-record{color:var(--color-white);letter-spacing:1px;margin-bottom:4px;font-size:12px}.status-danger{color:#f44}.status-data{color:#ffc400}.status-tech{color:#00c8ff}.status-muted{color:var(--color-muted)}.sector-report h2{margin-bottom:8px}.rank-badge{text-shadow:0 0 12px;border:2px solid;margin-bottom:14px;padding:6px 22px;font-size:56px;font-weight:700;line-height:1;display:inline-block}.rank-S{color:#ffc400}.rank-A{color:var(--color-phosphor)}.rank-B{color:var(--color-white)}.rank-C{color:#ff6b6b}.score-table{border-collapse:collapse;text-align:left;width:100%;margin-bottom:12px;font-size:12px}.score-table td{border-bottom:1px dashed var(--color-dark-green);padding:4px 6px}.score-table td:last-child{text-align:right;color:var(--color-white)}.score-combo td{color:#ffc400}.score-total td{color:var(--color-white);border-bottom:none;border-top:1px solid var(--color-phosphor);font-weight:700}.report-footer{margin-bottom:4px;font-size:12px}.upgrade-terminal{border-color:#00c8ff;max-width:760px}.upgrade-terminal h2{color:#00c8ff;margin-bottom:6px}.upgrade-grid{flex-wrap:wrap;gap:12px;margin-bottom:8px;display:flex}.upgrade-card{text-align:left;color:var(--color-phosphor);background-color:#04121a;border:1px solid #00c8ff;flex-direction:column;flex:180px;gap:6px;padding:12px;font-size:11px;transition:all .15s;display:flex}.upgrade-card:hover:not(:disabled){background-color:#082433;box-shadow:0 0 12px #00c8ff66}.upgrade-card.is-locked{opacity:.5}.upgrade-card.is-bought{border-color:var(--color-phosphor);cursor:default;background-color:#031508}.upgrade-key{color:var(--color-muted);font-weight:700}.upgrade-name{color:var(--color-white);font-size:13px;font-weight:700}.upgrade-level{color:#00c8ff;font-size:10px}.upgrade-desc{flex:1;line-height:1.4}.upgrade-cost{color:#ffc400;text-align:right;font-weight:700}.upgrade-card.is-bought .upgrade-cost{color:var(--color-phosphor)}.menu-screen .modal-rules{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width<=640px){.menu-screen .modal-rules{grid-template-columns:1fr}}.auto-restart{color:var(--color-muted);margin-top:8px;font-size:12px}.auto-restart-bar{transform-origin:0;background-color:#fff;height:3px;margin:8px 0 4px;animation:linear forwards auto-restart-fill}@keyframes auto-restart-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.status-key{color:#78aaff;font-weight:700}.menu-screen{justify-content:flex-start}.menu-screen .modal-content{margin:auto}.terminal-overlay{align-items:flex-start;padding:12px;overflow-y:auto}.terminal-overlay>.overlay-box{margin:auto}.touch-hint{color:var(--color-phosphor);margin-bottom:12px;font-size:12px;line-height:1.5}.touch-mode .controls-line{display:none}@media (width<=900px),(height<=640px){.status-bar{flex-wrap:wrap;gap:3px 12px;height:auto;min-height:30px;padding:5px 10px;font-size:10px;overflow:visible}.status-divider,.status-optional{display:none}.mainframe-section{padding:6px}.logs-section{flex:none;height:92px;min-height:0}.terminal-header{padding:3px 10px;font-size:9px}.terminal-body{padding:4px 10px;font-size:10px;line-height:1.4}.log-timestamp{display:none}}.touch-mode .status-bar .commands{display:none}@media (width<=640px){.modal-content,.overlay-box{width:100%;padding:18px 16px}.terminal-heading{letter-spacing:1px;font-size:22px}.overlay-box h2{font-size:17px}.modal-rules,.conditions-grid{flex-direction:column}.rank-badge{padding:4px 16px;font-size:40px}.confirm-actions{flex-direction:column}.confirm-actions .terminal-action-btn{white-space:normal}.terminal-action-btn{padding:12px 14px;font-size:12px}.upgrade-card{flex-basis:100%}}@media (height<=500px){.logs-section{display:none}}.touch-controls{padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--color-dark-green);touch-action:none;-webkit-user-select:none;user-select:none;background-color:#050505;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;display:flex}.touch-left,.touch-right{align-items:center;gap:10px;display:flex}.touch-right{flex-direction:column;align-items:flex-end}.touch-utility{flex-direction:column;gap:6px;display:flex}.touch-dpad{border:2px solid var(--color-phosphor);touch-action:none;background:radial-gradient(circle,#031508 0%,#050505 70%);border-radius:50%;width:132px;height:132px;position:relative;box-shadow:0 0 12px #00ff4133}.dpad-arrow{color:var(--color-phosphor);pointer-events:none;font-size:18px;line-height:1;position:absolute}.dpad-up{top:10px;left:50%;transform:translate(-50%)}.dpad-down{bottom:10px;left:50%;transform:translate(-50%)}.dpad-left{top:50%;left:12px;transform:translateY(-50%)}.dpad-right{top:50%;right:12px;transform:translateY(-50%)}.touch-btn{min-width:56px;min-height:44px;color:var(--color-phosphor);border:2px solid var(--color-phosphor);font-family:var(--font-mono);touch-action:none;background-color:#001a06;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 10px;display:flex}.touch-btn:active{background-color:var(--color-phosphor);color:#0d0d0d}.touch-btn-label{font-size:12px;font-weight:700}.touch-btn-sub{opacity:.75;font-size:9px}.touch-primary{border-radius:10px;width:92px;height:64px}.touch-primary .touch-btn-label{font-size:15px}.touch-abilities{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:260px;display:flex}.touch-tech{color:#00c8ff;background-color:#04121a;border-color:#00c8ff}.touch-tech:active{background-color:#00c8ff}.touch-tech.is-cooldown{opacity:.4}.touch-small{border-color:var(--color-muted);min-width:64px;min-height:34px;color:var(--color-muted);background-color:#0000;padding:4px 8px}.touch-small .touch-btn-label{font-size:10px}@media (orientation:landscape){.touch-mode .touch-controls{pointer-events:none;padding:0 calc(12px + env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));z-index:15;background:0 0;border:none;align-items:flex-end;position:fixed;inset:auto 0 0}.touch-mode .touch-controls>*{pointer-events:auto}.touch-mode .mainframe-section{padding-left:calc(160px + env(safe-area-inset-left));padding-right:calc(160px + env(safe-area-inset-right))}.touch-mode .logs-section{display:none}.touch-mode .touch-utility{top:calc(env(safe-area-inset-top) + 56px);left:calc(12px + env(safe-area-inset-left));opacity:.85;position:fixed}.touch-mode .touch-utility .touch-small{min-height:30px}.touch-mode .touch-btn{background-color:#001a06bf}.touch-mode .touch-small{background-color:#050505bf}}@media (width<=420px){.touch-dpad{width:118px;height:118px}.touch-primary{width:80px;height:56px}.touch-utility .touch-small{min-width:54px}}@media (width<=640px){.logs-section{display:none}}.touch-mode .mainframe-section{padding-top:4px;padding-bottom:4px}@media (orientation:portrait){.touch-mode .mainframe-section{padding:4px 2px}.touch-mode .mainframe-canvas{border-width:1px}}.touch-mode .mainframe-canvas{touch-action:none}.menu-panel{border:2px solid var(--color-phosphor);text-align:center;background-color:#080808;width:100%;max-width:560px;margin:auto;padding:24px 28px;box-shadow:0 0 30px #00ff4140}.menu-tagline{color:var(--color-phosphor);margin-bottom:12px;font-size:13px;line-height:1.5}.menu-panel .menu-record{margin-bottom:6px}.menu-start{margin:8px 0 14px;padding:14px 20px;font-size:16px}.menu-nav{gap:8px;display:grid}.menu-nav-btn,.menu-back{color:var(--color-phosphor);border:1px solid var(--color-muted);letter-spacing:1px;background-color:#0000;padding:12px 14px;font-size:13px;font-weight:700;transition:all .15s}.menu-nav-btn:hover,.menu-nav-btn:focus-visible,.menu-back:hover,.menu-back:focus-visible{border-color:var(--color-phosphor);color:var(--color-white);background-color:#031508;outline:none}.menu-start:focus-visible{outline:2px solid var(--color-white);outline-offset:2px}.menu-nav-sound{color:var(--color-muted);padding:8px 14px;font-size:11px}.menu-page{text-align:left;flex-direction:column;max-width:640px;max-height:100%;display:flex}.menu-page-header{border-bottom:1px solid var(--color-dark-green);align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.menu-page-header h2{color:var(--color-white);letter-spacing:1px;font-size:16px}.menu-back{flex-shrink:0;padding:8px 12px;font-size:11px}.menu-page-body{flex:1;min-height:0;padding-right:4px;overflow-y:auto}.menu-page .menu-start{margin:12px 0 0}.info-item{border-left:2px solid var(--color-phosphor);background-color:#050f07;margin-bottom:8px;padding:8px 12px}.info-title{color:var(--color-white);letter-spacing:1px;margin-bottom:4px;font-size:12px;font-weight:700;display:block}.info-item p,.info-intro{color:var(--color-phosphor);font-size:12px;line-height:1.55}.info-intro{margin-bottom:10px}.info-section{color:var(--color-muted);letter-spacing:1px;margin:14px 0 8px;font-size:11px;font-weight:700;display:block}.info-section:first-child{margin-top:0}.key-grid{grid-template-columns:auto 1fr;align-items:center;gap:6px 12px;margin-bottom:8px;font-size:12px;display:grid}.key-grid kbd{color:var(--color-phosphor);border:1px solid var(--color-phosphor);font-size:11px;font-family:var(--font-mono);background-color:#001a06;justify-self:start;padding:2px 6px}.menu-screen{height:100%}@media (width<=640px){.menu-panel{padding:18px 16px}.menu-start{font-size:14px}.menu-nav-btn{padding:11px 12px}}@media (height<=500px){.menu-screen{padding:8px}.menu-panel{padding:12px 18px}.menu-home .terminal-heading{margin-bottom:2px;font-size:20px}.menu-home .modal-sub{display:none}.menu-tagline{margin-bottom:6px;font-size:11px}.menu-home .menu-start{margin:4px 0 8px;padding:10px 16px}.menu-nav{grid-template-columns:1fr 1fr;gap:6px}.menu-nav-btn{padding:8px 10px;font-size:11px}.menu-nav-sound{grid-column:1/-1;padding:6px 10px}.menu-page-header{margin-bottom:8px;padding-bottom:8px}.menu-page .menu-start{margin-top:8px;padding:9px 16px}}.menu-page-body,.menu-screen{scrollbar-width:thin;scrollbar-color:var(--color-muted) transparent}.menu-page-body::-webkit-scrollbar{width:4px}.menu-page-body::-webkit-scrollbar-thumb{background-color:var(--color-muted)}
