.cm-press{transition:transform .1s ease-out,background-color .1s ease-out,box-shadow .1s ease-out}.cm-press:active:not(:disabled):not([aria-disabled=true]){transform:translateY(2px)}.cm-spinner{animation:cm-spin .9s linear infinite}.cm-content-enter{animation:cm-content-enter .15s ease-out both}.cm-dialog-enter{animation:cm-dialog-enter .2s cubic-bezier(.2,.8,.2,1) both}.cm-dialog-exit{animation:cm-dialog-exit .14s ease-in both}.cm-sheet-enter{animation:cm-sheet-enter .2s cubic-bezier(.2,.8,.2,1) both}.cm-sheet-exit{animation:cm-sheet-exit .14s ease-in both}.cm-backdrop-enter{animation:cm-fade-in .2s ease-out both}.cm-backdrop-exit{animation:cm-fade-out .14s ease-in both}.cm-image-reveal{transition:opacity .15s ease-out}.cm-success-pop{animation:cm-success-pop .24s cubic-bezier(.2,.8,.2,1) both}dialog.cm-motion-dialog:not([open]):not([data-state=closing]),dialog.cm-motion-dialog[data-state=closed],dialog.cm-motion-sheet:not([open]):not([data-state=closing]),dialog.cm-motion-sheet[data-state=closed]{display:none!important}:where(.cm-motion-dialog){padding:0;border:0;border-radius:28px;color:#111c2d;background:#fff;box-shadow:0 24px 80px rgba(17,28,45,.2);width:min(380px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow-y:auto;position:fixed;inset:0;margin:auto}.cm-motion-dialog.cm-assignment-editor{width:min(672px,calc(100vw - 32px))}.cm-motion-dialog[open]{animation:cm-dialog-enter .2s cubic-bezier(.2,.8,.2,1) both}.cm-motion-dialog::backdrop{background:rgba(17,28,45,.35);animation:cm-fade-in .2s ease-out both}.cm-motion-dialog[data-state=closing]{animation:cm-dialog-exit .14s ease-in both}.cm-motion-dialog[data-state=closing]::backdrop{animation:cm-fade-out .14s ease-in both}:where(.cm-motion-sheet){padding:0;border:0;color:#111c2d;background:#fff;width:min(480px,100vw);max-height:90dvh;margin-top:auto;margin-bottom:0;border-top-left-radius:28px;border-top-right-radius:28px;box-shadow:0 -10px 40px rgba(17,28,45,.15);overflow-y:auto}.cm-motion-sheet[open]{animation:cm-sheet-enter .2s cubic-bezier(.2,.8,.2,1) both}.cm-motion-sheet::backdrop{background:rgba(17,28,45,.35);animation:cm-fade-in .2s ease-out both}.cm-motion-sheet[data-state=closing]{animation:cm-sheet-exit .14s ease-in both}.cm-motion-sheet[data-state=closing]::backdrop{animation:cm-fade-out .14s ease-in both}.cm-confetti-piece{position:absolute;top:-8px;left:var(--cm-x,50%);width:7px;height:11px;border-radius:2px;background:var(--cm-color,#58cc02);pointer-events:none;animation:cm-confetti .85s ease-out var(--cm-delay,0ms) both}@keyframes cm-spin{to{transform:rotate(1turn)}}@keyframes cm-content-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes cm-dialog-enter{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@keyframes cm-dialog-exit{to{opacity:0;transform:translateY(4px) scale(.98)}}@keyframes cm-sheet-enter{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes cm-sheet-exit{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes cm-success-pop{0%{opacity:0;transform:scale(.88)}70%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes cm-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cm-fade-out{to{opacity:0}}@keyframes cm-confetti{0%{opacity:0;transform:translateY(0) rotate(0)}12%{opacity:1}to{opacity:0;transform:translateY(220px) rotate(200deg)}}.cm-heart-pulse{animation:cm-heart-pulse-anim 1.8s ease-in-out infinite}@keyframes cm-heart-pulse-anim{0%,to{transform:scale(1);filter:drop-shadow(0 2px 8px rgba(244,63,94,.28))}50%{transform:scale(1.14);filter:drop-shadow(0 6px 16px rgba(244,63,94,.52))}}.cm-heart-lubdub{animation:cm-heart-lubdub-anim 1.8s ease-in-out infinite;transform-origin:center}@keyframes cm-heart-lubdub-anim{0%{transform:scale(1)}12%{transform:scale(1.24)}24%{transform:scale(1)}36%{transform:scale(1.28)}55%,to{transform:scale(1)}}.cm-heart-wiggle{animation:cm-heart-wiggle-anim 2.2s ease-in-out infinite;transform-origin:bottom center}@keyframes cm-heart-wiggle-anim{0%,65%,to{transform:rotate(0deg) scale(1)}10%{transform:rotate(-14deg) scale(1.12)}20%{transform:rotate(14deg) scale(1.12)}30%{transform:rotate(-8deg) scale(1.06)}40%{transform:rotate(8deg) scale(1.06)}50%{transform:rotate(0deg) scale(1)}}.cm-heart-bounce{animation:cm-heart-bounce-anim 2s ease-in-out infinite}@keyframes cm-heart-bounce-anim{0%,55%,to{transform:translateY(0);filter:drop-shadow(0 1px 3px rgba(255,75,114,.15))}15%{transform:translateY(-5px) scale(1.08);filter:drop-shadow(0 4px 8px rgba(255,75,114,.35))}30%{transform:translateY(1px) scale(.96)}42%{transform:translateY(-2px)}}.cm-heart-glow{animation:cm-heart-glow-anim 2s ease-in-out infinite}@keyframes cm-heart-glow-anim{0%,to{filter:drop-shadow(0 0 1px rgba(255,75,114,.2));opacity:.9}50%{filter:drop-shadow(0 0 10px rgba(255,75,114,.75));opacity:1}}.cm-mascot-float{animation:cm-mascot-float-anim 3s ease-in-out infinite;transform-origin:center}@keyframes cm-mascot-float-anim{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-6px) rotate(1.5deg)}}.cm-mascot-pulse{animation:cm-mascot-pulse-anim 2.4s ease-in-out infinite;transform-origin:center}@keyframes cm-mascot-pulse-anim{0%,to{transform:scale(1);filter:drop-shadow(0 2px 8px rgba(245,158,11,.25))}50%{transform:scale(1.05);filter:drop-shadow(0 6px 16px rgba(245,158,11,.45))}}@media (prefers-reduced-motion:reduce){.cm-backdrop-enter,.cm-backdrop-exit,.cm-content-enter,.cm-dialog-enter,.cm-dialog-exit,.cm-heart-bounce,.cm-heart-glow,.cm-heart-lubdub,.cm-heart-pulse,.cm-heart-wiggle,.cm-mascot-float,.cm-mascot-pulse,.cm-motion-dialog::backdrop,.cm-motion-dialog[data-state=closing],.cm-motion-dialog[data-state=closing]::backdrop,.cm-motion-dialog[open],.cm-motion-sheet::backdrop,.cm-motion-sheet[data-state=closing],.cm-motion-sheet[data-state=closing]::backdrop,.cm-motion-sheet[open],.cm-podium-sway-1,.cm-podium-sway-2,.cm-podium-sway-3,.cm-sheet-enter,.cm-sheet-exit,.cm-success-pop{animation:none!important}.cm-image-reveal,.cm-press{transition:none!important}.cm-press:active:not(:disabled){transform:none!important}.cm-confetti-piece{display:none!important}}.cm-podium-sway-1{animation:cm-podium-sway 2.4s ease-in-out infinite}.cm-podium-sway-2{animation:cm-podium-sway 2.7s ease-in-out .35s infinite}.cm-podium-sway-3{animation:cm-podium-sway 2.5s ease-in-out .7s infinite}@keyframes cm-podium-sway{0%,to{transform:rotate(0deg) translateY(0)}25%{transform:rotate(-7deg) translateY(-1.5px)}75%{transform:rotate(7deg) translateY(-1.5px)}}