@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Noto+Serif+JP:wght@300;400;500;600&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.flex{display:flex}.resize{resize:both}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--canvas:#fffaf4;--canvas-deep:#f1dfca;--ink:#4e392e;--ink-soft:#765f52;--accent:#bd6c55;--accent-deep:#9f5542;--accent-pale:#f3ddd4;--sage:#71866a;--line:#553b2c29;--line-strong:#553b2c47;--glass:#fffdf9c7;--glass-strong:#fffdf9eb;--danger:#a7463c;--font-display:"Cormorant Garamond", "Noto Serif JP", serif;--font-body:"Noto Serif JP", serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{color:var(--ink);background:var(--canvas-deep);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-weight:300}button,input,select,textarea{color:inherit;font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes subtitle-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes loading-spin{to{transform:rotate(360deg)}}.cherry-app{isolation:isolate;min-height:100dvh;position:relative;overflow:hidden}.minimal-background{z-index:0;background:linear-gradient(#fffaf4 0%,#f1dfca 100%);position:absolute;inset:0}.minimal-stage{z-index:1;place-items:center;height:calc(100dvh - 132px);display:grid;position:relative}.minimal-vrm{width:min(720px,100vw);height:100%}.minimal-vrm canvas{display:block}.menu-trigger{z-index:20;top:max(20px, env(safe-area-inset-top));right:max(20px, env(safe-area-inset-right));width:46px;height:46px;color:var(--ink);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff9e;border:1px solid #553b2c1f;border-radius:50%;place-items:center;transition:transform .16s ease-out,background .16s ease-out,border-color .16s ease-out;display:grid;position:fixed;box-shadow:0 8px 24px #5737261a}.menu-trigger:hover{background:#ffffffdb;border-color:#553b2c3d;transform:translateY(-1px)}.menu-trigger:active{transform:translateY(0)scale(.97)}.menu-trigger svg{stroke-width:1.5px;width:21px;height:21px}.minimal-controls{z-index:10;left:50%;bottom:max(22px, env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:12px;width:min(480px,100vw - 32px);display:flex;position:fixed;transform:translate(-50%)}.primary-control-shell{--mic-pulse:0;flex-direction:column;align-items:center;gap:7px;display:flex;position:relative}.primary-control-shell:before{content:"";pointer-events:none;opacity:0;border:1px solid #bd6c5552;border-radius:50%;width:96px;height:96px;position:absolute;top:-7px;transform:scale(.9)}.primary-control-shell[data-state=send]:before{opacity:calc(.24 + var(--mic-pulse) * .48);transform:scale(calc(.94 + var(--mic-pulse) * .14))}.primary-control{color:#fffdf9;background:var(--accent);cursor:pointer;border:1px solid #823d2c2e;border-radius:50%;place-items:center;width:82px;height:82px;transition:transform .16s ease-out,box-shadow .16s ease-out,background .16s ease-out;display:grid;position:relative;box-shadow:0 12px 30px #914b3847}.primary-control:hover:not(:disabled){background:var(--accent-deep);transform:translateY(-2px);box-shadow:0 14px 34px #783b2b57}.primary-control:active:not(:disabled){transform:translateY(0)scale(.97);box-shadow:0 8px 20px #783b2b40}.primary-control-shell[data-state=send] .primary-control{color:#fffdf9;background:var(--sage);box-shadow:0 12px 30px #4964483d}.primary-control-shell[data-state=stop] .primary-control{color:#fffdf9;background:var(--ink);box-shadow:0 12px 30px #36241b3d}.primary-control-shell[data-state=disabled] .primary-control,.primary-control:disabled{color:#4e392e94;cursor:wait;background:#fffdf9b8;border-color:#553b2c1a;box-shadow:0 8px 22px #57372617}.primary-control-hint{min-height:1.45em;color:var(--ink-soft);text-align:center;text-shadow:0 1px 10px #fffaf4eb;font-size:.72rem;font-weight:400;line-height:1.45}.minimal-error{max-width:100%;color:var(--danger);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffaf7e6;border:1px solid #a7463c33;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:9px 12px;font-size:.72rem;line-height:1.5;display:flex;box-shadow:0 8px 28px #5737261f}.minimal-error button{color:var(--danger);cursor:pointer;background:0 0;border:1px solid #a7463c42;border-radius:999px;padding:3px 8px}.transient-subtitle{z-index:8;overflow-wrap:anywhere;width:min(640px,100vw - 40px);max-height:min(24dvh,220px);color:var(--ink);text-align:center;text-wrap:pretty;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffbd;border:1px solid #553b2c1c;border-radius:18px;padding:12px 18px;font-size:clamp(.86rem,1.6vw,1rem);font-weight:400;line-height:1.75;animation:.18s ease-out both subtitle-in;position:fixed;bottom:142px;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 10px 32px #5737261c}.app-dialog-backdrop{z-index:30;padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#4e392e3d;place-items:center;animation:.16s ease-out both fade-in;display:grid;position:fixed;inset:0}.app-dialog{width:min(680px,100%);max-height:min(720px,100dvh - 36px);color:var(--ink);background:var(--glass-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #ffffff94;border-radius:24px;flex-direction:column;animation:.18s ease-out both dialog-in;display:flex;overflow:hidden;box-shadow:0 28px 80px #40291d3d}.dialog-menu,.dialog-text{width:min(520px,100%)}.app-dialog-header{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px 16px;display:flex}.app-dialog-kicker{color:var(--accent-deep);font-family:var(--font-display);margin-bottom:2px;font-size:.72rem;font-weight:600}.app-dialog h2{font-family:var(--font-body);text-wrap:balance;font-size:1.08rem;font-weight:500;line-height:1.5}.dialog-icon-btn{width:38px;height:38px;color:var(--ink-soft);border:1px solid var(--line);cursor:pointer;background:#ffffff8f;border-radius:50%;flex:none;place-items:center;transition:color .16s ease-out,background .16s ease-out,transform .16s ease-out;display:grid}.dialog-icon-btn:hover{color:var(--accent-deep);background:#fff;transform:translateY(-1px)}.app-dialog-body{overscroll-behavior:contain;min-height:0;padding:20px 22px 22px;overflow:auto}.conversation-menu{gap:22px;display:grid}.conversation-menu-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.conversation-menu-links button,.conversation-menu-actions button,.chat-send-btn,.memory-panel button,.settings-panel button{min-height:42px;color:var(--ink);border:1px solid var(--line);cursor:pointer;background:#ffffffa3;border-radius:12px;padding:9px 13px;font-size:.78rem;font-weight:400;transition:color .16s ease-out,background .16s ease-out,border-color .16s ease-out,transform .16s ease-out}.conversation-menu-links button:hover,.conversation-menu-actions button:hover:not(:disabled),.chat-send-btn:hover:not(:disabled),.memory-panel button:hover:not(:disabled),.settings-panel button:hover:not(:disabled){color:var(--accent-deep);background:#fff;border-color:#bd6c5561;transform:translateY(-1px)}.conversation-menu-volume{color:var(--ink-soft);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;font-size:.76rem;font-weight:400;display:grid}.conversation-menu-volume input,.chat-tts-volume input{width:100%;accent-color:var(--accent)}.conversation-menu-actions{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:18px;display:grid}.conversation-menu-actions button:last-child{color:var(--danger)}button:disabled{opacity:.46;cursor:not-allowed;transform:none!important}.chat-input-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.chat-textarea,.memory-textarea,.memory-toolbar select,.memory-form-controls select,.memory-form-controls input,.settings-grid select,.settings-grid input{width:100%;min-width:0;color:var(--ink);border:1px solid var(--line);background:#ffffffb8;border-radius:12px}.chat-textarea,.memory-textarea{resize:vertical;min-height:94px;padding:12px 14px;font-size:.88rem;line-height:1.7}.chat-textarea::placeholder,.memory-textarea::placeholder{color:#4e392e80}.chat-send-btn{color:#fffdf9;background:var(--accent);border-color:#0000;min-width:72px}.chat-messages{scrollbar-color:#bd6c5566 transparent;align-content:start;gap:12px;min-height:240px;max-height:min(540px,100dvh - 170px);list-style:none;display:grid;overflow:auto}.chat-message{border:1px solid var(--line);border-radius:16px;gap:4px;max-width:88%;padding:11px 14px;display:grid}.chat-message-sakura{background:#f3ddd4b8;border-bottom-right-radius:5px;justify-self:end}.chat-message-cherry{background:#ffffffb3;border-bottom-left-radius:5px;justify-self:start}.chat-speaker-label{color:var(--accent-deep);font-size:.64rem;font-weight:500}.chat-message-text{overflow-wrap:anywhere;text-wrap:pretty;font-size:.84rem;line-height:1.7}.chat-messages-empty{min-height:220px;color:var(--ink-soft);text-align:center;place-items:center;font-size:.84rem;display:grid}.memory-panel,.settings-panel{gap:16px;display:grid}.memory-panel-header,.settings-panel-header,.settings-actions,.memory-toolbar,.memory-form-actions,.memory-row-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.memory-panel-header h2,.settings-panel-header h2{font-size:1rem;font-weight:500}.memory-kicker,.settings-kicker,.memory-debug-title{color:var(--accent-deep);font-family:var(--font-display);font-size:.72rem;font-weight:600}.memory-toolbar{align-items:end}.memory-toolbar label{gap:5px;min-width:min(220px,55%);display:grid}.memory-toolbar label span,.memory-form-controls label span,.settings-grid label>span{color:var(--ink-soft);font-size:.65rem;font-weight:400}.memory-toolbar select,.memory-form-controls select,.memory-form-controls input,.settings-grid select,.settings-grid input{min-height:40px;padding:8px 10px;font-size:.78rem}.memory-form{border:1px solid var(--line);background:#ffffff57;border-radius:16px;gap:10px;padding:14px;display:grid}.memory-form-controls,.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.memory-form-controls label,.settings-grid label{gap:5px;display:grid}.memory-form-actions{justify-content:flex-end}.memory-list{scrollbar-color:#bd6c5566 transparent;align-content:start;gap:10px;max-height:300px;display:grid;overflow:auto}.memory-row,.memory-empty,.memory-error,.settings-error,.memory-extract-debug{border:1px solid var(--line);background:#ffffff85;border-radius:14px;padding:12px 14px}.memory-empty,.memory-error,.settings-error,.memory-extract-debug{color:var(--ink-soft);font-size:.76rem;line-height:1.65}.memory-error,.settings-error{color:var(--danger);border-color:#a7463c38}.memory-content{text-wrap:pretty;font-size:.82rem;line-height:1.7}.memory-meta{color:var(--ink-soft);flex-wrap:wrap;gap:4px 10px;margin-top:8px;font-size:.64rem;display:flex}.memory-meta a{color:var(--accent-deep)}.memory-row-actions{justify-content:flex-end;margin-top:10px}.memory-extract-debug ul{margin:6px 0 0 18px}.settings-wide{grid-column:1/-1}.settings-toggles{border:1px solid var(--line);background:#ffffff57;border-radius:16px;gap:10px;padding:14px;display:grid}.settings-toggles label{color:var(--ink-soft);align-items:center;gap:9px;font-size:.78rem;font-weight:400;display:flex}.settings-toggles input{accent-color:var(--accent)}.settings-actions{color:var(--ink-soft);font-size:.68rem}.settings-actions>div{gap:8px;display:flex}.vrm-loading-overlay,.vrm-error-overlay{color:var(--ink-soft);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.vrm-loading-overlay{background:#fffaf44d}.loading-ring{border:2px solid #bd6c5533;border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite loading-spin}.loading-text,.vrm-error-text,.error-pill,.mic-error{color:var(--ink-soft);font-size:.74rem;line-height:1.6}.vrm-error-text,.error-pill,.mic-error{color:var(--danger)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=720px){.minimal-stage{height:calc(100dvh - 116px)}.minimal-vrm{width:100vw}.menu-trigger{top:max(14px, env(safe-area-inset-top));right:max(14px, env(safe-area-inset-right));width:42px;height:42px}.minimal-controls{bottom:max(16px, env(safe-area-inset-bottom))}.primary-control{width:74px;height:74px}.primary-control-shell:before{width:86px;height:86px;top:-6px}.transient-subtitle{border-radius:16px;width:calc(100vw - 32px);padding:10px 14px;font-size:.84rem;bottom:128px}.app-dialog-backdrop{padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left))}.app-dialog{border-radius:20px;max-height:calc(100dvh - 24px)}.app-dialog-header{padding:16px 16px 13px}.app-dialog-body{padding:16px}.conversation-menu-links,.conversation-menu-actions,.chat-input-row{grid-template-columns:minmax(0,1fr)}.chat-send-btn{width:100%}.chat-message{max-width:94%}.memory-form-controls,.settings-grid{grid-template-columns:minmax(0,1fr)}.settings-wide{grid-column:auto}.memory-toolbar,.settings-actions{flex-direction:column;align-items:stretch}.memory-toolbar label{min-width:0}}@media (prefers-reduced-motion:reduce){.primary-control,.transient-subtitle,.app-dialog,.app-dialog-backdrop,.menu-trigger,.dialog-icon-btn,.conversation-menu-links button,.conversation-menu-actions button,.chat-send-btn,.memory-panel button,.settings-panel button{transition:none;animation:none}.loading-ring{animation-duration:1.8s}}@property --tw-ease{syntax:"*";inherits:false}
