@font-face{font-family:Carnival;src:url('../assets/font/Kreeptown.ttf') format('truetype');font-display:swap}
@font-face{font-family:Round;src:url('../assets/font/Kreeptown.ttf') format('truetype');font-display:swap}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#130e25;overscroll-behavior:none}
body{display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 30%,#483164,#130e25 72%);font-family:Round,Arial,sans-serif;color:#fff8dc;touch-action:none;user-select:none;-webkit-user-select:none}
#stage{position:relative;width:min(100vw,56.25vh);height:min(100vh,177.7778vw);aspect-ratio:9/16;overflow:hidden;box-shadow:0 0 90px #0009;background:#21113e}
@supports(height:100dvh){#stage{width:min(100vw,56.25dvh);height:min(100dvh,177.7778vw)}}
canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}
#controls{position:absolute;inset:0;pointer-events:none}
#controls button{position:absolute;opacity:0;border:0;padding:0;pointer-events:none;cursor:pointer;border-radius:16px;background:transparent;color:transparent;font:inherit}
#controls button:focus-visible{opacity:1;outline:4px solid #ffe775;outline-offset:2px;background:#ffffff16}
#loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:radial-gradient(circle,#57306c,#21113e);font-size:clamp(18px,4vw,30px)}
#loading progress{width:65%;accent-color:#ffb23e;height:15px;border:0;border-radius:15px}
.loading-pumpkin{color:#ffc04b;font-size:70px;animation:glow 1.4s ease-in-out infinite}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@keyframes glow{50%{transform:scale(1.15);opacity:.65}}
@media(prefers-reduced-motion:reduce){.loading-pumpkin{animation:none}}
