:root{--bg-deep: #0e0805;--bg-sepia: #1c0f08;--paper: #d4b896;--paper-aged: #b89968;--cream: #f4e8d0;--ink: #2a1810;--gold: #c9a961;--gold-bright: #e6c878;--blood: #6b1a1a;--rust: #8a3a1a;--shadow: rgba(0, 0, 0, .85);--font-display: "Rye", "Georgia", serif;--font-body: "IM Fell English", "Georgia", serif;--font-mono: "Special Elite", "Courier New", monospace;--ease-cinematic: cubic-bezier(.65, 0, .35, 1);--ease-out-slow: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg-deep);color:var(--cream);font-family:var(--font-body);-webkit-font-smoothing:antialiased}body{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><circle cx='12' cy='12' r='2' fill='%23c9a961'/><circle cx='12' cy='12' r='8' fill='none' stroke='%23c9a961' stroke-width='1'/></svg>") 12 12,auto}#stage{position:fixed;inset:0;overflow:hidden}#grain{position:fixed;inset:0;pointer-events:none;z-index:9000;opacity:.08;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='200' height='200' filter='url(%23n)' opacity='0.7'/></svg>");background-size:200px 200px;animation:grain-shift .3s steps(3) infinite}@keyframes grain-shift{0%{transform:translate(0)}33%{transform:translate(-2%,1%)}66%{transform:translate(1%,-2%)}to{transform:translate(0)}}#vignette{position:fixed;inset:0;pointer-events:none;z-index:8000;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.4) 75%,rgba(0,0,0,.85) 100%)}#letterbox-top,#letterbox-bottom{position:fixed;left:0;right:0;height:0;background:#000;z-index:9500;pointer-events:none;transition:height .8s var(--ease-cinematic)}#letterbox-top{top:0}#letterbox-bottom{bottom:0}body.letterbox #letterbox-top,body.letterbox #letterbox-bottom{height:11vh}.scene{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;opacity:0;transition:opacity 1.2s var(--ease-cinematic)}.scene.is-active{opacity:1}.scene-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:sepia(.4) saturate(.85) contrast(1.05) brightness(.7);z-index:-1}.scene-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0e08054d,#0e08051a 40%,#0e0805d9)}.display{font-family:var(--font-display);color:var(--gold);letter-spacing:.04em;text-shadow:0 2px 0 var(--bg-deep),0 4px 12px rgba(0,0,0,.8)}.typewriter{font-family:var(--font-mono);color:var(--cream);line-height:1.7;letter-spacing:.02em}.serif{font-family:var(--font-body);font-style:italic}.menu-item{background:none;border:none;color:var(--paper);font-family:var(--font-display);font-size:1.4rem;letter-spacing:.12em;padding:.6em 1.5em;cursor:pointer;position:relative;transition:color .25s,transform .25s;text-transform:uppercase}.menu-item:hover,.menu-item:focus{color:var(--gold-bright);transform:translate(4px);outline:none}.menu-item:before{content:"◆";display:inline-block;margin-right:.6em;color:var(--gold);opacity:0;transform:translate(-8px);transition:opacity .25s,transform .25s}.menu-item:hover:before,.menu-item:focus:before{opacity:1;transform:translate(0)}.menu-item:disabled{color:#b4986859;cursor:not-allowed;transform:none}.gate-input{background:#d4b89614;border:none;border-bottom:1px solid var(--paper-aged);color:var(--cream);font-family:var(--font-mono);font-size:1.2rem;padding:.5em .8em;width:min(420px,80vw);text-align:center;outline:none;letter-spacing:.08em;transition:border-color .3s}.gate-input:focus{border-bottom-color:var(--gold)}.gate-input::placeholder{color:#f4e8d04d;font-style:italic}.center-stack{display:flex;flex-direction:column;align-items:center;gap:1.2rem;text-align:center}.hidden{display:none!important}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-12px)}40%{transform:translate(10px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}.shake{animation:shake .5s}@media (max-width: 720px){.menu-item{font-size:1.1rem}body.letterbox #letterbox-top,body.letterbox #letterbox-bottom{height:6vh}}
