/* The browser owns scrolling. Animations run once, or on a small isolated layer. */
html{scrollbar-gutter:stable}
.hero__image,.hero__content{transform:none!important}
@keyframes home-word-enter{from{transform:translate3d(0,105%,0);opacity:.2}to{transform:none;opacity:1}}
@keyframes home-copy-enter{from{transform:translate3d(0,8px,0);opacity:0}to{transform:none;opacity:1}}
.motion-ready .hero-word{animation:home-word-enter 700ms cubic-bezier(.22,1,.36,1) both;animation-delay:calc(.12s + var(--word-index,0)*.075s)}
.motion-ready .hero-kicker{animation:home-copy-enter 450ms .05s both!important}
.motion-ready .hero__secondary{animation:home-copy-enter 550ms .4s both!important}
.motion-ready .hero-poem{animation:home-copy-enter 550ms .55s both}
.motion-ready .reveal{opacity:0;transform:translateY(8px);transition:opacity 350ms ease-out,transform 400ms cubic-bezier(.22,1,.36,1)}
.motion-ready .reveal.is-visible,.motion-ready .case-card.reveal{opacity:1;transform:none}
.curtain-reveal{position:relative}
.curtain-reveal::after{content:'';position:absolute;inset:0;pointer-events:none;background:var(--paper);transform-origin:bottom;transform:scaleY(1);transition:transform 500ms cubic-bezier(.22,1,.36,1)}
.insights .curtain-reveal::after{background:#e7e8e0}
.curtain-reveal.is-unveiled::after{transform:scaleY(0)}
.proof-strip::before{transform:scaleX(0);transition:transform 850ms cubic-bezier(.22,1,.36,1)}
.proof-strip.history-shown::before{transform:scaleX(1)}
@media(max-width:760px){.curtain-reveal::after{transition-duration:350ms}}
@media(prefers-reduced-motion:reduce){.hero-light{display:none}.hero-word,.hero-kicker,.hero__secondary,.hero-poem{animation:none!important;transform:none!important;opacity:1!important}.motion-ready .reveal,.curtain-reveal{opacity:1!important;transform:none!important;transition:none!important}.curtain-reveal::after{display:none}.proof-strip::before{transform:none;transition:none}}
@media print{.curtain-reveal::after{display:none}.proof-strip::before{transform:none}}

/* Single-use botanical entrance; settled opacity remains defined by the pattern sheet. */
@keyframes petal-appear{from{opacity:0}}
.motion-ready .petal-entry:not(.petal-shown)::before{opacity:0!important}
.motion-ready .petal-shown::before{animation:petal-appear 700ms ease-out backwards}
.motion-fast .reveal,.no-reveal.reveal,.motion-fast .curtain-reveal::after,.curtain-reveal.no-reveal::after{transition:none!important}
.motion-fast .petal-shown::before,.petal-shown.no-reveal::before{animation:none!important}
.text-link{border-bottom-color:transparent}
.text-link::before{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:currentColor;transform:scaleX(.28);transform-origin:left;transition:transform 220ms ease-out}
.text-link:is(:hover,:focus-visible)::before{transform:scaleX(1)}
.text-link>span[aria-hidden]{display:inline-block;transition:transform 200ms ease-out}
.text-link:is(:hover,:focus-visible)>span[aria-hidden]{transform:translate(2px,-2px)}
.text-link:active{color:#9a7b4c;transition:color 100ms}
.solid-link:active{background:#9a7b4c;color:#fff;transition:background-color 100ms,color 100ms}
:is(.text-link,.solid-link):focus-visible{outline:2px solid currentColor;outline-offset:5px}
@media(prefers-reduced-motion:reduce){.petal-shown::before{animation:none!important}.text-link::before,.text-link>span[aria-hidden]{transition:none;transform:none!important}}
