/* ring: commons
 * seed: inherit
 * still: each pattern's ./still.md is the contract this sheet enforces
 * reduced: this IS the reduced law for the Commons ring
 * when-not: never omit — every template and the playground import this sheet
 *
 * Reduce = designed still. Not slower parallax. Not a paused mid-frame.
 * ss-motion.css already zeroes the five seed durations; this sheet covers Commons patterns.
 * Class table (Commons packet):
 *   opacity/color — allowed (calm) · small press scale — allowed if G-PRESS
 *   parallax / tilt / z-travel / pin-scrub — REPLACE with still
 *   marquee / pulse loops — pause, show full phrase
 *   split stagger — show complete line · smooth-scroll hijack — native scroll
 */

@media (prefers-reduced-motion: reduce) {
  /* parallax — planes stack at composed positions; no opposing-direction slide */
  [data-c-parallax] [data-plane] {
    animation: none !important;
    transform: none !important;
  }

  /* reveal — final state immediately; opacity-only path already lands at 1 */
  [data-c-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  /* marquee — pause the loop, unwrap so the full phrase reads as a still */
  [data-c-marquee] .c-marquee-track {
    animation-play-state: paused !important;
    animation: none !important;
    transform: none !important;
  }
  [data-c-marquee] {
    overflow-x: auto;
    white-space: normal;
  }
  [data-c-marquee] .c-marquee-clone {
    display: none !important;
  }

  /* media-well — poster still; film never plays */
  [data-c-media-well] video {
    animation: none !important;
  }

  /* magnet — off entirely */
  [data-c-magnet] {
    transform: none !important;
    transition: none !important;
  }

  /* flip-layout — replace: elements appear in their final slot */
  [data-c-flip] * {
    transition: none !important;
  }

  /* draw-svg — fully drawn still */
  [data-c-draw] path,
  [data-c-draw] line,
  [data-c-draw] circle,
  [data-c-draw] rect,
  [data-c-draw] polyline {
    stroke-dashoffset: 0 !important;
    stroke-dasharray: none !important;
    transition: none !important;
    animation: none !important;
  }

  /* scrub-driven scenes — freeze at the designed still (ss-motion Law 6: t≈0.15) */
  :root {
    --c-t: 0.15;
  }
  [data-c-scrub] .c-scrub-fill,
  [data-c-scrub] .c-scrub-mark {
    animation: none !important;
    transition: none !important;
  }

  /* text-split — whole line, never a half-split or per-char stagger */
  [data-c-split],
  [data-c-split] [data-c-split-unit],
  [data-c-split] [data-c-split-word] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    transition-delay: 0ms !important;
    will-change: auto !important;
  }

  /* theme-toggle — instant day/night still; no rotation, no ray collapse, no mask travel */
  [data-c-theme-toggle] .c-sunmoon-rotator,
  [data-c-theme-toggle] .c-sunmoon-rays,
  [data-c-theme-toggle] .c-sunmoon-cut {
    transition: none !important;
  }

  /* status-button — text-state only */
  [data-c-status] [data-progress] {
    display: none !important;
    animation: none !important;
    transition: none !important;
  }
  [data-c-status][data-state="success"],
  [data-c-status][data-state="error"] {
    animation: none !important;
    transform: none !important;
  }

  /* toolbar — finished glyph; no frame play */
  [data-c-toolbar] [data-c-toolbar-morph] [data-frame] {
    transition: none !important;
  }

  /* tab-meniscus — cut: pill already under the selected label */
  [data-c-tab-meniscus] .c-tab-pill {
    transition: none !important;
  }

  /* tooltip — instant; no scale/travel */
  [data-c-tooltip] [data-c-tooltip-pop],
  [data-c-tooltip][data-open] [data-c-tooltip-pop],
  [data-c-tooltip][data-place="below"] [data-c-tooltip-pop] {
    transition: none !important;
  }
  [data-c-tooltip][data-open] [data-c-tooltip-pop] {
    transform: translateX(-50%) translateY(0) scale(1) !important;
  }

  /* cookie-notice — seated line, no pointer travel */
  [data-c-cookie],
  [data-c-cookie] [data-cookie-go],
  [data-c-cookie] [data-cookie-ptr] {
    transition: none !important;
  }
  [data-c-cookie] [data-cookie-ptr] {
    display: none !important;
  }

  /* snap-board — cards already seated; no travel */
  [data-c-snap-board] .c-snap-board-card,
  [data-c-snap-board] .c-snap-board-col {
    transition: none !important;
    transform: none !important;
  }

  /* modal — cut: open panel, no enter/exit */
  [data-c-modal],
  [data-c-modal][open],
  [data-c-modal][data-closing],
  [data-c-modal]::backdrop {
    transition: none !important;
    transform: none !important;
  }
  [data-c-modal][open] {
    opacity: 1 !important;
  }
  [data-c-modal][open]::backdrop {
    opacity: 1 !important;
  }
}
