body{margin:0;padding:0;background-color:#18181b;color:#fff;touch-action:manipulation}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .5s ease-out forwards}@keyframes pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.animate-pop{animation:pop .3s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes float{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-3px)}}.animate-float{animation:float 3s ease-in-out infinite}@keyframes key-press{0%{transform:scale(1)}50%{transform:scale(.92)}to{transform:scale(1)}}.key-bounce:active{animation:key-press .15s ease-out}.key-glow{transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.key-glow:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}@keyframes cell-flip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}to{transform:rotateX(0)}}.animate-flip{animation:cell-flip .5s ease-in-out}@keyframes pulse-subtle{0%,to{box-shadow:0 0 #6aaa6466}50%{box-shadow:0 0 0 4px #6aaa6400}}.pulse-green{animation:pulse-subtle 2s infinite}@keyframes confetti-fall{0%{top:-10px;opacity:1}to{top:100vh;opacity:0}}@keyframes confetti-shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:100}.confetti{position:absolute;top:-10px;animation:confetti-fall linear forwards}@keyframes win-glow{0%,to{box-shadow:0 0 20px #6aaa644d}50%{box-shadow:0 0 40px #6aaa6499,0 0 60px #6aaa644d}}.win-glow{animation:win-glow 1.5s ease-in-out infinite}@keyframes bounce-in{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}70%{transform:scale(.95)}to{transform:scale(1);opacity:1}}.animate-bounce-in{animation:bounce-in .5s cubic-bezier(.68,-.55,.265,1.55) forwards}@keyframes emoji-float{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}to{transform:translateY(-100px) rotate(20deg) scale(1.5);opacity:0}}.emoji-celebrate{animation:emoji-float 1s ease-out forwards}@keyframes stamp-slam{0%{transform:scale(3) rotate(-15deg);opacity:0}60%{transform:scale(1.1) rotate(2deg);opacity:1}80%{transform:scale(.95) rotate(-1deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes stamp-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes stamp-flash{0%,to{opacity:0}50%{opacity:.3}}.animate-stamp{animation:stamp-slam .4s cubic-bezier(.36,.07,.19,.97) forwards}.animate-stamp-shake{animation:stamp-shake .3s ease-out .4s}.stamp-flash{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;opacity:0;animation:stamp-flash .3s ease-out .3s;pointer-events:none;z-index:200}@keyframes text-shrink{0%{transform:scale(1.2)}to{transform:scale(1)}}.animate-text-shrink{animation:text-shrink .5s cubic-bezier(.34,1.56,.64,1) forwards}.stamp-grade{font-family:Impact,Arial Black,sans-serif;text-shadow:4px 4px 0 rgba(0,0,0,.2);letter-spacing:-.05em}@keyframes energy-spiral-move{0%{transform:rotate(var(--rotation)) translate(var(--start-distance)) scale(0);opacity:0}10%{opacity:1;transform:rotate(var(--rotation)) translate(var(--start-distance)) scale(1)}90%{opacity:.8}to{transform:rotate(calc(var(--rotation) + 360deg)) translate(0) scale(.1);opacity:0}}@keyframes energy-burst{0%{transform:scale(0);opacity:0;box-shadow:0 0 #6aaa64cc}50%{transform:scale(1.5);opacity:1;box-shadow:0 0 100px 50px #6aaa6466}to{transform:scale(2);opacity:0}}.energy-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:150;display:flex;align-items:center;justify-content:center;overflow:hidden}.energy-beam{position:absolute;width:2px;height:60px;background:linear-gradient(to top,transparent,var(--color),white,var(--color),transparent);border-radius:100%/20%;filter:blur(1px);opacity:0;animation:energy-spiral-move 1.5s cubic-bezier(.4,0,.2,1) forwards}.energy-burst{position:absolute;width:100px;height:100px;background:radial-gradient(circle,white,var(--color),transparent 70%);border-radius:50%;animation:energy-burst .8s ease-out 1.2s forwards;z-index:160}@keyframes modal-expand{0%{transform:scale(.1);opacity:0}60%{transform:scale(1.05);opacity:1}to{transform:scale(1);opacity:1}}@keyframes tile-flip-reveal{0%{transform:perspective(400px) rotateX(0);opacity:1}to{transform:perspective(400px) rotateX(-90deg);opacity:0}}.grid-overlay{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:100;display:grid;grid-template-columns:repeat(var(--cols),1fr);grid-template-rows:repeat(var(--rows),1fr);pointer-events:none}.grid-tile{width:100%;height:100%;background-color:#6aaa64;animation:tile-flip-reveal .8s ease-in forwards;box-shadow:0 0 1px #6aaa64}@keyframes shard-fly-in{0%{transform:translate(var(--x),var(--y)) rotate(var(--r)) scale(.5);opacity:0}30%{opacity:1}to{transform:translate(0) rotate(0) scale(1);opacity:1}}.jigsaw-piece-wrapper{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100}.jigsaw-shard{position:absolute;top:0;right:0;bottom:0;left:0;animation:shard-fly-in 1.2s cubic-bezier(.19,1,.22,1) forwards;filter:drop-shadow(0 10px 15px rgba(0,0,0,.3))}.animate-expand{animation:modal-expand .6s cubic-bezier(.34,1.56,.64,1) 1.5s forwards}
