/* Vault — لمسات 3D (طبقة إضافية فقط) */
.reveal:not(.card){
  transform:perspective(var(--persp)) translate3d(0,46px,-110px) rotateX(14deg);
  transform-origin:50% 100%;
  transition:opacity .95s cubic-bezier(.2,.8,.2,1),transform .95s cubic-bezier(.2,.8,.2,1);
}
.reveal.in:not(.card){transform:perspective(var(--persp)) translate3d(0,0,0) rotateX(0)}
.grid>.reveal:nth-child(3n+2){transition-delay:.07s}
.grid>.reveal:nth-child(3n+3){transition-delay:.14s}
html.v3 [data-v3]:not(.v3-on){opacity:0}
[data-v3].v3-on{animation:v3In 1s cubic-bezier(.2,.8,.2,1) var(--v3d,0s) backwards}
@keyframes v3In{
  from{opacity:0;transform:perspective(1400px) translate3d(0,48px,-140px) rotateX(16deg)}
  to{opacity:1;transform:perspective(1400px) translate3d(0,0,0) rotateX(0)}
}
html.v3.v3-fail [data-v3]:not(.v3-on){opacity:1}
.hero .wrap>*{transform-origin:50% 100%;animation:v3Rise .95s cubic-bezier(.2,.8,.2,1) backwards}
.hero .wrap>.owner-badge{animation-delay:.04s}
.hero .wrap>h1{animation-delay:.14s}
.hero .wrap>p{animation-delay:.27s}
.hero .wrap>.cta{animation-delay:.4s}
.hero .wrap>.stats{animation-delay:.54s}
@keyframes v3Rise{
  from{opacity:0;transform:perspective(1000px) translate3d(0,34px,-90px) rotateX(22deg)}
  to{opacity:1;transform:perspective(1000px) translate3d(0,0,0) rotateX(0)}
}
.hero .blobs{will-change:transform}
.v3-spot{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(560px circle at var(--v3sx,50%) var(--v3sy,30%),rgba(107,154,255,.11),transparent 62%)}
.v3-stage{
  position:absolute;z-index:-1;pointer-events:none;perspective:1100px;
  transform:translate3d(calc(var(--px,0)*var(--kx,-24px)),calc(var(--py,0)*var(--ky,-16px)),0);
}
.v3-a{width:300px;height:300px;top:54px;inset-inline-start:3.5%;--kx:-28px;--ky:-18px}
.v3-b{width:150px;height:150px;bottom:46px;inset-inline-end:6%;--kx:34px;--ky:22px}
.v3-tilt{
  position:absolute;inset:0;transform-style:preserve-3d;
  transform:rotateX(calc(var(--py,0)*-12deg)) rotateY(calc(var(--px,0)*16deg));
}
.v3-rig{position:absolute;inset:0;transform-style:preserve-3d;animation:v3Tumble 46s linear infinite}
.v3-b .v3-rig{animation:v3Tumble2 64s linear infinite}
@keyframes v3Tumble{from{transform:rotateX(-18deg) rotateY(0deg)}to{transform:rotateX(-18deg) rotateY(360deg)}}
@keyframes v3Tumble2{from{transform:rotateX(18deg) rotateY(0deg) rotateZ(0deg)}to{transform:rotateX(18deg) rotateY(360deg) rotateZ(360deg)}}
.v3-ring{
  position:absolute;border-radius:50%;border:1px solid rgba(107,154,255,.34);
  transform-style:preserve-3d;animation:v3Spin var(--t,22s) linear infinite;
}
.v3-ring::after{
  content:"";position:absolute;top:-3px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;
  background:var(--accent2);box-shadow:0 0 10px 2px var(--accent2);
}
.v3-ring.r1{inset:0;--base:rotateX(70deg);--t:22s}
.v3-ring.r2{inset:13%;--base:rotateY(70deg);--t:30s;border-style:dashed;border-color:rgba(107,154,255,.28);animation-direction:reverse}
.v3-ring.r2::after{display:none}
.v3-ring.r3{inset:27%;--base:rotateX(0deg);--t:16s;border-color:rgba(107,154,255,.42)}
@keyframes v3Spin{from{transform:var(--base) rotateZ(0deg)}to{transform:var(--base) rotateZ(360deg)}}
.v3-cube{
  position:absolute;left:50%;top:50%;width:var(--c);height:var(--c);
  margin:calc(var(--c)/-2) 0 0 calc(var(--c)/-2);transform-style:preserve-3d;
}
.v3-cube i{position:absolute;inset:0;border:1px solid rgba(107,154,255,.32);background:linear-gradient(135deg,rgba(61,123,253,.07),transparent 65%)}
.v3-cube i:nth-child(1){transform:translateZ(calc(var(--c)/2))}
.v3-cube i:nth-child(2){transform:rotateY(180deg) translateZ(calc(var(--c)/2))}
.v3-cube i:nth-child(3){transform:rotateY(90deg) translateZ(calc(var(--c)/2))}
.v3-cube i:nth-child(4){transform:rotateY(-90deg) translateZ(calc(var(--c)/2))}
.v3-cube i:nth-child(5){transform:rotateX(90deg) translateZ(calc(var(--c)/2))}
.v3-cube i:nth-child(6){transform:rotateX(-90deg) translateZ(calc(var(--c)/2))}
.v3-core{--c:54px;animation:v3Core 12s linear infinite}
.v3-big{--c:112px;animation:v3Core 38s linear infinite}
.v3-small{--c:56px;animation:v3Core 24s linear infinite reverse}
@keyframes v3Core{from{transform:rotateX(0deg) rotateY(0deg)}to{transform:rotateX(360deg) rotateY(-360deg)}}
@media(max-width:1080px){.v3-stage{display:none}}
.v3-progress{
  position:fixed;top:0;inset-inline:0;height:2px;z-index:60;pointer-events:none;
  background:linear-gradient(90deg,var(--accent2),rgba(107,154,255,.25));
  transform-origin:0 50%;transform:scaleX(var(--p,0));
}
html[dir="rtl"] .v3-progress{transform-origin:100% 50%;background:linear-gradient(270deg,var(--accent2),rgba(107,154,255,.25))}
header{transition:background .3s,box-shadow .3s,border-color .3s}
header.v3-s{box-shadow:0 18px 44px -28px rgba(0,0,0,.9);background:rgba(9,9,11,.86)}
.v3t{position:relative}
html .v3t.v3t,html .v3t.v3t:hover{
  transform:perspective(900px) translateY(var(--v3lift,0px)) rotateX(var(--v3rx,0deg)) rotateY(var(--v3ry,0deg));
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .25s;
  will-change:transform;
}
html .v3t.v3t:hover{--v3lift:-4px}
.v3t::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(420px circle at var(--v3gx,50%) var(--v3gy,0%),rgba(107,154,255,.11),transparent 55%);
  opacity:0;transition:opacity .3s;
}
.v3t:hover::after{opacity:1}
.v3m{
  transform:translate3d(var(--v3x,0px),var(--v3y,0px),0);
  transition:transform .25s cubic-bezier(.2,.7,.2,1),opacity .15s,background .15s,border-color .15s;
}
html .v3m.v3m:hover{transform:translate3d(var(--v3x,0px),calc(var(--v3y,0px) - 1px),0)}
.v3-app{
  transform-origin:50% 0;
  transform:perspective(1800px)
    translate3d(0,calc((1 - var(--v3p,1))*70px),calc((1 - var(--v3p,1))*-120px))
    rotateX(calc((1 - var(--v3p,1))*16deg + var(--v3ax,0deg)))
    rotateY(var(--v3ay,0deg));
  opacity:calc(.35 + .65*var(--v3p,1));
  will-change:transform;
}
.v3-glare{
  position:absolute;inset:0;z-index:6;pointer-events:none;border-radius:inherit;
  background:radial-gradient(640px circle at var(--v3gx,50%) var(--v3gy,0%),rgba(255,255,255,.055),transparent 55%);
  opacity:0;transition:opacity .35s;
}
.v3-app:hover .v3-glare{opacity:1}
@media(max-width:900px){
  .v3-app{transform:perspective(1800px) translate3d(0,calc((1 - var(--v3p,1))*40px),0) rotateX(calc((1 - var(--v3p,1))*8deg))}
}
@keyframes modalIn{
  from{opacity:0;transform:perspective(1600px) translate3d(0,44px,-160px) rotateX(14deg) rotateY(-3deg) scale(.96)}
  60%{opacity:1}
  to{opacity:1;transform:perspective(1600px) translate3d(0,0,0) rotateX(0) rotateY(0) scale(1)}
}
.modal{animation-duration:.55s;animation-timing-function:cubic-bezier(.2,.85,.25,1)}
:root[data-theme="light"] .v3-spot{background:radial-gradient(560px circle at var(--v3sx,50%) var(--v3sy,30%),rgba(47,95,216,.09),transparent 62%)}
:root[data-theme="light"] .v3-ring{border-color:rgba(47,95,216,.38)}
:root[data-theme="light"] .v3-ring.r2{border-color:rgba(47,95,216,.3)}
:root[data-theme="light"] .v3-ring.r3{border-color:rgba(47,95,216,.45)}
:root[data-theme="light"] .v3-cube i{border-color:rgba(47,95,216,.36);background:linear-gradient(135deg,rgba(47,95,216,.07),transparent 65%)}
:root[data-theme="light"] header.v3-s{background:rgba(250,250,250,.9);box-shadow:0 18px 40px -28px rgba(10,15,30,.35)}
:root[data-theme="light"] .v3t::after{background:radial-gradient(420px circle at var(--v3gx,50%) var(--v3gy,0%),rgba(47,95,216,.08),transparent 55%)}
:root[data-theme="light"] .v3-glare{background:radial-gradient(640px circle at var(--v3gx,50%) var(--v3gy,0%),rgba(47,95,216,.06),transparent 55%)}
@media(prefers-reduced-motion:reduce){
  .v3-stage,.v3-spot,.v3-progress,.v3-glare{display:none!important}
  .hero .wrap>*,[data-v3].v3-on{animation:none!important}
  .v3-app{transform:none!important;opacity:1!important}
  .reveal:not(.card){transform:none}
}
