/* Animations and micro-interactions */
body{position:relative;overflow-x:hidden}
body::before,
body::after{content:"";position:fixed;inset:auto;pointer-events:none;filter:blur(80px);opacity:.32;z-index:-1;border-radius:50%}
body::before{width:240px;height:240px;background:rgba(212,164,91,.32);top:12%;left:-40px}
body::after{width:280px;height:280px;background:rgba(32,78,55,.14);right:-60px;bottom:10%}

.page-loader{position:fixed;inset:0;background:rgba(247,245,239,.96);display:flex;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(10px)}
.page-loader.hidden{opacity:0;visibility:hidden;transition:all .5s ease}
.page-loader .spinner{width:38px;height:38px;border-radius:50%;border:3px solid rgba(32,78,55,.12);border-top-color:var(--primary);animation:spin 1s linear infinite}
.page-loader .logo{font-size:.9rem;letter-spacing:.45rem;font-weight:700;color:var(--primary);margin-bottom:1rem;text-align:center}
.page-loader .loader-inner{display:flex;flex-direction:column;align-items:center}
@keyframes spin{to{transform:rotate(360deg)}}

.btn:hover{transform:translateY(-2px)}
.gallery-item img,.gallery-thumb,.feature-card,.contact-panel,.content-panel,.info-card,.test-card,.mini-card{transition:transform .35s ease,box-shadow .35s ease,opacity .5s ease}
.gallery-item:hover img,.gallery-thumb:hover{transform:scale(1.04)}
.feature-card:hover,.info-card:hover,.mini-card:hover,.contact-panel:hover,.content-panel:hover,.test-card:hover{transform:translateY(-6px);box-shadow:0 16px 32px rgba(17,43,33,.08)}
.stats-grid .stat-box{transform:none!important;box-shadow:none!important}
.stats-grid .stat-box:hover{transform:none!important;box-shadow:none!important}

/* reveal animation */
.reveal{opacity:0;transform:translateY(24px) scale(.98);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}
.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.reveal-delay-5{transition-delay:.5s}

/* subtle fade-in used for existing AOS */
[data-aos]{opacity:0;transition:all .7s ease}
[data-aos].aos-animate{opacity:1}

/* optional page hero parallax */
.page-hero,.hero-section{will-change:transform}

@media (prefers-reduced-motion: reduce){
  .reveal,.gallery-item img,.gallery-thumb,.feature-card,.contact-panel,.content-panel,.info-card,.test-card,.mini-card,.btn{transition:none!important;animation:none!important}
  .reveal{opacity:1;transform:none}
  .count-number{transition:none!important;animation:none!important}
}
