@keyframes portalEntrance{0%{opacity:0;transform:scale(0)rotate(0)}25%{opacity:.5;transform:scale(.5)rotate(180deg)}50%{opacity:1;transform:scale(1.2)rotate(360deg)}75%{opacity:1;transform:scale(.9)rotate(540deg)}to{opacity:1;transform:scale(1)rotate(720deg)}}.portal-entrance{animation:2s ease-out forwards portalEntrance}@keyframes portalRing{0%{opacity:0;border-width:2px;transform:scale(.8)}50%{opacity:1;border-width:4px;transform:scale(1.1)}to{opacity:.8;border-width:2px;transform:scale(1)}}.portal-ring{animation:2s ease-out forwards portalRing}@keyframes particleFloat{0%{opacity:0;transform:translateY(0)translate(0)rotate(0)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(-100vh)translate(100px)rotate(360deg)}}.particle-float{animation:15s linear infinite particleFloat}@keyframes runeGlow{0%,to{text-shadow:0 0 10px #8b5cf680;opacity:.3}50%{text-shadow:0 0 30px #8b5cf6;opacity:.7}}.rune-glow{animation:3s ease-in-out infinite runeGlow}@keyframes magicTrail{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(0)}}.magic-trail{animation:.5s ease-out forwards magicTrail}@keyframes sparkleBurst{0%{opacity:0;transform:scale(0)rotate(0)}50%{opacity:1;transform:scale(1)rotate(180deg)}to{opacity:0;transform:scale(0)rotate(360deg)}}.sparkle-burst{animation:.8s ease-out forwards sparkleBurst}@keyframes textReveal{0%{clip-path:polygon(0 0,0 0,0 100%,0 100%)}to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}}.text-reveal{animation:1s ease-out forwards textReveal}@keyframes lineDraw{0%{stroke-dashoffset:1000px}to{stroke-dashoffset:0}}.line-draw{stroke-dasharray:1000;animation:2s ease-out forwards lineDraw}@keyframes morph{0%,to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}50%{border-radius:30% 60% 70% 40%/50% 60% 30%}}.morph{animation:8s ease-in-out infinite morph}@keyframes wave{0%,to{transform:translateY(0)}25%{transform:translateY(-5px)}75%{transform:translateY(5px)}}.wave{animation:2s ease-in-out infinite wave}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.bounce{animation:1s ease-in-out infinite bounce}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.rotate{animation:10s linear infinite rotate}@keyframes scalePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.scale-pulse{animation:2s ease-in-out infinite scalePulse}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:.5s ease-out forwards fadeIn}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fade-out{animation:.5s ease-in forwards fadeOut}@keyframes slideInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}.slide-in-left{animation:.6s ease-out forwards slideInLeft}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.slide-in-right{animation:.6s ease-out forwards slideInRight}@keyframes slideInTop{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.slide-in-top{animation:.6s ease-out forwards slideInTop}@keyframes slideInBottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.slide-in-bottom{animation:.6s ease-out forwards slideInBottom}@keyframes zoomIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.zoom-in{animation:.5s ease-out forwards zoomIn}@keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}.zoom-out{animation:.5s ease-in forwards zoomOut}@keyframes flip{0%{transform:perspective(400px)rotateY(0)}to{transform:perspective(400px)rotateY(360deg)}}.flip{animation:1s ease-in-out forwards flip}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.shake{animation:.8s ease-in-out shake}@keyframes jello{0%,to{transform:scale(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}}.jello{animation:1s ease-in-out jello}@keyframes heartbeat{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}.heartbeat{animation:1.5s ease-in-out infinite heartbeat}@keyframes typing{0%{width:0}to{width:100%}}.typing{white-space:nowrap;animation:3s steps(40,end) typing;overflow:hidden}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.blink{animation:1s step-end infinite blink}@keyframes glitch{0%{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}80%{transform:translate(2px,-2px)}to{transform:translate(0)}}.glitch{animation:.3s ease-in-out infinite glitch}@keyframes neonFlicker{0%,19%,21%,23%,25%,54%,56%,to{text-shadow:0 0 4px #fff,0 0 11px #fff,0 0 19px #fff,0 0 40px var(--primary-500),0 0 80px var(--primary-500),0 0 90px var(--primary-500),0 0 100px var(--primary-500),0 0 150px var(--primary-500)}20%,24%,55%{text-shadow:none}}.neon-flicker{animation:2s infinite neonFlicker}@keyframes aurora{0%{background-position:50%,50%}to{background-position:350%,350%}}.aurora{background:linear-gradient(115deg,#0000 40%,#8b5cf666 45%,#0ea5e966 50%,#f59e0b66 55%,#0000 60%) 0 0/200% 200%;animation:8s linear infinite aurora}.gpu-accelerated{will-change:transform,opacity;transform:translateZ(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:768px){.particle-float{animation-duration:20s}.rune-glow{animation-duration:4s}.portal-entrance{animation-duration:1.5s}}
.glow-sm{box-shadow:0 0 10px #8b5cf666}.glow-md{box-shadow:0 0 20px #8b5cf680}.glow-lg{box-shadow:0 0 40px #8b5cf699}.glow-xl{box-shadow:0 0 60px #8b5cf6b3}.glow-primary-sm{box-shadow:0 0 10px #8b5cf666}.glow-primary-md{box-shadow:0 0 20px #8b5cf680}.glow-primary-lg{box-shadow:0 0 40px #8b5cf699}.glow-secondary-sm{box-shadow:0 0 10px #0ea5e966}.glow-secondary-md{box-shadow:0 0 20px #0ea5e980}.glow-secondary-lg{box-shadow:0 0 40px #0ea5e999}.glow-accent-sm{box-shadow:0 0 10px #f59e0b66}.glow-accent-md{box-shadow:0 0 20px #f59e0b80}.glow-accent-lg{box-shadow:0 0 40px #f59e0b99}.text-glow-sm{text-shadow:0 0 10px #8b5cf699}.text-glow-md{text-shadow:0 0 20px #8b5cf6cc}.text-glow-lg{text-shadow:0 0 30px #8b5cf6}.text-glow-primary{text-shadow:0 0 20px #8b5cf6cc}.text-glow-secondary{text-shadow:0 0 20px #0ea5e9cc}.text-glow-accent{text-shadow:0 0 20px #f59e0bcc}.gradient-primary{background:linear-gradient(135deg,var(--primary-500),var(--primary-700))}.gradient-secondary{background:linear-gradient(135deg,var(--secondary-500),var(--secondary-700))}.gradient-accent{background:linear-gradient(135deg,var(--accent-500),var(--accent-700))}.gradient-magic{background:linear-gradient(135deg,var(--primary-500),var(--secondary-500),var(--accent-500))}.gradient-aurora{background:linear-gradient(45deg,var(--primary-500),var(--secondary-500),var(--accent-500),var(--primary-500));background-size:400% 400%;animation:8s infinite auroraShift}@keyframes auroraShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.glass{-webkit-backdrop-filter:blur(10px);background:#12121ab3;border:1px solid #8b5cf633}.glass-light{-webkit-backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3}.glass-dark{-webkit-backdrop-filter:blur(10px);background:#0a0a0fcc;border:1px solid #8b5cf64d}.glass-primary{-webkit-backdrop-filter:blur(10px);background:#8b5cf61a;border:1px solid #8b5cf64d}.particle-container{position:relative;overflow:hidden}.particle{pointer-events:none;border-radius:50%;position:absolute}.particle-primary{background:var(--primary-400);box-shadow:0 0 10px var(--primary-400)}.particle-secondary{background:var(--secondary-400);box-shadow:0 0 10px var(--secondary-400)}.particle-accent{background:var(--accent-400);box-shadow:0 0 10px var(--accent-400)}.rune{font-family:var(--font-runes);display:inline-block}.rune-glow{text-shadow:0 0 10px #8b5cf6cc}.rune-pulse{animation:2s ease-in-out infinite runePulse}@keyframes runePulse{0%,to{opacity:.5;text-shadow:0 0 10px #8b5cf680}50%{opacity:1;text-shadow:0 0 30px #8b5cf6}}.border-glow{border:1px solid var(--primary-500);box-shadow:0 0 10px #8b5cf64d,inset 0 0 10px #8b5cf61a}.border-glow-secondary{border:1px solid var(--secondary-500);box-shadow:0 0 10px #0ea5e94d,inset 0 0 10px #0ea5e91a}.border-glow-accent{border:1px solid var(--accent-500);box-shadow:0 0 10px #f59e0b4d,inset 0 0 10px #f59e0b1a}.card{background:var(--background-medium);border:1px solid #8b5cf633;border-radius:16px;transition:all .3s}.card:hover{border-color:var(--primary-500);transform:translateY(-5px);box-shadow:0 0 30px #8b5cf666}.card-glass{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#12121ab3;border:1px solid #8b5cf633;border-radius:16px;transition:all .3s}.card-glass:hover{border-color:var(--primary-500);transform:translateY(-5px);box-shadow:0 0 30px #8b5cf666}.btn-magic{background:linear-gradient(135deg,var(--primary-600),var(--primary-700));color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px 24px;transition:all .3s;position:relative;overflow:hidden}.btn-magic:before{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.btn-magic:hover:before{left:100%}.btn-magic:hover{transform:translateY(-2px);box-shadow:0 0 30px #8b5cf699}.btn-outline{border:1px solid var(--primary-500);color:var(--primary-400);cursor:pointer;background:0 0;border-radius:8px;padding:12px 24px;transition:all .3s}.btn-outline:hover{background:var(--primary-600);color:#fff;box-shadow:0 0 30px #8b5cf699}.input-magic{background:var(--background-light);color:var(--text-primary);border:1px solid #8b5cf64d;border-radius:8px;padding:12px 16px;transition:all .3s}.input-magic:focus{border-color:var(--primary-500);outline:none;box-shadow:0 0 20px #8b5cf64d}.input-magic::placeholder{color:var(--text-muted)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--background-medium);border-radius:4px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--primary-500),var(--secondary-500));border-radius:4px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--primary-400),var(--secondary-400))}::selection{background:var(--primary-600);color:#fff}::selection{background:var(--primary-600);color:#fff}.focus-ring:focus{outline:none;box-shadow:0 0 0 3px #8b5cf680}.hover-lift{transition:transform .3s}.hover-lift:hover{transform:translateY(-5px)}.hover-scale{transition:transform .3s}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow .3s}.hover-glow:hover{box-shadow:0 0 30px #8b5cf699}.shimmer{position:relative;overflow:hidden}.shimmer:after{content:"";background:linear-gradient(90deg,#0000,#ffffff1a,#0000);width:50%;height:100%;animation:2s infinite shimmer;position:absolute;top:0;left:-100%}@keyframes shimmer{0%{left:-100%}to{left:200%}}.noise{position:relative}.noise:before{content:"";opacity:.03;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");width:100%;height:100%;position:absolute;top:0;left:0}.vignette{position:relative}.vignette:after{content:"";pointer-events:none;background:radial-gradient(circle,#0000 50%,#00000080 100%);width:100%;height:100%;position:absolute;top:0;left:0}.blur-sm{-webkit-backdrop-filter:blur(4px)}.blur-md{-webkit-backdrop-filter:blur(8px)}.blur-lg{-webkit-backdrop-filter:blur(16px)}.perspective-1000{perspective:1000px}.preserve-3d{transform-style:preserve-3d}.reflection{-webkit-box-reflect:below 0px linear-gradient(transparent,#0000004d)}.clip-polygon-hexagon{clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%)}.clip-polygon-star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.clip-polygon-circle{clip-path:circle(50%)}.gpu-accelerated{will-change:transform,opacity;transform:translateZ(0)}.force-gpu{transform:translate(0,0)}@media (prefers-reduced-motion:reduce){.shimmer:after,.rune-pulse,.gradient-aurora{animation:none!important}.hover-lift,.hover-scale,.hover-glow,.card:hover,.card-glass:hover,.btn-magic:hover{transform:none!important}}
