@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes glow{0%{filter:drop-shadow(0 0 2px rgba(255,255,255,.7))}50%{filter:drop-shadow(0 0 8px rgba(255,255,255,.9))}to{filter:drop-shadow(0 0 2px rgba(255,255,255,.7))}}@keyframes collect{0%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.8}to{transform:scale(0);opacity:0}}@keyframes celebrate{0%{transform:scale(1)}25%{transform:scale(1.2) rotate(-5deg)}50%{transform:scale(1.2) rotate(5deg)}75%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes jump{0%{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-100px) rotate(-5deg)}50%{transform:translateY(-120px) rotate(0deg)}75%{transform:translateY(-60px) rotate(5deg)}to{transform:translateY(0) rotate(0deg)}}@keyframes run{0%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-5px) scaleY(.95)}to{transform:translateY(0) scaleY(1)}}@keyframes groundMove{0%{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes cloudFloat{0%{transform:translateX(0)}to{transform:translateX(-200%)}}@keyframes sparkle{0%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}.crystal{animation:float 3s ease-in-out infinite;transform-origin:center}.crystal.easy{filter:drop-shadow(0 0 5px #4CAF50)}.crystal.easy,.crystal.medium{animation:float 3s ease-in-out infinite,glow 2s ease-in-out infinite}.crystal.medium{filter:drop-shadow(0 0 5px #FFC107)}.crystal.hard{animation:float 3s ease-in-out infinite,glow 2s ease-in-out infinite;filter:drop-shadow(0 0 5px #F44336)}.crystal.collecting{animation:collect .5s ease-out forwards}.dino{transition:transform .1s ease-out}.dino.jumping{animation:jump .6s cubic-bezier(.4,0,.2,1)}.dino.running{animation:run .3s linear infinite}.dino.celebrating{animation:celebrate 1s ease-out}.ground{animation:groundMove 20s linear infinite}.cloud{animation:cloudFloat 30s linear infinite}.sparkle{position:absolute;width:4px;height:4px;background:white;border-radius:50%;animation:sparkle 1s ease-out infinite}.challenge-popup{animation:fadeIn .3s ease-out;transform-origin:center}.challenge-popup.closing{animation:fadeOut .3s ease-out forwards}.score-text{transition:transform .2s ease-out}.score-text.increasing{animation:bounce .5s ease-out}.answer-option{transition:transform .15s ease-out}.answer-option:hover{transform:scale(1.05)}.answer-option.correct{animation:celebrate .5s ease-out}.answer-option.wrong{animation:shake .3s ease-in-out}.progress-bar{background:rgba(255,255,255,.1);border-radius:9999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#4CAF50,#81C784);transition:width .3s ease-out;transform-origin:left}@keyframes spin{to{transform:rotate(1turn)}}.loading-spinner{width:2rem;height:2rem;border:3px solid rgba(255,255,255,.1);border-top-color:#4caf50;border-radius:50%;animation:spin 1s linear infinite}.era-transition-overlay{position:absolute;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;animation:fadeIn .5s ease-out}.era-transition-overlay.closing{animation:fadeOut .5s ease-out forwards}.era-title{font-size:3rem;font-weight:700;color:white;text-shadow:0 0 10px rgba(255,255,255,.5);animation:celebrate 1s ease-out}.dark-mode-transition{transition:all .3s ease-out}.achievement-popup{position:fixed;top:20px;right:20px;padding:1rem;border-radius:.5rem;background:rgba(0,0,0,.8);color:white;z-index:50;animation:fadeIn .3s ease-out;transform-origin:top right}.achievement-popup.closing{animation:fadeOut .3s ease-out forwards}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}