*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:#0b0a0e;color:#f5efe6;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent}
#hud{display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:11px;letter-spacing:.18em;color:#b9a98c}
#hudBar{flex:1;height:4px;background:#1c1820;border-radius:2px;overflow:hidden}
#hudBarFill{height:100%;width:0;background:#f4b455;transition:width .15s linear}
#hudScore{font-weight:700;color:#f4b455;min-width:70px;text-align:right;font-variant-numeric:tabular-nums;font-size:13px}
.screen{position:absolute;inset:52px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:22px;text-align:center}
.hidden{display:none !important}
.big{font-size:clamp(36px,11vw,66px);font-weight:800;letter-spacing:.08em;line-height:.95}
.sub{color:#cbbfa6;letter-spacing:.22em;font-size:11px;text-transform:uppercase}
.linebox{border:1px solid #2a2333;border-radius:12px;padding:10px 22px;background:#121016}
.ll{font-size:10px;letter-spacing:.3em;color:#b9a98c}
.lv{font-size:26px;font-weight:700;color:#f4b455;font-variant-numeric:tabular-nums}
.best{font-size:11px;color:#8f8570;letter-spacing:.08em;min-height:14px}
.how{color:#cbbfa6;font-size:13px;line-height:1.6}
button{background:#f4b455;color:#16110a;border:0;border-radius:999px;padding:14px 34px;font-size:15px;font-weight:800;letter-spacing:.12em;cursor:pointer}
button:active{transform:scale(.97)}
.row-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.row-btns button{padding:12px 22px;font-size:13px}
.row{display:flex;gap:14px;align-items:baseline;font-size:13px;color:#b9a98c;letter-spacing:.06em}
.row b{font-size:24px;color:#f5efe6;font-variant-numeric:tabular-nums}
#stats{font-size:12px;color:#8f8570;letter-spacing:.06em}
#verdict{font-size:clamp(20px,6vw,30px);font-weight:800;letter-spacing:.08em}
.foot{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:11px;color:#6f675a;letter-spacing:.08em}
#game{padding:0 8px 10px;inset:52px 0 0}
#lanes{flex:1;display:flex;gap:6px;width:100%}
.lane{flex:1;position:relative;background:#121016;border-radius:10px;overflow:hidden;transition:background .08s}
.lane.flash{background:#1a1620}
.hitline{position:absolute;left:0;right:0;top:78%;height:2px;background:rgba(244,180,85,.45);box-shadow:0 0 14px rgba(244,180,85,.25)}
.note{position:absolute;left:5%;width:90%;height:14px;border-radius:7px;background:#f4b455;box-shadow:0 0 14px rgba(244,180,85,.5);will-change:transform}
.note.hit{opacity:0;transition:opacity .12s}
.note.missed{background:#5a2230;box-shadow:none;opacity:0;transition:opacity .18s}
#combo{position:absolute;top:8px;left:0;right:0;text-align:center;font-size:22px;font-weight:800;color:#f4b455;letter-spacing:.1em;z-index:3;pointer-events:none}
#overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(11,10,14,.55);z-index:4;pointer-events:none}
#overlay span{font-size:20px;font-weight:800;letter-spacing:.3em;color:#f4b455}
.sharehint{font-size:12px;color:#8f8570;letter-spacing:.1em;margin-top:2px}

#start{gap:10px;overflow-y:auto}
#ladder{display:flex;flex-direction:column;gap:6px;width:min(340px,88vw)}
.lvl{display:flex;align-items:center;gap:10px;padding:7px 12px;border:1px solid #241f2c;border-radius:10px;background:#121016;font-size:12px;color:#cbbfa6;letter-spacing:.06em;cursor:pointer}
.lvl b{color:#f4b455;min-width:14px;text-align:center;font-size:12px}
.lvl span{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lvl em{font-style:normal;font-size:11px;color:#8f8570}
.lvl.sel{border-color:#f4b455;background:#1a1520}
.lvl.cleared{opacity:.9}
.lvl.cleared em{color:#f4b455}
.lvl.locked{opacity:.45;cursor:default}
.menulink{font-size:11px;color:#6f675a;letter-spacing:.12em;text-decoration:underline;cursor:pointer;padding:2px}
