:root{--pink:#ff2e88;--yel:#ffd23f;--cyan:#20e3ff;--ink:#14061f}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:#000;font-family:'Fredoka',sans-serif;color:#fff;touch-action:none;user-select:none}
#scene-container{position:fixed;inset:0}
button{font-family:'Press Start 2P',monospace;cursor:pointer}
#hud-tickets{position:fixed;top:10px;right:10px;font-family:'Press Start 2P';font-size:14px;background:var(--ink);border:3px solid var(--yel);padding:8px 12px;border-radius:6px;box-shadow:0 0 14px var(--yel);z-index:5}
.stub{background:var(--yel);color:var(--ink);padding:2px 5px;border-radius:3px;font-size:10px}
#minimap{position:fixed;top:10px;left:10px;border:3px solid var(--cyan);border-radius:6px;background:rgba(10,0,25,.8);z-index:5;box-shadow:0 0 12px var(--cyan)}
#zone{position:fixed;top:20%;width:100%;text-align:center;font-family:'Press Start 2P';font-size:clamp(14px,3vw,26px);color:var(--yel);text-shadow:0 0 10px var(--pink),3px 3px 0 var(--pink);opacity:0;transition:opacity .6s;pointer-events:none;z-index:4}
#prompt{position:fixed;bottom:22%;width:100%;text-align:center;font-family:'Press Start 2P';font-size:13px;pointer-events:none;z-index:4}
#prompt span{background:var(--pink);padding:8px 12px;border-radius:4px;box-shadow:0 0 12px var(--pink)}
#bubble{position:fixed;top:32%;left:50%;transform:translateX(-50%);max-width:80%;background:#fff;color:var(--ink);padding:10px 14px;border-radius:14px;font-weight:700;display:none;z-index:4;border:3px solid var(--ink)}
#toast{position:fixed;bottom:34%;width:100%;text-align:center;font-family:'Press Start 2P';font-size:12px;color:var(--cyan);text-shadow:0 0 8px var(--cyan);pointer-events:none;z-index:6}
#topbtns{position:fixed;top:140px;left:10px;display:flex;flex-direction:column;gap:6px;z-index:5}
#topbtns button{font-size:9px;padding:7px;background:var(--ink);color:var(--yel);border:2px solid var(--yel);border-radius:4px}
#auth-status{position:fixed;top:56px;right:10px;font-size:11px;z-index:5;opacity:.8}
#auth-status a{color:var(--cyan)}
#start{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 30%,#4a0a5e,#0a0012 70%),repeating-linear-gradient(45deg,#fff1 0 10px,transparent 10px 20px)}
.startcard{text-align:center;max-width:520px;padding:24px}
.startcard h1{font-family:'Press Start 2P';font-size:clamp(22px,6vw,44px);color:var(--yel);text-shadow:4px 4px 0 var(--pink),0 0 24px var(--pink);margin:0}
.startcard h1 span{color:var(--cyan)}
.sub{font-family:'Press Start 2P';font-size:10px;color:var(--cyan);letter-spacing:3px}
.keys{font-size:12px;opacity:.7}
#enter{margin-top:14px;font-size:16px;padding:14px 24px;background:var(--pink);color:#fff;border:none;border-radius:6px;box-shadow:0 6px 0 #8a0045,0 0 20px var(--pink);animation:pulse 1s infinite alternate}
@keyframes pulse{to{transform:scale(1.07)}}
#overlay{position:fixed;inset:0;background:rgba(5,0,15,.75);display:none;align-items:center;justify-content:center;z-index:15}
#ovbox{background:var(--ink);border:4px solid var(--pink);border-radius:10px;box-shadow:0 0 30px var(--pink);padding:8px;max-width:96vw;max-height:96vh;display:flex;flex-direction:column}
#ovhead{display:flex;justify-content:space-between;align-items:center;font-family:'Press Start 2P';font-size:12px;color:var(--yel);padding:4px 4px 8px}
#ovclose{background:none;border:2px solid var(--yel);color:var(--yel);padding:4px 8px}
#game{width:min(360px,90vw);height:auto;max-height:78vh;aspect-ratio:3/4;background:#000;border-radius:4px;touch-action:none}
#ovhtml{width:min(360px,90vw);max-height:70vh;overflow:auto}
.prize{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px dashed #fff3}
.prize button{font-size:9px;padding:6px;background:var(--yel);border:none;border-radius:3px}
.prize button:disabled{opacity:.3}
#joy{position:fixed;left:20px;bottom:40px;width:120px;height:120px;border-radius:50%;border:3px solid #fff5;background:#fff1;display:none;z-index:5}
#knob{position:absolute;left:35px;top:35px;width:50px;height:50px;border-radius:50%;background:var(--pink);box-shadow:0 0 12px var(--pink)}
#use{position:fixed;right:24px;bottom:50px;width:84px;height:84px;border-radius:50%;background:var(--yel);color:var(--ink);border:none;font-size:12px;display:none;z-index:5;box-shadow:0 5px 0 #a07b00}
#remix{position:fixed;bottom:6px;right:8px;font-size:11px;color:#fff9;z-index:30}