/* Studio Routine – visuals & animaties */
.fx-rv{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0ms);will-change:opacity,transform}
.fx-rv.in{opacity:1;transform:none;will-change:auto}
.fx-arch img{clip-path:inset(100% 0 0 0);transform:scale(1.12);transition:clip-path 1.3s cubic-bezier(.2,.7,.2,1),transform 1.8s cubic-bezier(.2,.7,.2,1)}
.fx-arch.in img{clip-path:inset(0 0 0 0);transform:scale(1)}
.fx-glow{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;z-index:1;background:radial-gradient(circle,rgba(194,164,122,.13),rgba(194,164,122,0) 62%);opacity:0;transition:opacity .5s;mix-blend-mode:screen}
.fx-glow.on{opacity:1}
main,footer{position:relative;z-index:2}
nav{position:fixed;z-index:60}
.marquee-track{will-change:transform}
.marquee-track>span{display:inline-block;transform:skewX(var(--sk,0deg));transition:transform .3s}
/* hero */
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom}
.hero h1 .w>span{display:inline-block;transform:translateY(105%);animation:fxup 1s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(.15s + var(--i)*.12s)}
@keyframes fxup{to{transform:none}}

/* spring divider */
.fx-spring{display:block;width:100%;height:46px;overflow:visible;color:var(--gold)}
.fx-springwrap{padding:0 clamp(1.2rem,5vw,4rem);background:inherit}
.cream-s+.fx-springwrap,.fx-springwrap.ink{color:var(--gold-deep)}
/* reformer */
.reformer-s{background:var(--espresso-deep);overflow:hidden}
.reformer-s .s-head{margin-bottom:1.4rem}
.reformer-stage{position:relative;max-width:980px;margin:0 auto}
.reformer-svg{width:100%;height:auto;display:block;overflow:visible}
.reformer-svg .ln{fill:none;stroke:var(--cream);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.reformer-svg .thin{stroke-width:1.2;opacity:.5}
.reformer-svg .gold{stroke:var(--gold)}
.reformer-svg .fig{stroke:var(--gold);stroke-width:5}
.reformer-svg .fillc{fill:var(--espresso-soft);stroke:var(--cream);stroke-width:2}
.reformer-svg text{fill:var(--cream-dim);font-family:Jost,sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase}
.reformer-svg .sp{fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:opacity .4s}
.reformer-ctl{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;align-items:center;margin-top:1.6rem}
.reformer-ctl span{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--cream-dim);margin-right:.4rem}
.reformer-ctl button{cursor:pointer;background:transparent;color:var(--cream);border:1px solid var(--line);border-radius:999px;padding:.6rem 1.15rem;font:inherit;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;transition:background .25s,color .25s,border-color .25s;min-height:44px}
.reformer-ctl button:hover{border-color:var(--gold)}
.reformer-ctl button.on{background:var(--gold);border-color:var(--gold);color:#241b12}
.reformer-cap{text-align:center;color:var(--cream-dim);font-size:.9rem;max-width:34rem;margin:1.2rem auto 0;min-height:3em}
/* adem */
.adem-s{background:var(--espresso);text-align:center;overflow:hidden}
.adem{position:relative;width:min(300px,70vw);aspect-ratio:1;margin:0 auto 1.6rem;display:grid;place-items:center}
.adem i{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(194,164,122,.5);animation:adem 10s cubic-bezier(.45,0,.3,1) infinite}
.adem i:nth-child(2){inset:13%;animation-delay:.25s;border-color:rgba(194,164,122,.38)}
.adem i:nth-child(3){inset:26%;animation-delay:.5s;border-color:rgba(194,164,122,.28);background:radial-gradient(circle,rgba(194,164,122,.16),transparent 70%)}
@keyframes adem{0%{transform:scale(.62)}40%{transform:scale(1)}100%{transform:scale(.62)}}
.adem b{position:relative;font-family:"Cormorant Garamond",serif;font-weight:400;font-style:italic;font-size:clamp(1.5rem,4vw,2.1rem);color:var(--cream);transition:opacity .6s}
.adem-s p{color:var(--cream-dim);max-width:30rem;margin:0 auto}
/* kleine accenten */
.intensiteit i{transform-origin:left;transition:transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--k,0)*110ms + 250ms)}
.fx-rv:not(.in) .intensiteit i{transform:scaleX(0)}
.lesmini,.pt,.prijs,.mem,.docent{transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s}
.lesmini:hover,.pt:hover,.mem:hover{transform:translateY(-6px)}
.docent .arch-visual img,.founder .arch-visual img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1),clip-path 1.3s cubic-bezier(.2,.7,.2,1)}
.docent:hover .arch-visual img,.founder:hover .arch-visual img{transform:scale(1.06)}
.btn{position:relative;overflow:hidden}
.btn:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg);transition:left .7s}
.btn:hover:after{left:130%}
@media(max-width:700px){.reformer-svg text{font-size:15px}.fx-glow{display:none}}
@media(prefers-reduced-motion:reduce){.fx-rv,.fx-arch img{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}.hero h1 .w>span{animation:none;transform:none}.adem i,html,body{overflow-x:clip}
