@keyframes gradient-shift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes ripple{0%{transform:translateX(-100%) skewX(12deg)}to{transform:translateX(200%) skewX(12deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 20px hsl(var(--primary)/.3)}50%{box-shadow:0 0 30px hsl(var(--primary)/.5)}}@keyframes glow-pulse-dark{0%,to{box-shadow:0 0 25px hsl(var(--primary)/.4)}50%{box-shadow:0 0 40px hsl(var(--primary)/.6)}}@keyframes border-dance{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-gradient-shift{background-size:200% 200%;animation:gradient-shift 3s ease infinite}.animate-ripple{animation:ripple .6s ease-out}.animate-float{animation:float 3s ease-in-out infinite}.animate-border-dance{background-size:400% 400%;animation:border-dance 3s ease infinite}.media-card{transform-style:preserve-3d;transition:transform .3s ease}.media-card:hover{transform:perspective(1000px) rotateY(5deg) rotateX(-2deg) scale(1.05)}.search-button{position:relative;overflow:hidden}.search-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.search-button:hover:before{left:100%}.search-input-container:focus-within{box-shadow:0 0 0 2px hsl(var(--primary)/.2),0 0 20px hsl(var(--primary)/.1),0 10px 25px rgba(0,0,0,.1)}.dark .search-input-container:focus-within{box-shadow:0 0 0 2px hsl(var(--primary)/.3),0 0 30px hsl(var(--primary)/.2),0 10px 25px rgba(0,0,0,.3)}@keyframes reveal-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-reveal-up{animation:reveal-up .6s ease-out}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);background-size:200px 100%;animation:shimmer 2s infinite}@keyframes success-pulse{0%{transform:scale(1);background-color:rgba(34,197,94,.1)}50%{transform:scale(1.05);background-color:rgba(34,197,94,.2)}to{transform:scale(1);background-color:rgba(34,197,94,.1)}}.animate-success-pulse{animation:success-pulse 1s ease-in-out}.media-card-book{background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(139,92,246,.05) 50%,transparent)}.dark .media-card-book{background:linear-gradient(135deg,rgba(139,92,246,.2),rgba(139,92,246,.1) 50%,transparent)}.media-card-tv{background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.05) 50%,transparent)}.dark .media-card-tv{background:linear-gradient(135deg,rgba(59,130,246,.2),rgba(59,130,246,.1) 50%,transparent)}.media-card-movie{background:linear-gradient(135deg,rgba(249,115,22,.1),rgba(249,115,22,.05) 50%,transparent)}.dark .media-card-movie{background:linear-gradient(135deg,rgba(249,115,22,.2),rgba(249,115,22,.1) 50%,transparent)}@keyframes color-morph{0%{filter:hue-rotate(0deg) saturate(100%)}to{filter:hue-rotate(30deg) saturate(110%)}}.animate-color-morph{animation:color-morph .7s ease-in-out}@keyframes tab-ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}.tab-ripple{position:absolute;border-radius:50%;transform:scale(0);animation:tab-ripple .6s ease-out}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.animate-breathe{animation:breathe 4s ease-in-out infinite}@keyframes focus-glow{0%{box-shadow:0 0 0 0 rgba(var(--primary-rgb),.4),0 0 20px rgba(var(--primary-rgb),.2)}70%{box-shadow:0 0 0 10px rgba(var(--primary-rgb),0),0 0 30px rgba(var(--primary-rgb),.3)}to{box-shadow:0 0 0 0 rgba(var(--primary-rgb),0),0 0 20px rgba(var(--primary-rgb),.2)}}@keyframes book-pages{0%{transform:rotateY(0deg)}to{transform:rotateY(180deg)}}@keyframes tv-signal{0%,to{opacity:.3}50%{opacity:1}}@keyframes film-reel{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.tab-hover-lift{transition:transform .2s ease-out}.tab-hover-lift:hover{transform:translateY(-2px)}.theme-transition{transition:background-color .5s ease-in-out,border-color .5s ease-in-out,box-shadow .5s ease-in-out}@media (max-width:640px){.tab-button:active{transform:scale(.98)}.search-button:active{transform:scale(.95)!important}}