
/* =========================================================
   OMNIA SHIELD — PREMIUM MOTION LAYER
   ========================================================= */
:root{
  --premium-cyan: 38,216,255;
  --premium-violet: 138,99,255;
}

/* Refined animated light field */
body::before{
  content:"";
  position:fixed;
  inset:-20%;
  z-index:-4;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 22%, rgba(var(--premium-violet),.12), transparent 24%),
    radial-gradient(circle at 82% 18%, rgba(var(--premium-cyan),.10), transparent 22%),
    radial-gradient(circle at 55% 78%, rgba(70,116,255,.08), transparent 28%);
  filter:blur(30px);
  animation:omniaAmbientDrift 18s ease-in-out infinite alternate;
}
@keyframes omniaAmbientDrift{
  0%{transform:translate3d(-1.5%,-1%,0) scale(1)}
  50%{transform:translate3d(1.5%,1.2%,0) scale(1.035)}
  100%{transform:translate3d(-.5%,2%,0) scale(1.015)}
}

/* Fine-grain texture: removes the flat-template look */
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:200;
  opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
}

/* Scroll reveal with cinematic depth */
[data-premium-reveal]{
  opacity:0;
  transform:translate3d(0,38px,0) scale(.985);
  filter:blur(8px);
  transition:
    opacity .9s cubic-bezier(.2,.7,.2,1),
    transform .9s cubic-bezier(.2,.7,.2,1),
    filter .9s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--premium-delay,0ms);
}
[data-premium-reveal].premium-visible{
  opacity:1;
  transform:none;
  filter:none;
}

/* Card spotlight and depth */
.premium-spotlight{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transform-style:preserve-3d;
}
.premium-spotlight::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:0;
  pointer-events:none;
  background:
    radial-gradient(
      420px circle at var(--spot-x,50%) var(--spot-y,50%),
      rgba(var(--premium-cyan),.16),
      rgba(var(--premium-violet),.07) 32%,
      transparent 68%
    );
  transition:opacity .28s ease;
}
.premium-spotlight:hover::before{opacity:1}
.premium-spotlight::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(120deg,transparent 25%,rgba(255,255,255,.06) 45%,transparent 65%);
  transform:translateX(-130%);
  transition:transform .85s cubic-bezier(.2,.7,.2,1);
}
.premium-spotlight:hover::after{transform:translateX(130%)}

/* Hero image parallax and controlled light sweep */
.hero-image-layer{
  will-change:transform;
  transform:scale(1.045);
  transition:transform .16s linear;
}
.hero::after{
  content:"";
  position:absolute;
  inset:-30% -15%;
  pointer-events:none;
  background:linear-gradient(110deg,transparent 35%,rgba(115,232,255,.08) 48%,transparent 61%);
  transform:translateX(-70%) rotate(-4deg);
  animation:heroLightSweep 9s ease-in-out infinite;
}
@keyframes heroLightSweep{
  0%,20%{transform:translateX(-75%) rotate(-4deg);opacity:0}
  40%{opacity:.8}
  62%,100%{transform:translateX(75%) rotate(-4deg);opacity:0}
}

/* Premium magnetic CTA */
.premium-magnetic{
  will-change:transform;
  transition:
    transform .25s cubic-bezier(.2,.8,.2,1),
    box-shadow .25s ease,
    border-color .25s ease;
}
.premium-magnetic:hover{
  box-shadow:0 18px 48px rgba(var(--premium-cyan),.18);
}

/* Device float and 3D tilt */
.phone,.device-stage,.dashboard-device,.app-device{
  transform-style:preserve-3d;
  will-change:transform;
}
.phone{
  animation:omniaDeviceFloat 6.5s ease-in-out infinite;
}
@keyframes omniaDeviceFloat{
  0%,100%{transform:translate3d(0,0,0) rotateX(0deg) rotateY(0deg)}
  50%{transform:translate3d(0,-10px,0) rotateX(.8deg) rotateY(-.8deg)}
}

/* Elegant scan glint */
.scan-overlay::after,
.security-score::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 0%,rgba(var(--premium-cyan),.08) 48%,transparent 100%);
  transform:translateY(-120%);
  animation:omniaScanner 3.8s ease-in-out infinite;
}
@keyframes omniaScanner{
  0%,15%{transform:translateY(-120%);opacity:0}
  40%{opacity:1}
  70%,100%{transform:translateY(120%);opacity:0}
}

/* Header gains precision on scroll */
.site-header{
  transition:
    background .35s ease,
    border-color .35s ease,
    box-shadow .35s ease,
    transform .35s ease;
}
.site-header.premium-scrolled{
  background:rgba(2,7,19,.86);
  border-color:rgba(var(--premium-cyan),.12);
  box-shadow:0 16px 50px rgba(0,0,0,.24);
}

/* Section separator glow */
main section{
  position:relative;
}
main section + section::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  width:min(760px,70vw);
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(var(--premium-cyan),.23),rgba(var(--premium-violet),.18),transparent);
}

/* Numeric counters: prevent shifting while animating */
[data-premium-counter]{
  font-variant-numeric:tabular-nums;
}

/* Accessible pointer halo */
.premium-pointer{
  position:fixed;
  width:420px;
  height:420px;
  border-radius:50%;
  pointer-events:none;
  z-index:-1;
  opacity:.5;
  transform:translate3d(calc(var(--pointer-x,50vw) - 50%),calc(var(--pointer-y,50vh) - 50%),0);
  background:radial-gradient(circle,rgba(var(--premium-cyan),.07),rgba(var(--premium-violet),.03) 35%,transparent 68%);
  filter:blur(12px);
  transition:opacity .3s ease;
}

/* Mobile: retain quality without heavy GPU load */
@media (max-width: 820px){
  body::before{animation-duration:28s;filter:blur(42px)}
  body::after{opacity:.025}
  .hero::after{animation:none;opacity:.25;transform:none}
  .phone{animation-duration:8s}
  .premium-pointer{display:none}
  .premium-spotlight{transform:none!important}
}

/* Reduced motion is fully respected */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
  }
  [data-premium-reveal]{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
  }
  .premium-pointer{display:none}
}


/* Permanent black presentation */
:root{color-scheme:dark}
html,body{background:#000!important}
[data-theme="light"],.light-theme,.theme-light{color-scheme:dark!important}
.theme-toggle,[data-theme-toggle],#themeToggle{display:none!important}
