/* V128: essential beat feedback follows existing trainingCueAt, never a second clock. */
#game[data-route="training"] .training-help small{font-size:11.5px;font-weight:700;line-height:1.2;color:#170903;text-shadow:none}
#game[data-route="training"] .rhythm-ring::before{content:"";position:absolute;inset:1px;border-radius:50%;background:radial-gradient(ellipse,#ffe68542 0,#ffd23c24 43%,#ffd23c00 73%);pointer-events:none}
#game[data-route="training"] .rhythm-ring::after{content:"";position:absolute;inset:9px 24px;border:1.5px dashed #fff4ad;border-radius:50%;box-shadow:0 0 4px #ffd34c;pointer-events:none}
#game[data-route="training"] .music63-lane{background:linear-gradient(90deg,#ffd99d14,#ffb19469 18%,#ffad918a 50%,#ffb19469 82%,#ffd99d14);border-inline:1px solid #fff2bd85}
#game[data-route="training"] .lane128-streak{position:absolute;display:block;left:calc(11px + var(--streak-i)*16px);top:calc(var(--train-cue-phase,0)*119px + var(--streak-i)*15px);width:2px;height:calc(17px + var(--streak-i)*4px);border-radius:3px;background:linear-gradient(#fff9df00,#fffbe9b8 45%,#fffdf5);box-shadow:0 0 4px #ffdf99;opacity:var(--train-cue-opacity,1);pointer-events:none}
#game[data-route="training"] .gold-line::after{content:"";position:absolute;left:50%;top:50%;width:112px;height:48px;transform:translate(-50%,-50%);border:1px solid #ffe58b99;border-radius:50%;background:radial-gradient(ellipse,#fff3b23d,#ffd44e29 45%,#ffd44e00 72%);box-shadow:0 0 13px #ffd84b69,inset 0 0 8px #fff1a34d;pointer-events:none}
