@keyframes kp-enter{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:none}}@keyframes kp-fade{0%{opacity:0}}@keyframes kp-shimmer{0%{background-position:150%}to{background-position:-50%}}@keyframes kp-caret{0%,45%{opacity:1}55%,to{opacity:0}}@keyframes kp-spin{to{transform:rotate(360deg)}}@keyframes kp-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}@keyframes kp-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes kp-marquee{to{transform:translate(-50%)}}@keyframes kp-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.kp-progress{transform-origin:0;animation:kp-progress var(--kp-duration,3s) linear both}.kp-enter{animation:.32s cubic-bezier(.2,.9,.3,1.15) both kp-enter}.kp-fade{animation:.6s ease-out both kp-fade}.kp-pop{animation:.28s cubic-bezier(.2,.9,.3,1.3) both kp-pop}.kp-shimmer{background:linear-gradient(90deg, currentColor 0%, currentColor 40%, color-mix(in srgb, currentColor 25%, transparent) 50%, currentColor 60%, currentColor 100%) 0 0 / 250% 100%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;animation:1.8s linear infinite kp-shimmer}.kp-caret{animation:1s step-end infinite kp-caret}.kp-spin{animation:.8s linear infinite kp-spin}.kp-float{animation:6s ease-in-out infinite kp-float}.kp-marquee{animation:40s linear infinite kp-marquee}@keyframes kp-bob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-4%)rotate(-2deg)}}@keyframes kp-blink{0%,44%,48%,to{transform:scaleY(1)}46%{transform:scaleY(.1)}}@keyframes kp-look{0%,30%{transform:translate(0)}36%,60%{transform:translate(3%)}66%,to{transform:translate(0)}}@keyframes kp-dash{0%,to{opacity:.35;transform:scale(.92)}20%,40%{opacity:1;transform:none}}.kp-mascot-body{animation:4.2s ease-in-out infinite kp-bob}.kp-mascot-look{animation:7s ease-in-out infinite kp-look}.kp-mascot-eyes{transform-origin:58% 47%;animation:5s ease-in-out infinite kp-blink}.kp-mascot-dash{transform-origin:80% 20%;animation:2.4s ease-in-out infinite kp-dash}.kp-chat{--chat-bg:#fcfcfc;--chat-sidebar:#f9f9f9;--chat-text:#0d0d0d;--chat-muted:#8f8f8f;--chat-soft:#5d5d5d;--chat-line:#00000014;--chat-hover:#0000000d;--chat-bubble:#e8f3fe;--chat-bubble-text:#0c274a;--chat-composer:#fff;--chat-send:#2c67c5;--chat-composer-shadow:0 0 0 1px #0000000a, 0 2px 8px #0000000a, 0 4px 80px 8px #00000006;--chat-pill-shadow:0 0 0 1px #0000000d, 0 4px 16px #0000000d;background:var(--chat-bg);color:var(--chat-text)}.dark .kp-chat{--chat-bg:#212121;--chat-sidebar:#181818;--chat-text:#ececec;--chat-muted:#8f8f8f;--chat-soft:#b4b4b4;--chat-line:#ffffff14;--chat-hover:#ffffff0f;--chat-bubble:#303030;--chat-bubble-text:#ececec;--chat-composer:#303030;--chat-send:#3b7ae0;--chat-composer-shadow:0 0 0 1px #ffffff0f, 0 2px 8px #0003;--chat-pill-shadow:0 0 0 1px #ffffff14, 0 4px 16px #0003}@media (prefers-reduced-motion:reduce){.kp-enter,.kp-fade,.kp-pop,.kp-shimmer,.kp-caret,.kp-spin,.kp-float,.kp-marquee,.kp-progress,.kp-mascot-body,.kp-mascot-look,.kp-mascot-eyes,.kp-mascot-dash{animation:none}}.kp-prose{color:color-mix(in srgb, var(--foreground) 88%, transparent);font-size:1.125rem;line-height:1.85}.kp-prose>*+*{margin-top:1.25em}.kp-prose :where(h2,h3,h4){color:var(--foreground);font-family:var(--font-heading);letter-spacing:-.02em;font-weight:600;line-height:1.2}.kp-prose h2{margin-top:2.4em;font-size:2rem}.kp-prose h3{margin-top:1.8em;font-size:1.35rem}.kp-prose :where(strong,b){color:var(--foreground);font-weight:600}.kp-prose a{color:var(--brand);text-underline-offset:3px;text-decoration:underline}.kp-prose :where(ul,ol){padding-left:1.4em}.kp-prose ul{list-style:outside}.kp-prose ol{list-style:decimal}.kp-prose li+li{margin-top:.4em}.kp-prose li::marker{color:var(--brand)}.kp-prose blockquote{border-left:3px solid var(--brand);color:var(--foreground);padding-left:1.1em;font-style:italic}.kp-prose img{border:1px solid var(--border);border-radius:1.5rem;width:100%}.kp-prose code{background:var(--muted);color:var(--foreground);border-radius:.375rem;padding:.15em .4em;font-size:.9em}.kp-prose pre{background:var(--muted);border-radius:1rem;padding:1em 1.2em;overflow-x:auto}.kp-prose pre code{background:0 0;padding:0}.kp-prose hr{border-color:var(--border);margin-block:2.5em}
