:root{
  --bg1:#0b1020; --bg2:#0f172a;
  --accent:#ffd166; --accent2:#60a5fa;
  --white: #f8fafc;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:Inter, Poppins, system-ui;background:linear-gradient(180deg,var(--bg1),var(--bg2));color:var(--white)}
.container{max-width:960px;margin:28px auto;padding:18px;}
header h1{margin:0;font-size:28px;color:var(--accent);text-shadow:0 4px 20px rgba(255,209,102,0.06)}
.tag{margin:6px 0 14px;color:#bcd7ff}

.controls{display:flex;gap:10px;align-items:center;margin-bottom:18px;background:rgba(255,255,255,0.02);padding:10px;border-radius:10px}
.controls select, .controls button{padding:8px 12px;border-radius:8px;border:none;cursor:pointer;font-weight:600}
#startBtn{background:linear-gradient(90deg,#7dd3fc,#a78bfa);color:#062033}
#strictBtn{background:transparent;border:1px solid rgba(255,255,255,0.06);color:var(--white)}
#restartBtn{background:linear-gradient(90deg,#fb7185,#f97316);color:white}

.piano-area{display:flex;justify-content:center;margin-top:8px}
.piano{display:flex;gap:8px;padding:20px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));border-radius:12px;border:1px solid rgba(255,255,255,0.03)}

.key{
  width:88px;height:260px;border-radius:10px;display:flex;align-items:flex-end;justify-content:center;
  cursor:pointer; user-select:none; box-shadow:0 8px 25px rgba(2,6,23,0.6);
  transition: transform .12s ease, box-shadow .14s ease;
  position:relative;padding-bottom:14px;font-weight:700;color:#062033;
  background:linear-gradient(180deg,#fff,#f3f4f6);
}
.key .label{position:absolute;top:8px;left:8px;font-size:13px;color:#1e293b;font-weight:700;opacity:0.85}
.key.active{transform:translateY(-8px);box-shadow:0 18px 40px rgba(96,165,250,0.18);outline:6px solid rgba(96,165,250,0.06)}
.key.wrong{animation:shake .36s}
@keyframes shake{0%{transform:translateX(0)}25%{transform:translateX(-6px)}50%{transform:translateX(6px)}75%{transform:translateX(-4px)}100%{transform:translateX(0)}}

.status{display:flex;gap:20px;margin-top:16px;font-weight:700}
.message{margin-top:14px;padding:12px;border-radius:10px;min-height:36px}
.hint{margin-top:18px;color:#9fb4d9;font-size:13px;text-align:center}

/* responsive */
@media (max-width:720px){
  .piano{gap:8px;padding:12px}
  .key{width:60px;height:200px;font-size:14px}
}
