:root{--bg: #04050d;--panel: rgba(18, 30, 78, .78);--panel-solid: rgba(16, 26, 70, .97);--line: rgba(120, 220, 255, .32);--text: #eef4ff;--muted: #a9b6dc;--cyan: #00f0ff;--magenta: #ff2bd6;--green: #39ff88;--amber: #ffb800;--red: #ff1f3d;--blue: #2f9bff;--mono: "JetBrains Mono", ui-monospace, monospace;--sans: "Space Grotesk", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;outline:none}.scanlines{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.025) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin:0 0 6px}kbd{font-family:var(--mono);font-size:11px;padding:2px 7px;margin-right:3px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;color:var(--cyan);background:#00f0ff0f}.btn{font-family:var(--mono);font-size:14px;cursor:pointer;border:1px solid var(--cyan);background:transparent;color:var(--cyan);padding:12px 22px;text-decoration:none;display:inline-block;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);transition:background .2s,color .2s,box-shadow .2s}.btn.primary{background:#00f0ff1f}.btn.primary:hover:not(:disabled){background:var(--cyan);color:#00121a;box-shadow:0 0 24px var(--cyan)}.btn:disabled{opacity:.35;cursor:wait}.btn.link{border:none;clip-path:none;color:var(--muted);font-size:13px;padding:10px;text-decoration:underline}.btn.link:hover{color:var(--text)}#intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:16px;background:radial-gradient(ellipse at center,#0e1e5659,#0a1642d1 75%);transition:opacity .8s ease,visibility .8s}#intro.hidden{opacity:0;visibility:hidden;pointer-events:none}.intro-card{max-width:560px;width:100%;text-align:center}.intro-card h1{font-size:clamp(32px,7vw,60px);line-height:1.02;margin:6px 0 18px;letter-spacing:-.02em;text-shadow:0 0 22px rgba(0,240,255,.45)}.term{text-align:left;margin:0 auto 20px;max-width:520px;border:1px solid rgba(120,220,255,.25);background:#060c22e6;border-radius:10px;overflow:hidden;box-shadow:0 20px 60px #0009,0 0 0 1px #ff1f3d14}.term-bar{display:flex;align-items:center;gap:6px;padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.08);background:#ffffff08;font-family:var(--mono);font-size:11px;color:var(--muted)}.term-bar i{width:9px;height:9px;border-radius:50%;background:#3a3f55}.term-bar i:first-child{background:var(--red)}.term-bar span{margin-left:8px}#boot{font-family:var(--mono);font-size:12px;line-height:1.6;color:#c9d1e8;height:236px;overflow:hidden;padding:10px 14px}#boot div{white-space:pre-wrap;word-break:break-all}#boot .cmd{color:#fff}#boot .dim{color:var(--muted)}#boot .ok{color:var(--green)}#boot .warn{color:var(--amber)}#boot .alert{color:#fff;background:var(--red);display:inline-block;padding:0 6px;animation:blink .25s 4 steps(1)}#boot .caret:after{content:"█";animation:blink 1s infinite steps(1)}@keyframes blink{50%{opacity:0}}#start-btn.ready{animation:pulse 1.6s infinite}@keyframes pulse{50%{box-shadow:0 0 22px #00f0ff8c}}@media (max-width: 520px){#boot{height:200px;font-size:10.5px}}#siem{position:fixed;left:16px;bottom:16px;z-index:9;width:min(440px,calc(100% - 32px));font-family:var(--mono);font-size:11px;line-height:1.55;background:#02040ab8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.08);border-left:2px solid var(--blue);opacity:0;transition:opacity .8s .6s;pointer-events:none}body.playing #siem{opacity:1}.siem-head{padding:6px 10px;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.06);display:flex;gap:8px}.siem-head .live{color:var(--red);animation:blink 1.2s infinite steps(1)}.siem-count{margin-left:auto}.siem-count b{color:var(--blue)}#siem-lines{padding:6px 10px 8px;height:132px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}.ev{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#9aa5c4;animation:evIn .3s}.ev .ts{color:#4d5675}.ev b{color:#fff;font-weight:600}.ev.warn{color:var(--amber)}.ev.alert{color:var(--red)}.ev.alert b{color:#fff;background:var(--red);padding:0 3px}.ev.ok{color:var(--blue)}@keyframes evIn{0%{opacity:0;transform:translate(-6px)}}@media (max-width: 720px),(pointer: coarse){#siem{display:none}}#alert-banner{position:fixed;top:74px;left:50%;z-index:30;transform:translate(-50%,-20px);font-family:var(--mono);font-size:14px;font-weight:700;letter-spacing:.08em;padding:10px 18px;opacity:0;pointer-events:none;transition:.25s;white-space:nowrap}#alert-banner span{font-weight:400;font-size:12px;letter-spacing:0;margin-left:10px;opacity:.85}#alert-banner.show{opacity:1;transform:translate(-50%)}#alert-banner.red{background:var(--red);color:#fff;box-shadow:0 0 40px #ff1f3d99;animation:shake .3s 3}#alert-banner.blue{background:#02040ae6;color:var(--blue);border:1px solid var(--blue);box-shadow:0 0 30px #2f9bff66}@keyframes shake{25%{transform:translate(calc(-50% - 4px))}75%{transform:translate(calc(-50% + 4px))}}@media (prefers-reduced-motion: reduce){#alert-banner.red,#boot .alert,.siem-head .live,#start-btn.ready{animation:none}}@media (max-width: 720px){#alert-banner{top:56px;font-size:12px}#alert-banner span{display:none}}.controls{display:grid;grid-template-columns:repeat(3,auto);justify-content:center;gap:10px 22px;margin:0 0 26px;font-size:13px;color:var(--muted)}.controls div{display:flex;align-items:center;gap:6px}@media (pointer: coarse){.controls{display:none}}.glitch{position:relative}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.glitch:before{color:var(--red);animation:glitch 3.2s infinite steps(1);clip-path:inset(0 0 60% 0)}.glitch:after{color:var(--cyan);animation:glitch 2.7s infinite reverse steps(1);clip-path:inset(55% 0 0 0)}@keyframes glitch{0%,88%,to{transform:none;opacity:0}90%{transform:translate(-3px,1px);opacity:.9}93%{transform:translate(3px,-1px);opacity:.9}96%{transform:translate(-1px);opacity:.7}}@media (prefers-reduced-motion: reduce){.glitch:before,.glitch:after{display:none}}#hud{position:fixed;top:12px;left:16px;right:16px;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 8px 8px 18px;background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 40px #060c2859;opacity:0;transform:translateY(-14px);transition:opacity .6s .4s,transform .6s .4s;pointer-events:none}body.playing #hud{opacity:1;transform:none;pointer-events:auto}.brand{display:flex;flex-direction:column;font-family:var(--mono);line-height:1.25}.brand strong{font-size:15px;letter-spacing:.12em;color:#fff}.brand span{font-size:11px;color:var(--cyan)}#nav{display:flex;gap:2px;align-items:center}#nav button{font-family:var(--sans);font-size:14px;font-weight:500;cursor:pointer;color:var(--text);background:transparent;border:0;border-radius:9px;padding:9px 14px;position:relative;display:flex;align-items:center;gap:7px;transition:background .2s,color .2s}#nav button .num{font-family:var(--mono);font-size:10px;color:var(--cyan);opacity:.8}#nav button:hover{background:#ffffff14;color:#fff}#nav button.active{background:var(--cyan);color:#04121c}#nav button.active .num{color:#04121c}#nav button.visited:after{content:"";position:absolute;top:6px;right:6px;width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green)}#nav button.alt{margin-left:6px;border:1px solid rgba(255,255,255,.18)}#nav button.alt .num{color:var(--magenta)}#menu-btn{display:none;width:42px;height:42px;border-radius:10px;cursor:pointer;background:#ffffff0f;border:1px solid var(--line);flex-direction:column;justify-content:center;align-items:center;gap:5px}#menu-btn i{display:block;width:18px;height:2px;background:var(--text);transition:transform .25s,opacity .25s}body.menu-open #menu-btn i:nth-child(1){transform:translateY(7px) rotate(45deg)}body.menu-open #menu-btn i:nth-child(2){opacity:0}body.menu-open #menu-btn i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width: 1080px){#menu-btn{display:flex}#nav{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;flex-direction:column;align-items:stretch;gap:2px;padding:8px;background:var(--panel-solid);border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px #060c2880;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .2s,transform .2s}body.menu-open #nav{opacity:1;transform:none;pointer-events:auto}#nav button{padding:12px 14px;font-size:15px}#nav button.alt{margin:6px 0 0}}#minimap-wrap{position:fixed;left:16px;bottom:206px;z-index:9;width:168px;text-align:center;opacity:0;transition:opacity .8s .6s;pointer-events:none}body.playing #minimap-wrap{opacity:1;pointer-events:auto}#minimap{width:168px;height:168px;display:block;cursor:pointer;border-radius:50%;border:1px solid var(--line);box-shadow:0 8px 30px #060c2866}.mm-cap{display:block;margin-top:6px;font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.08em}@media (max-width: 720px){#minimap-wrap{bottom:16px}}@media (max-height: 640px){#minimap-wrap{display:none}}@media (pointer: coarse){#minimap-wrap{top:76px;bottom:auto;left:auto;right:12px;width:112px}#minimap{width:112px;height:112px}.mm-cap{display:none}}#guide{position:fixed;left:50%;bottom:22px;z-index:11;transform:translate(-50%,20px);opacity:0;pointer-events:none;display:flex;align-items:center;gap:10px;font-family:var(--sans);font-size:14px;color:var(--text);cursor:pointer;background:var(--panel-solid);border:1px solid var(--cyan);border-radius:999px;padding:9px 10px 9px 18px;box-shadow:0 0 24px #00f0ff40;transition:opacity .3s,transform .3s}#guide.show{opacity:1;transform:translate(-50%);pointer-events:auto}#guide:hover{background:#00f0ff2e}#guide .g-k{font-family:var(--mono);font-size:11px;color:var(--cyan);letter-spacing:.1em}#guide .g-d{font-family:var(--mono);font-size:12px;color:var(--muted)}#guide kbd{margin:0}@media (pointer: coarse){#guide{left:12px;bottom:auto;top:76px;transform:translateY(-10px)}#guide.show{transform:none}#guide kbd{display:none}}.holo-card{perspective:900px;margin:4px 0 18px}.holo-inner{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4 / 5;max-height:340px;margin:0 auto;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.8,.2,1);border:1px solid rgba(0,240,255,.55);box-shadow:0 18px 40px #040a288c,0 0 30px #00f0ff40;animation:float 6s ease-in-out infinite;--gx: 50%;--gy: 30%}.holo-card.tilting .holo-inner{transition:transform .08s;animation:none}.holo-inner img{display:block;width:100%;height:100%;object-fit:cover}.holo-glare{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(circle at var(--gx) var(--gy),rgba(255,255,255,.35),transparent 45%),linear-gradient(125deg,#00f0ff2e,#ff2bd61f 50%,#39ff881f)}.holo-scan{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(0,240,255,.07) 0 1px,transparent 1px 4px)}.holo-scan:after{content:"";position:absolute;left:0;right:0;height:30%;background:linear-gradient(to bottom,transparent,rgba(0,240,255,.22),transparent);animation:sweep 3.5s linear infinite}.holo-tag{position:absolute;left:12px;bottom:12px;transform:translateZ(30px);font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:#fff;background:#060c22bf;border:1px solid var(--cyan);padding:6px 10px;border-radius:6px}.holo-tag em{display:block;font-style:normal;color:var(--green);font-size:10px;margin-top:2px}@keyframes sweep{0%{top:-30%}to{top:100%}}@keyframes float{0%,to{transform:rotateY(-6deg) rotateX(3deg)}50%{transform:rotateY(6deg) rotateX(-2deg)}}@media (prefers-reduced-motion: reduce){.holo-inner,.holo-scan:after{animation:none}}#classic .holo-card{max-width:300px;margin:28px 0 0}#panel-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}#panel-nav:empty{display:none}#panel-nav span{font-family:var(--mono);font-size:11px;color:var(--muted)}#panel-nav button{font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;background:#ffffff0f;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 12px;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background .2s,border-color .2s}#panel-nav button:hover{background:#00f0ff24;border-color:var(--cyan)}#panel-nav button.cta{background:var(--cyan);color:#04121c;border-color:var(--cyan);max-width:none;font-weight:700}#hint{position:fixed;top:84px;left:50%;transform:translate(-50%);z-index:10;font-family:var(--mono);font-size:12px;color:var(--muted);border-radius:8px;background:var(--panel);border:1px solid var(--line);padding:8px 14px;opacity:0;transition:opacity 1s;pointer-events:none;white-space:nowrap}body.playing #hint{opacity:1}body.playing #hint.fade{opacity:0}@media (pointer: coarse){#hint{display:none}}#panel{position:fixed;z-index:15;top:50%;right:20px;width:min(420px,calc(100% - 32px));max-height:calc(100% - 140px);overflow-y:auto;padding:26px 26px 22px;background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:0 0 40px #00f0ff14,inset 0 0 30px #00f0ff0a;clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px);transform:translate(calc(100% + 40px),-50%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}#panel.open{transform:translateY(-50%)}#panel:before{content:"";position:absolute;top:0;left:18px;right:0;height:2px;background:linear-gradient(90deg,var(--cyan),var(--magenta))}#panel h2{margin:0 0 14px;font-size:28px;letter-spacing:-.01em}#panel h4{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin:18px 0 8px;color:var(--cyan)}#panel p{line-height:1.6;font-size:15px;color:var(--text)}#panel strong{color:#fff}#panel-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--muted);font-size:26px;cursor:pointer;line-height:1}#panel-close:hover{color:var(--magenta)}.muted{color:var(--muted)!important;font-size:14px!important}.status{font-family:var(--mono);font-size:12.5px!important;color:var(--green)!important}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}.chip{font-family:var(--mono);font-size:12px;padding:4px 9px;border:1px solid color-mix(in srgb,var(--c) 55%,transparent);background:color-mix(in srgb,var(--c) 10%,transparent);color:var(--text)}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.stats div{border:1px solid var(--line);padding:10px 12px;background:#00f0ff0a}.stats b{display:block;font-size:24px;color:var(--cyan);font-family:var(--mono)}.stats span{font-size:12px;color:var(--muted)}.timeline{list-style:none;padding:0;margin:0}.timeline>li{position:relative;padding:0 0 16px 18px;border-left:1px solid var(--line)}.timeline>li:before{content:"";position:absolute;left:-5px;top:4px;width:9px;height:9px;background:var(--green);box-shadow:0 0 8px var(--green)}.tl-period{font-family:var(--mono);font-size:11.5px;color:var(--green)}.tl-role{font-weight:700;margin-top:2px}.tl-org{font-size:13px;color:var(--muted)}.timeline ul{margin:8px 0 0;padding-left:16px;font-size:13.5px;line-height:1.55;color:var(--text)}.timeline ul li{margin-bottom:4px}.certs{list-style:none;padding:0;margin:0;display:grid;gap:8px}.certs li{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:10px 12px;border:1px solid var(--line);font-size:14px}.certs .cg{font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--magenta);padding-top:2px}.certs em{display:block;font-style:normal;font-size:12px;color:var(--green);margin-top:3px;font-family:var(--mono)}.links{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:6px}.links a{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 14px;border:1px solid var(--line);color:var(--text);text-decoration:none;transition:border-color .2s,background .2s}.links a:hover{border-color:var(--amber);background:#ffb8000f}.links .lk{font-family:var(--mono);font-size:12px;color:var(--amber);text-transform:uppercase}.links .lv{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#touch{display:none}@media (pointer: coarse){body.playing #touch{display:block}}#joy{position:fixed;left:24px;bottom:28px;z-index:12;width:124px;height:124px;border-radius:50%;border:1px solid var(--line);background:#00f0ff0f;touch-action:none}#joy-knob{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:#00f0ff40;border:1px solid var(--cyan);box-shadow:0 0 16px #00f0ff80;pointer-events:none}.touch-btns{position:fixed;right:20px;bottom:32px;z-index:12;display:flex;gap:12px}.touch-btns button{width:74px;height:74px;border-radius:50%;font-family:var(--mono);font-size:11px;color:var(--cyan);background:#00f0ff14;border:1px solid var(--line);touch-action:none;user-select:none;-webkit-user-select:none}.touch-btns button:active{background:#00f0ff4d}#boost-btn{color:var(--magenta);border-color:#ff2bd666}#classic{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;overflow-y:auto;background:radial-gradient(ellipse at top,#0c1230,var(--bg) 60%);display:none}#classic.open{display:block}#classic-close{position:fixed;top:16px;right:16px;z-index:41;background:#04050dd9}.classic-inner{max-width:820px;margin:0 auto;padding:72px 16px 80px}.classic-head h1{font-size:clamp(32px,6vw,52px);margin:0 0 10px;line-height:1.05}.classic-head p{color:var(--muted);font-size:17px;line-height:1.6}#classic section{margin-top:56px}#classic section h2{font-size:26px;margin:0 0 14px}#classic h4{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin:18px 0 8px;color:var(--cyan)}#classic p{line-height:1.65}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.card{border:1px solid color-mix(in srgb,var(--c) 40%,transparent);padding:20px;background:#060a1a99}.card .kicker{color:var(--c)}.card h3{margin:0 0 6px;font-size:20px}.card p{font-size:14px}@media (max-width: 720px){#hud{top:10px;left:10px;right:10px;padding:6px 6px 6px 14px}.brand strong{font-size:13px}.brand span{font-size:10px}#panel{top:76px;right:16px;left:16px;width:auto;max-height:48vh;transform:translateY(calc(-100% - 80px));padding:20px 18px 16px}#panel.open{transform:translateY(0)}#panel h2{font-size:22px}.controls{grid-template-columns:repeat(2,auto)}}:root[data-theme=root]{--bg: #050505;--panel: rgba(10, 10, 10, .86);--panel-solid: rgba(8, 8, 8, .97);--line: rgba(31, 139, 255, .4);--text: #ececec;--muted: #a3a3a3;--cyan: #1f8bff;--magenta: #ffffff;--blue: #ffffff}:root[data-theme=root] #hud,:root[data-theme=root] #panel,:root[data-theme=root] #nav button,:root[data-theme=root] #guide,:root[data-theme=root] .btn{border-radius:0}:root[data-theme=root] #nav button.active{background:#1f8bff;color:#000}:root[data-theme=root] #nav button.active .num{color:#000}:root[data-theme=root] #panel h2,:root[data-theme=root] #nav button{font-family:var(--mono);text-transform:lowercase}:root[data-theme=root] .brand strong{text-shadow:0 0 12px #1f8bff}:root[data-theme=root] #panel:before{background:linear-gradient(90deg,#1f8bff,#fff)}:root[data-theme=root] .glitch:after{color:#fff}
