* { box-sizing: border-box; margin: 0; padding: 0; user-select: none; }
body { font-family: 'Teko', sans-serif; overflow: hidden; background: #000; touch-action: none; color: #fff; }
#game-root { position: relative; width: 100vw; height: 100vh; }
canvas { display: block; width: 100%; height: 100%; }

.screen { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; background: rgba(0, 20, 10, 0.85); backdrop-filter: blur(10px); z-index: 10; transition: opacity 0.3s; }
.hidden { opacity: 0; pointer-events: none; }

h1 { font-size: 6rem; margin-bottom: 0rem; text-align: center; color: #fff; text-shadow: 0 0 10px #00ffff, 0 5px 20px #000; text-transform: uppercase; letter-spacing: 2px; line-height: 1; }
p { font-size: 1.5rem; margin-bottom: 2.5rem; text-align: center; max-width: 500px; color: #a0aec0; letter-spacing: 1px; font-family: sans-serif; }

.ui-btn { font-family: 'Teko', sans-serif; padding: 10px 60px; font-size: 2.5rem; font-weight: bold; color: #fff; background: linear-gradient(135deg, #00ffff, #0055ff); border: none; border-radius: 8px; cursor: pointer; box-shadow: 0 5px 15px rgba(0, 255, 255, 0.4); transition: transform 0.2s; text-transform: uppercase; letter-spacing: 2px; }
.ui-btn:active { transform: scale(0.95); }

#hud { position: absolute; top: 20px; left: 20px; right: 20px; display: flex; justify-content: center; gap: 20px; z-index: 5; pointer-events: none; }
.hud-box { background: rgba(0, 0, 0, 0.6); border: 2px solid #00ffff; padding: 5px 20px; border-radius: 8px; text-align: center; backdrop-filter: blur(5px); display: flex; flex-direction: column; min-width: 100px; }
.hud-box.target { border-color: #ff00ff; }
.hud-box span { font-size: 1.2rem; color: #00ffff; letter-spacing: 1px; line-height: 1; margin-top: 5px; }
.hud-box.target span { color: #ff00ff; }
.hud-box strong { font-size: 2.5rem; line-height: 1; color: #fff; text-shadow: 0 2px 5px #000; }

#hit-bar { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); width: 90%; max-width: 500px; display: flex; flex-direction: column; gap: 15px; z-index: 5; }

.timing-track { position: relative; width: 100%; height: 30px; background: rgba(255,255,255,0.2); border-radius: 15px; border: 2px solid #fff; overflow: hidden; }
.timing-zone { position: absolute; left: 70%; width: 20%; height: 100%; background: rgba(0, 255, 255, 0.5); }
#timing-cursor { position: absolute; left: 0%; top: -2px; width: 6px; height: 34px; background: #fff; box-shadow: 0 0 10px #fff; transition: left 0.05s linear; }

.hit { font-family: 'Teko', sans-serif; padding: 15px; font-size: 3rem; font-weight: bold; color: #000; background: #00ffff; border: none; border-radius: 15px; cursor: pointer; text-transform: uppercase; letter-spacing: 2px; box-shadow: 0 5px 0 #008888; transition: transform 0.1s; }
.hit:active { transform: translateY(5px); box-shadow: 0 0px 0 #008888; }
