@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-ext-wght-normal-DdQaqQDo.woff2)format("woff2-variations");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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-wght-normal-Bc-8i84L.woff2)format("woff2-variations");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}:root{--bg:#0b0a1a;--bg-grad:radial-gradient(1100px 600px at 85% -15%, #5b3da047 0%, transparent 60%), linear-gradient(180deg, #0b0a1a 0%, #0e0c20 100%);--surface:#13112a;--surface-2:#1a1834;--surface-solid:#13112a;--input:#0f0d22;--line:#ffffff14;--line-strong:#ffffff24;--text:#ecebf5;--muted:#9c98b8;--g1:#c4b5fd;--g2:#a78bfa;--g3:#f9a8d4;--dew:#7ee8d0;--star:#e9e3ff;--accent:#8b5cf6;--accent-hover:#7c4ef0;--accent-ink:#fff;--accent-soft:#8b5cf624;--danger:#f87185;--glow:none;--shadow:0 1px 2px #0000004d, 0 12px 32px -18px #000000b3;--shadow-lg:0 24px 60px -24px #000c, 0 0 0 1px #ffffff0f;--moon-edge:#d9cfee;--planet-shadow:#3b1d6e;--nebula-1:#a78bfa38;--nebula-2:#f9a8d424;--nebula-3:#7ee8d01a;--radius:14px;--serif:"Fraunces Variable", "Iowan Old Style", Georgia, serif;--sans:"Outfit Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f6f0ff;--bg-grad:radial-gradient(1000px 520px at 85% -15%, #c4b5fd59 0%, transparent 60%), linear-gradient(180deg, #f7f5fc 0%, #f6f4fb 100%);--surface:#fff;--surface-2:#f6f4fb;--surface-solid:#fff;--input:#fff;--line:#281c5a1a;--line-strong:#281c5a2e;--text:#1f1840;--muted:#6b6488;--g1:#a78bfa;--g2:#7c3aed;--g3:#ec4899;--dew:#14b8a6;--star:#8b5cf6;--accent:#6d4ae0;--accent-hover:#5d3bd0;--accent-ink:#fff;--accent-soft:#6d4ae01a;--danger:#d6264d;--glow:none;--shadow:0 1px 2px #1f18400f, 0 8px 24px -16px #1f18402e;--shadow-lg:0 24px 60px -24px #1f18404d, 0 0 0 1px #281c5a14;--moon-edge:#c4b0f2;--planet-shadow:#5b21b6;--nebula-1:#c4b5fd73;--nebula-2:#fbcfe88c;--nebula-3:#bae6fd80;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);background-image:var(--bg-grad);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;background-attachment:fixed;font-size:15px;transition:background-color .4s,color .4s}#root{z-index:1;position:relative}button,input{font:inherit;color:inherit}h1,h2{line-height:1.2;font-family:var(--serif);letter-spacing:-.015em;margin:0 0 8px;font-weight:600}h2{font-size:1.3rem}h3{letter-spacing:-.005em;margin:0 0 8px;font-size:1rem;font-weight:600;line-height:1.3}p{margin:0 0 12px;line-height:1.55}::selection{background:color-mix(in srgb, var(--g2) 40%, transparent)}.muted{color:var(--muted)}.small{font-size:.83rem}.center{text-align:center}.grow{flex:1;min-width:0}.error{color:var(--danger);font-size:.9rem}.hidden{display:none!important}.gradient-text{color:var(--accent);font-style:normal}.splash{height:100%;color:var(--muted);align-content:center;place-items:center;gap:14px;display:grid}.splash .logo-mark{animation:3s ease-in-out infinite floaty}.sky{z-index:0;pointer-events:none;opacity:.7;transition:opacity .6s;position:fixed;inset:0;overflow:hidden}.sky.dim{opacity:.3}:root[data-theme=light] .sky{opacity:.5}.sky canvas{width:100%;height:100%;position:absolute;inset:0}.nebula{display:none}.nebula.n1{background:var(--nebula-1);width:46vw;height:46vw;top:-12vw;left:-10vw}.nebula.n2{background:var(--nebula-2);width:40vw;height:40vw;animation-delay:-8s;top:25vh;right:-12vw}.nebula.n3{background:var(--nebula-3);width:36vw;height:36vw;animation-delay:-15s;bottom:-18vw;left:25vw}input{background:var(--input);border:1px solid var(--line);border-radius:10px;outline:none;width:100%;padding:10px 13px;transition:border-color .2s,box-shadow .2s,background .2s}input::placeholder{color:var(--muted);opacity:.8}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}label{color:var(--muted);gap:6px;font-size:.88rem;display:grid}.btn{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:.92rem;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s,color .15s;display:inline-flex;position:relative;overflow:hidden}.btn:hover{background:var(--surface-2);border-color:color-mix(in srgb, var(--text) 22%, transparent)}.btn:active{transform:translateY(.5px)}.btn:focus-visible{box-shadow:0 0 0 3px var(--accent-soft), 0 0 0 1px var(--accent);outline:none}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn.primary{color:var(--accent-ink);background:var(--accent);border-color:#0000;box-shadow:0 1px 2px #00000026}.btn.primary:hover{background:var(--accent-hover)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{color:var(--danger)}.btn.sm{border-radius:8px;padding:6px 11px;font-size:.85rem}.btn.icon{padding:8px}.btn.sm.icon{padding:6px}.btn.wide{width:100%;padding:13px;font-size:1rem}.btn.round{border-radius:50%;width:48px;height:48px;padding:0}.btn.round.off{background:color-mix(in srgb, var(--danger) 14%, transparent);border-color:color-mix(in srgb, var(--danger) 35%, transparent);color:var(--danger)}.btn.round.on{background:color-mix(in srgb, var(--dew) 14%, transparent);border-color:color-mix(in srgb, var(--dew) 40%, transparent);color:var(--dew)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.row{align-items:center;gap:8px;display:flex}.label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 6px;font-size:.72rem;font-weight:600}.brand{align-items:center;gap:10px;display:inline-flex}.wordmark{font-family:var(--serif);letter-spacing:-.015em;font-size:1.2rem;font-weight:600}.wordmark em{color:var(--accent);padding:0 1px;font-style:italic;font-weight:400}.brand.big .wordmark{font-size:1.7rem}.logo-mark{flex:none}.theme-toggle{cursor:pointer;background:0 0;border:0;border-radius:99px;padding:4px}.theme-toggle:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--g2) 45%, transparent);outline:none}.tt-track{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:99px;width:48px;height:26px;transition:background .3s;display:block;position:relative}.tt-knob{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;transition:left .25s,background .25s;display:grid;position:absolute;top:2px;left:24px;box-shadow:0 1px 3px #0000004d}.theme-toggle.light .tt-knob{background:#f59e0b;left:2px}.avatar{color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid;position:relative;box-shadow:inset 0 0 0 1px #ffffff26}.avatar .dot{border:2px solid var(--surface-solid);background:#6b6590;border-radius:50%;width:32%;min-width:8px;height:32%;min-height:8px;position:absolute;bottom:-1px;right:-1px}.avatar .dot.on{background:#22c55e}.stack{display:flex}.stack .avatar+.avatar{margin-left:-7px}.list-row{border-radius:12px;align-items:center;gap:11px;padding:8px 6px;transition:background .2s;display:flex}.list-row:hover{background:var(--surface)}.list-row .hover-only{opacity:0}.list-row:hover .hover-only,.list-row .hover-only:focus{opacity:1}.pill{background:var(--surface-2);color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:99px;padding:3px 9px;font-size:.72rem}.pill.running{color:var(--dew);border-color:color-mix(in srgb, var(--dew) 40%, transparent);background:color-mix(in srgb, var(--dew) 12%, transparent)}.pill.running:before{content:"";background:var(--dew);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:6px;animation:1.6s infinite pulse;display:inline-block}.pill.error{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.badge{background:var(--accent);color:#fff;border-radius:99px;padding:1px 7px;font-size:.7rem}.toasts{z-index:100;gap:8px;width:min(420px,100vw - 32px);display:grid;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{background:var(--surface-solid);border:1px solid var(--line-strong);border-left:3px solid var(--accent);box-shadow:var(--shadow-lg);border-radius:10px;padding:11px 14px;font-size:.92rem;animation:.2s ease-out rise}.toast.error{border-left-color:var(--danger)}.auth-wrap{grid-template-columns:1.15fr 1fr;align-items:center;gap:56px;max-width:1120px;min-height:100%;margin:0 auto;padding:32px 24px 48px;display:grid}.auth-top{z-index:5;position:fixed;top:16px;right:16px}.auth-hero>*{animation:.5s both fadeIn}.auth-hero>:nth-child(2){animation-delay:80ms}.auth-hero>:nth-child(3){animation-delay:.16s}.auth-hero>:nth-child(4){animation-delay:.24s}.auth-hero>:nth-child(5){animation-delay:.32s}.auth-hero h1{letter-spacing:-.025em;margin:26px 0 14px;font-size:clamp(2rem,4.4vw,3.1rem);font-weight:500}.auth-hero h1 em{font-style:italic}.auth-hero .lead{color:var(--muted);max-width:470px;font-size:1.1rem}.hero-art{width:min(440px,100%);height:auto;margin-top:8px;display:block}.chips{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.chip{background:var(--surface);border:1px solid var(--line);border-radius:99px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:inline-flex}.chip svg{color:var(--accent)}.auth-card{box-shadow:var(--shadow-lg);gap:15px;padding:28px;animation:.4s both fadeIn;display:grid;position:relative}.auth-card h2{margin:0;font-size:1.6rem}.tabs{background:var(--input);border:1px solid var(--line);border-radius:12px;padding:4px;display:flex}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:9px;flex:1;padding:9px;font-weight:500;transition:background .25s,color .25s}.tabs button.active{background:var(--surface-2);color:var(--text);box-shadow:0 2px 10px -4px #00000059}.topbar{z-index:10;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex;position:sticky;top:0}.topbar-right,.me{align-items:center;gap:10px;display:flex}.me-name{font-size:.9rem;line-height:1.2;display:grid}.greeting{max-width:1180px;margin:0 auto;padding:32px 24px 0;animation:.6s both fadeUp}.greeting h1{margin-bottom:4px;font-size:clamp(1.5rem,2.8vw,2rem);font-weight:600}.dash-grid{grid-template-columns:1fr 350px;gap:22px;max-width:1180px;margin:0 auto;padding:22px 24px 48px;display:grid}.col{align-content:start;gap:22px;display:grid}.col>*{animation:.35s both fadeIn}.col>:nth-child(2){animation-delay:80ms}.col>:nth-child(3){animation-delay:.16s}.create-room{position:relative;overflow:hidden}.create-room>*{z-index:1;position:relative}.room-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:10px;display:grid}.room-card{text-align:left;background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:12px;gap:12px;padding:14px 16px;transition:border-color .15s,box-shadow .15s;display:grid;position:relative;overflow:hidden}.room-card:hover,.room-card:focus-visible{border-color:color-mix(in srgb, var(--accent) 45%, transparent);box-shadow:var(--shadow);outline:none}.room-card>*{position:relative}.room-card-top{justify-content:space-between;align-items:start;gap:8px;display:flex}.room-card-top strong{font-size:.98rem;font-weight:600}.empty{text-align:center;justify-items:center;padding:10px 0 4px;display:grid}.empty-orbit{width:140px;height:auto;margin-bottom:4px}.room{flex-direction:column;height:100%;display:flex}.room-top{border-bottom:1px solid var(--line);background:var(--surface);z-index:2;align-items:center;gap:12px;padding:9px 14px;display:flex;position:relative}.room-title{min-width:0;margin-right:auto;line-height:1.25;display:grid}.room-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:600;overflow:hidden}.room-body{flex:1;grid-template-columns:1fr 350px;min-height:0;display:grid}.stage-col{flex-direction:column;gap:10px;min-width:0;padding:14px;display:flex}.stage{border-radius:var(--radius);border:1px solid var(--line);min-height:240px;box-shadow:var(--shadow);background:#05040d;flex:1;position:relative;overflow:hidden}.stage iframe{border:0;width:100%;height:100%;animation:.6s both fadeIn;position:absolute;inset:0}.stage-empty{text-align:center;color:#efeaff;background:radial-gradient(600px 300px at 50% 20%,#a78bfa2e,#0000 70%),linear-gradient(#0d0a20,#05040d);place-content:center;justify-items:center;gap:4px;padding:24px;display:grid;position:absolute;inset:0}.stage-empty .muted{color:#a39cc8}.stage-empty p{max-width:430px}.stage-empty .btn.ghost{color:#c9c2e8}.quiet-moon{width:150px;height:auto;margin-bottom:8px}.loader{width:74px;height:74px;margin-bottom:18px;position:relative}.loader:before,.loader:after{content:"";border:2px solid #0000;border-radius:50%;position:absolute;inset:0}.loader:before{border-top-color:var(--g1);border-right-color:var(--g3);animation:1.1s linear infinite spin}.loader:after{border-bottom-color:var(--dew);animation:1.6s linear infinite reverse spin;inset:12px}.loader span{background:radial-gradient(circle, #fff, var(--g2));box-shadow:0 0 20px var(--g2);border-radius:50%;animation:1.4s infinite pulse;position:absolute;inset:28px}.stage:fullscreen{border:0;border-radius:0}.reactions{pointer-events:none;position:absolute;inset:0;overflow:hidden}.reactions span{filter:drop-shadow(0 4px 12px #0006);font-size:2.3rem;animation:2.6s ease-out forwards floatUp;position:absolute;bottom:10px}.stage-bar{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}.control-info{align-items:center;gap:8px;font-size:.9rem;display:flex}.control-info>svg{color:var(--muted)}.control-actions{gap:6px;display:flex}.reaction-picker{gap:2px;display:flex}.emoji{cursor:pointer;background:0 0;border:0;border-radius:10px;padding:4px 5px;font-size:1.15rem;transition:transform .15s cubic-bezier(.3,1.8,.5,1),background .15s}.emoji:hover{background:var(--surface-2);transform:scale(1.12)}.requests{gap:6px;display:grid}.request{background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:14px;align-items:center;gap:10px;padding:9px 12px;font-size:.9rem;animation:.4s both rise;display:flex}.request>span:not(.avatar){flex:1}.side{border-left:1px solid var(--line);background:var(--surface);flex-direction:column;min-height:0;display:flex}.tiles{flex:none;place-content:center;gap:9px;padding:12px;display:grid;overflow-y:auto}.tiles-empty{grid-column:1/-1;margin:auto;padding:10px}.tile{aspect-ratio:16/10;background:var(--surface-2);border:2px solid var(--line);border-radius:14px;transition:border-color .2s,box-shadow .2s;animation:.4s both popIn;position:relative;overflow:hidden}.tile.speaking{border-color:var(--dew);box-shadow:0 0 0 3px color-mix(in srgb, var(--dew) 25%, transparent), 0 0 24px -4px var(--dew)}.tile video{object-fit:cover;width:100%;height:100%;display:block}.tile-avatar{place-items:center;display:grid;position:absolute;inset:0}.tile-avatar .avatar{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 16%, transparent)}.tile.speaking .tile-avatar .avatar{animation:1.2s infinite ripple}.tile-label{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080614a6;border-radius:8px;align-items:center;gap:5px;max-width:calc(100% - 12px);padding:3px 8px;font-size:.78rem;display:flex;position:absolute;bottom:6px;left:6px}.tile-label span:not(.tile-muted):not(.tile-drive){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tile-muted{color:#ff9aac;display:flex}.tile-drive{color:#c4b5fd;display:flex}.media-bar{align-items:center;gap:10px;padding:12px;display:flex}.side-tabs{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex}.side-tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:11px;font-weight:500;transition:color .2s,border-color .3s;display:flex}.side-tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.chat{flex-direction:column;flex:1;min-height:0;display:flex}.chat-list{flex-direction:column;flex:1;gap:3px;padding:12px 14px;display:flex;overflow-y:auto}.msg{padding:2px 0;animation:.3s both rise}.msg:not(.grouped){margin-top:10px}.msg-head{align-items:center;gap:7px;margin-bottom:4px;font-size:.85rem;display:flex}.msg-head .avatar{font-size:.6rem!important}.msg-body{background:var(--surface-2);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:4px 14px 14px;max-width:calc(100% - 27px);margin-left:27px;padding:7px 12px;line-height:1.45;display:inline-block}.msg.mine .msg-body{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.msg-system{text-align:center;color:var(--muted);margin:10px 0;font-size:.78rem}.typing{height:18px;color:var(--muted);padding:0 14px;font-size:.78rem}.chat-input{gap:8px;padding:10px 12px 12px;display:flex}.chat-empty{text-align:center;color:var(--muted);justify-items:center;gap:8px;margin:auto;font-size:.9rem;display:grid}.people{flex:1;padding:8px 12px;overflow-y:auto}.people-settings{border-top:1px solid var(--line);justify-items:start;gap:10px;margin-top:12px;padding-top:4px;display:grid}.modal-back{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#05040f8c;place-items:center;padding:16px;animation:.2s both fadeIn;display:grid;position:fixed;inset:0}.modal{background:var(--surface-solid);width:min(440px,100%);max-height:85vh;box-shadow:var(--shadow-lg);animation:.18s ease-out both popIn;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.username-field{gap:8px;display:grid}.input-wrap{position:relative}.input-wrap input{padding-right:78px}.avail{pointer-events:none;align-items:center;gap:3px;font-size:.78rem;font-weight:600;display:inline-flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.avail.ok{color:var(--dew)}.avail.bad{color:var(--danger)}.avail.checking{color:var(--muted)}.suggest{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.suggest-chip{border:1px dashed var(--line-strong);background:var(--surface);cursor:pointer;color:var(--text);border-radius:99px;padding:4px 10px;font-size:.8rem;transition:transform .15s cubic-bezier(.3,1.8,.5,1),border-color .2s,background .2s}.suggest-chip:hover{border-color:var(--accent);border-style:solid}.suggest-chip.picked{border-style:solid;border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.dice{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:4px;transition:transform .4s;display:grid}.dice:hover{color:var(--accent)}.check{color:var(--text);cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:.86rem;line-height:1.45;display:flex}.check input{appearance:none;border:1.5px solid var(--line-strong);background:var(--input);cursor:pointer;border-radius:6px;flex:none;place-items:center;width:20px;height:20px;margin:0;padding:0;transition:background .2s,border-color .2s;display:grid}.check input:checked{background:var(--accent);border-color:#0000}.check input:checked:after{content:"✓";color:#fff;font-size:13px;font-weight:700;animation:.25s both popIn}.me-button{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:99px;align-items:center;gap:10px;padding:4px 10px 4px 4px;transition:background .2s,border-color .2s;display:flex}.me-button:hover{background:var(--surface-2);border-color:var(--line)}.profile{gap:14px;width:min(480px,100%);display:grid}.profile-preview{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;align-items:center;gap:14px;padding:14px;display:flex}.profile-preview strong{font-size:1.05rem}.profile-preview .avatar{font-size:1.6rem!important}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;padding:0;transition:transform .15s;box-shadow:inset 0 0 0 2px #fff3}.swatch:hover{transform:scale(1.15)}.swatch.picked{border-color:var(--text);box-shadow:0 0 0 3px var(--surface-solid), 0 0 14px -2px currentColor;transform:scale(1.12)}.password-box{border:1px solid var(--line);background:var(--surface);border-radius:12px;gap:10px;padding:12px;display:grid}.splitter{touch-action:none;z-index:3;place-items:center;display:grid;position:relative}.splitter.vertical{cursor:col-resize;width:8px}.splitter.horizontal{cursor:row-resize;flex:none;height:18px}.splitter.horizontal:after{content:"⇕ drag to stretch videos";color:var(--muted);background:var(--surface-solid);border:1px solid var(--line);opacity:0;pointer-events:none;white-space:nowrap;border-radius:99px;padding:1px 8px;font-size:.7rem;transition:opacity .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.splitter.horizontal:hover:after,.splitter.horizontal.active:after{opacity:1}.splitter .grip{background:var(--line-strong);border-radius:99px;transition:background .2s,transform .2s}.splitter.vertical .grip{width:4px;height:44px}.splitter.horizontal .grip{width:64px;height:5px}.splitter:hover .grip,.splitter.active .grip,.splitter:focus-visible .grip{background:var(--accent)}.splitter:focus-visible{outline:none}body.resizing{-webkit-user-select:none;user-select:none}body.resizing-x{cursor:col-resize}body.resizing-y{cursor:row-resize}body.resizing-xy{cursor:nesw-resize}body.resizing iframe,.stage.dragging iframe{pointer-events:none}.side.hidden{display:none}.tile-actions{opacity:0;z-index:2;gap:4px;transition:opacity .2s;display:flex;position:absolute;top:6px;right:6px}.tile:hover .tile-actions,.tile:focus-within .tile-actions{opacity:1}.tile-actions button{cursor:pointer;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#08061499;border:0;border-radius:8px;place-items:center;width:28px;height:28px;display:grid}.tile-actions button:hover{background:#7c3aedbf}.float-layer{pointer-events:none;z-index:4;position:absolute;inset:0}.tile.floating{aspect-ratio:auto;pointer-events:auto;cursor:grab;touch-action:none;animation:.3s both popIn;position:absolute;box-shadow:0 20px 50px -12px #000000b3,0 0 0 1px #ffffff1f}.stage.dragging .tile.floating{cursor:grabbing}.stretch-grip{cursor:nesw-resize;z-index:3;touch-action:none;opacity:.55;background:linear-gradient(225deg,#0000 50%,#ffffffbf 50% 57%,#0000 57% 67%,#ffffffbf 67% 74%,#0000 74%);width:26px;height:26px;transition:opacity .2s;position:absolute;bottom:0;left:0}.tile:hover .stretch-grip,.stretch-grip:hover{opacity:1}.tile .tile-label{left:28px}.tile.floating .tile-label{left:6px}.resize-handle{cursor:nwse-resize;z-index:3;touch-action:none;background:linear-gradient(135deg,#0000 50%,#ffffffb3 50% 58%,#0000 58% 68%,#ffffffb3 68% 76%,#0000 76%);width:22px;height:22px;position:absolute;bottom:0;right:0}.vol input{width:90px;accent-color:var(--g2);background:0 0;border:0;padding:0}.bar-sep{background:var(--line);width:1px;height:22px;margin:0 2px}.btn.lit{color:#fde68a;background:#fde68a24}.sky-btn{font-weight:600}.panel-scroll{flex:1;min-height:0;overflow-y:auto}.pop-anchor{display:inline-flex;position:relative}.popover{z-index:30;background:var(--surface-solid);border:1px solid var(--line-strong);width:300px;box-shadow:var(--shadow-lg);border-radius:12px;gap:8px;padding:16px;animation:.15s ease-out both popIn;display:grid;position:absolute;bottom:calc(100% + 10px);right:-40px}.pop-title{font-family:var(--serif);align-items:center;gap:8px;font-size:1.05rem;font-weight:600;display:flex}.popover .label{margin:4px 0 0}.chips .chip-btn,.chip-btn{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:99px;padding:5px 11px;font-size:.8rem;transition:border-color .2s,background .2s}.chip-btn:hover{border-color:var(--line-strong);background:var(--surface-2)}.chip-btn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:500}.small-check{padding:8px 10px;font-size:.82rem}.small-check input[type=radio]{border-radius:50%}.moon-dot{background:radial-gradient(circle at 35% 35%,#fffaf0,#d9cfee);border-radius:50%;flex:none;width:18px;height:18px;box-shadow:inset -4px -2px #7c3aed40,0 0 14px #fde68a99}.sleep-dim{z-index:3;pointer-events:none;background:radial-gradient(at 50% 0,#1e144640,#05040f8c);animation:3s both fadeIn;position:absolute;inset:0}.room.sleeping .stage iframe{filter:brightness(.7)saturate(.85);transition:filter 3s}.room.sleeping .stage{box-shadow:0 0 0 1px #fde68a26,0 30px 90px -30px #fde68a4d}.sleep-banner{z-index:5;color:#efeaff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0e0a22c7;border:1px solid #fde68a40;border-radius:16px;gap:10px;width:min(560px,100% - 24px);padding:12px 14px;transition:opacity 20s;animation:.6s both rise;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}.sleep-banner.ending{opacity:.35}.sleep-banner .small{color:#b9b1dc;font-size:.8rem}.sleep-head{align-items:center;gap:10px;display:flex}.sleep-head .moon-dot{width:26px;height:26px;animation:4s ease-in-out infinite floaty}.sleep-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sleep-banner .chip-btn{color:#efeaff;background:#ffffff0f;border-color:#ffffff1f}.sleep-banner .chip-btn.on{background:#a78bfa4d;border-color:#a78bfa}.sleep-banner .btn{color:#efeaff;background:#ffffff14;border-color:#ffffff24;margin-left:auto}.vol{color:#b9b1dc;align-items:center;gap:6px;display:flex}.letters{align-content:start;gap:8px;padding:12px;display:grid}.letters .label{margin-top:12px}.letter-card{text-align:left;cursor:pointer;border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);border-radius:14px;align-items:center;gap:12px;padding:11px 12px;transition:transform .2s,border-color .2s,box-shadow .3s;display:flex}.letter-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.letter-card .grow{gap:2px;display:grid}.letter-card .drop{flex:none}.letter-card.ready{border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.letter-card .drop{width:34px;height:34px;color:var(--muted);background:var(--surface-2);border-radius:10px;place-items:center;display:grid}.letter-card.ready .drop{color:var(--accent);background:var(--accent-soft)}.letter-card.sealed{opacity:.85}.letter-card.opened{opacity:.75}.letter-card.sent{cursor:pointer}select,textarea{background:var(--input);border:1px solid var(--line);width:100%;color:var(--text);font:inherit;border-radius:12px;outline:none;padding:11px 14px}textarea{resize:vertical;min-height:120px;line-height:1.5}select:focus,textarea:focus{border-color:var(--g2);box-shadow:0 0 0 4px color-mix(in srgb, var(--g2) 18%, transparent)}.composer{gap:12px;width:min(520px,100%);display:grid}.unlock-choice{gap:6px;display:grid}.letter-open{place-items:center;width:min(560px,100%);display:grid;position:relative}.splash-drop{background:radial-gradient(circle at 30% 30%, #fff, var(--dew));width:46px;height:46px;box-shadow:0 0 40px var(--dew);border-radius:50% 50% 50% 0;margin:-23px;animation:.9s ease-in both dropBurst;position:absolute;top:50%;left:50%;transform:rotate(-45deg)}.paper{color:#2f2550;transform-origin:top;background:repeating-linear-gradient(#fdfaf3 0 31px,#ece4f7 31px 32px),#fdfaf3;border-radius:6px;width:100%;padding:30px 30px 22px;animation:.8s cubic-bezier(.2,1.2,.4,1) .45s both unfold;box-shadow:0 30px 80px -20px #0009}.paper header .muted{color:#8a7fb0}.paper h2{color:#3b2a74;margin:6px 0 14px;font-size:1.7rem;font-style:italic;font-weight:500}.letter-body{white-space:pre-wrap;line-height:32px;font-family:var(--serif);max-height:50vh;margin:0 0 18px;font-size:1.08rem;overflow-y:auto}.paper footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.paper .sig{font-family:var(--serif);color:#7c3aed;font-style:italic}.paper .btn{color:#3b2a74;background:#7c3aed14;border-color:#7c3aed33}.paper .btn.danger{color:#be123c;background:0 0}@keyframes dropBurst{0%{opacity:0;transform:rotate(-45deg)translateY(-60px)scale(.6)}45%{opacity:1;transform:rotate(-45deg)scale(1)}to{opacity:0;transform:rotate(-45deg)scale(5)}}@keyframes unfold{0%{opacity:0;transform:perspective(900px)rotateX(-75deg)scale(.9)}}.camera-flash{z-index:20;pointer-events:none;background:#fff;animation:.7s ease-out both flash;position:absolute;inset:0}@keyframes flash{0%{opacity:.9}to{opacity:0}}.polaroid-dialog{gap:12px;width:min(460px,100%);display:grid}.polaroid-preview{place-items:center;min-height:240px;display:grid}.polaroid-preview img{object-fit:contain;border-radius:4px;width:100%;max-height:52vh;transform:rotate(-1.5deg);box-shadow:0 20px 50px -18px #0009}.develop{animation:2.2s ease-out both develop}@keyframes develop{0%{filter:brightness(1.8)saturate(0)blur(3px);opacity:.4}60%{filter:brightness(1.15)saturate(.6);opacity:1}to{filter:none}}.sky-view{z-index:60;color:#efeaff;background:radial-gradient(1200px 600px at 70% -10%,#3a1f6e 0%,#0000 60%),radial-gradient(900px 500px at 0 100%,#142650 0%,#0000 60%),#07061a;animation:.4s both fadeIn;position:fixed;inset:0;overflow-y:auto}.sky-view:before{content:"";pointer-events:none;opacity:.6;background-image:radial-gradient(1px 1px at 10% 20%,#fff,#0000),radial-gradient(1px 1px at 30% 70%,#fff,#0000),radial-gradient(1.5px 1.5px at 55% 30%,#fff,#0000),radial-gradient(1px 1px at 80% 15%,#fff,#0000),radial-gradient(1px 1px at 90% 60%,#fff,#0000),radial-gradient(1px 1px at 65% 85%,#fff,#0000),radial-gradient(1.2px 1.2px at 20% 90%,#fff,#0000);background-size:400px 400px;animation:6s ease-in-out infinite twinkle;position:fixed;inset:0}.sky-view-inner{gap:18px;max-width:1100px;margin:0 auto;padding:24px 20px 48px;display:grid;position:relative}.sky-view .muted{color:#a39cc8}.sky-view .btn{color:#efeaff}.sky-view .label{color:#a39cc8}.sky-top{align-items:center;gap:20px;display:flex}.sky-top h2{margin:0;font-size:2rem;font-weight:500}.sky-top p{margin:2px 0 0}.sky-top>.btn{margin-left:auto}.sky-stats{gap:22px;margin-left:auto;display:flex}.sky-stats div{text-align:center;display:grid}.sky-stats strong{font-family:var(--serif);font-size:1.35rem;font-weight:600}.sky-stats span{color:#a39cc8;text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}.constellation-wrap{background:radial-gradient(600px 260px at 50% 40%,#a78bfa1f,#0000 70%),#ffffff05;border:1px solid #ffffff14;border-radius:22px;place-items:center;min-height:300px;display:grid}.constellation-svg{width:100%;height:auto;display:block}.const-line{stroke:#c4b5fd;stroke-opacity:.45;stroke-width:1.2px;stroke-dasharray:3 6;animation:1s both fadeIn}.star{cursor:pointer;outline:none;animation:.8s cubic-bezier(.2,1.5,.4,1) both starIn}.star .halo{animation:3.5s ease-in-out infinite pulse}.star:hover .halo,.star:focus-visible .halo,.star.selected .halo{opacity:1}.star.live .halo{animation:1.2s ease-in-out infinite pulse}.sel-ring{fill:none;stroke:#7ee8d0;stroke-width:1.6px;filter:drop-shadow(0 0 6px #7ee8d0);animation:.3s both popIn}.moment-ring{fill:none;stroke:#f9a8d4;stroke-width:1.5px;stroke-dasharray:2 4}.star-label{fill:#c9c2e8;text-anchor:middle;font-size:13px;font-family:var(--sans);pointer-events:none}@keyframes starIn{0%{opacity:0;transform:scale(0)}}.sky-empty{text-align:center;max-width:420px;padding:40px 20px}.big-star{color:#a78bfa;justify-items:center;margin-bottom:8px;display:grid}.evening-card{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:18px;gap:10px;padding:16px 18px;animation:.35s both rise;display:grid}.evening-title{font-family:var(--serif);color:#efeaff;background:0 0;border:1px dashed #0000;padding:4px 6px;font-size:1.35rem;font-style:italic}.evening-title:hover{border-color:#fff3}.evening-meta{color:#c9c2e8;flex-wrap:wrap;align-items:center;gap:16px;font-size:.9rem;display:flex}.evening-meta span{align-items:center;gap:6px;display:inline-flex}.moment-strip{gap:18px;padding:10px 4px 16px;display:flex;overflow-x:auto}.moment-thumb{cursor:pointer;width:150px;transform:rotate(var(--tilt));background:0 0;border:0;flex:none;padding:0;transition:transform .25s;animation:.5s both rise}.moment-thumb:hover{transform:rotate(0)scale(1.06)}.moment-thumb img{border-radius:3px;width:100%;display:block;box-shadow:0 12px 30px -10px #000000b3}.lightbox{z-index:70;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#03020ccc;place-items:center;padding:20px;animation:.2s both fadeIn;display:grid;position:fixed;inset:0}.lightbox figure{gap:12px;max-width:min(560px,100%);margin:0;animation:.3s both popIn;display:grid}.lightbox img{object-fit:contain;border-radius:4px;width:100%;max-height:78vh}.lightbox figcaption{color:#efeaff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.lightbox .btn{color:#efeaff}.chat-input{align-items:center;position:relative}.chat-input .emoji-toggle{color:var(--muted);flex:none}.chat-input .emoji-toggle.on,.chat-input .emoji-toggle:hover{color:var(--accent)}.emoji-picker{z-index:20;background:var(--surface-solid);border:1px solid var(--line-strong);max-height:300px;box-shadow:var(--shadow-lg);border-radius:12px;grid-template-rows:auto 1fr;animation:.15s ease-out both popIn;display:grid;position:absolute;bottom:calc(100% + 6px);left:10px;right:10px;overflow:hidden}.emoji-tabs{border-bottom:1px solid var(--line);gap:2px;padding:6px;display:flex}.emoji-tabs button{cursor:pointer;opacity:.6;background:0 0;border:0;border-radius:10px;flex:1;padding:5px 0;font-size:1.15rem;transition:opacity .15s,background .15s}.emoji-tabs button.on,.emoji-tabs button:hover{opacity:1;background:var(--surface-2)}.emoji-grid{grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:2px;padding:8px;display:grid;overflow-y:auto}.emoji-grid button{aspect-ratio:1;cursor:pointer;background:0 0;border:0;border-radius:10px;font-size:1.35rem;transition:transform .12s cubic-bezier(.3,1.8,.5,1),background .12s}.emoji-grid button:hover{background:var(--surface-2);transform:scale(1.1)}.msg-body.jumbo{padding:0 0 0 2px;font-size:2.4rem;line-height:1.2;animation:.35s cubic-bezier(.2,1.6,.4,1) both popIn;background:0 0!important;border:0!important}.step-out{gap:6px}@media (width<=600px){.step-out span{display:none}}.avatar{overflow:visible}.avatar>img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.avatar-edit{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;padding:0;position:relative}.avatar-edit:hover .avatar{filter:brightness(.85)}.avatar-edit-badge{color:#fff;background:var(--accent);border:2px solid var(--surface-solid);border-radius:50%;place-items:center;width:26px;height:26px;display:grid;position:absolute;bottom:-2px;right:-2px}.photo-actions{flex-wrap:wrap;margin-top:8px}.cropper{justify-items:center;gap:10px;display:grid}.crop-circle{cursor:grab;touch-action:none;box-shadow:0 0 0 4px color-mix(in srgb, var(--g2) 35%, transparent), 0 20px 50px -20px #0009;background:#000;border-radius:50%;position:relative;overflow:hidden}.crop-circle:active{cursor:grabbing}.crop-circle img{-webkit-user-select:none;user-select:none;pointer-events:none;max-width:none;position:absolute;top:0;left:0}.cropper .zoom{width:min(260px,100%);color:var(--muted);align-items:center;gap:8px;display:flex}.cropper .zoom input{accent-color:var(--g2);background:0 0;border:0;padding:0}.cropper .row{width:100%}.shell{grid-template-columns:84px minmax(0,1fr) 350px;align-items:start;gap:24px;max-width:1360px;margin:0 auto;padding:24px 24px 48px;display:grid}.shell:not(:has(.shell-right)){grid-template-columns:84px minmax(0,1fr)}.shell-main{align-content:start;gap:22px;min-width:0;display:grid}.shell-main .greeting{max-width:none;margin:0;padding:4px 0 0}.shell-right{gap:22px;animation:.6s .1s both fadeUp;display:grid;position:sticky;top:86px}.capsule-nav{background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow);border-radius:999px;flex-direction:column;justify-self:center;gap:12px;padding:12px 10px;display:flex;position:sticky;top:calc(50vh - 90px)}.capsule-tab{color:var(--muted);border-radius:999px;outline:none;justify-items:center;gap:4px;padding:4px 0;text-decoration:none;display:grid;position:relative}.capsule-icon{border-radius:50%;place-items:center;width:48px;height:48px;transition:background .15s,color .15s;display:grid}.capsule-tab:hover .capsule-icon,.capsule-tab:focus-visible .capsule-icon{background:var(--surface-2);color:var(--text)}.capsule-tab.active .capsule-icon{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}.capsule-label{white-space:nowrap;pointer-events:none;opacity:0;color:var(--text);background:var(--surface-solid);border:1px solid var(--line-strong);box-shadow:var(--shadow);z-index:5;border-radius:8px;padding:5px 10px;font-size:.82rem;font-weight:500;transition:opacity .2s,transform .2s;position:absolute;top:50%;left:calc(100% + 14px);transform:translate(-6px,-50%)}.capsule-tab:hover .capsule-label,.capsule-tab:focus-visible .capsule-label{opacity:1;transform:translateY(-50%)}.rooms-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.rooms-head h3{margin:0}.search{width:min(240px,100%);color:var(--muted);align-items:center;display:flex;position:relative}.search svg{position:absolute;left:12px}.search input{border-radius:99px;padding:8px 12px 8px 36px}.filter-chips{flex-wrap:wrap;gap:6px;margin:12px 0 4px;display:flex}.live-dot{background:#22c55e;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.room-card.menu-open{z-index:6;overflow:visible}.room-card-top{position:relative}.room-card-mid{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-menu-btn{opacity:.6;margin:-6px -8px 0 0}.room-card:hover .card-menu-btn,.room-card.menu-open .card-menu-btn{opacity:1}.room-menu{z-index:20;background:var(--surface-solid);border:1px solid var(--line-strong);min-width:190px;box-shadow:var(--shadow-lg);border-radius:10px;padding:5px;animation:.12s ease-out both popIn;display:grid;position:absolute;top:30px;right:-6px}.room-menu button{cursor:pointer;text-align:left;color:var(--text);background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:.9rem;display:flex}.room-menu button:hover,.room-menu button:focus-visible{background:var(--surface-2);outline:none}.room-menu button.danger{color:var(--danger)}.room-menu hr{border:0;border-top:1px solid var(--line);margin:4px 2px}.fun-hero h1{font-size:clamp(1.7rem,3.4vw,2.4rem)}.game-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;display:grid}.game-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);align-content:start;gap:8px;padding:18px;transition:border-color .15s,box-shadow .15s;animation:.3s both fadeIn;display:grid;position:relative;overflow:hidden}.game-card:hover{border-color:color-mix(in srgb, var(--tint) 50%, transparent)}.game-card h3{margin:6px 0 0;font-size:1.02rem}.game-card p{margin:0}.game-art{width:48px;height:48px;color:var(--tint);background:color-mix(in srgb, var(--tint) 13%, transparent);border-radius:12px;place-items:center;display:grid}.game-card-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:8px;display:flex}.game-card{grid-auto-rows:min-content}.game-card.coming{--tint:#8b84a8;opacity:.8;box-shadow:none;border-style:dashed}@keyframes wiggle{25%{transform:rotate(-12deg)scale(1.1)}75%{transform:rotate(10deg)scale(1.1)}}.waiting-card{border-left:3px solid var(--accent);align-items:center;gap:14px;animation:.2s both rise;display:flex}.waiting-orbit{width:44px;height:44px;color:var(--accent);flex:none;place-items:center;display:grid;position:relative}.waiting-orbit:before{content:"";border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:1s linear infinite spin;position:absolute;inset:0}.gi-icon{width:34px;height:34px;color:var(--accent);background:var(--accent-soft);border-radius:10px;flex:none;place-items:center;display:grid}.pick-dialog{width:min(480px,100%)}.pick-games{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pick-game{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:8px;padding:10px;font-weight:500;display:flex}.pick-game svg{color:var(--accent)}.pick-game.on,.pick-friend.on{border-color:var(--accent);background:var(--accent-soft)}.pick-friend{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:1px solid #0000}.game-invites{z-index:90;gap:10px;width:min(380px,100vw - 36px);display:grid;position:fixed;bottom:18px;right:18px}.game-invite{background:var(--surface-solid);border:1px solid var(--line-strong);border-left:3px solid var(--accent);box-shadow:var(--shadow-lg);border-radius:18px;align-items:center;gap:10px;padding:12px 14px;animation:.25s ease-out both inviteIn;display:flex}.game-invite .small{color:var(--muted)}@keyframes inviteIn{0%{opacity:0;transform:translateY(20px)scale(.92)}}.game-page{gap:16px;display:grid}.game-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.game-top h2{text-align:center;align-items:center;gap:8px;margin:0;font-size:1.25rem;display:inline-flex}.game-top h2 svg{color:var(--accent)}.versus{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:12px 16px;display:grid}.player-chip{border:2px solid #0000;border-radius:99px;justify-self:start;align-items:center;gap:10px;padding:6px 10px 6px 6px;transition:border-color .3s,box-shadow .3s;display:flex}.player-chip.right{text-align:right;flex-direction:row-reverse;justify-self:end;padding:6px 6px 6px 10px}.player-chip .small{color:var(--muted);font-size:.8rem}.player-chip.active{border-color:var(--accent);background:var(--accent-soft)}@keyframes breathe{50%{box-shadow:0 0 30px -4px var(--g2)}}.vs-score{font-family:var(--serif);font-size:1.8rem;font-weight:600}.vs-score span{color:var(--muted);margin:0 4px}.game-status{text-align:center;font-size:1.05rem;font-weight:600}.game-status.final{font-family:var(--serif);font-size:1.35rem;animation:.3s both fadeIn}.board-wrap{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);min-height:340px;box-shadow:var(--shadow);place-items:center;padding:22px;display:grid;position:relative;overflow:hidden}.game-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.floaters{pointer-events:none;position:absolute;inset:0}.floaters span{font-size:2.2rem;animation:2.4s ease-out forwards floatUp;position:absolute;bottom:8px}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti span{animation:2.8s ease-in forwards confetti;position:absolute;top:-30px}@keyframes confetti{to{opacity:0;transform:translateY(520px)rotate(540deg)}}.ttt{aspect-ratio:1;grid-template-columns:repeat(3,1fr);gap:10px;width:min(330px,100%);display:grid}.ttt-cell{border:1px solid var(--line-strong);background:var(--surface-2);cursor:pointer;color:var(--text);border-radius:12px;place-items:center;transition:background .15s,border-color .15s;display:grid}.ttt.my-turn .ttt-cell:not(:disabled):hover{border-color:var(--accent);background:var(--accent-soft)}.ttt-cell:disabled{cursor:default}.ttt-cell .mark{animation:.15s ease-out both popIn;display:grid}.ttt-cell.win{background:var(--accent-soft);border-color:var(--accent)}.mark-svg.dusk{color:#8b5cf6}.mark-svg.dew{color:#14b8a6}.mark-line{align-items:center;gap:4px;display:flex}.player-chip strong{display:block}.player-chip.right .mark-line{justify-content:flex-end}.c4-wrap{gap:6px;width:min(460px,100%);display:grid}.c4-arrows{text-align:center;grid-template-columns:repeat(7,1fr);height:26px;font-size:1.2rem;display:grid}.c4-arrows span{opacity:0;transition:opacity .15s}.c4-arrows span.on{opacity:1;animation:1.2s ease-in-out infinite floaty}.c4{background:#1c1745;border-radius:14px;grid-template-columns:repeat(7,1fr);gap:6px;padding:10px;display:grid}.c4-cell{aspect-ratio:1;cursor:pointer;background:#050414a6;border:0;border-radius:50%;padding:0;position:relative;box-shadow:inset 0 3px 6px #00000080}.c4-cell:disabled{cursor:default}.c4-cell.hot{background:#a78bfa38}.disc{border-radius:50%;position:absolute;inset:4px}.disc.p0{background:radial-gradient(circle at 35% 30%,#c4b5fd,#8b5cf6 60%,#6d28d9)}.disc.p1{background:radial-gradient(circle at 35% 30%,#99f6e4,#14b8a6 60%,#0f766e)}.disc.drop{animation:.45s cubic-bezier(.4,1.4,.6,1) both discDrop}.disc.win{box-shadow:0 0 0 3px #fff}@keyframes discDrop{0%{transform:translateY(calc(var(--row) * -112%))}}.rps{text-align:center;justify-items:center;gap:14px;width:100%;display:grid}.rps-score{font-family:var(--serif);font-size:1.15rem}.rps-reveal{align-items:center;gap:18px;display:flex}.rps-reveal .hand{font-size:3.4rem}.rps-reveal .hand.left{animation:.6s both shakeL}.rps-reveal .hand.right{animation:.6s both shakeR;transform:scaleX(-1)}.rps-vs{color:var(--muted);font-weight:600}@keyframes shakeL{0%,40%{transform:translateY(-14px)rotate(-10deg)}20%,60%{transform:translateY(0)}}@keyframes shakeR{0%,40%{transform:scaleX(-1)translateY(-14px)rotate(-10deg)}20%,60%{transform:scaleX(-1)}to{transform:scaleX(-1)}}.rps-picks{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.rps-btn{border:1px solid var(--line-strong);background:var(--surface-2);width:104px;color:var(--text);cursor:pointer;text-transform:capitalize;border-radius:12px;justify-items:center;gap:4px;padding:14px 8px;font-weight:500;transition:border-color .15s,background .15s;display:grid}.rps-btn span{font-size:2.6rem}.rps-btn:not(:disabled):hover{border-color:var(--accent)}.rps-btn.on{border-color:var(--accent);background:var(--accent-soft)}.rps-btn:disabled:not(.on){opacity:.45;cursor:default}.rps-history{gap:6px;display:flex}.rps-history span{background:var(--line-strong);border-radius:50%;width:12px;height:12px}.rps-history .w{background:var(--dew);background:#22c55e}.rps-history .l{background:var(--danger)}.wyr{text-align:center;gap:14px;width:min(640px,100%);display:grid}.wyr-meta{color:var(--muted);font-size:.85rem}.wyr h3{font-family:var(--serif);margin:0;font-size:1.35rem;font-weight:600}.wyr-options{grid-template-columns:1fr 1fr;gap:12px;display:grid}.wyr-opt{cursor:pointer;border:1px solid var(--line-strong);background:var(--surface-2);min-height:150px;color:var(--text);border-radius:12px;align-content:center;justify-items:center;gap:10px;padding:18px 14px;font-size:1rem;line-height:1.4;transition:border-color .15s,background .15s;display:grid;position:relative}.wyr-opt:not(:disabled):hover{border-color:var(--accent)}.wyr-opt:disabled{cursor:default}.wyr-letter{width:28px;height:28px;color:var(--accent);background:var(--accent-soft);border-radius:50%;place-items:center;font-size:.85rem;font-weight:600;display:grid}.wyr-opt.mine{border-color:var(--accent);background:var(--accent-soft)}.wyr-opt.theirs{box-shadow:0 0 0 2px #14b8a6}.wyr-who{gap:4px;animation:.35s both popIn;display:flex}.wyr-result{justify-items:center;gap:10px;animation:.4s both rise;display:grid}.wyr-result strong{font-family:var(--serif);font-size:1.3rem}@media (width<=900px){:is(.shell,.shell:not(:has(.shell-right))){grid-template-columns:1fr;padding:16px 16px 110px}.shell-right{position:static}.capsule-nav{z-index:40;flex-direction:row;padding:8px 12px;animation:none;position:fixed;top:auto;bottom:14px;left:50%;transform:translate(-50%)}.capsule-icon{width:48px;height:48px}.capsule-label{display:none}.game-invites{bottom:96px}.versus{grid-template-columns:1fr auto 1fr;padding:10px}.player-chip strong{font-size:.85rem}.wyr-options{grid-template-columns:1fr}}.bell{color:var(--muted);position:relative}.bell:hover,.bell.on{color:var(--text)}.bell-badge{color:#fff;background:var(--danger);border:2px solid var(--surface-solid);border-radius:99px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:.65rem;font-weight:700;line-height:1;display:grid;position:absolute;top:2px;right:1px}.notif-panel{z-index:95;background:var(--surface-solid);border:1px solid var(--line-strong);width:min(400px,100vw - 24px);max-height:min(560px,100vh - 90px);box-shadow:var(--shadow-lg);border-radius:12px;flex-direction:column;animation:.14s ease-out both popIn;display:flex;position:fixed;overflow:hidden}.notif-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:12px 12px 10px 16px;display:flex}.notif-head strong{font-size:.98rem}.notif-head .btn.on{color:var(--accent)}.notif-tabs{border-bottom:1px solid var(--line);gap:4px;padding:8px 12px 0;display:flex}.notif-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:8px 10px;font-size:.88rem;font-weight:500;display:inline-flex}.notif-tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.notif-tabs .count{background:var(--accent-soft);color:var(--accent);border-radius:99px;padding:1px 6px;font-size:.7rem}.notif-list{padding:4px 0 8px;overflow-y:auto}.notif-section{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:12px 16px 4px;font-size:.72rem;font-weight:600}.notif-item{cursor:pointer;align-items:flex-start;gap:12px;padding:10px 40px 10px 16px;transition:background .12s;display:flex;position:relative}.notif-item:hover,.notif-item:focus-visible{background:var(--surface-2);outline:none}.notif-item.unread{background:color-mix(in srgb, var(--accent) 5%, transparent)}.notif-item.unread:hover{background:color-mix(in srgb, var(--accent) 9%, transparent)}.notif-visual{flex:none;position:relative}.notif-icon-only{width:36px;height:36px;color:var(--muted);background:var(--surface-2);border-radius:50%;place-items:center;display:grid}.notif-type{color:#fff;background:var(--accent);border:2px solid var(--surface-solid);border-radius:50%;place-items:center;width:18px;height:18px;display:grid;position:absolute;bottom:-3px;right:-3px}.notif-type.friends{background:#3b82f6}.notif-type.invites{background:var(--accent)}.notif-type.messages{background:#0ea5e9}.notif-type.activity{background:#14b8a6}.notif-type.letters{background:#db2777}.notif-text{gap:2px;min-width:0;display:grid}.notif-title{font-size:.9rem;font-weight:500;line-height:1.35}.notif-item.unread .notif-title{font-weight:600}.notif-body{color:var(--muted);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.84rem;display:-webkit-box;overflow:hidden}.notif-time{color:var(--muted);font-size:.75rem}.notif-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:16px;right:16px}.notif-remove{width:24px;height:24px;color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:6px;place-items:center;transition:opacity .12s,background .12s;display:grid;position:absolute;bottom:10px;right:10px}.notif-item:hover .notif-remove,.notif-remove:focus-visible{opacity:1}.notif-remove:hover{background:var(--surface);color:var(--text)}.notif-empty{text-align:center;color:var(--muted);justify-items:center;gap:4px;padding:36px 24px;display:grid}.notif-empty p{color:var(--text);margin:6px 0 0;font-weight:500}.notif-more{margin:6px auto 0;display:flex}.notif-settings{padding:0 0 10px;overflow-y:auto}.switch-row{cursor:pointer;color:var(--text);justify-content:space-between;align-items:center;gap:14px;padding:10px 16px;font-size:.9rem;display:flex}.switch-row>span{gap:2px;display:grid}.switch-row strong{font-weight:500}.switch{appearance:none;background:var(--line-strong);cursor:pointer;border:0;border-radius:99px;flex:none;width:36px;height:20px;padding:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000004d}.switch:checked{background:var(--accent)}.switch:checked:after{left:18px}.switch:disabled{opacity:.5;cursor:default}.switch:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}@media (width<=600px){.notif-panel{width:auto;left:12px;right:12px!important}}.orbit-path{fill:none;stroke:var(--line-strong);stroke-width:1.2px;stroke-dasharray:3 7}.orbiter{transform-origin:220px 215px;animation:14s linear infinite orbit}.float-slow{animation:7s ease-in-out infinite floaty}.float-fast{animation:5s ease-in-out infinite reverse floaty}.twinkle{transform-box:fill-box;transform-origin:50%;animation:2.6s ease-in-out infinite twinkle}.twinkle.delay,.twinkle.d1{animation-delay:-1.1s}.twinkle.d2{animation-delay:-1.9s}.constellation{fill:none;stroke:var(--g1);stroke-width:1.4px;stroke-dasharray:2 6;stroke-linecap:round;opacity:.7;animation:2.5s linear infinite dash}.constellation.late{stroke:var(--g3)}.pulse-glow{animation:3.5s ease-in-out infinite pulse}.drip{transform-box:fill-box;transform-origin:top;animation:3s ease-in infinite drip}.rocket-orbit{transform-origin:60px 48px;animation:6s linear infinite spin}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}}@keyframes fadeIn{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes popIn{0%{opacity:0;transform:scale(.94)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes orbit{0%{transform:rotate(-14deg)}to{transform:rotate(346deg)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes drip{0%,55%{opacity:1;transform:translateY(0)}85%{opacity:1;transform:translateY(6px)}to{opacity:0;transform:translateY(12px)}}@keyframes dash{to{stroke-dashoffset:-16px}}@keyframes drift{0%{transform:translate(0)scale(1)}to{transform:translate(4vw,3vh)scale(1.12)}}@keyframes shimmer{to{transform:translate(120%)}}@keyframes ripple{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--dew) 60%, transparent)}to{box-shadow:0 0 0 16px #0000}}@keyframes floatUp{0%{opacity:0;transform:translateY(0)scale(.6)}15%{opacity:1;transform:translateY(-30px)scale(1.15)}to{opacity:0;transform:translateY(-260px)scale(1)rotate(8deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=900px){.auth-wrap{grid-template-columns:1fr;gap:20px;padding:64px 16px 32px}.hero-art{width:min(300px,80%);margin:0 auto}.auth-hero h1{margin-top:18px}.dash-grid{grid-template-columns:1fr;padding:16px}.greeting{padding:22px 16px 0}.topbar{padding:10px 16px}.me-name{display:none}.room{height:auto;min-height:100%}.stage-col{padding:10px}.stage{aspect-ratio:16/9;flex:none;min-height:0}.side{border-left:0;border-top:1px solid var(--line);min-height:520px}.room-top .stack{display:none}.reaction-picker{order:10;justify-content:space-between;width:100%}.splitter.vertical{display:none}.room-body{grid-template-columns:1fr!important}.sky-stats{display:none}}
