.prompt-library{padding-top:0;border-bottom:1px solid var(--line)}.prompt-library>p:not(.eyebrow){max-width:780px;margin:25px 0}.prompt-library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:35px}.prompt-card{padding:25px;border:1px solid var(--line);border-radius:7px;background:#fffdf8;display:flex;flex-direction:column;align-items:flex-start}.prompt-card h3{font-size:23px;margin:15px 0}.prompt-card p{font-size:14px;flex:1}.prompt-card .text-link{margin-top:10px}.koru-section{display:grid;grid-template-columns:.7fr 1.3fr;gap:6%;align-items:start;scroll-margin-top:25px}.koru-introduction>p:not(.eyebrow){margin-top:25px}.koru-panel{border:1px solid #cddacb;background:#fffdf8;border-radius:9px;overflow:hidden}.koru-panel-header{display:flex;justify-content:space-between;gap:15px;align-items:center;background:#123e38;color:white;padding:22px 25px}.koru-panel-header strong{font-family:Georgia,serif;font-size:29px;font-style:italic;font-weight:400}.koru-panel-header small{display:block;font-size:11px;color:#d4e4cf}.koru-badge{font-size:8px;letter-spacing:1px;border:1px solid #8aa694;border-radius:20px;padding:6px 9px}.koru-panel>p{font-size:12px;margin:0;padding:17px 25px;border-bottom:1px solid var(--line)}.koru-messages{padding:22px;max-height:520px;overflow-y:auto;display:flex;flex-direction:column;gap:18px}.koru-message{padding:18px;border-radius:7px;background:#edf2e9;max-width:96%;align-self:flex-start}.koru-message strong{font-size:11px;color:var(--teal)}.koru-message p{font-size:14px;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;margin:7px 0 0}.koru-message.user{background:#f5edda;align-self:flex-end}.koru-panel form{border:0;border-top:1px solid var(--line);box-shadow:none;border-radius:0;padding:23px}.koru-panel form>label:first-child{margin-top:0}.koru-panel textarea{font-size:14px}.koru-consent{display:flex;gap:10px;align-items:flex-start;line-height:1.5}.koru-consent input{width:17px;height:17px;margin-top:3px;flex-shrink:0;accent-color:var(--teal)}.koru-consent span{font-size:12px;margin:0}.koru-privacy{font-size:11px;margin:15px 0 0}.koru-panel form>.button{margin-top:18px}.koru-panel .button:disabled{opacity:.55;cursor:not-allowed;transform:none}#koru-feedback{font-size:12px;color:var(--teal);margin:15px 0 0}#use-with-koru{margin-left:18px}.page-prompt-bank .prompt-section{padding-bottom:65px}@media(max-width:850px){.prompt-library-grid{grid-template-columns:repeat(2,1fr)}.koru-section{grid-template-columns:1fr;gap:30px}}@media(max-width:500px){.prompt-library-grid{grid-template-columns:1fr}.koru-panel-header{padding:18px}.koru-panel form,.koru-messages{padding:18px}.koru-message{max-width:100%}.koru-badge{font-size:7px}#use-with-koru{margin-left:0;display:block}}

.koru-introduction h1{font-size:clamp(42px,5vw,72px);line-height:1.05;letter-spacing:-2px;margin:22px 0} @media(min-width:901px) and (max-width:1250px){header{flex-wrap:wrap;gap:20px}header nav{flex-wrap:wrap;justify-content:flex-end;gap:18px}}

.koru-companion{margin:24px 0 30px;text-align:center;max-width:330px}.koru-pet{display:block;background:transparent;border:0;padding:0;margin:0 auto;cursor:pointer;border-radius:45%;width:210px;transform-origin:50% 90%;animation:koru-hello .9s ease-out}.koru-pet img{display:block;width:100%;height:auto}.koru-pet:hover{transform:rotate(-3deg)}.koru-pet:focus-visible{outline:3px solid var(--teal);outline-offset:4px}.koru-pet.greeting{animation:koru-hello .9s ease-out}.koru-companion p{margin:8px 0;font-size:18px;color:var(--teal)}.koru-companion p span{font-size:13px;color:var(--ink)}@keyframes koru-hello{0%,100%{transform:rotate(0)}25%{transform:rotate(-7deg) translateY(-5px)}65%{transform:rotate(6deg) translateY(-3px)}}@media(prefers-reduced-motion:reduce){.koru-pet,.koru-pet.greeting{animation:none}.koru-pet:hover{transform:none}}

.koru-companion{position:relative}.koru-pet[data-state="thinking"],.koru-pet[data-state="processing"]{animation:koru-think 2s ease-in-out infinite;cursor:wait}.koru-companion:has(.koru-pet[data-state="thinking"])::after,.koru-companion:has(.koru-pet[data-state="processing"])::after{content:'•••';position:absolute;top:12px;right:30px;font-size:26px;letter-spacing:5px;color:#28776b;background:#f5edda;border-radius:18px;padding:0 10px;animation:koru-dots 1.5s ease-in-out infinite}.koru-pet[data-state="answered"]{animation:koru-ready .8s ease-out}.koru-pet[data-state="error"],.koru-pet[data-state="guidance"]{transform:rotate(-5deg);animation:none}@keyframes koru-think{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(3deg) translateY(-7px)}}@keyframes koru-ready{0%,100%{transform:translateY(0)}35%{transform:translateY(-17px) rotate(5deg)}65%{transform:translateY(-4px) rotate(-4deg)}}@keyframes koru-dots{0%,100%{opacity:.45}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.koru-pet[data-state],.koru-companion:has(.koru-pet[data-state])::after{animation:none;transform:none}}

.koru-consent[hidden]{display:none}

/* Conversation workspace: only the transcript scrolls. */
.page-meet-koru .koru-section{grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);gap:4%;padding-top:35px;padding-bottom:35px;align-items:start}
.page-meet-koru .koru-introduction h1{font-size:48px}.page-meet-koru .koru-companion{margin:8px 0 15px}.page-meet-koru .koru-pet{width:135px}.page-meet-koru .koru-introduction>p:not(.eyebrow){font-size:14px;margin-top:16px}
.koru-panel{height:calc(100dvh - 165px);min-height:620px;max-height:1000px;display:flex;flex-direction:column;position:relative}.koru-panel-header{flex-shrink:0;padding:15px 22px}.koru-panel>p{padding:10px 22px;flex-shrink:0}.koru-messages{flex:1;min-height:120px;max-height:none;position:relative;overscroll-behavior:auto;scrollbar-gutter:stable}.koru-message{max-width:96%;flex-shrink:0}.koru-message p{line-height:1.7}.koru-panel form{flex-shrink:0;padding:14px 20px;margin:0;background:#fffdf8}.koru-panel textarea{min-height:58px;max-height:140px;resize:none;overflow-y:auto;margin-top:6px}.koru-panel form>label:first-child{font-size:12px}.koru-panel form>.button{margin-top:10px;padding:10px 20px;float:right}.koru-keyboard{display:inline-block;font-size:10px;margin-top:16px;color:var(--ink)}.koru-consent{margin-top:10px}.koru-privacy{margin:8px 0 0;border:0}.koru-privacy summary{font-size:11px;display:list-item;padding:3px 0;cursor:pointer}.koru-privacy p{padding:8px 0;margin:0;font-size:11px;max-height:110px;overflow:auto}#koru-feedback{clear:both;margin:8px 0 0;font-size:11px;line-height:1.4}#koru-feedback:empty{display:none}#koru-latest{position:absolute;right:22px;top:92px;z-index:1;border:1px solid #cddacb;border-radius:20px;background:#fffdf8;color:#123e38;padding:7px 13px;box-shadow:0 2px 8px #123e3818;cursor:pointer}#koru-latest[hidden]{display:none}.koru-thinking p{animation:koru-dots 1.5s ease-in-out infinite}
@media(max-width:850px){.page-meet-koru .koru-section{grid-template-columns:1fr;padding-top:20px;gap:20px}.page-meet-koru .koru-introduction{display:grid;grid-template-columns:1fr 110px;gap:6px 14px}.page-meet-koru .koru-introduction h1{font-size:38px;margin:0}.page-meet-koru .koru-companion{grid-column:2;grid-row:1/4;margin:0}.page-meet-koru .koru-pet{width:100px}.page-meet-koru #koru-pet-greeting{font-size:11px}.page-meet-koru #koru-pet-greeting span{display:none}.page-meet-koru .koru-introduction>p:not(.eyebrow){grid-column:1/-1;margin-top:5px;font-size:12px}.koru-panel{height:85dvh;min-height:540px;max-height:900px}.koru-keyboard{display:none}.koru-panel form{padding:12px}.koru-messages{padding:16px}.koru-message p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.koru-thinking p{animation:none}}




/* Spacious composer, with the original reading size. */
.koru-panel{min-width:0;min-height:760px;height:calc(100dvh - 120px);max-height:1100px}
.koru-panel form{padding:22px 24px}.koru-panel textarea{box-sizing:border-box;width:100%;min-height:160px;max-height:280px;padding:16px;font-size:14px;line-height:1.6}.koru-panel form>label:first-child{font-size:13px}.koru-consent{margin-top:14px}.koru-panel form>.button{min-height:44px;margin-top:14px}.koru-message{overflow-wrap:anywhere}.koru-messages{min-height:220px}
@media(max-width:850px){.page-meet-koru .koru-section{padding-left:4%;padding-right:4%;width:100%;box-sizing:border-box}.koru-panel{height:auto;min-height:0;max-height:none;width:100%}.koru-messages{flex:none;height:clamp(280px,50dvh,480px);min-height:0;padding:16px 12px;scrollbar-gutter:auto}.koru-panel form{padding:18px 14px;padding-bottom:max(18px,env(safe-area-inset-bottom))}.koru-panel textarea{min-height:145px;max-height:260px;font-size:14px;padding:14px}.koru-panel-header{padding:15px}.koru-panel>p{padding:12px 15px}.koru-panel form>.button{float:none;display:block;width:100%;min-height:46px;margin-top:14px}.koru-consent{gap:10px}.koru-consent input{min-width:20px;min-height:20px}.koru-consent span{font-size:12px;line-height:1.6}.koru-privacy summary{min-height:36px;line-height:36px}.koru-privacy p{max-height:150px}.koru-message{max-width:100%}.koru-message.user{max-width:94%}}
@media(max-width:380px){.page-meet-koru .koru-introduction{grid-template-columns:minmax(0,1fr) 90px}.page-meet-koru .koru-pet{width:85px}.koru-panel-header small{font-size:10px}.koru-badge{font-size:6px;padding:5px}}




@media(min-width:851px){.koru-panel{min-height:960px;height:calc(100dvh + 80px);max-height:1300px}.koru-messages{min-height:420px}}@media(max-width:850px){.koru-messages{height:clamp(380px,65dvh,640px)}}

.koru-review-plan{display:inline-block;font-size:12px;margin-top:14px;cursor:pointer}.koru-final-plan{max-width:1100px;margin:0 auto 60px;padding:30px 5%;border:1px solid var(--line);border-radius:10px;background:#fffdf8;scroll-margin-top:20px}.koru-final-plan[hidden]{display:none}.koru-final-plan h2{font-size:32px}.koru-final-plan>p{font-size:14px;margin:18px 0}.koru-final-plan input:not([type=checkbox]),.koru-final-plan textarea{font-size:14px;width:100%;box-sizing:border-box;padding:14px}.koru-final-plan textarea{min-height:360px;line-height:1.7;resize:vertical}.koru-plan-confirm{display:flex;gap:12px;align-items:flex-start;margin:20px 0}.koru-plan-confirm input{width:20px;height:20px;flex-shrink:0}.koru-plan-confirm span{font-size:13px;margin:0}.koru-final-plan .text-link{margin-left:20px}.koru-final-plan button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:650px){.koru-final-plan{margin:0 4% 30px;padding:22px 16px}.koru-final-plan h2{font-size:27px}.koru-final-plan .button{width:100%;font-size:13px}.koru-final-plan .text-link{display:block;margin:18px 0 0}}

/* Articulated Koru: each part moves independently. */
.koru-pet,.koru-pet.greeting,.koru-pet[data-state]{animation:none;transform:none}.koru-pet:hover{transform:none}.koru-character{display:block;width:100%;height:auto;overflow:visible}.koru-body{transform-origin:120px 185px;animation:koru-breathe 3.8s ease-in-out infinite}.koru-eyes{transform-origin:120px 108px;animation:koru-blink 5.3s infinite}.koru-arm-wave{transform-origin:175px 116px;animation:koru-wave 7s ease-in-out infinite}.koru-arm-left{transform-origin:64px 116px;animation:koru-left 3.8s ease-in-out infinite}.koru-leaves{transform-origin:120px 60px;animation:koru-leaf-sway 3.2s ease-in-out infinite}.koru-shadow{transform-origin:120px 199px;animation:koru-shadow-pulse 3.8s ease-in-out infinite}.koru-spark{animation:koru-sparkle 7s infinite}.koru-heart{transform-origin:120px 165px;animation:koru-glow 3.8s ease-in-out infinite}
.koru-pet.greeting .koru-arm-wave,.koru-pet:hover .koru-arm-wave{animation:koru-wave-hello .65s ease-in-out 4}.koru-pet[data-state="thinking"] .koru-face,.koru-pet[data-state="processing"] .koru-face{animation:koru-look 2.8s ease-in-out infinite}.koru-pet[data-state="thinking"] .koru-arm-wave,.koru-pet[data-state="processing"] .koru-arm-wave{animation:koru-ponder 2.8s ease-in-out infinite}.koru-pet[data-state="answered"] .koru-body{animation:koru-celebrate .75s ease-in-out 3,koru-breathe 3.8s 2.25s ease-in-out infinite}.koru-pet[data-state="answered"] .koru-arm-wave{animation:koru-wave-hello .6s ease-in-out 4}.koru-pet[data-state="error"] .koru-face,.koru-pet[data-state="guidance"] .koru-face{transform:rotate(-5deg);transform-origin:120px 110px}
.koru-motion-toggle{border:0;background:transparent;color:var(--teal);text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:10px;padding:7px 10px;cursor:pointer}.koru-motion-paused .koru-character *,.koru-motion-paused::after{animation-play-state:paused!important}
@keyframes koru-breathe{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}@keyframes koru-blink{0%,42%,46%,75%,79%,100%{transform:scaleY(1)}44%,77%{transform:scaleY(.08)}}@keyframes koru-wave{0%,66%,100%{transform:rotate(0)}70%,78%{transform:rotate(-17deg)}74%,82%{transform:rotate(12deg)}86%{transform:rotate(0)}}@keyframes koru-wave-hello{0%,100%{transform:rotate(0)}35%{transform:rotate(-23deg)}70%{transform:rotate(14deg)}}@keyframes koru-left{0%,100%{transform:rotate(0)}50%{transform:rotate(7deg)}}@keyframes koru-leaf-sway{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(6deg)}}@keyframes koru-shadow-pulse{0%,100%{transform:scaleX(1);opacity:.09}50%{transform:scaleX(.87);opacity:.06}}@keyframes koru-sparkle{0%,65%,90%,100%{opacity:.5}72%,82%{opacity:1}}@keyframes koru-glow{0%,100%{opacity:.65}50%{opacity:1}}@keyframes koru-look{0%,100%{transform:translateX(0)}35%,65%{transform:translateX(5px) translateY(-2px)}}@keyframes koru-ponder{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(-28deg)}}@keyframes koru-celebrate{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-12px) rotate(-5deg)}70%{transform:translateY(-5px) rotate(5deg)}}
@media(prefers-reduced-motion:reduce){.koru-character *,.koru-pet[data-state] .koru-character *{animation:none!important}.koru-motion-toggle{display:none}}

/* Idle play gives way immediately to focused work. */
.koru-play-bug,.koru-work-book{display:none}.koru-pet[data-idle="bug"] .koru-play-bug{display:block;animation:koru-bug-flight 8s linear infinite}.koru-bug-wings{transform-origin:0 -3px;animation:koru-wings .12s linear infinite}.koru-pet[data-idle="bug"] .koru-face{animation:koru-track-bug 8s ease-in-out infinite}.koru-pet[data-idle="bug"] .koru-arm-wave{animation:koru-catch-bug 8s ease-in-out infinite}.koru-pet[data-idle="bug"] .koru-body{animation:koru-play-hop 8s ease-in-out infinite}.koru-pet[data-idle="look"] .koru-face{animation:koru-look-around 8s ease-in-out infinite}.koru-pet[data-idle="stretch"] .koru-arm-wave{animation:koru-stretch-right 4s ease-in-out 2}.koru-pet[data-idle="stretch"] .koru-arm-left{animation:koru-stretch-left 4s ease-in-out 2}.koru-pet[data-idle="stretch"] .koru-body{animation:koru-stretch-body 4s ease-in-out 2}.koru-pet[data-idle="wave"] .koru-arm-wave{animation:koru-wave-hello .8s ease-in-out 5}.koru-pet[data-state="thinking"] .koru-work-book,.koru-pet[data-state="processing"] .koru-work-book{display:block}.koru-pet[data-state="thinking"] .koru-face,.koru-pet[data-state="processing"] .koru-face{animation:koru-read 2.5s ease-in-out infinite}.koru-pet[data-state="thinking"] .koru-arm-left,.koru-pet[data-state="processing"] .koru-arm-left{animation:koru-write 1s ease-in-out infinite}.koru-pet[data-state="thinking"] .koru-arm-wave,.koru-pet[data-state="processing"] .koru-arm-wave{animation:koru-work-arm 1.8s ease-in-out infinite}
@keyframes koru-bug-flight{0%,100%{transform:translate(203px,66px)}15%{transform:translate(160px,24px)}30%{transform:translate(62px,38px)}45%{transform:translate(30px,98px)}60%{transform:translate(74px,62px)}78%{transform:translate(180px,42px)}90%{transform:translate(217px,96px)}}@keyframes koru-wings{50%{transform:scaleY(.25)}}@keyframes koru-track-bug{0%,100%{transform:translate(4px,-2px)}30%{transform:translate(-5px,-3px)}45%{transform:translate(-6px,1px)}75%{transform:translate(5px,-3px)}}@keyframes koru-catch-bug{0%,100%{transform:rotate(0)}20%{transform:rotate(-25deg)}45%{transform:rotate(-50deg)}60%{transform:rotate(-12deg)}85%{transform:rotate(25deg)}}@keyframes koru-play-hop{0%,35%,65%,100%{transform:translateY(0)}20%,80%{transform:translateY(-9px) rotate(4deg)}50%{transform:rotate(-5deg)}}@keyframes koru-look-around{0%,100%{transform:translateX(0)}20%,35%{transform:translateX(-6px)}60%,80%{transform:translateX(6px)}}@keyframes koru-stretch-right{0%,100%{transform:rotate(0)}35%,65%{transform:rotate(-35deg)}}@keyframes koru-stretch-left{0%,100%{transform:rotate(0)}35%,65%{transform:rotate(95deg)}}@keyframes koru-stretch-body{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.04) translateY(-3px)}}@keyframes koru-read{0%,100%{transform:translate(-3px,3px)}50%{transform:translate(3px,3px)}}@keyframes koru-write{0%,100%{transform:rotate(-35deg)}50%{transform:rotate(-20deg)}}@keyframes koru-work-arm{0%,100%{transform:rotate(35deg)}50%{transform:rotate(42deg)}}
@media(prefers-reduced-motion:reduce){.koru-pet .koru-character *{animation:none!important}.koru-play-bug{display:none!important}}

.koru-companion{overflow:hidden;padding-top:10px}.koru-idle-hearts,.koru-idle-stars,.koru-idle-sleep{display:none}.koru-pet[data-idle="hearts"] .koru-idle-hearts{display:block;animation:koru-heart-float 3s ease-in-out infinite}.koru-pet[data-idle="hearts"] .koru-arm-left{animation:koru-hug-left 2.5s ease-in-out infinite}.koru-pet[data-idle="hearts"] .koru-arm-wave{animation:koru-hug-right 2.5s ease-in-out infinite}.koru-pet[data-idle="stars"] .koru-idle-stars{display:block;transform-origin:120px 70px;animation:koru-stars-orbit 4s ease-in-out infinite}.koru-pet[data-idle="stars"] .koru-face{animation:koru-look-around 4s ease-in-out infinite}.koru-pet[data-idle="stars"] .koru-arm-wave{animation:koru-catch-bug 4s ease-in-out infinite}.koru-pet[data-idle="dance"] .koru-body{animation:koru-tiny-dance 1.3s ease-in-out infinite}.koru-pet[data-idle="dance"] .koru-arm-wave{animation:koru-wave-hello .65s ease-in-out infinite}.koru-pet[data-idle="dance"] .koru-leaves{animation:koru-leaf-sway .65s ease-in-out infinite}.koru-pet[data-idle="peek"] .koru-body{animation:koru-shy-peek 8s ease-in-out infinite}.koru-pet[data-idle="peek"] .koru-arm-left{animation:koru-hug-left 2s ease-in-out infinite}.koru-pet[data-idle="sleep"] .koru-idle-sleep{display:block;animation:koru-sleep-cloud 3s ease-in-out infinite}.koru-pet[data-idle="sleep"] .koru-eyes{animation:none;transform:scaleY(.12)}.koru-pet[data-idle="sleep"] .koru-arm-wave{animation:none;transform:rotate(38deg)}.koru-pet[data-idle="sleep"] .koru-body{animation:koru-sleep-nod 3s ease-in-out infinite}.koru-pet[data-bee-exit="true"] .koru-play-bug{display:block;animation:koru-bee-exit .7s ease-in forwards!important}
@keyframes koru-bug-flight{0%{transform:translate(320px,10px);opacity:0}8%{transform:translate(203px,66px);opacity:1}22%{transform:translate(160px,24px)}35%{transform:translate(62px,38px)}48%{transform:translate(30px,98px)}60%{transform:translate(74px,62px)}75%{transform:translate(180px,42px)}84%{transform:translate(217px,75px);opacity:1}96%{opacity:1}100%{transform:translate(450px,-100px);opacity:0}}
@keyframes koru-bee-exit{from{transform:var(--bee-exit-start);opacity:1}70%{opacity:1}to{transform:translate(450px,-120px);opacity:0}}@keyframes koru-heart-float{0%{transform:translateY(8px);opacity:0}25%,65%{opacity:1}100%{transform:translateY(-25px);opacity:0}}@keyframes koru-hug-left{0%,100%{transform:rotate(-10deg)}50%{transform:rotate(-50deg)}}@keyframes koru-hug-right{0%,100%{transform:rotate(25deg)}50%{transform:rotate(65deg)}}@keyframes koru-stars-orbit{0%,100%{transform:rotate(-15deg) scale(.9)}50%{transform:rotate(18deg) scale(1.1)}}@keyframes koru-tiny-dance{0%,100%{transform:translateX(-4px) rotate(-6deg)}25%{transform:translateY(-6px)}50%{transform:translateX(4px) rotate(6deg)}75%{transform:translateY(-6px)}}@keyframes koru-shy-peek{0%,100%{transform:rotate(0)}25%,55%{transform:translateX(-12px) rotate(-13deg)}70%{transform:translateX(6px) rotate(5deg)}}@keyframes koru-sleep-cloud{0%{opacity:0;transform:translateY(6px)}40%,70%{opacity:.7}100%{opacity:0;transform:translateY(-14px)}}@keyframes koru-sleep-nod{0%,100%{transform:rotate(-3deg) translateY(1px)}50%{transform:rotate(3deg) translateY(6px)}}
@media(prefers-reduced-motion:reduce){.koru-pet[data-idle] .koru-character *,.koru-pet[data-bee-exit] .koru-character *{animation:none!important}.koru-play-bug,.koru-idle-hearts,.koru-idle-stars,.koru-idle-sleep{display:none!important}}

/* Every idle scene starts and ends in the same relaxed pose. */
.koru-pet[data-state="idle"] .koru-body,.koru-pet[data-state="idle"] .koru-arm-left,.koru-pet[data-state="idle"] .koru-arm-wave,.koru-pet[data-state="idle"] .koru-face{animation:none;transform:none}.koru-pet[data-state="idle"] .koru-leaves{animation:koru-leaf-sway 4s ease-in-out infinite}
.koru-pet[data-idle="bug"] .koru-face{animation:koru-smooth-track 8s ease-in-out forwards}.koru-pet[data-idle="bug"] .koru-arm-wave{animation:koru-smooth-catch 8s ease-in-out forwards}.koru-pet[data-idle="bug"] .koru-body{animation:koru-smooth-hop 8s ease-in-out forwards}.koru-pet[data-idle="bug"] .koru-play-bug{animation:koru-bug-flight 8s linear forwards}
.koru-pet[data-idle="hearts"] .koru-idle-hearts{animation:koru-soft-hearts 8s ease-in-out forwards}.koru-pet[data-idle="hearts"] .koru-arm-left{animation:koru-soft-hug-left 8s ease-in-out forwards}.koru-pet[data-idle="hearts"] .koru-arm-wave{animation:koru-soft-hug-right 8s ease-in-out forwards}
.koru-pet[data-idle="stars"] .koru-idle-stars{animation:koru-soft-stars 8s ease-in-out forwards}.koru-pet[data-idle="stars"] .koru-face{animation:koru-smooth-track 8s ease-in-out forwards}.koru-pet[data-idle="stars"] .koru-arm-wave{animation:koru-smooth-catch 8s ease-in-out forwards}
.koru-pet[data-idle="look"] .koru-face{animation:koru-smooth-track 8s ease-in-out forwards}.koru-pet[data-idle="dance"] .koru-body{animation:koru-soft-dance 8s ease-in-out forwards}.koru-pet[data-idle="dance"] .koru-arm-wave{animation:koru-soft-wave 8s ease-in-out forwards}
.koru-pet[data-idle="peek"] .koru-body{animation:koru-soft-peek 8s ease-in-out forwards}.koru-pet[data-idle="peek"] .koru-arm-left{animation:koru-soft-hug-left 8s ease-in-out forwards}
.koru-pet[data-idle="stretch"] .koru-arm-wave{animation:koru-soft-stretch-right 8s ease-in-out forwards}.koru-pet[data-idle="stretch"] .koru-arm-left{animation:koru-soft-stretch-left 8s ease-in-out forwards}.koru-pet[data-idle="stretch"] .koru-body{animation:koru-soft-stretch 8s ease-in-out forwards}.koru-pet[data-idle="wave"] .koru-arm-wave{animation:koru-soft-wave 8s ease-in-out forwards}
@keyframes koru-smooth-track{0%,12%,88%,100%{transform:translate(0,0)}30%,40%{transform:translate(-5px,-2px)}62%,72%{transform:translate(5px,-2px)}}@keyframes koru-smooth-catch{0%,12%,88%,100%{transform:rotate(0)}30%{transform:rotate(-25deg)}50%{transform:rotate(-40deg)}70%{transform:rotate(18deg)}}@keyframes koru-smooth-hop{0%,12%,88%,100%{transform:translate(0,0) rotate(0)}35%{transform:translateY(-7px) rotate(-3deg)}60%{transform:translateY(-7px) rotate(3deg)}}@keyframes koru-soft-hearts{0%,12%{opacity:0;transform:translateY(10px)}30%,60%{opacity:1}85%,100%{opacity:0;transform:translateY(-28px)}}@keyframes koru-soft-hug-left{0%,12%,88%,100%{transform:rotate(0)}35%,65%{transform:rotate(-45deg)}}@keyframes koru-soft-hug-right{0%,12%,88%,100%{transform:rotate(0)}35%,65%{transform:rotate(55deg)}}@keyframes koru-soft-stars{0%,12%{opacity:0;transform:rotate(-10deg) scale(.9)}30%{opacity:1;transform:rotate(10deg) scale(1)}60%{opacity:1;transform:rotate(-10deg) scale(1.05)}85%,100%{opacity:0;transform:rotate(10deg) scale(.9)}}@keyframes koru-soft-dance{0%,12%,88%,100%{transform:translate(0,0) rotate(0)}25%,55%{transform:translate(-4px,-5px) rotate(-5deg)}40%,70%{transform:translate(4px,-5px) rotate(5deg)}}@keyframes koru-soft-wave{0%,12%,88%,100%{transform:rotate(0)}25%,45%,65%{transform:rotate(-20deg)}35%,55%,75%{transform:rotate(12deg)}}@keyframes koru-soft-peek{0%,12%,88%,100%{transform:translateX(0) rotate(0)}35%,55%{transform:translateX(-10px) rotate(-10deg)}70%{transform:translateX(4px) rotate(3deg)}}@keyframes koru-soft-stretch-right{0%,12%,88%,100%{transform:rotate(0)}35%,65%{transform:rotate(-35deg)}}@keyframes koru-soft-stretch-left{0%,12%,88%,100%{transform:rotate(0)}35%,65%{transform:rotate(85deg)}}@keyframes koru-soft-stretch{0%,12%,88%,100%{transform:scaleY(1) translateY(0)}35%,65%{transform:scaleY(1.035) translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.koru-pet[data-idle] .koru-character *{animation:none!important}}

.koru-downloads{display:flex;gap:8px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--line);flex-shrink:0}.koru-downloads button{border:1px solid #cddacb;border-radius:6px;padding:9px 12px;background:#fffdf8;color:#123e38;font:inherit;font-size:11px;cursor:pointer;min-height:38px}.koru-downloads button:disabled{opacity:.5;cursor:not-allowed}.koru-downloads small{width:100%;font-size:10px;line-height:1.5;color:#24665e}@media(max-width:600px){.koru-downloads{padding:12px;gap:6px}.koru-downloads button{min-height:44px;font-size:10px;flex:1}.koru-downloads small{font-size:10px}}

/* Let the transcript and composer determine panel height; never clip Send. */
.koru-panel{height:auto;min-height:0;max-height:none;overflow:hidden}.koru-messages{flex:none;height:clamp(420px,65dvh,700px);min-height:0;max-height:none}.koru-panel form{display:flow-root;flex:none;height:auto;overflow:visible}.koru-compose-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:14px;clear:both}.koru-compose-actions .koru-keyboard{margin:0}.koru-panel form .koru-compose-actions>.button{float:none;display:inline-flex;position:static;width:auto;min-height:46px;flex-shrink:0;margin:0;padding:12px 22px}.koru-panel form #koru-feedback{clear:both;margin-top:12px}@media(max-width:850px){.koru-messages{height:clamp(380px,65dvh,640px)}.koru-compose-actions{display:block}.koru-panel form .koru-compose-actions>.button{display:flex;justify-content:center;width:100%;box-sizing:border-box;min-height:48px}.koru-compose-actions .koru-keyboard{display:none}}
