/* Stagger delays */
.delay-1 { transition-delay: 0.1s !important; }
.delay-2 { transition-delay: 0.2s !important; }
.delay-3 { transition-delay: 0.3s !important; }
.delay-4 { transition-delay: 0.4s !important; }
.delay-5 { transition-delay: 0.5s !important; }
.delay-6 { transition-delay: 0.6s !important; }

/* Page loader */
#page-loader { position:fixed; inset:0; background:var(--nav-bg); z-index:99999; display:flex; align-items:center; justify-content:center; transition:opacity 0.5s ease; animation:loader-force-hide 0s ease 4s forwards; }
#page-loader.hidden { opacity:0; pointer-events:none; }
@keyframes loader-force-hide { to { opacity:0; pointer-events:none; visibility:hidden; } }
.loader-inner { text-align:center; }
.loader-logo { height:80px; animation:loader-pulse 1.5s ease-in-out infinite; }
.loader-bar { width:200px; height:2px; background:rgba(200,166,70,0.2); border-radius:2px; margin:20px auto 0; overflow:hidden; }
.loader-bar-fill { height:100%; background:linear-gradient(90deg,#C8A646,#FFE8A3,#C8A646); background-size:200%; animation:loader-slide 1.5s ease infinite; }
@keyframes loader-pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.6;transform:scale(0.95)} }
@keyframes loader-slide { 0%{background-position:0%} 100%{background-position:200%} }

/* Particle sparkle */
.sparkle { position:absolute; pointer-events:none; }
.sparkle::before, .sparkle::after { content:'✦'; position:absolute; color:var(--gold); font-size:0.5rem; animation:sparkle-anim 2s ease infinite; }
.sparkle::after { animation-delay:1s; }
@keyframes sparkle-anim { 0%{opacity:0;transform:scale(0) rotate(0deg)} 50%{opacity:1;transform:scale(1) rotate(180deg)} 100%{opacity:0;transform:scale(0) rotate(360deg)} }

/* Hero text animations */
@keyframes hero-fade-up { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
.hero-animate-1 { animation:hero-fade-up 0.8s ease forwards 0.3s; opacity:0; }
.hero-animate-2 { animation:hero-fade-up 0.8s ease forwards 0.5s; opacity:0; }
.hero-animate-3 { animation:hero-fade-up 0.8s ease forwards 0.7s; opacity:0; }
.hero-animate-4 { animation:hero-fade-up 0.8s ease forwards 0.9s; opacity:0; }
.hero-animate-5 { animation:hero-fade-up 0.8s ease forwards 1.1s; opacity:0; }

/* Ripple on button click */
.btn { position:relative; overflow:hidden; }
.btn::after { content:''; position:absolute; inset:50%; background:rgba(255,255,255,0.3); border-radius:50%; transform:translate(-50%,-50%) scale(0); opacity:0; transition:transform 0.5s, opacity 0.5s; }
.btn:active::after { transform:translate(-50%,-50%) scale(4); opacity:0; transition:0s; }

/* Typing cursor */
.typing-cursor::after { content:'|'; animation:blink 1s step-end infinite; color:var(--gold); }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }

/* Glow pulse on hover */
@keyframes glow-pulse { 0%,100%{box-shadow:0 0 0 0 rgba(200,166,70,0.4)} 50%{box-shadow:0 0 20px 4px rgba(200,166,70,0.2)} }
.glow-on-hover:hover { animation:glow-pulse 2s ease infinite; }

/* Number ticker */
@keyframes count-up { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
.counter-animated { animation:count-up 0.3s ease forwards; }

/* Mandala spin (fast on load, slow after) */
@keyframes mandala-entrance { 0%{opacity:0;transform:rotate(-30deg) scale(0.5)} 100%{opacity:0.06;transform:rotate(0deg) scale(1)} }

/* Gold border trace */
@keyframes border-trace { 0%{stroke-dashoffset:1000} 100%{stroke-dashoffset:0} }
.border-trace-svg path, .border-trace-svg rect { stroke-dasharray:1000; stroke-dashoffset:1000; animation:border-trace 2s ease forwards; }

/* Slide in from bottom (for toasts, modals) */
@keyframes slide-in-bottom { from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }
.slide-in { animation:slide-in-bottom 0.4s ease; }

/* Image zoom */
.img-zoom-wrap { overflow:hidden; border-radius:inherit; }
.img-zoom-wrap img { transition:transform 0.6s cubic-bezier(0.16,1,0.3,1); }
.img-zoom-wrap:hover img { transform:scale(1.08); }

/* Spotlight on card hover */
.spotlight { position:relative; }
.spotlight::before { content:''; position:absolute; inset:0; border-radius:inherit; background:radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(200,166,70,0.08) 0%, transparent 60%); opacity:0; transition:opacity 0.3s; z-index:1; pointer-events:none; }
.spotlight:hover::before { opacity:1; }
