/* The speaking coach (js/coach.js): while the student speaks, one tip line with no label or box. */
.coach-tip { font-weight: 600; color: var(--ink); }
/* The live tip line keeps the height of two lines, so nothing below it moves as tips come and go. A new tip fades in
   over 150 ms: js/coach.js switches data-f between a and b, which restarts the fade. */
.tip-line { min-height: calc(2 * 1.47059em); max-width: 100%; text-wrap: balance; }
.tip-line[data-f="a"] { animation: tip-a 150ms var(--ease); }
.tip-line[data-f="b"] { animation: tip-b 150ms var(--ease); }
@keyframes tip-a { from { opacity: 0; } }
@keyframes tip-b { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .tip-line[data-f] { animation: none; } }
