button,.btn,[role=button],a.btn-glow{position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,background-color .3s ease,border-color .3s ease}button:active:not(:disabled),.btn:active:not(:disabled),[role=button]:active:not(:disabled){transform:scale(.97)!important}.ripple-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:inherit;pointer-events:none}.ripple{position:absolute;border-radius:50%;transform:scale(0);animation:ripple-animation .6s linear;background:#ffffff4d}@keyframes ripple-animation{to{transform:scale(4);opacity:0}}.btn-primary-glow:hover{transform:translateY(-3px);box-shadow:0 10px 40px #ff6b6b59,0 5px 20px #ffd93d33}.btn-ghost:hover{transform:translateY(-2px);box-shadow:0 8px 25px #ffffff1a}.control-btn:hover,.icon-btn:hover{transform:scale(1.1)}.glass-card{transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .4s ease,background-color .3s ease,border-color .3s ease}.glass-card:hover{transform:translateY(-6px);box-shadow:0 20px 60px #0000004d,0 0 40px #ff6b6b1a,0 0 80px #ffd93d0d}.glass-card:active{transform:translateY(-2px) scale(.99)}.hover-lift{transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease}.hover-lift:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 25px 50px #00000040,0 0 30px #ff6b6b1a}nav a:not(.btn-glow){position:relative}nav a:not(.btn-glow):after{content:"";position:absolute;bottom:-4px;left:0;width:100%;height:2px;background:linear-gradient(90deg,#ff6b6b,#ffd93d);transform:scaleX(0);transform-origin:right;transition:transform .3s ease}nav a:not(.btn-glow):hover:after{transform:scaleX(1);transform-origin:left}.gallery-tab,.mode-btn{transition:transform .2s ease,background-color .3s ease,box-shadow .3s ease,color .2s ease}.gallery-tab:hover:not(.active),.mode-btn:hover:not(.active){transform:translateY(-2px)}.gallery-tab.active,.mode-btn.active{transform:scale(1.05)}.gallery-item{transition:transform .5s cubic-bezier(.34,1.56,.64,1),box-shadow .4s ease,z-index 0s .5s}.gallery-item:hover{z-index:20;transition:transform .5s cubic-bezier(.34,1.56,.64,1),box-shadow .4s ease,z-index 0s}.gallery-item img{transition:transform .6s cubic-bezier(.34,1.56,.64,1)}.gallery-item:hover img{transform:scale(1.08)}.gallery-overlay{transition:opacity .4s ease,transform .4s ease;transform:translateY(20px)}.gallery-item:hover .gallery-overlay{opacity:1;transform:translateY(0)}.lightbox-nav{transition:transform .3s cubic-bezier(.34,1.56,.64,1),background-color .2s ease,opacity .3s ease;opacity:.7}.lightbox-nav:hover{transform:translateY(-50%) scale(1.15);opacity:1}input[type=text],input[type=email],textarea{transition:border-color .3s ease,box-shadow .3s ease,background-color .3s ease}input[type=text]:focus,input[type=email]:focus,textarea:focus{box-shadow:0 0 0 3px #ff6b6b33,0 0 20px #ff6b6b1a}#char-count,#gratitude-char-count{transition:color .3s ease}.fade-up{opacity:0;transform:translateY(40px);transition:opacity .8s ease,transform .8s cubic-bezier(.34,1.56,.64,1)}.fade-up.visible{opacity:1;transform:translateY(0)}.stagger-1{transition-delay:.1s}.stagger-2{transition-delay:.2s}.stagger-3{transition-delay:.3s}.stagger-4{transition-delay:.4s}.stagger-5{transition-delay:.5s}.stagger-6{transition-delay:.6s}.fade-left{opacity:0;transform:translate(-40px);transition:opacity .8s ease,transform .8s ease}.fade-left.visible{opacity:1;transform:translate(0)}.fade-right{opacity:0;transform:translate(40px);transition:opacity .8s ease,transform .8s ease}.fade-right.visible{opacity:1;transform:translate(0)}.scale-in{opacity:0;transform:scale(.9);transition:opacity .6s ease,transform .6s cubic-bezier(.34,1.56,.64,1)}.scale-in.visible{opacity:1;transform:scale(1)}.heart-btn:hover{animation:heart-pulse .6s ease}@keyframes heart-pulse{0%{transform:scale(1)}25%{transform:scale(1.3)}50%{transform:scale(1)}75%{transform:scale(1.2)}to{transform:scale(1)}}#new-joke-btn svg,.refresh-icon{transition:transform .5s ease}#new-joke-btn:hover svg,.refresh-icon:hover{transform:rotate(180deg)}.arrow-icon{transition:transform .3s ease}a:hover .arrow-icon,button:hover .arrow-icon{transform:translate(4px)}.skeleton{background:linear-gradient(90deg,#ffffff0d,#ffffff1a,#ffffff0d);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:8px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.1);border-top-color:#ff6b6b;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pulse-loading{animation:pulse-load 1.5s ease-in-out infinite}@keyframes pulse-load{0%,to{opacity:.4}50%{opacity:1}}.success-flash{animation:success-flash .6s ease}@keyframes success-flash{0%,to{background-color:inherit}50%{background-color:#6bcb7733}}.error-shake{animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.checkmark{stroke-dasharray:50;stroke-dashoffset:50;animation:checkmark-draw .5s ease forwards}@keyframes checkmark-draw{to{stroke-dashoffset:0}}.float{animation:gentle-float 6s ease-in-out infinite}@keyframes gentle-float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-15px) rotate(2deg)}}.float-delay-1{animation-delay:-1s}.float-delay-2{animation-delay:-2s}.float-delay-3{animation-delay:-3s}.float-delay-4{animation-delay:-4s}.mascot-float:hover{animation-play-state:paused;transform:scale(1.05) rotate(5deg);transition:transform .3s ease}.gradient-text-animated{background:linear-gradient(135deg,#ff6b6b,#ffd93d,#6bcb77,#4d96ff,#c9b1ff);background-size:300% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-shift 8s linear infinite}@keyframes gradient-shift{0%{background-position:0% center}to{background-position:300% center}}.border-gradient-animated{position:relative}.border-gradient-animated:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:linear-gradient(45deg,#ff6b6b,#ffd93d,#6bcb77,#4d96ff,#c9b1ff,#ff6b6b);background-size:400%;border-radius:inherit;z-index:-1;animation:border-rotate 6s linear infinite}@keyframes border-rotate{0%{background-position:0% 50%}to{background-position:400% 50%}}.sparkle{position:relative}.sparkle:before,.sparkle:after{content:"✨";position:absolute;opacity:0;animation:sparkle-appear 2s ease-in-out infinite}.sparkle:before{top:-10px;right:-10px;animation-delay:.5s}.sparkle:after{bottom:-10px;left:-10px}@keyframes sparkle-appear{0%,to{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1)}}.glow-pulse{animation:glow-pulse 2s ease-in-out infinite}@keyframes glow-pulse{0%,to{box-shadow:0 0 20px #ff6b6b4d}50%{box-shadow:0 0 40px #ff6b6b80,0 0 60px #ffd93d4d}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.float,.mascot-float,.gradient-orb{animation:none!important}.fade-up,.fade-left,.fade-right,.scale-in{opacity:1!important;transform:none!important}}
