*{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;-webkit-user-select:none;user-select:none}body{overflow:hidden;background-color:#000}#ui{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:40px;z-index:10}#app.blurred{filter:blur(8px);transition:filter .3s ease}#app{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;transition:filter .3s ease}.fade-out{opacity:0!important;pointer-events:none}#loading-screen{transition:opacity .5s ease-out}canvas{display:block;position:absolute;top:0;left:0;width:100%!important;height:100%!important}#instructions,#game-over,#welcome-screen{text-align:center;color:#eee;background:#111;padding:24px;border-radius:4px;border:1px solid #333333;box-shadow:0 4px 12px #00000080;pointer-events:auto;cursor:default;max-width:500px;opacity:1;transition:opacity .5s ease-in-out,transform .5s ease}#instructions h1,#welcome-screen h1,#game-over h1{font-size:2.5rem;margin-bottom:20px;text-transform:uppercase;letter-spacing:8px;font-weight:900;color:#fff;text-shadow:0 4px 20px rgba(0,0,0,.5);position:relative}#instructions h1:after{content:"";position:absolute;bottom:-10px;left:50%;transform:translate(-50%);width:80px;height:3px;background:linear-gradient(90deg,transparent,#ffffff,transparent)}.btn{background:#ffffff0d;color:#fff;border:none;border-left:3px solid transparent;padding:12px 24px;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:3px;cursor:pointer;border-radius:0;transition:all .3s cubic-bezier(.4,0,.2,1);min-width:150px;margin:0 8px;box-shadow:0 2px 8px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}.btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s}.btn:hover:before{left:100%}.btn:hover{transform:translate(4px);background:#ffffff1f;box-shadow:0 4px 16px #0006,-4px 0 12px #ffffff1a}.btn:active{transform:translate(2px);box-shadow:0 2px 8px #0000004d}#btn-easy,#btn-hard,#btn-curve,#btn-dodge-only,#btn-with-shooting,#btn-resume,#btn-retry,#btn-reset{border-left-color:#f44!important;background:#ff444414!important;color:#fff}#btn-reset{color:#f44!important}#btn-easy:hover,#btn-hard:hover,#btn-curve:hover,#btn-dodge-only:hover,#btn-with-shooting:hover,#btn-resume:hover,#btn-retry:hover,#btn-reset:hover{background:#ff444426!important;border-left-color:#f66!important;color:#f66!important}#btn-menu,#btn-pause-change{border-left-color:#666!important;color:#999!important;background:#6666660f!important}#btn-menu:hover,#btn-pause-change:hover{background:#6666661f!important;border-left-color:#888!important;color:#aaa!important}#score{position:absolute;top:20px;left:20px;color:#fff;font-size:1.5rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.5);transition:transform .2s ease,color .2s ease;z-index:2000}#level-display{position:absolute;top:20px;right:20px;color:#fff;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:1.5rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.5);z-index:2000;background:#0006;padding:10px 20px;border-radius:8px;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-align:center;display:flex;flex-direction:column;align-items:center}.level-time-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:8px;padding:4px 12px;background:#ff444426;border:1px solid rgba(255,68,68,.4);border-radius:4px;color:#f44;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;box-shadow:0 0 10px #ff444426}#countdown{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10rem;font-weight:900;color:#fff;text-shadow:0 0 40px rgba(255,255,255,.8),0 4px 20px rgba(0,0,0,.9);pointer-events:none;z-index:2000;animation:countdownPulse 1s ease-in-out infinite}#crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:4px;background-color:#fffc;border-radius:50%;pointer-events:none;z-index:1000;box-shadow:0 0 2px #000c}#crosshair:before,#crosshair:after{content:"";position:absolute;background-color:#fff9}#crosshair:before{width:16px;height:2px;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair:after{width:2px;height:16px;top:50%;left:50%;transform:translate(-50%,-50%)}#version-label{position:absolute;bottom:20px;right:20px;color:#fff6;font-size:.75rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;pointer-events:none;z-index:100}#about-link{position:absolute;bottom:45px;right:20px;color:#ffffff80;font-size:.75rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;text-decoration:none;pointer-events:auto;z-index:100;transition:color .2s ease}#about-link:hover{color:#0ff}#controls-display{position:absolute;bottom:80px;right:20px;color:#ffffffb3;font-size:.7rem;font-weight:500;letter-spacing:1px;text-align:right;pointer-events:none;z-index:1000;background:#0000004d;padding:10px 12px;border-radius:4px;border-left:2px solid rgba(255,255,255,.3);line-height:1.6}#controls-display .control-item{margin-bottom:4px}#controls-display .control-key{color:#0ff;font-weight:700;margin-right:6px}#guide-link{position:absolute;bottom:70px;right:20px;color:#ffffff80;font-size:.75rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;text-decoration:none;pointer-events:auto;z-index:100;transition:color .2s ease}#guide-link:hover{color:#0ff}#settings{pointer-events:auto;position:absolute;bottom:20px;left:20px}.settings-container{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-left:3px solid rgba(255,255,255,.3);padding:16px 20px;min-width:220px;box-shadow:0 4px 16px #0006}.settings-label{display:block;color:#fff;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:2px;margin-bottom:12px;opacity:.9}.settings-value-container{display:flex;align-items:center;gap:12px}.settings-value{color:#fff;font-size:1.1rem;font-weight:700;min-width:60px;text-align:right;font-family:Courier New,monospace}.settings-slider{flex:1;-webkit-appearance:none;appearance:none;height:4px;background:#ffffff1a;outline:none;border-radius:0;cursor:pointer}.settings-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:#fff;cursor:pointer;border-radius:0;box-shadow:0 2px 8px #0000004d;transition:all .2s ease}.settings-slider::-webkit-slider-thumb:hover{background:#fff;box-shadow:0 4px 12px #fff6;transform:scale(1.1)}.settings-slider::-moz-range-thumb{width:16px;height:16px;background:#fff;cursor:pointer;border-radius:0;border:none;box-shadow:0 2px 8px #0000004d;transition:all .2s ease}.settings-slider::-moz-range-thumb:hover{background:#fff;box-shadow:0 4px 12px #fff6;transform:scale(1.1)}.settings-number-input{width:70px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:4px 8px;border-radius:4px;font-family:Courier New,monospace;font-size:1rem;font-weight:700;text-align:right;outline:none;transition:all .2s ease;-moz-appearance:textfield;appearance:textfield}.settings-number-input:focus{background:#ffffff26;border-color:#ffffff80;box-shadow:0 0 10px #ffffff1a}.settings-number-input::-webkit-outer-spin-button,.settings-number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}@keyframes countdownPulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:1}50%{transform:translate(-50%,-50%) scale(1.1);opacity:.9}}.level-up{color:#ff0!important;animation:levelUpPulse 3s ease-in-out forwards}@keyframes levelUpPulse{0%{transform:scale(1)}10%{transform:scale(3.5) rotate(-5deg);text-shadow:0 10px 20px rgba(0,0,0,.8)}20%{transform:scale(3) rotate(5deg)}30%{transform:scale(3.5) rotate(-5deg)}40%{transform:scale(3) rotate(5deg)}50%{transform:scale(2.5) rotate(0)}to{transform:scale(1)}}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100px)}}@keyframes levelUpAnim{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.3)}30%{transform:translate(-50%,-50%) scale(1)}70%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.2)}}@keyframes extraChanceAnim{0%{opacity:0;transform:translate(50px)}20%{opacity:1;transform:translate(0)}80%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateY(-30px)}}#flash-overlay{position:absolute;top:0;left:0;width:100%;height:100%;--x: 50%;--y: 50%;background:radial-gradient(circle at var(--x) var(--y),#ffdd88 0%,#ffaa00 40%,#cc6600 100%);opacity:0;pointer-events:none;transition:opacity .1s}#flash-overlay:after{content:"";position:absolute;top:calc(var(--y) - 250%);left:calc(var(--x) - 250%);width:500%;height:500%;background:repeating-conic-gradient(from 0deg,rgba(255,200,100,.3) 0deg 10deg,transparent 10deg 20deg);animation:spin 5s linear infinite}#flash-overlay.behind{background:#fa0c!important}#flash-overlay.behind:after{display:none}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#flash-overlay.blue{background:radial-gradient(circle at var(--x) var(--y),#88ccff 0%,#0088ff 40%,#0044cc 100%)}#flash-overlay.blue:after{background:repeating-conic-gradient(from 0deg,transparent 0deg,rgba(0,136,255,.5) 2deg,transparent 4deg,transparent 8deg,rgba(0,136,255,.8) 12deg,transparent 16deg,transparent 20deg,rgba(0,136,255,.3) 22deg,transparent 24deg,transparent 28deg,rgba(0,136,255,.75) 32deg,transparent 36deg,transparent 45deg)}#flash-overlay.blue.behind{background:#0064ffcc!important}#flash-overlay.purple{background:radial-gradient(circle at var(--x) var(--y),#cc88ff 0%,#8800ff 40%,#4400cc 100%)}#flash-overlay.purple:after{background:repeating-conic-gradient(from 0deg,transparent 0deg,rgba(136,0,255,.5) 2deg,transparent 4deg,transparent 8deg,rgba(136,0,255,.8) 12deg,transparent 16deg,transparent 20deg,rgba(136,0,255,.3) 22deg,transparent 24deg,transparent 28deg,rgba(136,0,255,.75) 32deg,transparent 36deg,transparent 45deg)}#flash-overlay.purple.behind{background:#6400ffcc!important}#flash-overlay.green{background:radial-gradient(circle at var(--x) var(--y),#66cc00 0%,#00aa00 40%,#004400 100%)}#flash-overlay.green:after{background:repeating-conic-gradient(from 0deg,transparent 0deg,rgba(0,170,0,.5) 2deg,transparent 4deg,transparent 8deg,rgba(0,170,0,.8) 12deg,transparent 16deg,transparent 20deg,rgba(0,170,0,.3) 22deg,transparent 24deg,transparent 28deg,rgba(0,170,0,.75) 32deg,transparent 36deg,transparent 45deg)}#flash-overlay.green.behind{background:#006400cc!important}
