@keyframes confetti-fall{0%{transform:translateY(0) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}.animate-confetti{animation:confetti-fall 3s linear forwards}@keyframes grass-grow{0%{height:0;opacity:0}50%{opacity:1}to{opacity:1}}.animate-grass-grow{animation:grass-grow 1s ease-out forwards}@keyframes health-fill{0%{width:0}to{width:100%}}.animate-health-fill{animation:health-fill 1.5s ease-out forwards}@keyframes shake{0%,to{transform:translateX(0)}10%{transform:translateX(-5px) rotate(-1deg)}20%{transform:translateX(5px) rotate(1deg)}30%{transform:translateX(-5px) rotate(-1deg)}40%{transform:translateX(5px) rotate(1deg)}50%{transform:translateX(-5px) rotate(-1deg)}60%{transform:translateX(5px) rotate(1deg)}70%{transform:translateX(-5px) rotate(-1deg)}80%{transform:translateX(5px) rotate(1deg)}90%{transform:translateX(-2px) rotate(0deg)}}.animate-shake{animation:shake .5s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.3);opacity:1}}.animate-breathe{animation:breathe 4s ease-in-out infinite}@keyframes stack-in{0%{transform:translateY(-50px) scale(.8);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.animate-stack-in{animation:stack-in .5s ease-out forwards}@keyframes waveform{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.animate-waveform{animation:waveform .3s ease-in-out infinite;transform-origin:bottom}@keyframes jitter{0%,to{transform:translate(0)}10%{transform:translate(-2px,2px)}20%{transform:translate(2px,-2px)}30%{transform:translate(-2px,-2px)}40%{transform:translate(2px,2px)}50%{transform:translate(-2px)}60%{transform:translate(2px)}70%{transform:translateY(-2px)}80%{transform:translateY(2px)}90%{transform:translate(-2px,2px)}}.animate-jitter{animation:jitter .1s linear infinite}@keyframes spin-slow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-spin-slow{animation:spin-slow 3s linear infinite}@keyframes wiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.animate-wiggle{animation:wiggle .3s ease-in-out infinite}.bg-gradient-radial{background:radial-gradient(circle at center,var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to))}.duration-2000{transition-duration:2s}.dom-shake-hard{animation:shake .1s ease-in-out infinite}.dom-wiggle{animation:wiggle .5s ease-in-out infinite}.dom-spin{animation:spin-slow 1s linear infinite}.dom-blur{filter:blur(4px);transition:filter .5s}.dom-grayscale{filter:grayscale(100%);transition:filter .5s}.dom-invert{filter:invert(100%);transition:filter .5s}.dom-sepia{filter:sepia(100%);transition:filter .5s}.dom-saturate{filter:saturate(300%);transition:filter .5s}.dom-rotate-180{transform:rotate(180deg);transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.dom-rotate-90{transform:rotate(90deg);transition:transform .5s}.dom-skew{transform:skew(20deg);transition:transform .5s}.dom-scale-down{transform:scale(.8);transition:transform .5s}@keyframes glitch-skew{0%{transform:skew(0deg)}20%{transform:skew(-20deg)}40%{transform:skew(10deg)}60%{transform:skew(-5deg)}80%{transform:skew(5deg)}to{transform:skew(0deg)}}.dom-glitch{animation:glitch-skew .3s infinite}@keyframes rainbow-border{0%{border-color:red;box-shadow:0 0 15px red}20%{border-color:orange;box-shadow:0 0 15px orange}40%{border-color:#ff0;box-shadow:0 0 15px #ff0}60%{border-color:green;box-shadow:0 0 15px green}80%{border-color:blue;box-shadow:0 0 15px blue}to{border-color:purple;box-shadow:0 0 15px purple}}.dom-rainbow-border{animation:rainbow-border .5s linear infinite;border-width:3px!important}@keyframes flash-red{0%,to{background-color:transparent}50%{background-color:rgba(255,0,0,.3)}}.dom-flash-red{animation:flash-red .3s ease-in-out infinite}.dom-matrix-style{font-family:Courier New,Courier,monospace!important;color:#0f0!important;background-color:#000!important;border-color:#0f0!important;text-shadow:0 0 5px #0f0}@keyframes scanline{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.dom-scanline{position:relative;overflow:hidden}.dom-scanline:after{content:"";position:absolute;inset:0;width:100%;height:100%;background:linear-gradient(180deg,transparent,rgba(0,255,0,.2),transparent);animation:scanline 2s linear infinite;pointer-events:none;z-index:10}.dom-hidden{opacity:0!important;transition:opacity .5s}