*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:Courier New,monospace;background:#000;color:#0f0;overflow-x:hidden;overflow-y:auto}#app{width:100vw;min-height:100vh}.game-container{width:100vw;min-height:100vh;background:#000;color:#0f0;display:flex;flex-direction:column;overflow-y:auto}.game-header{background:#010;border-bottom:2px solid #00ff00;padding:20px;display:flex;justify-content:space-between;align-items:center;position:relative}.header-content{flex:1;text-align:center}.music-toggle-button{background:#030;border:2px solid #00ff00;color:#0f0;padding:10px 15px;font-size:18px;cursor:pointer;border-radius:5px;transition:all .3s ease;min-width:50px;height:50px;display:flex;align-items:center;justify-content:center}.music-toggle-button:hover{background:#050;box-shadow:0 0 10px #0f0;transform:scale(1.1)}.game-title{color:#f44;font-size:36px;margin:0;text-shadow:0 0 10px #ff4444}.game-subtitle{color:#ff0;font-size:16px;margin:10px 0 0}.lobby-container{flex:1;display:flex;align-items:center;justify-content:center;background:#000}.lobby-box{background:#010;border:2px solid #00ff00;padding:20px;text-align:center;max-width:90vw;min-width:50%;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.lobby-title{font-size:32px;color:#f44;margin-bottom:20px;text-shadow:0 0 10px #ff4444}.lobby-description{font-size:18px;color:#ff0;margin-bottom:30px}.lobby-button{background:#f44;color:#000;border:none;padding:15px 30px;font-size:18px;font-family:Courier New,monospace;cursor:pointer;text-transform:uppercase;font-weight:700}.lobby-button:hover{background:#f66}.matchmaking-header,.searching-state,.match-found-state{text-align:center}.searching-animation{margin-bottom:20px}.pulse-indicator{font-size:48px;color:#0f0;animation:pulse 1.5s infinite}@keyframes pulse{0%{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}to{opacity:.3;transform:scale(1)}}.search-details{margin-top:20px}.search-details p{margin:8px 0;color:#ff0;font-size:14px}.opponent-section{display:flex;flex-direction:column;align-items:center;margin:30px 0;gap:20px}@media (max-width: 768px){.opponent-section{flex-direction:column}.vs-divider{order:2;margin:10px 0}}.player-card{background:#010;border:1px solid #00ff00;padding:10px 20px;min-width:200px;width:100%;max-width:400px}.vs-divider{font-size:24px;font-weight:700;color:#f44;text-shadow:0 0 10px #ff4444;margin:0 20px}.countdown-section{text-align:center;margin-top:30px;padding:20px;border:2px solid #ff4444;background:#100}.countdown-display{font-size:72px;color:#f44;font-weight:700;text-shadow:0 0 20px #ff4444;margin:20px 0;font-family:Courier New,monospace}.game-screen{flex:1;display:flex;flex-direction:column}.status-bar{height:60px;background:#030;border-bottom:2px solid #00ff00;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:14px}.player-id{color:#ff0;font-weight:700}.health-good{color:#0f0}.health-warning{color:#ff0}.health-critical{color:#f44}.main-game-area{flex:1;display:flex;min-height:0;overflow:hidden}.attack-panel{width:250px;background:#010;border-right:1px solid #00ff00;padding:20px}.minigame-panel{flex:1;background:#000;padding:20px;overflow-y:auto;display:flex;flex-direction:column}.defense-panel{width:250px;background:#010;border-left:1px solid #00ff00;padding:20px}.panel-title{color:#ff0;font-size:16px;margin:0 0 20px;text-align:center;border-bottom:1px solid #ffff00;padding-bottom:10px}.attack-title{color:#f44}.defense-title{color:#0f0}.panel-divider{color:#f44;font-size:12px;font-weight:700;margin:15px 0 10px;padding:5px 0;border-bottom:1px solid #ff4444;text-align:center}.overview-screen{height:100%;overflow-y:auto}.overview-title{color:#ff0;text-align:center;margin-bottom:30px;font-size:18px;border-bottom:2px solid #ffff00;padding-bottom:15px}.mission-briefing{display:flex;flex-direction:column;gap:15px}.briefing-section{background:#010;border:1px solid #00ff00;border-radius:5px;padding:15px}.briefing-section h4{color:#0f0;margin:0 0 15px;font-size:14px;border-bottom:1px solid #00ff00;padding-bottom:5px}.briefing-section p{color:#ccc;margin:0 0 5px;line-height:1.4}.attack-descriptions{display:flex;flex-direction:column;gap:10px}.attack-desc{background:#000;border-left:3px solid #ff4444;padding:10px;color:#ccc}.attack-desc strong{color:#f44}.status-overview{display:flex;flex-direction:column;gap:10px}.status-metric{display:flex;justify-content:space-between;padding:8px;background:#000;border-radius:3px}.metric-label{color:#888}.metric-value{font-weight:700}.tip{font-style:italic;color:#fa0!important;background:#010;padding:10px;border-left:3px solid #ffaa00;margin-top:10px!important}.match-button{max-width:50%}.attack-button{width:100%;background:#020;color:#0f0;border:1px solid #00ff00;padding:12px;margin-bottom:10px;font-family:Courier New,monospace;cursor:pointer;font-size:12px;text-transform:uppercase}.attack-button:hover{background:#030}.attack-button.active{background:#f44;color:#000;border-color:#f44}.attack-button.cooldown{background:#333;border-color:#666;cursor:not-allowed;opacity:.5}.attack-button.active.cooldown{color:#0f0}.attack-button.cooldown:hover{background:#333}.status-item{margin-bottom:15px;font-size:12px}.status-label{color:#ccc;margin-bottom:5px}.status-value-active{color:#0f0;font-weight:700}.status-value-warning{color:#ff0;font-weight:700}.status-value-critical{color:#f44;font-weight:700}.minigame-container{height:100%;display:flex;flex-direction:column;min-height:0}.minigame-title{color:#f44;margin-bottom:15px;margin-top:0;flex-shrink:0}.minigame-status{background:#010;border:1px solid #ffff00;padding:10px;margin-bottom:15px;font-size:12px;flex-shrink:0}.minigame-output{flex:1;background:#000;border:1px solid #00ff00;padding:10px;font-family:Courier New,monospace;font-size:12px;overflow-y:auto;margin-bottom:10px;min-height:200px;max-height:60vh}.minigame-output-header{color:#0f0;margin-bottom:10px}.minigame-input-area{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.minigame-input{flex:1;background:#000;border:1px solid #00ff00;color:#0f0;font-family:Courier New,monospace;font-size:12px;padding:8px;outline:none}.minigame-input::placeholder{color:#060}.minigame-button{background:#f44;color:#000;border:none;padding:8px 15px;font-family:Courier New,monospace;cursor:pointer;font-size:12px}.minigame-button:hover{background:#f66}.minigame-complete{text-align:center;color:#f44;font-weight:700;padding:15px;border:2px solid #ff4444;background:#100;margin-top:10px;font-size:14px;animation:pulse 2s infinite}@keyframes blink{0%{opacity:1}50%{opacity:.3}to{opacity:1}}.terminal-container,.password-container{height:100%;display:flex;flex-direction:column}.terminal-objective,.objective-box{background:#010;border:1px solid #ffff00;padding:10px;margin-bottom:15px;font-size:12px}.objective-label{color:#ff0}.objective-text{color:#ccc}.low-detection{color:#0f0}.medium-detection{color:#fa0}.high-detection{color:#f44;font-weight:700}.detection-decay{font-size:.8em;color:#888;font-style:italic}.terminal-output{flex:1;background:#000;border:1px solid #00ff00;padding:10px;overflow-y:auto;margin-bottom:10px;font-size:12px}.terminal-line{margin-bottom:2px;color:#0f0}.terminal-line.system{color:#ff0}.terminal-line.success,.terminal-line.terminal-success{color:#f44;font-weight:700}.terminal-line.error{color:#f66}.terminal-line.terminal-prompt{color:#0f0}.terminal-line.terminal-warning{color:#ff0}.terminal-line.terminal-info{color:#ccc}.terminal-line.terminal-border{color:#0ff;font-weight:700}.terminal-line.terminal-header{color:#fa0;font-weight:700}.terminal-line.terminal-tip{color:#f7f;font-weight:700}.terminal-line.terminal-info-highlight{color:#0f8;font-weight:700}.terminal-input-area{display:flex;gap:10px;align-items:center}.terminal-prompt-symbol{color:#0f0;font-family:Courier New,monospace;font-size:14px;font-weight:700;min-width:15px}.terminal-input{flex:1;background:#000;border:1px solid #00ff00;color:#0f0;font-family:Courier New,monospace;font-size:12px;padding:8px;outline:none}.terminal-input::placeholder{color:#060}.terminal-button,.terminal-exec-button{background:#f44;color:#000;border:none;padding:8px 15px;font-family:Courier New,monospace;cursor:pointer;font-size:12px}.terminal-button:hover,.terminal-exec-button:hover{background:#f66}.mission-complete{text-align:center;color:#f44;font-weight:700;padding:15px;border:2px solid #ff4444;background:#100;margin-top:10px;font-size:14px;animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.password-container{height:100%;display:flex;flex-direction:column}.password-status{background:#010;border:1px solid #ffff00;padding:10px;margin-bottom:15px;font-size:12px}.password-output{flex:1;background:#000;border:1px solid #00ff00;padding:10px;font-family:Courier New,monospace;font-size:12px;overflow:auto;margin-bottom:10px}.password-header{color:#0f0;margin-bottom:10px}.password-feedback-cracked{color:#f44;font-weight:700;text-shadow:0 0 5px #ff4444}.password-feedback-hint{color:#ff0;font-style:italic}.password-feedback-incorrect{color:#f66}.password-feedback-correct{color:#4f4;font-weight:700}.password-feedback-lockout{color:red;font-weight:700;text-shadow:0 0 10px #ff0000;animation:blink 1s infinite}.password-feedback-normal{color:#0f0}.password-display{font-size:24px;font-family:Courier New,monospace;letter-spacing:4px;color:#0f0;text-align:center;margin:20px 0;background:#00ff001a;padding:15px;border:2px solid #00ff00}.password-letter-section{margin-bottom:15px}.password-letter-prompt{color:#0f0;margin-bottom:10px;font-weight:700}.password-alphabet-grid{display:flex;flex-wrap:wrap;gap:5px;justify-content:center}.password-letter-button{width:35px;height:35px;background-color:#020;color:#0f0;border:1px solid #00ff00;cursor:pointer;font-family:Courier New,monospace;font-weight:700}.password-letter-button:disabled{cursor:not-allowed;color:#888}.password-letter-button.guessed-correct{background-color:#040}.password-letter-button.guessed-incorrect{background-color:#400}.password-hint-button{background-color:#650!important;color:#ff4!important;border:2px solid #ffff44!important;margin-top:10px;font-weight:700;text-shadow:0 0 3px #ffff44;transition:all .2s ease}.password-hint-button:hover{background-color:#870!important;box-shadow:0 0 8px #ff46;transform:translateY(-1px)}.password-word-prompt{color:#0f0;margin-bottom:10px}.password-lockout-message{color:#f44}.password-input-area{display:flex;gap:10px}.password-input{flex:1;background:#000;border:1px solid #00ff00;color:#0f0;font-family:Courier New,monospace;font-size:12px;padding:8px;outline:none}.password-input::placeholder{color:#060}.password-button{background:#f44;color:#000;border:none;padding:8px 15px;font-family:Courier New,monospace;cursor:pointer}.password-button:hover{background:#f66}.system-locked{text-align:center;color:#f44;font-weight:700;padding:10px;border:1px solid #ff4444;background:#100}.crypto-stats{display:flex;gap:15px;margin-top:8px}.stat-item{color:#0f0;font-size:11px}.stat-warning{color:#ff0!important}.stat-critical{color:#f44!important}.server-cost{color:#ff0;font-size:8px;margin-bottom:2px}.server-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.server-node{background:#020;border:1px solid #004400;padding:8px;cursor:pointer;transition:all .3s ease;font-size:10px;text-align:center}.server-node.server-vulnerable:hover{border-color:#0f0;background:#030}.server-vulnerable{border-color:#040;background:#020}.server-deploying{border-color:#ff0;background:#330;animation:pulse 1s infinite}.server-infected{border-color:#f44;background:#300}.server-name{color:#ccc;font-weight:700;margin-bottom:3px}.server-status{color:#0f0;font-size:9px}.server-infected .server-status{color:#f44}.server-deploying .server-status{color:#ff0}.hash-indicator{color:#f44;font-size:8px;margin-top:2px;font-weight:700}.deployment-progress{margin:10px 0}.progress-label{color:#ff0;font-size:11px;margin-bottom:5px}.progress-bar{width:100%;height:8px;background:#010;border:1px solid #00ff00;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,#0f0,#ff0);transition:width .2s ease}.crypto-logs{max-height:120px;overflow-y:auto;margin-top:10px;font-size:10px}.crypto-log-normal{color:#0f0}.crypto-log-info{color:#0cc}.crypto-log-success{color:#0f0;font-weight:700}.crypto-log-warning{color:#ff0}.crypto-log-error{color:#f44;font-weight:700}.crypto-instructions{text-align:center;color:#ff0;font-size:11px;padding:8px;background:#010;border:1px solid #ffff00;margin-top:5px}.firewall-maze{display:grid;grid-template-rows:repeat(15,1fr);gap:1px;background:#030;padding:10px;border:2px solid #00ff00;max-width:480px;margin:10px auto}.maze-row{display:grid;grid-template-columns:repeat(15,1fr);gap:1px}.maze-cell{width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:16px;border:1px solid transparent}.maze-wall{background:#333;border-color:#555}.maze-path{background:#010;border-color:#030}.maze-player{background:#040;border-color:#0f0;animation:pulse-player 1s infinite alternate}.maze-target{background:#400;border-color:#f44;animation:pulse-target 1s infinite alternate}@keyframes pulse-player{0%{box-shadow:0 0 5px #0f0}to{box-shadow:0 0 15px #0f0}}@keyframes pulse-target{0%{box-shadow:0 0 5px #f44}to{box-shadow:0 0 15px #f44}}.firewall-instructions{background:#010;border:2px solid #00ff00;padding:15px;margin:10px 0;text-align:center}.instruction-line{margin:5px 0;font-size:12px;color:#0f0}.instruction-line:first-child{color:#ff0;font-weight:700;margin-bottom:10px}.instruction-button-container{margin-top:15px;text-align:center}.ddos-battlefield{position:relative;width:500px;height:380px;background:#010;border:2px solid #00ff00;margin:10px auto;overflow:hidden}.ddos-attack-wave{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,transparent 0%,#ff4444 50%,transparent 100%);pointer-events:none;animation:attack-wave 2s ease-out}@keyframes attack-wave{0%{transform:translate(-100%)}to{transform:translate(100%)}}.ddos-failed-wave{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#f44;font-size:16px;font-weight:700;text-shadow:2px 2px 4px #000000;animation:failed-pulse 2s ease-out;pointer-events:none;z-index:10}@keyframes failed-pulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}.ddos-bot{position:absolute;width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;font-size:18px;transition:all .2s;-webkit-user-select:none;user-select:none;border:2px solid;border-radius:6px;background:#030}.ddos-bot-idle{border-color:#0a0;background:linear-gradient(135deg,#030,#040);filter:brightness(.8)}.ddos-bot-selected{animation:bot-selected 1s infinite alternate;border-color:#0f0;background:linear-gradient(135deg,#040,#060);filter:brightness(1.3);transform:scale(1.05)}.ddos-bot-attacking{animation:bot-attacking .5s infinite;border-color:#ff0;background:linear-gradient(135deg,#440,#660);filter:brightness(1.5)}.ddos-bot-cooldown{border-color:#666;background:linear-gradient(135deg,#222,#333);filter:brightness(.4);opacity:.7;cursor:not-allowed}.ddos-bot-detected{border-color:#f44;background:linear-gradient(135deg,#400,#600);filter:brightness(.3);opacity:.5;cursor:not-allowed;animation:bot-detected 2s infinite}@keyframes bot-detected{0%,to{background-color:#f003}50%{background-color:#ff000080}}@keyframes bot-selected{0%{box-shadow:0 0 10px #0f0}to{box-shadow:0 0 20px #0f0}}@keyframes bot-attacking{0%{transform:scale(1)}to{transform:scale(1.2)}}.bot-power{font-size:10px;color:#fff;font-weight:700;margin-top:1px;text-shadow:1px 1px 2px #000000;background:#000000b3;padding:1px 3px;border-radius:2px;min-width:16px}.ddos-server{position:absolute;width:90px;height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:28px;border:3px solid;border-radius:8px;background:linear-gradient(135deg,#020,#030);cursor:pointer;transition:all .2s}.ddos-server-selected{animation:server-selected 1s infinite alternate;transform:scale(1.1)}.ddos-server-failed{animation:server-failed 2s ease-out;border-color:#f44!important}@keyframes server-selected{0%{box-shadow:0 0 10px #fff}to{box-shadow:0 0 20px #fff}}@keyframes server-failed{0%,to{background:linear-gradient(135deg,#020,#030);transform:scale(1)}25%{background:linear-gradient(135deg,#400,#600);transform:scale(.95)}50%{background:linear-gradient(135deg,#400,#600);transform:scale(1.05)}75%{background:linear-gradient(135deg,#400,#600);transform:scale(.98)}}.ddos-server-healthy{border-color:#0f0;color:#0f0}.ddos-server-warning{border-color:#ff0;color:#ff0}.ddos-server-critical{border-color:#f60;color:#f60;animation:server-critical 1s infinite alternate}.ddos-server-down{border-color:red;color:red;background:#200;animation:server-down 2s infinite}@keyframes server-critical{0%{box-shadow:0 0 5px #f60}to{box-shadow:0 0 15px #f60}}@keyframes server-down{0%,to{opacity:1}50%{opacity:.3}}.server-name{font-size:10px;margin-top:2px;font-weight:700;text-shadow:1px 1px 2px #000000}.server-defense{font-size:9px;margin-top:1px;opacity:.9;font-weight:700;text-shadow:1px 1px 1px #000000}.server-health-bar{width:70px;height:6px;background:#333;border:1px solid #666;margin-top:3px;overflow:hidden;border-radius:2px}.server-health-fill{height:100%;background:linear-gradient(90deg,#f44,#ff0,#0f0);transition:width .3s ease}.damage-alert-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#ff00001a;z-index:1000;animation:damage-flash 3s ease-out forwards}.damage-alert{background:#880000f2;border:3px solid #ff4444;border-radius:10px;padding:30px 40px;text-align:center;animation:damage-bounce .5s ease-out;box-shadow:0 0 30px #f44c}.damage-alert-icon{font-size:48px;margin-bottom:10px;animation:shake .5s ease-out}.damage-alert-text{color:#f44;font-size:24px;font-weight:700;margin-bottom:8px;text-shadow:2px 2px 4px rgba(0,0,0,.8);font-family:Courier New,monospace}.damage-alert-damage{color:#ff0;font-size:32px;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.8);font-family:Courier New,monospace}@keyframes damage-flash{0%{opacity:1;background:#ff00004d}20%{background:#ff00001a}to{opacity:0;background:#f000}}@keyframes damage-bounce{0%{transform:scale(.3) rotate(-5deg);opacity:0}50%{transform:scale(1.1) rotate(2deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px) rotate(-5deg)}75%{transform:translate(5px) rotate(5deg)}}.ddos-instructions{background:#010;border:2px solid #00ff00;padding:15px;margin:10px 0;text-align:center}.ddos-controls{display:flex;justify-content:center;gap:10px;margin:10px 0;padding:10px}.game-end-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:70vh;text-align:center;padding:10px}.victory-content,.defeat-content{display:flex;flex-direction:column;align-items:center;gap:30px;max-width:800px;width:100%}.victory-header,.defeat-header{display:flex;flex-direction:column;align-items:center;gap:15px}.victory-title{font-size:3.5rem;color:#0f0;text-shadow:0 0 20px #00ff00;animation:pulse 2s infinite;margin:0}.defeat-title{font-size:3.5rem;color:red;text-shadow:0 0 20px #ff0000;animation:pulse 2s infinite;margin:0}.victory-subtitle,.defeat-subtitle{font-size:1.5rem;color:#ccc;margin:0}.match-summary{display:flex;flex-direction:column;gap:25px;width:100%;padding:20px;background:#00ff001a;border:2px solid #00ff00;border-radius:10px}.summary-section{text-align:center}.summary-section h3{font-size:1.8rem;margin-bottom:15px;color:#0f0}.summary-section p{font-size:1.1rem;line-height:1.6;margin:8px 0;color:#ccc}.player-stats{display:flex;justify-content:space-around;gap:20px;margin-top:20px}.stat-row{display:flex;flex-direction:column;align-items:center;gap:8px;padding:15px;border-radius:8px;min-width:200px}.stat-row.winner{background:#0f03;border:2px solid #00ff00}.stat-row.loser{background:#f003;border:2px solid #ff0000}.stat-label{font-size:1rem;font-weight:700;text-transform:uppercase}.stat-value{font-size:1.3rem;font-weight:700;color:#fff}.game-end-footer{display:flex;flex-direction:column;align-items:center;gap:20px;padding:20px;width:100%;max-width:600px}.countdown-section p{font-size:1.2rem;color:#ccc;margin:0}.action-buttons{display:flex;justify-content:center;gap:15px}.motivational-text{text-align:center;margin-top:10px}.motivational-text p{font-size:1rem;color:#888;font-style:italic;margin:0}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}@media (max-width: 768px){.victory-title,.defeat-title{font-size:2.5rem}.player-stats{flex-direction:column;align-items:center}.stat-row{min-width:auto;width:100%;max-width:300px}.game-end-screen{min-height:60vh;padding:15px}}@media (max-width: 1024px){.main-game-area{flex-direction:column}.attack-panel,.defense-panel{width:100%;border:none;border-bottom:1px solid #00ff00;padding:15px}.defense-panel{border-top:1px solid #00ff00;border-bottom:none}.lobby-box{padding:20px;max-width:95vw}.minigame-output{max-height:40vh;min-height:150px}}@media (max-width: 640px){.game-header{padding:15px;flex-direction:column;gap:10px}.header-content h1{font-size:1.5rem;margin:0}.music-toggle-button{position:static;margin:0}.status-bar{flex-direction:column;gap:10px;text-align:center}.attack-panel,.defense-panel,.minigame-panel{padding:10px}.lobby-box{padding:15px;margin:10px}.minigame-output{font-size:11px;max-height:30vh}.minigame-input-area{flex-direction:column;gap:8px}}.overview-screen{display:flex;flex-direction:column;gap:20px;height:100%;overflow-y:auto}.briefing-section{flex-shrink:0}.attack-descriptions{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:15px;margin-top:15px}
