/* AI page futuristic FX — neural canvas, grid floor, aurora, scan, card spotlight, flow pulse */
:root{--fx-violet:124,92,224;--fx-blue:94,134,240;--fx-bg:#0D0A22;--fx-bg-rgb:13,10,34}
.lf-v3.v3-dark,.v3-dark footer.site-footer{background:var(--fx-bg)}
.v3-dark .nav-wrap{background:rgba(var(--fx-bg-rgb),.8)}.v3-dark .nav-wrap.scrolled{background:rgba(var(--fx-bg-rgb),.92)}
.v3-ai-hero .ai-card{background:rgba(28,20,64,.85)}
.ai-aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.ai-aurora i{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(90px);opacity:.16;will-change:transform}
.ai-aurora i:nth-child(1){background:rgb(var(--fx-violet));top:-20vmax;left:-15vmax;animation:fx-drift1 28s ease-in-out infinite alternate}
.ai-aurora i:nth-child(2){background:rgb(var(--fx-blue));bottom:-25vmax;right:-20vmax;opacity:.12;animation:fx-drift2 34s ease-in-out infinite alternate}
@keyframes fx-drift1{to{transform:translate(30vw,40vh) scale(1.2)}}
@keyframes fx-drift2{to{transform:translate(-35vw,-30vh) scale(.9)}}
body.v3-dark>section,body.v3-dark>footer{position:relative;z-index:1}
.ai-net{position:absolute;inset:0;z-index:0}
.ai-net canvas{position:absolute;inset:0;width:100%;height:100%;display:block;-webkit-mask-image:radial-gradient(90% 85% at 50% 40%,#000 45%,transparent 100%);mask-image:radial-gradient(90% 85% at 50% 40%,#000 45%,transparent 100%)}
.ai-floor{position:absolute;left:-20%;right:-20%;bottom:0;height:46%;z-index:0;pointer-events:none;perspective:420px;-webkit-mask-image:linear-gradient(to top,#000 10%,transparent 90%);mask-image:linear-gradient(to top,#000 10%,transparent 90%)}
.ai-floor::before{content:'';position:absolute;inset:0 0 -60%;transform:rotateX(62deg);transform-origin:50% 0;background-image:linear-gradient(rgba(var(--fx-violet),.35) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fx-blue),.28) 1px,transparent 1px);background-size:56px 56px;animation:fx-floor 3.2s linear infinite}
@keyframes fx-floor{to{background-position:0 56px,0 0}}
.ai-scan{position:absolute;left:0;right:0;top:0;height:2px;z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(196,181,248,.9),transparent);box-shadow:0 0 18px 2px rgba(var(--fx-violet),.55);opacity:0;animation:fx-scan 5.5s cubic-bezier(.45,0,.55,1) 1.2s infinite}
@keyframes fx-scan{0%{top:0;opacity:0}8%{opacity:1}55%{top:100%;opacity:.8}62%,100%{top:100%;opacity:0}}
.v3-ai-hero .ai-card{position:relative;overflow:hidden;box-shadow:0 0 0 1px rgba(var(--fx-violet),.35),0 30px 80px -20px rgba(var(--fx-violet),.45)}
.v3-ai-hero .ai-card::before{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:conic-gradient(from var(--fx-a,0deg),transparent 0 70%,rgba(196,181,248,.95) 85%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);animation:fx-spin 6s linear infinite;pointer-events:none;z-index:2}
@property --fx-a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes fx-spin{to{--fx-a:360deg}}
.v3-dcard{position:relative;overflow:hidden;isolation:isolate}
.v3-dcard::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity 200ms;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(var(--fx-violet),.22),transparent 70%)}
.v3-dcard:hover::after{opacity:1}
.v3-dcard .ic{position:relative}
.v3-dcard .ic::after{content:'';position:absolute;inset:-4px;border-radius:10px;border:1px solid rgba(196,181,248,.5);opacity:0;animation:fx-ping 3.6s ease-out infinite;animation-delay:var(--fx-d,0s)}
@keyframes fx-ping{0%{opacity:.8;transform:scale(.85)}60%,100%{opacity:0;transform:scale(1.35)}}
.v3-flow .step::after{background:linear-gradient(90deg,rgba(255,255,255,.12),rgba(255,255,255,.12)) ,linear-gradient(90deg,transparent,rgba(196,181,248,1),transparent);background-size:100% 100%,40% 100%;background-repeat:no-repeat;animation:fx-wire 2.4s linear infinite;animation-delay:var(--fx-d,0s)}
@keyframes fx-wire{from{background-position:0 0,-60% 0}to{background-position:0 0,160% 0}}
.v3-final{position:relative;overflow:hidden}
.v3-final .container{position:relative;z-index:1}
@media (max-width:640px){.ai-floor{height:30%}.ai-aurora i{filter:blur(60px)}}
@media (prefers-reduced-motion:reduce){.ai-aurora i,.ai-floor::before,.ai-scan,.v3-ai-hero .ai-card::before,.v3-dcard .ic::after,.v3-flow .step::after{animation:none}.ai-scan{display:none}}
