:root{color-scheme:dark;font-family:"Yu Gothic UI","Meiryo",sans-serif;color:#eae7e2;background:#111214}*{box-sizing:border-box}body{margin:0}button,a,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid #d1b891;outline-offset:4px}.app{display:grid;grid-template-columns:340px minmax(0,1fr);max-width:1440px;margin:auto;height:100dvh;min-height:520px}.profile{padding:32px 28px;border-right:1px solid #2b2c2d;background:#171819;overflow:auto}.brand{font-family:Georgia,serif;font-size:34px;letter-spacing:2px;color:#eee8dd;text-decoration:none;display:flex;align-items:center;gap:18px}.brand span{font:9px sans-serif;letter-spacing:3px;color:#99948b}.portrait{height:290px;position:relative;overflow:hidden;border-radius:140px 140px 12px 12px;margin:30px 0 25px;background:radial-gradient(ellipse at 50% 25%,#766858 0,#3e3934 40%,#202224 78%);border:1px solid #48423a;display:grid;place-items:center}.halo{position:absolute;width:180px;height:230px;border:1px solid #9d8a6e55;border-radius:50%;transform:rotate(-25deg)}.portrait-letter{font:italic 110px Georgia,serif;color:#d4c5ad99}.photo-label{position:absolute;bottom:18px;font:8px sans-serif;letter-spacing:2px;color:#bcb0a0}.eyebrow{font:9px sans-serif;letter-spacing:2.5px;color:#bba98d}h1{font-size:30px;font-weight:500;margin:12px 0}h1 small{font:italic 19px Georgia,serif;color:#a99d8d;margin-left:12px}.bio{color:#a8a7a4;font-size:12px;line-height:2}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.tags span{font-size:10px;border:1px solid #3d3b36;border-radius:20px;padding:6px 9px;color:#bcb6ad}.detail{margin-top:25px;padding-top:20px;border-top:1px solid #333331;font-size:11px;color:#8c8b88}.detail p{color:#c1beb9}.local{margin-top:30px;font:9px sans-serif;letter-spacing:1px;color:#b4b0a8;display:flex;align-items:center;gap:7px}.local i{width:5px;height:5px;border-radius:50%;background:#9da88a}.local span{margin-left:auto;font:10px sans-serif;color:#747b71}main{display:flex;flex-direction:column;min-width:0;min-height:0;background:radial-gradient(ellipse at 65% 5%,#22221f55,transparent 65%)}header{height:95px;flex-shrink:0;display:flex;align-items:center;padding:0 38px;gap:14px;border-bottom:1px solid #292a2c}.avatar{width:40px;height:40px;border:1px solid #66594b;border-radius:50%;background:#3b342c;display:grid;place-items:center;font:italic 22px Georgia;color:#c6b494}.heading h2{font-size:15px;font-weight:500;margin:0 0 5px}.heading p{font-size:10px;color:#8c8c88;margin:0}.demo{margin-left:auto;font:9px sans-serif;color:#b5a88e;letter-spacing:1px;border:1px solid #51493d;border-radius:5px;padding:6px 8px}.clear{background:none;border:0;color:#888b8d;font-size:10px;padding:8px}.notice{font-size:10px;color:#a39c8e;background:#b5a07c0b;padding:12px 38px;line-height:1.7;border-bottom:1px solid #b5a07c15}.notice span{color:#c9b696;margin-right:7px}.messages{flex:1;overflow:auto;padding:30px 42px;scrollbar-width:thin;scrollbar-color:#45423b transparent}.intro{text-align:center;padding:55px 0 38px}.intro h3{font-size:22px;font-weight:400;letter-spacing:1px;margin:18px 0 12px}.intro p{font-size:12px;color:#7f8283}.message{display:flex;flex-direction:column;align-items:flex-start;margin:20px 0;max-width:85%}.message.user{align-items:flex-end;margin-left:auto}.sender{font-size:9px;color:#868984;margin:0 4px 7px}.message p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;font-size:13px;padding:14px 18px;background:#232527;border:1px solid #343637;border-radius:3px 16px 16px 16px}.message.user p{background:#3e3830;border-color:#574b3a;color:#e6dccd;border-radius:16px 3px 16px 16px}footer{padding:18px 38px 20px;border-top:1px solid #252628;background:#141517}.tools{display:flex;gap:10px;align-items:center;margin-bottom:14px}.tools button{font-size:11px;background:transparent;border:1px solid #3b3c3b;border-radius:8px;color:#c0bdb6;padding:9px 11px}.tools button:hover{border-color:#8e7d61;background:#25221d}.tools button span{font-size:9px;color:#8e8b83;margin-left:8px}.tools-note{font-size:9px;color:#747778;margin-left:auto}form{display:flex;align-items:flex-end;gap:12px;background:#202224;border:1px solid #3e4141;border-radius:14px;padding:12px 13px 12px 18px}textarea{flex:1;min-width:0;background:none;border:0;resize:none;color:#eee8dd;font:13px/1.7 "Yu Gothic UI","Meiryo",sans-serif;padding:6px 0;max-height:130px}textarea:focus{outline:none}form:focus-within{border-color:#9c886b}textarea::placeholder{color:#747877}#send{width:36px;height:36px;flex-shrink:0;border:0;border-radius:10px;background:#d0b58b;color:#27231d;font-size:23px}#send:disabled{background:#3a3c3a;color:#777a75;cursor:default}.footnote{display:flex;justify-content:space-between;margin-top:10px;font-size:9px;color:#717571}#status{font-size:11px;color:#c6b28f;margin:8px 0 0}#status:empty{display:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:1200px){main{padding:0 30px}}@media(max-width:760px){.app{grid-template-columns:1fr;min-height:0}.profile{display:flex;align-items:center;gap:14px;padding:15px 20px;border-right:0;border-bottom:1px solid #333;height:84px;overflow:hidden}.brand{font-size:25px}.brand span,.portrait,.bio,.tags,.detail,.local,.profile-copy .eyebrow{display:none}.profile-copy{margin-left:auto}h1{font-size:20px;margin:0}h1 small{font-size:14px}.app{display:flex;flex-direction:column}main{flex:1}header{height:72px;padding:0 18px;gap:10px}.notice{padding:10px 18px;font-size:9px}.messages{padding:18px}.intro{padding:30px 0 18px}.intro h3{font-size:19px}footer{padding:12px 16px 16px}.tools{gap:7px}.tools button{padding:8px;font-size:10px}.tools-note{display:none}.message{max-width:92%}.demo{font-size:8px;padding:5px}.clear{font-size:9px;padding:4px}.footnote{font-size:8px;gap:8px}}
:root{--rose:#d695a9}#send{background:var(--rose)}.message.user p{background:#402c35;border-color:#63414f}.eyebrow{color:#cfa2af}.demo{color:#dca8b9;border-color:#63424e}.portrait{background:radial-gradient(ellipse at 50% 25%,#75505e 0,#3d2b33 40%,#202124 78%);border-color:#60424f}.avatar{background:#3b2832;border-color:#795462;color:#d9a8ba}form:focus-within{border-color:#aa7186}

:root .profile{display:flex;flex-direction:column;justify-content:center}.portrait{margin:0 0 22px;height:370px}.profile-copy h1{text-align:center;font-size:26px}.clear{margin-left:auto;font-size:23px}.messages{padding-top:20px}.sender{display:none}footer{padding-bottom:24px}.message{margin:16px 0}@media(max-width:760px){:root .profile{display:none}header{height:68px}footer{padding-bottom:16px}}

.app{grid-template-columns:220px minmax(0,1fr)}.sidebar{background:#111214;border-right:1px solid #292a2c;padding:30px 16px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar button{display:flex;align-items:center;gap:13px;width:100%;padding:14px 12px;border:0;border-radius:9px;background:none;color:#a7a7aa;text-align:left;font-size:13px}.sidebar button span{width:22px;text-align:center;font-size:20px;color:#c0c0c5}.sidebar button:hover{color:#fff;background:#202124}.sidebar button.selected{background:#2a2a2d;color:#fff}header h2{font-size:17px;font-weight:500;margin:0}header{height:78px}@media(max-width:760px){.app{display:grid;grid-template-columns:60px minmax(0,1fr)}.sidebar{padding:16px 6px}.sidebar button{font-size:0;gap:0;padding:13px 9px;justify-content:center}.sidebar button span{font-size:21px}main{min-height:0}header{height:68px;padding:0 18px}.messages{padding:14px}footer{padding:12px}.tools button{padding:8px}.message{max-width:95%}}

.message.assistant{width:max-content;max-width:85%}.photo-request{align-self:flex-end;margin-top:8px;padding:8px 12px;border:0;border-radius:8px;background:#ba5c80;color:#fff;font-size:11px}.photo-request:hover{background:#d47196}dialog{width:380px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 36px);overflow:auto;border:1px solid #414044;border-radius:16px;background:#1a1a1d;color:#ece9eb;padding:22px;box-shadow:0 24px 80px #0009}dialog::backdrop{background:#000b}#photo-form{display:block;background:none;padding:0;border:0;border-radius:0}.modal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal-heading h2{font-size:18px;font-weight:500;margin:0}#photo-close{background:none;color:#a9a6aa;border:0;font-size:25px;padding:0 4px}#photo-prompt{display:block;width:100%;height:130px;min-height:130px;max-height:180px;padding:13px;border:1px solid #444047;border-radius:10px;background:#222225;font-size:12px;resize:vertical}#photo-prompt:focus-visible{outline:2px solid #bd7b95;outline-offset:2px}.modal-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;font-size:13px}.modal-row select{font:inherit;color:#dedbdf;background:#27272b;border:1px solid #444047;border-radius:7px;padding:8px 10px;max-width:60%}.modal-row input{appearance:none;width:36px;height:21px;background:#4b464b;border-radius:20px;cursor:pointer;position:relative;margin:0}.modal-row input:before{content:'';position:absolute;width:15px;height:15px;left:3px;top:3px;background:#fff;border-radius:50%}.modal-row input:checked{background:#bd6285}.modal-row input:checked:before{left:18px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:30px}.modal-actions button{padding:10px 13px;border:1px solid #49434b;border-radius:8px;color:#d4ced6;background:#27242a;font-size:12px}.modal-actions .request{background:#bb5e83;border-color:#bb5e83;color:#fff}body:has(dialog[open]){overflow:hidden}@media(max-width:760px){.message.assistant{max-width:95%}dialog{padding:20px}}

.avatar-edit{display:block;width:36px;height:36px;flex-shrink:0;padding:0;border:0;border-radius:50%;background:#493942;overflow:hidden;cursor:pointer}.character-avatar{width:100%;height:100%;object-fit:cover;display:block}header{gap:12px}.message.assistant{position:relative;margin-left:46px}.message-avatar{position:absolute;left:-46px;top:0;width:32px;height:32px}.message-actions{display:flex;justify-content:space-between;align-items:center;width:100%;gap:16px;margin-top:8px}.message-actions .photo-request{margin-top:0}.speaker{display:grid;place-items:center;width:28px;height:28px;border:1px solid #444047;border-radius:50%;padding:6px;background:transparent;color:#b9b5ba}.speaker svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.message.assistant{max-width:calc(85% - 46px)}@media(max-width:760px){.message.assistant{margin-left:38px;max-width:calc(100% - 38px)}.message-avatar{left:-38px;width:28px;height:28px}.message-actions{gap:10px}.photo-request{padding:8px 9px;font-size:10px}}

.sidebar nav{gap:4px;justify-content:flex-start;align-items:stretch}.sidebar button{height:40px;min-height:40px;flex:0 0 40px;padding:8px 12px}.sidebar button span{font-size:19px}.speaker{width:32px;height:32px;border-radius:9px}@media(max-width:760px){.sidebar button{padding:8px 9px}.sidebar button span{font-size:19px}}
.avatar-edit,.message-avatar{width:40px;height:40px;flex-shrink:0;border-radius:50%}.message.assistant{margin-left:52px;max-width:calc(85% - 52px)}.message-avatar{left:-52px}@media(max-width:760px){.avatar-edit,.message-avatar{width:40px;height:40px}.message.assistant{margin-left:50px;max-width:calc(100% - 50px)}.message-avatar{left:-50px}}

.generated-image{display:block;max-width:100%;width:420px;height:auto;border-radius:14px;border:1px solid #423d42}.generated-message{width:min(420px,85%)}.photo-request:disabled,.request:disabled{opacity:.45;cursor:default}.retry{align-self:flex-end}@media(max-width:760px){.generated-message{width:calc(100% - 50px)}}

.bubble{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;font-size:13px;padding:14px 18px;background:#232527;border:1px solid #343637;border-radius:3px 16px 16px 16px;max-width:100%}.message .bubble p{background:none;border:0;border-radius:0;margin:0;padding:0;font:inherit}.message.user .bubble{background:#402c35;border-color:#63414f;color:#e6dccd;border-radius:16px 3px 16px 16px}.attachments:empty{display:none}.attachment{margin-top:12px;white-space:normal}.image-thumb{display:block;padding:0;border:0;background:none;border-radius:10px;overflow:hidden;max-width:100%;width:220px;cursor:zoom-in}.image-thumb img{display:block;width:100%;height:auto;border-radius:10px}.generation-note{font-size:11px;color:#bdb4bb}.retry{margin-left:10px;font-size:11px;padding:5px 8px;border:1px solid #735464;border-radius:7px;background:#3f2b35;color:#e1c6d2}.message.assistant{max-width:calc(85% - 52px)}#image-viewer{width:auto;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:0;border:0;background:transparent;overflow:visible;box-shadow:none}#full-image{display:block;max-width:calc(100vw - 48px);max-height:calc(100dvh - 80px);width:auto;height:auto;object-fit:contain;border-radius:12px}#image-close{position:absolute;right:0;top:-36px;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:#333a;color:#fff;font-size:25px}#image-viewer::backdrop{background:#000d}@media(max-width:760px){.message.assistant{max-width:calc(100% - 50px)}.bubble{padding:12px}.image-thumb{width:220px}}

.speaker.loading{color:#d49bb0;cursor:wait}.speaker.playing{color:#e8b3c7;border-color:#9f6780;background:#402c35}.speaker:disabled{opacity:.8}

.image-loading{width:220px;max-width:100%;aspect-ratio:9/16;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;border-radius:10px;background:linear-gradient(145deg,#2c272e,#202125);color:#c6bac2;font-size:11px;letter-spacing:.04em}.image-spinner{width:30px;height:30px;border:2px solid #d695a926;border-top-color:#d695a9;border-radius:50%;animation:image-spin .85s linear infinite}@keyframes image-spin{to{transform:rotate(360deg)}}

.attachment:empty{display:none}.photo-request.is-loading{display:flex;align-items:center;gap:8px;border:1px solid #ca7697;background:transparent;color:#e4b1c5;min-width:127px}.photo-request.is-loading:disabled{opacity:1}.photo-request .image-spinner{display:block;width:14px;height:14px;flex-shrink:0;border-width:1.5px}#image-viewer{width:min(980px,calc(100vw - 32px));max-height:calc(100dvh - 24px);padding:0;border:1px solid #38363b;border-radius:16px;background:#222125;overflow:hidden;box-shadow:0 24px 100px #0009}.viewer-top{height:38px;display:flex;align-items:center;padding:0 8px;background:#27262a}#image-close{position:static;margin-left:auto;width:28px;height:28px;background:none;color:#d0cbd1;font-size:23px}.viewer-layout{display:grid;grid-template-columns:55% 45%;max-height:calc(100dvh - 62px);overflow:auto}.viewer-image{position:relative;height:min(74dvh,680px);min-width:0;background:#141416}.viewer-image #full-image{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;border-radius:0}.viewer-caption{display:flex;flex-direction:column;justify-content:center;padding:36px;color:#ebe6ec;min-width:0}.viewer-caption h2{font-size:19px;font-weight:500;margin:0 0 16px}.viewer-caption p{font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.viewer-speaker{position:absolute;bottom:14px;left:14px;width:42px;height:34px;border:0;border-radius:9px;background:#fff;color:#353039}.viewer-speaker.playing{background:#fff;color:#9e476c}.viewer-actions{position:absolute;bottom:14px;right:14px;display:flex;gap:8px}.viewer-actions button{display:grid;place-items:center;width:34px;height:34px;padding:7px;border:0;border-radius:8px;background:#0006;color:#fff}.viewer-actions svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.viewer-actions .liked{color:#e292ae}.viewer-actions .liked svg{fill:#e292ae}#image-viewer.expanded{width:min(1100px,calc(100vw - 32px))}#image-viewer.expanded .viewer-layout{display:block}#image-viewer.expanded .viewer-caption{display:none}#image-viewer.expanded .viewer-image{height:calc(100dvh - 78px);max-height:none}@media(max-width:760px){#image-viewer{width:calc(100vw - 24px)}.viewer-layout{grid-template-columns:1fr}.viewer-image{height:min(52dvh,430px)}.viewer-caption{padding:23px 24px;min-height:120px}.viewer-caption h2{font-size:17px;margin-bottom:10px}.viewer-caption p{font-size:13px}#image-viewer.expanded{width:calc(100vw - 24px)}}

.message.assistant .reply-part{margin-bottom:8px;max-width:100%;align-self:flex-start}.message.assistant .turn-main{align-self:flex-start}.message.assistant .reply-part,.message.assistant .turn-main{width:fit-content}.chat-retry{margin-top:8px;border:1px solid #735464;border-radius:7px;background:#3f2b35;color:#e1c6d2;padding:5px 8px;font:inherit;font-size:11px}
