@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInDown{from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInDown{from{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes slideInUp{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInLeft{from{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes slideInRight{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.9)}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes rotateIn{from{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:rotate(0)}}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes bounceIn{0%{opacity:0;transform:scale(0.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(0.9)}100%{transform:scale(1)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@keyframes wiggle{0%,100%{transform:rotate(0deg)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes glow{0%,100%{filter:drop-shadow(0 0 10px var(--gold-glow))}50%{filter:drop-shadow(0 0 25px var(--gold-glow))}}@keyframes glowPulse{0%,100%{filter:drop-shadow(0 0 5px var(--gold-primary))}50%{filter:drop-shadow(0 0 20px var(--gold-primary))}}@keyframes gradientShift{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}@keyframes gradientRotate{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}.shimmer{position:relative;overflow:hidden}.shimmer::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0,rgba(255,215,0,0.3) 50%,transparent 100%);animation:shimmer 2s infinite;will-change:transform;transform:translateZ(0)}@keyframes float{0%,100%{transform:translateY(0px)}50%{transform:translateY(-20px)}}@keyframes swing{0%,100%{transform:rotate(0deg)}20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}}@keyframes flipIn{from{transform:perspective(400px) rotateY(90deg);opacity:0}to{transform:perspective(400px) rotateY(0deg);opacity:1}}@keyframes flipOut{from{transform:perspective(400px) rotateY(0deg);opacity:1}to{transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes zoomIn{from{opacity:0;transform:scale(0.3)}to{opacity:1;transform:scale(1)}}@keyframes zoomOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.3)}}@keyframes particleFloat{0%,100%{transform:translateY(100vh) translateX(0);opacity:0}10%,90%{opacity:.6}50%{transform:translateY(-10vh) translateX(50px);opacity:1}}.particles{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.particle{position:absolute;width:3px;height:3px;background:var(--gold-primary);border-radius:50%;opacity:0;animation:particleFloat 15s infinite ease-in-out}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.spinner{width:40px;height:40px;border:4px solid var(--glass-border);border-top-color:var(--gold-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes dotPulse{0%,80%,100%{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.loading-dots{display:flex;gap:.5rem}.loading-dots span{width:8px;height:8px;background:var(--gold-primary);border-radius:50%;animation:dotPulse 1.4s infinite ease-in-out}.loading-dots span:nth-child(1){animation-delay:-0.32s}.loading-dots span:nth-child(2){animation-delay:-0.16s}@keyframes wave{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-15px)}}.wave{display:inline-block;animation:wave 2s infinite}@keyframes typing{from{width:0}to{width:100%}}@keyframes blink{50%{border-color:transparent}}.typing-text{overflow:hidden;border-right:3px solid var(--gold-primary);white-space:nowrap;animation:typing 3.5s steps(40) 1s 1 normal both,blink .75s step-end infinite}@keyframes ripple{0%{transform:scale(0);opacity:1}100%{transform:scale(4);opacity:0}}.ripple-effect{position:absolute;border-radius:50%;background:rgba(255,215,0,0.5);pointer-events:none;animation:ripple .6s ease-out}.animate-fade-in{animation:fadeIn .5s ease-out}.animate-fade-in-down{animation:fadeInDown .8s ease-out}.animate-fade-in-up{animation:fadeInUp .8s ease-out}.animate-scale-in{animation:scaleIn .5s ease-out}.animate-slide-in-left{animation:slideInLeft .5s ease-out}.animate-slide-in-right{animation:slideInRight .5s ease-out}.animate-bounce{animation:bounce 1s infinite}.animate-pulse{animation:pulse 2s infinite}.animate-glow{animation:glow 2s infinite}.animate-float{animation:float 3s infinite ease-in-out}.animate-rotate{animation:rotate 2s linear infinite}.hover-grow{transition:transform var(--transition-base)}.hover-grow:hover{transform:scale(1.05)}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.hover-lift:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.hover-glow{transition:box-shadow var(--transition-base)}.hover-glow:hover{box-shadow:var(--shadow-gold)}.hover-shine{position:relative;overflow:hidden}.hover-shine::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,215,0,0.3),transparent);transition:left .5s ease}.hover-shine:hover::before{left:100%}.parallax{transform-style:preserve-3d}.parallax-layer{transform:translateZ(0);transition:transform .5s ease-out}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}