/* LAVANYA / MOTION SYSTEM — progressive enhancement, responsive and reduced-motion aware.
   The page and its content remain fully usable with motion disabled / JavaScript off. */
:root{--motion-ink:#6f4d75;--motion-flower:#cfb0c9;--motion-spring:cubic-bezier(.22,1,.36,1);--spot-x:50%;--spot-y:50%;}
.scroll-progress{position:fixed;top:0;left:0;z-index:300;height:3px;width:100%;pointer-events:none;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,#ab8baa 0%,#bda6cc 32%,#d9a6aa 74%,#8e7195 100%);box-shadow:0 0 14px #d9a6aaa0;}
/* Soft editorial depth — visual accents do not obscure content. */
.hero{isolation:isolate;}
.hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.16;background-image:radial-gradient(#9d84a1 .65px,transparent .65px);background-size:25px 25px;mask-image:linear-gradient(100deg,transparent 5%,transparent 42%,black 91%);}
.hero-grid-glint{position:absolute;pointer-events:none;width:min(55vw,730px);height:min(55vw,730px);left:calc(var(--spot-x) - min(27.5vw,365px));top:calc(var(--spot-y) - min(27.5vw,365px));z-index:0;border-radius:50%;background:radial-gradient(circle,rgba(220,186,219,.22),rgba(233,193,217,.07) 39%,transparent 70%);transition:left .24s ease-out,top .24s ease-out;}
.hero-grid{z-index:1;}
.hero-glow-one{animation:glowDriftOne 16s ease-in-out infinite alternate;}
.hero-glow-two{animation:glowDriftTwo 19s ease-in-out infinite alternate;}
@keyframes glowDriftOne{from{transform:translate3d(-9px,7px,0) scale(.96)}to{transform:translate3d(46px,29px,0) scale(1.08)}}
@keyframes glowDriftTwo{from{transform:translate3d(18px,-20px,0)}to{transform:translate3d(-38px,24px,0)}}
.hero-orbit{position:absolute;width:clamp(180px,22vw,345px);aspect-ratio:1;left:-60px;top:9%;pointer-events:none;opacity:.54;z-index:0;animation:orbitSlow 28s linear infinite;}
.hero-orbit:before,.hero-orbit:after,.hero-orbit span{content:"";position:absolute;border:1px solid rgba(180,137,182,.24);border-radius:50%;inset:0;}
.hero-orbit:after{inset:13%;border-color:rgba(168,133,160,.21)}
.hero-orbit span:first-child{inset:0;transform:rotateX(67deg) rotate(-24deg)}
.hero-orbit span:last-child{width:9px;height:9px;background:#b98aa3;border:0;inset:-3px auto auto 50%;box-shadow:0 0 19px 6px rgba(200,160,198,.4)}
@keyframes orbitSlow{to{transform:rotate(360deg)}}
.hero-visual{isolation:isolate;}
.hero-image-wrap{position:relative;z-index:1;box-shadow:22px 27px 70px rgba(92,69,90,.13),0 0 0 1px rgba(255,255,255,.65);transition:box-shadow .65s var(--motion-spring),transform .65s var(--motion-spring);}
.hero-image-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.21),transparent 45%,rgba(64,41,64,.10) 100%);mix-blend-mode:soft-light;}
.hero-image-wrap img{transform:scale(1.07) translate3d(0,var(--parallax-shift,0px),0);will-change:transform;transition:transform .12s linear;}
.hero-visual:hover .hero-image-wrap{box-shadow:18px 30px 85px rgba(110,69,107,.24),0 0 0 1px rgba(255,255,255,.85);}
.hero-stamp{z-index:3;animation:stampBob 5s ease-in-out infinite;}
@keyframes stampBob{0%,100%{translate:0 0}50%{translate:0 -10px}}
.hero .mini-star{display:inline-block;animation:starRotate 11s linear infinite;transform-origin:center;}
@keyframes starRotate{to{transform:rotate(360deg)}}
.hero h1 em{background:linear-gradient(106deg,#6d5071 8%,#ad81a1 38%,#705271 65%,#765477 90%);background-size:260% auto;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:inkShift 10s linear infinite;}
@keyframes inkShift{to{background-position:260% center}}
/* First-fold staged entry. Hero is visible by default without JS. */
html.motion-ready .hero-copy>.eyebrow,html.motion-ready .hero-copy>h1,html.motion-ready .hero-copy>.hero-subheading,html.motion-ready .hero-copy>.hero-desc,html.motion-ready .hero-copy>.hero-actions,html.motion-ready .hero-copy>.hero-micro{animation:heroRise .86s var(--motion-spring) both;}
html.motion-ready .hero-copy>.eyebrow{animation-delay:.045s}
html.motion-ready .hero-copy>h1{animation-delay:.17s}
html.motion-ready .hero-copy>.hero-subheading{animation-delay:.30s}
html.motion-ready .hero-copy>.hero-desc{animation-delay:.43s}
html.motion-ready .hero-copy>.hero-actions{animation-delay:.54s}
html.motion-ready .hero-copy>.hero-micro{animation-delay:.68s}
html.motion-ready .hero-image-wrap{animation:heroFrameIn 1.15s var(--motion-spring) .20s both;}
html.motion-ready .hero-stamp{animation:stampBob 5s ease-in-out 1.1s infinite,stampReveal 1s var(--motion-spring) .6s both;}
@keyframes heroRise{from{opacity:0;translate:0 25px;filter:blur(4px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes heroFrameIn{from{opacity:.3;transform:translate3d(24px,32px,0) scale(.95);clip-path:inset(10% 3% 0 3% round 45% 45% 3% 3%)}to{opacity:1;transform:translate3d(0,0,0) scale(1);clip-path:inset(0 0 0 0 round 45% 45% 3% 3%)}}
@keyframes stampReveal{from{opacity:0;scale:.72}to{opacity:1;scale:1}}
/* Scroll-triggered reveals: use the independent translate property so existing hover transforms remain intact. */
html.motion-ready .motion-reveal{opacity:0;translate:0 34px;filter:blur(3px);transition:opacity .9s var(--motion-spring),translate .95s var(--motion-spring),filter .85s ease;transition-delay:var(--reveal-delay,0ms);}
html.motion-ready .motion-reveal.is-visible{opacity:1;translate:0 0;filter:blur(0)}
html.motion-ready .motion-reveal[data-motion="left"]{translate:-32px 10px}
html.motion-ready .motion-reveal[data-motion="right"]{translate:32px 10px}
html.motion-ready .motion-reveal[data-motion="left"].is-visible,html.motion-ready .motion-reveal[data-motion="right"].is-visible{translate:0 0}
/* Small premium brand-line details. */
.nav-desktop a{position:relative;transition:color .3s}
.nav-desktop a:after{content:"";position:absolute;bottom:-10px;left:0;right:0;height:1.5px;background:linear-gradient(90deg,#8b658b,#cfb0c9);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--motion-spring)}
.nav-desktop a:hover:after,.nav-desktop a[aria-current="location"]:after{transform:scaleX(1)}
.nav-desktop a[aria-current="location"]{color:#8e6488}
.logo>span:first-child,.footer-logo{transition:letter-spacing .4s var(--motion-spring)}
.logo:hover>span:first-child,.footer-logo:hover{letter-spacing:-.8px}
/* Magnetic calls-to-action: light follows pointer, polished not neon. */
.btn,.header-cta,.circle-arrow,.under-link,.back-to-top{position:relative;isolation:isolate;}
.btn,.header-cta,.circle-arrow{transition:transform .35s var(--motion-spring),background .35s,color .35s,box-shadow .35s,border-color .35s;transform:translate3d(var(--mag-x,0px),var(--mag-y,0px),0)}
.btn-dark,.header-cta{overflow:hidden}
.btn-dark:before,.header-cta:before,.btn-form:before{content:"";position:absolute;inset:-1px;pointer-events:none;border-radius:inherit;z-index:-1;background:linear-gradient(110deg,transparent 18%,rgba(255,255,255,.22) 45%,transparent 67%);transform:translateX(-150%);transition:transform .7s ease;}
.btn-dark:hover:before,.header-cta:hover:before,.btn-form:hover:before{transform:translateX(155%)}
.btn-dark:hover,.header-cta:hover,.btn-form:hover{box-shadow:0 12px 33px rgba(81,55,81,.20);transform:translate3d(var(--mag-x,0px),calc(var(--mag-y,0px) - 3px),0)}
.btn:active,.header-cta:active,.circle-arrow:active{scale:.96}
.btn span,.header-cta span,.under-link span{display:inline-block;transition:translate .35s var(--motion-spring)}
.btn:hover span,.header-cta:hover span,.under-link:hover span{translate:4px -2px}
.under-link:after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:#a77e9e;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--motion-spring)}
.under-link:hover:after{transform:scaleX(1)}
/* Stats animate gracefully as the band enters view. */
.stats-band{position:relative;isolation:isolate;overflow:hidden}
.stats-band:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 20%,rgba(232,203,208,.31) 48%,transparent 75%);transform:translateX(-110%)}
.stats-band.is-visible:before{animation:statsSweep 1.65s ease .3s both}
@keyframes statsSweep{to{transform:translateX(110%)}}
.stats-inner{position:relative;z-index:1}
.stat{position:relative}
.stat:after{content:"";position:absolute;bottom:-12px;left:0;height:2px;width:0;background:linear-gradient(90deg,#c49fb9,transparent);transition:width .95s var(--motion-spring)}
.stats-band.is-visible .stat:after{width:72%}
.stats-mark{animation:starRotate 28s linear infinite}
/* Video cards: real footage, cinematic hover with interactive spotlight. */
.project-card{position:relative;transform-style:preserve-3d;transition:transform .55s var(--motion-spring),filter .55s}
.project-art{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .45s var(--motion-spring),box-shadow .45s,filter .45s;box-shadow:0 10px 25px rgba(68,46,66,.07);}
.project-art:before{content:"";position:absolute;inset:0;border:0;width:auto;height:auto;z-index:3;pointer-events:none;transform:none;border-radius:inherit;opacity:0;background:radial-gradient(400px circle at var(--card-x,50%) var(--card-y,50%),rgba(255,255,255,.22),transparent 63%);transition:opacity .35s}
.project-card:is(:hover,:focus-within) .project-art:before{opacity:1}
.project-card:is(:hover,:focus-within) .project-art{box-shadow:0 23px 60px rgba(78,48,74,.24);}
.project-video{transition:transform 1s var(--motion-spring),filter .65s ease;}
.project-card:is(:hover,:focus-within) .project-video{transform:scale(1.075);filter:saturate(1.09)}
.project-meta .project-arrow{display:inline-block;transition:translate .4s var(--motion-spring),transform .4s var(--motion-spring)}
.project-card:is(:hover,:focus-within) .project-meta .project-arrow{translate:5px -5px;transform:rotate(20deg)}
.project-card .video-watch-indicator{transition:transform .4s var(--motion-spring),background .3s,box-shadow .3s;}
.project-card:is(:hover,:focus-within) .video-watch-indicator{transform:translateY(-5px);box-shadow:0 9px 28px rgba(22,15,22,.28);}
.film-trigger:focus-visible{outline:3px solid #fff;outline-offset:-10px}
/* About: parallax photography, halo, floating metric. */
.about-image-main,.about-image-mini{will-change:transform;transition:box-shadow .55s var(--motion-spring)}
.about-image-main img,.about-image-mini img,.gallery-img img{transform:scale(1.085) translate3d(0,var(--parallax-shift,0px),0);transition:transform .1s linear;will-change:transform}
.about-visual:hover .about-image-main{box-shadow:0 25px 55px rgba(91,63,88,.19)}
.about-followers-card{transition:rotate .6s var(--motion-spring),box-shadow .6s var(--motion-spring);animation:metricFloat 5.7s ease-in-out infinite}
@keyframes metricFloat{0%,100%{translate:0 0}50%{translate:0 -10px}}
.about-visual:hover .about-followers-card{rotate:-6deg;box-shadow:0 20px 35px rgba(71,42,72,.24)}
.about-decoration{animation:starRotate 24s linear infinite}
.about-points>div{transition:translate .4s var(--motion-spring)}
.about-points>div:hover{translate:8px 0}
/* Section-heading underline, animated only after intersection. */
.section h2 em{position:relative;text-decoration:none}
.section h2 em:after{content:"";position:absolute;left:0;bottom:.025em;right:0;height:.065em;border-radius:9px;background:linear-gradient(90deg,rgba(162,111,155,.08),rgba(171,112,154,.43),rgba(162,111,155,.05));transform:scaleX(0);transform-origin:left;transition:transform 1.05s var(--motion-spring) .25s;pointer-events:none}
.section .section-head:has(.is-visible) h2 em:after,.section h2.is-visible em:after{transform:scaleX(1)}
/* Services: interactive tilt, moving wash and icon micro-motion. */
.service-card{position:relative;isolation:isolate;overflow:hidden;transform:perspective(980px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(var(--hover-y,0px));transition:transform .45s var(--motion-spring),box-shadow .4s,border-color .4s}
.service-card:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(310px circle at var(--card-x,50%) var(--card-y,50%),rgba(215,182,215,.29),transparent 65%);opacity:0;transition:opacity .32s}
.service-card:after{content:"";height:2px;position:absolute;left:20px;right:20px;bottom:0;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#9e7497,#e0b6c5,transparent);transition:transform .55s var(--motion-spring)}
.service-card:is(:hover,:focus-within){--hover-y:-7px;border-color:#d7c5d2;box-shadow:0 25px 52px rgba(69,42,69,.13)}
.service-card:is(:hover,:focus-within):before{opacity:1}
.service-card:is(:hover,:focus-within):after{transform:scaleX(1)}
.service-symbol{display:inline-block;transition:transform .8s var(--motion-spring),color .35s}
.service-card:hover .service-symbol{transform:rotate(38deg) scale(1.22);color:#8b6288}
/* Process: scroll-activated pathway & hover details */
.process-grid{position:relative;isolation:isolate}
@media(min-width:921px){.process-grid:before{content:"";position:absolute;height:2px;left:0;right:0;top:0;background:linear-gradient(90deg,#96698a,#d1a9bb,#b99eb9,#96698a);transform:scaleX(0);transform-origin:left;transition:transform 1.65s var(--motion-spring);z-index:2;pointer-events:none}.process-grid.is-visible:before{transform:scaleX(1)}}
.process-grid article{transition:translate .45s var(--motion-spring),color .3s}
.process-grid article:hover{translate:0 -8px}
.process-number span{display:inline-block;transition:transform .5s var(--motion-spring)}
.process-grid article:hover .process-number span{transform:translate(5px,-6px) rotate(28deg)}
/* Cinematic lifestyle panels */
.gallery-img{overflow:hidden}
.gallery-img img{width:100%;height:100%;object-fit:cover}
.gallery-quote{position:relative;isolation:isolate;overflow:hidden}
.gallery-quote:after{content:"";position:absolute;inset:-60%;z-index:-1;pointer-events:none;background:conic-gradient(from 0deg,transparent,#ffffff19,transparent,#f4d6e622,transparent);animation:orbitSlow 29s linear infinite}
.gallery-twinkle{animation:starRotate 16s linear infinite}
/* FAQ microinteractions; native <details> remains keyboard accessible. */
.faq-list summary{transition:color .3s,background .3s,padding-left .35s var(--motion-spring)}
.faq-list summary:hover{padding-left:7px;color:#926b8c}
.faq-list details[open] summary{color:#795976}
.faq-list details[open]>p{animation:answerIn .45s var(--motion-spring) both}
@keyframes answerIn{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}
.faq-list .faq-icon{transition:transform .45s var(--motion-spring)}
/* Interactive contact glow and form. */
.contact-glow{animation:contactBreathe 13s ease-in-out infinite alternate;transform-origin:center}
@keyframes contactBreathe{from{transform:translate(-20px,20px) scale(.95)}to{transform:translate(65px,-35px) scale(1.13)}}
.contact-panel{position:relative;isolation:isolate;transition:box-shadow .55s var(--motion-spring),translate .6s var(--motion-spring)}
.contact-panel:before{content:"";position:absolute;inset:-2px;border-radius:inherit;z-index:-1;pointer-events:none;background:linear-gradient(135deg,#ddadcf,transparent 36%,#a88ab4 70%,transparent);opacity:0;transition:opacity .45s}
.contact-panel:hover{translate:0 -5px;box-shadow:0 28px 85px rgba(30,17,33,.35)}
.contact-panel:hover:before{opacity:.65}
.contact-panel input{transition:border-color .35s,box-shadow .35s,background .35s,translate .35s}
.contact-panel input:focus{box-shadow:0 6px 22px rgba(137,97,140,.10);translate:0 -2px}
.contact-channels a{transition:translate .45s var(--motion-spring)}
.contact-channels a:hover{translate:6px 0}
.contact-icon{transition:transform .45s var(--motion-spring),background .3s}
.contact-channels a:hover .contact-icon{transform:rotate(43deg)}
/* Ensure visible interactive affordances for touch, keyboard and accessibility. */
:where(a,button,summary,input):focus-visible{outline:2px solid #b58aab;outline-offset:4px}
.mobile-menu a{transition:padding-left .3s var(--motion-spring),color .3s}
.mobile-menu a:hover{padding-left:8px;color:#8c6688}
@media(hover:hover) and (pointer:fine){.hero-image-wrap{cursor:default}}
@media(max-width:920px){
  .hero-orbit{opacity:.26;width:240px;left:0;top:12%}
  .project-art,.service-card{transform:none!important}
  .service-card:hover{transform:translateY(-3px)!important}
  .hero-grid-glint{opacity:.65}
  .stats-mark{animation-duration:38s}
}
@media(max-width:620px){
  .hero::after{opacity:.09;background-size:24px 24px}
  .hero-orbit{width:210px;left:-30px;top:2%;opacity:.19}
  .hero-glow-one,.hero-glow-two{animation-duration:28s}
  html.motion-ready .motion-reveal{translate:0 21px;filter:none;transition-duration:.68s}
  html.motion-ready .motion-reveal[data-motion="left"],html.motion-ready .motion-reveal[data-motion="right"]{translate:0 21px}
  .gallery-quote:after{animation-duration:43s}
  .contact-panel:hover{translate:0 0}
  .project-video{transition:transform .6s ease}
  .hero-visual:hover .hero-image-wrap{box-shadow:22px 27px 70px rgba(92,69,90,.13)}
  .service-card:active{--hover-y:-3px}
  .mobile-contact-shortcut:active{scale:.97}
}
@media(prefers-reduced-motion:reduce){
  .scroll-progress{transition:none}
  html.motion-ready .motion-reveal,html.motion-ready .motion-reveal.is-visible{opacity:1;translate:none;filter:none;transition:none}
  html.motion-ready .hero-copy>.eyebrow,html.motion-ready .hero-copy>h1,html.motion-ready .hero-copy>.hero-subheading,html.motion-ready .hero-copy>.hero-desc,html.motion-ready .hero-copy>.hero-actions,html.motion-ready .hero-copy>.hero-micro,html.motion-ready .hero-image-wrap,html.motion-ready .hero-stamp{animation:none}
  .hero-glow-one,.hero-glow-two,.hero-orbit,.hero-stamp,.hero .mini-star,.hero h1 em,.stats-mark,.gallery-twinkle,.gallery-quote:after,.contact-glow,.about-followers-card,.about-decoration,.stats-band:before{animation:none!important}
  .project-video,.hero-image-wrap img,.about-image-main img,.about-image-mini img,.gallery-img img{transform:none!important;transition:none!important}
  .btn,.header-cta,.circle-arrow,.service-card,.project-card,.project-art,.process-grid article,.contact-panel{transition:none!important;transform:none!important;translate:none!important}
  .process-grid:before,.section h2 em:after{transition:none!important;transform:scaleX(1)!important}
}

/* Slim interactive chapter navigation appears only on spacious desktop screens. */
.motion-side-nav{position:fixed;right:14px;top:50%;translate:12px -50%;z-index:89;display:flex;flex-direction:column;align-items:flex-end;gap:12px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s ease,translate .6s var(--motion-spring),visibility .5s}
.motion-side-nav.is-shown{opacity:1;visibility:visible;pointer-events:auto;translate:0 -50%}
.motion-side-nav a{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:6px 5px 6px 8px;position:relative}
.motion-side-nav a span{font-size:9px;font-weight:700;letter-spacing:1.4px;color:#7b607d;opacity:0;translate:6px 0;transition:opacity .3s,translate .4s var(--motion-spring)}
.motion-side-nav a i{display:block;width:7px;height:7px;border:1px solid #a992ab;background:#fff8;transform:rotate(45deg);transition:transform .35s var(--motion-spring),background .35s,border-color .35s}
.motion-side-nav a:is(:hover,:focus-visible) span,.motion-side-nav a[aria-current="location"] span{opacity:1;translate:0 0}
.motion-side-nav a:is(:hover,:focus-visible) i,.motion-side-nav a[aria-current="location"] i{transform:rotate(45deg) scale(1.55);background:#aa7d9f;border-color:#aa7d9f}
.motion-side-nav a:focus-visible{outline:2px solid #b58aab;outline-offset:2px;border-radius:4px}
@media(max-width:1199px){.motion-side-nav{display:none!important}}
@media(prefers-reduced-motion:reduce){.motion-side-nav{transition:none}.motion-side-nav a span,.motion-side-nav a i{transition:none}}
