/* Kunkun: a pillow whose silhouette carries its mental state. */
.calendar-sticker{position:relative;display:block;width:46px;height:46px;margin:5px auto 0}.calendar-sticker .mascot-sprite{display:block}.day-grid button{min-height:155px}.day-grid .calendar-state{font-size:9px;line-height:1.5;min-height:14px}.pushups-check{display:flex;flex-direction:row;align-items:center;gap:10px;width:fit-content;padding:10px 0}.pushups-check input{width:24px;height:24px;min-height:24px;accent-color:#604676}.pushups-actions{display:flex;gap:8px;flex-wrap:wrap}.pushups-actions button{font-size:12px;padding:9px 12px}.pushups-actions button[type="button"]{background:#eee8f4;color:#604676}
.mascot-story{background:#eee8f4;border:1px solid #ddd2e6;border-radius:30px;padding:24px;position:relative;min-width:0;color:#3c304c}
.mascot-kicker{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#857192;font-size:11px;letter-spacing:.08em;margin:0 0 10px}.mascot-kicker b{font-size:14px;letter-spacing:0;color:#574168}.mascot-stage{display:flex;align-items:center;gap:8px;min-height:178px}.mascot-art{width:170px;aspect-ratio:1;flex-shrink:0;position:relative}.mascot-sprite{position:absolute;inset:0;display:none;background-image:url('assets/mascot/kunkun-atlas-v2.png');background-size:400% 300%;background-position:0 0;background-repeat:no-repeat}.mascot-ready .mascot-sprite{display:block}.mascot-ready .mascot-svg{display:none}.mascot-svg{width:100%;height:100%}
[data-pose="sleepy"] .mascot-sprite{background-position:33.333333% 0}[data-pose="weary"] .mascot-sprite{background-position:66.666667% 0}[data-pose="depleted"] .mascot-sprite{background-position:100% 0}[data-pose="foggy"] .mascot-sprite,[data-pose="focus"] .mascot-sprite{background-position:0 50%}[data-pose="overwhelmed"] .mascot-sprite{background-position:33.333333% 50%}[data-pose="sigh"] .mascot-sprite,[data-pose="retry"] .mascot-sprite{background-position:66.666667% 50%}[data-pose="meditate"] .mascot-sprite{background-position:100% 50%}[data-pose="rest"] .mascot-sprite{background-position:0 100%}[data-pose="sleep"] .mascot-sprite{background-position:33.333333% 100%}[data-pose="restored"] .mascot-sprite{background-position:66.666667% 100%}[data-pose="celebrate"] .mascot-sprite{background-position:100% 100%}
.mascot-bubble{background:#fffcf5;border-radius:18px;padding:16px;min-width:0;position:relative;flex:1}.mascot-bubble p{margin:5px 0 0;color:#51415f;font-size:15px;line-height:1.6}.mascot-bubble small{color:#8b769b;font-size:11px}.mascot-story .mascot-caption{font-size:12px;color:#857390;margin:0 0 14px}.mascot-reset{font-size:11px;padding:5px 10px;background:transparent;color:#705783;text-decoration:underline;min-height:36px;margin:4px 0}
.mascot-preview-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0}.mascot-preview-buttons button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:#f9f5fc;color:#705885;padding:5px 2px;font-size:10px;border:1px solid #ddd2e6;min-height:82px;border-radius:14px;line-height:1.4}.mascot-preview-buttons button:hover{background:#e4d8ef}.mascot-preview-buttons button[aria-pressed="true"]{background:#dccde8;border-color:#816395;color:#493456}.mascot-preview-buttons .mascot-sprite{position:static;display:block;width:54px;height:54px}.mascot-preview-note{font-size:10px!important;color:#897993!important;margin:7px 0 12px!important}.mascot-gallery-title{font-size:12px;display:flex;justify-content:space-between;gap:8px;margin:12px 0 0}.mascot-gallery-title span{font-size:10px;color:#9b86aa}.mascot-settings{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:11px;color:#725d92}.mascot-settings input{width:17px;min-height:17px;height:17px;accent-color:#725595}.mascot-motion-note{font-size:10px!important;margin:2px 0 0!important}
.rest-space{border-top:1px dashed #d1c3de;border-bottom:1px dashed #d1c3de;padding:12px 0;margin:12px 0}.rest-start,.rest-stop{font-size:12px;padding:9px 14px;min-height:40px;border-radius:12px}.rest-start{background:#604676}.rest-start:hover{background:#4d365f}.rest-stop{background:#e1d6eb;color:#624c76}.rest-clock{font-size:11px;color:#796588;margin:6px 0 0;min-height:20px}.rest-orbit{position:absolute;inset:12%;border:2px solid #bda8d0;border-radius:50%;opacity:0;pointer-events:none}.mascot-story [data-resting="true"] .rest-orbit{opacity:.65}.mascot-story [data-resting="true"] .mascot-bubble{background:#f9f5e9}
.mascot-helper{display:flex;align-items:center;gap:10px;margin:20px 0 12px;padding:7px 14px 7px 4px;background:#f1edf8;border-radius:16px}.mascot-helper .mascot-art{width:76px}.mascot-helper [data-mascot-label]{font-size:11px;color:#867395}.mascot-helper [data-mascot-copy]{font-size:13px;margin:2px 0;color:#554861}.mascot-helper[data-pose="retry"]{background:#faf0e5}
.mascot-partners{display:flex;gap:8px;margin-top:14px;align-items:center;justify-content:center}.mascot-partners .friend{transform:none;display:flex;align-items:center;gap:7px;flex:0 1 auto;padding:6px 10px;border-radius:14px;text-align:left;background:#fffcf588}.mascot-partners .friend svg{width:25px;flex-shrink:0;margin:0}.mascot-partners .friend b{font-size:10px;white-space:nowrap}.mascot-partners .friend span{font-size:9px}
[data-motion="true"][data-pose="sleepy"] .mascot-art{animation:kunkun-yawn 1.4s ease-in-out 1}[data-motion="true"][data-pose="weary"] .mascot-art{animation:kunkun-droop 1.8s ease-out 1}[data-motion="true"][data-pose="depleted"] .mascot-art{animation:kunkun-melt 1.3s ease-out 1}[data-motion="true"][data-pose="foggy"] .mascot-art,[data-motion="true"][data-pose="overwhelmed"] .mascot-art{animation:kunkun-wobble 1.5s ease-in-out 1}[data-motion="true"][data-pose="sigh"] .mascot-art,[data-motion="true"][data-pose="retry"] .mascot-art{animation:kunkun-exhale 1.6s ease-out 1}[data-motion="true"][data-pose="restored"] .mascot-art{animation:kunkun-stretch 1.4s ease-in-out 1}[data-motion="true"][data-pose="celebrate"] .mascot-art{animation:kunkun-nod .7s ease-in-out 1}[data-motion="true"][data-resting="true"] .rest-orbit{animation:kunkun-orbit 8s ease-in-out infinite}
@keyframes kunkun-yawn{0%,100%{transform:rotate(0)}50%{transform:rotate(-5deg) translateY(-3px)}}@keyframes kunkun-droop{0%{transform:translateY(-4px)}100%{transform:translateY(0)}}@keyframes kunkun-melt{0%{transform:scaleY(1.12)}100%{transform:scaleY(1)}}@keyframes kunkun-wobble{0%,100%{transform:rotate(0)}30%{transform:rotate(-5deg)}65%{transform:rotate(4deg)}}@keyframes kunkun-exhale{0%{transform:scale(1.04)}100%{transform:scale(1)}}@keyframes kunkun-stretch{0%,100%{transform:scale(1)}50%{transform:scale(1.08) translateY(-3px)}}@keyframes kunkun-nod{0%,100%{transform:rotate(0)}50%{transform:rotate(5deg)}}@keyframes kunkun-orbit{0%,100%{transform:scale(.85);opacity:.35}50%{transform:scale(1.12);opacity:.65}}
@media(max-width:740px){.mascot-story{padding:18px;border-radius:24px}.mascot-stage{min-height:145px}.mascot-art{width:42%;max-width:170px}.mascot-bubble{padding:12px}.mascot-bubble p{font-size:13px}.mascot-helper{gap:6px;padding-right:10px}.mascot-helper .mascot-art{width:64px}.mascot-partners .friend{padding:5px 8px;gap:6px}.hero{gap:24px}.mascot-preview-buttons button{font-size:10px}.mascot-story{max-width:100%}}
@media(prefers-reduced-motion:reduce){.mascot-art,.rest-orbit{animation:none!important}}
@media(max-width:380px){.day-grid,.mascot-preview-buttons{grid-template-columns:repeat(3,1fr)}}
