:root{--red:#db0007;--burgundy:#7a0c1e;--gold:#c9a24d;--cream:#fbf6ea;--ink:#1d0f13;--night:#120a0d;--display:"Bebas Neue", "Arial Narrow", sans-serif;--body:"Nunito", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--night);height:100%;color:var(--cream);font-family:var(--body);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}button,a{font-family:inherit}.hidden{display:none!important}#landing{background:radial-gradient(ellipse at 50% 0%, #db000759, transparent 60%), radial-gradient(ellipse at 50% 120%, #c9a24d2e, transparent 55%), var(--night);place-items:center;padding:16px;transition:opacity .6s;display:grid;position:fixed;inset:0;overflow-y:auto}#landing.leaving{opacity:0;pointer-events:none}.landing-inner{justify-items:center;row-gap:18px;width:min(620px,100%);display:grid}.ticket{background:var(--cream);width:100%;color:var(--ink);border-radius:14px;animation:.8s both rise;display:flex;overflow:hidden;box-shadow:0 20px 50px #00000073}.ticket-main{border-right:2px dashed #7a0c1e59;flex:1;padding:22px 24px}.ticket-kicker{letter-spacing:.2em;text-transform:uppercase;color:var(--burgundy);margin:0;font-size:12px;font-weight:800}.ticket h1{font-family:var(--display);color:var(--red);letter-spacing:.02em;margin:4px 0 0;font-size:clamp(44px,7vw,64px);line-height:.95}.ticket-sub{color:var(--burgundy);margin:4px 0 16px;font-weight:700}.ticket-details{grid-template-columns:1fr 1fr;gap:10px 18px;margin:0;display:grid}.ticket-details div{min-width:0}.ticket-details dt{letter-spacing:.16em;text-transform:uppercase;color:#8d6b72;font-size:10px;font-weight:800}.ticket-details dd{margin:2px 0 0;font-size:15px;font-weight:800}.classified{color:var(--red);letter-spacing:.08em}.ticket-stub{background:var(--red);width:76px;color:var(--cream);flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.stub-no{font-family:var(--display);writing-mode:vertical-rl;font-size:40px;transform:rotate(180deg)}.stub-label{letter-spacing:.16em;text-transform:uppercase;writing-mode:vertical-rl;font-size:10px;transform:rotate(180deg)}#enter-btn{background:var(--red);color:#fff;font-family:var(--display);letter-spacing:.08em;cursor:pointer;border:0;border-radius:999px;padding:16px 34px;font-size:26px;transition:transform .2s,box-shadow .2s,opacity .2s;animation:.8s .15s both rise;box-shadow:0 10px 30px #db000773}#enter-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 36px #db000799}#enter-btn:disabled{opacity:.6;cursor:wait}.landing-hint{opacity:.6;text-align:center;margin:0;font-size:13px}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}@media (width<=700px){.landing-inner{row-gap:14px}.ticket-main{padding:18px}.ticket-stub{width:56px}.stub-no{font-size:30px}#enter-btn{width:100%}}#stage{position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);container-type:size}#game,#confetti{width:100%;height:100%;display:block;position:absolute;inset:0}#confetti{pointer-events:none}#scoreboard-cover{pointer-events:none;background:#050505;position:absolute}#flash{pointer-events:none;background:#fff;animation:.6s ease-out forwards flash;position:absolute;inset:0}@keyframes flash{0%{opacity:.9}to{opacity:0}}#fade{opacity:1;pointer-events:none;background:#000;transition:opacity .45s;position:absolute;inset:0}#fade.clear{opacity:0}#markers{pointer-events:none;position:absolute;inset:0}.marker{color:#fff;text-shadow:0 0 8px #db0007e6,0 2px 4px #0009;font-size:max(16px,2.4cqw);animation:1s ease-in-out infinite marker-bob;position:absolute;transform:translate(-50%,-100%)}.marker.sparkle{color:#ffe08a}@keyframes marker-bob{50%{margin-top:-6px}}#objective{border-left:4px solid var(--red);background:#120a0db8;border-radius:4px;padding:6px 14px 7px;font-size:max(12px,1.5cqw);animation:.4s both rise;position:absolute;top:3%;left:2%}#objective span{letter-spacing:.2em;color:var(--gold);font-size:.7em;font-weight:800;display:block}#hud-buttons{gap:8px;display:flex;position:absolute;top:3%;right:2%}#hud-buttons button{width:max(40px,4.4cqw);height:max(40px,4.4cqw);color:var(--cream);cursor:pointer;background:#120a0db8;border:0;border-radius:50%;font-size:max(15px,1.6cqw)}#prompt{color:var(--burgundy);white-space:nowrap;pointer-events:none;background:#fbf6eaf2;border-radius:999px;padding:8px 18px;font-size:max(13px,1.6cqw);font-weight:800;position:absolute;bottom:6%;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0000004d}#dialog{cursor:pointer;background:linear-gradient(#190a10f0,#0e060af0);border:2px solid #c9a24db3;border-radius:12px;align-items:flex-start;gap:2.2cqw;width:min(94%,980px);padding:1.6cqw 2cqw;animation:.25s both rise;display:flex;position:absolute;bottom:3%;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080}#dialog.top{width:min(80%,900px);top:2%;bottom:auto}#dialog-portrait{object-fit:cover;border:2px solid var(--red);border-radius:10px;flex:none;width:max(64px,10cqw);height:max(64px,10cqw)}#dialog-portrait.none{display:none}.dialog-body{flex:1;min-width:0;position:relative}#dialog-name{font-family:var(--display);letter-spacing:.05em;color:var(--gold);font-size:max(18px,2.4cqw)}#dialog-text{white-space:pre-line;min-height:2.9em;margin:2px 0 0;font-size:max(14px,1.9cqw);line-height:1.45}#dialog-next{color:var(--gold);animation:.8s ease-in-out infinite marker-bob;position:absolute;bottom:-4px;right:0}#dialog-choices{flex-direction:column;gap:6px;margin-top:8px;display:flex}#dialog-choices button{text-align:left;color:var(--cream);cursor:pointer;background:#ffffff0f;border:1px solid #c9a24d99;border-radius:8px;padding:8px 14px;font-size:max(14px,1.8cqw);font-weight:700}#dialog-choices button:hover,#dialog-choices button.selected{background:var(--red);border-color:var(--red)}#letter{cursor:pointer;background:#0000008c;place-items:center;display:grid;position:absolute;inset:0}.letter-paper{background:var(--cream);width:min(88%,620px);max-height:90%;color:var(--ink);border-top:8px solid var(--red);border-radius:6px;padding:3cqw 3.4cqw 2.2cqw;font-size:max(13px,1.75cqw);line-height:1.55;animation:.35s both rise;overflow:auto;box-shadow:0 20px 50px #0009}#letter-text{white-space:pre-line;margin:0}#letter-text strong{font-family:var(--display);color:var(--red);letter-spacing:.06em;font-size:1.6em;font-weight:400}.letter-next{text-align:right;color:#8d6b72;margin-top:12px;font-size:.75em;display:block}.touch-only{display:none}body.touch .touch-only{display:block}body.touch.busy .touch-only{display:none}#joystick{background:#ffffff2e;border:2px solid #ffffff73;border-radius:50%;width:max(110px,15cqw);height:max(110px,15cqw);position:absolute;bottom:6%;left:3%}#joystick-knob{background:#ffffffd9;border-radius:50%;width:42%;height:42%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#action-btn{color:#fff;background:#db0007d9;border:0;border-radius:50%;width:max(70px,9cqw);height:max(70px,9cqw);font-size:28px;font-weight:800;position:absolute;bottom:8%;right:4%}#ending{background:radial-gradient(ellipse at 50% 0%, #db000773, transparent 65%), var(--night);place-items:center;padding:24px 16px;animation:1.2s both fade-in;display:grid;position:fixed;inset:0;overflow-y:auto}@keyframes fade-in{0%{opacity:0}}.ending-inner{text-align:center;width:min(640px,100%)}.ending-kicker{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0;font-size:12px;font-weight:800}.ending-inner h2{font-family:var(--display);color:#fff;margin:6px 0 18px;font-size:clamp(40px,8vw,68px);font-weight:400;line-height:1}.polaroid{width:min(460px,100%);color:var(--ink);background:#fff;margin:0 auto 20px;padding:12px 12px 14px;animation:.9s .4s both rise;transform:rotate(-1.5deg);box-shadow:0 20px 50px #00000080}.polaroid img{aspect-ratio:4/3;object-fit:cover;background:#222;width:100%;display:block}.polaroid figcaption{color:var(--burgundy);margin-top:10px;font-size:14px;font-weight:800}.ending-lines{margin:0 0 22px;font-size:clamp(16px,2.6vw,20px);line-height:1.7}.ending-lines strong{color:var(--gold)}.ending-buttons{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.ending-buttons a,.ending-buttons button{cursor:pointer;border-radius:999px;padding:13px 28px;font-size:16px;font-weight:800;text-decoration:none}#save-photo{color:var(--cream);background:0 0;border:2px solid #fbf6ea80}#replay-btn{background:var(--red);color:#fff;border:2px solid var(--red)}#pause,#rotate-hint{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0508cc;place-items:center;display:grid;position:fixed;inset:0}.pause-box{text-align:center;flex-direction:column;gap:10px;width:min(300px,86vw);display:flex}.pause-box h3{font-family:var(--display);letter-spacing:.06em;margin:0 0 8px;font-size:40px;font-weight:400}.pause-box button{color:var(--cream);cursor:pointer;background:#ffffff0f;border:1px solid #c9a24d99;border-radius:10px;padding:13px;font-size:16px;font-weight:800}#resume-btn{background:var(--red);border-color:var(--red)}#rotate-hint{text-align:center;z-index:5;font-size:44px}#rotate-hint p{font-size:16px}
