.chat-layer{z-index:10002;pointer-events:none;position:relative}.chat-trigger,.chat-close,.chat-compose button{color:var(--fc-ink,#141413);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.chat-trigger{pointer-events:auto;width:1.875rem;height:1.875rem;transition:color var(--fc-motion-hover,.18s ease), background-color var(--fc-motion-hover,.18s ease), transform .12s ease;border-radius:50%;padding:0}.chat-layer[data-placement=fixed]>.chat-trigger{position:fixed;top:2rem;right:6rem}.chat-trigger:hover{color:var(--fc-accent,#4385be);background:color-mix(in oklab, var(--fc-surface-raised,#fff9f0) 36%, transparent)}.chat-trigger:active,.chat-close:active,.chat-compose button:active{transform:scale(.96)}.chat-trigger:focus-visible,.chat-close:focus-visible,.chat-compose button:focus-visible,.chat-form input:focus-visible{outline:2px solid var(--fc-border-focus,currentColor);outline-offset:3px}.chat-trigger svg,.chat-close svg,.chat-compose button svg{stroke-width:2px;width:1.125rem;height:1.125rem}.chat-panel{z-index:10003;box-sizing:border-box;width:min(22rem,100vw - 2rem);max-height:min(36rem,100dvh - 7rem);color:var(--fc-ink,#141413);background:color-mix(in oklab, var(--fc-surface-raised,#fff9f0) 94%, transparent);border:1px solid var(--fc-border,#e8e2d4);backdrop-filter:blur(18px);pointer-events:auto;border-radius:1.25rem;grid-template-rows:auto auto minmax(7rem,1fr) auto;padding:1rem;display:grid;position:fixed;top:5.75rem;right:2rem;box-shadow:0 20px 48px oklab(0% none none/.14),inset 0 1px oklab(100% 0 5.96046e-8/.55)}.chat-panel-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.chat-panel-header h2,.chat-panel-header p,.chat-empty,.chat-messages p{margin:0}.chat-panel-header h2{font-size:1rem;font-weight:650;line-height:1.3}.chat-panel-header p{color:var(--fc-ink-muted,#666);margin-top:.2rem;font-size:.72rem;line-height:1.4}.chat-close{border-radius:50%;flex:none;width:2rem;height:2rem;padding:0}.chat-close:hover{background:var(--fc-surface-inset,#f0eadf)}.chat-status{min-height:1.6rem;color:var(--fc-danger,#b42318);padding-top:.45rem;font-size:.72rem;line-height:1.3}.chat-messages{overscroll-behavior:contain;scrollbar-width:thin;min-height:0;padding:.25rem .25rem .5rem 0;overflow-y:auto}.chat-messages ol{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.chat-messages li{background:color-mix(in oklab, var(--fc-surface-inset,#f0eadf) 72%, transparent);border-radius:.8rem;padding:.7rem .8rem}.chat-message-meta{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.3rem;display:flex}.chat-message-meta strong{text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:650;overflow:hidden}.chat-message-meta time{color:var(--fc-ink-meta,#888);font-variant-numeric:tabular-nums;flex:none;font-size:.65rem}.chat-messages li p{overflow-wrap:anywhere;color:var(--fc-ink-2,#333);white-space:pre-wrap;font-size:.8rem;line-height:1.55}.chat-empty{color:var(--fc-ink-muted,#666);text-align:center;padding:2rem 0;font-size:.78rem}.chat-form{border-top:1px solid var(--fc-border,#e8e2d4);gap:.4rem;padding-top:.75rem;display:grid;position:relative}.chat-form label{color:var(--fc-ink-muted,#666);font-size:.68rem;font-weight:600}.chat-form input{box-sizing:border-box;width:100%;min-height:2.4rem;color:var(--fc-ink,#141413);background:var(--fc-surface-page,#fffaf2);border:1px solid var(--fc-border,#e8e2d4);font:inherit;border-radius:.7rem;padding:0 .75rem;font-size:.8rem}.chat-compose{position:relative}.chat-compose input{padding-right:2.8rem}.chat-compose button{border-radius:.55rem;width:2rem;height:2rem;padding:0;position:absolute;top:50%;right:.3rem;transform:translateY(-50%)}.chat-compose button:hover:not(:disabled){color:var(--fc-accent,#4385be);background:var(--fc-surface-inset,#f0eadf)}.chat-compose button:active:not(:disabled){transform:translateY(-50%)scale(.96)}.chat-compose button:disabled{cursor:not-allowed;opacity:.38}.chat-character-count{color:var(--fc-ink-meta,#888);font-variant-numeric:tabular-nums;text-align:right;font-size:.62rem}body:has(.staggered-menu-wrapper[data-open]) .chat-panel,body:has(.staggered-menu-wrapper[data-open]) .chat-trigger{opacity:0;pointer-events:none}@media (width<=640px){.chat-layer[data-placement=fixed]>.chat-trigger{top:1.25rem;right:5.25rem}.chat-panel{max-height:calc(100dvh - 5.75rem);top:4.75rem;right:1rem}.chat-form input{font-size:1rem}}@media (prefers-reduced-motion:reduce){.chat-trigger,.chat-close,.chat-compose button{transition:none}}.presence-layer{z-index:9990;pointer-events:none;position:relative}.presence-dock{pointer-events:auto;transition:opacity var(--fc-motion-hover,.18s ease);align-items:center;display:flex}.presence-dock[data-placement=fixed]{z-index:10001;position:fixed;top:2rem;right:2rem}.presence-toggle{min-width:2.75rem;min-height:1.875rem;color:var(--fc-ink,#141413);box-shadow:none;backdrop-filter:none;font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;transition:color var(--fc-motion-hover,.18s ease), border-color var(--fc-motion-hover,.18s ease), background-color var(--fc-motion-hover,.18s ease), box-shadow var(--fc-motion-hover,.18s ease);background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:0;padding:0 .65rem;font-size:.75rem;font-weight:600;line-height:1;display:inline-flex}.presence-toggle:hover,.presence-toggle:focus-visible{color:var(--fc-ink,#141413);box-shadow:none;background:0 0;border-color:#0000}.presence-toggle:focus-visible{outline:2px solid var(--fc-border-focus,currentColor);outline-offset:3px}.presence-dot{background:#28a745;border-radius:50%;flex:none;width:.5rem;height:.5rem;margin-right:.4rem;box-shadow:0 0 0 3px oklab(64.0128% -.146402 .0960123/.18)}.presence-toggle[data-status=connecting] .presence-dot,.presence-toggle[data-status=error] .presence-dot{animation:.9s ease-in-out infinite alternate presence-dot-pulse}.presence-toggle[data-on=false] .presence-dot{opacity:.46;box-shadow:none}.presence-count{text-align:center;min-width:.55rem}.presence-detail{opacity:0;white-space:nowrap;max-width:0;margin-left:0;transition:max-width .22s cubic-bezier(.2,.8,.2,1),margin-left .22s cubic-bezier(.2,.8,.2,1),opacity .14s,transform .22s cubic-bezier(.2,.8,.2,1);overflow:hidden;transform:translate(-.2rem)}.presence-toggle:hover .presence-detail,.presence-toggle:focus-visible .presence-detail{opacity:1;max-width:6rem;margin-left:.4rem;transform:translate(0)}body:has(.staggered-menu-wrapper[data-open]) .presence-dock{opacity:0;pointer-events:none}@keyframes presence-dot-pulse{to{opacity:.45}}@media (width<=640px){.presence-dock[data-placement=fixed]{top:1.25rem;right:1.25rem}}@media (prefers-reduced-motion:reduce){.presence-dock,.presence-toggle,.presence-detail{transition:none}.presence-toggle[data-status=connecting] .presence-dot,.presence-toggle[data-status=error] .presence-dot{animation:none}}.presence-cursor{z-index:9990;pointer-events:none;width:1.5rem;height:1.5rem;transition:transform 80ms linear,opacity .16s;position:fixed;top:0;left:0}.presence-cursor-glyph{width:100%;height:100%;color:var(--presence-color);filter:drop-shadow(0 0 1px oklab(100% 0 5.96046e-8/.9))drop-shadow(0 3px 5px oklab(0% none none/.24));transform-origin:25% 20%;place-items:center;transition:transform .12s cubic-bezier(.2,.8,.2,1);display:grid;position:relative}.presence-cursor-glyph svg{width:100%;height:100%;fill:color-mix(in oklab, var(--presence-color) 18%, white);stroke:currentColor;stroke-width:2.4px}.presence-cursor[data-cursor=default] .presence-cursor-glyph,.presence-cursor[data-cursor=pointer] .presence-cursor-glyph,.presence-cursor[data-cursor=click] .presence-cursor-glyph{transform:translate(-.2rem,-.15rem)}.presence-cursor[data-cursor=text] .presence-cursor-glyph,.presence-cursor[data-cursor=select] .presence-cursor-glyph,.presence-cursor[data-cursor=move] .presence-cursor-glyph,.presence-cursor[data-cursor=grab] .presence-cursor-glyph,.presence-cursor[data-cursor=grabbing] .presence-cursor-glyph,.presence-cursor[data-cursor=blocked] .presence-cursor-glyph{transform:translate(-50%,-50%)}.presence-cursor[data-cursor=select] .presence-cursor-glyph{transform:translate(-50%,-50%)scale(.82)}.presence-cursor[data-cursor=select] .presence-cursor-glyph:after{border:2px solid color-mix(in oklab, var(--presence-color) 64%, transparent);content:"";border-radius:50%;width:1.7rem;height:1.7rem;animation:.48s ease-out infinite alternate presence-select-pulse;position:absolute;top:50%;left:50%}.presence-cursor[data-cursor=click] .presence-cursor-glyph{transform:translate(-.2rem,-.15rem)scale(.78)}.presence-cursor[data-cursor=grabbing] .presence-cursor-glyph{transform:translate(-50%,-50%)scale(.86)}.presence-cursor[data-hidden=true]{opacity:0}@keyframes presence-select-pulse{0%{opacity:.8;transform:translate(-50%,-50%)scale(1)}to{opacity:.3;transform:translate(-50%,-50%)scale(.72)}}@media (pointer:coarse){.presence-cursor{display:none}}@media (prefers-reduced-motion:reduce){.presence-cursor,.presence-cursor-glyph{transition:none}.presence-cursor[data-cursor=select] .presence-cursor-glyph:after{animation:none}}
