: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}}.login{text-align:center;flex-direction:column;justify-content:center;align-items:center;max-width:420px;height:100dvh;margin:0 auto;padding:0 16px;display:flex}.login-kuro{width:100%;height:230px;margin-top:0}.login h1{margin:8px 0 16px;font-size:22px}.login form{flex-direction:column;gap:12px;width:100%;display:flex}.login input{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:16px}.login button{background:var(--accent);color:#2a2a33;cursor:pointer;border:0;border-radius:12px;padding:12px;font-weight:600}.login button:disabled{opacity:.4}.login-note{color:var(--ink-soft);margin:0;font-size:14px}.login-error{color:#c0392b;margin:0;font-size:14px}.settings-backdrop{z-index:10;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.settings{width:100%;max-width:560px;padding:20px 16px calc(20px + env(safe-area-inset-bottom));background:var(--surface);border-radius:16px 16px 0 0}.settings h2{margin:0 0 12px;font-size:18px}.settings-row{color:var(--ink-soft);word-break:break-all;margin:0 0 8px;font-size:14px}.settings button{cursor:pointer;border-radius:12px;width:100%;margin-top:12px;padding:12px;font-weight:600;display:block}.settings-logout{color:#c0392b;border:1px solid var(--line);background:0 0}.settings-close{background:var(--accent);color:#2a2a33;border:0}.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{background:radial-gradient(circle at 50% 42%,#fbf3d4 0 84px,#fbf3d440 86px,#0000 150px),linear-gradient(0deg,#6a67a8 0,#6a67a800 38%),linear-gradient(#10152e,#232850 62%,#343466);border-radius:20px;justify-content:center;align-items:flex-end;height:clamp(170px,30dvh,260px);margin-top:12px;padding-top:12px;display:flex;position:relative;overflow:hidden}.stage:before{content:"";pointer-events:none;background:radial-gradient(1.6px 1.6px at 10% 22%,#fff 50%,#0000 52%),radial-gradient(1.2px 1.2px at 22% 62%,#fff 50%,#0000 52%),radial-gradient(1.8px 1.8px at 30% 14%,#fff 50%,#0000 52%),radial-gradient(1.2px 1.2px at 78% 18%,#fff 50%,#0000 52%),radial-gradient(1.6px 1.6px at 88% 52%,#fff 50%,#0000 52%),radial-gradient(1.2px 1.2px at 68% 70%,#fff 50%,#0000 52%),radial-gradient(1.4px 1.4px at 94% 12%,#fff 50%,#0000 52%);animation:5s ease-in-out infinite stars;position:absolute;inset:0}.stage:not([data-period=night]):before{display:none}.stage[data-period=morning]{background:radial-gradient(circle at 50% 44%,#fff4c8 0 84px,#ffe09666 86px,#0000 150px),linear-gradient(0deg,#ff9d62 0,#ff9d6200 50%),linear-gradient(#6f8fd6,#f1b3a2 68%,#ffd7a1)}.stage[data-period=day]{background:radial-gradient(circle at 50% 44%,#ffffffb3 0 84px,#fff3 86px,#0000 150px),radial-gradient(circle at 86% 20%,#fff7c9 0 16px,#fff7c966 18px,#0000 40px),radial-gradient(44px 12px at 14% 26%,#fff 60%,#0000 100%),radial-gradient(34px 10px at 24% 32%,#fff 60%,#0000 100%),radial-gradient(40px 11px at 82% 62%,#ffffffd9 60%,#0000 100%),linear-gradient(#3f8fe0,#a9d9f6)}@keyframes stars{50%{opacity:.45}}.stage .kuro{filter:drop-shadow(0 0 5px #ffffff47);position:relative}.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{flex-wrap:wrap;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){.stage:before,.bubble-next{animation:none}}.settings-open{z-index:1;color:#ffffffbf;cursor:pointer;background:0 0;border:0;width:40px;height:40px;font-size:20px;line-height:1;position:absolute;top:8px;right:4px}.composer-error{color:#c0392b;flex-basis:100%;margin:0;font-size:13px}
