.fx-layer{pointer-events:none;z-index:3;position:absolute;inset:0}.fx-layer.fx-under{z-index:0}.fx-layer>span,.fx-ghost{width:12.5%;height:12.5%;position:absolute}.fx-pulse{background:var(--fx);opacity:0;border-radius:14%;animation:.35s ease-out forwards fx-pulse-in,1.6s ease-in-out .35s infinite fx-breathe}@keyframes fx-pulse-in{0%{opacity:0;transform:scale(.4)}to{opacity:.85;transform:scale(1)}}@keyframes fx-breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:.45;transform:scale(.86)}}.fx-cross svg{width:100%;height:100%}.fx-cross path{fill:none;stroke:#e53935;stroke-width:1.3px;stroke-linecap:round;stroke-dasharray:16;stroke-dashoffset:16px;filter:drop-shadow(0 0 .4px #fff);animation:.45s ease-out forwards fx-draw}.fx-cross{animation:.4s ease-in-out .45s fx-shake}@keyframes fx-draw{to{stroke-dashoffset:0}}@keyframes fx-shake{25%{transform:translate(-6%)}75%{transform:translate(6%)}}.fx-sparkle{border-radius:50%;animation:.9s ease-out 2 forwards fx-ring;box-shadow:0 0 #ffd600e6}@keyframes fx-ring{0%{box-shadow:0 0 #ffd600e6}to{box-shadow:0 0 0 1.4cqw #ffd60000}}.piece.piece-bounce{z-index:2;animation:.5s cubic-bezier(.3,1.6,.5,1) 2 fx-hop}.fx-name{background:#f5b30147;border-radius:50%;animation:.7s ease-in-out 3 forwards fx-name-ring;box-shadow:inset 0 0 0 4px #f5b301,0 0 18px 4px #f5b301bf}@keyframes fx-name-ring{0%{opacity:0;transform:scale(.7)}50%{opacity:1;transform:scale(1.05)}to{opacity:.8;transform:scale(.95)}}.piece.piece-named{z-index:2;animation:.7s ease-in-out 3 fx-swell}@keyframes fx-swell{50%{filter:drop-shadow(0 0 6px #f5b301e6);transform:scale(1.28)}}.say-line .w.w-piece{color:#b7791f;font-weight:700}@keyframes fx-hop{40%{transform:translateY(-22%)scale(1.12)}}.fx-arrows{width:100%;height:100%;position:absolute;inset:0}.fx-arrow line{stroke-dasharray:1;stroke-dashoffset:1px;animation:.55s ease-out forwards fx-draw;animation-delay:inherit}.fx-arrow-head{opacity:0;animation:.2s ease-out .5s forwards fx-appear}@keyframes fx-appear{to{opacity:1}}.fx-spot{width:100%;height:100%;animation:.4s ease-out fx-appear-spot;position:absolute;inset:0}@keyframes fx-appear-spot{0%{opacity:0}}.fx-ghost{opacity:.25;filter:drop-shadow(0 0 6px #ffffffe6)}.fx-confetti{position:absolute;inset:0;overflow:hidden}.fx-confetti i{opacity:0;border-radius:2px;width:2.2%;height:3.4%;animation:1.8s cubic-bezier(.2,.6,.4,1) forwards fx-fall;position:absolute;top:-4%}@keyframes fx-fall{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(var(--drift), 105cqw) rotate(540deg)}}@media (prefers-reduced-motion:reduce){.fx-pulse{animation:10ms forwards fx-pulse-in}.fx-arrow line,.fx-cross path{animation-duration:10ms}.fx-cross,.fx-sparkle,.piece.piece-bounce,.piece.piece-named,.fx-name,.fx-confetti{animation:none}.fx-confetti{display:none}}.say-line{font-size:1.12rem;line-height:1.55}.say-line .w{border-radius:4px;padding:0 1px;transition:color .15s,background .15s}.say-line .w.is-past{color:var(--text)}.say-line .w.is-future{color:color-mix(in srgb, var(--text) 55%, transparent)}.say-line .w.is-now{color:var(--text);background:var(--accent-soft)}.say-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.say-play-big{padding:10px 18px;font-size:1.1rem;animation:1.6s infinite pulse;box-shadow:0 0 #6ee7a899}.coach-avatar.is-talking{animation:.5s ease-in-out infinite fx-talk}@keyframes fx-talk{50%{transform:scale(1.08)rotate(-3deg)}}.lesson-dock{align-items:stretch;gap:10px;display:flex}.lesson-dock .dock-btn{text-align:center;white-space:normal;border-radius:18px;flex:1 1 0;justify-content:center;align-items:center;gap:10px;min-width:0;min-height:64px;padding:8px 14px;font-size:1.15rem;font-weight:700;line-height:1.15;display:inline-flex}.lesson-dock .dock-next{flex-grow:1.7}.lesson-dock .dock-ico{flex-shrink:0;font-size:1.55em;line-height:1}.lesson-dock .dock-btn:disabled{opacity:.45}.lesson-dock .dock-next.is-ready,.lesson-dock .dock-mid.is-calling{animation:1.8s ease-in-out infinite dock-call}@keyframes dock-call{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent,#2e8b57) 55%, transparent)}50%{box-shadow:0 0 0 10px color-mix(in srgb, var(--accent,#2e8b57) 0%, transparent)}}.lesson-dock .dock-next:disabled{animation:none}.lesson-layout{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.lesson-dock{z-index:30;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg,#f5f2ec) 88%, transparent);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border,#00000014);position:fixed;bottom:0;left:0;right:0}@media (max-width:600px){.lesson-dock{gap:8px;padding-inline:8px}.lesson-dock .dock-btn{border-radius:16px;flex-direction:column;gap:2px;min-height:68px;padding:6px 4px;font-size:.95rem}.lesson-dock .dock-next{flex-direction:row;gap:8px;font-size:1.15rem}.lesson-dock .dock-ico{font-size:1.5rem}}@media (min-width:900px) and (min-aspect-ratio:1),(min-width:720px) and (max-height:520px) and (min-aspect-ratio:1){.lesson-layout{padding-bottom:14px}.lesson-layout .game-panel{display:flex}.lesson-dock{z-index:1;border:1px solid var(--border,#00000014);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:20px;flex-wrap:wrap;margin-top:auto;padding:12px;position:sticky;bottom:0}.lesson-dock .dock-btn{min-height:68px}.lesson-dock .dock-next{flex-basis:100%;order:3;min-height:76px;font-size:1.3rem}}@media (min-width:1700px) and (min-aspect-ratio:1){.lesson-dock .dock-btn{min-height:84px;font-size:1.45rem}.lesson-dock .dock-next{min-height:96px;font-size:1.7rem}.lesson-layout .say-line{font-size:1.45rem}}@media (prefers-reduced-motion:reduce){.lesson-dock .dock-next.is-ready,.lesson-dock .dock-mid.is-calling{animation:none}}@media (min-width:1700px) and (min-aspect-ratio:1){.lesson-layout.game-layout{--panel:clamp(360px, 27vw, 540px)}}
