*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:#111;width:100%;height:100%;margin:0;padding:0;overflow:hidden}.game-shell{touch-action:none;background:var(--bg-color,#cfd8e6);width:100vw;height:100dvh;position:relative;overflow:hidden}.game-canvas{background:0 0;outline:none;width:100%;height:100%;display:block}@keyframes shake{0%,to{transform:translate(0)}10%{transform:translate(-4px,2px)}20%{transform:translate(4px,-2px)}30%{transform:translate(-3px,-3px)}40%{transform:translate(3px,3px)}50%{transform:translate(-2px,1px)}60%{transform:translate(2px,-1px)}70%{transform:translate(-1px,2px)}80%{transform:translate(1px,-1px)}}@keyframes float-up{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-60px)scale(1.3)}}@keyframes flash{0%{opacity:.6}to{opacity:0}}@keyframes pulse-glow{0%,to{opacity:.2}50%{opacity:.4}}.animate-shake{animation:.3s ease-out shake}.animate-float-up{animation:.8s ease-out forwards float-up}.animate-flash{animation:.15s ease-out flash}.animate-pulse-glow{animation:2s ease-in-out infinite pulse-glow}.btn-press{transition:transform .1s}.btn-press:active{transform:scale(.95)}.game-noise{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E")}.game-scanlines{background-image:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000008 3px)}.game-grid{background-image:repeating-linear-gradient(0deg,#0000,#0000 19px,#ffffff08 20px),repeating-linear-gradient(90deg,#0000,#0000 19px,#ffffff08 20px)}.game-dots{background-image:radial-gradient(circle,#0000000f 1px,#0000 1px);background-size:20px 20px}
