/* ================================================================
 de-animations.css — Delta Efficiency Global Animation System
 Injected on every public page via includes/header.php
 ================================================================ */
/* ---- Google Fonts are loaded by header.php already ------- */
:root{--de-primary:#1a1a2e;--de-secondary:#c0392b;--de-accent:#0f6e56;--de-gold:#f0b429;--de-bg:#0d1117;--de-card:rgba(255,255,255,0.04);--de-border:rgba(255,255,255,0.1);--de-text:#f0f0f0;--de-muted:rgba(240,240,240,0.6);--de-head:'Syne',sans-serif;--de-body:'Inter',sans-serif;}
/* ---- PAGE LOADER ----------------------------------------- */
#de-page-loader{position:fixed;inset:0;background:var(--de-primary);z-index:100000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;transition:opacity .6s ease,visibility .6s ease;pointer-events:all;}
#de-page-loader.de-hidden{opacity:0;visibility:hidden;pointer-events:none;}
.de-loader-logo{font-family:var(--de-head);font-size:1.9rem;font-weight:800;color:#fff;letter-spacing:-.02em;}.de-loader-logo span{color:var(--de-secondary);}
.de-loader-bar{width:180px;height:3px;background:rgba(255,255,255,0.08);border-radius:2px;overflow:hidden;}.de-loader-fill{height:100%;background:linear-gradient(90deg,var(--de-secondary),var(--de-accent));border-radius:2px;animation:deLoadBar 1.6s ease forwards;}@keyframes deLoadBar{from{width:0}to{width:100%}}
/* ---- CUSTOM CURSOR --------------------------------------- */
.de-cursor{position:fixed;width:12px;height:12px;background:var(--de-secondary);border-radius:50%;pointer-events:none;z-index:99999;transform:translate(-50%,-50%);transition:width .2s,height .2s,opacity .2s;mix-blend-mode:difference;}
.de-cursor-ring{position:fixed;width:38px;height:38px;border:1.5px solid rgba(192,57,43,.5);border-radius:50%;pointer-events:none;z-index:99998;transform:translate(-50%,-50%);transition:width .3s,height .3s,border-color .3s;}
.de-cursor-ring.de-active{width:64px;height:64px;border-color:rgba(192,57,43,.2);}
@media(hover:none){.de-cursor,.de-cursor-ring{display:none;}}
/* ---- BACKGROUND ORBS ------------------------------------- */
.de-orbs{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
.de-orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.9;animation:deOrbFloat 9s ease-in-out infinite;}
.de-orb-1{width:500px;height:500px;background:radial-gradient(circle,rgba(192,57,43,.22),transparent 70%);top:-180px;right:-120px;animation-delay:0s;}
.de-orb-2{width:350px;height:350px;background:radial-gradient(circle,rgba(15,110,86,.18),transparent 70%);bottom:-80px;left:-80px;animation-delay:-4s;}
.de-orb-3{width:260px;height:260px;background:radial-gradient(circle,rgba(130,80,223,.14),transparent 70%);top:45%;left:45%;animation-delay:-7s;}
@keyframes deOrbFloat{0%,100%{transform:translate(0,0) scale(1);}33%{transform:translate(25px,-35px) scale(1.06);}66%{transform:translate(-18px,18px) scale(.96);}}
/* ---- SCROLL REVEAL --------------------------------------- */
.de-reveal{opacity:0;transform:translateY(36px);transition:opacity .7s ease,transform .7s ease;}.de-reveal.de-visible{opacity:1;transform:none;}
.de-reveal-left{opacity:0;transform:translateX(-48px);transition:opacity .7s ease,transform .7s ease;}.de-reveal-left.de-visible{opacity:1;transform:none;}
.de-reveal-right{opacity:0;transform:translateX(48px);transition:opacity .7s ease,transform .7s ease;}.de-reveal-right.de-visible{opacity:1;transform:none;}
.de-reveal-scale{opacity:0;transform:scale(.87);transition:opacity .6s ease,transform .6s ease;}.de-reveal-scale.de-visible{opacity:1;transform:scale(1);}
.de-d1{transition-delay:.1s!important;}.de-d2{transition-delay:.2s!important;}.de-d3{transition-delay:.3s!important;}.de-d4{transition-delay:.4s!important;}.de-d5{transition-delay:.5s!important;}.de-d6{transition-delay:.6s!important;}
/* ---- SECTION PAGE HERO BANNER ---------------------------- */
.de-page-hero{position:relative;overflow:hidden;background:var(--de-primary);padding:120px 24px 80px;text-align:center;}
.de-page-hero-inner{position:relative;z-index:2;max-width:780px;margin:0 auto;}
.de-page-tag{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--de-secondary);border:1px solid rgba(192,57,43,.3);padding:5px 14px;border-radius:100px;margin-bottom:18px;animation:deTagPulse 3s ease-in-out infinite;}@keyframes deTagPulse{0%,100%{box-shadow:0 0 0 0 rgba(192,57,43,.3);}50%{box-shadow:0 0 0 8px rgba(192,57,43,0);}}
.de-page-title{font-family:var(--de-head);font-size:clamp(2rem,5vw,3.6rem);font-weight:800;letter-spacing:-.03em;line-height:1.08;color:#fff;margin-bottom:18px;}
.de-grad{background:linear-gradient(135deg,#fff 0%,var(--de-secondary) 55%,#ff8c6b 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.de-page-sub{font-size:1.05rem;line-height:1.7;color:var(--de-muted);max-width:620px;margin:0 auto 32px;}
/* ---- BUTTON ENHANCEMENTS --------------------------------- */
.de-btn-ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.28);transform:scale(0);animation:deRipple .55s linear;pointer-events:none;}@keyframes deRipple{to{transform:scale(4);opacity:0;}}
.de-mag-inner{display:inline-block;transition:transform .3s cubic-bezier(.34,1.56,.64,1);}
.de-btn-glow{animation:deBtnGlow 2.6s ease-in-out infinite;}@keyframes deBtnGlow{0%,100%{box-shadow:0 0 18px rgba(192,57,43,.45),0 0 36px rgba(192,57,43,.18);}50%{box-shadow:0 0 36px rgba(192,57,43,.7),0 0 72px rgba(192,57,43,.3);}}
/* ---- CARD TILT (3-D perspective) ------------------------- */
.de-tilt{transform-style:preserve-3d;transition:transform .15s ease,box-shadow .3s ease;}.de-tilt:hover{box-shadow:0 28px 70px rgba(0,0,0,.38);}
/* ---- CARD HOVER LIFT ------------------------------------- */
.de-lift{transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;}.de-lift:hover{transform:translateY(-10px);box-shadow:0 24px 60px rgba(0,0,0,.32);}
/* ---- GLASSMORPHISM CARD ---------------------------------- */
.de-glass{background:rgba(255,255,255,.04);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.1);border-radius:20px;}
/* ---- GRADIENT TEXT UTILITY ------------------------------ */
.de-text-grad{background:linear-gradient(135deg,#fff 0%,var(--de-secondary) 55%,#ff8c6b 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
/* ---- COUNTER NUMBER ------------------------------------- */
.de-count{display:inline-block;font-variant-numeric:tabular-nums;}
/* ---- SECTION DIVIDER ANIMATION -------------------------- */
.de-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(192,57,43,.4),transparent);margin:0;border:none;}
/* ---- FLOATING BADGE -------------------------------------- */
.de-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(192,57,43,.12);border:1px solid rgba(192,57,43,.3);padding:5px 14px;border-radius:100px;font-size:.72rem;font-weight:600;color:rgba(240,240,240,.9);letter-spacing:.07em;text-transform:uppercase;animation:deTagPulse 3s ease-in-out infinite;}
/* ---- SCROLL PROGRESS BAR --------------------------------- */
#de-scroll-bar{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--de-secondary),var(--de-accent));width:0%;z-index:100001;transition:width .1s linear;pointer-events:none;}
/* ---- BACK TO TOP ---------------------------------------- */
#de-back-top{position:fixed;bottom:28px;right:28px;width:44px;height:44px;background:var(--de-secondary);border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:9990;opacity:0;transform:translateY(16px);transition:opacity .3s,transform .3s;box-shadow:0 8px 24px rgba(192,57,43,.4);}
#de-back-top.de-visible{opacity:1;transform:translateY(0);}#de-back-top:hover{transform:translateY(-4px) scale(1.08);}#de-back-top svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;}
/* ---- LINK HOVER UNDERLINE SWEEP -------------------------- */
.de-link{position:relative;text-decoration:none;color:inherit;}.de-link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1.5px;background:var(--de-secondary);transition:width .3s ease;}.de-link:hover::after{width:100%;}
/* ---- ICON BOUNCE ON HOVER -------------------------------- */
.de-icon-bounce{display:inline-block;transition:transform .25s cubic-bezier(.34,1.56,.64,1);}.de-icon-bounce:hover,.de-lift:hover .de-icon-bounce,.de-tilt:hover .de-icon-bounce{transform:scale(1.2) rotate(-6deg);}
/* ---- TICKER / MARQUEE ------------------------------------ */
.de-ticker-wrap{overflow:hidden;white-space:nowrap;background:rgba(192,57,43,.08);border-top:1px solid rgba(192,57,43,.18);border-bottom:1px solid rgba(192,57,43,.18);padding:12px 0;}
.de-ticker-track{display:inline-flex;animation:deTicker 38s linear infinite;}.de-ticker-wrap:hover .de-ticker-track{animation-play-state:paused;}
.de-ticker-item{display:inline-flex;align-items:center;gap:10px;padding:0 36px;font-size:.82rem;font-weight:500;color:rgba(240,240,240,.85);}
.de-ticker-sep{color:var(--de-secondary);margin-left:6px;}
@keyframes deTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* ---- ENTRANCE KEYFRAMES ---------------------------------- */
@keyframes deFadeUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes deFadeIn{from{opacity:0}to{opacity:1}}
@keyframes deScaleIn{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
@keyframes deSlideLeft{from{opacity:0;transform:translateX(-48px)}to{opacity:1;transform:none}}
@keyframes deSlideRight{from{opacity:0;transform:translateX(48px)}to{opacity:1;transform:none}}
@keyframes deNodePop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
.de-anim-fade-up{animation:deFadeUp .7s ease both;}.de-anim-fade-in{animation:deFadeIn .7s ease both;}.de-anim-scale{animation:deScaleIn .6s ease both;}
/* ---- CANVAS OVERLAY (particle bg on hero/banner sections) - */
.de-canvas-bg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.45;z-index:0;}
/* ---- SECTION TAG LABEL ----------------------------------- */
.de-tag{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--de-secondary);display:block;margin-bottom:10px;}
/* ---- BODY: hide default cursor on desktop when JS loads -- */
body.de-custom-cursor,body.de-custom-cursor *{cursor:none!important;}
/* ---- MOBILE: skip expensive effects --------------------- */
@media(max-width:768px){.de-tilt{transform:none!important;}}
/* ---- REDUCED MOTION: respect user preference ------------ */
@media(prefers-reduced-motion:reduce){.de-reveal,.de-reveal-left,.de-reveal-right,.de-reveal-scale{opacity:1!important;transform:none!important;transition:none!important;}.de-orb,.de-loader-fill,.de-ticker-track,.de-btn-glow{animation:none!important;}}
