:root{color-scheme:dark;--bg:#202635;--panel:#2b3244;--panel2:#30384b;--line:#454c5f;--text:#f1eee6;--muted:#b5b8c3;--gold:#e6c492;--pink:#e4a8ad;--green:#b1cbb7;--radius:18px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#374052 0,transparent 65%),var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:14px;line-height:1.65}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid transparent;min-height:44px;border-radius:10px;padding:10px 16px;color:var(--text);background:var(--panel2)}button:hover{filter:brightness(1.12)}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}[hidden]{display:none!important}.shell{max-width:1180px;margin:auto;padding:0 36px}header{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12}.brand{display:flex;gap:12px;align-items:center;color:var(--text);text-decoration:none;font-weight:700;font-size:19px;letter-spacing:.06em}.brand-icon{font-size:31px;color:var(--gold)}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.14em;font-weight:500}.account{display:flex;align-items:center;gap:12px;color:var(--muted)}.quiet{background:transparent;border-color:var(--line);color:var(--muted)}main{min-height:65vh}.intro{display:flex;align-items:center;justify-content:space-between;padding:29px 0 22px}.eyebrow{font-size:10px;letter-spacing:.2em;font-weight:600;color:var(--gold);margin:0 0 8px}h1{font-size:28px;letter-spacing:.06em;margin:0;font-weight:600}.private-badge{font-size:11px;border:1px solid #ffffff18;border-radius:99px;color:var(--green);padding:6px 12px}.scene{height:250px;position:relative;overflow:hidden;border:1px solid #655b5c;border-radius:18px;background:linear-gradient(0deg,#65504b 0 27%,#958075 27% 29%,#4b454a 29% 100%);box-shadow:inset 0 0 60px #171c2850}.scene:before{content:"";position:absolute;inset:71% 0 0;background:repeating-linear-gradient(0deg,transparent 0 24px,#493d3d66 24px 26px),repeating-linear-gradient(90deg,transparent 0 100px,#493d3d44 100px 102px)}.window{position:absolute;left:10%;top:25px;width:108px;height:112px;background:#26344e;border:9px solid #b29880;box-shadow:0 5px #342e38,0 0 0 3px #39333a}.window:after{content:"";position:absolute;left:43px;top:0;width:5px;height:100%;background:#b29880}.window:before{content:"";position:absolute;left:0;top:43px;height:5px;width:100%;background:#b29880;z-index:1}.moon{position:absolute;right:13px;top:12px;width:22px;height:22px;background:#f7d79e;box-shadow:3px 3px #f7d79e,-3px -3px #f7d79e}.moon:after{content:"";position:absolute;right:-4px;top:-5px;width:18px;height:18px;background:#26344e}.star{position:absolute;width:3px;height:3px;background:#d4cbb7}.s1{top:20px;left:13px}.s2{top:66px;right:15px}.s3{top:78px;left:27px}.shelf{position:absolute;right:13%;top:44px;width:145px;height:49px;border-bottom:8px solid #b19278;box-shadow:0 4px #352e34;display:flex;align-items:flex-end;gap:5px;padding:0 14px}.shelf i{width:14px;height:31px;background:#b0b7a1;border-top:4px solid #d1d4bc;border-bottom:4px solid #d1d4bc}.shelf i:nth-child(2){height:36px;background:#b4878d;border-color:#d5acac;transform:rotate(-7deg)}.shelf i:nth-child(3){height:26px;background:#9eacc0;border-color:#bdc6d3}.shelf span{font-size:25px;margin-left:11px;color:#ecc894}.lamp{position:absolute;left:40%;top:18px;width:80px;height:140px;background:radial-gradient(ellipse at top,#f6c77d27,transparent 70%)}.lamp:before{content:"";position:absolute;left:39px;top:-20px;height:40px;width:3px;background:#c9ad88}.lamp i{display:block;position:absolute;left:14px;top:13px;border-bottom:23px solid #e8c28e;border-left:10px solid transparent;border-right:10px solid transparent;width:54px;filter:drop-shadow(0 8px 15px #e9bd8270)}.plant{position:absolute;right:6%;top:111px;width:36px;height:75px}.plant b{position:absolute;bottom:0;width:32px;height:28px;background:#c28e77;border-top:6px solid #d3a48c;box-shadow:3px 3px #493c3e}.plant i{position:absolute;left:14px;top:6px;width:6px;height:44px;background:#95a88a;box-shadow:-9px -2px #95a88a,-15px -8px #95a88a,9px -8px #95a88a,15px -14px #95a88a,-6px -20px #95a88a}.rug{position:absolute;left:27%;right:23%;bottom:32px;height:65px;border:5px solid #b38383;background:repeating-linear-gradient(90deg,#996e74 0 12px,#a77a7c 12px 15px);transform:skewX(-12deg);box-shadow:inset 0 0 0 4px #d0a19a}.table{position:absolute;left:44%;top:145px;width:105px;height:35px;background:#bb9679;border:5px solid #d5b294;box-shadow:0 5px #76544d;z-index:3}.table:before,.table:after{content:"";position:absolute;top:30px;height:23px;width:7px;background:#77584e}.table:before{left:3px}.table:after{right:3px}.table i{position:absolute;left:12px;top:-11px;width:12px;height:14px;background:#dbd1bb;border-bottom:4px solid #c1af9a}.table b{position:absolute;right:17px;top:7px;width:30px;height:12px;background:#b4bda8;transform:rotate(-8deg)}.scene-people{position:absolute;inset:0}.person{position:absolute;bottom:52px;z-index:4;text-align:center;width:66px}.person:nth-child(1){left:25%}.person:nth-child(2){left:36%;bottom:60px}.person:nth-child(3){right:29%;bottom:59px}.person:nth-child(4){right:18%}.person svg{width:48px;height:64px;image-rendering:pixelated;filter:drop-shadow(0 4px 0 #27253455)}.person-label{font-size:10px;line-height:1;background:#292a3999;border-radius:4px;padding:3px 7px}.speech{position:absolute;bottom:94px;left:50%;transform:translateX(-50%);min-width:85px;max-width:160px;width:max-content;background:#f3e8d7;color:#544540;border:2px solid #c9b59c;border-radius:8px;padding:5px 9px;font-size:11px;overflow-wrap:anywhere;box-shadow:2px 3px #29253450}.speech:after{content:"";position:absolute;bottom:-6px;left:50%;width:8px;height:8px;background:#f3e8d7;border-right:2px solid #c9b59c;border-bottom:2px solid #c9b59c;transform:rotate(45deg)}.scene-caption{position:absolute;bottom:11px;left:0;right:0;text-align:center;font-size:10px;color:#e5d4c4;letter-spacing:.05em}.lamp-dot{display:inline-block;width:5px;height:5px;background:#f2d4a3;margin-right:5px}.workspace-grid{display:grid;grid-template-columns:210px 1fr;gap:26px;padding-top:28px}aside{padding:12px 0}.room-button{width:100%;display:flex;align-items:center;gap:10px;background:transparent;text-align:left;border-radius:11px;margin-bottom:7px;color:var(--muted)}.room-button.active{background:#414657;color:var(--text);box-shadow:inset 3px 0 var(--gold)}.room-symbol{font-size:19px;width:22px;color:var(--gold)}.unread{margin-left:auto;min-width:21px;padding:1px 5px;border-radius:99px;background:var(--gold);color:#403b3d;font-size:10px;text-align:center}.members{border-top:1px solid var(--line);margin-top:25px;padding-top:23px}.member{display:flex;gap:10px;align-items:center;margin-top:13px}.avatar{flex:none;width:33px;height:33px;display:grid;place-items:center;background:#56536a;border-radius:11px;color:#f5eadc;font-weight:600;font-size:12px}.avatar.rei{background:#486478}.avatar.noa{background:#6c587d}.avatar.mei{background:#58705f}.avatar.arisa{background:#815f67}.member-text{font-size:12px}.member-text small{display:block;font-size:10px;color:var(--muted)}.help{border-top:1px solid var(--line);margin-top:24px;padding-top:13px;color:var(--muted);font-size:11px}.help summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.help summary:before{content:"＋";margin-right:7px}.help[open] summary:before{content:"−"}.chat{background:var(--panel);border:1px solid #51566888;border-radius:var(--radius);overflow:hidden;position:relative;min-width:0}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:18px 23px;border-bottom:1px solid var(--line);gap:10px}h2{font-size:17px;margin:0}.chat-header p{font-size:11px;color:var(--muted);margin:3px 0 0}#connection{font-size:10px;color:var(--green);white-space:nowrap}.history{height:370px;overflow:auto;overscroll-behavior:contain;padding:22px;scrollbar-color:#646a7c transparent;scrollbar-width:thin}.message{display:flex;align-items:flex-start;gap:10px;margin-bottom:21px}.message .avatar{width:32px;height:32px}.message-main{min-width:0;max-width:88%}.message-meta{display:flex;align-items:center;gap:10px;margin-bottom:5px;font-size:11px}.message-meta time{color:var(--muted);font-size:10px}.message-body{white-space:pre-wrap;overflow-wrap:anywhere;background:#373f52;border:1px solid #4a516666;padding:10px 14px;border-radius:0 12px 12px;font-size:13px}.message.mine .message-body{background:#454553;border-color:#70647466}.message.mine .message-meta strong:after{content:" · あなた";font-weight:400;color:var(--muted)}.older{display:block;margin:0 auto 22px;font-size:11px}.empty{text-align:center;padding:70px 5px;color:var(--muted)}.empty>span{font-size:34px;color:var(--gold)}.empty h3{font-size:15px;color:var(--text);font-weight:500;margin:14px 0 6px}.empty p{font-size:12px;margin:0}#compose{padding:15px 20px 17px;border-top:1px solid var(--line)}textarea,input,select{color:var(--text);background:#232b3b;border:1px solid #565c6b;border-radius:9px;padding:12px;width:100%;outline:none}textarea{min-height:75px;max-height:200px;resize:vertical;display:block}textarea::placeholder{color:#9b9eab}.compose-footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px;color:var(--muted);font-size:10px}.primary{background:var(--gold);color:#3b3540;min-width:90px;font-weight:600}.primary span{margin-left:14px}.new-messages{position:absolute;bottom:165px;left:50%;transform:translateX(-50%);font-size:11px;box-shadow:0 3px 15px #0004;background:#e6c492;color:#322e35;min-height:35px}.login-card{max-width:430px;margin:65px auto;background:var(--panel);border:1px solid var(--line);padding:36px;border-radius:20px;box-shadow:0 20px 60px #0f172433}.login-card>p:not(.eyebrow){color:var(--muted);font-size:12px;margin:17px 0 23px}.login-card label{display:block;margin:15px 0 6px;font-size:12px}.login-card .primary{width:100%;margin-top:24px}.login-card>small{display:block;color:var(--muted);text-align:center;font-size:10px;margin-top:21px}.error{color:#ffb8b5;font-size:12px}.error:empty{display:none}.chat-error{padding:10px 22px;margin:0;background:#613d4844}.loading{text-align:center;padding:110px 10px;color:var(--gold)}footer{display:flex;justify-content:center;align-items:center;gap:12px;color:#9396a5;font-size:10px;padding:32px 0 24px;letter-spacing:.06em}footer span{color:var(--gold)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.shell{padding:0 18px}header{height:78px}.brand{font-size:16px}.brand small{font-size:7px}.brand-icon{font-size:26px}.intro{padding:22px 0 17px}.intro h1{font-size:24px}.eyebrow{font-size:9px}.private-badge{font-size:9px;padding:5px 8px}.scene{height:224px}.window{left:7%;width:88px;height:100px}.window:after{left:33px}.shelf{right:9%;width:110px}.lamp{left:39%}.plant{right:4%}.person:nth-child(1){left:17%}.person:nth-child(2){left:33%}.person:nth-child(3){right:28%}.person:nth-child(4){right:12%}.table{left:41%;width:85px;top:130px}.rug{left:18%;right:13%}.workspace-grid{display:block;padding-top:14px}aside{padding:0}aside>.eyebrow,.members,.help{display:none}#rooms{display:flex;gap:6px;margin-bottom:12px}.room-button{padding:10px 7px;margin:0;justify-content:center;font-size:11px;gap:5px;border:1px solid var(--line)}.room-symbol{font-size:16px;width:auto}.room-button.active{box-shadow:inset 0 -2px var(--gold)}.unread{margin-left:0}.chat-header{padding:16px}.chat-header p{font-size:10px}.history{height:360px;padding:18px 14px}.message-main{max-width:85%}#compose{padding:13px}.keyboard-hint{display:none}.message-body{font-size:13px}.account{font-size:10px;gap:6px}.account button{padding:8px 9px}.speech{max-width:110px;font-size:10px}.person svg{width:42px;height:56px}.person{width:52px}.login-card{padding:27px;margin:35px auto}textarea,input,select{font-size:16px}.scene-caption{font-size:9px}.chat{border-radius:14px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}@supports(padding:max(0px)){.shell{padding-bottom:env(safe-area-inset-bottom)}}

/* Keep the one latest speech balloon inside the room at narrow widths. */
@media(max-width:760px){.person:first-child .speech{left:0;transform:none}.person:first-child .speech:after{left:20px}.person:last-child .speech{left:auto;right:0;transform:none}.person:last-child .speech:after{left:auto;right:20px}}
