:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;background:#0a0a0a;color:#fafafa;overflow:hidden}.shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;position:relative}.game-title{font-size:2.5rem;font-weight:800;letter-spacing:-.03em;background:linear-gradient(135deg,#fbbf24,#f59e0b,#d97706);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 0 30px rgba(251,191,36,.3);margin-bottom:.5rem;text-align:center}.game-subtitle{color:#fff9;font-size:.9rem;margin-bottom:2rem;text-align:center}.stats-bar{display:flex;gap:2rem;margin-bottom:1.5rem;padding:.75rem 1.5rem;background:#ffffff0d;border-radius:1rem;border:1px solid rgba(255,255,255,.08)}.stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#fff6}.stat-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}.stat-value.score{color:#fbbf24}.stat-value.combo{color:#f472b6}.stat-value.multiplier{color:#a78bfa}.game-area{width:100%;max-width:500px;height:500px;position:relative;border:1px solid rgba(255,255,255,.08);border-radius:1rem;background:#ffffff05;overflow:hidden}.target{position:absolute;width:70px;height:70px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .1s ease;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.target:active{transform:scale(.9)}.target-ring{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:2px solid;opacity:.5;animation:pulse-ring 1s ease-out infinite}.target-inner{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem}.target.gold{background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 0 20px #fbbf2466}.target.gold .target-ring{border-color:#fbbf24}.target.pink{background:linear-gradient(135deg,#f472b6,#ec4899);box-shadow:0 0 20px #f472b666}.target.pink .target-ring{border-color:#f472b6}.target.purple{background:linear-gradient(135deg,#a78bfa,#8b5cf6);box-shadow:0 0 20px #a78bfa66}.target.purple .target-ring{border-color:#a78bfa}.target.cyan{background:linear-gradient(135deg,#22d3ee,#06b6d4);box-shadow:0 0 20px #22d3ee66}.target.cyan .target-ring{border-color:#22d3ee}.target.lime{background:linear-gradient(135deg,#a3e635,#84cc16);box-shadow:0 0 20px #a3e63566}.target.lime .target-ring{border-color:#a3e635}.hit-effect{position:absolute;width:70px;height:70px;border-radius:50%;pointer-events:none;animation:hit-burst .5s ease-out forwards}.hit-effect:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%;border:2px solid;animation:hit-expand .4s ease-out forwards}.hit-effect.gold{background:#fbbf244d}.hit-effect.gold:after{border-color:#fbbf24}.hit-effect.pink{background:#f472b64d}.hit-effect.pink:after{border-color:#f472b6}.hit-effect.purple{background:#a78bfa4d}.hit-effect.purple:after{border-color:#a78bfa}.hit-effect.cyan{background:#22d3ee4d}.hit-effect.cyan:after{border-color:#22d3ee}.hit-effect.lime{background:#a3e6354d}.hit-effect.lime:after{border-color:#a3e635}@keyframes hit-burst{0%{transform:scale(1);opacity:1}to{transform:scale(1.8);opacity:0}}@keyframes hit-expand{0%{transform:scale(1);opacity:.8}to{transform:scale(2.5);opacity:0}}@keyframes pulse-ring{0%{transform:scale(1);opacity:.5}50%{transform:scale(1.15);opacity:.2}to{transform:scale(1);opacity:.5}}.feedback-text{position:absolute;font-weight:700;font-size:1.2rem;pointer-events:none;animation:feedback-float .8s ease-out forwards;text-shadow:0 0 10px currentColor}.feedback-text.perfect{color:#fbbf24}.feedback-text.good{color:#22d3ee}.feedback-text.miss{color:#ef4444}@keyframes feedback-float{0%{transform:translateY(0) scale(1.2);opacity:1}to{transform:translateY(-60px) scale(.8);opacity:0}}.beat-visualizer{position:absolute;bottom:0;left:0;right:0;height:4px;display:flex;gap:2px;padding:0 10px}.beat-bar{flex:1;background:#ffffff1a;border-radius:2px;position:relative;overflow:hidden}.beat-bar.active:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#fbbf24,#f472b6);animation:beat-pulse .3s ease-out}@keyframes beat-pulse{0%{opacity:1}to{opacity:0}}.controls{display:flex;gap:1rem;margin-top:1.5rem;flex-wrap:wrap;justify-content:center}.btn{padding:.75rem 1.5rem;border-radius:.5rem;border:none;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .15s ease;color:#fff}.btn-primary{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#0a0a0a}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 20px #fbbf2466}.btn-secondary{background:#ffffff1a;border:1px solid rgba(255,255,255,.15)}.btn-secondary:hover{background:#ffffff26}.difficulty-selector{display:flex;gap:.5rem;margin-top:1rem}.diff-btn{padding:.5rem 1rem;border-radius:.4rem;border:1px solid rgba(255,255,255,.1);background:transparent;color:#fff9;font-size:.8rem;cursor:pointer;transition:all .15s ease}.diff-btn:hover{border-color:#ffffff4d;color:#fff}.diff-btn.active{background:#fbbf2426;border-color:#fbbf24;color:#fbbf24}.game-over-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;z-index:10;animation:fade-in .3s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.game-over-title{font-size:2rem;font-weight:800;color:#fbbf24}.final-stats{display:flex;flex-direction:column;gap:.5rem;align-items:center}.final-stat{font-size:.9rem;color:#ffffffb3}.final-stat span{color:#fff;font-weight:600}.time-bar{width:100%;height:6px;background:#ffffff14;border-radius:3px;margin-bottom:1rem;overflow:hidden}.time-bar-fill{height:100%;background:linear-gradient(90deg,#22d3ee,#a78bfa,#f472b6);border-radius:3px;transition:width .1s linear}.start-screen{text-align:center}.start-screen h2{font-size:1.5rem;margin-bottom:.5rem;color:#fffc}.start-screen p{color:#ffffff80;margin-bottom:1.5rem}.bpm-display{font-size:.8rem;color:#fff6;margin-top:.5rem}
