/* Increase the radius of all rounded UI surfaces. */
.lucide{width:1em;height:1em;stroke-width:2;flex:none}.top-actions button,.chat-form button,.join-card form button,.screen-chip{display:inline-flex;align-items:center;justify-content:center;gap:7px}.panel-head button{display:grid;place-items:center}.screen-chip{gap:4px}
.avatar .status{top:auto!important;right:-14px!important;bottom:-10px!important;padding:4px!important;display:grid;place-items:center}.avatar .status .lucide{width:15px;height:15px}.avatar .status [aria-label]{font-size:0}

#world-boundary-glow{position:absolute;z-index:1;width:260px;height:260px;transform:translate(-50%,-50%);border:1px solid rgba(206,201,255,.8);border-radius:50%;box-shadow:0 0 22px 7px rgba(165,156,251,.42),inset 0 0 20px rgba(165,156,251,.18);opacity:0;pointer-events:none;transition:opacity .25s ease,left .25s ease,top .25s ease}
#app[data-theme="dawn"]{background:radial-gradient(circle at 48% 42%,#39404b 0,#20242b 48%,#111318 100%)}#app[data-theme="aurora"]{background:radial-gradient(circle at 48% 42%,#263b3c 0,#172326 48%,#0c1113 100%)}
.top-actions button,.avatar .status,.avatar .screen-chip,.bubble,.chat-form,.chat-form button,.control,.screen-panel,.toast,.join-card,.join-card input,.join-card form button,#zoom-indicator,.message-card,.following-message,.history-panel,.icon-picker{border-radius:var(--ui-radius,17px)!important}
.avatar .status,.avatar .screen-chip{--ui-radius:12px}.bubble{--ui-radius:22px}.chat-form{--ui-radius:26px}.chat-form button,.join-card input,.join-card form button{--ui-radius:15px}.control{--ui-radius:19px}.screen-panel,.history-panel{--ui-radius:24px}.toast{--ui-radius:15px}.join-card{--ui-radius:37px}.message-card{--ui-radius:29px}.following-message{--ui-radius:26px}#zoom-indicator{--ui-radius:14px}.icon-picker,.top-actions button{--ui-radius:17px}
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;color:#ececeb;background:#0d0e10}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer}#app{height:100dvh;min-height:500px;position:relative;overflow:hidden;background:radial-gradient(circle at 48% 42%,#1b1c20 0,#111214 48%,#0a0b0d 100%)}.topbar{height:74px;position:absolute;inset:0 0 auto;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.brand{font-weight:700;letter-spacing:-.025em;font-size:17px}.brand-mark{color:#afadff;font-size:23px;margin-right:8px}.room-name{font-weight:400;color:#797b82;margin-left:10px}.top-actions{display:flex;align-items:center;gap:16px;color:#93959a;font-size:13px}.top-actions button{border:1px solid #36383c;border-radius:10px;background:#25262a;color:#f0f0f0;padding:9px 13px}#space{position:absolute;inset:0;overflow:hidden}.ambient{position:absolute;width:54vw;height:54vw;border:1px solid rgba(255,255,255,.035);border-radius:50%;left:50%;top:47%;transform:translate(-50%,-50%);pointer-events:none}.ambient-two{width:32vw;height:32vw;border-color:rgba(255,255,255,.025)}.space-hint{position:absolute;top:104px;left:50%;transform:translateX(-50%);color:#55575c;font-size:12px;letter-spacing:.03em;pointer-events:none}.avatar{position:absolute;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#7564c9,#3c9caa);border:3px solid #dad7ff;box-shadow:0 7px 32px #0008;z-index:2;user-select:none;touch-action:none;transition:left .16s linear,top .16s linear}.avatar.self{z-index:3;cursor:grab}.avatar.dragging{cursor:grabbing;transition:none}.avatar .face{font-size:27px}.avatar .label{position:absolute;top:66px;white-space:nowrap;color:#d8d8da;font-size:12px;text-shadow:0 2px 6px #000}.avatar .status{position:absolute;top:-13px;right:-18px;background:#24262b;border:1px solid #41444b;border-radius:7px;padding:4px 6px;font-size:13px;white-space:nowrap}.avatar .screen-chip{position:absolute;top:-27px;left:50%;transform:translateX(-50%);padding:5px 8px;border:1px solid #696285;border-radius:7px;background:#332f45;color:#e9dfff;font-size:11px;white-space:nowrap;cursor:pointer}.range{position:absolute;border-radius:50%;border:1px solid rgba(185,179,255,.13);background:rgba(148,137,255,.012);transform:translate(-50%,-50%);pointer-events:none}.range.inner{border-color:rgba(185,179,255,.22)}.bubble{position:absolute;left:50%;bottom:75px;transform:translateX(-50%) scale(.88);opacity:0;min-width:90px;max-width:240px;padding:10px 13px;background:#2b2d32;border:1px solid #44464c;border-radius:13px;color:#f5f5f6;font-size:13px;line-height:1.4;overflow-wrap:anywhere;box-shadow:0 8px 30px #0007;animation:pop .3s ease forwards;pointer-events:none}.bubble:after{content:"";position:absolute;left:calc(50% - 5px);bottom:-6px;width:10px;height:10px;background:#2b2d32;border-right:1px solid #44464c;border-bottom:1px solid #44464c;transform:rotate(45deg)}@keyframes pop{to{opacity:1;transform:translateX(-50%) scale(1)}}.bubble.fading{opacity:0;transition:opacity .6s}.bottom{position:absolute;z-index:6;bottom:23px;left:50%;transform:translateX(-50%);width:min(600px,calc(100% - 30px));display:flex;align-items:center;flex-direction:column;gap:13px}.chat-form{width:100%;height:54px;display:flex;align-items:center;border:1px solid #3a3b40;background:rgba(39,40,44,.96);border-radius:15px;box-shadow:0 16px 50px #0007}.chat-form input{height:100%;flex:1;min-width:0;border:0;outline:0;background:none;color:#fff;padding:0 18px}.chat-form input::placeholder{color:#8d8e93}.chat-form button{border:0;background:#7770e8;color:#fff;border-radius:10px;margin-right:7px;width:38px;height:38px;font-size:22px}.controls{display:flex;gap:8px}.control{height:43px;border:1px solid #3b3c41;border-radius:11px;background:#26272b;color:#e1e1e4;padding:0 15px;display:flex;align-items:center;gap:8px}.control.active{background:#614754;border-color:#a35572}.control.sharing{background:#4d416d;border-color:#8a75be}.screen-panel{position:absolute;z-index:7;right:24px;top:90px;width:min(44vw,620px);height:min(54vh,460px);background:#1d1e22;border:1px solid #46474e;border-radius:14px;box-shadow:0 20px 70px #000a;display:flex;flex-direction:column;overflow:hidden}.screen-panel.hidden{display:none}.panel-head{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:13px;color:#d7d7dc;border-bottom:1px solid #37383d}.panel-head button{background:none;border:0;color:#aaa;font-size:24px}.screen-panel video{width:100%;height:calc(100% - 44px);object-fit:contain;background:#09090a}.screen-panel video.hidden{display:none}#screen-empty{display:none;align-items:center;justify-content:center;flex:1;color:#85858a;font-size:13px}.toast{position:absolute;z-index:10;bottom:143px;left:50%;transform:translateX(-50%);background:#33353a;border:1px solid #4c4e54;border-radius:9px;color:#fff;font-size:12px;padding:9px 13px;opacity:0;pointer-events:none;transition:opacity .2s}.toast.show{opacity:1}.overlay{position:absolute;inset:0;background:#0b0c0eea;z-index:20;display:grid;place-items:center}.overlay.hidden{display:none}.join-card{width:min(420px,calc(100vw - 38px));padding:32px;text-align:center;background:#1a1b1f;border:1px solid #35363c;border-radius:22px;box-shadow:0 30px 100px #000a}.join-icon{font-size:36px;color:#a59cfb}.eyebrow{font-size:10px;letter-spacing:.22em;color:#a8a1f5;margin:13px 0 5px}.join-card h1{font-size:35px;letter-spacing:-.05em;margin:0 0 10px}.intro{color:#a4a5aa;font-size:14px;line-height:1.6;margin:0 0 28px}.join-card form{text-align:left}.join-card label{display:block;font-size:12px;color:#aaaab0;margin-bottom:8px}.join-card input{width:100%;height:46px;background:#28292e;border:1px solid #414248;border-radius:9px;color:#fff;padding:0 13px;outline:none}.join-card form button{width:100%;height:47px;margin-top:12px;background:#8c81ee;border:0;border-radius:9px;color:#fff;font-weight:700}.join-card form button span{float:right;margin-right:10px}.note{color:#74757b;font-size:11px;margin:18px 0 0}@media(max-width:650px){.topbar{padding:0 17px}.top-actions #online{display:none}.room-name{display:none}.screen-panel{right:10px;left:10px;top:78px;width:auto;height:40vh}.ambient{width:95vw;height:95vw}.ambient-two{width:58vw;height:58vw}.control{padding:0 11px}.control span{display:none}.bottom{bottom:15px}}
.join-card form button#join-silent{margin-top:8px;background:transparent;border:1px solid #414248;color:#aaa;font-weight:500}

/* The viewport follows the local avatar while the world stays in fixed coordinates. */
#world{position:absolute;left:0;top:0;width:3200px;height:2200px;transform-origin:0 0;background:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:160px 160px}
#avatars{position:absolute;inset:0}
#zoom-indicator{position:absolute;right:32px;bottom:28px;color:#888992;font-size:12px;background:#24252a;border:1px solid #38393e;border-radius:8px;padding:7px 10px;pointer-events:none}
@media(max-width:650px){#zoom-indicator{right:14px;bottom:15px}.space-hint{width:90%;text-align:center;line-height:1.5}}
.avatar.sharing{z-index:5}
.avatar.has-icon{background-size:cover;background-position:center;border-color:#dedee6}.avatar.has-icon .face{display:none}
#messages{position:absolute;inset:0;pointer-events:none}
.message-card{width:252px;max-width:252px;padding:11px 13px;background:#252527;color:#f4f4f5;border:1px solid #393a3f;border-radius:17px;box-shadow:0 12px 30px #0007;overflow-wrap:anywhere}
.message-head{display:flex;align-items:center;gap:7px;min-height:26px;max-height:30px;overflow:hidden;transition:max-height .35s ease,opacity .25s ease,margin .35s ease}.message-icon{width:25px;height:25px;flex:none;border-radius:50%;display:grid;place-items:center;background-color:#43464b;background-size:cover;background-position:center;color:#d7d1ff;font-size:12px}.message-author{font-size:12px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-time{font-size:10px;color:#858588;white-space:nowrap;margin-left:auto}.message-body{font-size:13px;line-height:1.4;white-space:pre-wrap;transition:margin .35s ease}
.world-message{position:absolute;z-index:4;pointer-events:none;transition:left .45s cubic-bezier(.2,.8,.2,1),top .45s cubic-bezier(.2,.8,.2,1),width .4s ease,padding .35s ease,border-radius .35s ease,opacity 3s linear}
.following-message{left:50%;bottom:73px;width:210px;max-width:210px;padding:9px 12px;border-radius:15px;transform:translateX(-50%);text-align:center;transition:none}
.following-message::after{content:"";position:absolute;bottom:-7px;left:calc(50% - 7px);width:12px;height:12px;transform:rotate(45deg);background:#252527;border-right:1px solid #393a3f;border-bottom:1px solid #393a3f}
.following-message .message-head{max-height:0;min-height:0;opacity:0;margin:0}.following-message .message-body{margin:0;font-size:13px}
.placed-message .message-head{margin-bottom:5px}.placed-message .message-body{margin-left:32px}
.world-message.fading{opacity:0}
.history-panel{position:absolute;z-index:8;top:90px;right:24px;width:min(390px,calc(100vw - 30px));height:min(60vh,570px);display:flex;flex-direction:column;background:#1b1c20;border:1px solid #3d3e43;border-radius:14px;box-shadow:0 20px 70px #000a;overflow:hidden}.history-panel.hidden{display:none}#history-list{overflow:auto;flex:1;padding:12px;display:flex;flex-direction:column;gap:10px}.history-panel .message-card{width:100%;max-width:none;min-width:0;padding:12px;background:#252527}.history-panel .message-author{font-size:14px}.history-panel .message-time{font-size:12px}.history-panel .message-body{font-size:14px}
.icon-picker{display:flex!important;align-items:center;gap:12px;margin:14px 0 0!important;padding:10px;border:1px solid #414248;border-radius:10px;cursor:pointer;color:#eee!important;font-size:14px!important}.icon-picker small{display:block;color:#85858b;font-size:11px;margin-top:3px}#icon-preview{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:50%;background:#55516b center/cover;color:#ddd}#icon-file{position:absolute;width:1px;height:1px;opacity:0}
@media(max-width:650px){.history-panel{top:77px;right:10px}.controls{gap:5px}.control{padding:0 10px}}
.avatar.self{transition:none}
#datetime{position:absolute;left:50%;transform:translateX(-50%);font-size:13px;color:#babac0;white-space:nowrap;font-variant-numeric:tabular-nums}
:where(button,input,.message-card,.history-panel,.screen-panel,.toast,.join-card,.chat-form,.icon-picker,.status,.screen-chip,#zoom-indicator){corner-shape:squircle}
@media(max-width:650px){#datetime{top:69px;font-size:11px}.space-hint{top:112px}}

/* Settings: flat rows, system-like rounded controls. */
.settings-overlay{position:absolute;inset:0;z-index:15;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.66);backdrop-filter:blur(8px)}
.settings-overlay.hidden{display:none}
.settings-dialog{position:relative;top:auto;left:auto;transform:none;width:min(460px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden;border:1px solid #39393d;border-radius:30px;background:#202023;box-shadow:0 24px 72px #0009;color:#f5f5f7;corner-shape:squircle}
.settings-head{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 24px;border-bottom:1px solid #353538;background:#202023}
.settings-head h2{margin:0;font-size:19px;font-weight:700;letter-spacing:-.03em}
.settings-close{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:11px;background:#323236;color:#c6c6ca;font-size:17px}
.settings-form{display:flex;flex-direction:column;gap:0;min-height:0;padding:0}
.settings-content{overflow:auto;min-height:0;padding:0 24px}
.settings-section{padding:20px 0;border-bottom:1px solid #37373a}
.settings-section:last-child{border-bottom:0}
.settings-section h3{margin:0 0 16px;color:#a8a8ae;font-size:12px;font-weight:600}
.settings-profile-row{display:flex;align-items:center;gap:14px;margin-bottom:18px}
#settings-icon-preview{display:grid;place-items:center;flex:none;width:62px;height:62px;border:1px solid #606066;border-radius:21px;background:#46464c center/cover;color:#ececf0;font-size:29px;corner-shape:squircle}
.settings-avatar-actions{display:flex;align-items:center;gap:14px}
.settings-file-button{padding:0;border:0;background:transparent;color:#f3f3f5;font-size:13px;font-weight:600;cursor:pointer}
.settings-text-button{padding:0;border:0;background:transparent;color:#a7a7ad;font-size:13px}
.settings-text-button:disabled{opacity:.35;cursor:not-allowed}
.settings-dialog #settings-icon-file{position:absolute;width:1px;height:1px;opacity:0}
.settings-field{display:grid;gap:8px;color:#d4d4d8;font-size:13px}
.settings-field input{width:100%;height:42px;padding:0 12px;border:1px solid #4b4b50;border-radius:13px;background:#2b2b2e;color:#fff;outline:none;font-size:14px}
.settings-field input:focus{border-color:#929299;box-shadow:0 0 0 3px #ffffff15}
.theme-options{display:flex;gap:0}
.theme-option{position:relative;display:flex;align-items:center;justify-content:center;gap:9px;flex:1;min-height:43px;padding:0 6px 10px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#a8a8ae;font-size:13px}
.theme-option.active{border-color:#f2f2f4;background:transparent;box-shadow:none;color:#f2f2f4}
.theme-swatch{display:block;flex:none;width:14px;height:14px;border:1px solid #77777d;border-radius:50%;background:#202127}
.theme-swatch.dawn{background:#5b6069}.theme-swatch.aurora{background:#315a55}
.theme-swatch::before,.theme-swatch::after,.theme-swatch span{display:none}
.theme-name{padding:0;font-weight:500}
.theme-check{display:none}
.settings-invite{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px;padding:0;border:0;border-radius:0;background:transparent}
.settings-invite strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}
.settings-invite button{display:inline-flex;align-items:center;gap:5px;flex:none;padding:0;border:0;border-radius:0;background:transparent;color:#d6d6da;font-size:12px;font-weight:500}
.settings-invite button .lucide{font-size:13px}
.settings-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:15px 24px;border-top:1px solid #353538;background:#202023}
.settings-cancel,.settings-save{height:38px;padding:0 17px;border-radius:12px;font-size:13px;font-weight:600;white-space:nowrap}
.settings-cancel{border:0;background:transparent;color:#b8b8bd}
.settings-save{border:0;background:#eeeeef;color:#1a1a1c}
.settings-dialog :where(button,.settings-file-button):focus-visible{outline:2px solid #eee;outline-offset:3px}
.settings-field input:focus-visible{outline:none}
.settings-dialog :where(button,input,.settings-file-button){corner-shape:squircle}
@media(max-width:600px){.settings-overlay{padding:10px}.settings-dialog{max-height:calc(100dvh - 20px);border-radius:26px}.settings-head{height:58px;padding:0 20px}.settings-content{padding:0 20px}.settings-footer{padding:12px 20px}}
