/* Premium motion layer — visual only. No content changes. */
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-smooth iframe{pointer-events:none}

:root{--motion-blue:32,185,245;--motion-lime:139,214,63}
body{overflow-x:hidden}
body.motion-ready .fade{opacity:1;transform:none;transition:none}

/* Scroll progress */
.motion-progress{position:fixed;left:0;top:0;width:100%;height:2px;z-index:120;pointer-events:none;background:rgba(255,255,255,.025)}
.motion-progress>i{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,var(--blue),var(--blue2),var(--lime));box-shadow:0 0 16px rgba(var(--motion-blue),.55);will-change:transform}

/* Cursor aura — subtle, desktop only */
.motion-aura{position:fixed;width:420px;height:420px;border-radius:50%;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(circle,rgba(var(--motion-blue),.07),rgba(var(--motion-blue),.025) 36%,transparent 70%);transform:translate3d(-50%,-50%,0);mix-blend-mode:screen;will-change:left,top,opacity}
body>a.skip,.site-header,main,.footer{position:relative;z-index:1}

/* Header polish */
.site-header{transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}
.site-header.is-scrolled{background:rgba(4,9,16,.94);border-bottom-color:rgba(32,185,245,.13);box-shadow:0 12px 38px rgba(0,0,0,.22)}
.brand-mark{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}
.brand:hover .brand-mark{transform:translateY(-1px) scale(1.035);box-shadow:0 10px 30px rgba(0,0,0,.32),0 0 24px rgba(var(--motion-blue),.14)}
.brand-mark-img{will-change:clip-path,transform,opacity}
.menu a{position:relative}
.menu a:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:linear-gradient(90deg,var(--blue),var(--blue2));transform:scaleX(0);transform-origin:right;transition:transform .28s ease}
.menu a:hover:after,.menu a[aria-current="page"]:after{transform:scaleX(1);transform-origin:left}

/* Hero atmosphere */
.hero,.page-hero{isolation:isolate}
.hero:before,.hero:after{will-change:transform}
.hero h1,.page-hero h1,.hero .eyebrow,.page-hero .eyebrow,.hero .lead,.page-hero p,.hero-actions,.proof-row,.portrait-wrap{will-change:transform,opacity,filter}
.portrait-wrap{isolation:isolate;perspective:1100px}
.portrait-card{z-index:3;transform-style:preserve-3d;will-change:transform;transition:border-color .35s ease,box-shadow .35s ease}
.portrait-card:hover{border-color:rgba(32,185,245,.24);box-shadow:0 32px 90px rgba(0,0,0,.46),0 0 0 1px rgba(32,185,245,.04)}
.neural-watermark{z-index:1!important;will-change:transform,opacity;transform-origin:50% 50%}
.neural-canvas{position:absolute;inset:-22%;width:144%;height:144%;z-index:0;pointer-events:none;opacity:.72;filter:drop-shadow(0 0 16px rgba(32,185,245,.11));mask-image:radial-gradient(circle at 55% 48%,#000 0 38%,rgba(0,0,0,.78) 58%,transparent 78%);-webkit-mask-image:radial-gradient(circle at 55% 48%,#000 0 38%,rgba(0,0,0,.78) 58%,transparent 78%)}
.hero-scan{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden;border-radius:inherit;opacity:.45}
.hero-scan:before{content:"";position:absolute;left:-35%;top:-10%;width:18%;height:125%;background:linear-gradient(90deg,transparent,rgba(111,214,255,.12),transparent);filter:blur(4px);transform:skewX(-12deg);animation:scanSweep 8.5s ease-in-out infinite}
@keyframes scanSweep{0%,16%{transform:translateX(0) skewX(-12deg);opacity:0}28%{opacity:1}58%{opacity:.65}78%,100%{transform:translateX(770%) skewX(-12deg);opacity:0}}

/* Refined sections/cards */
.motion-reveal{will-change:transform,opacity,filter}
.card,.topic,.ecosystem,.org-group,.feature-panel,.contact-card,.metric,.cta-box{transform-style:preserve-3d;transition:border-color .28s ease,box-shadow .28s ease,background-color .28s ease}
.card:hover,.topic:hover,.ecosystem:hover,.org-group:hover,.feature-panel:hover,.contact-card:hover{border-color:rgba(32,185,245,.24);box-shadow:0 22px 55px rgba(0,0,0,.18)}
.metric{position:relative;overflow:hidden}
.metric:after{content:"";position:absolute;inset:auto -40% 0 -40%;height:1px;background:linear-gradient(90deg,transparent,rgba(32,185,245,.65),transparent);transform:translateX(-34%);transition:transform .65s ease}
.metric:hover:after{transform:translateX(34%)}
.metric strong{will-change:transform,opacity,text-shadow}
.icon{transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease,border-color .3s ease}
.card:hover .icon{transform:translateY(-3px) rotate(-2deg);border-color:rgba(32,185,245,.52);box-shadow:0 8px 28px rgba(32,185,245,.14)}

/* Buttons: premium light sweep + magnetic movement handled in JS */
.btn,.nav-cta{position:relative;overflow:hidden;will-change:transform}
.btn:after,.nav-cta:after{content:"";position:absolute;top:-80%;left:-30%;width:22%;height:260%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transform:rotate(18deg) translateX(-230%);transition:transform .65s ease;pointer-events:none}
.btn:hover:after,.nav-cta:hover:after{transform:rotate(18deg) translateX(720%)}

/* Section accent movement */
.section-head,.org-intro,.service-detail,.timeline-item,.publication{position:relative}
.section-head:before,.org-intro:before{content:"";position:absolute;left:0;top:-24px;width:54px;height:1px;background:linear-gradient(90deg,var(--blue),transparent);opacity:.65;transform-origin:left}
.quote-band{position:relative;overflow:hidden}
.quote-band:after{content:"";position:absolute;inset:-80% -30%;background:linear-gradient(115deg,transparent 40%,rgba(32,185,245,.055) 48%,rgba(139,214,63,.03) 52%,transparent 60%);animation:quoteGlow 12s linear infinite;pointer-events:none}
@keyframes quoteGlow{from{transform:translateX(-28%)}to{transform:translateX(28%)}}

/* Motion fallback when external libraries are unavailable */
.no-gsap .motion-reveal{animation:fallbackReveal .72s cubic-bezier(.2,.75,.25,1) both}
@keyframes fallbackReveal{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

@media(max-width:980px){.motion-aura{display:none}.neural-canvas{opacity:.5;inset:-10%;width:120%;height:120%}.hero-scan{opacity:.28}}
@media(max-width:620px){.motion-progress{height:1px}.neural-canvas{opacity:.32}.hero-scan{display:none}.card:hover,.topic:hover,.ecosystem:hover,.org-group:hover,.feature-panel:hover,.contact-card:hover{box-shadow:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.motion-aura,.motion-progress,.neural-canvas,.hero-scan{display:none!important}.quote-band:after{animation:none!important}.motion-reveal,.fade{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.btn,.nav-cta,.brand-mark,.card,.topic,.ecosystem,.org-group,.feature-panel,.contact-card,.metric{transition:none!important}}


/* Personal signature — premium closing detail on the About page */
.personal-signature{margin-top:30px;max-width:330px;opacity:.9}
.personal-signature img,.signature-closing img{display:block;width:100%;height:auto;filter:drop-shadow(0 0 15px rgba(111,214,255,.08))}
.signature-reveal img{transform-origin:left center;will-change:clip-path,opacity,transform}
.signature-section{padding:16px 0 8px}
.signature-closing{display:flex;align-items:center;justify-content:flex-end;gap:20px;max-width:570px;margin-left:auto;padding:10px 0 18px}
.signature-closing .signature-rule{height:1px;flex:1;min-width:70px;background:linear-gradient(90deg,transparent,rgba(111,214,255,.34))}
.signature-closing img{width:min(360px,62vw);opacity:.78}
@media(max-width:620px){
  .personal-signature{max-width:265px;margin-top:24px}
  .signature-section{padding-top:4px}
  .signature-closing{gap:12px}
  .signature-closing .signature-rule{min-width:28px}
  .signature-closing img{width:min(290px,72vw)}
}
@media(prefers-reduced-motion:reduce){
  .signature-reveal img{clip-path:none!important;opacity:.9!important;transform:none!important}
}
