.vhs-grain{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:var(--vhs-grain-opacity);z-index:var(--z-vhs-effects);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' /%3E%3C/svg%3E");animation:vhsGrainMove .2s steps(10) infinite}@keyframes vhsGrainMove{0%,to{transform:translate(0)}10%{transform:translate(-5%,-5%)}20%{transform:translate(-10%,5%)}30%{transform:translate(5%,-10%)}40%{transform:translate(-5%,15%)}50%{transform:translate(10%,5%)}60%{transform:translate(5%,-10%)}70%{transform:translate(-10%)}80%{transform:translate(10%,10%)}90%{transform:translateY(5%)}}.vhs-scanlines{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:var(--z-vhs-effects);background:linear-gradient(to bottom,#fff0 50%,rgba(0,0,0,var(--vhs-scanline-opacity)) 50%);background-size:100% var(--vhs-scanline-size);animation:scanlineDrift var(--vhs-tracking-speed) linear infinite}@keyframes scanlineDrift{0%{transform:translateY(0)}to{transform:translateY(10px)}}.vhs-tracking{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:var(--z-vhs-effects);overflow:hidden}.vhs-tracking-line{position:absolute;left:0;width:100%;height:1px;background:#ffffff1a;animation:trackingDrift 5s ease-in-out infinite}@keyframes trackingDrift{0%,to{top:-2%;opacity:0}10%{opacity:.8}50%{top:50%}90%{opacity:.8}}.vhs-wobble{animation:tapeWobble var(--vhs-wobble-speed) ease-in-out infinite alternate}@keyframes tapeWobble{0%{transform:skew(0)}25%{transform:skew(.3deg)}50%{transform:skew(0)}75%{transform:skew(-.3deg)}to{transform:skew(0)}}.chromatic{position:relative}.chromatic:before,.chromatic:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;mix-blend-mode:screen}.chromatic:before{color:red;transform:translate(calc(var(--chromatic-offset) * -1));opacity:.8}.chromatic:after{color:#0ff;transform:translate(var(--chromatic-offset));opacity:.8}@keyframes chromaticExplode{0%{--chromatic-offset: 0px}50%{--chromatic-offset: 15px}to{--chromatic-offset: 0px}}.vhs-distortion{animation:edgeDistort .3s ease-in-out infinite alternate}@keyframes edgeDistort{0%{clip-path:inset(0 0 0 0)}25%{clip-path:inset(0 1px 0 0)}50%{clip-path:inset(0 0 0 1px)}75%{clip-path:inset(1px 0 0 0)}to{clip-path:inset(0 0 1px 0)}}.vhs-colorband{position:fixed;top:0;left:0;width:100%;height:10%;pointer-events:none;z-index:var(--z-vhs-effects);background:linear-gradient(to bottom,transparent,rgba(255,0,0,.1),transparent);filter:blur(10px);animation:colorbandDrift 6s ease-in-out infinite}@keyframes colorbandDrift{0%,to{top:-10%}50%{top:100%}}.vhs-static{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:var(--z-top);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='static'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.5' numOctaves='2' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23static)' /%3E%3C/svg%3E");opacity:0;animation:staticFlash .1s steps(2)}@keyframes staticFlash{0%,to{opacity:0}50%{opacity:.5}}@keyframes filmBurn{0%{opacity:0;filter:brightness(1)}20%{opacity:.5;filter:brightness(3)}50%{opacity:1;filter:brightness(1.5)}to{opacity:1;filter:brightness(1)}}.vhs-pause-distortion{animation:pauseDistort 4s ease-in-out infinite}@keyframes pauseDistort{0%,to{transform:scaleY(1)}25%{transform:scaleY(1.02) translateY(5px)}50%{transform:scaleY(.98) translateY(-5px)}75%{transform:scaleY(1.01) translateY(2px)}}.vhs-flicker{animation:flicker .15s steps(2) infinite}@keyframes flicker{0%,to{opacity:1}50%{opacity:.95}}.vhs-glitch-lines{position:relative;overflow:hidden}.vhs-glitch-lines:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(to bottom,transparent 0%,var(--color-danger) 2%,transparent 2%,transparent 48%,var(--color-danger) 50%,transparent 50%,transparent 98%,var(--color-danger) 100%);animation:glitchSlide .5s steps(4) infinite;opacity:.5;pointer-events:none}@keyframes glitchSlide{0%{left:-100%}to{left:100%}}.desaturate{animation:desaturate 2s ease-out forwards}@keyframes desaturate{0%{filter:saturate(1) brightness(1)}to{filter:saturate(0) brightness(.7)}}:root{--color-danger-dark: #8B0000;--color-danger: #C00;--color-danger-bright: #FF0000;--color-blood: #D32F2F;--color-warning: #FF8C00;--color-warning-light: #FFA500;--color-safe: #3A4F3A;--color-safe-bright: #4F4;--color-victory: #00FF41;--color-military: #556B2F;--color-military-light: #6B8E23;--color-grey-dark: #1A1A1A;--color-grey: #2A2A2A;--color-grey-light: #666;--color-white: #FFF;--color-black: #000;--color-pause: #2C3E50;--color-pause-light: #34495E;--font-primary: "IBM Plex Mono", monospace;--font-display: "Press Start 2P", monospace;--font-mono: "IBM Plex Mono", monospace;--font-size-small: 13px;--font-size-normal: 16px;--font-size-large: 24px;--font-size-title: 42px;--font-size-massive: 56px;--vhs-grain-opacity: .12;--vhs-scanline-opacity: .08;--vhs-scanline-size: 2px;--vhs-tracking-speed: 8s;--vhs-wobble-speed: 2.5s;--chromatic-offset: 2px;--spacing-xs: 5px;--spacing-small: 10px;--spacing-medium: 20px;--spacing-large: 40px;--spacing-xl: 60px;--animation-instant: .1s;--animation-fast: .2s;--animation-normal: .5s;--animation-slow: 1s;--animation-veryslow: 2s;--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-elastic: cubic-bezier(.68, -.6, .32, 1.6);--glow-red: 0 0 20px var(--color-danger);--glow-green: 0 0 20px var(--color-victory);--glow-orange: 0 0 15px var(--color-warning);--shadow-text: 3px 3px 0 var(--color-black);--shadow-heavy: 5px 5px 0 var(--color-black);--vignette-dark: radial-gradient( circle at center, transparent 0%, rgba(0, 0, 0, .5) 70%, rgba(0, 0, 0, .9) 100% );--vignette-red: radial-gradient( circle at center, transparent 0%, rgba(139, 0, 0, .3) 70%, rgba(139, 0, 0, .7) 100% );--z-background: 0;--z-vhs-effects: 10;--z-content: 20;--z-overlays: 30;--z-particles: 40;--z-top: 50;--ui-scale: 1}#ui-overlay,.guestbook{container-type:size}.vt323{font-family:var(--font-primary)}.creepster{font-family:var(--font-display)}.mono{font-family:var(--font-mono)}.glow-red{text-shadow:var(--glow-red),var(--shadow-text)}.glow-green{text-shadow:var(--glow-green),var(--shadow-text)}.glow-orange{text-shadow:var(--glow-orange),var(--shadow-text)}.no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.full-screen{position:fixed;top:0;left:0;width:100%;height:100%;overflow:hidden}:root{--ui-red: #ff5a4a;--ui-red-fill: #8f1d12;--ui-red-line: #7a1c14;--ui-amber: #e8a33a;--ui-green: #5fef5f;--ui-text: #e8e3d8;--ui-muted: #a8a39a;--ui-panel: rgba(12, 3, 6, .86);--ui-panel-line: rgba(190, 30, 20, .4);--ui-hint-font: "VT323", "IBM Plex Mono", monospace}.vhs-osd{position:absolute;top:22px;left:28px;z-index:120;display:flex;align-items:center;gap:10px;font-family:var(--ui-hint-font);font-size:26px;line-height:1;letter-spacing:.1em;color:var(--ui-text);text-shadow:2px 2px 0 #000,0 0 8px rgba(255,255,255,.25);pointer-events:none}.vhs-osd:before{content:"";display:block;width:0;height:0;border-left:14px solid currentColor;border-top:8px solid transparent;border-bottom:8px solid transparent}.vhs-osd.is-pause:before{width:12px;height:16px;border:0;border-left:4px solid currentColor;border-right:4px solid currentColor}.vhs-osd.is-stop:before{width:14px;height:14px;border:0;background:currentColor}@keyframes osdBlink{50%{opacity:0}}.ui-panel{background:var(--ui-panel);border:1px solid var(--ui-panel-line);box-shadow:0 18px 40px -18px #000000e6,inset 0 0 40px #ff00000a}.ui-label{font-family:"Press Start 2P",monospace;font-size:12px;line-height:1.4;letter-spacing:4px;color:var(--ui-amber)}.controls-box{position:absolute;left:50px;top:50%;transform:translateY(-50%);z-index:20}.controls-title{margin-bottom:16px;text-align:left}.control-group{display:flex;align-items:center;gap:calc(16px * var(--ui-scale));margin-bottom:12px}.control-group:last-child{margin-bottom:0}.wasd-layout{display:flex;flex-direction:column;gap:4px}.wasd-top{display:flex;justify-content:center}.wasd-bottom{display:flex;gap:4px}.key{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#2a2a2a,#151515);border:1px solid #3a3a3a;border-bottom:3px solid #0a0a0a;border-radius:4px;box-shadow:inset 0 1px #ffffff14,0 2px 4px #000000b3;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;color:#cfcac1;text-shadow:0 1px 2px rgba(0,0,0,.9);letter-spacing:1px}.key-shift{width:72px}.key-space{width:96px}.control-label{font-family:IBM Plex Mono,monospace;font-size:15px;color:var(--ui-text);letter-spacing:1px;white-space:nowrap}@container (max-height: 640px){.controls-box{display:none}}.menu-btn{display:block;font-family:"Press Start 2P",monospace;font-size:14px;line-height:1.2;color:var(--ui-red);background:#140000bf;border:2px solid var(--ui-red-line);padding:calc(13px * var(--ui-scale)) calc(28px * var(--ui-scale));width:calc(300px * var(--ui-scale));letter-spacing:3px;text-align:center;cursor:pointer;transition:color .12s,background-color .12s,border-color .12s}.menu-btn:hover,.menu-btn:focus-visible{color:#fff;background:var(--ui-red-fill);border-color:var(--ui-red)}.menu-btn:focus-visible{outline:2px solid var(--ui-amber);outline-offset:3px}.menu-btn:active{transform:translateY(1px)}.menu-btn.is-nightmare{color:#ff3b2a;border-color:#ff3b2a;background:#2e0000d9;text-shadow:0 0 10px rgba(255,59,42,.55);box-shadow:0 0 18px #ff3b2a2e,inset 0 0 18px #78000059;animation:nightmarePulse 2.6s ease-in-out infinite}.menu-btn.is-nightmare:hover,.menu-btn.is-nightmare:focus-visible{color:#fff;background:#7a0f08;border-color:#ff6b5a}@keyframes nightmarePulse{0%,to{box-shadow:0 0 14px #ff3b2a24,inset 0 0 18px #78000059}50%{box-shadow:0 0 26px #ff3b2a52,inset 0 0 22px #8c000073}}@media (prefers-reduced-motion: reduce){.menu-btn.is-nightmare{animation:none}}.menu-btn.is-green{color:#5fef5f;background:#000f00bf;border-color:#1f5a1f}.menu-btn.is-green:hover,.menu-btn.is-green:focus-visible{color:#041004;background:#4fdc4f;border-color:#4fdc4f}.menu-btn.is-plain{color:#d0d0d0;background:#000;border-color:#666}.menu-btn.is-plain:hover,.menu-btn.is-plain:focus-visible{color:#000;background:#e0e0e0;border-color:#e0e0e0}#ui-overlay ::selection{background:var(--ui-red-fill);color:#fff}.menu-row{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(14px * var(--ui-scale))}.menu-row .menu-btn{width:auto;min-width:calc(180px * var(--ui-scale));padding-left:22px;padding-right:22px}.ui-hint{font-family:var(--ui-hint-font);font-size:20px;line-height:1.2;letter-spacing:.06em;text-transform:uppercase;white-space:pre-wrap;color:var(--ui-muted)}html.ui-reduce-motion #ui-overlay *,html.ui-reduce-motion #ui-overlay *:before,html.ui-reduce-motion #ui-overlay *:after,html.ui-reduce-motion #hud-enhanced *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}@media (prefers-reduced-motion: reduce){#ui-overlay *,#ui-overlay *:before,#ui-overlay *:after,#hud-enhanced *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html.ui-reduce-flash .ui-flash{display:none!important}html.ui-reduce-flash .ui-blink{animation:none!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes glitchIn{0%{opacity:0;transform:translate(-10px) skew(10deg);filter:blur(5px)}20%{opacity:.5;transform:translate(10px) skew(-5deg)}40%{opacity:.7;transform:translate(-5px) skew(3deg)}60%{opacity:.9;transform:translate(5px) skew(-2deg)}80%{opacity:1;transform:translate(-2px) skew(1deg);filter:blur(1px)}to{opacity:1;transform:translate(0) skew(0);filter:blur(0)}}@keyframes filmBurnIn{0%{opacity:0;filter:brightness(3) contrast(2);transform:scale(1.1)}30%{opacity:.7;filter:brightness(2) contrast(1.5)}60%{opacity:.9;filter:brightness(1.2) contrast(1.2)}to{opacity:1;filter:brightness(1) contrast(1);transform:scale(1)}}@keyframes typewriterChar{0%{opacity:0}to{opacity:1}}@keyframes ejectIn{0%{transform:translateY(100%) scaleY(.8);opacity:0;filter:blur(3px)}50%{transform:translateY(50%) scaleY(.9);opacity:.5}to{transform:translateY(0) scaleY(1);opacity:1;filter:blur(0)}}@keyframes slamIn{0%{transform:translateY(-200px) scale(.5);opacity:0}70%{transform:translateY(10px) scale(1.1);opacity:1}to{transform:translateY(0) scale(1)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(30px)}}@keyframes fadeOutScale{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes glitchOut{0%{opacity:1;transform:translate(0) skew(0);filter:blur(0)}20%{opacity:.9;transform:translate(2px) skew(-1deg)}40%{opacity:.7;transform:translate(-5px) skew(3deg)}60%{opacity:.5;transform:translate(10px) skew(-5deg)}80%{opacity:.2;transform:translate(-10px) skew(10deg);filter:blur(5px)}to{opacity:0;transform:translate(20px) skew(15deg);filter:blur(10px)}}@keyframes filmEject{0%{transform:translateY(0) scaleY(1);opacity:1;filter:blur(0)}50%{transform:translateY(-50%) scaleY(.9);opacity:.5}to{transform:translateY(-100%) scaleY(.8);opacity:0;filter:blur(3px)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes flicker{0%,to{opacity:1}10%{opacity:.95}20%{opacity:1}30%{opacity:.97}40%{opacity:1}50%{opacity:.93}60%{opacity:1}70%{opacity:.96}80%{opacity:1}90%{opacity:.98}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}@keyframes glowPulse{0%,to{filter:brightness(1) drop-shadow(0 0 5px currentColor)}50%{filter:brightness(1.5) drop-shadow(0 0 15px currentColor)}}@keyframes blink{0%,49%,to{opacity:1}50%,99%{opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}10%{transform:translate(-3px,2px)}20%{transform:translate(3px,-2px)}30%{transform:translate(-2px,3px)}40%{transform:translate(2px,-3px)}50%{transform:translate(-3px,-2px)}60%{transform:translate(3px,2px)}70%{transform:translate(-2px,-3px)}80%{transform:translate(2px,3px)}90%{transform:translate(-1px,-1px)}}@keyframes shakeHeavy{0%,to{transform:translate(0) rotate(0)}10%{transform:translate(-10px,5px) rotate(-1deg)}20%{transform:translate(10px,-5px) rotate(1deg)}30%{transform:translate(-8px,8px) rotate(-.5deg)}40%{transform:translate(8px,-8px) rotate(.5deg)}50%{transform:translate(-10px,-5px) rotate(-1deg)}60%{transform:translate(10px,5px) rotate(1deg)}70%{transform:translate(-5px,-8px) rotate(-.5deg)}80%{transform:translate(5px,8px) rotate(.5deg)}90%{transform:translate(-3px,-3px) rotate(-.2deg)}}@keyframes bounce{0%,to{transform:translateY(0)}10%{transform:translateY(-20px)}30%{transform:translateY(0)}40%{transform:translateY(-10px)}50%{transform:translateY(0)}60%{transform:translateY(-5px)}80%{transform:translateY(0)}}@keyframes bounceScale{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes glitchBurst{0%,to{transform:translate(0) skew(0);opacity:1}10%{transform:translate(-5px,2px) skew(5deg);opacity:.8}20%{transform:translate(5px,-2px) skew(-5deg);opacity:.9}30%{transform:translate(-3px,3px) skew(3deg);opacity:.7}40%{transform:translate(3px,-3px) skew(-3deg);opacity:.9}50%{transform:translate(-2px,1px) skew(2deg);opacity:.8}60%{transform:translate(2px,-1px) skew(-2deg);opacity:1}}@keyframes impactFlash{0%,to{background-color:transparent}50%{background-color:#fffc}}@keyframes redFlash{0%,to{background-color:transparent}50%{background-color:#ff000080}}@keyframes bloodWipe{0%{clip-path:circle(0% at 50% 50%);background-color:#8b0000}to{clip-path:circle(150% at 50% 50%);background-color:#8b0000}}@keyframes staticFill{0%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes filmChange{0%{opacity:1;filter:brightness(1)}45%{opacity:1;filter:brightness(1)}50%{opacity:0;filter:brightness(5)}55%{opacity:0;filter:brightness(5)}to{opacity:1;filter:brightness(1)}}@keyframes crack{0%{opacity:0;transform:scale(.1)}50%{opacity:1;transform:scale(1)}to{opacity:.7;transform:scale(1.1)}}@keyframes bloodDrip{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}@keyframes counterUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes stamp{0%{transform:scale(0) rotate(-30deg);opacity:0}50%{transform:scale(1.2) rotate(5deg);opacity:.8}to{transform:scale(1) rotate(0);opacity:1}}@keyframes scrollUp{0%{transform:translateY(100%)}to{transform:translateY(-200%)}}@keyframes eyeBlink{0%,90%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes eyeDart{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes radarPulse{0%{transform:scale(1);opacity:1}to{transform:scale(2);opacity:0}}@keyframes soundWave{0%{transform:scale(1);opacity:.8}to{transform:scale(3);opacity:0}}#dev-console{position:fixed;top:0;left:0;width:100%;height:33vh;z-index:10000;display:flex;flex-direction:column;background:#06060ae0;border-bottom:1px solid #3a3a4a;color:#d8d8d0;font-family:IBM Plex Mono,monospace;font-size:13px;line-height:1.35}#dev-console[hidden]{display:none}#dev-console .dc-log{flex:1;margin:0;padding:6px 10px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;font:inherit}#dev-console .dc-echo{color:#8a8a80}#dev-console .dc-err{color:#ff6a5a}#dev-console .dc-dim{color:#7a7a8a}#dev-console .dc-line{display:flex;padding:4px 10px;border-top:1px solid #2a2a36;color:#c8c090}#dev-console .dc-line input{flex:1;margin-left:4px;padding:0;border:0;outline:0;background:transparent;color:#f0f0e8;font:inherit;caret-color:#f0f0e8}#dev-console .dc-help{position:absolute;top:100%;left:0;width:100%;max-height:60vh;margin:0;padding:8px 10px;overflow-y:auto;background:#06060af0;border-bottom:1px solid #3a3a4a;color:#c8c8c0;font:inherit}#dev-console .dc-help[hidden]{display:none}#dev-stats{position:fixed;right:8px;bottom:6px;z-index:10000;padding:2px 6px;background:#06060acc;color:#c8c8c0;font-family:IBM Plex Mono,monospace;font-size:12px;line-height:1.35;white-space:pre;pointer-events:none}
