.dynamics-motion-lab{--dm-ink:var(--ink,#293d3c);--dm-muted:var(--muted,#586966);--dm-accent:var(--coral,#bc493c);--dm-aqua:#39776f;--dm-line:var(--line,#c6ceca);--dm-paper:var(--paper,#faf7f0);color:var(--dm-ink)}
html[data-theme="dark"] .dynamics-motion-lab,[data-theme="dark"] .dynamics-motion-lab{--dm-ink:#f3f1e9;--dm-muted:#c2cec9;--dm-accent:#ff9b87;--dm-aqua:#89d1c6;--dm-line:#62726d;--dm-paper:#1c2a29}
.dynamics-motion-lab h3{font-size:clamp(1.35rem,2.5vw,1.9rem);margin:.5rem 0}.dynamics-motion-lab p{line-height:1.65}.dm-scene{overflow:auto;border:1px solid var(--dm-line);border-radius:14px;background:var(--dm-paper);margin:1.25rem 0}.dm-scene svg{display:block;width:100%;min-width:680px;height:auto}.dm-scene text{font-family:inherit;fill:var(--dm-ink);font-size:17px}.dm-scene .dm-title{font-size:22px;font-weight:600}.dm-scene .dm-small{font-size:16px;fill:var(--dm-muted)}.dm-scene .dm-tiny{font-size:12px;fill:var(--dm-muted)}.dm-scene .dm-muted{fill:var(--dm-muted)}.dm-line{stroke:var(--dm-line);stroke-width:2;fill:none}.dm-origin,.dm-endpoint{stroke:var(--dm-line);stroke-width:1.5;stroke-dasharray:5 5}.dm-cart rect{fill:var(--dm-accent);stroke:var(--dm-ink);stroke-width:1.5}.dm-cart circle{fill:var(--dm-paper);stroke:var(--dm-ink);stroke-width:2}.dm-scene .dm-centre{fill:var(--dm-ink)}.dm-ghost rect,.dm-ghost circle{fill:none;stroke:var(--dm-accent);stroke-width:2}.dm-reference rect,.dm-reference circle{fill:none;stroke:var(--dm-aqua);stroke-width:2}.dm-velocity{stroke:var(--dm-aqua);stroke-width:3;fill:var(--dm-aqua)}.dm-acceleration{stroke:var(--dm-accent);stroke-width:3;fill:var(--dm-accent)}.dm-displacement,.dm-gap{stroke:var(--dm-accent);stroke-width:2;fill:none}.dm-scene .dm-velocity-label{fill:var(--dm-aqua)}.dm-scene .dm-acceleration-label{fill:var(--dm-accent)}
.dm-readouts{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin:1rem 0}.dm-readouts div{border-bottom:1px solid var(--dm-line);padding:.5rem}.dm-readouts span{display:block;font-size:.82rem;color:var(--dm-muted)}.dm-readouts strong{display:block;font-size:1.3rem;font-weight:600;margin-top:.3rem}.dm-readouts small{font-size:.8rem;font-weight:400}.dm-controls{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:1.5rem 0}.dm-controls label,.dm-practice label{display:block;font-size:.9rem;margin:.75rem 0}.dm-controls output{float:right;color:var(--dm-accent)}.dm-controls input[type="range"]{display:block;width:100%;margin:.6rem 0;accent-color:var(--dm-accent);min-height:24px}.dm-help,.dm-source{font-size:.82rem;color:var(--dm-muted)}.dm-transport,.dm-presets{display:flex;gap:.5rem;flex-wrap:wrap;margin:.8rem 0}.dynamics-motion-lab button,.dynamics-motion-lab select,.dynamics-motion-lab input[type="number"]{font:inherit;color:var(--dm-ink);background:var(--dm-paper);border:1px solid var(--dm-line);border-radius:8px;padding:.65rem .8rem}.dynamics-motion-lab button{cursor:pointer;min-height:44px}.dynamics-motion-lab button[aria-pressed="true"]{border-color:var(--dm-accent);box-shadow:inset 0 0 0 1px var(--dm-accent)}.dynamics-motion-lab button:hover{border-color:var(--dm-accent)}.dynamics-motion-lab :focus-visible{outline:2px solid var(--dm-accent);outline-offset:3px}.dm-check input{accent-color:var(--dm-accent)}.dm-status{font-size:.85rem;color:var(--dm-muted);min-height:2.8em}.dm-stages{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.dm-stages button{text-align:left}.dm-teaching{margin:1rem 0;border-left:3px solid var(--dm-accent);padding:.25rem 1rem}.dm-teaching h4{margin:.5rem 0}.dm-equation{font-family:"Latin Modern Math","STIX Two Math",serif;font-size:1.2rem;color:var(--dm-ink);padding:.75rem 0;overflow-wrap:anywhere;line-height:1.8}.dm-practice{border-top:1px solid var(--dm-line);padding:1rem 0}.dm-practice summary{cursor:pointer;min-height:32px}.dm-practice input[type="number"]{display:block;width:min(100%,240px);margin-top:.5rem}.dm-source{border-top:1px solid var(--dm-line);padding-top:1rem}
@media(max-width:620px){.dm-controls{grid-template-columns:1fr;gap:0}.dm-stages{grid-template-columns:1fr}.dm-readouts{gap:.25rem}.dm-readouts strong{font-size:1.1rem}.dm-readouts small{display:block}}

@media(prefers-reduced-motion:reduce){.dynamics-motion-lab *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
