/* ============================================================
   ANUEXIS FX LAYER - motion & depth design system
   Pure overlay: zero content changes. Safe-by-default:
   all reveal states are gated behind .ax-js so content is
   always visible if JavaScript ever fails.
   ============================================================ */

:root{
  --ax-navy:#0A3D91;
  --ax-deep:#072d6b;
  --ax-acc:#1E90FF;
  --ax-sky:#4DB6FF;
  --ax-ease:cubic-bezier(.22,1,.36,1);
}

/* ---------- global polish + real design fixes ---------- */
html{scroll-behavior:smooth;scroll-padding-top:96px;}
::selection{background:var(--ax-acc);color:#fff;}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:#EEF2F7}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--ax-navy),var(--ax-acc));border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:var(--ax-acc)}
a:focus-visible,button:focus-visible{outline:2px solid var(--ax-acc);outline-offset:3px;border-radius:4px}

/* ---------- scroll progress bar ---------- */
#ax-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:99999;pointer-events:none;
  transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--ax-navy),var(--ax-acc) 55%,var(--ax-sky));
  box-shadow:0 0 12px rgba(30,144,255,.55);}

/* ---------- glass header on scroll ---------- */
body.ax-scrolled .elementor-element-0406dc3{
  background:rgba(255,255,255,.84)!important;
  -webkit-backdrop-filter:saturate(170%) blur(14px);
  backdrop-filter:saturate(170%) blur(14px);
  box-shadow:0 8px 30px rgba(10,61,145,.10)!important;
}

/* ---------- HERO: aurora + particles + grain ---------- */
.ax-hero{position:relative;overflow:hidden;isolation:isolate;}
.ax-hero-fx{position:absolute;inset:0;z-index:1;pointer-events:none;}
.ax-hero .e-con-inner,.ax-hero>.e-con{position:relative;z-index:3;}
.ax-net{position:absolute;inset:0;}
.ax-orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;will-change:transform;display:block;}
.ax-orb-a{width:46vw;height:46vw;left:-12vw;top:-16vw;
  background:radial-gradient(circle at 30% 30%,rgba(77,182,255,.5),rgba(77,182,255,0) 66%);
  animation:ax-float-a 22s ease-in-out infinite alternate;}
.ax-orb-b{width:40vw;height:40vw;right:-12vw;bottom:-16vw;
  background:radial-gradient(circle at 60% 40%,rgba(10,61,145,.38),rgba(10,61,145,0) 66%);
  animation:ax-float-b 27s ease-in-out infinite alternate;}
.ax-orb-c{width:22vw;height:22vw;left:40vw;top:26%;
  background:radial-gradient(circle,rgba(30,144,255,.3),rgba(30,144,255,0) 70%);
  animation:ax-float-c 18s ease-in-out infinite alternate;}
@keyframes ax-float-a{to{transform:translate(6vw,4vw) scale(1.12)}}
@keyframes ax-float-b{to{transform:translate(-5vw,-5vw) scale(1.08)}}
@keyframes ax-float-c{to{transform:translate(-4vw,6vh) scale(1.22)}}
.ax-grain{position:absolute;inset:0;opacity:.045;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/></svg>");
  background-size:180px 180px;}
.ax-scrim{display:none;}
@media (max-width:767px){
  .ax-scrim{display:block;position:absolute;inset:0;background:rgba(255,255,255,.72);}
  .ax-orb{filter:blur(46px);}
}

/* ---------- gradient shimmer headlines ---------- */
html.ax-gradtext #hero h1{
  background:linear-gradient(110deg,var(--ax-navy) 0%,var(--ax-navy) 38%,var(--ax-acc) 50%,var(--ax-sky) 58%,var(--ax-navy) 72%,var(--ax-navy) 100%);
  background-size:230% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:ax-shimmer 9s var(--ax-ease) infinite;}
html.ax-gradtext #method h2{
  background:linear-gradient(110deg,#fff 30%,#9fd4ff 50%,#fff 70%);
  background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:ax-shimmer 8s var(--ax-ease) infinite;}
@keyframes ax-shimmer{0%,100%{background-position:0% 0}50%{background-position:100% 0}}


/* ---------- 3D tilt cards + cursor spotlight ---------- */
.ax-card{position:relative;overflow:hidden;
  transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transition:transform .35s var(--ax-ease),box-shadow .35s ease,border-color .35s ease;}
.ax-card>*{position:relative;z-index:1;}
.ax-card::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:0;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(30,144,255,.15),transparent 65%);
  opacity:0;transition:opacity .3s ease;pointer-events:none;}
.ax-card:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-6px);
  box-shadow:0 24px 48px -18px rgba(10,61,145,.32)!important;
  border-color:rgba(30,144,255,.5)!important;}
.ax-card:hover::before{opacity:1;}
#method .ax-card::before{background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.13),transparent 65%);}
#method .ax-card:hover{border-color:rgba(255,255,255,.4)!important;
  box-shadow:0 24px 48px -18px rgba(0,0,0,.55)!important;}

/* glowing method letters + gradient measure numbers */
#method .ax-card>.elementor-widget-heading:first-child .elementor-heading-title{
  text-shadow:0 0 26px rgba(77,182,255,.65);}
html.ax-gradtext #measure .ax-card>.elementor-widget-heading:first-child .elementor-heading-title{
  background:linear-gradient(135deg,var(--ax-acc),var(--ax-sky));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;}

/* ---------- buttons: sheen sweep + lift ---------- */
.elementor-button{position:relative;overflow:hidden;
  transition:transform .25s var(--ax-ease),box-shadow .25s ease,background-color .25s ease!important;will-change:transform;}
.elementor-button::after{content:"";position:absolute;top:0;left:-130%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);
  transform:skewX(-20deg);transition:left .65s ease;pointer-events:none;}
.elementor-button:hover::after{left:140%;}
.elementor-button:hover{box-shadow:0 14px 30px -12px rgba(30,144,255,.55);}

/* ---------- footer micro-interactions ---------- */
div[data-elementor-id="65"] a{transition:color .22s ease,padding-left .22s ease;}
div[data-elementor-id="65"] a:hover{color:var(--ax-sky)!important;padding-left:6px;}

/* ---------- reduced motion: respect the human ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .ax-orb,.ax-net,.ax-grain{display:none!important;}
  #hero h1,html.ax-gradtext #method h2{animation:none;}
  .elementor-button::after{display:none;}
  .ax-card,.ax-card:hover{transform:none;}
}

/* ---------- finishing touches ---------- */
#contact input:focus,#contact textarea:focus{border-color:var(--ax-acc)!important;box-shadow:0 0 0 3px rgba(30,144,255,.18)!important;outline:none!important;transition:box-shadow .2s ease,border-color .2s ease;}
.ax-card{will-change:transform;}
