@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2?dpl=dpl_GqpY6FRNGmF4DNthJcKpVqTNimph)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2?dpl=dpl_GqpY6FRNGmF4DNthJcKpVqTNimph)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2?dpl=dpl_GqpY6FRNGmF4DNthJcKpVqTNimph)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2?dpl=dpl_GqpY6FRNGmF4DNthJcKpVqTNimph)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2?dpl=dpl_GqpY6FRNGmF4DNthJcKpVqTNimph)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2?dpl=dpl_GqpY6FRNGmF4DNthJcKpVqTNimph)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2?dpl=dpl_GqpY6FRNGmF4DNthJcKpVqTNimph)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2?dpl=dpl_GqpY6FRNGmF4DNthJcKpVqTNimph)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2?dpl=dpl_GqpY6FRNGmF4DNthJcKpVqTNimph)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2?dpl=dpl_GqpY6FRNGmF4DNthJcKpVqTNimph)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2?dpl=dpl_GqpY6FRNGmF4DNthJcKpVqTNimph)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--gold:#d9b46a;--gold-bright:#f3d79b;--ink:#0b0d12;--ink-2:#11141c;--panel:#10131bb8;--panel-solid:#11141c;--border:#d9b46a47;--text:#ece7dd;--text-dim:#9aa1ad;--radius:14px;--shadow:0 10px 40px #00000080}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--text);font-family:var(--font-geist-sans), system-ui, -apple-system, sans-serif;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;margin:0;padding:0;overflow:hidden}#world-root,.world-canvas{width:100vw;height:100dvh;position:fixed;inset:0}button{cursor:pointer;font-family:inherit}.join-screen{background:radial-gradient(1200px 800px at 50% -10%, #d9b46a1f, transparent 60%), radial-gradient(900px 700px at 50% 120%, #3c5aa01f, transparent 60%), var(--ink);z-index:50;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.join-card{background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border);width:min(440px,100%);box-shadow:var(--shadow);text-align:center;border-radius:20px;padding:36px 32px}.join-card h1{letter-spacing:.16em;margin:16px 0 2px;font-size:30px;font-weight:800}.join-card .brand-accent{color:var(--gold)}.join-card .subtitle{color:var(--text-dim);letter-spacing:.04em;margin:0 0 24px;font-size:14px}.field-label{text-align:left;text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);margin:16px 0 6px;font-size:12px;display:block}.text-input{border:1px solid var(--border);width:100%;color:var(--text);background:#0000004d;border-radius:10px;outline:none;padding:13px 14px;font-size:16px}.text-input:focus{border-color:var(--gold)}.swatches{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:30px;height:30px;transition:transform .1s}.swatch[data-active=true]{border-color:#fff;transform:scale(1.12)}.avatar-presets{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.preset-btn{border:1px solid var(--border);color:var(--text);background:#00000040;border-radius:999px;padding:8px 14px;font-size:13px;transition:background .12s,border-color .12s,color .12s}.preset-btn[data-active=true]{background:var(--gold);border-color:var(--gold);color:#20170a;font-weight:700}.enter-btn{background:linear-gradient(180deg, var(--gold-bright), var(--gold));color:#20170a;letter-spacing:.04em;border:none;border-radius:10px;width:100%;margin-top:26px;padding:14px;font-size:16px;font-weight:700;transition:filter .15s,transform 50ms}.enter-btn:hover{filter:brightness(1.05)}.enter-btn:active{transform:translateY(1px)}.enter-btn:disabled{opacity:.5;cursor:not-allowed}.join-meta{color:var(--text-dim);margin-top:18px;font-size:12px}.join-meta a{color:var(--gold);text-decoration:none}.status-line{min-height:18px;margin-top:12px;font-size:13px}.status-line.error{color:#ff8e72}.hud{pointer-events:none;z-index:20;position:fixed;inset:0}.hud>*{pointer-events:auto}.topbar{pointer-events:none;background:linear-gradient(#080a0fcc,#0000);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex;position:absolute;top:0;left:0;right:0}.topbar>*{pointer-events:auto}.topbar-brand{letter-spacing:.12em;align-items:center;gap:10px;font-weight:700;display:flex}.topbar-brand small{color:var(--text-dim);letter-spacing:.06em;font-weight:500}.pill{background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:7px;padding:7px 13px;font-size:13px;display:inline-flex}.dot{background:#6c7280;border-radius:50%;width:8px;height:8px}.dot.connected{background:#4ade80;box-shadow:0 0 8px #4ade80}.dot.connecting{background:var(--gold)}.dot.error{background:#ff6b6b}.dock{background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);border-radius:16px;gap:10px;padding:10px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.ctrl-btn{border:1px solid var(--border);width:50px;height:50px;color:var(--text);background:#ffffff0a;border-radius:12px;place-items:center;transition:background .15s,border-color .15s;display:grid}.ctrl-btn:hover{background:#ffffff1a}.ctrl-btn[data-on=true]{background:var(--gold);color:#20170a;border-color:var(--gold)}.ctrl-btn:disabled{opacity:.4;cursor:not-allowed}.ctrl-btn[data-danger=true]:hover{color:#fff;background:#c0392b;border-color:#c0392b}.ctrl-btn svg{width:22px;height:22px}.settings-panel{background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:270px;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:12px;padding:14px;display:flex;position:absolute;bottom:calc(100% + 12px);right:0}.settings-title{letter-spacing:.06em;text-transform:uppercase;opacity:.75;font-size:12px;font-weight:700}.settings-row{flex-direction:column;gap:5px;font-size:13px;display:flex}.settings-row>span{opacity:.85}.settings-row select{border:1px solid var(--border);width:100%;color:var(--text);background:#ffffff0d;border-radius:9px;padding:7px 8px;font-size:13px}.settings-row select:disabled{opacity:.45}.settings-row input[type=range]{width:100%;accent-color:var(--gold)}.settings-note{opacity:.55;margin:0;font-size:11px;line-height:1.4}.chat{flex-direction:column;gap:8px;width:min(340px,80vw);display:flex;position:absolute;bottom:18px;left:18px}.chat-log{scrollbar-width:thin;flex-direction:column;gap:6px;max-height:34vh;padding-right:4px;display:flex;overflow-y:auto}.chat-msg{background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);word-break:break-word;border-radius:10px;padding:7px 10px;font-size:13px;line-height:1.35}.chat-msg .author{margin-right:6px;font-weight:700}.chat-msg.system{color:var(--text-dim);text-align:center;background:0 0;border:none;padding:2px;font-style:italic}.chat-input-row{gap:8px;display:flex}.chat-input{border:1px solid var(--border);background:var(--panel);color:var(--text);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;outline:none;flex:1;padding:11px 12px;font-size:14px}.chat-input:focus{border-color:var(--gold)}.right-rail{pointer-events:none;flex-direction:column;align-items:flex-end;gap:10px;max-height:calc(100dvh - 90px);display:flex;position:absolute;top:58px;right:14px}.media-affordances{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.mic-indicator{color:#eafff1;background:radial-gradient(circle at 50% 44%, rgba(34, 197, 94, calc(.45 + .5 * var(--mic-level,0))), #124626e6);border:1.5px solid rgba(74, 222, 128, calc(.5 + .5 * var(--mic-level,0)));width:46px;height:46px;box-shadow:0 0 calc(6px + 30px * var(--mic-level,0)) rgba(34, 197, 94, calc(.35 + .55 * var(--mic-level,0))), inset 0 0 10px #00000073;transform:scale(calc(1 + .12 * var(--mic-level,0)));border-radius:50%;place-items:center;transition:transform 50ms linear;display:grid}.mic-indicator svg{width:22px;height:22px}.media-chip{letter-spacing:.03em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:12px;font-weight:600;display:inline-flex}.media-chip svg{width:16px;height:16px}.media-chip.sharing{color:#eafff1;background:#22c55e29;border:1px solid #4ade8099;animation:1.8s ease-in-out infinite sharePulse}@keyframes sharePulse{0%,to{box-shadow:0 0 9px #22c55e4d}50%{box-shadow:0 0 20px #22c55e9e}}.video-strip{pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;max-height:70vh;display:flex;overflow-y:auto}.video-tile{aspect-ratio:4/3;border:1px solid var(--border);width:168px;box-shadow:var(--shadow);background:#000;border-radius:12px;position:relative;overflow:hidden}.video-tile video{object-fit:cover;width:100%;height:100%}.video-tile .name{background:#0000008c;border-radius:6px;padding:2px 7px;font-size:11px;position:absolute;bottom:6px;left:6px}.video-tile.self .name{background:var(--gold);color:#20170a}.video-tile.self.mic-live{border-color:rgba(74, 222, 128, calc(.3 + .7 * var(--mic-level,0)));box-shadow:0 0 calc(3px + 26px * var(--mic-level,0)) rgba(34, 197, 94, calc(.18 + .62 * var(--mic-level,0))), var(--shadow);transition:box-shadow 60ms linear,border-color 60ms linear}.hint{color:var(--text-dim);background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;border-radius:999px;padding:6px 14px;font-size:12px;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.stand-btn{border:1px solid var(--gold);background:var(--gold);color:#20170a;letter-spacing:.03em;box-shadow:var(--shadow);border-radius:999px;padding:9px 22px;font-size:14px;font-weight:700;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.stand-btn:hover{filter:brightness(1.05)}.touch-joystick{border:1px solid var(--border);touch-action:none;z-index:25;background:#ffffff0f;border-radius:50%;width:130px;height:130px;position:absolute;bottom:90px;left:24px}.touch-joystick .nub{background:var(--gold);opacity:.85;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%}.touch-look{z-index:24;touch-action:none;width:55%;position:absolute;top:0;bottom:0;right:0}@media (max-width:720px){.chat{width:min(260px,64vw)}.chat-log{max-height:24vh}.video-tile{width:116px}}
