
::view-transition-old(root){animation:fxOut .22s ease both}::view-transition-new(root){animation:fxIn .38s cubic-bezier(.2,.8,.2,1) both}
@keyframes fxOut{to{opacity:0;transform:translateY(-6px)}}@keyframes fxIn{from{opacity:0;transform:translateY(8px)}}
@supports not (view-transition-name:none){main{animation:fxIn .45s cubic-bezier(.2,.8,.2,1) both}}
html.fx-leave main{opacity:0;transform:translateY(-6px);transition:opacity .18s,transform .18s}
.fx-prog{position:fixed;top:0;left:0;right:0;height:3px;z-index:10050;pointer-events:none;background:transparent}
.fx-prog i{display:block;height:100%;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,#A8884F,#C9A96E,#F0D9A6);box-shadow:0 0 10px rgba(201,169,110,.6)}
.fx-cta{position:fixed;left:24px;bottom:24px;z-index:9000;display:flex;align-items:center;gap:12px;padding:10px 10px 10px 18px;border-radius:99px;background:rgba(11,15,25,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(201,169,110,.35);box-shadow:0 18px 50px -18px rgba(0,0,0,.6);color:#F6F1E7;font:600 13.5px Manrope,sans-serif;text-decoration:none;transform:translateY(140%);opacity:0;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s}
.fx-cta.on{transform:none;opacity:1}.fx-cta small{display:block;font:500 11px Manrope,sans-serif;color:rgba(246,241,231,.6)}.fx-cta b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#C9A96E;color:#0B0F19;font-size:15px;transition:transform .3s}.fx-cta:hover b{transform:translateX(3px)}
@media(max-width:860px){.fx-cta{display:none}}
.fx-next{background:#0B0F19;color:#F6F1E7;padding:84px 0 90px;border-top:1px solid rgba(246,241,231,.08)}
.fx-next .fx-w{width:min(1180px,90%);margin:0 auto}
.fx-next .fx-e{font:700 11px Manrope,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#C9A96E;margin:0 0 10px}
.fx-next h2{font:500 clamp(32px,4.4vw,54px)/1.04 'Cormorant Garamond',serif;color:#F6F1E7!important;margin:0 0 30px}.fx-next h2 em{color:#C9A96E;font-style:italic}
.fx-g{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:14px}
.fx-c{position:relative;display:flex;flex-direction:column;gap:8px;min-height:190px;padding:26px;border-radius:20px;border:1px solid rgba(246,241,231,.1);background:linear-gradient(170deg,rgba(246,241,231,.05),rgba(246,241,231,.01));color:#F6F1E7!important;text-decoration:none!important;overflow:hidden}
.fx-c:first-child{background:linear-gradient(150deg,rgba(201,169,110,.22),rgba(201,169,110,.04));border-color:rgba(201,169,110,.45)}
.fx-c span{font:700 10.5px Manrope,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#C9A96E}.fx-c strong{font:500 28px/1.1 'Cormorant Garamond',serif;color:#F6F1E7}.fx-c p{font:14.5px/1.55 Manrope,sans-serif;color:rgba(246,241,231,.68);margin:0}
.fx-c i{margin-top:auto;font:600 13.5px Manrope,sans-serif;font-style:normal;color:#F6F1E7;display:flex;gap:8px;align-items:center}.fx-c i:after{content:"→";color:#C9A96E;transition:transform .3s}.fx-c:hover i:after{transform:translateX(5px)}
.fx-rel{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0;list-style:none}.fx-rel li a{display:inline-block;font:600 12.5px Manrope,sans-serif;color:#F6F1E7!important;text-decoration:none;border:1px solid rgba(246,241,231,.14);border-radius:99px;padding:8px 14px;transition:border-color .25s,background .25s}.fx-rel li a:hover{border-color:#C9A96E;background:rgba(201,169,110,.1)}
.fx-rel-h{font:600 12px Manrope,sans-serif;color:rgba(246,241,231,.6);margin:30px 0 0}
@media(max-width:860px){.fx-g{grid-template-columns:1fr}.fx-c{min-height:0}.fx-next{padding:60px 0 70px}}
/* consistent micro-interactions */
.fx-c,.sl-rel a,.v42-svc,.x27-card,.pl4 article,.sample-work article,.price-teaser article{transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .35s}
.fx-c:hover,.sl-rel a:hover,.v42-svc:hover{transform:translateY(-4px);box-shadow:0 24px 60px -30px rgba(0,0,0,.55)}
a.sl-cta,.btn,.button,.nf-run,a[data-book-call]{transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .3s,filter .25s}
a.sl-cta:hover,.btn:hover,.button:hover,a[data-book-call]:hover{transform:translateY(-2px)}a.sl-cta:active,.btn:active,.button:active,a[data-book-call]:active{transform:translateY(0) scale(.98)}
main a:focus-visible,main button:focus-visible,.fx-cta:focus-visible{outline:2px solid #C9A96E;outline-offset:3px}
/* chapter rail (home) */
.fx-rail{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:8000;display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}
.fx-rail a{display:flex;align-items:center;justify-content:flex-end;gap:10px;text-decoration:none;color:transparent;font:600 11px Manrope,sans-serif;padding:3px 0}
.fx-rail a:after{content:"";width:8px;height:8px;border-radius:50%;border:1.5px solid rgba(201,169,110,.8);background:rgba(11,15,25,.4);transition:.3s}
.fx-rail a span{background:#0B0F19;color:#F6F1E7;padding:4px 9px;border-radius:99px;opacity:0;transform:translateX(6px);transition:.25s}
.fx-rail a:hover span,.fx-rail a.on span{opacity:1;transform:none}.fx-rail a.on:after{background:#C9A96E;transform:scale(1.35)}
@media(max-width:1100px){.fx-rail{display:none}}
/* services filter */
.fx-need{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 26px}.fx-need button{font:600 14px Manrope,sans-serif;padding:11px 16px;border-radius:99px;border:1px solid rgba(11,15,25,.16);background:#fff;color:#0B0F19;cursor:pointer;transition:.25s}
.fx-need button[aria-pressed=true]{background:#0B0F19;color:#F6F1E7;border-color:#0B0F19}.fx-need button:hover{border-color:#C9A96E}
.fx-need-l{font:700 11px Manrope,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#A8884F;margin:24px 0 0}
.v42-svc.fx-hide,.v42-pillar.fx-hide{display:none}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root),main{animation:none!important}.fx-cta,.fx-c,.fx-rail *{transition:none}html.fx-leave main{opacity:1;transform:none}}
/* next-chapter portal */
.fx-pt{position:fixed;left:50%;bottom:22px;z-index:9500;width:min(560px,calc(100% - 28px));transform:translate(-50%,130%);opacity:0;transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .35s;pointer-events:none}
.fx-pt.on{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.fx-pc{display:flex;align-items:center;gap:18px;padding:18px 20px;border-radius:24px;background:radial-gradient(120% 140% at 0% 0%,rgba(201,169,110,.28),transparent 55%),#0B0F19;border:1px solid rgba(201,169,110,.5);box-shadow:0 40px 90px -30px rgba(0,0,0,.75),0 0 0 1px rgba(246,241,231,.04) inset;color:#F6F1E7;text-decoration:none!important}
.fx-ring{flex:none;position:relative;width:64px;height:64px}.fx-ring svg{width:64px;height:64px;transform:rotate(-90deg)}.fx-ring circle{fill:none;stroke-width:4}.fx-ring .bg{stroke:rgba(246,241,231,.12)}.fx-ring .fg{stroke:#C9A96E;stroke-linecap:round;stroke-dasharray:176;stroke-dashoffset:calc(176 - 176*var(--r,0));filter:drop-shadow(0 0 6px rgba(201,169,110,.7))}
.fx-ring b{position:absolute;inset:0;display:grid;place-items:center;font:600 20px Manrope,sans-serif;color:#C9A96E;transition:transform .3s}.fx-pc:hover .fx-ring b{transform:translateY(-3px)}
.fx-pt-t{min-width:0;flex:1}.fx-pt-t small{display:block;font:700 10.5px Manrope,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#C9A96E}.fx-pt-t strong{display:block;font:500 clamp(24px,3.4vw,32px)/1.08 'Cormorant Garamond',serif;color:#F6F1E7;margin:3px 0 2px}.fx-pt-t span{font:13px Manrope,sans-serif;color:rgba(246,241,231,.65)}
.fx-stay{position:absolute;top:-12px;right:14px;font:600 11.5px Manrope,sans-serif;color:#F6F1E7;background:#151B2B;border:1px solid rgba(246,241,231,.18);border-radius:99px;padding:6px 11px;cursor:pointer}.fx-stay:hover{border-color:#C9A96E}
.fx-pt.full .fx-pc{border-color:#F0D9A6;box-shadow:0 0 0 6px rgba(201,169,110,.18),0 40px 90px -30px #000}
.fx-cur{position:fixed;inset:0;z-index:10060;pointer-events:none;background:radial-gradient(circle at 50% 100%,#F0D9A6,#C9A96E 35%,#0B0F19 80%);clip-path:circle(0% at 50% 100%)}
.fx-cur.go{animation:fxCur .55s cubic-bezier(.7,0,.3,1) forwards}.fx-cur.in{clip-path:circle(150% at 50% 0%);animation:fxCurIn .8s cubic-bezier(.7,0,.3,1) .05s forwards}
.fx-cur i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:italic 500 clamp(34px,6vw,72px) 'Cormorant Garamond',serif;color:#0B0F19;white-space:nowrap;opacity:0;animation:fxT .7s .25s forwards}
@keyframes fxCur{to{clip-path:circle(150% at 50% 100%)}}@keyframes fxCurIn{to{clip-path:circle(0% at 50% 0%)}}@keyframes fxT{to{opacity:1}}
.fx-cur.in i{opacity:1;animation:fxTo .4s forwards}@keyframes fxTo{to{opacity:0;transform:translate(-50%,-70%)}}
html.fx-land main{animation:fxLand .9s cubic-bezier(.2,.8,.2,1) both}@keyframes fxLand{from{transform:scale(.97) translateY(24px);opacity:.3}}
.fx-cta.hid{opacity:0!important;transform:translateY(140%)!important;pointer-events:none}
@media(max-width:600px){.fx-pt{bottom:84px}.fx-ring,.fx-ring svg{width:54px;height:54px}.fx-pc{padding:15px 16px;gap:14px}}
@media (prefers-reduced-motion:reduce){.fx-pt,.fx-cur{transition:none;animation:none!important}html.fx-land main{animation:none}}

/* arrival */
html.fx-arr:after{content:"";position:fixed;inset:0;z-index:10060;pointer-events:none;background:linear-gradient(180deg,#0B0F19 0%,#0B0F19 88%,#C9A96E 100%);animation:fxLift .62s cubic-bezier(.7,0,.3,1) .04s forwards}
html.fx-arr:before{content:"";position:fixed;top:0;bottom:0;left:-40%;width:40%;z-index:10061;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(240,217,166,.0) 20%,rgba(240,217,166,.55) 50%,transparent 80%);mix-blend-mode:screen;animation:fxSweep .95s cubic-bezier(.4,0,.2,1) .25s forwards}
@keyframes fxLift{to{clip-path:inset(0 0 100% 0)}}@keyframes fxSweep{to{left:120%}}
html.fx-arr main h1{animation:fxH .75s cubic-bezier(.2,.8,.2,1) .32s both}
@keyframes fxH{from{clip-path:inset(0 0 100% 0);transform:translateY(.35em);opacity:.01}to{clip-path:inset(-10% -5% -20% -5%);transform:none;opacity:1}}
html.fx-arr main>section:first-of-type :is(.eyebrow,.nf-eye,.sl-crumb,nav,p,.nf-cta,.sl-cta,.hero-actions,ul,figure,picture){animation:fxUp .6s cubic-bezier(.2,.8,.2,1) .5s both}
html.fx-arr main>section:first-of-type :is(p,ul){animation-delay:.58s}html.fx-arr main>section:first-of-type :is(.nf-cta,.sl-cta,.hero-actions,figure,picture){animation-delay:.66s}
@keyframes fxUp{from{opacity:0;transform:translateY(16px)}}
html.fx-land main{animation:none}
@media (prefers-reduced-motion:reduce){html.fx-arr:before{display:none}html.fx-arr:after{animation:fxFade .3s forwards}html.fx-arr main h1,html.fx-arr main>section:first-of-type *{animation:none!important}@keyframes fxFade{to{opacity:0}}}
