/* ============================================================
   dotia-fx.css (.dotIA) — camada FX PREMIUM ADITIVA (v2)
   Intensifica dotia-motion. Nao altera nada existente.
   - cursor neon trail + spotlight
   - particles network canvas
   - tilt 3D nos cards
   - ripple nos botoes
   - scroll progress bar
   - gradient text flow nos titulos
   - glow border pulse
   - page transition overlay
   - grain/noise overlay
   - skeleton shimmer
   - number flicker
   Respeita prefers-reduced-motion.
   ============================================================ */

/* ===== CURSOR NEON TRAIL ===== */
#dotia-cursor{position:fixed;top:0;left:0;width:18px;height:18px;border:1.5px solid rgba(103,232,249,.85);border-radius:50%;pointer-events:none;z-index:99998;transform:translate(-50%,-50%);transition:transform .08s linear,opacity .3s;mix-blend-mode:screen;box-shadow:0 0 12px rgba(103,232,249,.6),inset 0 0 8px rgba(103,232,249,.3);}
#dotia-cursor.dot{width:8px;height:8px;background:rgba(103,232,249,.9);border:none;box-shadow:0 0 18px rgba(103,232,249,.9);}
#dotia-cursor.hide{opacity:0;}
#dotia-cursor.big{width:42px;height:42px;border-color:rgba(167,139,250,.7);box-shadow:0 0 22px rgba(167,139,250,.5);}
@media (hover:none),(pointer:coarse){#dotia-cursor{display:none!important;}}

/* ===== SPOTLIGHT (radial gradient segue rato) ===== */
#dotia-spot{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(103,232,249,.06),transparent 60%);transition:background .15s;}

/* ===== PARTICLES NETWORK ===== */
#dotia-particles{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.55;}

/* ===== SCROLL PROGRESS BAR ===== */
#dotia-scroll{position:fixed;top:0;left:0;height:2px;width:0;z-index:99997;background:linear-gradient(90deg,#67e8f9,#a78bfa,#f472b6);box-shadow:0 0 10px rgba(103,232,249,.6);transition:width .08s linear;}

/* ===== PAGE TRANSITION OVERLAY ===== */
#dotia-pagefx{position:fixed;inset:0;z-index:99990;background:#05060a;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s;}
#dotia-pagefx.show{opacity:1;visibility:visible;}
#dotia-pagefx::before{content:'.';color:#67e8f9;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:60px;font-weight:800;opacity:.0;transition:opacity .28s;text-shadow:0 0 30px rgba(103,232,249,.6);}
#dotia-pagefx.show::before{opacity:.85;animation:dotia-pg .5s steps(2) infinite;}
@keyframes dotia-pg{50%{transform:translate(-50%,-50%) scale(.96);opacity:.4;}}

/* ===== GRAIN/NOISE OVERLAY ===== */
#dotia-grain{position:fixed;inset:0;z-index:99989;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");animation:dotia-grain 1.2s steps(4) infinite;}
@keyframes dotia-grain{0%{transform:translate(0,0);}25%{transform:translate(-3px,2px);}50%{transform:translate(2px,-2px);}75%{transform:translate(-2px,-1px);}100%{transform:translate(0,0);}}

/* ===== GRADIENT TEXT FLOW (titulos hero/h1) ===== */
.dotia-flow{background:linear-gradient(90deg,#67e8f9,#a78bfa,#f472b6,#67e8f9);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:dotia-flow 6s linear infinite;}
@keyframes dotia-flow{to{background-position:300% 0;}}

/* ===== TILT 3D NOS CARDS ===== */
.dotia-tilt{transform-style:preserve-3d;transition:transform .12s ease;will-change:transform;}
.dotia-tilt .v,.dotia-tilt .card-h,.dotia-tilt .l{transform:translateZ(28px);}
.dotia-tilt::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(180px circle at var(--tx,50%) var(--ty,50%),rgba(103,232,249,.12),transparent 60%);transition:opacity .2s;}
.dotia-tilt:hover::after{opacity:1;}

/* ===== RIPPLE NOS BOTOES ===== */
.dotia-ripple{position:relative;overflow:hidden;}
.dotia-ripple .rip{position:absolute;border-radius:50%;transform:scale(0);background:rgba(103,232,249,.35);pointer-events:none;animation:dotia-rip .6s ease-out;}
@keyframes dotia-rip{to{transform:scale(4);opacity:0;}}

/* ===== GLOW BORDER PULSE (cards ativos / nav-item active) ===== */
.nav-item.active{position:relative;}
.nav-item.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#67e8f9,#a78bfa);border-radius:2px;animation:dotia-glowbar 2.4s ease-in-out infinite;}
@keyframes dotia-glowbar{0%,100%{box-shadow:0 0 8px rgba(103,232,249,.6);}50%{box-shadow:0 0 18px rgba(103,232,249,.9);}}

/* ===== STAT CARD HOVER intensificado (so se .dotia-tilt) ===== */
.stat-card.dotia-tilt:hover,.card.dotia-tilt:hover{box-shadow:0 14px 40px rgba(0,0,0,.45),0 0 0 1px rgba(103,232,249,.25),0 0 26px rgba(103,232,249,.12);}

/* ===== NUMBER FLICKER (quando stat atualiza) ===== */
.dotia-flicker{animation:dotia-flick .5s ease;}
@keyframes dotia-flick{0%{color:#fff;text-shadow:0 0 18px rgba(103,232,249,1);}30%{opacity:.3;}50%{opacity:1;}70%{opacity:.6;}100%{opacity:1;}}

/* ===== SKELETON SHIMMER (loadings de tabelas) ===== */
.dotia-skel{position:relative;overflow:hidden;background:rgba(255,255,255,.03);border-radius:6px;}
.dotia-skel::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(103,232,249,.12),transparent);transform:translateX(-100%);animation:dotia-skel 1.3s infinite;}
@keyframes dotia-skel{to{transform:translateX(100%);}}

/* ===== TOAST PREMIUM ===== */
#dotia-toast-wrap{position:fixed;bottom:22px;right:22px;z-index:99996;display:flex;flex-direction:column;gap:10px;pointer-events:none;}
.dotia-toast{pointer-events:auto;min-width:240px;max-width:360px;padding:12px 16px;border-radius:10px;background:rgba(10,11,18,.92);border:1px solid rgba(103,232,249,.25);backdrop-filter:blur(8px);box-shadow:0 10px 30px rgba(0,0,0,.5),0 0 22px rgba(103,232,249,.1);color:#e6e6f0;font-size:13px;font-family:var(--font,'Courier New',monospace);display:flex;gap:10px;align-items:flex-start;animation:dotia-tin .4s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden;}
.dotia-toast::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#67e8f9,#a78bfa);}
.dotia-toast.out{animation:dotia-tout .35s ease forwards;}
.dotia-toast .ic{font-size:16px;}
.dotia-toast.ok{border-color:rgba(46,204,113,.3);} .dotia-toast.ok::before{background:#2ecc71;}
.dotia-toast.err{border-color:rgba(255,75,75,.3);} .dotia-toast.err::before{background:#ff4b4b;}
.dotia-toast.warn{border-color:rgba(245,158,11,.3);} .dotia-toast.warn::before{background:#f59e0b;}
@keyframes dotia-tin{from{opacity:0;transform:translateX(60px) scale(.95);}to{opacity:1;transform:none;}}
@keyframes dotia-tout{to{opacity:0;transform:translateX(60px);}}

/* ===== FLOAT nos icones decorativos ===== */
.dotia-float{animation:dotia-float 3.4s ease-in-out infinite;}
@keyframes dotia-float{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}

/* ===== ENTRANCE REVEAL extra (fade-up mais dramatico) ===== */
.dotia-pop{opacity:0;transform:translateY(18px) scale(.985);}
.dotia-pop.dotia-in{opacity:1;transform:none;transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.2,1);}

/* ===== LINK SUBLINHADO ANIMADO nos nav ===== */
.nav-item{position:relative;}
.nav-item .underline{position:absolute;left:14px;right:14px;bottom:6px;height:1px;background:linear-gradient(90deg,#67e8f9,#a78bfa);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.8,.2,1);}
.nav-item:hover .underline{transform:scaleX(1);}

/* ===== BADGE GLOW ===== */
.badge-green,.badge-blue{box-shadow:0 0 8px rgba(46,204,113,.25);}
.badge-blue{box-shadow:0 0 8px rgba(103,232,249,.25);}

/* ===== HERO H1 gradient flow aplicado aditivamente via JS ===== */

/* ===== REDUCED MOTION ===== */
@media (prefers-reduced-motion:reduce){
  #dotia-cursor,#dotia-spot,#dotia-particles,#dotia-scroll,#dotia-grain,#dotia-pagefx{display:none!important;}
  .dotia-flow,.dotia-float,.dotia-skel::after,.dotia-glowbar,.dotia-pop{animation:none!important;}
  .dotia-tilt{transform:none!important;}
}