:root{--bg:#08090d;--bg-soft:#0d0f15;--surface:#12141c;--surface-2:#181b24;--surface-3:#1f2330;--line:#ffffff12;--line-strong:#ffffff21;--text:#e9ebf2;--text-dim:#a2a8bb;--text-faint:#6f7689;--accent:#8b7cf6;--accent-2:#ec6ea8;--accent-soft:#8b7cf624;--accent-grad:linear-gradient(135deg, #8b7cf6 0%, #ec6ea8 100%);--danger:#f2686b;--ok:#4ade80;--r-xs:8px;--r-sm:12px;--r:16px;--r-lg:20px;--r-xl:26px;--shadow:0 8px 30px #00000073;--shadow-lg:0 24px 60px #0009;--rail-w:296px;--safe-b:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior-y:none;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji,sans-serif;font-size:15px;line-height:1.55}button,input,textarea,select{font:inherit;color:inherit;background:0 0;border:none;outline:none}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:#8b7cf659}.login-screen{background:radial-gradient(circle at 50% 0%, #8b7cf626, transparent 46%), var(--bg);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{border:1px solid var(--line-strong);border-radius:var(--r-xl);background:var(--surface);width:min(100%,380px);box-shadow:var(--shadow-lg);gap:16px;padding:32px;display:grid}.login-mark{color:var(--accent);font-size:28px;line-height:1}.login-card h1{font-size:28px;line-height:1.1}.login-card p{color:var(--text-dim)}.login-card .label{margin-top:8px}.login-card .input{width:100%}.login-card .btn{width:100%;margin-top:4px}.login-card .login-error{color:var(--danger);font-size:13px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}*{scrollbar-width:thin;scrollbar-color:#ffffff24 transparent}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1f padding-box content-box;border:2px solid #0000;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#ffffff38 padding-box content-box}.scroll-hide{scrollbar-width:none;-ms-overflow-style:none}.scroll-hide::-webkit-scrollbar{display:none}.btn{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line);height:40px;color:var(--text);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:550;transition:background .16s,border-color .16s,transform .12s,opacity .16s;display:inline-flex}.btn:hover{background:var(--surface-3);border-color:var(--line-strong)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent-grad);color:#fff;border-color:#0000;box-shadow:0 6px 20px #8b7cf647}.btn-primary:hover{filter:brightness(1.08);background:var(--accent-grad);border-color:#0000}.btn-ghost{color:var(--text-dim);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--text);background:#ffffff0f;border-color:#0000}.btn-danger{color:var(--danger);background:#f2686b14;border-color:#f2686b47}.btn-danger:hover{background:#f2686b29;border-color:#f2686b66}.btn-sm{border-radius:10px;height:32px;padding:0 12px;font-size:13px}.icon-btn{width:38px;height:38px;color:var(--text-dim);background:0 0;border:1px solid #0000;border-radius:11px;flex:none;place-items:center;transition:background .16s,color .16s;display:inline-grid}.icon-btn:hover{color:var(--text);background:#ffffff12}.icon-btn.active{color:var(--accent);background:var(--accent-soft)}.field{flex-direction:column;gap:7px;display:flex}.label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);font-size:12px;font-weight:600}.hint{color:var(--text-faint);font-size:12.5px;line-height:1.45}.input,.textarea{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-sm);width:100%;color:var(--text);padding:11px 13px;font-size:14.5px;transition:border-color .16s,background .16s}.input:focus,.textarea:focus{background:#0b0d13;border-color:#8b7cf68c;outline:none}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.textarea{resize:vertical;min-height:96px;line-height:1.6}.select{-webkit-appearance:none;appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--text-faint) 50%), linear-gradient(135deg, var(--text-faint) 50%, transparent 50%);background-position:right 17px center,right 12px center;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:34px}.select:focus{background-image:linear-gradient(45deg, transparent 50%, var(--accent) 50%), linear-gradient(135deg, var(--accent) 50%, transparent 50%)}.select option{background:var(--bg-soft);color:var(--text)}.msg-speaker{letter-spacing:.02em;color:var(--text-dim);margin-bottom:4px;padding-left:2px;font-size:11.5px;font-weight:700}.autofill{border:1px solid var(--line-strong);border-radius:var(--r-md,12px);background:var(--accent-soft);align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;display:flex}.autofill-text{flex:1;min-width:0}.autofill .btn{flex:none}@media (max-width:520px){.autofill{flex-direction:column;align-items:stretch}}.scene-image{border-radius:var(--r-lg,14px);border:1px solid var(--line);background:var(--bg-soft);width:100%;max-width:420px;height:auto;margin-bottom:8px;display:block}.scene-note{text-align:center;color:var(--text-faint);max-width:70%;margin:2px auto;padding:2px 14px;font-size:12.5px;font-style:italic}.group-member-row{align-items:center;gap:8px;display:flex}.group-member-row .roster-chip{flex:1;justify-content:flex-start}.roster{border-bottom:1px solid var(--line);background:var(--bg-soft);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 14px;display:flex}.roster-chip{border:1px solid var(--line);background:var(--bg);color:var(--text-faint);cursor:pointer;opacity:.55;border-radius:99px;align-items:center;gap:7px;padding:4px 11px 4px 4px;font-size:12.5px;font-weight:600;transition:color .16s,border-color .16s,opacity .16s;display:inline-flex}.roster-chip.here{color:var(--text);background:var(--accent-soft);opacity:1;border-color:#8b7cf680}.roster-chip:hover{opacity:1}.roster-chip.mine{border-color:#ec8abe8c}.roster-main{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:7px;padding:0;display:inline-flex}.roster-ctl{letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);background:var(--bg-soft);color:var(--text-faint);cursor:pointer;border-radius:6px;margin-left:2px;padding:2px 6px;font-size:10px;font-weight:700}.roster-chip.mine .roster-ctl{color:#f6b8d8;background:#ec8abe24;border-color:#ec8abe80}.roster-help{width:100%;color:var(--text-faint);padding-left:2px;font-size:10.5px}.speaker-bar{flex-wrap:wrap;align-items:center;gap:6px;padding:7px 14px 0;display:flex}.speaker-chip{border:1px solid var(--line);background:var(--bg-soft);color:var(--text-faint);cursor:pointer;border-radius:99px;align-items:center;gap:6px;padding:4px 11px;font-size:12.5px;font-weight:600;transition:color .16s,border-color .16s;display:inline-flex}.speaker-chip.on{color:var(--text);background:var(--accent-soft);border-color:#8b7cf68c}.roster-chip:disabled{cursor:not-allowed}.roster-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);margin-right:2px;font-size:11.5px;font-weight:600}.model-pill{color:var(--text-dim);background:var(--bg-soft);border:1px solid var(--line);white-space:nowrap;cursor:pointer;border-radius:99px;align-items:center;gap:5px;padding:3px 10px;font-size:11.5px;font-weight:600;transition:color .16s,border-color .16s;display:inline-flex}.model-pill:hover{color:var(--text);border-color:var(--line-strong)}input[type=range]{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;width:100%;height:22px}input[type=range]::-webkit-slider-runnable-track{background:var(--surface-3);border-radius:99px;height:5px}input[type=range]::-moz-range-track{background:var(--surface-3);border-radius:99px;height:5px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--accent);border:2px solid #fff;border-radius:50%;width:16px;height:16px;margin-top:-5.5px;box-shadow:0 2px 8px #00000080}input[type=range]::-moz-range-thumb{background:var(--accent);border:2px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 2px 8px #00000080}.chip{letter-spacing:.02em;color:#ffffffdb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;background:#ffffff1a;border:1px solid #ffffff1f;border-radius:99px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.tab{height:34px;color:var(--text-dim);background:var(--surface);border:1px solid var(--line);border-radius:99px;flex:none;padding:0 15px;font-size:13.5px;font-weight:560;transition:all .16s}.tab:hover{color:var(--text);border-color:var(--line-strong)}.tab[aria-pressed=true]{background:var(--accent-grad);color:#fff;border-color:#0000;box-shadow:0 4px 14px #8b7cf640}.home{flex-direction:column;min-height:100dvh;display:flex}.home-head{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:linear-gradient(#08090df7 60%,#08090dd1);padding:14px 16px 10px;position:sticky;top:0}.home-head-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{background:var(--accent-grad);color:#fff;border-radius:11px;flex:none;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 4px 14px #8b7cf64d}.brand-title{letter-spacing:-.015em;font-size:17px;font-weight:680}.brand-sub{color:var(--text-faint);margin-top:-2px;font-size:12px}.search{align-items:center;display:flex;position:relative}.search svg{color:var(--text-faint);pointer-events:none;position:absolute;left:13px}.search input{background:var(--surface);border:1px solid var(--line);border-radius:99px;width:100%;height:44px;padding:0 40px;font-size:15px;transition:border-color .16s,background .16s}.search input:focus{background:var(--surface-2);border-color:#8b7cf680}.search input::placeholder{color:var(--text-faint)}.search-clear{width:28px;height:28px;color:var(--text-faint);border-radius:50%;place-items:center;display:grid;position:absolute;right:8px}.search-clear:hover{color:var(--text);background:#ffffff14}.tabs{gap:8px;margin:0 -16px;padding:10px 16px 2px;display:flex;overflow-x:auto}.home-body{padding:18px 16px calc(28px + var(--safe-b));flex:1}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin:4px 0 12px;display:flex}.section-title{letter-spacing:-.01em;font-size:15px;font-weight:650}.section-count{color:var(--text-faint);font-size:12.5px}.discover-section{margin:2px 0 22px}.example-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.example-card{border:1px solid var(--line-strong);border-radius:var(--r-lg);background:radial-gradient(circle at 85% 20%,#8b304b 0%,#311925 45%,#171118 100%);min-height:190px;position:relative;overflow:hidden}.example-card.amber{background:radial-gradient(circle at 85% 20%,#a65d37 0%,#482820 45%,#1b1415 100%)}.example-card.plum{background:radial-gradient(circle at 85% 20%,#77517e 0%,#332239 45%,#17141f 100%)}.example-art{color:#ffffff14;pointer-events:none;font-family:Georgia,serif;font-size:210px;font-style:italic;line-height:1;position:absolute;top:-37px;right:10px}.example-copy{flex-direction:column;align-items:flex-start;height:100%;padding:18px;display:flex;position:relative}.example-eyebrow{color:#f8b8a9;text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:700}.example-copy h3{color:#fff;margin-top:16px;font-size:21px;font-weight:650}.example-copy p{color:#ffffffc2;max-width:22ch;margin:4px 0 18px;font-size:12.5px;line-height:1.4}.example-copy .btn{box-shadow:none;background:#ffffff26;border:1px solid #fff3;margin-top:auto}.example-copy .btn:hover{background:#ffffff3d}@media (max-width:700px){.example-grid{scroll-snap-type:x mandatory;margin:0 -16px;padding:0 16px 8px;display:flex;overflow-x:auto}.example-card{scroll-snap-align:start;flex:0 0 min(76vw,270px)}}.recent-row{gap:10px;margin:0 -16px 8px;padding-bottom:14px;padding-left:16px;padding-right:16px;display:flex;overflow-x:auto}.recent-item{text-align:center;flex-direction:column;flex:none;align-items:center;gap:7px;width:76px;display:flex}.recent-item .avatar{border-radius:20px;width:62px;height:62px}.recent-name{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:12px;overflow:hidden}.recent-item:hover .recent-name{color:var(--text)}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (min-width:620px){.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}}@media (min-width:900px){.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}@media (min-width:1240px){.grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width:1600px){.grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.card{aspect-ratio:3/4.15;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);text-align:left;isolation:isolate;width:100%;transition:transform .2s cubic-bezier(.2,.8,.3,1),border-color .2s,box-shadow .2s;display:block;position:relative;overflow:hidden}.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-3px)}.card:active{transform:translateY(0)}.card-hit{z-index:1;display:block;position:absolute;inset:0}.card-media{background-position:50%;background-size:cover;transition:transform .45s cubic-bezier(.2,.8,.3,1);position:absolute;inset:0}.card:hover .card-media{transform:scale(1.05)}.card-media.no-image{background:var(--surface-2)}.card-placeholder{color:#ffffff2e;place-items:center;display:grid;position:absolute;inset:0}.card-scrim{background:linear-gradient(#0000 0%,#05060a0d 30%,#05060a59 52%,#05060ad1 78%,#05060af2 100%);position:absolute;inset:0}.card-top{z-index:2;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;top:8px;left:8px;right:8px}.card-fav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#ffffffbf;background:#08090d8c;border:1px solid #ffffff1f;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;transition:color .16s,background .16s;display:grid}.card-fav:hover{color:#fff;background:#08090dcc}.card-fav.on{color:var(--accent-2)}.card-count{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#ffffffd9;background:#08090d99;border:1px solid #ffffff1a;border-radius:99px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.card-body{z-index:2;padding:10px 11px 11px;position:absolute;bottom:0;left:0;right:0}.card-name{letter-spacing:-.01em;color:#fff;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 6px #0009;font-size:14.5px;font-weight:660;line-height:1.25;overflow:hidden}.card-desc{color:#ffffffa3;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:3px;font-size:11.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.card-chips{flex-wrap:wrap;gap:5px;max-height:21px;margin-top:8px;display:flex;overflow:hidden}@media (min-width:620px){.card-name{font-size:15.5px}.card-desc{font-size:12px}}.empty{text-align:center;color:var(--text-faint);flex-direction:column;align-items:center;gap:12px;padding:64px 20px;display:flex}.empty-icon{background:var(--surface);border:1px solid var(--line);width:56px;height:56px;color:var(--text-faint);border-radius:18px;place-items:center;display:grid}.empty-title{color:var(--text-dim);font-size:15.5px;font-weight:620}.avatar{color:#ffffffd1;-webkit-user-select:none;user-select:none;background-position:50%;background-size:cover;border:1px solid #ffffff17;border-radius:14px;flex:none;place-items:center;width:40px;height:40px;font-size:13px;font-weight:650;display:grid;position:relative;overflow:hidden}.avatar.round{border-radius:50%}.avatar.no-image{background:var(--surface-3);color:var(--text-faint)}.chat-shell{height:100dvh;display:flex;overflow:hidden}.rail{width:var(--rail-w);background:var(--bg-soft);border-right:1px solid var(--line);flex-direction:column;flex:none;min-height:0;display:flex}.rail-head{border-bottom:1px solid var(--line);flex-direction:column;gap:10px;padding:12px 12px 10px;display:flex}.rail-head-row{align-items:center;gap:8px;display:flex}.rail-search{align-items:center;display:flex;position:relative}.rail-search svg{color:var(--text-faint);pointer-events:none;position:absolute;left:11px}.rail-search input{background:var(--surface);border:1px solid var(--line);border-radius:10px;width:100%;height:36px;padding:0 12px 0 34px;font-size:13.5px}.rail-search input:focus{border-color:#8b7cf673}.rail-list{flex:1;min-height:0;padding:8px;overflow-y:auto}.rail-group{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding:12px 8px 6px;font-size:11px;font-weight:650}.rail-item{text-align:left;width:100%;color:var(--text-dim);border-radius:12px;align-items:center;gap:10px;padding:8px;transition:background .14s,color .14s;display:flex;position:relative}.rail-item:hover{color:var(--text);background:#ffffff0b}.rail-item.active{background:var(--accent-soft);color:var(--text)}.rail-item.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;height:22px;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.rail-item-text{flex-direction:column;flex:1;min-width:0;display:flex}.rail-item-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:560;display:block;overflow:hidden}.rail-item-sub{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.rail-foot{border-top:1px solid var(--line);gap:8px;padding:10px;display:flex}.chat{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.chat-head{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:10;background:#0a0b10db;flex:none;align-items:center;gap:10px;padding:10px 12px;display:flex}.chat-head-text{flex:1;min-width:0}.chat-head-name{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:620;overflow:hidden}.chat-head-sub{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.messages-frame{flex:1;min-height:0;position:relative;overflow:hidden}.messages{background:0 0;height:100%;padding:18px 14px 8px;overflow-y:auto}.messages-inner{flex-direction:column;gap:14px;max-width:820px;margin:0 auto;display:flex}.intro{text-align:center;flex-direction:column;align-items:center;gap:10px;margin-bottom:4px;padding:26px 18px 22px;display:flex}.intro .avatar{border-radius:28px;width:84px;height:84px;font-size:26px}.intro-name{letter-spacing:-.02em;font-size:20px;font-weight:680}.intro-desc{color:var(--text-dim);max-width:520px;font-size:13.5px;line-height:1.6}.intro-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.msg{align-items:flex-start;gap:10px;display:flex}.msg>.avatar,.msg>.avatar-slot{margin-top:2px}.msg.user{flex-direction:row-reverse}.msg-col{flex-direction:column;min-width:0;max-width:min(74%,620px);display:flex}.msg.user .msg-col{align-items:flex-end}.bubble{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#181b24eb;border-radius:6px 18px 18px;padding:10px 14px;font-size:15px;line-height:1.62;position:relative}.msg.user .bubble{background:var(--accent-grad);color:#fff;border-color:#0000;border-top-left-radius:18px;border-top-right-radius:6px}.bubble em{color:var(--text-faint);font-style:italic}.msg.user .bubble em{color:#ffffffc7}.bubble q{quotes:none}.msg-meta{color:var(--text-faint);opacity:0;align-items:center;gap:4px;min-height:20px;margin-top:4px;padding:0 4px;font-size:11px;transition:opacity .15s;display:flex}.msg:hover .msg-meta,.msg-meta.show{opacity:1}@media (hover:none){.msg-meta{opacity:1}}.msg-action{width:24px;height:24px;color:var(--text-faint);border-radius:7px;place-items:center;transition:background .14s,color .14s;display:grid}.msg-action:hover{color:var(--text);background:#ffffff14}.msg-action.danger:hover{color:var(--danger);background:#f2686b1f}.msg-time{font-variant-numeric:tabular-nums}.msg-edit{flex-direction:column;gap:8px;width:100%;display:flex}.msg-edit textarea{background:var(--bg-soft);resize:vertical;border:1px solid #8b7cf673;border-radius:14px;width:100%;min-height:90px;padding:10px 13px;font-size:15px;line-height:1.6}.msg-edit-actions{justify-content:flex-end;gap:8px;display:flex}.typing{align-items:center;gap:4px;padding:4px 2px;display:inline-flex}.typing i{background:var(--text-faint);border-radius:50%;width:6px;height:6px;animation:1.3s ease-in-out infinite blink}.typing i:nth-child(2){animation-delay:.18s}.typing i:nth-child(3){animation-delay:.36s}@keyframes blink{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}.caret{background:var(--accent);vertical-align:text-bottom;width:2px;height:1em;margin-left:1px;animation:1s steps(2,end) infinite caret;display:inline-block}@keyframes caret{0%,50%{opacity:1}51%,to{opacity:0}}.banner{color:#ffc9ca;background:#f2686b1a;border:1px solid #f2686b47;border-radius:12px;align-items:flex-start;gap:10px;max-width:820px;margin:0 auto 4px;padding:10px 12px;font-size:13.5px;line-height:1.5;display:flex}.banner svg{flex:none;margin-top:2px}.turn-actions{flex-wrap:wrap;justify-content:center;gap:8px;padding:4px 0 2px;display:flex}.composer{padding:10px 12px calc(12px + var(--safe-b));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0a0b10e6;flex:none}.composer-inner{background:var(--surface);border:1px solid var(--line);border-radius:22px;align-items:flex-end;gap:8px;max-width:820px;margin:0 auto;padding:6px 6px 6px 14px;transition:border-color .16s;display:flex}.composer textarea{resize:none;background:0 0;border:none;flex:1;min-height:24px;max-height:180px;padding:8px 0;font-size:15px;line-height:1.5}.composer textarea:focus-visible{outline:none}.composer textarea::placeholder{color:var(--text-faint)}.send{background:var(--accent-grad);color:#fff;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;transition:filter .16s,opacity .16s,transform .12s;display:grid}.send:hover:not(:disabled){filter:brightness(1.1)}.send:active:not(:disabled){transform:scale(.94)}.send:disabled{opacity:.35;cursor:not-allowed}.send.stop{background:#f2686be6}.jump{z-index:8;background:var(--surface-2);border:1px solid var(--line-strong);height:32px;box-shadow:var(--shadow);color:var(--text-dim);border-radius:99px;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;display:inline-flex;position:absolute;bottom:88px;left:50%;transform:translate(-50%)}.jump:hover{color:var(--text)}.overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#040508a8;justify-content:center;align-items:center;padding:20px;animation:.16s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);width:100%;max-width:620px;max-height:min(88dvh,860px);box-shadow:var(--shadow-lg);flex-direction:column;animation:.18s cubic-bezier(.2,.9,.3,1) pop;display:flex;overflow:hidden}@keyframes pop{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:none}}.modal.narrow{max-width:430px}.modal-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;padding:14px 16px;display:flex}.modal-title{letter-spacing:-.01em;flex:1;font-size:16px;font-weight:650}.modal-body{flex-direction:column;gap:16px;padding:16px;display:flex;overflow-y:auto}.modal-foot{padding:12px 16px calc(12px + var(--safe-b));border-top:1px solid var(--line);background:var(--surface);flex-wrap:wrap;flex:none;justify-content:flex-end;gap:8px;display:flex}.modal-foot .spacer{flex:1}.modal-text{color:var(--text-dim);font-size:14px;line-height:1.6}.universe-intro{border-radius:var(--r);background:var(--accent-soft);border:1px solid #8b7cf647;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.universe-intro strong{color:var(--text);font-size:14px;display:block}.universe-intro p{color:var(--text-dim);margin-top:4px;font-size:12.5px;line-height:1.45}.universe-intro .btn{flex:none}.universe-list{flex-direction:column;gap:9px;display:flex}.universe-card{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-soft);align-items:center;gap:12px;padding:13px;display:flex}.universe-card.active{background:linear-gradient(135deg,#8b7cf61f,#c66dca0f);border-color:#8b7cf680}.universe-card-main{flex:1;min-width:0}.universe-title-row{align-items:center;gap:7px;display:flex}.universe-name{min-width:0;color:var(--text);align-items:center;gap:8px;font-size:14.5px;font-weight:650;display:flex}.universe-active{background:var(--accent-soft);color:var(--accent);text-transform:uppercase;letter-spacing:.03em;border-radius:99px;align-items:center;gap:3px;padding:2px 7px;font-size:10.5px;font-weight:700;display:inline-flex}.universe-meta{color:var(--text-faint);align-items:center;gap:7px;margin-top:4px;font-size:11.5px;display:flex}.universe-meta span{background:currentColor;border-radius:50%;width:3px;height:3px}.universe-preview{text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim);margin-top:7px;font-size:12.5px;overflow:hidden}.universe-actions{flex:none;align-items:center;gap:6px;display:flex}.universe-icon{border-radius:8px;width:30px;height:30px}.universe-icon.danger{color:var(--danger)}.universe-rename{gap:7px;display:flex}.universe-rename .input{height:34px;padding:7px 9px}.universe-delete-confirm{gap:5px;display:flex}@media (max-width:560px){.universe-intro{flex-direction:column;align-items:stretch}.universe-card{align-items:flex-start}.universe-actions{padding-top:1px}.universe-delete-confirm{flex-direction:column}}@media (max-width:640px){.overlay{align-items:flex-end;padding:0}.modal{border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:none;max-width:100%;max-height:94dvh;animation:.22s cubic-bezier(.2,.9,.3,1) slide-up}.modal.narrow{max-width:100%}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:none}}.pickers{gap:14px;display:flex}.picker{flex-direction:column;gap:7px;display:flex}.picker-frame{border-radius:var(--r);border:1px dashed var(--line-strong);color:var(--text-faint);background-position:50%;background-size:cover;background-color:var(--bg-soft);place-items:center;transition:border-color .16s;display:grid;position:relative;overflow:hidden}.picker-frame:hover{color:var(--text-dim);border-color:#8b7cf680}.picker-avatar{width:92px;height:92px}.picker-cover{aspect-ratio:3/4;width:100%;max-width:150px}.picker-actions{gap:6px;display:flex}.picker-overlay{opacity:0;color:#fff;background:#05060a80;place-items:center;transition:opacity .16s;display:grid;position:absolute;inset:0}.picker-frame:hover .picker-overlay{opacity:1}.tag-input-row{gap:8px;display:flex}.tag-list{flex-wrap:wrap;gap:6px;display:flex}.tag-pill{background:var(--accent-soft);color:#cfc6ff;border:1px solid #8b7cf647;border-radius:99px;align-items:center;gap:6px;padding:4px 6px 4px 11px;font-size:12.5px;font-weight:560;display:inline-flex}.tag-pill button{color:inherit;opacity:.65;place-items:center;display:grid}.tag-pill button:hover{opacity:1}.tag-suggest{flex-wrap:wrap;gap:6px;display:flex}.tag-suggest button{color:var(--text-dim);background:var(--surface-2);border:1px solid var(--line);border-radius:99px;padding:4px 10px;font-size:12.5px}.tag-suggest button:hover{color:var(--text);border-color:var(--line-strong)}.row{justify-content:space-between;align-items:center;gap:14px;display:flex}.row-text{min-width:0}.row-title{font-size:14px;font-weight:560}.value-pill{font-variant-numeric:tabular-nums;color:var(--accent);background:var(--accent-soft);text-align:center;border-radius:8px;min-width:46px;padding:2px 8px;font-size:12.5px;font-weight:650}.bg-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}@media (max-width:480px){.bg-grid{grid-template-columns:repeat(3,1fr)}}.bg-swatch{aspect-ratio:4/3;background-position:50%;background-size:cover;border:2px solid #0000;border-radius:11px;transition:border-color .16s,transform .14s;position:relative;overflow:hidden}.bg-swatch:hover{transform:translateY(-2px)}.bg-swatch[aria-pressed=true]{border-color:var(--accent)}.bg-swatch span{color:#ffffffe6;text-align:center;background:linear-gradient(#0000,#000000bf);padding:3px 5px;font-size:10.5px;font-weight:600;position:absolute;bottom:0;left:0;right:0}.divider{background:var(--line);height:1px}.drawer-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#04050899;animation:.16s fade;position:fixed;inset:0}@media (max-width:860px){.rail{z-index:70;width:min(85vw,320px);box-shadow:var(--shadow-lg);transition:transform .24s cubic-bezier(.2,.9,.3,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.rail.open{transform:none}}@media (min-width:861px){.drawer-backdrop{display:none}}.hide-desktop{display:none}@media (max-width:860px){.hide-desktop{display:inline-grid}.hide-mobile{display:none!important}}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.center-screen{min-height:100dvh;color:var(--text-faint);place-items:center;gap:10px;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.menu-wrap{position:relative}.menu{z-index:50;background:var(--surface-2);border:1px solid var(--line-strong);min-width:206px;box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;gap:1px;padding:6px;animation:.14s cubic-bezier(.2,.9,.3,1) pop;display:flex;position:absolute;top:calc(100% + 6px);right:0}.menu button{width:100%;color:var(--text-dim);text-align:left;border-radius:9px;align-items:center;gap:10px;padding:9px 10px;font-size:14px;transition:background .14s,color .14s;display:flex}.menu button:hover{color:var(--text);background:#ffffff12}.menu button.danger{color:var(--danger)}.menu button.danger:hover{background:#f2686b1f}.menu button svg{opacity:.85;flex:none}.menu .sep{background:var(--line);height:1px;margin:4px 2px}.mem-stats{color:var(--text-faint);flex-wrap:wrap;gap:6px 16px;font-size:12.5px;display:flex}.mem-stats strong{color:var(--text-dim);font-weight:650}.mem-summary{color:var(--text-dim);background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 13px;font-size:14px;line-height:1.65}.mem-summary.muted{color:var(--text-faint);font-style:italic}.mem-add{align-items:center;gap:8px;display:flex}.mem-add .input{min-width:0}.mem-list{flex-direction:column;gap:8px;display:flex}.mem-item{border-radius:var(--r-sm);background:var(--bg-soft);border:1px solid var(--line);padding:9px 11px;transition:border-color .16s}.mem-item:hover{border-color:var(--line-strong)}.mem-item.pinned{background:#8b7cf60f;border-color:#8b7cf659}.mem-item-head{align-items:center;gap:6px;display:flex}.mem-kind{letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);background:#ffffff0e;border-radius:5px;padding:2px 6px;font-size:10.5px;font-weight:700}.mem-kind.manual{color:#cfc6ff;background:var(--accent-soft)}.msg-action.on{color:var(--accent)}.mem-text{text-align:left;width:100%;color:var(--text);background:0 0;border-radius:6px;margin-top:3px;font-size:14px;line-height:1.55;display:block}.mem-text:hover{color:#fff}.mem-confirm{flex-direction:column;gap:14px;display:flex}.btn-ghost.btn-danger{background:0 0;border-color:#0000}.btn-ghost.btn-danger:hover{background:#f2686b1f}.mem-badge{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.toggle{background:var(--surface-3);border:1px solid var(--line);border-radius:99px;flex:none;width:44px;height:26px;padding:2px;transition:background .18s,border-color .18s}.toggle span{background:var(--text-faint);border-radius:50%;width:20px;height:20px;transition:transform .18s cubic-bezier(.2,.9,.3,1),background .18s;display:block}.toggle.on{background:var(--accent-grad);border-color:#0000}.toggle.on span{background:#fff;transform:translate(18px)}@media (max-width:860px){.input,.textarea,.select,.composer textarea,.search input,.msg-edit textarea,input[type=text],input[type=search],input[type=password],textarea,select{font-size:16px}}.direction-label{color:var(--muted);margin-bottom:6px;font-size:11px}.msg[style*=--who] .bubble{background:hsl(var(--who) 30% 15% / .94);border-color:hsl(var(--who) 40% 45% / .34)}.msg[style*=--who]:not(.user) .bubble:after{border-right-color:hsl(var(--who) 30% 15% / .94)}.msg[style*=--who] .msg-speaker{color:hsl(var(--who) 62% 72%)}.msg[style*=--who] .bubble em{color:hsl(var(--who) 30% 74%)}.bubble:after{content:"";border-style:solid;width:0;height:0;position:absolute;top:12px}.msg:not(.user) .bubble:after{border-width:0 8px 8px 0;border-color:#0000 #181b24eb #0000 #0000;left:-7px}.msg.user .bubble:after{border-width:0 0 8px 8px;border-color:transparent transparent transparent var(--accent);right:-6px}.msg.grouped .bubble:after{display:none}.msg.grouped .bubble{border-top-left-radius:18px}.msg.grouped.user .bubble{border-top-right-radius:18px}.msg.grouped>.avatar-slot{visibility:hidden}.avatar-slot{flex:none}.head-count{color:var(--text-faint);font-weight:600}.face-stack{cursor:pointer;border:1px solid #0000;border-radius:99px;align-items:center;padding:3px 6px;transition:border-color .16s,background .16s;display:inline-flex}.face-stack:hover,.face-stack.open{border-color:var(--line-strong);background:var(--bg-soft)}.face-stack .face{box-shadow:0 0 0 2px var(--bg);border-radius:99px;display:inline-flex}.face-stack .face.away{opacity:.4}.roster[hidden]{display:none}.amino-day{justify-content:center;margin:14px 0 10px;display:flex}.amino-day span{letter-spacing:.02em;color:var(--text-dim);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0b10a8;border-radius:99px;padding:4px 12px;font-size:11.5px;font-weight:600}.messages-inner .msg{margin-top:12px}.messages-inner .msg.grouped{margin-top:3px}.composer-btn{width:34px;height:34px;color:var(--text-dim);border-radius:50%;flex:none;place-items:center;transition:background .14s,color .14s;display:grid}.composer-btn:hover{background:var(--bg-soft);color:var(--text)}.composer-btn.on{background:var(--accent-soft);color:var(--accent)}.composer-btn .emoji-face{font-size:18px;line-height:1}.composer-btn.listening{color:#ff6b8b;background:#ff6b8b24;animation:1.4s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{box-shadow:0 0 #ff6b8b73}50%{box-shadow:0 0 0 6px #ff6b8b00}}.composer-listen-error{color:var(--text-dim);padding:6px 14px 8px;font-size:12.5px}.composer-listen-error.fatal{color:var(--danger)}.composer{position:relative}.composer-pop{border:1px solid var(--line-strong);border-radius:var(--r-lg,14px);background:var(--surface);max-width:820px;box-shadow:var(--shadow-lg);z-index:20;margin:0 auto;position:absolute;bottom:calc(100% - 4px);left:12px;right:12px}.emoji-pop{grid-template-columns:repeat(7,1fr);gap:2px;padding:8px;display:grid}.emoji-pop button{border-radius:9px;padding:7px 0;font-size:21px;line-height:1;transition:background .12s}.emoji-pop button:hover{background:var(--bg-soft)}.mention-pop{flex-direction:column;max-height:240px;padding:6px;display:flex;overflow-y:auto}.mention-pop button{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;flex-wrap:wrap;gap:8px;padding:9px 12px;display:flex}.mention-pop button[aria-selected=true],.mention-pop button:hover{background:var(--bg-soft)}.mention-pop button span{opacity:.7;font-size:12px}
