:root{--bg:#f4efe6;--surface:#fffdf8;--ink:#2a2a33;--ink-soft:#6e6a62;--line:#e2dccf;--accent:#e8a93a;--user:#2d3a4f;--user-ink:#f7f4ec;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.6}@media (prefers-color-scheme:dark){:root{--bg:#1d1c22;--surface:#2a2932;--ink:#f1ede4;--ink-soft:#a9a496;--line:#3b3946;--accent:#e8c547;--user:#4a5d7c;--user-ink:#f7f4ec}}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;margin:0}body{-webkit-text-size-adjust:100%;overflow:hidden}button,textarea{font:inherit;color:inherit}.kuro{width:auto;max-width:100%;height:100%;overflow:visible}.kuro *{transform-box:fill-box}.kuro-tail{transform-origin:8% 90%;animation:3.6s ease-in-out infinite kuro-tail}.kuro-eyes{transform-origin:50%;animation:4.5s infinite kuro-blink}.kuro-eyes-happy,.kuro-mouth-open{display:none}.kuro-mouth-open{transform-origin:50% 20%}.kuro[data-state=talking] .kuro-mouth-closed{display:none}.kuro[data-state=talking] .kuro-mouth-open{animation:.32s ease-in-out infinite kuro-talk;display:block}.kuro[data-state=talking] .kuro-all{transform-origin:50% 100%;animation:.9s ease-in-out infinite kuro-sway}.kuro[data-state=happy] .kuro-eyes{display:none}.kuro[data-state=happy] .kuro-eyes-happy{display:block}.kuro[data-state=happy] .kuro-all{transform-origin:50% 100%;animation:.5s ease-out 3 kuro-hop}.kuro[data-state=happy] .kuro-tail{animation-duration:.8s}@keyframes kuro-tail{0%,to{transform:rotate(-6deg)}50%{transform:rotate(10deg)}}@keyframes kuro-blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.08)}}@keyframes kuro-talk{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes kuro-sway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes kuro-hop{0%{transform:translateY(0)}45%{transform:translateY(-14px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.kuro-tail,.kuro-eyes,.kuro[data-state] .kuro-all,.kuro[data-state] .kuro-mouth-open{animation:none}}.app{max-width:560px;height:100dvh;padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom);grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;margin:0 auto;display:grid}.stage{justify-content:center;align-items:flex-end;height:clamp(170px,30dvh,260px);padding-top:12px;display:flex}.bubble{text-align:left;background:var(--surface);border:1px solid var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:16px;width:100%;min-height:92px;padding:14px 16px 18px;display:block;position:relative}.bubble:before{content:"";background:var(--surface);border-top:1px solid var(--line);border-left:1px solid var(--line);width:14px;height:14px;position:absolute;top:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.bubble-label{color:var(--ink-soft);margin-bottom:2px;font-size:12px;display:block}.bubble-text{word-break:break-word;font-size:16px}.bubble-next{color:var(--accent);font-size:10px;animation:1.2s ease-in-out infinite bubble-next;position:absolute;bottom:6px;right:12px}@keyframes bubble-next{50%{transform:translateY(3px)}}.log{overscroll-behavior:contain;padding:4px 0 8px;overflow-y:auto}.log-empty{text-align:center;color:var(--ink-soft);margin:24px 0;font-size:14px}.log-day{width:fit-content;color:var(--ink-soft);background:var(--line);border-radius:999px;margin:14px auto 8px;padding:2px 12px;font-size:12px}.msg{word-break:break-word;border-radius:14px;width:fit-content;max-width:82%;margin:6px 0;padding:8px 12px}.msg p{white-space:pre-wrap;margin:0}.msg time{opacity:.6;margin-top:2px;font-size:11px;display:block}.msg-kuro{background:var(--surface);border:1px solid var(--line);border-top-left-radius:4px}.msg-user{background:var(--user);color:var(--user-ink);border-top-right-radius:4px;margin-left:auto}.composer{align-items:flex-end;gap:8px;padding:8px 0 12px;display:flex}.composer textarea{background:var(--surface);border:1px solid var(--line);resize:none;field-sizing:content;border-radius:12px;flex:1;min-width:0;max-height:120px;padding:10px 12px;font-size:16px}.composer button{background:var(--accent);color:#2a2a33;cursor:pointer;border:0;border-radius:12px;padding:10px 18px;font-weight:600}.composer button:disabled{opacity:.4;cursor:default}@media (prefers-reduced-motion:reduce){.bubble-next{animation:none}}
