/* Each visible figure has a meaningful loop; headlines settle after entering. */
.masthead-type{display:block}
.motion-toggle{min-height:44px;padding:8px 13px;background:transparent;border:1px solid #77786d;color:var(--paper);font-size:11px;letter-spacing:.06em;white-space:nowrap}
.motion-toggle:hover{border-color:#e58b72;color:#e58b72}
.motion-toggle:focus-visible{outline-color:#e58b72}
.motion-toggle:disabled{cursor:default;opacity:.8}
.mastfoot{flex-wrap:wrap}
.word-window{display:inline-block;overflow:hidden;vertical-align:bottom}
.title-word{display:inline-block;transform-origin:0 100%}
.kinetic .hero-title a{display:block}
.kinetic .hero figure{position:relative;overflow:hidden}
.kinetic .hero .caption{margin-top:13px}
.kinetic-art{overflow:hidden}
.kinetic.motion-ready .hero-title .title-word{animation:title-rise 1.05s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--word-index)*90ms)}
.kinetic .wordmark-aura{opacity:.16}
.kinetic.motion-ready .wordmark-left{animation:mark-open-left 1.6s cubic-bezier(.16,1,.3,1) both,mark-tension-left 12s ease-in-out 1.6s infinite}
.kinetic.motion-ready .wordmark-right{animation:mark-open-right 1.6s cubic-bezier(.16,1,.3,1) both,mark-tension-right 12s ease-in-out 1.6s infinite}
.kinetic.motion-ready .wordmark-blade,.kinetic.motion-ready .wordmark-edge{transform-origin:657px 139px;animation:incision-reveal 1.6s cubic-bezier(.16,1,.3,1) both,blade-breathe 12s ease-in-out 1.6s infinite}
.kinetic.motion-ready .wordmark-aura{animation:aura-breathe 12s ease-in-out infinite}
.kinetic.motion-titles-settled .wordmark-left{animation:mark-tension-left 12s ease-in-out infinite}
.kinetic.motion-titles-settled .wordmark-right{animation:mark-tension-right 12s ease-in-out infinite}
.kinetic.motion-titles-settled .wordmark-blade,.kinetic.motion-titles-settled .wordmark-edge{animation:blade-breathe 12s ease-in-out infinite}
.kinetic.motion-ready .reveal-heading.is-revealed .title-word{animation:title-rise .85s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--word-index)*65ms)}
.kinetic-strip{overflow:hidden;background:var(--red);color:var(--paper);border-top:1px solid #d7846f;border-bottom:1px solid #d7846f;padding:16px 0}
.ticker-track{display:flex;width:max-content;animation:editorial-ticker 48s linear infinite}
.ticker-group{display:flex;align-items:center;flex-shrink:0;gap:42px;padding-right:42px;white-space:nowrap;font-family:var(--serif);font-size:clamp(23px,2.6vw,38px);letter-spacing:-.025em}
.ticker-group .ticker-cross{font-family:var(--sans);font-size:.65em;color:#e8b4a6}
.kinetic .limit-left{animation:limit-open-left 10s ease-in-out infinite}
.kinetic .limit-right{animation:limit-open-right 10s ease-in-out infinite}
.kinetic .clock-ring,.kinetic .clock-hands{transform-origin:400px 250px}
.kinetic .clock-ring{animation:clock-ring-turn 18s ease-in-out infinite}
.kinetic .clock-hands{animation:clock-hand-turn 12s ease-in-out infinite}
.kinetic .path-first{animation:path-resistance-up 9s ease-in-out infinite}
.kinetic .path-second{animation:path-resistance-down 9s ease-in-out infinite}
.kinetic .house-plan{transform-origin:400px 250px;animation:house-breath 14s ease-in-out infinite}
.kinetic .house-heart{transform-origin:400px 250px;animation:house-heartbeat 10s ease-in-out infinite}
.kinetic .rule-beam{animation:rule-distance 11s ease-in-out infinite}
.kinetic .question-frame{transform-origin:400px 250px;animation:question-opening 14s ease-in-out infinite}
.kinetic .question-field{animation:question-shift 10s ease-in-out infinite}
/* The original four illustrations remain available to the author. */
.kinetic .plate-light{animation:field-tension 18s ease-in-out infinite}
.kinetic .plate-dark{animation:counter-tension 18s ease-in-out infinite}
.kinetic .orbital-traces{transform-origin:500px 405px;animation:slow-orbit 64s linear infinite}
.kinetic .graphic-cross{animation:counter-tension 18s ease-in-out infinite}
.kinetic .orbit-one,.kinetic .orbit-two,.kinetic .orbit-three,.kinetic .orbit-satellite{transform-origin:390px 250px}
.kinetic .orbit-one{animation:slow-orbit 42s linear infinite}
.kinetic .orbit-two{animation:slow-orbit 56s linear infinite reverse}
.kinetic .orbit-three{animation:slow-orbit 70s linear infinite}
.kinetic .orbit-satellite{animation:slow-orbit 28s linear infinite}
.kinetic .grid-field{animation:grid-travel 24s linear infinite}
.kinetic .grid-aperture,.kinetic .step-volume{animation:field-tension 18s ease-in-out infinite}
.kinetic .step-guides{animation:counter-tension 18s ease-in-out infinite}
.kinetic .card h2 a{transition:color .2s ease}
.kinetic .arrowlink span[aria-hidden]{transition:transform .25s ease}
.kinetic .arrowlink:hover span[aria-hidden]{transform:translate(4px,-4px)}
.kinetic .kinetic-art:not(.is-motion-active) *,
.kinetic .kinetic-strip:not(.is-motion-active) *,
.kinetic .masthead-symbol:not(.is-motion-active) *{animation-play-state:paused!important}
.kinetic.motion-paused *,.kinetic.motion-paused *::before,.kinetic.motion-paused *::after,
.kinetic.motion-background-paused *,.kinetic.motion-background-paused *::before,.kinetic.motion-background-paused *::after{animation-play-state:paused!important}
.kinetic.motion-paused .title-word,.kinetic.motion-titles-settled .title-word{animation:none!important;transform:none!important}
@keyframes title-rise{from{transform:translateY(115%) rotate(2deg)}to{transform:translateY(0) rotate(0)}}
@keyframes mark-open-left{from{transform:translate(-5px,3px)}to{transform:translate(0,0)}}
@keyframes mark-open-right{from{transform:translate(7px,-3px)}to{transform:translate(0,0)}}
@keyframes mark-tension-left{0%,100%{transform:translate(0,0)}50%{transform:translate(-2px,1px)}}
@keyframes mark-tension-right{0%,100%{transform:translate(0,0)}50%{transform:translate(2px,-1px)}}
@keyframes incision-reveal{from{transform:scaleY(.84)}to{transform:scaleY(1)}}
@keyframes blade-breathe{0%,100%{transform:translateX(0)}50%{transform:translateX(1px)}}
@keyframes aura-breathe{0%,100%{opacity:.12}50%{opacity:.2}}
@keyframes limit-open-left{0%,100%{transform:translate(0,0)}50%{transform:translate(-16px,-5px)}}
@keyframes limit-open-right{0%,100%{transform:translate(0,0)}50%{transform:translate(16px,5px)}}
@keyframes clock-ring-turn{0%,100%{transform:rotate(0)}50%{transform:rotate(4deg)}}
@keyframes clock-hand-turn{0%,100%{transform:rotate(-18deg)}50%{transform:rotate(18deg)}}
@keyframes path-resistance-up{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
@keyframes path-resistance-down{0%,100%{transform:translateY(0)}50%{transform:translateY(16px)}}
@keyframes house-breath{0%,100%{transform:scaleX(1)}50%{transform:scaleX(1.035)}}
@keyframes house-heartbeat{0%,100%{transform:scale(.96)}50%{transform:scale(1.08)}}
@keyframes rule-distance{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}
@keyframes question-opening{0%,100%{transform:scaleX(1)}50%{transform:scaleX(1.07)}}
@keyframes question-shift{0%,100%{transform:translateX(-14px)}50%{transform:translateX(14px)}}
@keyframes editorial-ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes field-tension{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes counter-tension{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@keyframes slow-orbit{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes grid-travel{from{transform:translate(0,0)}to{transform:translate(52px,52px)}}
@media(max-width:760px){.motion-toggle{margin-left:auto}.mastfoot .label{display:none}.ticker-group{gap:28px;padding-right:28px}.kinetic-strip{padding:14px 0}.kinetic .orbit-three{animation:none}}
@media(prefers-reduced-motion:reduce){.kinetic *,.kinetic *::before,.kinetic *::after{animation:none!important;transition:none!important}.title-word{transform:none!important}.ticker-track{transform:none!important}}
@media print{.motion-toggle,.kinetic-strip{display:none}.kinetic *,.kinetic *::before,.kinetic *::after{animation:none!important}.title-word{transform:none!important}}
