:root{--bg:#0f1230;--bg-soft:#1a1f4d;--card:#ffffff12;--card-solid:#232a63;--text:#f4f6ff;--muted:#a9b2e0;--accent:#ffcf5c;--accent-strong:#ff9f43;--good:#5ce1b0;--border:#ffffff29;--radius:20px}*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{background:radial-gradient(1200px 700px at 20% -10%, #2b1f5e 0%, transparent 60%), radial-gradient(900px 600px at 100% 0%, #143a63 0%, transparent 55%), var(--bg);color:var(--text);font-family:Nunito,Segoe UI,system-ui,-apple-system,sans-serif;font-size:18px;line-height:1.5}.shell{max-width:900px;margin:0 auto;padding:32px 20px 64px}h1{margin:0 0 12px;font-size:clamp(30px,6vw,46px);line-height:1.1}h2{margin:0 0 8px;font-size:clamp(22px,4vw,28px)}.lead{color:var(--muted);max-width:62ch;margin:0 0 32px}a{color:var(--accent);text-underline-offset:3px}a:hover{color:var(--accent-strong)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:24px}.field{margin-bottom:22px}.field>label,.field>legend{margin-bottom:8px;font-weight:700;display:block}.hint{color:var(--muted);margin:6px 0 0;font-size:15px}input[type=text]{width:100%;font:inherit;color:var(--text);border:1px solid var(--border);background:#00000040;border-radius:14px;padding:14px 16px}input[type=text]:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}fieldset{border:0;margin:0;padding:0}.choices{flex-wrap:wrap;gap:10px;display:flex}.choice{position:relative}.choice input{opacity:0;width:0;height:0;position:absolute}.choice span{border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;background:#0003;border-radius:999px;padding:12px 18px;display:block}.choice input:checked+span{background:var(--accent);border-color:var(--accent);color:#2a1c00;font-weight:800}.choice input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.suggestions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.suggestion{border:1px dashed var(--border);color:var(--muted);font:inherit;cursor:pointer;background:#ffffff14;border-radius:999px;padding:6px 14px;font-size:15px}.suggestion:hover{color:var(--text);border-style:solid}button.primary{width:100%;font:inherit;color:#2a1c00;background:linear-gradient(135deg, var(--accent), var(--accent-strong));cursor:pointer;border:0;border-radius:16px;padding:18px 24px;font-size:20px;font-weight:800}button.primary:disabled{opacity:.6;cursor:progress}button.ghost{font:inherit;color:var(--text);border:1px solid var(--border);cursor:pointer;background:#ffffff1a;border-radius:14px;padding:14px 22px;font-weight:700}button.ghost:hover{background:#ffffff2e}.error{background:#ff636329;border:1px solid #ff636373;border-radius:14px;margin-top:18px;padding:14px 16px}.player{flex-direction:column;gap:20px;min-height:80vh;display:flex}.stage{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:28px 20px;display:flex}.phase-badge{letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--border);background:#ffffff1f;border-radius:999px;padding:6px 16px;font-size:15px;font-weight:800;display:inline-block}.movement-name{margin:0;font-size:clamp(28px,6vw,44px);font-weight:900}.movement-instruction{color:var(--muted);max-width:34ch;margin:0}.narration{max-width:46ch;margin:0;font-size:clamp(17px,2.6vw,20px)}.timer{font-variant-numeric:tabular-nums;color:var(--accent);font-size:clamp(44px,12vw,84px);font-weight:900;line-height:1}.progress{border:1px solid var(--border);background:#00000059;border-radius:999px;height:12px;overflow:hidden}.progress>div{background:linear-gradient(90deg, var(--good), var(--accent));height:100%;transition:width .3s linear}.meta-row{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:15px;display:flex}.controls{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.up-next{color:var(--muted);font-size:16px}.status{color:var(--muted)}.music-level{color:var(--muted);align-items:center;gap:12px;font-size:15px;display:flex}.music-level input[type=range]{accent-color:var(--accent);flex:1}.music-level-value{font-variant-numeric:tabular-nums;text-align:right;min-width:4ch}.figure{will-change:transform;font-size:clamp(90px,26vw,170px);line-height:1}.figure[data-paused=true]{animation-play-state:paused!important}.figure[data-animation=jump]{animation:.7s ease-in-out infinite fig-jump}.figure[data-animation=squat]{animation:1.6s ease-in-out infinite fig-squat}.figure[data-animation=march]{animation:.9s ease-in-out infinite fig-march}.figure[data-animation=reach-up]{animation:2.4s ease-in-out infinite fig-reach}.figure[data-animation=side-bend]{animation:2.2s ease-in-out infinite fig-bend}.figure[data-animation=twist]{animation:1.8s ease-in-out infinite fig-twist}.figure[data-animation=arm-circles]{animation:1.6s linear infinite fig-circle}.figure[data-animation=run-in-place]{animation:.4s ease-in-out infinite fig-run}.figure[data-animation=balance]{animation:3s ease-in-out infinite fig-balance}.figure[data-animation=stretch]{animation:3.4s ease-in-out infinite fig-stretch}.figure[data-animation=wiggle]{animation:1.1s ease-in-out infinite fig-wiggle}.figure[data-animation=breathe]{animation:8s ease-in-out infinite fig-breathe}.figure[data-animation=clap]{animation:.6s ease-in-out infinite fig-clap}.figure[data-animation=kick]{animation:1.2s ease-in-out infinite fig-kick}@keyframes fig-jump{0%,to{transform:translateY(0)scaleY(1)}35%{transform:translateY(-26px)scaleY(1.06)}70%{transform:translateY(0)scaleY(.94)}}@keyframes fig-squat{0%,to{transform:translateY(0)scaleY(1)}50%{transform:translateY(18px)scaleY(.78)}}@keyframes fig-march{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-10px)rotate(3deg)}}@keyframes fig-reach{0%,to{transform:translateY(0)scaleY(1)}50%{transform:translateY(-16px)scaleY(1.12)}}@keyframes fig-bend{0%,to{transform:rotate(-14deg)}50%{transform:rotate(14deg)}}@keyframes fig-twist{0%,to{transform:rotateY(-32deg)translate(-8px)}50%{transform:rotateY(32deg)translate(8px)}}@keyframes fig-circle{0%{transform:rotate(0)translateY(-6px)}to{transform:rotate(360deg)translateY(-6px)}}@keyframes fig-run{0%,to{transform:translateY(0)skew(-4deg)}50%{transform:translateY(-8px)skew(4deg)}}@keyframes fig-balance{0%,to{transform:rotate(-6deg)translate(-4px)}50%{transform:rotate(6deg)translate(4px)}}@keyframes fig-stretch{0%,to{transform:scale(1)}50%{transform:scale(1.14)}}@keyframes fig-wiggle{0%,to{transform:translate(-10px)rotate(-5deg)}50%{transform:translate(10px)rotate(5deg)}}@keyframes fig-breathe{0%,to{transform:scale(.9)}50%{transform:scale(1.16)}}@keyframes fig-clap{0%,to{transform:scaleX(1)}50%{transform:scaleX(.82)}}@keyframes fig-kick{0%,to{transform:rotate(0)translate(0)}30%{transform:rotate(-10deg)translate(-10px)}60%{transform:rotate(10deg)translate(10px)}}@media (prefers-reduced-motion:reduce){.figure{animation:none!important}.progress>div{transition:none}}
