/* Scroll choreography: intentionally visible, refined motion */
.reveal{opacity:0;transform:translate3d(0,72px,0) scale(.985);filter:blur(5px);transition:opacity .95s cubic-bezier(.2,.7,.2,1),transform 1.05s cubic-bezier(.2,.7,.2,1),filter .95s ease}
.reveal.visible{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}
.hero-photo.reveal,.statement-image.reveal,.feature-image.reveal{clip-path:inset(0 0 100% 0);transition:opacity .4s ease,transform 1.1s cubic-bezier(.2,.7,.2,1),filter .8s ease,clip-path 1.25s cubic-bezier(.7,0,.2,1)}
.hero-photo.reveal.visible,.statement-image.reveal.visible,.feature-image.reveal.visible{clip-path:inset(0 0 0 0)}
.hero-photo{background-position:center calc(50% + var(--parallax,0px));transition:background-position .15s linear}
.statement-image{background-position:center calc(50% + var(--parallax,0px));transition:background-position .15s linear}
.service-img,.journal-img{transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .6s ease}.service-card:hover .service-img,.journal-grid article:hover .journal-img{transform:scale(1.045);filter:grayscale(45%)}
.line-art{clip-path:inset(0 100% 0 0);transition:clip-path 1.5s cubic-bezier(.7,0,.2,1)}.feature-image.visible .line-art{clip-path:inset(0 0 0 0)}
.principle strong{display:inline-block;animation:quietPulse 3.8s ease-in-out infinite}.round b{animation:floatDown 1.8s ease-in-out infinite}
@keyframes quietPulse{0%,100%{letter-spacing:.02em;opacity:.72}50%{letter-spacing:.1em;opacity:1}}
@keyframes floatDown{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none;filter:none;clip-path:none!important}}
