/* Kirben's motion language: assemble, illuminate, then settle. */
.stage-halo{position:absolute;inset:5% -3% 12%;z-index:-1;pointer-events:none;perspective:900px;opacity:.65}
.stage-halo:before{content:'';position:absolute;inset:10%;border-radius:50%;background:radial-gradient(ellipse,#87b9ff38,transparent 68%)}
.stage-halo>span{position:absolute;inset:5%;border:1px solid #4c91f33b;border-radius:50%;transform:rotate(-26deg) rotateY(35deg);box-shadow:inset 0 0 24px #479cff05,0 0 24px #479cff06}
.stage-halo>span:nth-child(2){inset:0 11%;border-color:#74a9f22b;transform:rotate(28deg) rotateY(-32deg)}
.stage-halo>span:nth-child(3){inset:18% -2%;border-color:#fff;transform:rotate(-27deg) rotateX(58deg);box-shadow:0 0 18px #4885da14}

@media(prefers-reduced-motion:no-preference){
 /* Separate text beats keep the headline's real text and natural wrapping. */
 .signature-hero .hero-copy{animation:none}
 .motion-ready .hero-copy>.eyebrow{animation:kirben-rise .8s .05s both}
 .motion-ready .headline-main{animation:kirben-title 1.3s .12s cubic-bezier(.16,1,.3,1) both;transform-origin:0 100%}
 .motion-ready .headline-finish{animation:kirben-title 1.2s .38s cubic-bezier(.16,1,.3,1) both, kirben-ink 2.5s .65s ease-out both;background-size:220% 100%}
 .motion-ready .hero-lead{animation:kirben-rise .9s .52s both}
 .motion-ready .hero-description{animation:kirben-rise .9s .66s both}
 .motion-ready .hero-actions{animation:kirben-rise .9s .79s both}
 .motion-ready .hero-reassurance{animation:kirben-rise .9s .9s both}
 .hero-copy:focus-within .hero-actions{animation:none}

 /* A finite orbit and light pulse frame the real WebGL sculpture. */
 .sculpture-arrived .stage-halo{animation:kirben-halo 3.1s cubic-bezier(.22,.8,.3,1) both}
 .sculpture-arrived .stage-halo>span:first-child{animation:kirben-orbit-one 3.1s cubic-bezier(.16,1,.3,1) both}
 .sculpture-arrived .stage-halo>span:nth-child(2){animation:kirben-orbit-two 3.1s .12s cubic-bezier(.16,1,.3,1) both}
 .sculpture-arrived .stage-halo>span:nth-child(3){animation:kirben-orbit-three 2.8s .28s cubic-bezier(.16,1,.3,1) both}
 .sculpture-arrived .reflex-flow>span{animation:kirben-step .85s cubic-bezier(.16,1,.3,1) both}
 .sculpture-arrived .reflex-flow>span:nth-child(1){animation-delay:.45s}
 .sculpture-arrived .reflex-flow>span:nth-child(3){animation-delay:.63s}
 .sculpture-arrived .reflex-flow>span:nth-child(5){animation-delay:.81s}

 /* The observer reveals each section once; controls remain usable on focus. */
 .motion-ready .reveal-item{transform:translate3d(0,52px,0);transition:opacity .9s ease,transform 1.1s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
 .motion-ready .reveal-item.is-visible{transform:none}
 .motion-ready .section-heading.reveal-item{opacity:1;transform:none}
 .motion-ready .section-heading.reveal-item h2{opacity:0;clip-path:inset(0 -3% 100%);transform:translateY(35px);transition:opacity .75s ease,clip-path 1.25s cubic-bezier(.16,1,.3,1),transform 1.25s cubic-bezier(.16,1,.3,1)}
 .motion-ready .section-heading.reveal-item p{opacity:0;transform:translateY(17px);transition:opacity .8s .12s ease,transform .9s .12s cubic-bezier(.16,1,.3,1)}
 .motion-ready .section-heading.reveal-item.is-visible h2{opacity:1;clip-path:inset(-3%);transform:none}
 .motion-ready .section-heading.reveal-item.is-visible p{opacity:1;transform:none}
 .motion-ready :is(.reason-card,.delivery-card,.price-card).reveal-item{transform:perspective(1100px) translate3d(0,65px,0) rotateX(9deg);transform-origin:50% 0}
 .motion-ready :is(.reason-card,.delivery-card,.price-card).reveal-item.is-visible{transform:none}
 .motion-ready .expertise-visual.reveal-item figure>img{transform:scale(1.13);transition:transform 1.7s cubic-bezier(.16,1,.3,1)}
 .motion-ready .expertise-visual.reveal-item.is-visible figure>img{transform:scale(1)}
 .motion-ready .footer-signature.reveal-item{clip-path:inset(0 0 100%);transform:translateY(35px);transition:opacity .8s,clip-path 1.3s cubic-bezier(.16,1,.3,1),transform 1.3s cubic-bezier(.16,1,.3,1)}
 .motion-ready .footer-signature.reveal-item.is-visible{clip-path:inset(-5%);transform:none}
 .motion-ready .reveal-item:focus-within,.motion-ready .reveal-item:focus-within :is(h2,p){opacity:1;transform:none;clip-path:none;transition:none}

 .button{position:relative;isolation:isolate;overflow:hidden}
 .button:before{content:'';position:absolute;inset:-1px;z-index:-1;pointer-events:none;background:linear-gradient(110deg,transparent 25%,#ffffff30 46%,transparent 67%);transform:translateX(-110%);transition:none}
 .button:hover:before,.button:focus-visible:before{transform:translateX(110%);transition:transform .8s cubic-bezier(.2,.65,.3,1)}
 .text-link>span{transition:transform .3s cubic-bezier(.16,1,.3,1)}
 .text-link:hover>span{transform:translate(3px,-3px)}

 @keyframes kirben-title{from{opacity:0;clip-path:inset(0 -4% 100%);transform:translateY(44px) rotateX(12deg)}to{opacity:1;clip-path:inset(-4%);transform:none}}
 @keyframes kirben-rise{from{opacity:0;transform:translateY(23px)}to{opacity:1;transform:none}}
 @keyframes kirben-ink{from{background-position:100% 50%}to{background-position:0 50%}}
 @keyframes kirben-step{from{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:none}}
 @keyframes kirben-halo{0%{opacity:0;transform:scale(.65)}35%{opacity:1}100%{opacity:.65;transform:scale(1)}}
 @keyframes kirben-orbit-one{from{transform:rotate(-100deg) rotateY(78deg);border-color:#1671ff88}to{transform:rotate(-26deg) rotateY(35deg);border-color:#4c91f33b}}
 @keyframes kirben-orbit-two{from{transform:rotate(110deg) rotateY(-75deg);border-color:#1671ff77}to{transform:rotate(28deg) rotateY(-32deg);border-color:#74a9f22b}}
 @keyframes kirben-orbit-three{from{transform:rotate(-100deg) rotateX(80deg)}to{transform:rotate(-27deg) rotateX(58deg)}}
 @keyframes kirben-evidence{from{opacity:.35;transform:translateX(-15px)}to{opacity:1;transform:none}}
 @keyframes kirben-feedback{from{opacity:.4;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
}

@media(max-width:700px){.stage-halo{inset:3% 0 15%}}
@media(prefers-reduced-motion:reduce){
 .stage-halo{opacity:.3}
 .headline-main,.headline-finish,.hero-copy>*{animation:none!important;clip-path:none!important;transform:none!important;opacity:1!important}
 .reveal-item,.reveal-item :is(h2,p){clip-path:none!important;opacity:1!important;transform:none!important;transition:none!important}
}
@media print{.stage-halo{display:none}.reveal-item,.reveal-item *{opacity:1!important;transform:none!important;clip-path:none!important;animation:none!important}}
