/* Static is the default. The controller opts in only when motion is allowed. */
.figure-motion-toggle{display:block;margin:12px 0 0 auto;padding:6px 0 6px 12px;font:10px/1.5 var(--mono);color:#626b64;background:none;border:0;cursor:pointer;min-height:32px}
.figure-motion-toggle[hidden]{display:none}
.figure-motion-toggle:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
.figure-depth-line,.figure-cross-field,.figure-shared-field{transform-box:view-box;transform-origin:50% 50%}
[data-figure-enabled=true] .figure-depth-line{animation:figure-breathe 9s ease-in-out infinite;animation-delay:0s}
[data-figure-enabled=true] .figure-depth-line:nth-child(2){animation-delay:.12s}
[data-figure-enabled=true] .figure-depth-line:nth-child(3){animation-delay:.24s}
[data-figure-enabled=true] .figure-depth-line:nth-child(4){animation-delay:.36s}
[data-figure-enabled=true] .figure-depth-line:nth-child(5){animation-delay:.48s}
[data-figure-enabled=true] .figure-depth-line:nth-child(6){animation-delay:.6s}
[data-figure-enabled=true] .figure-depth-line:nth-child(7){animation-delay:.72s}
[data-figure-enabled=true] .figure-depth-line:nth-child(8){animation-delay:.84s}
[data-figure-enabled=true] .figure-depth-line:nth-child(9){animation-delay:.96s}
[data-figure-enabled=true] .figure-depth-line:nth-child(10){animation-delay:1.08s}
[data-figure-enabled=true] .figure-depth-line:nth-child(11){animation-delay:1.2s}
[data-figure-enabled=true] .figure-depth-line:nth-child(12){animation-delay:1.32s}
[data-figure-enabled=true] .figure-depth-line:nth-child(13){animation-delay:1.44s}
[data-figure-enabled=true] .figure-depth-line:nth-child(14){animation-delay:1.56s}
[data-figure-enabled=true] .figure-depth-line:nth-child(15){animation-delay:1.68s}
[data-figure-enabled=true] .figure-cross-field{animation:figure-cross 13s ease-in-out infinite}
[data-figure-enabled=true] .figure-cross-field:nth-child(2){animation-name:figure-cross-counter;animation-duration:15s;animation-delay:.8s}
[data-figure-enabled=true] .figure-shared-field{animation:figure-shared 11s ease-in-out infinite}
[data-figure-enabled=true] .practice-contours>g:nth-child(2)>.figure-shared-field{animation-delay:1.1s;animation-duration:12s}
[data-figure-enabled=true] .practice-contours>g:nth-child(3)>.figure-shared-field{animation-delay:2.2s;animation-duration:13s}
[data-figure-enabled=true] .figure-depth-line,[data-figure-enabled=true] .figure-cross-field,[data-figure-enabled=true] .figure-shared-field{animation-play-state:paused}
[data-figure-running=true] .figure-depth-line,[data-figure-running=true] .figure-cross-field,[data-figure-running=true] .figure-shared-field{animation-play-state:running}
/* A second, slower transform adds a small response without restarting a cycle. */
.practice-figure .practice-contours{transform-box:fill-box;transform-origin:center;transition:transform 2.4s ease-in-out}
@media(hover:hover) and (pointer:fine){[data-figure-running=true]:hover .practice-contours{transform:scale(1.025)}}
@keyframes figure-breathe{0%,100%{transform:scale(1) rotate(0deg)}40%{transform:scale(1.065,.96) rotate(1.2deg)}75%{transform:scale(.98,1.035) rotate(-.8deg)}}
@keyframes figure-cross{0%,100%{transform:rotate(0deg) scale(1)}40%{transform:rotate(9deg) scale(1.035,.98)}75%{transform:rotate(-3deg) scale(.99,1.02)}}
@keyframes figure-cross-counter{0%,100%{transform:rotate(0deg) scale(1)}45%{transform:rotate(-9deg) scale(.98,1.035)}80%{transform:rotate(3deg) scale(1.02,.99)}}
@keyframes figure-shared{0%,100%{transform:translate(0,0) rotate(0deg) scale(1)}42%{transform:translate(7px,-12px) rotate(2deg) scale(1.035,.94)}78%{transform:translate(-4px,6px) rotate(-1.5deg) scale(.98,1.015)}}
.context-layer,.conversation-wave{transform-box:fill-box;transform-origin:center}
.cycle-contour{transform-box:view-box;transform-origin:50% 44%}
.alliance-field{transform-box:view-box;transform-origin:50% 50%}
[data-figure-enabled=true] .alliance-field{animation:alliance-weave 14s ease-in-out infinite;animation-delay:var(--alliance-phase,0s);animation-play-state:paused}
[data-figure-running=true] .alliance-field{animation-play-state:running}
@keyframes alliance-weave{0%,100%{transform:translateY(0) scale(1) rotate(0deg)}42%{transform:translateY(-9px) scale(1.015,.94) rotate(2.5deg)}76%{transform:translateY(6px) scale(.99,1.025) rotate(-1.5deg)}}
[data-figure-enabled=true] .context-layer{animation:context-drift 12s ease-in-out infinite}
[data-figure-enabled=true] .context-layer-1{animation-delay:1.2s;animation-duration:13s}
[data-figure-enabled=true] .context-layer-2{animation-delay:2.4s;animation-duration:14s}
[data-figure-enabled=true] .conversation-wave{animation:conversation-drift 10s ease-in-out infinite}
[data-figure-enabled=true] .conversation-wave-1{animation-name:conversation-reply;animation-duration:12s}
[data-figure-enabled=true] .cycle-contour{animation:cycle-exchange 10s ease-in-out infinite;animation-delay:var(--cycle-phase,0s)}
[data-figure-enabled=true] .cycle-flow{opacity:.8;animation:cycle-circulate 14s linear infinite}
[data-figure-enabled=true] :is(.context-layer,.conversation-wave,.cycle-contour,.cycle-flow){animation-play-state:paused}
[data-figure-running=true] :is(.context-layer,.conversation-wave,.cycle-contour,.cycle-flow){animation-play-state:running}
@keyframes context-drift{0%,100%{transform:translateX(0) scale(1)}45%{transform:translateX(12px) scale(1.025,.96)}78%{transform:translateX(-6px) scale(.99,1.035)}}
@keyframes conversation-drift{0%,100%{transform:translateY(0) rotate(0deg)}45%{transform:translateY(-9px) rotate(3deg)}78%{transform:translateY(4px) rotate(-1deg)}}
@keyframes conversation-reply{0%,100%{transform:translateY(0) rotate(0deg)}45%{transform:translateY(9px) rotate(-3deg)}78%{transform:translateY(-4px) rotate(1deg)}}
@keyframes cycle-exchange{0%,100%{transform:scale(1) rotate(0deg)}45%{transform:scale(1.035,.97) rotate(3deg)}78%{transform:scale(.985,1.02) rotate(-2deg)}}
@keyframes cycle-circulate{from{stroke-dashoffset:0}to{stroke-dashoffset:-1}}
@media(pointer:coarse){.figure-motion-toggle{min-height:44px}}
@media(prefers-reduced-motion:reduce){
  .practice-figure .practice-contours{transform:none!important;transition:none}
  .figure-depth-line,.figure-cross-field,.figure-shared-field,.context-layer,.conversation-wave,.cycle-contour,.cycle-flow,.alliance-field{animation:none!important;transform:none!important}
  .cycle-flow{opacity:0!important}
  .figure-motion-toggle{display:none}
}
html[data-motion=off] .practice-figure .practice-contours{transform:none;transition:none}
