@keyframes synonym-reveal{0%{opacity:0;transform:translateY(3px)scale(.995)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes page-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes card-enter{0%{opacity:.7;transform:scale(.98)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes session-first-card{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes card-exit{0%{opacity:1;transform:scale(1)translate(0)translateY(0)}to{opacity:0;transform:scale(.97)translate(-15px)translateY(-4px)}}@keyframes card-exit-rtl{0%{opacity:1;transform:scale(1)translate(0)translateY(0)}to{opacity:0;transform:scale(.97)translate(15px)translateY(-4px)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes indeterminate-bar{0%{transform:translate(-100%)}to{transform:translate(300%)}}@keyframes indeterminate-bar-rtl{0%{transform:translate(100%)}to{transform:translate(-300%)}}@keyframes xp-float{0%{opacity:1;transform:translateY(0)scale(1.1)}15%{opacity:1;transform:translateY(-4px)scale(1)}to{opacity:0;transform:translateY(-40px)scale(1)}}@keyframes counter-pulse{0%{transform:scale(1)}40%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes step-exit-left{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(-12px)scale(.97)}}@keyframes step-enter-right{0%{opacity:0;transform:translate(12px)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes step-exit-right{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(12px)scale(.97)}}@keyframes step-enter-left{0%{opacity:0;transform:translate(-12px)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes chip-pop{0%{transform:scale(1)}45%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes step-content-item{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes completion-enter{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes stat-fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes summary-slide-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes card-exit-forgot{0%{opacity:1;transform:translate(0)scale(1)rotate(0)}60%{opacity:1;transform:translate(-60%)scale(.96)rotate(-6deg)}to{opacity:0;transform:translate(-130%)scale(.92)rotate(-12deg)}}@keyframes card-exit-got_it{0%{opacity:1;transform:translate(0)scale(1)rotate(0)}60%{opacity:1;transform:translate(60%)scale(.96)rotate(6deg)}to{opacity:0;transform:translate(130%)scale(.92)rotate(12deg)}}@keyframes card-exit-skip{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes rating-pulse{0%{transform:scale(1)}50%{transform:scale(.97)}to{transform:scale(1)}}@keyframes correct-option-pop{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--c-accent) 0%, transparent);transform:scale(1)}35%{box-shadow:0 0 0 6px color-mix(in srgb, var(--c-accent) 18%, transparent);transform:scale(1.02)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--c-accent) 0%, transparent);transform:scale(1)}}@keyframes hint-affordance{0%,to{box-shadow:0 0 0 0 hsl(var(--primary) / 0);transform:scale(1)}50%{box-shadow:0 0 0 4px hsl(var(--primary) / .08);transform:scale(1.025)}}@keyframes streak-chip-glow{0%{box-shadow:0 0 0 0 hsl(var(--streak) / .35)}60%{box-shadow:0 0 0 6px hsl(var(--streak) / .12)}to{box-shadow:0 0 0 0 hsl(var(--streak) / 0)}}@keyframes progress-pulse{0%{transform:scaleY(1)}50%{transform:scaleY(1.4)}to{transform:scaleY(1)}}@keyframes cheer-pop{0%{opacity:0;transform:translateY(4px)scale(.85)}20%{opacity:1;transform:translateY(-6px)scale(1.05)}60%{opacity:1;transform:translateY(-14px)scale(1)}to{opacity:0;transform:translateY(-28px)scale(1)}}@keyframes confetti-burst{0%{transform:translate(-50%, -50%) rotate(var(--confetti-angle)) translateX(0) rotate(0deg) scale(1);opacity:1}60%{opacity:1}to{transform:translate(-50%, -50%) rotate(var(--confetti-angle)) translateX(var(--confetti-travel,48px)) rotate(var(--confetti-rotation,180deg)) scale(.3);opacity:0}}@keyframes shimmer-gold{0%{background-position:-200%}to{background-position:200%}}@keyframes gentle-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes progress-shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes progress-shimmer-rtl{0%{transform:translate(100%)}to{transform:translate(-200%)}}@keyframes progress-complete{0%,to{opacity:1}50%{opacity:.75}}@keyframes saved-pop{0%{opacity:0;transform:scale(.6)rotate(-12deg)}50%{transform:scale(1.08)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes check-draw{0%{stroke-dashoffset:16px;opacity:0}20%{opacity:1}to{stroke-dashoffset:0;opacity:1}}@keyframes combo-pulse{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes reveal-late{0%{opacity:0;visibility:hidden}to{opacity:1;visibility:visible}}@keyframes flame-flicker{0%,to{opacity:1;transform:scale(1)}25%{opacity:.85;transform:scale(1.05)rotate(-2deg)}50%{opacity:.95;transform:scale(.97)rotate(1deg)}75%{opacity:.88;transform:scale(1.03)rotate(-1deg)}}@keyframes streak-glow{0%,to{box-shadow:0 0 0 0 hsl(var(--streak) / 0), 0 0 18px 4px hsl(var(--streak) / .18)}50%{box-shadow:0 0 0 0 hsl(var(--streak) / 0), 0 0 28px 8px hsl(var(--streak) / .32)}}@keyframes streak-glow-strong{0%,to{box-shadow:0 0 0 0 hsl(var(--tier-gold) / 0), 0 0 22px 6px hsl(var(--tier-gold) / .3)}50%{box-shadow:0 0 0 0 hsl(var(--tier-gold) / 0), 0 0 36px 12px hsl(var(--tier-gold) / .48)}}@keyframes goal-complete-flash{0%{box-shadow:0 0 0 0 hsl(var(--tier-gold) / .65);transform:scale(1)}50%{box-shadow:0 0 0 14px hsl(var(--tier-gold) / 0);transform:scale(1.04)}to{box-shadow:0 0 0 22px hsl(var(--tier-gold) / 0);transform:scale(1)}}@keyframes progress-card-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes bx-mst-pop{0%{opacity:0;transform:scale(.6)}}@keyframes bx-mst-out{0%{opacity:0;transform:translate(var(--bx-x), var(--bx-y)) scale(0)}}@keyframes bx-kid-star{0%{opacity:0;transform:scale(.2)rotate(-15deg)}65%{opacity:1;transform:scale(1.12)rotate(2deg)}85%{transform:scale(.96)rotate(-1deg)}}@keyframes bx-kid-check{0%{opacity:0;transform:scale(0)}65%{opacity:1;transform:scale(1.15)}85%{transform:scale(.94)}}@keyframes bx-kid-out{0%{opacity:0;transform:translate(var(--bx-x), var(--bx-y)) scale(.2)}65%{opacity:1;transform:translate(calc(var(--bx-x) * -.27), calc(var(--bx-y) * -.27)) scale(1.15)}}:where(.qa [class*=qa-]){transform-box:fill-box;transform-origin:50%}.qa .qa-pop{animation:qa-pop .5s cubic-bezier(.2, .9, .3, 1.25) calc(.3s + var(--i,0) * 70ms) both}.qa .qa-pop.qa-tw{animation:qa-pop .5s cubic-bezier(.2, .9, .3, 1.25) calc(.3s + var(--i,0) * 70ms) both, qa-twinkle 3.6s ease-in-out calc(1.2s + var(--i,0) * .5s) infinite}.qa .qa-twinkle{animation:qa-twinkle 3.6s ease-in-out calc(var(--i,0) * -1.2s) infinite}.qa .qa-step{animation:qa-step .2s ease-out calc(.15s + var(--i,0) * 60ms) both}.qa .qa-flame{transform-origin:50% 100%;animation:.6s cubic-bezier(.2,.8,.3,1) .1s both qa-flame,2.6s ease-in-out 1s infinite qa-flame-flicker}.qa .qa-flag{transform-origin:0;animation:.45s cubic-bezier(.2,.9,.3,1.2) 1.1s both qa-flag}.qa .qa-wave{transform-origin:0;animation:3.2s ease-in-out 1.6s infinite qa-wave}.qa .qa-float{animation:6s ease-in-out infinite qa-float}.qa .qa-loop{animation:.9s cubic-bezier(.2,.8,.2,1) .1s both qa-loop}.qa .qa-tilt{animation:.7s cubic-bezier(.2,.9,.3,1.3) .15s both qa-tilt}.qa .qa-sun{animation:1s cubic-bezier(.2,.8,.3,1) .1s both qa-sun}.qa-day-one .qa-pop{animation-delay:calc(.8s + var(--i,0) * 70ms)}.qa .qa-sprout{transform-origin:30% 100%;animation:.7s cubic-bezier(.2,.9,.3,1.3) 1.1s both qa-sprout}.qa .qa-bob{animation:5.4s ease-in-out infinite qa-bob}.qa .qa-bob.qa-d2{animation-delay:-1.8s}.qa .qa-bob.qa-d4{animation-delay:-3.6s}.qa .qa-sway{transform-origin:50% 0;animation:4.4s ease-in-out infinite qa-sway}.qa .qa-glow{animation:qa-glow 3.6s ease-in-out calc(var(--i,0) * -.6s) infinite}.qa .qa-steam{opacity:0;animation:qa-steam 4.8s linear calc(var(--i,0) * -2.4s) infinite}.qa .qa-step.qa-fast{animation-delay:calc(.1s + var(--i,0) * 25ms)}.qa .qa-fly{animation:.9s cubic-bezier(.2,.8,.3,1) .2s both qa-fly,4s ease-in-out 1.1s infinite qa-fly-hover}.qa .qa-tick{transform-origin:40% 90%;animation:.45s cubic-bezier(.2,.9,.3,1.3) 80ms both qa-tick}.qa-verdict-right .qa-pop{animation-delay:calc(.28s + var(--i,0) * 60ms)}.qa .qa-nudge{animation:.55s cubic-bezier(.2,.8,.2,1) .1s both qa-nudge}.qa-verdict-again .qa-step{animation-delay:calc(.2s + var(--i,0) * 50ms)}@media (prefers-reduced-motion:reduce){.qa *{animation:none!important}}html[data-reduce-motion=true] .qa *{animation:none!important}@media (prefers-reduced-motion:reduce){.qa .qa-steam{opacity:.8}}html[data-reduce-motion=true] .qa .qa-steam{opacity:.8}@keyframes qa-pop{0%{opacity:0;transform:scale(.3)}}@keyframes qa-twinkle{0%,to{opacity:1;transform:none}50%{opacity:.35;transform:scale(.75)}}@keyframes qa-step{0%{opacity:0}}@keyframes qa-flame{0%{opacity:0;transform:translateY(6px)scale(.7)}}@keyframes qa-flame-flicker{0%,to{transform:none}30%{transform:scale(1.04,.96)rotate(-2deg)}65%{transform:scale(.96,1.05)rotate(2deg)}}@keyframes qa-flag{0%{opacity:0;transform:scaleX(0)}}@keyframes qa-wave{0%,to{transform:none}50%{transform:skewY(5deg)scaleX(.94)}}@keyframes qa-float{0%,to{transform:none}50%{transform:translateY(-3px)rotate(-4deg)}}@keyframes qa-loop{0%{opacity:0;transform:rotate(-140deg)}40%{opacity:1}}@keyframes qa-tilt{0%{transform:rotate(-12deg)scale(.92)}}@keyframes qa-sun{0%{opacity:0;transform:translateY(9px)}}@keyframes qa-sprout{0%{opacity:0;transform:scale(.2)}}@keyframes qa-bob{0%,to{transform:none}50%{transform:translateY(-4px)rotate(2.5deg)}}@keyframes qa-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes qa-glow{0%,to{opacity:1}50%{opacity:.3}}@keyframes qa-steam{0%{opacity:0;transform:translateY(5px)}25%{opacity:.9;transform:translate(1.5px)}60%{opacity:.6;transform:translate(-1.5px,-6px)}to{opacity:0;transform:translateY(-12px)}}@keyframes qa-fly{0%{opacity:0;transform:translate(-16px,16px)rotate(-10deg)}}@keyframes qa-fly-hover{0%,to{transform:none}50%{transform:translate(2px,-3px)}}@keyframes qa-tick{0%{opacity:0;transform:scale(.55)rotate(-8deg)}}@keyframes qa-nudge{0%{opacity:0;transform:translate(4px,-3px)rotate(10deg)}}
