.kb-app{height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);overscroll-behavior:none}.kb-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior:contain;overflow-y:auto}.kb-scroll::-webkit-scrollbar{display:none}@keyframes kb-step-in-fwd{0%{opacity:0;transform:translate(36px)}to{opacity:1;transform:none}}@keyframes kb-step-in-back{0%{opacity:0;transform:translate(-36px)}to{opacity:1;transform:none}}@keyframes kb-step-out-fwd{0%{opacity:1;transform:none}to{opacity:0;transform:translate(-36px)}}@keyframes kb-step-out-back{0%{opacity:1;transform:none}to{opacity:0;transform:translate(36px)}}.kb-in-fwd{animation:kb-step-in-fwd .24s var(--ease-out) both}.kb-in-back{animation:kb-step-in-back .24s var(--ease-out) both}.kb-out-fwd{pointer-events:none;animation:.18s ease-out both kb-step-out-fwd}.kb-out-back{pointer-events:none;animation:.18s ease-out both kb-step-out-back}@keyframes kb-ob-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.ob-in{animation:kb-ob-rise .52s var(--ease-out) both;animation-delay:calc(40ms + var(--i,0) * 45ms)}@keyframes kb-pop{0%{transform:scale(.96)}55%{transform:scale(1.02)}to{transform:scale(1)}}.kb-pop{animation:kb-pop .38s var(--ease-out)}@keyframes kb-fade-in{0%{opacity:0}to{opacity:1}}.kb-fade-in{animation:kb-fade-in .24s var(--ease-out) both}@keyframes kb-drop-in{0%{opacity:0;transform:translateY(-18px)scale(.96)}to{opacity:1;transform:none}}@keyframes kb-dot-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.kb-dot-in{transform-box:fill-box;transform-origin:50%;animation:.22s cubic-bezier(.33,1,.68,1) both kb-dot-in}@keyframes kb-hop{0%{transform:translate(0,0)scale(1)}15%{transform:translateY(1px)scale(1.08,.9)}55%{transform:translateY(-11px)scale(.96,1.05)}85%{transform:translate(0,0)scale(1.06,.93)}to{transform:translate(0,0)scale(1)}}.kb-hop{animation:kb-hop .42s var(--ease-out);transform-origin:50% 100%}@keyframes kb-pulse-dot{0%{transform:scale(1)}40%{transform:scale(1.6)}to{transform:scale(1)}}.kb-pulse-dot{animation:kb-pulse-dot .38s var(--ease-out) .3s}@keyframes kb-tilt{0%,to{transform:rotate(0)}35%{transform:rotate(-7deg)}70%{transform:rotate(3deg)}}.kb-tilt{animation:kb-tilt .45s var(--ease-out);transform-origin:50% 90%}@keyframes kb-nod{0%,to{transform:translateY(0)}40%{transform:translateY(3px)rotate(2deg)}}.kb-nod{animation:kb-nod .36s var(--ease-out);transform-origin:50% 90%}@keyframes kb-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}50%{transform:rotate(4deg)}75%{transform:rotate(-2deg)}}.kb-wiggle{animation:kb-wiggle .42s var(--ease-out);transform-origin:50% 80%}@keyframes kb-hop-in{0%{opacity:0;transform:translateY(40px)scale(1)}45%{opacity:1;transform:translateY(-8px)scale(.97,1.04)}70%{transform:translate(0,0)scale(1.06,.94)}to{opacity:1;transform:none}}.kb-hop-in{animation:kb-hop-in .7s var(--ease-out) .15s both;transform-origin:50% 100%}@keyframes kb-ring-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.kb-ring-in{transform-origin:50%;transform-box:fill-box;animation:kb-ring-in .6s var(--ease-out) both}@keyframes kb-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02,.985)}}.kb-breathe{transform-origin:50% 100%;animation:3.2s ease-in-out infinite kb-breathe}@keyframes kb-jump{0%,to{transform:translateY(0)scale(1)}20%{transform:translateY(2px)scale(1.08,.9)}55%{transform:translateY(-26px)scale(.95,1.06)}85%{transform:translateY(0)scale(1.06,.94)}}.kb-jump{animation:kb-jump .62s var(--ease-out);transform-origin:50% 100%}@keyframes kb-spin{to{transform:rotate(360deg)}}.kb-spin{transform-origin:50%;animation:.8s linear infinite kb-spin}@keyframes kb-thinking-dot{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes kb-toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.kb-toast{animation:kb-toast-in .24s var(--ease-out) both}@keyframes kb-confetti{0%{opacity:1;transform:translate(0,0)rotate(0)}to{opacity:0;transform:translate3d(var(--dx), var(--dy), 0) rotate(var(--rot))}}.kb-confetti-bit{animation:1.15s cubic-bezier(.2,.7,.4,1) both kb-confetti;position:absolute}.kb-ruler{scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x;-webkit-overflow-scrolling:touch;cursor:grab;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 18% 82%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 18% 82%,#0000 100%)}.kb-ruler.v{scroll-snap-type:y mandatory;touch-action:pan-y;overflow:hidden auto;-webkit-mask-image:linear-gradient(#0000 0,#000 12% 88%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 12% 88%,#0000 100%)}.kb-ruler::-webkit-scrollbar{display:none}.kb-ruler:focus-visible,.kb-focus:focus-visible{outline:2px solid var(--ketone-500);outline-offset:3px}.kb-snap{scroll-snap-align:center}.kb-hatch{background-color:var(--ketone-50);background-image:repeating-linear-gradient(-45deg, var(--ketone-500) 0, var(--ketone-500) 2.5px, transparent 2.5px, transparent 8.5px)}@media (prefers-reduced-motion:reduce){.kb-in-fwd,.kb-in-back,.ob-in,.kb-toast{animation-name:kb-fade-in}.kb-out-fwd,.kb-out-back{animation:.12s reverse both kb-fade-in}.kb-pop,.kb-hop,.kb-pulse-dot,.kb-tilt,.kb-nod,.kb-wiggle,.kb-breathe,.kb-jump,.kb-confetti-bit{animation:none!important}.kb-hop-in,.kb-ring-in,.kb-dot-in{animation-name:kb-fade-in}.kb-motion{transition-property:opacity,background-color,border-color,color!important}}@keyframes kb-pop-spark{0%{opacity:0;transform:scale(.2)rotate(0)}40%{opacity:1;transform:scale(1.15)rotate(20deg)}to{opacity:0;transform:scale(.8)rotate(45deg)}}@keyframes kb-cheer-in{0%{opacity:0;transform:translateY(200px)}60%{opacity:1;transform:translateY(-10px)}to{opacity:1;transform:none}}@keyframes kb-cheer-out{to{opacity:0;transform:translateY(24px)}}@keyframes kb-word{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){[style*=kb-pop-spark]{opacity:0;animation:none!important}}@keyframes kb-draw{0%{stroke-dashoffset:14px}to{stroke-dashoffset:0}}
