@keyframes blob{0%{transform:translate(0)scale(1)}33%{transform:translate(30px,-50px)scale(1.1)}66%{transform:translate(-20px,20px)scale(.9)}to{transform:translate(0)scale(1)}}.animate-blob{animation:7s infinite blob}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}.pattern-grid{background-image:radial-gradient(var(--color-brand-light)1px,transparent 1px);background-size:20px 20px}.lyrics-scroll::-webkit-scrollbar{width:8px}.lyrics-scroll::-webkit-scrollbar-track{background:var(--color-surface);border-radius:8px}.lyrics-scroll::-webkit-scrollbar-thumb{background:var(--color-brand-light);border-radius:8px}.lyrics-scroll::-webkit-scrollbar-thumb:hover{background:var(--color-brand)}
@keyframes blob{0%{transform:translate(0)scale(1)}33%{transform:translate(30px,-50px)scale(1.1)}66%{transform:translate(-20px,20px)scale(.9)}to{transform:translate(0)scale(1)}}.animate-blob{animation:7s infinite blob}.animation-delay-2000{animation-delay:2s}@keyframes float-paper{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-8px)rotate(2deg)}}.animate-float{animation:6s ease-in-out infinite float-paper}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.animate-cursor{animation:1s step-end infinite blink}
@keyframes blob{0%{transform:translate(0)scale(1)}33%{transform:translate(30px,-50px)scale(1.1)}66%{transform:translate(-20px,20px)scale(.9)}to{transform:translate(0)scale(1)}}.animate-blob{animation:7s infinite blob}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}.pattern-grid{background-image:radial-gradient(var(--color-brand-light)1px,transparent 1px);background-size:20px 20px}@keyframes float-note{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-15px)rotate(10deg)}}.animate-float-1{animation:3s ease-in-out infinite float-note}.animate-float-2{animation:4s ease-in-out .5s infinite float-note}.animate-float-3{animation:3.5s ease-in-out 1s infinite float-note}@keyframes pulse-ring{0%{opacity:.5;transform:scale(.8)}to{opacity:0;transform:scale(1.3)}}.animate-pulse-ring{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse-ring}@keyframes shimmer-line{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer-bg{background:linear-gradient(90deg,var(--color-surface)25%,var(--color-surface-card)50%,var(--color-surface)75%);background-size:200% 100%;animation:2s linear infinite shimmer-line}
@keyframes modalPop{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-animate{animation:.4s cubic-bezier(.34,1.56,.64,1) forwards modalPop}@keyframes shake{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.animate-shake-slow{animation:2s ease-in-out infinite shake}.bg-pattern{background-image:radial-gradient(var(--color-brand)1px,transparent 1px);opacity:.05;background-size:20px 20px}
@keyframes blob{0%{transform:translate(0)scale(1)}33%{transform:translate(30px,-50px)scale(1.1)}66%{transform:translate(-20px,20px)scale(.9)}to{transform:translate(0)scale(1)}}.animate-blob{animation:7s infinite blob}.animation-delay-2000{animation-delay:2s}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-process{animation:3s linear infinite spin}@keyframes soundwave{0%,to{height:12px}50%{height:40px}}.wave-bar{animation:1s ease-in-out infinite soundwave}.wave-bar:nth-child(odd){animation-duration:.8s}.wave-bar:nth-child(2n){animation-duration:1.1s}.wave-bar:nth-child(3n){animation-duration:1.3s}.wave-bar:nth-child(4n){animation-duration:.9s}@keyframes pulse-ring{0%{opacity:.5;transform:scale(.8)}to{opacity:0;transform:scale(1.5)}}.animate-pulse-ring{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse-ring}@keyframes progress-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.animate-stripes{background-image:linear-gradient(45deg,#ffffff26 25%,#0000 25% 50%,#ffffff26 50% 75%,#0000 75%,#0000);background-size:1rem 1rem;animation:1s linear infinite progress-stripes}
@keyframes blob{0%{transform:translate(0)scale(1)}33%{transform:translate(30px,-50px)scale(1.1)}66%{transform:translate(-20px,20px)scale(.9)}to{transform:translate(0)scale(1)}}.animate-blob{animation:7s infinite blob}.animation-delay-2000{animation-delay:2s}@keyframes wobble{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.animate-wobble-slow{animation:4s ease-in-out infinite wobble}@keyframes subtle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.98)}}.animate-glitch-breath{animation:3s ease-in-out infinite subtle-pulse}
.font-handwriting{font-family:La Belle Aurore,cursive}.font-cute{font-family:Gaegu,sans-serif}@keyframes shimmer{0%{transform:translate(-150%)}50%{transform:translate(150%)}to{transform:translate(150%)}}.shimmer-element{position:relative;overflow:hidden}.shimmer-element:after{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);animation:3s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}.paper-texture{background-color:#fff;background-image:radial-gradient(var(--color-brand-light).5px,transparent .5px),radial-gradient(var(--color-brand-light).5px,white .5px);background-position:0 0,10px 10px;background-size:20px 20px}textarea::-webkit-scrollbar{width:8px}textarea::-webkit-scrollbar-track{background:var(--color-surface);border-radius:4px}textarea::-webkit-scrollbar-thumb{background:var(--color-brand-light);border-radius:4px}
@keyframes shimmer{0%{transform:translate(-150%)}50%{transform:translate(150%)}to{transform:translate(150%)}}.shimmer-element{position:relative;overflow:hidden}.shimmer-element:after{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);animation:3s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}
@keyframes modalShake{0%{opacity:0;transform:scale(.95)translateY(10px)}40%{opacity:1;transform:scale(1)translateY(0)}50%{transform:translate(-5px)}60%{transform:translate(5px)}70%{transform:translate(-5px)}80%{transform:translate(5px)}to{transform:translate(0)}}.modal-animate-error{animation:.7s cubic-bezier(.34,1.56,.64,1) forwards modalShake}@keyframes pulseRed{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--color-error)40%,transparent)}70%{box-shadow:0 0 0 15px #0000}to{box-shadow:0 0 #0000}}.icon-pulse{animation:2s infinite pulseRed}.striped-bg{background-image:linear-gradient(135deg,var(--color-surface-card)25%,var(--color-surface-subtle)25%,var(--color-surface-subtle)50%,var(--color-surface-card)50%,var(--color-surface-card)75%,var(--color-surface-subtle)75%,var(--color-surface-subtle)100%);background-size:20px 20px}
