:root{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:#51455f;background:#eae4f1;font-size:16px;color-scheme:light}*{box-sizing:border-box}body{margin:0}button,textarea,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:default}button:focus-visible,textarea:focus-visible{outline:3px solid #a784c4;outline-offset:3px}.room{max-width:1320px;margin:auto;height:100dvh;min-height:540px;display:grid;grid-template-columns:46% 54%;padding:28px;gap:22px}.portrait{position:relative;overflow:hidden;isolation:isolate;border-radius:28px;background:linear-gradient(150deg,#f8f5fc,#d9cde8)}.room-title{position:absolute;z-index:2;left:28px;top:27px}.room-title span{font-family:Georgia,serif;letter-spacing:.2em;font-size:12px}.room-title h1{font-family:serif;font-weight:500;font-size:25px;margin:12px 0}.room-title small{font-size:12px;color:#81728e}.halo{position:absolute;width:115%;aspect-ratio:1;left:-7%;top:20%;border:1px solid #ffffffb0;border-radius:50%;box-shadow:0 0 0 40px #ffffff26,0 0 0 80px #ffffff17}#character{position:absolute;width:100%;height:89%;object-fit:contain;object-position:bottom;bottom:0;image-rendering:pixelated;transform-origin:50% 90%;animation:breathe 5s ease-in-out infinite}.portrait-caption{position:absolute;bottom:23px;left:25px;font-size:14px;padding:12px 18px;border-radius:20px;background:#fffc;backdrop-filter:blur(8px)}.portrait-caption span{margin-left:18px}.chat{background:#fdfbff;display:flex;flex-direction:column;min-height:0;overflow:hidden;border:1px solid #d4c7e1;border-radius:28px;box-shadow:0 15px 50px #72608112}.chat header{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid #e6deed;background:#fcfaff}.chat header img{width:46px;height:46px;border-radius:50%;object-fit:cover;background:#e8dff1}.chat h2{font-size:20px;margin:0;letter-spacing:.04em}.chat header p{font-size:12px;margin:4px 0 0;color:#95839f}.chat header button{margin-left:auto;border:0;background:none;font-size:22px;padding:8px}#messages{flex:1;overflow:auto;overscroll-behavior:contain;padding:12px 22px 20px;scroll-behavior:smooth}.day{text-align:center;font-size:12px;color:#8a7899;margin:16px auto 22px}.row{display:flex;align-items:flex-end;gap:7px;margin:10px 0;animation:arrive .2s ease-out}.row.mine{flex-direction:row-reverse}.bubble{background:#eee7f4;border-radius:4px 19px 19px;padding:13px 17px;max-width:82%;line-height:1.8;font-size:16px;white-space:pre-wrap;overflow-wrap:anywhere}.mine .bubble{background:#89739f;color:white;border-radius:19px 4px 19px 19px}.meta{font-size:12px;color:#9a8da3;white-space:nowrap;line-height:1.6;min-width:35px}.mine .meta{text-align:right}.sticker{width:145px;height:145px;object-fit:contain}.row.sticker-row{margin:6px 0}.row.sticker-row .bubble{background:transparent;padding:0}.row.mine.sticker-row .bubble{background:transparent}#typing{height:25px;flex-shrink:0;padding:0 25px;font-size:12px;color:#927c9e}#choices{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px}#choices:not(:empty){padding-bottom:12px}#choices button{border:1px solid #d7c7e4;background:#fff;border-radius:20px;padding:8px 15px;font-size:14px}#stamps{padding:8px 15px;border-top:1px solid #e6deed;background:#f3edf8}#stamps:not([hidden]){display:flex;justify-content:space-around}#stamps button{border:0;background:none;width:20%;padding:3px}#stamps img{width:100%;max-width:90px}#composer{display:flex;gap:10px;align-items:center;margin:4px 18px 0;padding:9px;border:1px solid #d8cce3;background:white;border-radius:24px}#composer textarea{resize:none;border:0;background:transparent;flex:1;min-width:0;max-height:100px;line-height:1.6;padding:5px;color:#51455f}#composer button{border:0;background:transparent;width:38px;height:38px;border-radius:50%;font-size:22px;flex-shrink:0}#composer #send{background:#89739f;color:white}#save-status{margin:8px 24px 12px;font-size:12px;color:#9b8ca5;text-align:right}dialog{border:1px solid #d8cce3;border-radius:24px;padding:26px;max-width:440px;width:calc(100% - 32px);color:#51455f}dialog::backdrop{background:#35243e66;backdrop-filter:blur(3px)}dialog h2{font-size:22px}dialog p{font-size:14px;line-height:1.9}dialog button,.file-button{display:block;padding:12px 15px;border:1px solid #d8cce3;border-radius:12px;background:#f3edf8;margin:12px 0;width:100%;text-align:center;cursor:pointer}dialog .close{width:35px;margin:0 0 0 auto;border:0;background:none;padding:0;font-size:28px}.file-button input{display:none}dialog .note{color:#8a7899}dialog .danger{background:white;color:#a24c6e}@keyframes breathe{50%{transform:translateY(-3px) rotate(.2deg)}}@keyframes arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(max-width:760px){.room{padding:0;gap:0;min-height:0;grid-template-columns:1fr;grid-template-rows:30% 70%}.portrait{border-radius:0}.room-title{left:18px;top:22px;width:40%}.room-title h1{font-size:19px;line-height:1.6}.room-title span{font-size:10px}.room-title small{font-size:12px}#character{width:62%;height:185%;right:-3%;bottom:-78%;object-position:top}.portrait-caption{display:none}.halo{width:70%;left:36%;top:-25%}.chat{border-radius:22px 22px 0 0;border-bottom:0;margin-top:-15px;z-index:3}.chat header{padding:11px 17px}.chat h2{font-size:18px}.chat header img{width:38px;height:38px}#messages{padding:4px 14px 12px}.bubble{font-size:16px;padding:10px 13px;max-width:80%}.sticker{width:120px;height:120px}#composer{margin:0 10px;padding:5px}#save-status{margin:5px 18px max(7px,env(safe-area-inset-bottom))}#typing{height:21px}#stamps img{max-height:68px;object-fit:contain}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
:root{--sticker-size:190px}.sticker{width:var(--sticker-size);height:var(--sticker-size)}.chat header #affection{margin-left:auto;border:1px solid #d9cbe4;background:#f2eaf7;border-radius:18px;padding:5px 9px;font-size:13px;white-space:nowrap;min-height:36px}.chat header #settings{margin-left:0}.chat header{gap:10px}#remembered{white-space:pre-wrap;overflow-wrap:anywhere}#stamps img{max-width:105px}#stamps{padding:8px 5px}@media(max-width:760px){:root{--sticker-size:175px}.chat header{gap:7px;padding-left:12px;padding-right:10px}.chat header h2{font-size:17px}.chat header #affection{font-size:12px;padding:4px 8px}.chat header #settings{padding:5px}#stamps img{max-height:85px}.row.sticker-row .bubble{max-width:calc(100% - 48px)}.sticker{max-width:100%;object-fit:contain}}@media(max-width:350px){.chat header h2{font-size:15px}.chat header img{width:30px;height:30px}} 
