/* A restrained second rhythm: entry, response and depth. Base content remains visible. */
.motion-progress{position:fixed;inset:0 0 auto;height:2px;z-index:60;pointer-events:none;overflow:hidden}
.motion-progress>span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:var(--yellow);box-shadow:0 0 12px #f0c40055}
.ticker{position:relative}
.motion-toggle{position:absolute;right:20px;top:50%;transform:translateY(-50%);z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:12px 15px;background:#f0c400;color:#20201c;border:1px solid #20201c66;border-radius:3px;font-size:10px;line-height:1.3;font-weight:650;box-shadow:-18px 0 26px 15px #f0c400;white-space:nowrap;transition:background .2s,border-color .2s}
.motion-toggle:hover{background:#f9d327;border-color:#20201c}
.motion-toggle:focus-visible{outline:2px solid #20201c;outline-offset:4px}
.motion-toggle:disabled{cursor:default;opacity:.85}
.motion-toggle .motion-toggle-label{font-size:inherit;line-height:inherit}
.motion-toggle-icon{display:block;width:11px;height:12px;position:relative;flex:none}
.motion-toggle[data-state=playing] .motion-toggle-icon:before,.motion-toggle[data-state=playing] .motion-toggle-icon:after{content:'';position:absolute;inset:1px auto 1px 1px;width:3px;background:currentColor;border-radius:1px}
.motion-toggle[data-state=playing] .motion-toggle-icon:after{left:7px}
.motion-toggle[data-state=paused] .motion-toggle-icon:before{content:'';position:absolute;left:2px;top:1px;border-left:8px solid currentColor;border-top:5px solid transparent;border-bottom:5px solid transparent}
.motion-toggle-floating{position:fixed;top:auto;bottom:18px;right:18px;transform:none;z-index:40;box-shadow:0 3px 20px #0003}
html[data-motion=on] .hero-art{transform:perspective(1100px) translate3d(var(--motion-art-x,0px),var(--motion-art-y,0px),0) rotateX(var(--motion-art-rx,0deg)) rotateY(var(--motion-art-ry,0deg));transform-origin:50% 50%}
html[data-motion=on] .hero-art img{animation-duration:10s}
html[data-motion=on] .art-orbit{animation:bag-orbit-breathe 8s ease-in-out infinite}
html[data-motion=on] .signal{animation:bag-signal 3.5s ease-in-out infinite}
html[data-motion=on] .system-center{animation:bag-center-breathe 6s ease-in-out infinite}
html[data-motion=on] .ticker>div{--ticker-half-gap:22px;animation:bag-marquee 37s linear infinite}
html[data-motion=on] .ticker:hover>div,html[data-motion=on] .ticker:focus-within>div{animation-play-state:paused}
html[data-motion=on] .research-note .asterisk{animation:bag-asterisk-turn 18s cubic-bezier(.65,0,.35,1) infinite}
html[data-motion=on] .service{position:relative}
html[data-motion=on] .service:after{content:'';height:1px;position:absolute;bottom:-1px;left:0;width:100%;background:#8f7e22;transform:scaleX(0);transform-origin:left;pointer-events:none;transition:transform .65s cubic-bezier(.19,1,.22,1)}
html[data-motion=on] .service:hover:after,html[data-motion=on] .service[open]:after{transform:scaleX(1)}
html[data-motion=on] .service summary h3{transition:transform .5s cubic-bezier(.19,1,.22,1),color .25s}
html[data-motion=on] .service summary:hover h3{transform:translateX(7px)}
html[data-motion=on] .research-grid article{transition:transform .55s cubic-bezier(.19,1,.22,1),border-color .3s}
html[data-motion=on] .research-grid article:hover{transform:translateY(-5px);border-color:#8a7b22}
html[data-motion=on] .text-link{transition:gap .35s,border-color .3s,color .3s}
html[data-motion=on] .text-link:hover{gap:23px}
html[data-motion=on] .button>span:last-child,html[data-motion=on] .contact-link>span,html[data-motion=on] .explore>span:last-child{transition:transform .4s cubic-bezier(.19,1,.22,1)}
html[data-motion=on] .button:hover>span:last-child,html[data-motion=on] .contact-link:hover>span{transform:translate(3px,-3px)}
html[data-motion=on] .explore:hover>span:last-child{transform:translateY(5px)}
html[data-motion=on] .timeline article:before{transition:box-shadow .5s,transform .5s}
html[data-motion=on] .timeline article.motion-revealed:before{animation:bag-timeline-point 1s ease-out both}
html[data-motion=on] .timeline article:hover:before{box-shadow:0 0 0 5px #3c350c1a;transform:scale(1.25)}
html[data-motion=on] .nav-contact>span:last-child{transition:transform .35s}
html[data-motion=on] .nav-contact:hover>span:last-child{transform:translate(3px,-3px)}
html[data-motion=off]{scroll-behavior:auto}
html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation-play-state:paused!important;transition:none!important}
html[data-motion=off] .hero-art{transform:none!important}
@keyframes bag-orbit-breathe{0%,100%{opacity:.45;scale:1;rotate:0deg}50%{opacity:1;scale:1.035;rotate:4deg}}
@keyframes bag-signal{0%,100%{box-shadow:0 0 0 0 #f0c40000,0 0 9px #f0c40033}55%{box-shadow:0 0 0 5px #f0c40000,0 0 18px #f0c40088}20%{box-shadow:0 0 0 0 #f0c40033,0 0 9px #f0c40033}}
@keyframes bag-center-breathe{0%,100%{box-shadow:0 0 30px #f0c40008;border-color:#998831}50%{box-shadow:0 0 70px #f0c40015;border-color:#d0b84e}}
@keyframes bag-asterisk-turn{0%,30%{rotate:0deg}50%,80%{rotate:90deg}100%{rotate:180deg}}
@keyframes bag-timeline-point{0%{box-shadow:0 0 0 0 #3c350c44;scale:.5}65%{box-shadow:0 0 0 8px #3c350c00;scale:1.15}100%{box-shadow:0 0 0 10px #3c350c00;scale:1}}
@keyframes bag-marquee{to{transform:translateX(calc(-50% - var(--ticker-half-gap,22px)))}}
@media(max-width:760px){.motion-toggle{right:12px;min-height:36px;padding:9px 11px;gap:8px;font-size:8px;box-shadow:-12px 0 20px 10px #f0c400}.motion-toggle-icon{scale:.85}.header nav.motion-menu-closing{display:flex;pointer-events:none}html[data-motion=on] .hero-art{transform:none}html[data-motion=on] .service summary:hover h3{transform:none}html[data-motion=on] .ticker>div{--ticker-half-gap:12.5px}}
@media(prefers-reduced-motion:reduce){.motion-progress>span{box-shadow:none}html[data-motion] .hero-art{transform:none!important}html[data-motion] *,html[data-motion] *:before,html[data-motion] *:after{animation:none!important;transition:none!important}}
