*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:#000;color:#ff2040;font-family:system-ui,sans-serif}#app{position:relative;width:100%;height:100%}#game-canvas{display:block;width:100%;height:100%;cursor:pointer}#game-canvas.is-pointer-locked{cursor:none}#hud-root{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}@font-face{font-family:Matrix UI;src:local("Consolas"),local("Courier New"),local("monospace")}:root{--matrix-ui-green: #00ff41;--matrix-ui-red: #ff2040;--matrix-ui-red-dim: rgba(255, 96, 118, .92);--matrix-ui-red-border: rgba(255, 64, 88, .72);--matrix-ui-red-glow: 0 0 16px rgba(255, 48, 72, .75);--matrix-ui-green-dim: rgba(0, 255, 65, .55);--matrix-ui-panel: rgba(0, 0, 0, .72);--matrix-ui-border: rgba(0, 255, 65, .28);--matrix-ui-glow: 0 0 12px rgba(0, 255, 65, .35);--matrix-ui-font: "Matrix UI", ui-monospace, "Cascadia Mono", "Segoe UI Mono", monospace;--ui-ease: cubic-bezier(.4, 0, .2, 1);--ui-duration: .55s}@keyframes matrix-text-flicker{0%,to{opacity:1;text-shadow:var(--matrix-ui-glow)}91%{opacity:1}92%{opacity:.78}93%{opacity:1}96%{opacity:.88}97%{opacity:1}}@keyframes matrix-hud-red-flicker{0%,to{opacity:1;box-shadow:0 0 22px #ff204059,inset 0 0 32px #ff406038}92%{opacity:.94}93%{opacity:1}}@keyframes matrix-panel-in{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}#menu-root{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;pointer-events:auto;transition:opacity var(--ui-duration) var(--ui-ease),visibility var(--ui-duration) var(--ui-ease)}#menu-root.is-hidden{opacity:0;visibility:hidden;pointer-events:none}#menu-root.is-exiting{opacity:0;pointer-events:none}.matrix-ui{font-family:var(--matrix-ui-font);color:var(--matrix-ui-green);letter-spacing:.14em;text-transform:uppercase;-webkit-user-select:none;user-select:none}.matrix-panel{background:var(--matrix-ui-panel);border:1px solid var(--matrix-ui-border);box-shadow:inset 0 0 24px #00ff410a;padding:2rem 2.4rem;min-width:min(92vw,420px);animation:matrix-panel-in .6s var(--ui-ease) both}.matrix-title{font-size:clamp(1.6rem,4vw,2.15rem);font-weight:700;text-align:center;margin-bottom:.35rem;animation:matrix-text-flicker 4.5s infinite}.matrix-subtitle{font-size:.72rem;text-align:center;color:var(--matrix-ui-green-dim);margin-bottom:2rem;letter-spacing:.22em}.matrix-menu-actions{display:flex;flex-direction:column;gap:.65rem;align-items:stretch}.matrix-btn{font-family:inherit;font-size:.78rem;letter-spacing:.18em;color:var(--matrix-ui-green);background:#001408a6;border:1px solid var(--matrix-ui-border);padding:.72rem 1rem;cursor:pointer;transition:background .2s,box-shadow .2s,transform .15s}.matrix-btn:hover,.matrix-btn:focus-visible{background:#002810d9;box-shadow:var(--matrix-ui-glow);outline:none}.matrix-btn:active{transform:scale(.98)}.matrix-screen-title{font-size:.85rem;margin-bottom:1.25rem;text-align:center;animation:matrix-text-flicker 5s infinite}.matrix-back{margin-top:1.25rem;width:100%}.matrix-controls-list{font-size:.72rem;line-height:1.85;letter-spacing:.12em;color:var(--matrix-ui-green-dim)}.matrix-controls-list span{color:var(--matrix-ui-green);display:inline-block;min-width:5.5rem}.matrix-settings{display:flex;flex-direction:column;gap:.85rem}.matrix-setting-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.68rem;letter-spacing:.1em}.matrix-setting-row label{flex:1;color:var(--matrix-ui-green-dim)}.matrix-setting-row select,.matrix-setting-row input[type=checkbox]{accent-color:var(--matrix-ui-green);cursor:pointer}.matrix-setting-row select{font-family:inherit;font-size:.65rem;letter-spacing:.08em;color:var(--matrix-ui-green);background:#000c04e6;border:1px solid var(--matrix-ui-border);padding:.35rem .5rem;max-width:9rem}.game-hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity var(--ui-duration) var(--ui-ease)}.game-hud.is-visible{opacity:1}.game-hud-panel{position:absolute;top:1rem;left:1rem;padding:.75rem .9rem;background:#30000cc7;border:1px solid var(--matrix-ui-red-border);box-shadow:0 0 18px #ff204047,inset 0 0 28px #ff30482e;font-family:var(--matrix-ui-font);font-size:.68rem;line-height:1.55;letter-spacing:.1em;color:var(--matrix-ui-red-dim);min-width:9.5rem}.game-hud-panel.game-hud-flicker{animation:matrix-hud-red-flicker 6s infinite}.game-hud-status{color:#ff4d66;text-shadow:var(--matrix-ui-red-glow);font-size:.72rem;margin-bottom:.15rem}.game-hud-online{color:#ff788cfa;text-shadow:0 0 12px rgba(255,48,72,.55);margin-bottom:.55rem;padding-bottom:.45rem;border-bottom:1px solid rgba(255,64,88,.45)}.game-hud-stat{opacity:1;text-shadow:0 0 6px rgba(255,32,64,.2)}.game-hud-coords{margin-top:.45rem;opacity:.95;font-size:.62rem;line-height:1.65}.game-hud-coords-title{opacity:.9;margin-bottom:.1rem}.game-hud-crosshair{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px}.game-hud-crosshair:before,.game-hud-crosshair:after{content:"";position:absolute;background:#00ff4173}.game-hud-crosshair:before{left:6px;top:0;width:1px;height:14px}.game-hud-crosshair:after{top:6px;left:0;width:14px;height:1px}.game-hud-hint{position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%);font-family:var(--matrix-ui-font);font-size:.62rem;letter-spacing:.16em;color:#00ff4173;transition:opacity .3s}.game-hud-hint.is-hidden{opacity:0}.game-hud-interact{position:absolute;bottom:2.35rem;left:50%;transform:translate(-50%);font-family:var(--matrix-ui-font);font-size:.68rem;letter-spacing:.18em;color:var(--matrix-ui-red-dim);text-shadow:var(--matrix-ui-red-glow);pointer-events:none}.game-hud-fade{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;background:#000;opacity:0;pointer-events:none;transition:opacity .08s linear}.game-hud-fade.is-active{pointer-events:auto}.game-hud-event{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);font-family:var(--matrix-ui-font);font-size:.72rem;letter-spacing:.22em;color:var(--matrix-ui-green);text-shadow:var(--matrix-ui-glow);opacity:0;transition:opacity .35s var(--ui-ease);pointer-events:none}.game-hud-event.is-active{opacity:1;animation:matrix-text-flicker .12s infinite}
