@keyframes wso-fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes wso-bar-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes wso-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes wso-pulse-glow{0%,to{box-shadow:0 0 0 1px var(--wso-accent),inset 0 0 60px rgba(var(--wso-accent-rgb),.1)}50%{box-shadow:0 0 0 2px var(--wso-accent),inset 0 0 90px rgba(var(--wso-accent-rgb),.18)}}@keyframes wso-chevron-bounce{0%,to{transform:translateY(0);opacity:.9}50%{transform:translateY(6px);opacity:.5}}.wso{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;pointer-events:none;opacity:0;transition:opacity .35s ease}.wso--mounted{opacity:1}.wso-header{pointer-events:none;width:100%;text-align:center;padding:clamp(20px,3.5vh,40px) 0 clamp(10px,1.5vh,20px);-webkit-user-select:none;user-select:none;animation:wso-fade-up .5s ease both;animation-delay:.05s}.wso-eyebrow{font-family:"Press Start 2P",monospace;font-size:clamp(6px,.85vw,9px);letter-spacing:.4em;color:#fff6;margin:0 0 .7em;text-transform:uppercase}.wso-title{font-family:"Press Start 2P",monospace;font-size:clamp(13px,2.6vw,28px);letter-spacing:.08em;line-height:1.55;color:#fff;text-shadow:0 0 12px rgba(255,255,255,.8),0 0 36px rgba(0,229,255,.45),0 0 72px rgba(0,229,255,.2);margin:0}.wso-panels{pointer-events:none;display:flex;flex:1;width:100%;align-items:stretch;gap:0}.wso-panel{pointer-events:auto;position:relative;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer;outline:none;overflow:hidden;transition:flex .38s cubic-bezier(.4,0,.2,1),box-shadow .3s ease;flex:1;border-left:1px solid rgba(255,255,255,.08)}.wso-panel:first-child{border-left:none}.wso-panel--selected{flex:1.75;animation:wso-pulse-glow 2.8s ease-in-out infinite}.wso-panel--neon{--wso-accent: #00e5ff;--wso-accent-rgb: 0,229,255}.wso-panel--downtown{--wso-accent: #ffd060;--wso-accent-rgb: 255,208,96}.wso-panel--village{--wso-accent: #ff9050;--wso-accent-rgb: 255,144,80}.wso-panel:not(.wso-panel--selected):hover{flex:1.15}.wso-panel__bar{position:absolute;top:0;left:0;right:0;height:4px;background:var(--wso-accent);box-shadow:0 0 18px 2px var(--wso-accent);transform-origin:left center;transform:scaleX(0);transition:transform 0s}.wso-panel--selected .wso-panel__bar{transform:scaleX(1);animation:wso-bar-grow .35s cubic-bezier(.4,0,.2,1) both}.wso-panel__num{position:absolute;top:clamp(14px,2.5vh,26px);left:clamp(12px,1.8vw,22px);font-family:"Press Start 2P",monospace;font-size:clamp(8px,1.1vw,13px);letter-spacing:.1em;color:#ffffff2e;pointer-events:none;transition:color .25s}.wso-panel--selected .wso-panel__num{color:var(--wso-accent);text-shadow:0 0 10px var(--wso-accent)}.wso-panel__chevron{position:absolute;top:clamp(14px,2.5vh,26px);left:50%;transform:translate(-50%);font-size:clamp(8px,1vw,11px);color:var(--wso-accent);text-shadow:0 0 10px var(--wso-accent);pointer-events:none;animation:wso-chevron-bounce 1.4s ease-in-out infinite}.wso-card{position:relative;background:linear-gradient(to top,rgba(0,0,0,.92) 0%,rgba(0,0,0,.72) 45%,rgba(0,0,0,.15) 75%,transparent 100%);padding:clamp(24px,5vh,56px) clamp(14px,2.2vw,30px) clamp(18px,3.5vh,40px);pointer-events:none;transition:padding .3s ease}.wso-card__sub{font-family:"Press Start 2P",monospace;font-size:clamp(5px,.7vw,7px);letter-spacing:.35em;color:var(--wso-accent);opacity:.7;margin:0 0 .7em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wso-card__name{font-family:"Press Start 2P",monospace;font-size:clamp(10px,1.9vw,22px);letter-spacing:.1em;color:#fff;margin:0 0 .55em;line-height:1.3;transition:font-size .3s ease}.wso-panel--selected .wso-card__name{color:var(--wso-accent);text-shadow:0 0 14px var(--wso-accent),0 0 36px rgba(var(--wso-accent-rgb),.4)}.wso-card__tagline{font-family:"Press Start 2P",monospace;font-size:clamp(5px,.78vw,8px);letter-spacing:.16em;color:#ffffff8c;margin:0 0 .9em;line-height:1.9;max-height:0;overflow:hidden;opacity:0;transition:max-height .35s ease,opacity .3s ease}.wso-panel--selected .wso-card__tagline,.wso-panel:hover .wso-card__tagline{max-height:4em;opacity:1}.wso-card__detail{font-family:"Press Start 2P",monospace;font-size:clamp(5px,.7vw,7px);letter-spacing:.2em;color:#ffffff59;margin:0 0 1.2em;max-height:0;overflow:hidden;opacity:0;transition:max-height .35s ease .05s,opacity .3s ease .05s}.wso-panel--selected .wso-card__detail,.wso-panel:hover .wso-card__detail{max-height:2em;opacity:1}.wso-card__cta{display:inline-block;font-family:"Press Start 2P",monospace;font-size:clamp(6px,.85vw,9px);letter-spacing:.28em;color:#ffffff59;border:1px solid rgba(255,255,255,.18);padding:6px 14px;transition:color .2s,border-color .2s,background .2s}.wso-panel:hover .wso-card__cta{color:#ffffffb3;border-color:#fff6}.wso-card__cta--active{color:var(--wso-accent)!important;border-color:var(--wso-accent)!important;background:rgba(var(--wso-accent-rgb),.08);box-shadow:0 0 16px rgba(var(--wso-accent-rgb),.3);animation:wso-blink 1s step-end infinite}.wso-back{pointer-events:auto;position:fixed;top:clamp(14px,2.5vh,28px);left:clamp(14px,2vw,28px);font-family:"Press Start 2P",monospace;font-size:clamp(6px,.82vw,9px);letter-spacing:.22em;color:#fff6;background:#00000073;border:1px solid rgba(255,255,255,.15);padding:8px 14px;cursor:pointer;transition:color .15s,border-color .15s,background .15s;z-index:40;animation:wso-fade-up .45s ease both;animation-delay:.15s}.wso-back:hover{color:#ffffffe6;border-color:#ffffff73;background:#000000b3}.wso-hint{pointer-events:none;position:fixed;bottom:clamp(10px,1.8vh,20px);width:100%;text-align:center;font-family:"Press Start 2P",monospace;font-size:clamp(5px,.68vw,7px);letter-spacing:.28em;color:#ffffff38;-webkit-user-select:none;user-select:none;animation:wso-fade-up .45s ease both;animation-delay:.2s}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;background:#0a0a14;overflow:hidden}body{font-family:Inter,system-ui,-apple-system,sans-serif}.boot-screen{width:100vw;height:100vh;background:#0a0a14}.game-canvas-container{position:fixed;inset:0}.game-canvas-container canvas{display:block}.game-canvas-container-hidden{visibility:hidden;pointer-events:none}.gate-page{width:100vw;height:100vh;background:#0a0a14;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.gate-title{color:#ffd400;font-size:clamp(3rem,10vw,6rem);font-weight:800;letter-spacing:.08em;margin:0 0 1.5rem}.gate-message{color:#d8d8e2;font-size:1.1rem;max-width:32rem;line-height:1.6;margin:0}.title-screen{position:relative;width:100vw;height:100vh;background:#0a0a14;overflow:hidden;border:none;padding:0;margin:0;font:inherit}.title-screen-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.title-screen-controls{position:absolute;left:50%;bottom:max(4%,1.25rem);transform:translate(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:clamp(.6rem,2vh,1.2rem)}.title-screen-start{background:transparent;border:none;padding:0;cursor:pointer;line-height:0;-webkit-tap-highlight-color:transparent}.title-screen-start-svg{width:min(70vw,340px);height:auto;display:block;overflow:visible;animation:title-screen-pulse 1.8s ease-in-out infinite}.title-screen-start-frame{fill:#080a14eb;stroke:#ffe600;stroke-width:1.5;transition:stroke .15s ease,fill .15s ease}.title-screen-start-corner{stroke:#6cd8ff;stroke-width:2;stroke-linecap:round}.title-screen-start-text{font-family:inherit;font-weight:700;font-size:22px;letter-spacing:.16em;fill:#ffe600;transition:fill .15s ease}.title-screen-start:hover .title-screen-start-frame,.title-screen-start:focus-visible .title-screen-start-frame{fill:#141608eb;stroke:#fff9cc}.title-screen-start:hover .title-screen-start-text,.title-screen-start:focus-visible .title-screen-start-text{fill:#fff9cc}.title-screen-start:focus-visible{outline:2px solid #6cd8ff;outline-offset:4px;border-radius:6px}.title-screen-start:active .title-screen-start-svg{animation:none;transform:scale(.97)}.title-screen-sound{background:transparent;border:none;padding:0;cursor:pointer;line-height:0;-webkit-tap-highlight-color:transparent}.title-screen-sound-svg{width:min(55vw,190px);height:auto;display:block;overflow:visible}.title-screen-sound-frame{fill:#080a14eb;stroke:#6cd8ff;stroke-width:1.5;transition:stroke .15s ease,fill .15s ease}.title-screen-sound-icon{fill:#6cd8ff;stroke:#6cd8ff;transition:fill .15s ease,stroke .15s ease}.title-screen-sound-text{font-family:inherit;font-weight:700;font-size:13px;letter-spacing:.1em;fill:#6cd8ff;transition:fill .15s ease}.title-screen-sound:hover .title-screen-sound-frame,.title-screen-sound:focus-visible .title-screen-sound-frame{fill:#0a161ceb;stroke:#d6f3ff}.title-screen-sound:hover .title-screen-sound-icon,.title-screen-sound:focus-visible .title-screen-sound-icon,.title-screen-sound:hover .title-screen-sound-text,.title-screen-sound:focus-visible .title-screen-sound-text{fill:#d6f3ff;stroke:#d6f3ff}.title-screen-sound:focus-visible{outline:2px solid #6cd8ff;outline-offset:4px;border-radius:6px}.title-screen-sound[aria-pressed=true] .title-screen-sound-frame{stroke:#ffd400;fill:#141608eb}.title-screen-sound[aria-pressed=true] .title-screen-sound-icon,.title-screen-sound[aria-pressed=true] .title-screen-sound-text{fill:#ffd400;stroke:#ffd400}.title-screen-sound:active .title-screen-sound-svg{transform:scale(.97)}@keyframes title-screen-pulse{0%,to{filter:brightness(1) drop-shadow(0 0 4px rgba(255,230,0,.35))}50%{filter:brightness(1.6) drop-shadow(0 0 14px rgba(255,230,0,.85))}}.loading-overlay{position:fixed;inset:0;z-index:3;background:#0a0a14;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.loading-overlay-title{color:#ffd400;font-size:clamp(2rem,7vw,3.5rem);font-weight:800;letter-spacing:.16em}.loading-overlay-pulse{width:14px;height:14px;border-radius:50%;background:#ffd400;animation:loading-overlay-pulse 1s ease-in-out infinite}@keyframes loading-overlay-pulse{0%,to{transform:scale(.6);opacity:.4}50%{transform:scale(1);opacity:1}}.canary-hud{position:fixed;bottom:12px;right:12px;pointer-events:none}.canary-hud-bg{fill:#06060ec7;stroke:#35d0ff;stroke-width:1px}.canary-hud-text{fill:#35d0ff;font-family:"Press Start 2P",monospace;font-size:9px}.hud-overlay{position:fixed;inset:0;pointer-events:none;z-index:2;font-family:"Press Start 2P",monospace}.hud-panel{fill:#06060ec7;stroke:#ffd400;stroke-width:1px}.hud-label-text{fill:#6d7686;font-size:9px;letter-spacing:.05em}.hud-value-text{font-size:18px}.hud-value-yellow{fill:#ffd400}.hud-value-cyan{fill:#35d0ff}.hud-value-pink{fill:#ff2d95}.hud-frightened-group{transition:opacity .2s ease-out}.hud-frightened-track{fill:#ff2d9524}.hud-frightened-fill{fill:#ff2d95;filter:drop-shadow(0 0 4px rgba(255,45,149,.85))}.hud-frightened-flash-slow .hud-frightened-fill{animation:hud-frightened-flash .5s steps(1) infinite}.hud-frightened-flash-fast .hud-frightened-fill{animation:hud-frightened-flash .18s steps(1) infinite}@keyframes hud-frightened-flash{0%,49%{opacity:1}50%,to{opacity:.2}}.hud-life-icon-head{fill:#ffd400}.hud-life-icon-bow{fill:#ff2d55}.hud-popup-text{font-size:15px;font-weight:400;filter:drop-shadow(0 0 3px rgba(255,255,255,.6))}.hud-overlay-ready,.hud-overlay-levelclear,.hud-overlay-gameover{font-size:clamp(1.6rem,5.5vw,3rem);filter:url(#hud-glow)}.hud-overlay-ready{fill:#ffd400}.hud-overlay-levelclear{fill:#35d0ff}.hud-overlay-gameover{fill:#ff2d95}.hud-overlay-levelclear-sub,.hud-overlay-gameover-sub{font-size:clamp(.9rem,2.6vw,1.2rem);fill:#e8e8f0}.hud-overlay-press-enter{font-size:clamp(.75rem,2vw,1rem);fill:#ff2d95;animation:hud-press-enter-pulse 1s ease-in-out infinite}@keyframes hud-press-enter-pulse{0%,to{opacity:.4}50%{opacity:1}}.hud-overlay-attract-title{font-size:clamp(2.4rem,8vw,4.5rem);fill:#ffd400;filter:url(#hud-glow)}.hud-overlay-attract-subtitle{font-size:clamp(.9rem,2.6vw,1.3rem);fill:#ff2d95;letter-spacing:.12em}.hud-overlay-attract-highscore{font-size:clamp(.8rem,2.2vw,1.1rem);fill:#35d0ff}.hud-overlay-select-title{font-size:clamp(1rem,3vw,1.5rem);fill:#ffd400;filter:url(#hud-glow)}.hud-overlay-select-hint{font-size:clamp(.7rem,1.8vw,.95rem);fill:#ffd400}.hud-select-card-frame{fill:none;stroke:#35d0ff;stroke-width:1.5px;transition:stroke .2s ease}.hud-select-card-active .hud-select-card-frame{stroke:#ffd400;stroke-width:3px;filter:url(#hud-glow) drop-shadow(0 0 10px rgba(255,212,0,.7))}.hud-select-card-banner{fill:#06060ed1}.hud-select-card-active .hud-select-card-banner{fill:#140e00d1}.hud-select-card-label{font-size:.9rem;fill:#e8e8f0;letter-spacing:.05em}.hud-select-card-active .hud-select-card-label{fill:#ffd400}.hud-select-difficulty-frame{fill:#06060e99;stroke:#35d0ff;stroke-width:1.5px;transition:stroke .2s ease,fill .2s ease}.hud-select-difficulty-active .hud-select-difficulty-frame{stroke:#ffd400;stroke-width:3px;fill:#140e00d1;filter:url(#hud-glow) drop-shadow(0 0 10px rgba(255,212,0,.7))}.hud-select-difficulty-label{font-size:.85rem;fill:#e8e8f0;letter-spacing:.05em}.hud-select-difficulty-active .hud-select-difficulty-label{fill:#ffd400}.hud-overlay-scoretable-title{font-size:clamp(.8rem,2vw,1rem);fill:#35d0ff;letter-spacing:.08em;filter:url(#hud-glow)}.hud-scoretable-cell{font-size:.78rem;fill:#e8e8f0}.hud-scoretable-row-active .hud-scoretable-cell{fill:#ffd400;filter:url(#hud-glow)}.hud-overlay-paused-frame{fill:#06060ed9;stroke:#35d0ff;stroke-width:1.5px}.hud-overlay-paused{font-size:clamp(1.2rem,3.5vw,1.8rem);fill:#35d0ff;filter:url(#hud-glow)}.hud-overlay-paused-sub{font-size:clamp(.65rem,1.6vw,.85rem);fill:#e8e8f0}
