.brand-site{--file-rise:-12px;--file-roll:3.5deg;--seal-sway:9deg;--leaf-sway:6deg;--leaf-rise:-6px;--garden-grow:1.14;--orbit-grow:1.1;--route-rise:-8px}
.brand-site #progress-fill{width:100%;transform:scaleX(0);transform-origin:left center;transition:transform 240ms cubic-bezier(.23,1,.32,1)}
.brand-site .identity-cta,.brand-site .brand-cta,.brand-site .header-contact,.brand-site .brand-nav button{transition:transform 140ms cubic-bezier(.23,1,.32,1),background-color 160ms ease}.brand-site button:active{transform:scale(.98)}.brand-site input,.brand-site textarea,.brand-site select{transition:border-color 160ms ease,background-color 160ms ease}.brand-site .wy-orbit-art>span:first-child:after{content:'';position:absolute;top:7%;left:22%;width:11px;height:11px;border-radius:50%;background:#35697b}.brand-site .zh-emblem{position:relative}.brand-site .zh-emblem:after{content:'';position:absolute;inset:-8px;border:1px solid #b7ceb0;border-radius:50%;pointer-events:none;opacity:.5}.brand-site .hz-file:after{content:'';position:absolute;left:0;right:0;top:-3px;height:3px;background:#8eb6ff;transform:scaleX(.15);transform-origin:left center;opacity:0;pointer-events:none}
/* Each motif retains its own material and rhythm. No looping text or QR movement. */
@media(prefers-reduced-motion:no-preference){
 .brand-site .hz-file{animation:motion-file-breathe 7.5s cubic-bezier(.45,0,.55,1) infinite}
 .brand-site .hz-file:after{animation:motion-file-edge 7.5s ease-in-out infinite}
 .brand-site .hx-flower img{animation:motion-seal-sway 8s cubic-bezier(.45,0,.55,1) infinite;transform-origin:50% 55%}
 .brand-site .dh-route{animation:motion-route-drift 9s cubic-bezier(.45,0,.55,1) infinite}
 .brand-site .dh-route>span{animation:motion-route-light 6s ease-in-out infinite}
 .brand-site .dh-route>span:nth-child(2){animation-delay:650ms}
 .brand-site .dh-route>span:nth-child(3){animation-delay:1300ms}
 .brand-site .zh-emblem{animation:none}
 .brand-site .zh-emblem img{animation:motion-leaf-breathe 8s cubic-bezier(.45,0,.55,1) infinite;transform-origin:50% 90%}
 .brand-site .zh-emblem:after{animation:motion-garden-ring 8s ease-in-out infinite}
 .brand-site .wy-orbit-art{animation:none}
 .brand-site .wy-orbit-art>span:first-child{animation:motion-orbit-turn 22s linear infinite}
 .brand-site .wy-orbit-art>span:nth-child(2){animation:motion-orbit-breathe 10s ease-in-out infinite}
 .brand-site[data-motion-keyboard=false][data-motion-scene=home] .hz-title-group{animation:motion-enter 420ms cubic-bezier(.16,1,.3,1)}
 .brand-site[data-motion-keyboard=false][data-motion-scene=home] .hx-opening h1{animation:motion-ink 500ms ease-out}
 .brand-site[data-motion-keyboard=false][data-motion-scene=home] .dh-opening h1{animation:motion-enter 380ms cubic-bezier(.16,1,.3,1)}
 .brand-site[data-motion-keyboard=false][data-motion-scene=home] .zh-opening h1{animation:motion-ink 500ms ease-out}
 .brand-site[data-motion-keyboard=false][data-motion-scene=home] .wy-headline{animation:motion-enter 440ms cubic-bezier(.16,1,.3,1)}
 .brand-site[data-motion-keyboard=false]:not([data-motion-scene=home]) #brand-page{animation:motion-scene 220ms cubic-bezier(.23,1,.32,1)}
 .brand-site[data-motion-keyboard=false] .submission-success>.icon{animation:motion-confirm 300ms cubic-bezier(.23,1,.32,1)}
 .brand-site .hx-questions details[open]>p{animation:motion-ink 200ms ease-out}
}
.brand-site.motion-paused .hz-file,.brand-site.motion-paused .hz-file:after,.brand-site.motion-paused .hx-flower img,.brand-site.motion-paused .dh-route,.brand-site.motion-paused .dh-route>span,.brand-site.motion-paused .zh-emblem img,.brand-site.motion-paused .zh-emblem:after,.brand-site.motion-paused .wy-orbit-art>span{animation-play-state:paused}
.brand-site.motion-reduced .hz-file,.brand-site.motion-reduced .hz-file:after,.brand-site.motion-reduced .hx-flower img,.brand-site.motion-reduced .dh-route>span,.brand-site.motion-reduced .zh-emblem img,.brand-site.motion-reduced .zh-emblem:after,.brand-site.motion-reduced .wy-orbit-art>span,.brand-site.motion-reduced #brand-page,.brand-site.motion-reduced h1,.brand-site.motion-reduced .hz-title-group,.brand-site.motion-reduced .wy-headline{animation:none!important}.brand-site.motion-reduced button:active{transform:none}
@keyframes motion-file-breathe{0%,100%{transform:translateY(0) rotate(1deg)}50%{transform:translateY(var(--file-rise)) rotate(var(--file-roll))}}
@keyframes motion-file-edge{0%,65%,100%{opacity:0;transform:scaleX(.15)}75%{opacity:.45;transform:scaleX(.15)}90%{opacity:0;transform:scaleX(1)}}
@keyframes motion-seal-sway{0%,100%{transform:rotate(calc(-1 * var(--seal-sway)))}50%{transform:rotate(var(--seal-sway))}}
@keyframes motion-route-light{0%,12%,100%{opacity:.18}30%,48%{opacity:1}68%{opacity:.18}}
@keyframes motion-leaf-breathe{0%,100%{transform:rotate(calc(-1 * var(--leaf-sway))) translateY(0)}50%{transform:rotate(var(--leaf-sway)) translateY(var(--leaf-rise))}}
@keyframes motion-garden-ring{0%,100%{transform:scale(1);opacity:.25}50%{transform:scale(var(--garden-grow));opacity:.7}}
@keyframes motion-orbit-turn{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes motion-orbit-breathe{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(var(--orbit-grow));opacity:.55}}
@keyframes motion-enter{from{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes motion-ink{from{opacity:.5}to{opacity:1}}
@keyframes motion-scene{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes motion-confirm{from{opacity:.5;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@media(max-width:650px){.brand-site .wy-orbit-art>span:first-child:after{width:8px;height:8px}}
@media(prefers-reduced-motion:reduce){.brand-site .hz-file,.brand-site .hx-flower img,.brand-site .zh-emblem,.brand-site .zh-emblem img,.brand-site .wy-orbit-art,.brand-site .wy-orbit-art>span,.brand-site .dh-route,.brand-site .dh-route>span,.brand-site #brand-page{animation:none!important}.brand-site .hz-file:after,.brand-site .zh-emblem:after{animation:none;display:none}.brand-site button:active{transform:none}.brand-site #progress-fill{transition:transform 100ms linear}}

@keyframes motion-route-drift{0%,100%{transform:translateY(0) rotate(-12deg)}50%{transform:translateY(var(--route-rise)) rotate(-10deg)}}
@media(max-width:650px){.brand-site .hz-file{margin-top:18px}}
@media(max-width:650px){.brand-site{--file-rise:-7px;--file-roll:3deg;--seal-sway:5deg;--leaf-sway:4deg;--leaf-rise:-4px;--garden-grow:1.1;--orbit-grow:1.065;--route-rise:-5px}}

