.fade-in{opacity:0;-webkit-animation:fadeIn 0.6s ease-in-out forwards;-moz-animation:fadeIn 0.6s ease-in-out forwards;animation:fadeIn 0.6s ease-in-out forwards}@-webkit-keyframes fadeIn{to{opacity:1}}@-moz-keyframes fadeIn{to{opacity:1}}@keyframes fadeIn{to{opacity:1}}.slide-up{-webkit-transform:translateY(20px);-moz-transform:translateY(20px);transform:translateY(20px);opacity:0;-webkit-animation:slideUp 0.8s ease-out forwards;-moz-animation:slideUp 0.8s ease-out forwards;animation:slideUp 0.8s ease-out forwards}@-webkit-keyframes slideUp{to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@-moz-keyframes slideUp{to{-moz-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes slideUp{to{-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0);opacity:1}}.float{-webkit-animation:float 6s ease-in-out infinite;-moz-animation:float 6s ease-in-out infinite;animation:float 6s ease-in-out infinite}@-webkit-keyframes float{0%,100%{-webkit-transform:translateY(0px);transform:translateY(0px)}50%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}}@-moz-keyframes float{0%,100%{-moz-transform:translateY(0px);transform:translateY(0px)}50%{-moz-transform:translateY(-10px);transform:translateY(-10px)}}@keyframes float{0%,100%{-webkit-transform:translateY(0px);-moz-transform:translateY(0px);transform:translateY(0px)}50%{-webkit-transform:translateY(-10px);-moz-transform:translateY(-10px);transform:translateY(-10px)}}.pulse-glow{animation:pulseGlow 2s ease-in-out infinite alternate}@keyframes pulseGlow{from{box-shadow:0 0 20px rgba(107,70,193,0.4)}to{box-shadow:0 0 30px rgba(107,70,193,0.8)}}.shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,0.4),transparent);background-size:200% 100%;animation:shimmer 2s infinite}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.magical-particles::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 25% 25%,rgba(245,158,11,0.8) 2px,transparent 2px),radial-gradient(circle at 75% 75%,rgba(107,70,193,0.6) 1px,transparent 1px),radial-gradient(circle at 50% 10%,rgba(59,130,246,0.4) 1px,transparent 1px);background-size:50px 50px,80px 80px,120px 120px;animation:particleFloat 15s linear infinite;pointer-events:none;z-index:-1}@keyframes particleFloat{0%{transform:translateY(0px) rotate(0deg)}100%{transform:translateY(-100px) rotate(360deg)}}.stagger-1{animation-delay:0.1s}.stagger-2{animation-delay:0.2s}.stagger-3{animation-delay:0.3s}.stagger-4{animation-delay:0.4s}.stagger-5{animation-delay:0.5s}.hover-lift{transition:transform 0.3s ease}.hover-lift:hover{transform:translateY(-5px)}.hover-glow{transition:all 0.3s ease}.hover-glow:hover{box-shadow:0 10px 30px rgba(107,70,193,0.4)}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}.hero::before,.hero::after{animation:none}.hero-title{animation:none;background:var(--accent-color);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}}.feature-card{opacity:0;transform:translateY(30px);animation:featureCardEntrance 0.8s ease-out forwards}.feature-card:nth-child(1){animation-delay:0.1s}.feature-card:nth-child(2){animation-delay:0.2s}.feature-card:nth-child(3){animation-delay:0.3s}.feature-card:nth-child(4){animation-delay:0.4s}@keyframes featureCardEntrance{to{opacity:1;transform:translateY(0)}}.feature-card-magical{position:relative;overflow:hidden}.feature-card-magical::before{content:'';position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,var(--primary-color),var(--secondary-color),var(--accent-color),var(--primary-color));background-size:400% 400%;border-radius:var(--radius-xl);opacity:0;z-index:-1;animation:gradientBorder 3s ease infinite;transition:opacity var(--transition-normal)}.feature-card-magical:hover::before{opacity:0.7}@keyframes gradientBorder{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}.feature-sparkle{position:relative}.feature-sparkle::after{content:'✨';position:absolute;top:1rem;right:1rem;font-size:var(--font-size-lg);opacity:0;transform:scale(0) rotate(0deg);transition:all var(--transition-normal);pointer-events:none}.feature-sparkle:hover::after{opacity:1;transform:scale(1) rotate(180deg)}.feature-icon-bounce{animation:iconBounce 2s ease-in-out infinite}@keyframes iconBounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.feature-text-glow:hover h3{text-shadow:0 0 10px rgba(107,70,193,0.6);transition:text-shadow var(--transition-normal)}.feature-card.fade-in-up{opacity:0;transform:translateY(50px);transition:all 0.8s ease-out}.feature-card.fade-in-up.visible{opacity:1;transform:translateY(0)}.features-grid .feature-card:nth-child(1){transition-delay:0.1s}.features-grid .feature-card:nth-child(2){transition-delay:0.2s}.features-grid .feature-card:nth-child(3){transition-delay:0.3s}.features-grid .feature-card:nth-child(4){transition-delay:0.4s}@media (prefers-reduced-motion:reduce){.feature-card{opacity:1;transform:none;animation:none}.feature-card::before,.feature-card::after{animation:none}.feature-card-magical::before{animation:none}.feature-icon-bounce{animation:none}}@keyframes slideInUp{to{opacity:1;transform:translateY(0)}}.filter-btn{position:relative;overflow:hidden}.filter-btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.1),transparent);transition:left var(--transition-normal)}.filter-btn:hover::before{left:100%}.screenshot-wrapper.loaded .screenshot-image{animation:imageReveal 0.6s ease-out}@keyframes imageReveal{from{opacity:0;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.screenshot-wrapper{position:relative;overflow:hidden}.screenshot-wrapper::after{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent,rgba(107,70,193,0.1),transparent);transform:rotate(45deg);transition:transform var(--transition-slow);pointer-events:none;opacity:0}.screenshot-wrapper:hover::after{opacity:1;transform:rotate(45deg) translate(50%,50%)}.load-more-btn{position:relative;overflow:hidden}.load-more-btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent);transition:left var(--transition-normal)}.load-more-btn:hover::before{left:100%}.screenshot-item:nth-child(1){animation-delay:0.1s}.screenshot-item:nth-child(2){animation-delay:0.2s}.screenshot-item:nth-child(3){animation-delay:0.3s}.screenshot-item:nth-child(4){animation-delay:0.4s}.screenshot-item:nth-child(5){animation-delay:0.5s}.screenshot-item:nth-child(6){animation-delay:0.6s}.screenshots-grid{transition:all var(--transition-normal)}.screenshot-item.filtering-out{animation:fadeOut 0.3s ease-out forwards}.screenshot-item.filtering-in{animation:fadeIn 0.5s ease-out forwards}@keyframes fadeOut{to{opacity:0;transform:scale(0.8)}}@keyframes fadeIn{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.screenshot-item{opacity:1;transform:none;animation:none}.screenshot-wrapper::after{display:none}.filter-btn::before,.load-more-btn::before{display:none}.screenshot-image{transition:none}.screenshot-wrapper:hover .screenshot-image{transform:none}}.video-item:nth-child(1){animation-delay:0.1s}.video-item:nth-child(2){animation-delay:0.3s}.video-item:nth-child(3){animation-delay:0.5s}.video-play-btn{position:relative;overflow:hidden}.video-play-btn::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle,rgba(255,255,255,0.3) 0%,transparent 70%);transform:scale(0);transition:transform var(--transition-fast)}.video-play-btn:hover::before{transform:scale(1)}.video-wrapper{position:relative;overflow:hidden}.video-wrapper::after{content:'';position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,var(--secondary-color),var(--primary-color),var(--accent-color),var(--secondary-color));background-size:400% 400%;border-radius:var(--radius-xl);opacity:0;z-index:-1;animation:gradientBorder 3s ease infinite;transition:opacity var(--transition-normal)}.video-wrapper:hover::after{opacity:0.5}.video-loading .loading-spinner{animation:videoLoadingSpin 1.5s linear infinite}@keyframes videoLoadingSpin{0%{transform:rotate(0deg);border-top-color:var(--accent-color)}25%{border-top-color:var(--primary-color)}50%{transform:rotate(180deg);border-top-color:var(--secondary-color)}75%{border-top-color:var(--primary-color)}100%{transform:rotate(360deg);border-top-color:var(--accent-color)}}.video-overlay{transition:all var(--transition-normal)}.video-wrapper:not(.playing) .video-overlay:hover{background:rgba(0,0,0,0.6)}.video-info{transition:all var(--transition-normal)}.video-wrapper:hover .video-info{background:rgba(255,255,255,0.02)}.video-category{position:relative;overflow:hidden}.video-category::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);transition:left var(--transition-normal)}.video-wrapper:hover .video-category::before{left:100%}.video-wrapper.ended{animation:videoEndPulse 2s ease-in-out}@keyframes videoEndPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}.video-error{animation:videoErrorShake 0.5s ease-in-out}@keyframes videoErrorShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@media (prefers-reduced-motion:reduce){.video-item{opacity:1;transform:none;animation:none}.video-wrapper::after{display:none}.video-play-btn::before{display:none}.video-loading .loading-spinner{animation:none;border-top-color:var(--accent-color)}.video-wrapper.ended{animation:none}.video-error{animation:none}}.lightbox-modal{animation:lightboxFadeIn var(--transition-normal) ease-out}.lightbox-modal.active{animation:lightboxFadeIn var(--transition-normal) ease-out}@keyframes lightboxFadeIn{from{opacity:0;backdrop-filter:blur(0px)}to{opacity:1;backdrop-filter:blur(20px)}}.lightbox-container{animation:lightboxScaleIn var(--transition-normal) ease-out}@keyframes lightboxScaleIn{from{transform:scale(0.8);opacity:0}to{transform:scale(1);opacity:1}}.lightbox-nav{position:relative;overflow:hidden}.lightbox-nav::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle,rgba(245,158,11,0.3) 0%,transparent 70%);transform:scale(0);transition:transform var(--transition-fast)}.lightbox-nav:hover::before{transform:scale(1)}.lightbox-close{position:relative;overflow:hidden}.lightbox-close::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle,rgba(255,255,255,0.2) 0%,transparent 70%);transform:scale(0);transition:transform var(--transition-fast)}.lightbox-close:hover::before{transform:scale(1)}.lightbox-loading{animation:lightboxLoadingPulse 2s ease-in-out infinite}@keyframes lightboxLoadingPulse{0%,100%{background:rgba(0,0,0,0.3)}50%{background:rgba(0,0,0,0.5)}}.lightbox-image{animation:lightboxImageReveal 0.5s ease-out}@keyframes lightboxImageReveal{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}.lightbox-video{animation:lightboxVideoReveal 0.5s ease-out}@keyframes lightboxVideoReveal{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}.lightbox-error{animation:lightboxErrorShake 0.5s ease-in-out}@keyframes lightboxErrorShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}.lightbox-media{transition:all var(--transition-fast)}.lightbox-media.transitioning{opacity:0.5;transform:scale(0.98)}.lightbox-media-container{position:relative}.lightbox-media-container.touch-feedback::after{content:'';position:absolute;top:50%;left:50%;width:100px;height:100px;margin:-50px 0 0 -50px;border-radius:50%;background:rgba(255,255,255,0.1);transform:scale(0);animation:touchRipple 0.6s ease-out;pointer-events:none}@keyframes touchRipple{to{transform:scale(2);opacity:0}}.lightbox-backdrop{animation:backdropBlur var(--transition-normal) ease-out}@keyframes backdropBlur{from{backdrop-filter:blur(0px);background:rgba(0,0,0,0)}to{backdrop-filter:blur(20px);background:rgba(0,0,0,0.95)}}.lightbox-counter{transition:all var(--transition-fast)}.lightbox-counter.updating{transform:scale(1.1);color:var(--accent-color)}@media (prefers-reduced-motion:reduce){.lightbox-modal,.lightbox-container,.lightbox-image,.lightbox-video{animation:none}.lightbox-container{transform:scale(1)}.lightbox-nav::before,.lightbox-close::before{display:none}.lightbox-loading{animation:none;background:rgba(0,0,0,0.5)}.lightbox-error{animation:none}.lightbox-backdrop{animation:none;backdrop-filter:blur(20px)}.lightbox-media-container.touch-feedback::after{display:none}}