:root{--c-neutral-0:#fff;--c-neutral-50:#faf8f3;--c-neutral-100:#f2eee6;--c-neutral-200:#e5dfd4;--c-neutral-300:#d2cabb;--c-neutral-400:#a59e90;--c-neutral-500:#766f66;--c-neutral-600:#544f48;--c-neutral-700:#38342e;--c-neutral-800:#24221e;--c-neutral-850:#1a1815;--c-neutral-900:#121110;--c-neutral-950:#0b0a09;--c-brass-300:#e6cf96;--c-brass-400:#cfa74e;--c-brass-500:#b58f3a;--c-brass-600:#96742b;--c-brass-700:#6d5520;--c-red-400:#e8756f;--c-red-500:#d9534f;--c-red-600:#b23b38;--c-green-400:#6fae7f;--c-green-600:#3f7a52;--font-serif:ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.0625rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-4xl:3rem;--leading-tight:1.15;--leading-snug:1.4;--leading-normal:1.6;--leading-relaxed:1.75;--tracking-tight:-.02em;--tracking-eyebrow:.12em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:14px;--radius-2xl:20px;--radius-full:999px;--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--duration-fast:.12s;--duration-base:.18s;--duration-slow:.28s;--z-sticky:10;--z-overlay:100;--z-modal:110;--z-toast:120}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--c-neutral-950);--surface:var(--c-neutral-900);--surface-2:var(--c-neutral-850);--surface-3:var(--c-neutral-800);--surface-hover:#fffcf50a;--surface-active:#fffcf512;--border:#eee8dc17;--border-strong:#eee8dc2b;--text:#ece7dd;--text-2:#a39c90;--text-3:#6f695f;--text-inverse:var(--c-neutral-950);--accent:var(--c-brass-400);--accent-hover:var(--c-brass-300);--accent-fg:#1a1408;--accent-subtle:#cfa74e1f;--accent-border:#cfa74e57;--danger:var(--c-red-500);--danger-fg:#fff;--danger-subtle:#d9534f21;--success:var(--c-green-400);--shadow-sm:0 1px 2px #0006;--shadow-md:0 2px 4px #0000004d, 0 4px 12px #00000052;--shadow-lg:0 4px 8px #0000004d, 0 12px 32px #00000070;--shadow-focus:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--image-outline:#ffffff1a;--code-bg:#0f0e0c}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:var(--c-neutral-50);--surface:var(--c-neutral-0);--surface-2:var(--c-neutral-100);--surface-3:var(--c-neutral-200);--surface-hover:#1c18100a;--surface-active:#1c181012;--border:#1c18101c;--border-strong:#1c181033;--text:#1b1915;--text-2:#57524a;--text-3:#868075;--text-inverse:var(--c-neutral-0);--accent:var(--c-brass-600);--accent-hover:var(--c-brass-700);--accent-fg:#fff;--accent-subtle:#96742b1a;--accent-border:#96742b52;--danger:var(--c-red-600);--danger-fg:#fff;--danger-subtle:#b23b381a;--success:var(--c-green-600);--shadow-sm:0 1px 2px #2821140f;--shadow-md:0 2px 4px #2821140d, 0 4px 12px #28211412;--shadow-lg:0 4px 8px #2821140f, 0 12px 32px #2821141a;--shadow-focus:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--image-outline:#0000001a;--code-bg:var(--c-neutral-100)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;text-wrap:pretty;margin:0}#root{min-height:var(--app-height,100svh);flex-direction:column;display:flex}h1,h2,h3,h4{font-family:var(--font-serif);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance;margin:0;font-weight:500}.eyebrow{font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-3);font-weight:500;display:inline-block}p{margin:0}button,input,textarea,select{font:inherit;color:inherit}input,textarea{text-wrap:wrap;text-wrap:stable}button{cursor:pointer;background:0 0;border:none;padding:0}a{color:var(--accent);-webkit-text-decoration-color:color-mix(in oklab, var(--accent) 40%, transparent);text-decoration-color:color-mix(in oklab, var(--accent) 40%, transparent);text-underline-offset:2px}img,svg,video{max-width:100%;height:auto;display:block}img{outline:1px solid var(--image-outline);outline-offset:-1px}:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);outline:none}::selection{background:var(--accent-subtle)}.tabular{font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full);background-clip:content-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:content-box}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.prose{font-size:var(--text-base);line-height:var(--leading-relaxed);overflow-wrap:break-word}.prose>*+*{margin-top:var(--space-4)}.prose h1,.prose h2,.prose h3,.prose h4{margin-top:var(--space-6);line-height:var(--leading-snug)}.prose h1{font-size:var(--text-xl)}.prose h2{font-size:var(--text-lg)}.prose h3,.prose h4{font-size:var(--text-md)}.prose ul,.prose ol{padding-left:var(--space-6)}.prose li+li{margin-top:var(--space-2)}.prose li::marker{color:var(--text-3)}.prose blockquote{padding-left:var(--space-4);border-left:2px solid var(--border-strong);color:var(--text-2);margin-left:0}.prose hr{border:none;border-top:1px solid var(--border)}.prose :not(pre)>code{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);font-family:var(--font-mono);padding:.15em .4em;font-size:.875em}.table-scroll{border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.prose th,.prose td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--border)}.prose th{background:var(--surface-2);font-weight:600}.prose tr:last-child td{border-bottom:none}.codeblock{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--code-bg);overflow:hidden}.codeblock-bar{padding:var(--space-1) var(--space-2) var(--space-1) var(--space-3);border-bottom:1px solid var(--border);background:var(--surface-2);justify-content:space-between;align-items:center;display:flex}.codeblock-lang{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-3)}.codeblock-copy{align-items:center;gap:var(--space-2);min-height:28px;padding:0 var(--space-2);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-2);transition-property:background-color,color,scale;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);display:inline-flex}.codeblock-copy:hover{background:var(--surface-3);color:var(--text)}.codeblock-copy:active{scale:.96}.codeblock pre{padding:var(--space-4);margin:0;overflow-x:auto}.codeblock code{font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-normal);tab-size:2}.hljs-comment,.hljs-quote{color:var(--text-3);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-section,.hljs-doctag,.hljs-type,.hljs-name,.hljs-strong{color:#c48ce0}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#8fbf7f}.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-selector-attr,.hljs-selector-pseudo{color:var(--c-gold-300)}.hljs-title,.hljs-title.function_,.hljs-built_in{color:#7fb3e0}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-selector-class,.hljs-selector-id{color:#e0a878}.hljs-deletion{color:var(--danger)}.hljs-emphasis{font-style:italic}:root[data-theme=light] .hljs-keyword,:root[data-theme=light] .hljs-selector-tag,:root[data-theme=light] .hljs-literal,:root[data-theme=light] .hljs-section,:root[data-theme=light] .hljs-type,:root[data-theme=light] .hljs-name{color:#8250b8}:root[data-theme=light] .hljs-string,:root[data-theme=light] .hljs-regexp,:root[data-theme=light] .hljs-addition,:root[data-theme=light] .hljs-attribute{color:#3f7d3f}:root[data-theme=light] .hljs-number,:root[data-theme=light] .hljs-symbol,:root[data-theme=light] .hljs-bullet,:root[data-theme=light] .hljs-link{color:var(--c-gold-700)}:root[data-theme=light] .hljs-title,:root[data-theme=light] .hljs-title.function_,:root[data-theme=light] .hljs-built_in{color:#2a6ba8}:root[data-theme=light] .hljs-attr,:root[data-theme=light] .hljs-variable,:root[data-theme=light] .hljs-selector-class{color:#a35a1f}.prose .katex{font-size:1.05em}.prose .katex-display{padding:var(--space-2) 0;overflow:auto hidden}.app{height:var(--app-height,100svh);top:var(--keyboard-offset,0px);display:flex;position:relative;overflow:hidden}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--text);transition-property:background-color,color,box-shadow,scale;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);font-weight:500;display:inline-flex}.btn:active:not(:disabled){scale:.96}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.sm{min-height:30px;padding:0 var(--space-2);font-size:var(--text-xs)}.btn.primary{background:var(--accent);color:var(--accent-fg);font-weight:600}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.ghost{color:var(--text-2)}.btn.ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.icon-btn{border-radius:var(--radius-lg);width:40px;height:40px;color:var(--text-2);transition-property:background-color,color,scale;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.icon-btn:active:not(:disabled){scale:.96}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.linkish{color:var(--text-2);text-underline-offset:2px;text-decoration:underline}.linkish:hover{color:var(--text)}.icon-swap{place-items:center;width:16px;height:16px;display:grid}.icon-swap>*{transition-property:opacity;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);grid-area:1/1}.icon-swap>:first-child{opacity:1}.icon-swap>:last-child,.icon-swap[data-active=true]>:first-child{opacity:0}.icon-swap[data-active=true]>:last-child{opacity:1;color:var(--success)}.sidebar{background:var(--surface);border-right:1px solid var(--border);width:272px;padding:var(--space-3) var(--space-2);gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.sidebar[data-collapsed=true]{border-right-color:#0000;width:0;padding-inline:0;overflow:hidden}.sidebar-head{justify-content:space-between;align-items:center;gap:var(--space-2);padding:0 var(--space-2) var(--space-2);display:flex}.sidebar-head-actions{align-items:center;gap:2px;display:flex}.rail-icon{border-radius:var(--radius-lg);width:32px;height:32px;color:var(--text-3);transition-property:background-color,color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);flex-shrink:0;place-items:center;display:grid}.rail-icon:hover{background:var(--surface-hover);color:var(--text)}.rail{padding-bottom:var(--space-2);flex-direction:column;gap:1px;display:flex}.rail-item{align-items:center;gap:var(--space-3);min-height:38px;padding:0 var(--space-2);border-radius:var(--radius-lg);font-size:var(--text-base);color:var(--text);text-align:left;transition-property:background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);text-decoration:none;display:flex}.rail-item svg{color:var(--text-2);flex-shrink:0}.rail-item:hover{background:var(--surface-hover)}.rail-item[data-active=true]{background:var(--surface-active)}.rail-item[data-active=true] svg{color:var(--text)}.rail-row{border-radius:var(--radius-lg);transition-property:background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);align-items:center;display:flex}.rail-row:hover{background:var(--surface-hover)}.rail-row[data-active=true]{background:var(--surface-active)}.rail-row[data-active=true] .rail-item svg{color:var(--text)}.rail-row .rail-item{flex:1;min-width:0}.rail-row .rail-item:hover{background:0 0}.rail-fold,.row-fold{width:26px;height:26px;margin-right:var(--space-1);border-radius:var(--radius-md);color:var(--text-3);transition-property:background-color,color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);flex-shrink:0;place-items:center;display:grid}.rail-fold:hover,.row-fold:hover{background:var(--surface-3);color:var(--text)}.rail-fold svg,.row-fold svg{transition-property:rotate;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);rotate:-90deg}.rail-fold svg[data-open],.row-fold svg[data-open]{rotate:0deg}.rail-nested{padding:0 0 0 var(--space-3);margin:2px 0 0;list-style:none}.rail-more-nested{padding-left:var(--space-5)}.rail-nested .conv-open{gap:var(--space-2)}.conv-children{margin:0 0 var(--space-2) calc(var(--space-2) + 10px);padding:0 0 0 var(--space-2);border-left:1px solid var(--border);list-style:none}.sidebar-scroll{margin:0 calc(-1 * var(--space-1));padding:0 var(--space-1);flex:1;overflow-y:auto}.rail-section{padding-bottom:var(--space-4)}.rail-section ul{margin:0;padding:0;list-style:none}.rail-heading{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-1);font-family:var(--font-sans);font-size:var(--text-sm);letter-spacing:0;color:var(--text-2);font-weight:500;display:flex}.rail-heading-add{border-radius:var(--radius-md);width:22px;height:22px;color:var(--text-3);opacity:0;transition-property:opacity,background-color,color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);place-items:center;display:grid}.rail-section:hover .rail-heading-add,.rail-heading-add:focus-visible{opacity:1}.rail-heading-add:hover{background:var(--surface-hover);color:var(--text)}.rail-empty{padding:var(--space-1) var(--space-2) var(--space-2);font-size:var(--text-xs);line-height:var(--leading-snug);color:var(--text-3)}.rail-more{padding:var(--space-1) var(--space-2);font-size:var(--text-sm);color:var(--text-3)}.rail-more:hover{color:var(--text)}.brand-mark{font-family:var(--font-serif);font-size:var(--text-xl);letter-spacing:-.01em;color:var(--text);font-style:italic;font-weight:500}.brand-mark:after{content:"";vertical-align:middle;border-radius:var(--radius-full);background:var(--accent);width:5px;height:5px;margin-left:5px;display:inline-block}.sidebar-close{display:none}.sidebar-search,.model-search{align-items:center;gap:var(--space-2);padding:0 var(--space-3);border-radius:var(--radius-lg);background:var(--surface-2);min-height:34px;color:var(--text-3);display:flex}.sidebar-search input,.model-search input{min-width:0;font-size:var(--text-sm);color:var(--text);background:0 0;border:none;outline:none;flex:1}.sidebar-search input::placeholder,.model-search input::placeholder{color:var(--text-3)}.sidebar-search{margin:0 var(--space-1) var(--space-2)}.conv-group{padding:var(--space-3) var(--space-2) var(--space-1);font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:0;color:var(--text-3);font-weight:500}.conv-item{border-radius:var(--radius-lg);transition-property:background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);align-items:center;display:flex}.conv-item:hover{background:var(--surface-hover)}.conv-item[data-active=true]{background:var(--surface-active)}.conv-open{align-items:center;gap:var(--space-2);min-width:0;min-height:34px;padding:0 var(--space-2);font-size:var(--text-sm);color:var(--text-2);text-align:left;flex:1;text-decoration:none;display:flex}.conv-item[data-active=true] .conv-open{color:var(--text)}.conv-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.conv-pin{color:var(--accent);flex-shrink:0}.conv-lead{color:var(--text-3);flex-shrink:0}.row-more{width:26px;height:26px;margin-right:var(--space-1);border-radius:var(--radius-md);color:var(--text-3);opacity:0;transition-property:opacity,background-color,color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);flex-shrink:0;place-items:center;display:grid}.conv-item:hover .row-more,.conv-item:focus-within .row-more,.row-more[aria-expanded=true]{opacity:1}.row-more:hover{background:var(--surface-3);color:var(--text)}.conv-item.renaming input{width:100%;min-height:34px;padding:0 var(--space-2);border:1px solid var(--accent-border);border-radius:var(--radius-lg);background:var(--bg);font-size:var(--text-sm);outline:none}.account-row{align-items:center;gap:var(--space-1);margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--border);display:flex}.account-open{align-items:center;gap:var(--space-3);min-width:0;min-height:44px;padding:0 var(--space-2);border-radius:var(--radius-lg);text-align:left;transition-property:background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);flex:1;display:flex}.account-open:hover{background:var(--surface-hover)}.avatar{border-radius:var(--radius-full);background:var(--accent-subtle);border:1px solid var(--accent-border);width:28px;height:28px;color:var(--accent);font-size:var(--text-xs);letter-spacing:.02em;flex-shrink:0;place-items:center;font-weight:600;display:grid}.account-text{min-width:0;line-height:var(--leading-tight);flex-direction:column;display:flex}.account-name{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);color:var(--text);overflow:hidden}.account-plan{font-size:var(--text-xs);color:var(--text-3)}.account-more{color:var(--text-3);transition:color var(--duration-fast) var(--ease-out);flex-shrink:0;margin-left:auto}.account-open:hover .account-more,.account-open[aria-expanded=true] .account-more{color:var(--text-2)}.sidebar-scrim{display:none}.menu-panel{z-index:var(--z-modal);padding:var(--space-1);border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);position:fixed;overflow-y:auto}.menu-header{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-2);margin-bottom:var(--space-1);border-bottom:1px solid var(--border);display:flex}.menu-item{align-items:center;gap:var(--space-3);width:100%;min-height:34px;padding:0 var(--space-2);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--text);text-align:left;transition-property:background-color,color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);display:flex}.menu-item:hover:not(:disabled){background:var(--surface-hover)}.menu-item[data-danger]{color:var(--danger)}.menu-item[data-danger]:hover{background:var(--danger-subtle)}.menu-icon{color:var(--text-3);flex-shrink:0;place-items:center;display:grid}.menu-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.menu-hint{padding:0 var(--space-1);border-radius:var(--radius-sm);background:var(--accent-subtle);border:1px solid var(--accent-border);color:var(--accent);letter-spacing:.02em;text-transform:uppercase;flex-shrink:0;font-size:.625rem}.menu-check{color:var(--accent);font-size:var(--text-xs);flex-shrink:0}.menu-group{margin:var(--space-1) var(--space-2) 0;padding-top:var(--space-1);border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--text-3)}.menu-group:empty{margin-bottom:var(--space-1);padding-top:0}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);min-height:52px;display:flex}.menu-btn,.expand-btn{display:none}.expand-btn{display:inline-flex}.topbar-right{align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.session-cost{padding:0 var(--space-2);font-size:var(--text-xs);color:var(--text-3)}.update-btn{align-items:center;gap:var(--space-1);min-height:28px;padding:0 var(--space-2);border:1px solid var(--accent-border);border-radius:var(--radius-full);background:var(--accent-subtle);color:var(--accent);font-size:var(--text-xs);white-space:nowrap;transition-property:background-color,color,scale;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);display:inline-flex}.update-btn:hover{background:var(--accent);color:var(--accent-fg)}.update-btn:active{scale:.96}.thread{overflow-anchor:none;flex-direction:column;flex:1;display:flex;overflow-y:auto}.thread-inner{max-width:46rem;padding:var(--space-6) var(--space-4) var(--space-8);gap:var(--space-6);flex-direction:column;margin:0 auto;display:flex}.thread-tail{flex:none}.home{padding:var(--space-6) var(--space-4) var(--space-10);flex:1;justify-content:center;align-items:center;display:flex;overflow-y:auto}.home-inner{width:100%;max-width:46rem}.home-greeting{margin-bottom:var(--space-6);font-size:clamp(var(--text-2xl), 4.5vw, var(--text-3xl));text-align:center}.home .composer{padding:0}@media (hover:none),(pointer:coarse){.home:focus-within{align-items:flex-end}}.starters{max-width:46rem;margin:var(--space-5) auto 0;padding:0 var(--space-2);flex-direction:column;gap:1px;list-style:none;display:flex}.starters button{align-items:center;gap:var(--space-4);width:fit-content;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-base);color:var(--text-2);text-align:left;transition-property:background-color,color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);display:flex}.starters button:hover{background:var(--surface-hover);color:var(--text)}.starters svg{color:var(--text-3);flex-shrink:0}.msg{gap:var(--space-2);flex-direction:column;display:flex}.msg.user{align-items:flex-end}.msg.user .msg-body{max-width:85%}.msg.user .bubble{padding:var(--space-3) var(--space-4);border-radius:var(--radius-xl);background:var(--surface-2);border:1px solid var(--border);white-space:pre-wrap;overflow-wrap:break-word}.msg-body{min-width:0}.msg[data-streaming] .msg-body{text-wrap:wrap;text-wrap:stable}.msg-actions{align-items:center;gap:var(--space-1);opacity:0;min-height:26px;transition-property:opacity;transition-duration:var(--duration-base);transition-timing-function:var(--ease-out);display:flex}.msg.user .msg-actions{justify-content:flex-end}.msg:hover .msg-actions,.msg:focus-within .msg-actions{opacity:1}.msg-action{border-radius:var(--radius-md);width:26px;height:26px;color:var(--text-3);transition-property:background-color,color,scale;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);place-items:center;display:grid}.msg-action:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.msg-action:active:not(:disabled){scale:.96}.msg-action:disabled{opacity:.3;cursor:not-allowed}.branch-switch{font-size:var(--text-xs);color:var(--text-3);align-items:center;gap:2px;display:flex}.msg-usage{font-size:var(--text-xs);color:var(--text-3)}.msg-error{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:var(--danger-subtle);border:1px solid color-mix(in oklab, var(--danger) 30%, transparent);color:var(--danger);font-size:var(--text-sm);display:flex}.msg-reasoning-live{gap:var(--space-1);padding:var(--space-1) 0;display:grid}.msg-reasoning-text{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-3);white-space:pre-wrap;overflow-wrap:break-word}.msg-reasoning-tail{max-height:11rem;align-content:end;max-height:8lh;display:grid;overflow:hidden}.msg-reasoning .disclosure{border-top:none;margin-bottom:0}.msg-reasoning .disclosure summary{padding-block:var(--space-2)}.msg-reasoning .disclosure-label{font-size:var(--text-sm);color:var(--text-3);font-weight:400}.msg-reasoning .disclosure summary:hover .disclosure-label{color:var(--text-2)}.msg-reasoning .disclosure-body{padding-bottom:var(--space-3)}.msg-edit{width:100%;padding:var(--space-3);border:1px solid var(--accent-border);border-radius:var(--radius-xl);background:var(--surface);resize:vertical;font-size:var(--text-base);line-height:var(--leading-normal);outline:none}.msg-edit-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.thinking{padding:var(--space-2) 0;gap:4px;display:flex}.thinking span{border-radius:var(--radius-full);background:var(--text-3);width:6px;height:6px;animation:pulse 1.2s var(--ease-in-out) infinite}.thinking span:nth-child(2){animation-delay:.15s}.thinking span:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,60%,to{opacity:.25;scale:.8}30%{opacity:1;scale:1}}.banner{max-width:46rem;margin:0 auto var(--space-6);padding:var(--space-3) var(--space-4);border-radius:var(--radius-xl);justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--text-sm);display:flex}.banner.error{background:var(--danger-subtle);border:1px solid color-mix(in oklab, var(--danger) 30%, transparent);color:var(--danger)}.composer{padding:0 var(--space-4) var(--space-4);width:100%;max-width:46rem;margin:0 auto}.composer-box{gap:var(--space-1);padding:var(--space-2);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);transition-property:border-color,box-shadow;transition-duration:var(--duration-base);transition-timing-function:var(--ease-out);border-radius:25px;flex-direction:column;display:flex}.composer-box:focus-within{border-color:var(--accent-border);box-shadow:var(--shadow-lg)}.composer-box textarea:focus-visible{box-shadow:none}.composer-box textarea{width:100%;min-height:36px;padding:var(--space-2) var(--space-3) 0;resize:none;font-size:var(--text-md);line-height:var(--leading-snug);background:0 0;border:none;outline:none;max-height:240px}.composer-box textarea::placeholder{color:var(--text-3)}.composer-tools{align-items:center;gap:var(--space-1);display:flex}.composer-spacer{min-width:var(--space-2);flex:1}.composer-plus{border-radius:var(--radius-full);border:1px solid var(--border);width:34px;height:34px;color:var(--text-2);transition-property:background-color,color,border-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);flex-shrink:0;place-items:center;display:grid}.composer-plus:hover,.composer-plus[aria-expanded=true]{background:var(--surface-hover);border-color:var(--border-strong);color:var(--text)}.composer-chips{align-items:center;gap:var(--space-2);padding:0 var(--space-1) var(--space-1);flex-wrap:wrap;display:flex}.composer-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--accent-subtle);border:1px solid var(--accent-border);color:var(--accent);font-size:var(--text-xs);display:inline-flex}.composer-chip button{border-radius:var(--radius-full);width:18px;height:18px;color:inherit;place-items:center;display:grid}.composer-chip button:hover{background:var(--surface-active)}.composer-btn{border-radius:var(--radius-full);width:34px;height:34px;transition-property:background-color,color,opacity,scale;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);flex-shrink:0;place-items:center;display:grid}.composer-btn:active:not(:disabled){scale:.96}.composer-btn.send{background:var(--accent);color:var(--accent-fg)}.composer-btn.send:disabled{background:var(--surface-3);color:var(--text-3);cursor:not-allowed}.composer-btn.stop{background:var(--surface-3);color:var(--text)}.composer-hint{margin-top:var(--space-2);text-align:center;font-size:var(--text-xs);color:var(--text-3)}.composer-hint-ai{color:var(--text-2)}.model-picker{min-width:0;position:relative}.model-trigger{align-items:center;gap:var(--space-1);max-width:100%;min-height:30px;padding:0 var(--space-2);border-radius:var(--radius-full);color:var(--text-3);font-size:var(--text-sm);transition-property:background-color,color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);display:flex}.model-trigger:hover,.model-trigger[aria-expanded=true]{background:var(--surface-hover);color:var(--text-2)}.model-trigger-name{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}.setting .model-picker{width:100%}.setting .model-trigger{width:100%;min-height:38px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);color:var(--text);justify-content:space-between}.setting .model-trigger:hover,.setting .model-trigger[aria-expanded=true]{border-color:var(--border-strong);background:var(--bg);color:var(--text)}.setting .model-trigger-name{max-width:none}.model-trigger-chevron{color:var(--text-3);transition-property:rotate;transition-duration:var(--duration-base);transition-timing-function:var(--ease-out);flex-shrink:0}.model-trigger-chevron[data-open=true]{rotate:180deg}.model-scrim{display:none}.model-menu{top:calc(100% + var(--space-2));z-index:var(--z-overlay);width:min(25rem, calc(100vw - var(--space-8)));max-height:min(30rem, var(--model-room,70svh));padding:var(--space-2);border-radius:var(--radius-2xl);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:absolute;left:0}.model-menu[data-placement=up]{top:auto;bottom:calc(100% + var(--space-2))}.model-sheet-head{display:none}.model-search{margin-bottom:var(--space-2)}.model-search button{border-radius:var(--radius-sm);width:22px;height:22px;color:var(--text-3);flex-shrink:0;place-items:center;display:grid}.model-search button:hover{color:var(--text)}.model-list{margin:0 calc(-1 * var(--space-1));padding:var(--space-1);flex:1;overflow-y:auto}.model-list:focus,.model-list:focus-visible{box-shadow:none;outline:none}.model-row{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);text-align:left;transition-property:background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);flex-direction:column;gap:1px;display:flex}.model-row:hover{background:var(--surface-hover)}.model-row[data-active]{background:var(--surface-active);box-shadow:inset 2px 0 0 var(--accent)}.model-row-head{align-items:baseline;gap:var(--space-2);width:100%;min-width:0;display:flex}.model-row-name{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);color:var(--text);font-weight:500;overflow:hidden}.model-row-cost{font-size:var(--text-xs);letter-spacing:.02em;color:var(--text-3);flex-shrink:0;margin-left:auto}.model-row-check{width:14px;color:var(--accent);flex-shrink:0;align-self:center;place-items:center;display:grid}.model-row-blurb{font-size:var(--text-xs);line-height:var(--leading-snug);color:var(--text-2)}.model-all{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--text-2);transition-property:background-color,color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);display:flex}.model-all:hover{background:var(--surface-hover);color:var(--text)}.model-foot{margin-top:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-1);border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--text-3)}.model-note{padding:var(--space-3);text-align:center;font-size:var(--text-xs);color:var(--text-3)}.model-empty{padding:var(--space-6) var(--space-3);text-align:center;font-size:var(--text-sm);color:var(--text-3)}@media (width<=560px){.model-scrim{z-index:var(--z-overlay);background:#0009;display:block;position:fixed;inset:0}.model-menu,.model-menu[data-placement=up]{inset:auto 0 var(--keyboard-inset,0px) 0;z-index:var(--z-modal);width:100%;max-height:min(85svh, var(--app-height,100svh));padding:var(--space-2) var(--space-2) 0;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;border-bottom:0;position:fixed}.model-sheet-head{padding:var(--space-1) var(--space-1) var(--space-3) var(--space-3);justify-content:space-between;align-items:center;display:flex}.model-sheet-title{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);font-weight:500}.model-sheet-head button{border-radius:var(--radius-full);width:34px;height:34px;color:var(--text-2);place-items:center;display:grid}.model-search{min-height:40px}.model-row{min-height:56px;padding:var(--space-3);justify-content:center}.model-all{min-height:48px;padding:var(--space-3)}.model-foot{padding-bottom:max(var(--space-3), env(safe-area-inset-bottom))}}.page{padding:var(--space-6) var(--space-6) var(--space-12);flex:1;overflow-y:auto}.page>*{max-width:54rem;margin-inline:auto}.page-head{margin-bottom:var(--space-8)}.page-head h1{font-size:clamp(var(--text-2xl), 4vw, var(--text-3xl))}.page-head p{margin-top:var(--space-2);max-width:54ch;color:var(--text-2);font-size:var(--text-base);line-height:var(--leading-relaxed)}.page-empty{justify-items:center;gap:var(--space-3);padding:var(--space-16) var(--space-4);text-align:center;color:var(--text-3);display:grid}.page-empty p{font-size:var(--text-base);color:var(--text-2)}.page-empty-note{max-width:44ch;line-height:var(--leading-relaxed);text-wrap:balance;font-size:var(--text-sm)!important;color:var(--text-3)!important}.page-note{margin-top:var(--space-8);font-size:var(--text-xs);color:var(--text-3)}.library-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));margin:0 auto;padding:0;list-style:none;display:grid}.library-card{gap:var(--space-2);flex-direction:column;min-width:0;display:flex;position:relative}.library-open{border-radius:var(--radius-lg);display:block;overflow:hidden}.library-open img{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-lg);width:100%}.library-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.library-prompt{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);color:var(--text-2);overflow:hidden}.library-sub{font-size:var(--text-xs);color:var(--text-3)}.library-save{top:var(--space-2);right:var(--space-2);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#ece7dd;opacity:0;width:30px;height:30px;transition-property:opacity;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);background:#0c0b0999;place-items:center;display:grid;position:absolute}.library-card:hover .library-save,.library-save:focus-visible{opacity:1}.project-instructions{margin-bottom:var(--space-5)}.project-new{border:1px solid var(--border-strong);margin-bottom:var(--space-6)}.project-new:hover{background:var(--surface-hover)}.project-list{margin:0 auto;padding:0;list-style:none}.project-list a{justify-content:space-between;align-items:baseline;gap:var(--space-4);width:100%;min-height:46px;padding:0 var(--space-3);border-radius:var(--radius-lg);border-bottom:1px solid var(--border);color:var(--text);text-align:left;transition-property:background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);text-decoration:none;display:flex}.project-list a:hover{background:var(--surface-hover)}.project-list-title{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-base);overflow:hidden}.project-list-time{font-size:var(--text-xs);color:var(--text-3);flex-shrink:0}.settings-nav{gap:var(--space-5);margin-bottom:var(--space-8);padding-bottom:var(--space-1);border-bottom:1px solid var(--border);scrollbar-width:none;display:flex;overflow-x:auto}.settings-nav::-webkit-scrollbar{display:none}.settings-nav a{padding-bottom:var(--space-3);color:var(--text-3);font-size:var(--text-sm);white-space:nowrap;transition:color var(--duration-fast) var(--ease-out);text-decoration:none;position:relative}.settings-nav a:hover{color:var(--text-2)}.settings-nav a[data-active=true]{color:var(--text)}.settings-nav a[data-active=true]:after{content:"";inset-inline:0;background:var(--accent);height:1px;position:absolute;bottom:-1px}.settings-section{gap:var(--space-8);flex-direction:column;display:flex}.settings-section .setting{max-width:34rem}.settings-block{padding-top:var(--space-8);border-top:1px solid var(--border)}.settings-actions{align-items:center;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.settings-actions .btn:not(.primary){border:1px solid var(--border-strong)}.settings-actions .btn:not(.primary):hover:not(:disabled){background:var(--surface-hover)}.settings-danger{color:var(--danger)}.settings-danger:hover:not(:disabled){border-color:var(--danger)}.settings-lede{max-width:60ch;color:var(--text-2);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.settings-note{max-width:60ch;color:var(--text-3);font-size:var(--text-xs);line-height:var(--leading-relaxed)}.page-head .eyebrow{margin-top:0;margin-bottom:var(--space-2);color:var(--text-3);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}.settings-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));display:grid}.setting{gap:var(--space-2);flex-direction:column;display:flex}.setting-label{font-size:var(--text-sm);justify-content:space-between;align-items:center;font-weight:500;display:flex}.setting-value{color:var(--text-3);font-weight:400}.setting-value[data-auto]{font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}.setting-hint{font-size:var(--text-xs);color:var(--text-3)}.setting textarea{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);resize:vertical;font-size:var(--text-sm);line-height:var(--leading-normal);outline:none}.setting textarea:focus{border-color:var(--accent-border)}.setting input[type=range]{width:100%;accent-color:var(--accent)}.segmented{border-radius:var(--radius-lg);background:var(--surface-2);gap:2px;padding:3px;display:flex}.segmented button{min-height:28px;font-size:var(--text-xs);color:var(--text-2);text-transform:capitalize;transition-property:background-color,color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);border-radius:7px;flex:1}.segmented button:hover{color:var(--text)}.segmented button[data-active=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.portrait{background:var(--surface-2);object-fit:cover;box-shadow:inset 0 0 0 1px var(--image-outline);flex:none;display:block}.portrait-round{border-radius:var(--radius-full)}.portrait-portrait{aspect-ratio:3/4;border-radius:var(--radius-lg);width:100%}.portrait-empty{font-family:var(--font-serif);letter-spacing:var(--tracking-tight);color:var(--text-3);-webkit-user-select:none;user-select:none;place-items:center;font-weight:500;display:grid;container-type:inline-size}.section-heading{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-3);font-weight:500;display:flex}.section-subheading{margin:var(--space-10) 0 var(--space-4);font-family:var(--font-serif);font-size:var(--text-lg);letter-spacing:-.01em;color:var(--text);font-weight:500}.section-subheading:first-of-type{margin-top:var(--space-5)}.characters-page>section{margin-bottom:var(--space-16)}.characters-bar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.characters-bar .section-heading{margin-bottom:0;margin-right:auto}.characters-search{align-items:center;gap:var(--space-2);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);height:32px;color:var(--text-3);display:flex}.characters-search:focus-within{border-color:var(--accent-border)}.characters-search input{width:11rem;max-width:40vw;font-size:var(--text-sm);color:var(--text);background:0 0;border:0;outline:none}.tag-filters{gap:var(--space-2);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.tag-filters button{padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--text-2);transition-property:background-color,color,border-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out)}.tag-filters button:hover{color:var(--text);border-color:var(--border-strong)}.tag-filters button[data-active=true]{background:var(--surface-3);border-color:var(--border-strong);color:var(--text)}.persona-list{gap:var(--space-3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.persona-chip{border:1px solid var(--border);border-radius:var(--radius-full);padding-right:var(--space-1);align-items:center;display:flex;position:relative}.persona-chip[data-default=true]{border-color:var(--border-strong)}.persona-chip>button:first-child{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-1);border-radius:var(--radius-full);display:flex}.persona-chip-text{padding-right:var(--space-1);text-align:left;gap:1px;display:grid}.persona-chip-name,.persona-chip-nickname{text-overflow:ellipsis;white-space:nowrap;max-width:22ch;overflow:hidden}.persona-chip-name{font-size:var(--text-sm);line-height:var(--leading-tight);color:var(--text)}.persona-chip-meta{align-items:baseline;gap:var(--space-2);font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--text-3);display:flex}.persona-chip-meta>*+:before{content:"·";margin-right:var(--space-2)}.persona-chip .row-more{opacity:1;position:static}.persona-add{align-items:center;gap:var(--space-2);height:100%;min-height:46px;padding:0 var(--space-4);border:1px dashed var(--border);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--text-3);transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);display:flex}.persona-add:hover{border-color:var(--border-strong);color:var(--text-2)}.persona-empty{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-xl);text-align:left;display:flex}.persona-empty:hover{background:var(--surface-hover)}.persona-empty>span{gap:2px;display:grid}.persona-empty strong{font-size:var(--text-sm);color:var(--text);font-weight:500}.persona-empty span span{max-width:46ch;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-3)}.character-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));margin:0;padding:0;list-style:none;display:grid}.character-card{min-width:0;position:relative}.character-card-open{gap:var(--space-3);text-align:left;width:100%;display:grid}.character-card-plate{border-radius:var(--radius-lg);display:block;overflow:hidden}.character-card-plate .portrait{transition-property:transform;transition-duration:var(--duration-slow);transition-timing-function:var(--ease-out)}.character-card-open:hover .portrait{transform:scale(1.02)}.character-card-body{gap:var(--space-1);min-width:0;display:grid}.character-card-name{font-family:var(--font-serif);font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--text)}.character-card-blurb{-webkit-line-clamp:2;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-2);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.character-card-tags{gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.character-card-tags span{font-size:var(--text-xs);letter-spacing:.04em;color:var(--text-3)}.character-card-tags span+span:before{content:"·";margin-right:var(--space-2)}.character-card-more{top:var(--space-2);right:var(--space-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#ece7dd;background:#0c0b0999;position:absolute}.character-hero{gap:var(--space-5);margin-bottom:var(--space-6);grid-template-columns:8rem 1fr auto;align-items:start;display:grid}.character-hero-text h1{font-size:clamp(var(--text-2xl), 4vw, var(--text-3xl))}.character-hero-tagline{margin-top:var(--space-2);max-width:48ch;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-2)}.character-hero-edit{border:1px solid var(--border);color:var(--text-3)}.character-hero-edit:hover{background:var(--surface-hover);color:var(--text-2)}.character-opening{margin-bottom:var(--space-6);padding-left:var(--space-5);border-left:2px solid var(--border-strong)}.character-opening-line{-webkit-line-clamp:4;white-space:pre-wrap;max-width:62ch;font-family:var(--font-serif);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-2);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.character-opening-line em{color:var(--text-3)}.character-start{gap:var(--space-4);padding-block:var(--space-5);border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:var(--space-10);display:grid}.character-tune{align-items:center;gap:var(--space-2);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);height:34px;font-size:var(--text-sm);color:var(--text-3);transition-property:border-color,color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);display:flex}.character-tune:hover{border-color:var(--border-strong);color:var(--text-2)}.character-tune span+span:before{content:"·";margin-right:var(--space-2);color:var(--text-3)}.character-tune svg{transition-property:rotate;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out)}.character-tune svg[data-open=true]{rotate:180deg}.character-tune-panel{gap:var(--space-4);max-width:62ch;display:grid}.mode-choice{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.mode-choice button{gap:var(--space-1);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:left;transition-property:border-color,background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);display:grid}.mode-choice button:hover{border-color:var(--border-strong)}.mode-choice button[data-active=true]{border-color:var(--border-strong);background:var(--surface-2)}.mode-choice button[data-active=true] .mode-choice-label{font-weight:600}.mode-choice-label{font-size:var(--text-sm);color:var(--text);font-weight:500}.mode-choice-blurb{font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--text-2)}.character-scene{max-width:62ch}.character-scene textarea:disabled{opacity:.6}.character-start-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.character-start-persona select{padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);height:34px;font-size:var(--text-sm);color:var(--text-2);background:0 0;outline:none}.character-start-persona select:focus{border-color:var(--accent-border)}.character-section{margin-bottom:var(--space-10)}.character-prose{white-space:pre-wrap;max-width:66ch;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-2)}.character-prose em{color:var(--text-3)}.character-about[data-clamped=true] .character-prose{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.character-more{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-3);text-underline-offset:3px;text-decoration:underline}.character-more:hover{color:var(--text-2)}.disclosure{margin-bottom:var(--space-6);border-top:1px solid var(--border)}.disclosure summary{align-items:center;gap:var(--space-2);padding-block:var(--space-4);cursor:pointer;color:var(--text-3);transition-property:color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);list-style:none;display:flex}.disclosure summary::-webkit-details-marker{display:none}.disclosure summary:hover{color:var(--text-2)}.disclosure-chevron{transition-property:rotate;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);flex:none;rotate:-90deg}.disclosure[open] .disclosure-chevron{rotate:0deg}.disclosure-label{font-size:var(--text-sm);color:var(--text);font-weight:500}.disclosure-meta{font-size:var(--text-xs);color:var(--text-3)}.disclosure-body{padding-bottom:var(--space-6)}.sheet-field+.sheet-field{margin-top:var(--space-6)}.sheet-field .section-subheading{margin:0 0 var(--space-2);font-size:var(--text-md)}.chat-mode-tag{margin-left:var(--space-2);font-size:var(--text-xs);color:var(--text-3)}.library-compose{gap:var(--space-2);margin-bottom:var(--space-5);display:flex}.library-compose input{min-width:0;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-full);height:34px;font-size:var(--text-sm);background:0 0;outline:none;flex:1}.library-compose input:focus{border-color:var(--accent-border)}img.library-open,video.library-open{aspect-ratio:1;object-fit:cover;background:var(--surface-2);width:100%;box-shadow:inset 0 0 0 1px var(--image-outline)}.library-missing{place-items:center;gap:var(--space-2);aspect-ratio:1;padding:var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;font-size:var(--text-xs);color:var(--text-3);display:grid}.library-actions{top:var(--space-2);right:var(--space-2);gap:var(--space-1);display:flex;position:absolute}.library-actions .library-save{position:static}.sheet{border-radius:var(--radius-2xl);background:var(--surface);border:1px solid var(--border);width:min(42rem,100%);max-height:90svh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.sheet-head{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-5) var(--space-4);border-bottom:1px solid var(--border);display:flex}.sheet-head h2{font-family:var(--font-serif);font-size:var(--text-xl);letter-spacing:var(--tracking-tight)}.sheet-body{padding:var(--space-5);gap:var(--space-5);flex:1;align-content:start;display:grid;overflow-y:auto}.sheet-lede{max-width:60ch;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-2)}.sheet-foot{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);display:flex}.sheet-error{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--danger-subtle);font-size:var(--text-sm);color:var(--danger)}.segmented-hint{margin-top:calc(var(--space-5) * -1 + var(--space-2))}.character-editor .segmented button{text-transform:none;font-size:var(--text-sm);min-height:32px}.forge{gap:var(--space-3);justify-items:start;display:grid}.forge .btn.primary{border:1px solid var(--border-strong);color:var(--text);background:0 0}.forge .btn.primary:hover:not(:disabled){background:var(--surface-hover)}.forge .setting{width:100%}.character-form{gap:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border);display:grid}.character-form-portrait{align-items:center;gap:var(--space-5);display:flex}.character-form-portrait .portrait-round{aspect-ratio:1}.character-form-portrait-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.character-form-portrait-actions .btn{border:1px solid var(--border-strong)}.character-form-portrait-actions .btn:hover:not(:disabled){background:var(--surface-hover)}.advanced{padding-top:var(--space-5);border-top:1px solid var(--border)}.advanced-toggle{align-items:center;gap:var(--space-2);color:var(--text-3);font:inherit;font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;padding:0;display:flex}.advanced-toggle:hover{color:var(--text-2)}.advanced-toggle svg{transition:transform var(--duration-fast) ease;transform:rotate(-90deg)}.advanced-toggle[aria-expanded=true] svg{transform:rotate(0)}.advanced-body{gap:var(--space-5);padding-top:var(--space-5);display:grid}.sheet .setting input:not([type=range]),.sheet .setting select{padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);height:36px;font-size:var(--text-sm);color:var(--text);outline:none}.sheet .setting input:focus{border-color:var(--accent-border)}@media (width<=820px){.menu-btn,.sidebar-close{display:inline-flex}.character-hero{gap:var(--space-4);grid-template-columns:5.5rem 1fr}.character-hero-edit{grid-column:2;justify-self:start}.character-opening{padding-left:var(--space-4)}.mode-choice{grid-template-columns:1fr}.characters-bar{flex-wrap:wrap}.characters-bar .section-heading{width:100%;margin-right:0}.characters-search{flex:1}.characters-search input{width:100%;max-width:none}.character-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr))}.character-start-row .btn.primary{flex:100%}.character-tune{flex:100%;justify-content:center}.sheet{width:100%;max-height:var(--app-height,100svh);height:var(--app-height,100svh);border:0;border-radius:0}.modal-scrim{padding:0}.character-form-portrait{gap:var(--space-4)}.update-btn-label{display:none}.update-btn{justify-content:center;width:40px;min-height:40px;padding:0}.collapse-btn,.expand-btn{display:none}.sidebar,.sidebar[data-collapsed=true]{z-index:var(--z-modal);width:min(86vw,300px);padding-inline:var(--space-2);border-right-color:var(--border);transition-property:translate;transition-duration:var(--duration-slow);transition-timing-function:var(--ease-out);box-shadow:var(--shadow-lg);position:fixed;inset:0 auto 0 0;translate:-100%}.sidebar[data-open=true]{translate:0}.sidebar[data-dragging]{transition:none}.sidebar-scrim{z-index:var(--z-overlay);background:#00000080;display:block;position:fixed;inset:0}.thread-inner{padding:var(--space-4) var(--space-3) var(--space-6);gap:var(--space-5)}.page{padding:var(--space-4) var(--space-4) var(--space-10)}.home{padding:var(--space-4) var(--space-3) var(--space-8)}.library-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(9rem,1fr))}.composer{padding:0 var(--space-3) var(--space-3)}.msg.user .msg-body{max-width:92%}.composer-hint-privacy{display:none}}.image-model-select select{padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:var(--text-sm)}.ratio-chips{gap:var(--space-1);display:flex}.ratio-chips button{padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-3);font-variant-numeric:tabular-nums;border:1px solid #0000}.ratio-chips button:hover{color:var(--text)}.ratio-chips button[data-active=true]{border-color:var(--accent-border);background:var(--accent-subtle);color:var(--accent)}.image-result figure{max-width:30rem;margin:0}.image-result img{border-radius:var(--radius-xl);outline:1px solid var(--image-outline);outline-offset:-1px;width:100%;height:auto;display:block}.image-result figcaption{justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-4);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--text-3);flex-wrap:wrap;display:flex}.image-pending{aspect-ratio:1;border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--surface);place-items:center;width:min(30rem,100%);display:grid}.image-pending-label{font-size:var(--text-sm);color:var(--text-3)}.video-result figure{max-width:30rem;margin:0}.video-result video{border-radius:var(--radius-xl);outline:1px solid var(--image-outline);outline-offset:-1px;background:var(--surface);width:100%;height:auto;display:block}.video-result figcaption{justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-4);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--text-3);flex-wrap:wrap;display:flex}.video-missing{font-size:var(--text-sm);color:var(--text-3);margin:0}.composer-note{margin:0 0 var(--space-2);font-size:var(--text-xs);color:var(--text-3)}.library-section{margin-bottom:var(--space-10)}.library-section .eyebrow{margin-bottom:var(--space-3);display:block}.library-open video{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-lg);width:100%;display:block}.plan-badge{padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--accent-subtle);border:1px solid var(--accent-border);color:var(--accent);font-size:var(--text-xs)}.main>.banner{width:calc(100% - var(--space-8));margin:0 auto var(--space-3)}.scroll-bottom{z-index:var(--z-sticky);border-radius:var(--radius-full);background:var(--surface-2);border:1px solid var(--border-strong);width:34px;height:34px;color:var(--text-2);box-shadow:var(--shadow-md);place-items:center;display:grid;position:absolute;bottom:8.5rem;left:50%;translate:-50%}.scroll-bottom:hover{color:var(--text)}.main{position:relative}.modal-scrim{inset:0;top:var(--keyboard-offset,0px);bottom:var(--keyboard-inset,0px);z-index:var(--z-modal);padding:var(--space-4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;place-items:center;display:grid;position:fixed}.upgrade{width:min(26rem,100%);max-height:90svh;padding:var(--space-8) var(--space-6) var(--space-6);border-radius:var(--radius-2xl);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);text-align:center;position:relative;overflow-y:auto}.upgrade-close{top:var(--space-3);right:var(--space-3);position:absolute}.upgrade-eyebrow{margin-bottom:var(--space-4);display:block}.upgrade h2{font-size:var(--text-2xl);line-height:var(--leading-tight)}.upgrade-sub{max-width:44ch;margin:var(--space-3) auto 0;color:var(--text-2);font-size:var(--text-sm);line-height:var(--leading-relaxed);text-wrap:balance}.upgrade-price{justify-content:center;align-items:baseline;gap:var(--space-1);margin:var(--space-6) 0 var(--space-4);display:flex}.upgrade-amount{font-family:var(--font-serif);font-size:var(--text-4xl);letter-spacing:var(--tracking-tight);font-weight:500}.upgrade-period{color:var(--text-3);font-size:var(--text-sm)}.upgrade-features{gap:var(--space-2);margin-bottom:var(--space-6);text-align:left;font-size:var(--text-sm);color:var(--text-2);display:grid}.upgrade-features li{gap:var(--space-2);grid-template-columns:1rem 1fr;display:grid}.upgrade-features li:before{content:"✓";color:var(--text-3)}.upgrade-cta{width:100%;padding:var(--space-3);justify-content:center}.upgrade-note{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--text-3);line-height:var(--leading-normal)}.upgrade-have-code{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--text-3)}.upgrade-code{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.upgrade-code input{min-width:8rem;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:var(--text-sm);flex:1}.upgrade-error{color:var(--danger);font-size:var(--text-xs);flex-basis:100%}.upgrade-done h2{margin-bottom:var(--space-3)}.upgrade-done p{margin-bottom:var(--space-6);color:var(--text-2);font-size:var(--text-sm);line-height:var(--leading-normal)}@media (hover:none),(pointer:coarse){.msg-actions{opacity:1}.msg-action,.icon-btn{min-width:34px;min-height:34px}.ratio-chips button{min-height:34px}.row-more,.rail-heading-add,.library-save{opacity:1}.menu-item{min-height:42px}input,select,textarea{font-size:max(16px,1em)!important}button,a,input,select,textarea,[role=button]{touch-action:manipulation}}.free-left{padding:0 var(--space-2);border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-3);font-size:var(--text-xs);min-height:24px}.free-left:hover{color:var(--text);border-color:var(--border-strong)}.sync-status{padding:0 var(--space-2);border-radius:var(--radius-full);border:1px solid var(--accent-border);background:var(--accent-subtle);color:var(--accent);font-size:var(--text-xs)}.sync-phrase{align-items:center;gap:var(--space-3);margin:var(--space-3) 0;padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--accent-border);background:var(--accent-subtle);flex-wrap:wrap;display:flex}.sync-phrase-warn{color:var(--text-2);font-size:var(--text-sm);line-height:var(--leading-normal);flex-basis:100%}.sync-phrase code{min-width:12rem;font-family:var(--font-mono);font-size:var(--text-base);letter-spacing:.04em;color:var(--text);overflow-wrap:anywhere;flex:1}.sync-error{margin-top:var(--space-2);color:var(--danger);font-size:var(--text-sm)}.account-form{gap:var(--space-2);margin-top:var(--space-3);display:grid}.account-form input{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:var(--text-sm)}.auth{padding-top:var(--space-16);place-content:start center;display:grid}.auth-inner{width:min(24rem,100%)}.auth-inner h1{margin-bottom:var(--space-3);font-family:var(--font-serif);font-size:var(--text-2xl);letter-spacing:-.02em;font-weight:500}.auth-lede{color:var(--text-2);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.auth-form{gap:var(--space-2);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--border);display:grid}.auth-form input{padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:var(--text-base)}.auth-form input:focus-visible{border-color:var(--border-strong)}.auth-form .btn{margin-top:var(--space-2);min-height:40px}.auth-hint,.auth-switch{margin-top:var(--space-4);font-size:var(--text-xs);line-height:var(--leading-relaxed);color:var(--text-3)}.auth-switch a{color:var(--text-2);border-bottom:1px solid var(--border-strong);text-decoration:none}.auth-switch a:hover{color:var(--text)}.auth .sync-phrase{margin:var(--space-6) 0}.gate{min-height:var(--app-height,100svh);padding:var(--space-6);background:var(--bg);place-items:center;display:grid}.gate-inner{width:min(30rem,100%)}.gate-inner h1{margin:var(--space-3) 0 var(--space-4);font-family:var(--font-serif);font-size:var(--text-3xl);letter-spacing:-.02em;font-weight:500;line-height:var(--leading-tight);text-wrap:balance}.gate-inner>p{max-width:46ch;color:var(--text-2);font-size:var(--text-base);line-height:var(--leading-relaxed);text-wrap:pretty}.gate-form{gap:var(--space-2);margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.gate-form input{min-width:10rem;padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:var(--text-base);flex:1}.gate-form input:focus-visible{border-color:var(--border-strong)}.gate-error{margin-top:var(--space-3);color:var(--danger);font-size:var(--text-sm)}.app.booting{background:var(--bg)}.daily-spend{padding:0 var(--space-2);font-size:var(--text-xs);color:var(--text-3);white-space:nowrap}.daily-spend-cap{color:var(--text-3);opacity:.7}.daily-spend.spent,.daily-spend.spent .daily-spend-cap{color:var(--danger)}
