@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;700&family=Noto+Sans+SC:wght@300;400;700&display=swap');
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --term-fg:#00ff41;
  --term-fg-dim:rgba(0,255,65,.45);
  --term-fg-glow:rgba(0,255,65,.15);
  --term-bg:#000;
  --term-accent:#00ff88;
  --term-warn:#ffb000;
  --term-err:#ff3355;
  --term-info:#00ccff;
  --term-pink:#ff40ff;
  --term-glow:0 0 8px currentColor;
}
body.theme-amber{--term-fg:#ffb000;--term-fg-dim:rgba(255,176,0,.45);--term-fg-glow:rgba(255,176,0,.15);--term-accent:#ffd04f;--term-warn:#ff8800;--term-err:#ff4444;--term-info:#ffcc00;--term-pink:#ff8800}
body.theme-cyan{--term-fg:#00e5ff;--term-fg-dim:rgba(0,229,255,.45);--term-fg-glow:rgba(0,229,255,.15);--term-bg:#000508;--term-accent:#40ffff;--term-warn:#00ffaa;--term-err:#ff4488;--term-info:#80ffff;--term-pink:#ff44ff}
body.theme-red{--term-fg:#ff3355;--term-fg-dim:rgba(255,51,85,.45);--term-fg-glow:rgba(255,51,85,.15);--term-bg:#080002;--term-accent:#ff6680;--term-warn:#ffaa00;--term-info:#ff88aa;--term-pink:#ff44aa}
body.theme-magenta{--term-fg:#ff40ff;--term-fg-dim:rgba(255,64,255,.45);--term-fg-glow:rgba(255,64,255,.15);--term-bg:#06000a;--term-accent:#ff80ff;--term-warn:#ffaa00;--term-err:#ff2266;--term-info:#cc66ff;--term-pink:#ff66ff}
body.theme-white{--term-fg:#e0e0e0;--term-fg-dim:rgba(224,224,224,.4);--term-fg-glow:rgba(224,224,224,.1);--term-bg:#050505;--term-accent:#ffffff;--term-warn:#ffcc00;--term-err:#ff4466;--term-info:#88ccff;--term-pink:#ff88cc}
html,body{width:100%;height:100%;overflow:hidden;background:#000;color:var(--term-fg);font-family:'JetBrains Mono','Noto Sans SC','Courier New',monospace;font-size:13.5px;line-height:1.55;cursor:text}
canvas#bg3d{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;display:block}
canvas#matrix-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;opacity:.15;pointer-events:none}
#term-wrap{position:relative;z-index:3;width:100%;height:100%;display:flex;flex-direction:column;padding:10px 16px 6px;background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.55) 100%);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
#topbar{display:flex;justify-content:space-between;align-items:center;padding-bottom:6px;border-bottom:1px solid var(--term-fg-dim);margin-bottom:6px;font-size:11px;color:var(--term-fg-dim);flex-shrink:0;flex-wrap:wrap;gap:6px}
#topbar .tb-left span{margin-right:14px}
#topbar .tb-right span{margin-left:14px}
.tb-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--term-fg);box-shadow:0 0 8px var(--term-fg);margin-right:5px;animation:pulse-dot 2s infinite}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.3}}
#screen{flex:1;overflow-y:auto;overflow-x:hidden;overflow-wrap:break-word;word-break:break-all;padding-right:6px;scrollbar-width:thin;scrollbar-color:var(--term-fg-dim) transparent}
#screen::-webkit-scrollbar{width:5px}
#screen::-webkit-scrollbar-track{background:transparent}
#screen::-webkit-scrollbar-thumb{background:var(--term-fg-dim);border-radius:3px}
.line{white-space:pre-wrap;min-height:1em;animation:glitch-in .25s ease-out}
@keyframes glitch-in{0%{opacity:0;transform:translateX(-3px);filter:blur(2px)}50%{opacity:.7;transform:translateX(2px)}100%{opacity:1;transform:translateX(0);filter:blur(0)}}
.line.boot{color:var(--term-fg-dim)}
.line.ok{color:var(--term-accent);text-shadow:var(--term-glow)}
.line.warn{color:var(--term-warn);text-shadow:0 0 6px var(--term-warn)}
.line.err{color:var(--term-err);text-shadow:0 0 6px var(--term-err)}
.line.info{color:var(--term-info);text-shadow:0 0 4px var(--term-info)}
.line.pink{color:var(--term-pink);text-shadow:0 0 6px var(--term-pink)}
.line.dim{color:var(--term-fg-dim)}
.line.glow{text-shadow:0 0 8px currentColor}
.line.bold{font-weight:700}
.prompt-line{display:flex;align-items:flex-start}
.prompt{color:var(--term-accent);white-space:nowrap;flex-shrink:0;text-shadow:0 0 4px var(--term-accent)}
.prompt .p-usr{color:var(--term-warn);text-shadow:0 0 4px var(--term-warn)}
.prompt .p-sep{color:var(--term-fg-dim)}
.prompt .p-path{color:var(--term-info);text-shadow:0 0 4px var(--term-info)}
.prompt .p-sym{color:var(--term-err);text-shadow:0 0 4px var(--term-err);margin-left:2px}
#cmd-input{flex:1;background:transparent;border:none;outline:none;color:var(--term-fg);font-family:inherit;font-size:inherit;caret-color:var(--term-fg);text-shadow:0 0 4px var(--term-fg);padding:0;min-width:10px}
#lock-input{flex:1;background:transparent;border:none;outline:none;color:var(--term-fg);font-family:inherit;font-size:inherit;caret-color:var(--term-fg);text-shadow:0 0 4px var(--term-fg);padding:0;min-width:10px}
.cursor-blink::after{content:'▊';animation:blink-cur 1s steps(1) infinite;color:var(--term-fg);text-shadow:0 0 6px var(--term-fg)}
@keyframes blink-cur{0%,50%{opacity:1}51%,100%{opacity:0}}
#bottombar{flex-shrink:0;border-top:1px solid var(--term-fg-dim);padding-top:4px;margin-top:4px;font-size:10.5px;color:var(--term-fg-dim);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px}
#bottombar .bb-left span{margin-right:12px}
#bottombar .bb-right span{margin-left:12px}
pre.ascii{font-family:'JetBrains Mono',monospace;line-height:1.1;color:var(--term-accent);text-shadow:0 0 4px var(--term-accent);white-space:pre;overflow-x:auto}
pre.ascii.warn{color:var(--term-warn);text-shadow:0 0 4px var(--term-warn)}
pre.ascii.err{color:var(--term-err);text-shadow:0 0 4px var(--term-err)}
pre.ascii.pink{color:var(--term-pink);text-shadow:0 0 4px var(--term-pink)}
pre.ascii.info{color:var(--term-info);text-shadow:0 0 4px var(--term-info)}
.crt{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;mix-blend-mode:overlay}
.crt::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.15) 0,rgba(0,0,0,.15) 1px,transparent 1px,transparent 3px)}
.crt::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.6) 100%)}
.flicker{position:fixed;inset:0;z-index:11;pointer-events:none;background:transparent;animation:flicker 6s infinite}
@keyframes flicker{0%,92%,100%{opacity:0}93%{opacity:.06;background:#fff}94%{opacity:0}97%{opacity:.04;background:#fff}98%{opacity:0}}
.glitch-scr{animation:glitch-scr .25s steps(3)}
@keyframes glitch-scr{0%{transform:translate(0)}20%{transform:translate(-4px,2px);filter:hue-rotate(40deg) saturate(2)}40%{transform:translate(4px,-3px);filter:hue-rotate(-30deg)}60%{transform:translate(-2px,3px);filter:hue-rotate(20deg) saturate(1.5)}80%{transform:translate(3px,-1px);filter:hue-rotate(-10deg)}100%{transform:translate(0)}}
.hint-key{display:inline-block;border:1px solid var(--term-fg-dim);padding:0 4px;border-radius:2px;margin:0 1px;font-size:10px}
#overlay-hack{position:fixed;inset:0;z-index:20;background:rgba(0,0,0,.92);display:none;align-items:flex-start;justify-content:center;padding:30px 20px;font-family:'JetBrains Mono',monospace;color:var(--term-err);text-shadow:0 0 6px var(--term-err);font-size:12.5px;flex-direction:column}
#overlay-hack.active{display:flex}
#overlay-hack .hack-title{color:var(--term-warn);font-size:20px;text-shadow:0 0 12px var(--term-warn);margin-bottom:16px;animation:pulse-dot .4s infinite;align-self:center}
#overlay-hack .hack-log{width:100%;max-width:900px;max-height:70vh;overflow-y:auto;white-space:pre-wrap;line-height:1.5;align-self:center}
#overlay-konami{position:fixed;inset:0;z-index:30;background:#000;display:none;align-items:center;justify-content:center;pointer-events:none}
#overlay-konami.active{display:flex}
#overlay-alarm{position:fixed;inset:0;z-index:25;background:rgba(255,0,0,0);display:none;pointer-events:none;animation:alarm-flash .3s steps(2) infinite}
#overlay-alarm.active{display:block}
@keyframes alarm-flash{0%,50%{background:rgba(255,0,0,.25);box-shadow:inset 0 0 100px rgba(255,0,0,.6)}51%,100%{background:rgba(255,0,0,0)}}
#lock-screen{position:relative;z-index:5;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}
#lock-screen .lock-box{text-align:center;max-width:700px;width:100%}
#lock-screen h1{font-size:14px;color:var(--term-fg-dim);margin-bottom:10px;letter-spacing:2px}
#lock-screen .lock-title{color:var(--term-err);font-size:22px;text-shadow:0 0 20px var(--term-err);margin-bottom:20px;letter-spacing:4px;animation:pulse-dot 1.5s infinite}
#lock-screen .lock-msg{color:var(--term-fg-dim);font-size:12px;margin-bottom:16px}
#lock-screen .lock-prompt{display:flex;align-items:center;justify-content:center;font-size:16px;margin-top:10px}
#lock-screen .lock-prompt .p-sym{color:var(--term-accent);text-shadow:0 0 6px var(--term-accent);margin-right:8px}
#lock-screen .lock-err{color:var(--term-err);text-shadow:0 0 8px var(--term-err);margin-top:12px;min-height:1.2em}
#lock-screen .lock-hint{color:var(--term-warn);text-shadow:0 0 4px var(--term-warn);margin-top:8px;font-size:11px;opacity:0;transition:opacity .5s}
.access-granted{color:var(--term-accent)!important;text-shadow:0 0 20px var(--term-accent)!important;animation:grant-flash .5s ease-out}
@keyframes grant-flash{0%{transform:scale(1.2);filter:brightness(3)}50%{transform:scale(1.1);filter:brightness(2)}100%{transform:scale(1);filter:brightness(1)}}
#god-flash{position:fixed;inset:0;z-index:40;background:radial-gradient(circle,rgba(255,255,255,.8) 0%,transparent 70%);display:none;pointer-events:none;animation:god-burst 1.5s ease-out forwards}
@keyframes god-burst{0%{opacity:1;transform:scale(0)}50%{opacity:1;transform:scale(2)}100%{opacity:0;transform:scale(3)}}
.tb-nav{color:var(--term-info);text-decoration:none;border:1px solid var(--term-fg-dim);padding:1px 8px;font-size:10px;letter-spacing:1px;transition:all .2s;margin-left:10px}
.tb-nav:hover{color:var(--term-fg);border-color:var(--term-fg);text-shadow:0 0 6px var(--term-fg);box-shadow:0 0 8px var(--term-fg-glow)}