:root{--settings-dialog-segmented-padding:var(--space-0-5);--editor-caret-width:2px;--editor-caret-bold-width:4px;--editor-caret-pending-underline-width:6px;--editor-caret-pending-underline-thickness:2px;--editor-caret-transition-duration:80ms;--editor-caret-transition-easing:ease-out;--editor-ghost-text-color:var(--color-ghost-text);--editor-line-scene-number-top:2.5px;--editor-line-scene-number-inset:-56px;--editor-line-scene-heading-letter-spacing:.02em;--editor-line-character-letter-spacing:.03em;--editor-line-transition-letter-spacing:.04em;--editor-line-title-page-letter-spacing:.01em;--editor-page-shadow:0 1px 1px var(--color-paper-shadow), 0 2px 2px var(--color-paper-shadow), 0 4px 4px var(--color-paper-shadow), 0 8px 8px var(--color-paper-shadow), 0 16px 16px var(--color-paper-shadow), 0 32px 32px var(--color-paper-shadow), 0 64px 64px var(--color-paper-shadow);--editor-page-number-offset:43.2px;--editor-page-break-marker-letter-spacing:.05em;--chat-panel-badge-offset:-4px;--chat-panel-shadow:0 16px 40px #0000004d;--search-bar-enter-offset:-8px;--tour-arrow-overhang:-8px;--tour-arrow-offset:-7px;--annotation-dot-container-offset:-12px;--annotation-dot-target-inset-block:-4px;--annotation-dot-target-inset-inline:-8px;--annotation-glow-inner-blur:9px;--annotation-glow-outer-blur-peak:30px;--annotation-glow-pulse-period:3s;--app-logo-wordmark-font:Georgia, serif;--app-shell-zoom-in-page-delay:.1s;--app-shell-stagger-delay-1:20ms;--app-shell-stagger-delay-2:40ms;--app-shell-stagger-delay-3:60ms;--app-shell-stagger-delay-4:80ms;--app-shell-stagger-delay-5:.1s;--fullscreen-exit-hint-lifetime:2s;--mention-inbox-panel-shadow:0 12px 32px #0000004d;--mention-suggestions-shadow:0 8px 24px #00000040;--presence-avatar-overlap:-6px;--scrollbar-thumb-inset-end:3px;--scrollbar-thumb-inset-side:4px;--scrollbar-thumb-inset-thin:5px}@font-face{font-family:iA Writer Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ia-writer-mono-latin-400-normal-T57jbau0.woff2)format("woff2"),url(/assets/ia-writer-mono-latin-400-normal-C_4xiObl.woff)format("woff")}@font-face{font-family:iA Writer Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ia-writer-mono-latin-700-normal-CNAkyvfU.woff2)format("woff2"),url(/assets/ia-writer-mono-latin-700-normal-CZDeHx0Q.woff)format("woff")}@font-face{font-family:iA Writer Quattro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ia-writer-quattro-latin-400-normal-CS_Vpeb6.woff2)format("woff2"),url(/assets/ia-writer-quattro-latin-400-normal-DJI1zyv3.woff)format("woff")}@font-face{font-family:iA Writer Quattro;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ia-writer-quattro-latin-400-italic-DzF8or6q.woff2)format("woff2"),url(/assets/ia-writer-quattro-latin-400-italic-cH1aRUOk.woff)format("woff")}@font-face{font-family:iA Writer Quattro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ia-writer-quattro-latin-700-normal-DzkVVaht.woff2)format("woff2"),url(/assets/ia-writer-quattro-latin-700-normal-x0Cq0k16.woff)format("woff")}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-ext-400-normal-B-EsvyE4.woff2)format("woff2"),url(/assets/courier-prime-latin-ext-400-normal-CKOCNFvK.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-400-normal-BbyBr73r.woff2)format("woff2"),url(/assets/courier-prime-latin-400-normal-BAlbUm6l.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-ext-400-italic-BTeyNO-8.woff2)format("woff2"),url(/assets/courier-prime-latin-ext-400-italic-DU0XzPqs.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-400-italic-CaR7PCvg.woff2)format("woff2"),url(/assets/courier-prime-latin-400-italic-GR5bBv_9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/courier-prime-latin-ext-700-normal-ByMJlNdM.woff2)format("woff2"),url(/assets/courier-prime-latin-ext-700-normal-BIFoAzHx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/courier-prime-latin-700-normal-D1YCjmaD.woff2)format("woff2"),url(/assets/courier-prime-latin-700-normal-CVvp4Sof.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-ext-400-normal-C2zvOubV.woff2)format("woff2"),url(/assets/dm-mono-latin-ext-400-normal-1aZr6b2b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-400-normal-4GdczIuU.woff2)format("woff2"),url(/assets/dm-mono-latin-400-normal--0xN8mdc.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-ext-500-normal-BtRyHRi6.woff2)format("woff2"),url(/assets/dm-mono-latin-ext-500-normal-Dw3M13d8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2)format("woff2"),url(/assets/dm-mono-latin-500-normal-CN8Miw6E.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-canvas:#0e0e0c;--color-surface:#161612;--color-surface-raised:#1e1e19;--color-surface-overlay:#252520;--color-overlay-scrim:#080807b8;--color-text-primary:#e8e4dc;--color-text-secondary:#a8a49c;--color-text-muted:#858078;--color-text-muted-raised:#8f8b83;--color-text-placeholder:#888580;--color-text-disabled:#3e3c38;--color-text-inverse:#0e0e0c;--color-text-on-collaborator:#fff;--color-accent:#d4944a;--color-accent-rgb:212, 148, 74;--color-accent-hover:#e0a55a;--color-accent-active:#b8843f;--color-accent-subtle:#d4944a14;--color-accent-border:#d4944a4d;--color-error:#c45c3b;--color-error-rgb:196, 92, 59;--color-error-subtle:#c45c3b1f;--color-error-text:#e87b5a;--color-success:#6b9a6b;--color-success-subtle:#6b9a6b1f;--color-success-text:#8ab88a;--color-warning:#c49a4a;--color-warning-subtle:#c49a4a1f;--color-focus:#d4944a;--color-border-subtle:#ffffff0a;--color-border-default:#ffffff14;--color-border-hover:#ffffff24;--color-border-strong:#fff3;--color-selection:#d4944a38;--color-selection-focused:#d4944a4d;--color-selection-ui:#d4944a2e;--color-caret:#d4944a;--color-scene-number:#6b5f50;--color-ghost-text:#a8a49c73;--color-parenthetical:var(--color-text-secondary);--color-transition:var(--color-text-secondary);--color-paper-shadow:#0000001a;--color-search-match:#ffec3d66;--color-search-match-active:#ff9800ab;--color-search-match-border:#ff9800;--color-fill-faint:#ffffff05;--color-fill-subtle:#ffffff0a;--color-fill-default:#ffffff0f;--color-fill-strong:#ffffff14;--color-fill-stronger:#ffffff1a;--color-scrim:#0000008c;--color-scrollbar-thumb:#78787873;--color-scrollbar-thumb-hover:#78787899;--color-diff-added-bg:#6a995526;--color-diff-removed-bg:#c550501f;--color-status-revision-ink:var(--color-accent);--color-status-revision-bg:var(--color-accent-subtle);--color-status-polished-ink:var(--color-success-text);--color-status-polished-bg:#6b9a6b14;--color-status-locked-ink:#9fb4d4;--color-status-locked-bg:#9fb4d41f;--annotation-note-rgb:133, 128, 120;--annotation-note-ink:#b0aca5;--annotation-todo-rgb:212, 148, 74;--annotation-todo-ink:#d4944a;--annotation-question-rgb:90, 158, 111;--annotation-question-ink:#5a9e6f;--annotation-structure-rgb:197, 80, 80;--annotation-structure-ink:#d07373;--annotation-character-rgb:123, 147, 219;--annotation-character-ink:#7b93db;--annotation-continuity-rgb:201, 168, 76;--annotation-continuity-ink:#c9a84c;--annotation-dialogue-rgb:176, 125, 194;--annotation-dialogue-ink:#b07dc2;--annotation-production-rgb:107, 163, 160;--annotation-production-ink:#6ba3a0;--font-script:"iA Writer Mono", "Courier Prime", "Courier New", monospace;--font-export:"Courier Prime", "Courier New", Courier, monospace;--font-ui:"DM Sans", system-ui, -apple-system, sans-serif;--font-mono:"DM Mono", "SF Mono", Monaco, monospace;--text-xs:11px;--text-sm:12px;--text-base:14px;--text-md:16px;--text-lg:20px;--text-xl:24px;--font-size-15:15px;--font-size-18:18px;--font-size-28:28px;--font-size-32:32px;--font-size-script:16px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-script:1;--line-height-ui-body:1.4;--line-height-ui-reading:1.5;--line-height-glyph:1;--line-height-ui-compact:1.2;--letter-spacing-uppercase:.08em;--letter-spacing-mono:.02em;--letter-spacing-kbd:.04em;--space-0-5:2px;--space-1:4px;--space-1-5:6px;--space-2:8px;--space-2-5:10px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-11:44px;--space-12:48px;--space-14:56px;--space-16:64px;--layout-navigator-width:300px;--layout-topbar-height:44px;--layout-dialog-width:480px;--layout-screenplay-width:576px;--layout-scene-left:0px;--layout-scene-width:576px;--layout-action-left:0px;--layout-action-width:576px;--layout-character-left:211.2px;--layout-character-width:364.8px;--layout-dialogue-left:96px;--layout-dialogue-width:336px;--layout-parenthetical-left:153.6px;--layout-parenthetical-width:230.4px;--layout-transition-left:336px;--layout-transition-width:240px;--layout-page-width:816px;--layout-page-padding-top:96px;--layout-page-padding-right:96px;--layout-page-padding-bottom:96px;--layout-page-padding-left:144px;--duration-fast:.12s;--duration-normal:.15s;--duration-slow:.2s;--duration-modal:.25s;--duration-bridge:.28s;--duration-rise:.86s;--duration-fall:.42s;--duration-80:80ms;--duration-600:.6s;--duration-700:.7s;--duration-1500:1.5s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-css-ease-in-out:ease-in-out;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 0 3px #d4944a40;--shadow-focus-ring:0 0 0 2px var(--color-canvas), 0 0 0 4px var(--color-accent);--size-2:2px;--size-4:4px;--size-6:6px;--size-8:8px;--size-10:10px;--size-12:12px;--size-14:14px;--size-16:16px;--size-18:18px;--size-20:20px;--size-22:22px;--size-24:24px;--size-28:28px;--size-32:32px;--size-34:34px;--size-36:36px;--size-40:40px;--size-44:44px;--size-48:48px;--size-60:60px;--control-height-minimum:24px;--control-height-compact:28px;--control-height-default:36px;--control-height-touch:44px;--border-width-thin:1px;--border-width-thick:2px;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-pill:999px;--radius-16:16px;--radius-24:24px;--focus-ring-width:2px;--focus-ring-offset:2px;--z-base:0;--z-navigator:10;--z-toolbar:20;--z-modal:30;--z-tooltip:40;--z-toast:50;--z-loader:100;--z-reveal:200;--z-failsafe:10000;--opacity-8:.08;--opacity-8-percent:8%;--opacity-10:.1;--opacity-10-percent:10%;--opacity-12:.12;--opacity-12-percent:12%;--opacity-15:.15;--opacity-15-percent:15%;--opacity-20:.2;--opacity-20-percent:20%;--opacity-25:.25;--opacity-25-percent:25%;--opacity-30:.3;--opacity-30-percent:30%;--opacity-35:.35;--opacity-35-percent:35%;--opacity-40:.4;--opacity-40-percent:40%;--opacity-45:.45;--opacity-45-percent:45%;--opacity-50:.5;--opacity-50-percent:50%;--opacity-55:.55;--opacity-55-percent:55%;--opacity-60:.6;--opacity-60-percent:60%;--opacity-65:.65;--opacity-65-percent:65%;--opacity-70:.7;--opacity-70-percent:70%;--opacity-75:.75;--opacity-75-percent:75%;--opacity-80:.8;--opacity-80-percent:80%}:root[data-theme=light]{--color-canvas:#e7e2d8;--color-surface:#fbf9f4;--color-surface-raised:#fff;--color-surface-overlay:#fff;--color-overlay-scrim:#28241e73;--color-text-primary:#1f1d18;--color-text-secondary:#5c574e;--color-text-muted:#635e54;--color-text-muted-raised:#635e54;--color-text-placeholder:#68645d;--color-text-disabled:#bcb6a9;--color-text-inverse:#fbf9f4;--color-accent:#9c5a18;--color-accent-rgb:156, 90, 24;--color-accent-hover:#925719;--color-accent-active:#7e4810;--color-accent-subtle:#9c5a181a;--color-accent-border:#9c5a1852;--color-error:#b23f1e;--color-error-rgb:178, 63, 30;--color-error-subtle:#b23f1e1a;--color-error-text:#96351a;--color-success:#3f6b3f;--color-success-subtle:#3f6b3f1a;--color-success-text:#34592f;--color-warning:#7e6114;--color-warning-subtle:#8a6a161f;--color-focus:#9c5a18;--color-border-subtle:#1f1d180f;--color-border-default:#1f1d181f;--color-border-hover:#1f1d1833;--color-border-strong:#1f1d184d;--color-selection:#9c5a1833;--color-selection-focused:#9c5a1842;--color-selection-ui:#9c5a1829;--color-caret:#9c5a18;--color-scene-number:#8c8271;--color-ghost-text:#5c574e8c;--color-paper-shadow:#1f1d1812;--color-search-match:#facc158c;--color-search-match-active:#ea82009e;--color-search-match-border:#c25e00;--color-fill-faint:#1f1d1808;--color-fill-subtle:#1f1d180b;--color-fill-default:#1f1d180f;--color-fill-strong:#1f1d1814;--color-fill-stronger:#1f1d181a;--color-scrim:#28241e6b;--color-scrollbar-thumb:#5a564e6b;--color-scrollbar-thumb-hover:#5a564e94;--color-diff-added-bg:#3f6b3f29;--color-diff-removed-bg:#a32f2f21;--color-status-polished-bg:#3f6b3f1f;--color-status-locked-ink:#3b54a8;--color-status-locked-bg:#3b54a81f;--annotation-note-rgb:92, 87, 78;--annotation-note-ink:#5c574e;--annotation-todo-rgb:156, 90, 24;--annotation-todo-ink:#9c5a18;--annotation-question-rgb:47, 107, 69;--annotation-question-ink:#2f6b45;--annotation-structure-rgb:163, 47, 47;--annotation-structure-ink:#a32f2f;--annotation-character-rgb:59, 84, 168;--annotation-character-ink:#3b54a8;--annotation-continuity-rgb:138, 106, 22;--annotation-continuity-ink:#8a6a16;--annotation-dialogue-rgb:122, 62, 150;--annotation-dialogue-ink:#7a3e96;--annotation-production-rgb:44, 110, 107;--annotation-production-ink:#2c6e6b;--shadow-md:0 4px 12px #1f1d1824;--shadow-lg:0 8px 32px #1f1d182e;--shadow-glow:0 0 0 3px #9c5a1840}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--color-canvas);height:100%;color:var(--color-text-primary);font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--line-height-ui-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100dvh}button,input,textarea,select{font:inherit}::selection{background:var(--color-selection-ui)}::-webkit-scrollbar{width:var(--size-14);height:var(--size-14)}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--color-border-default);border:var(--scrollbar-thumb-inset-end) solid transparent;border-left-width:var(--scrollbar-thumb-inset-side);border-right-width:var(--scrollbar-thumb-inset-side);border-radius:var(--radius-pill);min-height:var(--size-40);transition:background-color var(--duration-normal) var(--ease-out);background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:var(--color-border-hover)}::-webkit-scrollbar-thumb:active{background-color:var(--color-border-strong)}::-webkit-scrollbar-thumb:horizontal{border-top-width:var(--scrollbar-thumb-inset-side);border-bottom-width:var(--scrollbar-thumb-inset-side);border-left-width:var(--scrollbar-thumb-inset-end);border-right-width:var(--scrollbar-thumb-inset-end)}::-webkit-scrollbar-corner{background:0 0}:focus-visible{outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:var(--focus-ring-offset)}:focus:not(:focus-visible){outline:none}:is(button,a[href],input,textarea,select,summary,[role=button]):focus-visible{outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:var(--focus-ring-offset);box-shadow:var(--shadow-focus-ring);border-radius:var(--radius-sm)}.app-shell{background:var(--color-canvas);min-height:100%;position:relative;overflow:hidden}.filo-canvas{width:100%;height:100dvh;position:relative}.filo-writing-view,.filo-scene-view{position:absolute;inset:0}.filo-writing-view{--typewriter-line-position:38dvh;overflow-anchor:none;padding-bottom:var(--typewriter-line-position);scrollbar-width:none;overflow:hidden auto}.filo-scrollbar{right:0;top:var(--space-2);bottom:var(--space-2);width:var(--size-14);z-index:5;-webkit-user-select:none;user-select:none;pointer-events:auto;position:absolute}.filo-scrollbar-thumb{right:var(--space-0-5);width:var(--size-2);background:var(--color-scrollbar-thumb);border-radius:var(--radius-sm);cursor:grab;opacity:0;transition:opacity var(--duration-slow) var(--ease-out), width var(--duration-normal) var(--ease-out), border-radius var(--duration-normal) var(--ease-out), background-color var(--duration-fast) var(--ease-out);will-change:transform;position:absolute;top:0}.filo-scrollbar:hover .filo-scrollbar-thumb,.filo-scrollbar.is-active .filo-scrollbar-thumb{opacity:1}.filo-scrollbar:hover .filo-scrollbar-thumb,.filo-scrollbar-thumb.is-dragging{width:var(--size-10);border-radius:var(--radius-pill);background:var(--color-scrollbar-thumb-hover)}.filo-scrollbar-thumb.is-dragging{cursor:grabbing}*{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb) transparent}::-webkit-scrollbar{width:var(--size-14);height:var(--size-14);background:0 0}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb);border:var(--scrollbar-thumb-inset-thin) solid transparent;border-radius:var(--radius-lg);min-height:var(--size-28);transition:border-width var(--duration-normal) var(--ease-out), background-color var(--duration-fast) var(--ease-out);background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-thumb-hover);border-width:var(--border-width-thick);background-clip:padding-box}::-webkit-scrollbar-thumb:active{background:var(--color-scrollbar-thumb-hover);border-width:var(--border-width-thick);background-clip:padding-box}.filo-writing-view::-webkit-scrollbar{display:none}.filo-writing-view{scrollbar-width:none}.app-shell[data-zoom-level=scene] .filo-scrollbar{opacity:0;pointer-events:none}.filo-writing-view.is-rising{z-index:var(--z-reveal);animation:writing-view-rise var(--duration-rise) var(--ease-out) both}.filo-writing-view.is-leaving{z-index:var(--z-reveal);animation:writing-view-fall var(--duration-fall) var(--ease-in) forwards}@keyframes writing-view-rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes writing-view-fall{0%{transform:translateY(0)}to{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.filo-writing-view.is-rising,.filo-writing-view.is-leaving{animation:none;transform:none}}.app-shell[data-zoom-level=writing] .filo-writing-view{opacity:1;pointer-events:auto}.app-shell[data-zoom-level=writing] .filo-scene-view,.app-shell[data-zoom-level=scene] .filo-writing-view{opacity:0;pointer-events:none}.app-shell[data-zoom-level=scene] .filo-scene-view{opacity:1;pointer-events:auto}.app-shell.is-zooming-out .filo-writing-view{transition:opacity var(--duration-bridge) var(--ease-out)}.app-shell.is-zooming-out .filo-writing-view .filo-editor-page{transition:opacity var(--duration-fast) var(--ease-out);opacity:0}.app-shell.is-zooming-out .filo-scene-view{transition:opacity var(--duration-normal) var(--ease-out) var(--duration-fast)}.app-shell.is-zooming-in .filo-writing-view{transition:opacity var(--duration-modal) var(--ease-out)}.app-shell.is-zooming-in .filo-writing-view .filo-editor-page{transition:opacity var(--duration-normal) var(--ease-out) var(--app-shell-zoom-in-page-delay);opacity:1}.app-shell.is-zooming-in .filo-scene-view{transition:opacity var(--duration-80) var(--ease-out)}.app-shell[data-zoom-level=scene] .scene-card{animation:scene-card-enter var(--duration-normal) var(--ease-out) backwards}.app-shell[data-zoom-level=scene] .scene-card:first-child{animation-delay:0s}.app-shell[data-zoom-level=scene] .scene-card:nth-child(2){animation-delay:var(--app-shell-stagger-delay-1)}.app-shell[data-zoom-level=scene] .scene-card:nth-child(3){animation-delay:var(--app-shell-stagger-delay-2)}.app-shell[data-zoom-level=scene] .scene-card:nth-child(4){animation-delay:var(--app-shell-stagger-delay-3)}.app-shell[data-zoom-level=scene] .scene-card:nth-child(5){animation-delay:var(--app-shell-stagger-delay-4)}.app-shell[data-zoom-level=scene] .scene-card:nth-child(n+6){animation-delay:var(--app-shell-stagger-delay-5)}@keyframes scene-card-enter{0%{opacity:0;transform:translateY(var(--space-2)) scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.filo-writing-view,.filo-scene-view,.scene-card{transition:none!important;animation:none!important}}.app-shell.fullscreen-writing{min-height:100dvh}.settings-toggle{top:var(--space-4);right:var(--space-4);width:var(--size-44);height:var(--control-height-touch);color:var(--color-text-disabled);z-index:calc(var(--z-navigator) + 1);font-size:var(--text-lg);line-height:var(--line-height-glyph);transition:color var(--duration-fast) var(--ease-out), opacity var(--duration-normal) var(--ease-out), visibility var(--duration-normal) var(--ease-out);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:fixed}.settings-toggle:hover{color:var(--color-text-muted)}.help-toggle{top:var(--space-4);right:calc(var(--space-4) + var(--space-11));width:var(--size-44);height:var(--control-height-touch);color:var(--color-text-disabled);z-index:calc(var(--z-navigator) + 1);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:fixed}.help-toggle:hover{color:var(--color-text-muted)}.app-file-input{display:none}.scene-navigator{width:var(--layout-navigator-width);padding:0 var(--space-3) var(--space-6);background:var(--color-surface);border-right:1px solid var(--color-border-default);box-shadow:var(--shadow-md);z-index:var(--z-navigator);transition:opacity var(--duration-fast) var(--ease-out), visibility var(--duration-fast) var(--ease-out);position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(0)}.scene-navigator.collapsed{transform:translateX(calc(var(--layout-navigator-width) * -1))}.scene-navigator-header{z-index:1;margin:0 calc(var(--space-3) * -1) var(--space-3);padding:calc(var(--space-12) + var(--space-3)) var(--space-6) var(--space-3);background:var(--color-surface);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--line-height-glyph);text-transform:uppercase;letter-spacing:var(--letter-spacing-uppercase);color:var(--color-text-muted);position:sticky;top:0}.scene-navigator-list{gap:var(--space-1);flex-direction:column;display:flex}.scene-navigator-item{width:100%;min-height:var(--size-32);align-items:center;gap:var(--space-2);border:none;border-left:var(--border-width-thick) solid transparent;color:var(--color-text-secondary);text-align:left;cursor:default;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0;padding:0;display:flex}.scene-navigator-item:hover{background:var(--color-fill-default)}.scene-navigator-item.active{background:var(--color-accent-subtle);border-left-color:var(--color-accent);color:var(--color-text-primary)}.scene-navigator-item-main{align-items:baseline;gap:var(--space-2);min-width:0;padding:var(--space-2) var(--space-3);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;display:flex}.scene-navigator-index{text-align:right;min-width:1.75em;font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--line-height-ui-body);letter-spacing:var(--letter-spacing-mono);color:inherit;opacity:var(--opacity-70)}.scene-navigator-label{font-size:var(--text-sm);line-height:var(--line-height-ui-body);flex:1}.fullscreen-exit-hint{padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface-raised);border:1px solid var(--color-border-default);box-shadow:var(--shadow-md);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--line-height-glyph);letter-spacing:var(--letter-spacing-mono);z-index:var(--z-toast);animation:save-indicator-fade var(--duration-normal) var(--ease-out);position:fixed}.save-dot{right:var(--space-4);bottom:var(--space-4);width:var(--size-6);height:var(--size-6);background:var(--color-accent);z-index:var(--z-toast);pointer-events:none;animation:save-dot-appear var(--duration-1500) var(--ease-out) forwards;border-radius:50%;position:fixed}.app-shell:has(dialog[open]) .save-dot{display:none}@keyframes save-dot-appear{0%{opacity:1;background:var(--color-accent)}60%{opacity:1;background:var(--color-border-default)}to{opacity:0;background:var(--color-border-default)}}.offline-indicator,.cloud-pending-indicator{right:var(--space-4);bottom:calc(var(--space-4) + var(--space-7));font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-text-muted);opacity:var(--opacity-60);z-index:var(--z-toast);pointer-events:none;position:fixed}.collab-removed-notice{top:var(--space-4);max-width:min(560px, calc(100vw - var(--size-32)));padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-error);background:var(--color-surface-raised);color:var(--color-text-primary);font-family:var(--font-ui);font-size:var(--text-sm);line-height:var(--line-height-ui-body);z-index:var(--z-toast);position:fixed;left:50%;transform:translate(-50%)}.collab-connection-indicator{right:var(--space-4);bottom:calc(var(--space-4) + var(--space-12));font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-text-muted);opacity:var(--opacity-60);z-index:var(--z-toast);pointer-events:none;align-items:center;gap:var(--space-1-5);display:flex;position:fixed}.collab-connection-indicator:before{content:"";width:var(--size-6);height:var(--size-6);background:var(--color-border-default);border-radius:50%}.collab-connection-indicator.is-live:before{background:var(--color-success)}.collab-connection-indicator.is-reconnecting:before{background:var(--color-warning)}.collab-connection-indicator.is-offline:before{background:var(--color-error)}.app-logo-badge{left:var(--space-4);bottom:var(--space-4);height:var(--size-44);pointer-events:none;z-index:1;align-items:center;display:flex;position:fixed}[data-region=top-chrome],.app-shell>.app-logo-badge{transition:opacity var(--duration-700) var(--ease-out)}[data-region=top-chrome]{z-index:var(--z-toolbar);position:relative}.app-shell[data-paper-entering=true] [data-region=top-chrome],.app-shell[data-paper-entering=true]>.app-logo-badge{opacity:0}@media (prefers-reduced-motion:reduce){[data-region=top-chrome],.app-shell>.app-logo-badge{transition:none}}.app-logo-wordmark{font-family:var(--app-logo-wordmark-font);font-size:var(--text-base);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-kbd);color:var(--color-text-disabled);font-style:italic}.filo-dialog{font-family:var(--font-ui);background:var(--color-surface-raised);color:var(--color-text-primary);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-6);min-width:320px;max-width:420px;box-shadow:var(--shadow-lg);margin:auto}.filo-dialog::backdrop{background:var(--color-overlay-scrim)}.filo-dialog-title{font-size:var(--text-md);font-weight:var(--font-weight-medium);margin:0 0 var(--space-3)}.filo-dialog-body{font-size:var(--text-base);color:var(--color-text-secondary);margin-bottom:var(--space-5)}.filo-dialog-input{width:100%;font-family:var(--font-ui);font-size:var(--text-base);background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);outline:none}.filo-dialog-input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.filo-dialog-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.filo-dialog-button{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--font-weight-medium);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border-default);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.filo-dialog-cancel{color:var(--color-text-secondary);background:0 0}.filo-dialog-cancel:hover{background:var(--color-surface-overlay)}.filo-dialog-confirm{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.filo-dialog-confirm:hover{background:var(--color-accent-hover)}.fullscreen-exit-hint{left:50%;bottom:var(--space-4);color:var(--color-text-secondary);animation:fullscreen-exit-hint-fade var(--fullscreen-exit-hint-lifetime) var(--ease-out) forwards;transform:translate(-50%)}@keyframes save-indicator-fade{0%{opacity:0;transform:translateY(var(--space-1))}to{opacity:1;transform:translateY(0)}}@keyframes fullscreen-exit-hint-fade{0%{opacity:0;transform:translateX(-50%) translateY(var(--space-1))}12%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(0)}}.app-shell.fullscreen-writing .scene-navigator{opacity:0;visibility:hidden;pointer-events:none}a{color:inherit}.import-error-toast{left:50%;bottom:var(--space-6);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-pill);background:var(--color-surface-raised);border:1px solid var(--color-error);box-shadow:var(--shadow-md);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--line-height-ui-body);letter-spacing:var(--letter-spacing-mono);color:var(--color-error-text);z-index:var(--z-toast);animation:save-indicator-fade var(--duration-normal) var(--ease-out);max-width:90vw;display:flex;position:fixed;transform:translate(-50%)}.import-error-dismiss{color:var(--color-text-muted);cursor:pointer;padding:0 var(--space-1);font-size:var(--text-sm);line-height:var(--line-height-glyph);opacity:var(--opacity-60);transition:opacity var(--duration-fast) var(--ease-out);background:0 0;border:none}.import-error-dismiss:hover{opacity:1}.unsaved-recovery-banner{top:var(--space-3);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--color-surface-raised);border:1px solid var(--color-accent-border);box-shadow:var(--shadow-md);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-primary);z-index:var(--z-toast);display:flex;position:fixed;left:50%;transform:translate(-50%)}.unsaved-recovery-banner button{font:inherit;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-default);color:var(--color-text-primary);cursor:pointer;background:0 0}.unsaved-recovery-banner button:first-of-type{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.quota-banner{bottom:calc(var(--space-12) + var(--space-6));padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-family:var(--font-ui);font-size:var(--text-sm);z-index:var(--z-toast);border:1px solid;position:fixed;left:50%;transform:translate(-50%)}.quota-banner--warn{background:var(--color-warning-subtle);color:var(--color-warning);border-color:var(--color-warning)}.quota-banner--critical{background:var(--color-error-subtle);color:var(--color-error-text);border-color:var(--color-error)}@media (width<=900px){.scene-navigator-header{padding-top:calc(var(--space-16) + var(--space-2))}}.annotations-panel{width:300px;padding:calc(var(--space-12) + var(--space-2)) var(--space-4) var(--space-6);background:var(--color-surface);border-left:1px solid var(--color-border-default);box-shadow:var(--shadow-md);z-index:var(--z-navigator);gap:var(--space-4);flex-direction:column;display:flex;position:fixed;inset:0 0 0 auto;overflow-y:auto}.app-shell.annotations-open .filo-editor-shell{padding-right:calc(300px + var(--space-6))}.annotations-panel-header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.annotations-panel-header h2{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.annotations-panel-new-btn{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:none}.annotations-panel-new-btn:hover{background:var(--color-fill-subtle);color:var(--color-text-primary)}.annotations-panel-new-btn--full{width:100%;padding:var(--space-2) var(--space-3);border:1px dashed var(--color-border-default);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0}.annotations-panel-new-btn--full:hover{background:var(--color-accent-subtle);color:var(--color-accent);border-color:var(--color-accent-border)}.annotations-panel-filters{gap:var(--space-2);display:flex}.annotation-field{gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-uppercase);flex-direction:column;display:flex}.annotation-field select,.annotation-field input,.annotation-field textarea{width:100%;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text-primary);font-size:var(--text-sm);text-transform:none;letter-spacing:normal}.annotation-field select:focus,.annotation-field input:focus,.annotation-field textarea:focus{border-color:var(--color-accent);outline:none}.annotation-field textarea{resize:vertical;min-height:var(--size-60);font-family:var(--font-ui);line-height:var(--line-height-ui-body)}.annotations-panel-list{gap:var(--space-1);flex-direction:column;display:flex}.annotations-empty{font-size:var(--text-sm);color:var(--color-text-muted);padding:var(--space-4) 0;text-align:center}.annotation-list-item{gap:var(--space-1);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);text-align:left;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0;border:1px solid #0000;flex-direction:column;display:flex}.annotation-list-item:hover{background:var(--color-fill-subtle);border-color:var(--color-border-subtle)}.annotation-list-item.active{background:var(--color-accent-subtle);border-color:var(--color-accent-border)}.annotation-list-item.scroll-synced{background:var(--color-fill-default);border-color:var(--color-border-subtle)}.annotation-list-item strong{font-size:var(--text-sm);font-weight:var(--font-weight-regular);color:var(--color-text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.annotation-list-topline{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.annotation-type-pill{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-uppercase);padding:1px var(--space-2);border-radius:var(--radius-pill);background:var(--color-fill-default);color:var(--color-text-muted)}.annotation-type-pill.annotation-type-note{background:rgba(var(--annotation-note-rgb), var(--opacity-12));color:var(--annotation-note-ink)}.annotation-type-pill.annotation-type-todo{background:rgba(var(--annotation-todo-rgb), var(--opacity-12));color:var(--annotation-todo-ink)}.annotation-type-pill.annotation-type-question{background:rgba(var(--annotation-question-rgb), var(--opacity-12));color:var(--annotation-question-ink)}.annotation-type-pill.annotation-type-structure{background:rgba(var(--annotation-structure-rgb), var(--opacity-12));color:var(--annotation-structure-ink)}.annotation-type-pill.annotation-type-character{background:rgba(var(--annotation-character-rgb), var(--opacity-12));color:var(--annotation-character-ink)}.annotation-type-pill.annotation-type-continuity{background:rgba(var(--annotation-continuity-rgb), var(--opacity-12));color:var(--annotation-continuity-ink)}.annotation-type-pill.annotation-type-dialogue{background:rgba(var(--annotation-dialogue-rgb), var(--opacity-12));color:var(--annotation-dialogue-ink)}.annotation-type-pill.annotation-type-production{background:rgba(var(--annotation-production-rgb), var(--opacity-12));color:var(--annotation-production-ink)}.annotation-list-status{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-uppercase);color:var(--color-text-muted)}.annotation-list-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.annotation-list-item.is-detached{border-style:dashed;border-color:var(--color-border-default);opacity:var(--opacity-75)}.annotation-list-detached-excerpt{font-size:var(--text-xs);color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-style:italic;display:-webkit-box;overflow:hidden}.annotation-popover{width:220px;padding:var(--space-3);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-lg);z-index:var(--z-modal);gap:var(--space-2);pointer-events:auto;flex-direction:column;display:flex;position:absolute;right:-244px}.annotation-popover-note{border:1px solid rgba(var(--annotation-note-rgb), var(--opacity-35))}.annotation-popover-todo{border:1px solid rgba(var(--annotation-todo-rgb), var(--opacity-35))}.annotation-popover-question{border:1px solid rgba(var(--annotation-question-rgb), var(--opacity-35))}.annotation-popover-structure{border:1px solid rgba(var(--annotation-structure-rgb), var(--opacity-35))}.annotation-popover-character{border:1px solid rgba(var(--annotation-character-rgb), var(--opacity-35))}.annotation-popover-continuity{border:1px solid rgba(var(--annotation-continuity-rgb), var(--opacity-35))}.annotation-popover-dialogue{border:1px solid rgba(var(--annotation-dialogue-rgb), var(--opacity-35))}.annotation-popover-production{border:1px solid rgba(var(--annotation-production-rgb), var(--opacity-35))}.annotation-popover-top{justify-content:space-between;align-items:center;gap:var(--space-1);min-width:0;display:flex}.annotation-popover-body{font-size:var(--text-sm);color:var(--color-text-primary);line-height:var(--line-height-ui-reading);word-break:break-word;margin:0}.annotation-popover-time{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted-raised);display:block}.annotation-popover-type-picker{gap:var(--space-1);flex-wrap:wrap;display:flex}.annotation-popover-type-picker .annotation-type-pill{cursor:pointer;opacity:var(--opacity-50);transition:opacity var(--duration-fast) var(--ease-out);border:1px solid #0000}.annotation-popover-type-picker .annotation-type-pill:hover{opacity:var(--opacity-80)}.annotation-popover-type-picker .annotation-type-pill--active{opacity:1;border-color:currentColor}.annotation-popover-type-picker .annotation-type-pill:focus-visible{opacity:1;outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:1px}.annotation-popover-edit-body{font-size:var(--text-sm);font-family:var(--font-ui);color:var(--color-text-primary);background:var(--color-fill-subtle);border:1px solid var(--color-border-default);border-radius:var(--radius-md);padding:var(--space-2);resize:vertical;line-height:var(--line-height-ui-reading);box-sizing:border-box;width:100%}.annotation-popover-edit-body:focus,.annotation-popover-edit-body:focus-visible{outline:none}.annotation-popover-edit-actions{gap:var(--space-2);align-items:center;display:flex}.annotation-popover-save-btn{font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-surface);cursor:pointer;border:none}.annotation-popover-save-btn:disabled{opacity:var(--opacity-40);cursor:default}.annotation-popover-cancel-btn{font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-muted-raised);cursor:pointer;background:0 0}.annotation-popover-cancel-btn:hover{color:var(--color-text-primary);border-color:var(--color-text-muted)}.annotation-popover :focus{outline:none}.annotation-popover :focus-visible{outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:1px}.annotation-popover-actions{gap:var(--space-1);flex-shrink:0;align-items:center;display:flex}.create-annotation-popover{border-radius:var(--radius-lg);background:var(--color-surface-raised);border:1px solid var(--color-border-default);width:min(420px,90vw);box-shadow:var(--shadow-lg);z-index:var(--z-modal);animation:save-indicator-fade var(--duration-normal) var(--ease-out);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.create-annotation-popover__header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:center;display:flex}.create-annotation-popover__title{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.create-annotation-popover .annotation-field{padding:0 var(--space-4);margin-top:var(--space-3);position:relative}.create-annotation-popover .annotation-field:last-of-type{margin-bottom:0}.create-annotation-popover__actions{padding:var(--space-3) var(--space-4);justify-content:flex-end;display:flex}.annotation-type-dot{width:var(--size-8);height:var(--size-8);right:var(--space-6);pointer-events:none;border-radius:50%;display:inline-block;position:absolute;top:50%;transform:translateY(25%)}.annotation-icon-button{width:var(--size-22);height:var(--size-22);color:var(--color-text-muted-raised);cursor:pointer;font-size:var(--text-sm);border-radius:var(--radius-md);transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.annotation-icon-button:hover{color:var(--color-text-primary);background:var(--color-fill-default)}.annotation-popover-resolved,.annotation-popover-resolved:hover{color:var(--color-success-text)}.annotation-popover-is-resolved{opacity:var(--opacity-55)}.annotation-popover-is-resolved:hover{opacity:var(--opacity-80)}.annotation-selection-preview{padding:var(--space-2) var(--space-3);border-left:var(--border-width-thick) solid var(--color-accent-border);background:var(--color-fill-faint);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:var(--text-sm);color:var(--color-text-secondary);max-height:80px;margin:0;font-style:italic;overflow-y:auto}.annotation-range{cursor:text}.annotation-range.is-resolved{opacity:var(--opacity-55)}.annotation-dot-container{right:var(--annotation-dot-container-offset);align-items:center;gap:var(--space-1);pointer-events:auto;z-index:1;transition:gap var(--duration-slow) var(--ease-out);flex-direction:column;display:flex;position:absolute;transform:translateY(-50%)}.annotation-dot-container:hover{gap:var(--space-3)}.annotation-dot{width:var(--size-4);height:var(--size-4);cursor:pointer;transition:transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out);border:none;border-radius:50%;padding:0;position:relative}.annotation-dot:before{content:"";inset:var(--annotation-dot-target-inset-block) var(--annotation-dot-target-inset-inline);pointer-events:auto;border-radius:50%;position:absolute}.annotation-dot-note{background:rgb(var(--annotation-note-rgb));box-shadow:0 0 var(--size-4) rgba(var(--annotation-note-rgb), var(--opacity-40)), 0 0 var(--size-8) rgba(var(--annotation-note-rgb), var(--opacity-15))}.annotation-dot-todo{background:rgb(var(--annotation-todo-rgb));box-shadow:0 0 var(--size-4) rgba(var(--annotation-todo-rgb), var(--opacity-50)), 0 0 var(--size-8) rgba(var(--annotation-todo-rgb), var(--opacity-20))}.annotation-dot-question{background:rgb(var(--annotation-question-rgb));box-shadow:0 0 var(--size-4) rgba(var(--annotation-question-rgb), var(--opacity-50)), 0 0 var(--size-8) rgba(var(--annotation-question-rgb), var(--opacity-20))}.annotation-dot-structure{background:rgb(var(--annotation-structure-rgb));box-shadow:0 0 var(--size-4) rgba(var(--annotation-structure-rgb), var(--opacity-50)), 0 0 var(--size-8) rgba(var(--annotation-structure-rgb), var(--opacity-20))}.annotation-dot-character{background:rgb(var(--annotation-character-rgb));box-shadow:0 0 var(--size-4) rgba(var(--annotation-character-rgb), var(--opacity-50)), 0 0 var(--size-8) rgba(var(--annotation-character-rgb), var(--opacity-20))}.annotation-dot-continuity{background:rgb(var(--annotation-continuity-rgb));box-shadow:0 0 var(--size-4) rgba(var(--annotation-continuity-rgb), var(--opacity-50)), 0 0 var(--size-8) rgba(var(--annotation-continuity-rgb), var(--opacity-20))}.annotation-dot-dialogue{background:rgb(var(--annotation-dialogue-rgb));box-shadow:0 0 var(--size-4) rgba(var(--annotation-dialogue-rgb), var(--opacity-50)), 0 0 var(--size-8) rgba(var(--annotation-dialogue-rgb), var(--opacity-20))}.annotation-dot-production{background:rgb(var(--annotation-production-rgb));box-shadow:0 0 var(--size-4) rgba(var(--annotation-production-rgb), var(--opacity-50)), 0 0 var(--size-8) rgba(var(--annotation-production-rgb), var(--opacity-20))}.annotation-dot:hover,.annotation-dot.active{transform:scale(2.2)}.annotation-dot-note:hover,.annotation-dot-note.active{box-shadow:0 0 var(--size-6) rgba(var(--annotation-note-rgb), var(--opacity-60)), 0 0 var(--size-14) rgba(var(--annotation-note-rgb), var(--opacity-25))}.annotation-dot-todo:hover,.annotation-dot-todo.active{box-shadow:0 0 var(--size-6) rgba(var(--annotation-todo-rgb), var(--opacity-70)), 0 0 var(--size-14) rgba(var(--annotation-todo-rgb), var(--opacity-30))}.annotation-dot-question:hover,.annotation-dot-question.active{box-shadow:0 0 var(--size-6) rgba(var(--annotation-question-rgb), var(--opacity-70)), 0 0 var(--size-14) rgba(var(--annotation-question-rgb), var(--opacity-30))}.annotation-dot-structure:hover,.annotation-dot-structure.active{box-shadow:0 0 var(--size-6) rgba(var(--annotation-structure-rgb), var(--opacity-70)), 0 0 var(--size-14) rgba(var(--annotation-structure-rgb), var(--opacity-30))}.annotation-dot-character:hover,.annotation-dot-character.active{box-shadow:0 0 var(--size-6) rgba(var(--annotation-character-rgb), var(--opacity-70)), 0 0 var(--size-14) rgba(var(--annotation-character-rgb), var(--opacity-30))}.annotation-dot-continuity:hover,.annotation-dot-continuity.active{box-shadow:0 0 var(--size-6) rgba(var(--annotation-continuity-rgb), var(--opacity-70)), 0 0 var(--size-14) rgba(var(--annotation-continuity-rgb), var(--opacity-30))}.annotation-dot-dialogue:hover,.annotation-dot-dialogue.active{box-shadow:0 0 var(--size-6) rgba(var(--annotation-dialogue-rgb), var(--opacity-70)), 0 0 var(--size-14) rgba(var(--annotation-dialogue-rgb), var(--opacity-30))}.annotation-dot-production:hover,.annotation-dot-production.active{box-shadow:0 0 var(--size-6) rgba(var(--annotation-production-rgb), var(--opacity-70)), 0 0 var(--size-14) rgba(var(--annotation-production-rgb), var(--opacity-30))}.annotation-dot.is-resolved{opacity:var(--opacity-30);box-shadow:none}@keyframes annotation-text-glow-pulse{0%,to{text-shadow:0 0 var(--annotation-glow-inner-blur) var(--annotation-glow-color,rgba(var(--annotation-todo-rgb), var(--opacity-60))), 0 0 var(--size-20) var(--annotation-glow-color-faint,rgba(var(--annotation-todo-rgb), var(--opacity-25)))}50%{text-shadow:0 0 var(--size-14) var(--annotation-glow-color,rgba(var(--annotation-todo-rgb), var(--opacity-65))), 0 0 var(--annotation-glow-outer-blur-peak) var(--annotation-glow-color-faint,rgba(var(--annotation-todo-rgb), var(--opacity-30)))}}.annotation-block-glow{text-shadow:0 0 var(--annotation-glow-inner-blur) var(--annotation-glow-color,rgba(var(--annotation-todo-rgb), var(--opacity-60))), 0 0 var(--size-20) var(--annotation-glow-color-faint,rgba(var(--annotation-todo-rgb), var(--opacity-25)));animation:annotation-text-glow-pulse var(--annotation-glow-pulse-period) var(--ease-css-ease-in-out) infinite;transition:text-shadow var(--duration-600) var(--ease-out)}.annotation-glow-note{--annotation-glow-color:rgba(var(--annotation-note-rgb), var(--opacity-60));--annotation-glow-color-faint:rgba(var(--annotation-note-rgb), var(--opacity-25))}.annotation-glow-todo{--annotation-glow-color:rgba(var(--annotation-todo-rgb), var(--opacity-65));--annotation-glow-color-faint:rgba(var(--annotation-todo-rgb), var(--opacity-30))}.annotation-glow-question{--annotation-glow-color:rgba(var(--annotation-question-rgb), var(--opacity-65));--annotation-glow-color-faint:rgba(var(--annotation-question-rgb), var(--opacity-30))}.annotation-glow-structure{--annotation-glow-color:rgba(var(--annotation-structure-rgb), var(--opacity-65));--annotation-glow-color-faint:rgba(var(--annotation-structure-rgb), var(--opacity-30))}.annotation-glow-character{--annotation-glow-color:rgba(var(--annotation-character-rgb), var(--opacity-65));--annotation-glow-color-faint:rgba(var(--annotation-character-rgb), var(--opacity-30))}.annotation-glow-continuity{--annotation-glow-color:rgba(var(--annotation-continuity-rgb), var(--opacity-65));--annotation-glow-color-faint:rgba(var(--annotation-continuity-rgb), var(--opacity-30))}.annotation-glow-dialogue{--annotation-glow-color:rgba(var(--annotation-dialogue-rgb), var(--opacity-65));--annotation-glow-color-faint:rgba(var(--annotation-dialogue-rgb), var(--opacity-30))}.annotation-glow-production{--annotation-glow-color:rgba(var(--annotation-production-rgb), var(--opacity-65));--annotation-glow-color-faint:rgba(var(--annotation-production-rgb), var(--opacity-30))}.scene-status-badge{margin-right:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-uppercase);padding:var(--space-2) var(--space-2);min-width:var(--size-44);min-height:var(--size-44);border-radius:var(--radius-sm);background:var(--color-fill-subtle);color:var(--color-text-muted-raised);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border:none;flex-shrink:0;justify-content:center;align-self:center;align-items:center;display:inline-flex}.scene-status-badge:hover{background:var(--color-fill-strong);color:var(--color-text-secondary)}.scene-status-draft{color:var(--color-text-muted-raised)}.scene-status-revision{color:var(--color-status-revision-ink);background:var(--color-status-revision-bg)}.scene-status-polished{color:var(--color-status-polished-ink);background:var(--color-status-polished-bg)}.scene-status-locked{color:var(--color-status-locked-ink);background:var(--color-status-locked-bg)}.search-match{background:var(--color-search-match);border-radius:var(--radius-sm)}.search-match-active{background:var(--color-search-match-active);box-shadow:0 0 0 1px var(--color-search-match-border)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}.recovery-shell{padding:var(--space-12) var(--space-6);place-items:center;display:grid}.recovery-panel{width:min(960px,100%);padding:var(--space-8);border:1px solid var(--color-accent-border);border-radius:var(--radius-24);background:var(--color-surface-raised);box-shadow:var(--shadow-lg)}.recovery-kicker,.recovery-copy,.recovery-label{color:var(--color-text-secondary)}.recovery-kicker{margin:0 0 var(--space-2);text-transform:uppercase;letter-spacing:var(--letter-spacing-uppercase);font-size:var(--text-sm)}.recovery-panel h1{font-size:clamp(var(--font-size-28), 4vw, var(--font-size-32));line-height:var(--line-height-ui-compact);margin:0}.recovery-copy{margin:var(--space-4) 0 0;max-width:70ch}.recovery-actions{gap:var(--space-3);margin:var(--space-6) 0;flex-wrap:wrap;display:flex}.recovery-danger{border-color:rgba(var(--color-error-rgb), var(--opacity-45));color:var(--color-error-text)}.recovery-label{margin-bottom:var(--space-2-5);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--letter-spacing-uppercase);display:block}.recovery-textarea{resize:vertical;width:100%;min-height:320px;padding:var(--space-4);border-radius:var(--radius-16);border:1px solid var(--color-accent-border);background:var(--color-canvas);color:var(--color-text-primary);font:inherit;line-height:var(--line-height-ui-reading)}.secondary-tab-gate{padding:var(--space-12);place-items:center;display:grid}.secondary-tab-panel{max-width:480px;padding:var(--space-8);border-radius:var(--radius-lg);background:var(--color-surface-raised);border:1px solid var(--color-border-default);box-shadow:var(--shadow-md);color:var(--color-text-primary)}.secondary-tab-panel h1{font-size:var(--text-lg);margin:0 0 var(--space-3)}.secondary-tab-panel p{color:var(--color-text-secondary);line-height:var(--line-height-ui-reading);margin:0}.screenplay-title-btn{top:var(--space-3);left:var(--space-4);color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--text-sm);cursor:pointer;padding:var(--space-3) var(--space-2);min-height:var(--control-height-touch);min-width:var(--size-44);border-radius:var(--radius-sm);z-index:var(--z-toolbar);white-space:nowrap;max-width:200px;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;align-items:center;display:inline-flex;position:fixed;overflow:hidden}.screenplay-title-btn:hover{color:var(--color-text-secondary)}.screenplay-title-btn em{color:var(--color-text-placeholder);font-style:italic}.screenplay-title-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.runtime-estimate{color:var(--color-text-muted);font-weight:var(--font-weight-regular);flex:none;margin-left:.7em}.runtime-estimate:before{content:"·";margin-right:.7em}.app-loading{background:var(--color-canvas);min-height:100vh;color:var(--color-text-secondary);font-family:var(--font-ui);font-size:var(--text-base);justify-content:center;align-items:center;display:flex}@media (width<=1024px){.scene-navigator{width:min(320px,88vw)}.scene-navigator.collapsed{transform:translate(-100%)}.app-shell.annotations-open .filo-editor-shell{padding-right:0}.annotations-panel{width:min(320px,88vw)}}@media (width<=600px){.scene-navigator{width:100%;max-width:100vw}.scene-navigator.collapsed{transform:translate(-100%)}.annotations-panel{width:100%;max-width:100vw;inset:0}.settings-toggle,.help-toggle{width:var(--size-48);height:var(--size-48)}.help-toggle{right:calc(var(--space-4) + var(--space-12))}.screenplay-title-btn{max-width:60vw}.filo-writing-view{padding-bottom:calc(var(--typewriter-line-position) + env(safe-area-inset-bottom,0px))}}.collab-chrome{top:var(--space-4);right:calc(var(--space-4) + 96px);height:var(--layout-topbar-height);align-items:center;gap:var(--space-2);z-index:calc(var(--z-navigator) + 1);display:flex;position:fixed}.presence-avatars{height:var(--layout-topbar-height);align-items:center;gap:0;display:inline-flex}.presence-avatar{width:var(--size-28);height:var(--size-28);margin-left:var(--presence-avatar-overlap);border:var(--border-width-thick) solid var(--presence-colour);background:var(--color-surface-raised);color:var(--presence-colour);font:var(--font-weight-semibold) var(--text-xs)/var(--line-height-glyph) var(--font-ui);letter-spacing:var(--letter-spacing-mono);cursor:pointer;box-shadow:0 0 0 var(--size-2) var(--color-surface);transition:transform var(--duration-fast) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.presence-avatar:first-child{margin-left:0}.presence-avatar:hover,.presence-avatar:focus-visible{box-shadow:0 0 0 var(--size-2) var(--color-surface), 0 0 0 var(--size-4) color-mix(in srgb, var(--presence-colour) var(--opacity-45-percent), transparent);outline:none;transform:translateY(-1px)}.scene-navigator-presence{align-items:center;gap:var(--space-0-5);margin-left:var(--space-1);flex:none;display:inline-flex}.scene-navigator-presence-dot{width:var(--size-6);height:var(--size-6);background:var(--presence-colour);box-shadow:0 0 0 1px var(--color-surface);border-radius:50%}.mention-chip{padding:0 var(--space-1);border-radius:var(--radius-md);background:color-mix(in srgb, var(--presence-colour,var(--color-text-muted)) var(--opacity-20-percent), transparent);color:var(--presence-colour,var(--color-text-primary));font-weight:var(--font-weight-semibold);white-space:nowrap;display:inline}.mention-chip--me{outline:1px solid color-mix(in srgb, var(--presence-colour,var(--color-text-muted)) var(--opacity-55-percent), transparent)}.annotation-list-item.mentions-me{border-left:var(--border-width-thick) solid var(--color-accent)}.annotation-author{align-items:center;gap:var(--space-1);color:var(--presence-colour,inherit);display:inline-flex}.annotation-author-swatch{width:var(--size-8);height:var(--size-8);background:var(--presence-colour,var(--color-text-muted));border-radius:50%;flex:none}.annotation-popover-meta{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted-raised);display:block}.annotation-popover-edit-wrap{position:relative}.mention-suggestions{margin:var(--space-0-5) 0 0;padding:var(--space-1) 0;background:var(--color-surface-raised);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);box-shadow:var(--mention-suggestions-shadow);z-index:5;max-height:200px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.mention-suggestion{align-items:center;gap:var(--space-2);padding:var(--space-1-5) var(--space-2-5);cursor:pointer;font-size:var(--text-sm);color:var(--color-text-primary);display:flex}.mention-suggestion--active{background:color-mix(in srgb, var(--presence-colour,var(--color-text-muted)) var(--opacity-15-percent), transparent)}.mention-suggestion-swatch{width:var(--size-10);height:var(--size-10);background:var(--presence-colour,var(--color-text-muted));border-radius:50%;flex:none}.mention-suggestion-email{font-size:var(--text-xs);color:var(--color-text-muted-raised);margin-left:auto}.mention-inbox{height:var(--layout-topbar-height);align-items:center;display:inline-flex;position:relative}.mention-inbox-bell{width:var(--size-36);height:var(--control-height-default);color:var(--color-text-disabled);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.mention-inbox-bell:hover,.mention-inbox-bell:focus-visible,.mention-inbox-bell--unread{color:var(--color-text-primary)}.mention-inbox-badge{top:var(--space-0-5);min-width:var(--size-16);height:var(--size-16);padding:0 var(--space-1);border-radius:var(--radius-lg);background:var(--color-error);color:var(--color-text-inverse);font:var(--font-weight-bold) var(--text-xs)/var(--size-16) var(--font-ui);text-align:center;position:absolute;right:0}.mention-inbox-panel{background:var(--color-surface-raised);border:1px solid color-mix(in srgb, var(--color-text-muted) var(--opacity-30-percent), transparent);border-radius:var(--radius-sm);width:320px;max-height:60vh;box-shadow:var(--mention-inbox-panel-shadow);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-primary);position:absolute;top:100%;right:0;overflow-y:auto}.mention-inbox-head{padding:var(--space-2) var(--space-3);font-weight:var(--font-weight-semibold);border-bottom:1px solid color-mix(in srgb, var(--color-text-muted) var(--opacity-20-percent), transparent);justify-content:space-between;align-items:center;display:flex}.mention-inbox-mark-all{color:var(--color-text-muted-raised);font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;border:none}.mention-inbox-mark-all:hover{color:var(--color-text-primary)}.mention-inbox-empty{padding:var(--space-4) var(--space-3);color:var(--color-text-muted-raised);margin:0}.mention-inbox-list{margin:0;padding:0;list-style:none}.mention-inbox-item{gap:var(--space-0-5);width:100%;padding:var(--space-2) var(--space-3);border:none;border-bottom:1px solid color-mix(in srgb, var(--color-text-muted) var(--opacity-12-percent), transparent);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;flex-direction:column;display:flex}.mention-inbox-item:hover,.mention-inbox-item:focus-visible{background:color-mix(in srgb, var(--color-text-muted) var(--opacity-10-percent), transparent)}.mention-inbox-item--unread{background:color-mix(in srgb, var(--color-accent) var(--opacity-8-percent), transparent)}.mention-inbox-item--unread .mention-inbox-excerpt{font-weight:var(--font-weight-semibold)}.mention-inbox-item-top{align-items:baseline;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted-raised);display:flex}.mention-inbox-author{align-items:center;gap:var(--space-1);color:var(--presence-colour,var(--color-text-primary));font-weight:var(--font-weight-semibold);display:inline-flex}.mention-inbox-swatch{width:var(--size-8);height:var(--size-8);background:var(--presence-colour,var(--color-text-muted));border-radius:50%;flex:none}.mention-inbox-unread-dot{width:var(--size-8);height:var(--size-8);background:var(--color-error);border-radius:50%;flex:none}.mention-inbox-kind{text-transform:uppercase;letter-spacing:var(--letter-spacing-kbd);font-size:var(--text-xs)}.mention-inbox-item-top time{margin-left:auto}.mention-inbox-item-top .mention-inbox-unread-dot{margin-left:var(--space-1)}.mention-inbox-excerpt{white-space:pre-wrap}.mention-inbox-quote{font-size:var(--text-xs);color:var(--color-text-muted-raised);white-space:pre-wrap}.mention-inbox-screenplay{font-size:var(--text-xs);color:var(--color-text-muted-raised);font-style:italic}.app-logo-wordmark.brand-mark{font-size:6em;line-height:var(--line-height-glyph);color:var(--color-text-primary);margin:0 0 var(--space-10);text-align:center;display:block}.login-screen{box-sizing:border-box;min-height:100svh;padding:var(--space-8) var(--space-4);background:var(--color-canvas);color:var(--color-text-primary);font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--line-height-ui-body);justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:var(--layout-dialog-width);text-align:center}.login-sheet{padding:var(--space-6);background:var(--color-surface-raised);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:left}.login-title{margin:0 0 var(--space-3);font-size:var(--text-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-ui-compact);color:var(--color-text-primary)}.login-subtitle{margin:0 0 var(--space-5);font-size:var(--text-base);line-height:var(--line-height-ui-reading);color:var(--color-text-secondary)}.login-title:focus-visible{outline:none}.login-address{overflow-wrap:anywhere;font-weight:var(--font-weight-medium);color:var(--color-text-primary);display:block}.login-signed-in{margin:0 0 var(--space-5);font-size:var(--text-sm);line-height:var(--line-height-ui-reading);color:var(--color-text-muted-raised)}.login-signed-in .login-address{margin-top:var(--space-0-5);font-size:var(--text-base)}.login-form{gap:var(--space-3);flex-direction:column;display:flex}.login-hint,.login-notice{font-size:var(--text-sm);line-height:var(--line-height-ui-reading);margin:0}.login-hint{color:var(--color-text-muted-raised)}.login-notice{margin-bottom:var(--space-4);color:var(--color-text-secondary)}.login-label{margin-bottom:calc(var(--space-1) * -1);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.login-input{box-sizing:border-box;width:100%;height:var(--control-height-touch);padding-block:0;padding-inline:var(--space-4);background:var(--color-surface);color:var(--color-text-primary);border:var(--border-width-thin) solid var(--color-border-default);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-md);font-weight:var(--font-weight-regular);transition:border-color var(--duration-fast) var(--ease-out)}.login-input::placeholder{color:var(--color-text-placeholder)}.login-input:focus-visible{border-color:var(--color-accent)}.login-input:disabled{opacity:var(--opacity-60);cursor:not-allowed}.login-input--code{font-family:var(--font-mono);font-size:var(--text-xl);letter-spacing:var(--letter-spacing-uppercase);text-align:center}.login-btn{justify-content:center;align-items:center;gap:var(--space-2);box-sizing:border-box;width:100%;min-height:var(--control-height-touch);padding-block:0;padding-inline:var(--space-4);background:var(--color-accent);color:var(--color-text-inverse);border:var(--border-width-thin) solid var(--color-accent);border-radius:var(--radius-md);font-family:var(--font-ui);font-size:var(--text-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-ui-body);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);display:inline-flex}.login-btn:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.login-btn:active:not(:disabled){background:var(--color-accent-active);border-color:var(--color-accent-active)}.login-btn:disabled{opacity:var(--opacity-40);cursor:default}.login-btn--secondary{color:var(--color-text-secondary);border-color:var(--color-border-default);background:0 0}.login-btn--secondary:hover:not(:disabled),.login-btn--secondary:active:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-hover);background:0 0}.login-error{font-size:var(--text-sm);line-height:var(--line-height-ui-reading);color:var(--color-error-text);margin:0}.login-sent{margin:var(--space-5) 0 0;padding-top:var(--space-4);border-top:var(--border-width-thin) solid var(--color-border-default)}.login-sent p{font-size:var(--text-sm);line-height:var(--line-height-ui-reading);color:var(--color-text-muted-raised);margin:0 0 var(--space-3)}.login-sent .login-feedback{color:var(--color-text-secondary)}.login-actions{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;display:flex}.login-link{min-height:var(--control-height-minimum);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--font-weight-regular);color:var(--color-text-muted-raised);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;align-items:center;padding:0;text-decoration:none;display:inline-flex}button.login-link:hover:not(:disabled),button.login-link:active:not(:disabled){color:var(--color-text-secondary)}.login-link:disabled{opacity:var(--opacity-40);cursor:default}.login-countdown{cursor:default}.filo-editor-shell{width:100%;padding:var(--space-12) var(--space-6);transition:padding var(--duration-slow) var(--ease-out), padding-left var(--duration-slow) var(--ease-out);justify-content:center;display:flex}.filo-editor-shell.fullscreen{padding:var(--space-12) var(--space-8)}.filo-editor-shell.nav-open{padding-left:calc(var(--layout-navigator-width) + var(--space-6))}.filo-editor-page{--filo-page-bottom-runout:calc(100dvh - var(--typewriter-line-position));box-sizing:border-box;width:min(100%, var(--layout-page-width));min-height:calc(100vh - var(--space-12) * 2);margin-top:max(0px, calc(38dvh - var(--space-12) - var(--layout-page-padding-top)));padding-top:var(--layout-page-padding-top);padding-right:var(--layout-page-padding-right);padding-bottom:calc(var(--layout-page-padding-bottom) + var(--filo-page-bottom-runout));padding-left:var(--layout-page-padding-left);background:var(--color-surface);color:var(--color-text-primary);border-radius:var(--radius-sm);box-shadow:var(--editor-page-shadow);transition:width var(--duration-slow) var(--ease-out), min-height var(--duration-slow) var(--ease-out), padding var(--duration-slow) var(--ease-out);position:relative;overflow:visible}.filo-page-number{top:calc(var(--layout-page-padding-top) - var(--editor-page-number-offset));right:var(--layout-page-padding-right);font-family:var(--font-script);font-size:var(--font-size-script);color:var(--color-text-secondary);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}.filo-page-break-indicator{pointer-events:none;-webkit-user-select:none;user-select:none;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--editor-page-break-marker-letter-spacing);display:inline}.filo-page-break-indicator .filo-page-num-left{right:calc(100% + var(--layout-page-padding-left) + var(--space-5));white-space:nowrap;position:absolute;top:-.5em}.filo-page-break-indicator .filo-page-num-right{left:calc(100% + var(--layout-page-padding-right) + var(--space-5));white-space:nowrap;position:absolute;top:-.5em}.hide-page-markers .filo-page-break-indicator{display:none}.filo-editor-shell.fullscreen .filo-editor-page{width:min(100%, var(--layout-page-width));min-height:calc(100vh - var(--space-12) * 2)}.filo-editor-surface{font-family:var(--font-script);font-size:var(--font-size-script);line-height:var(--line-height-script);color:var(--color-text-primary);caret-color:var(--color-caret);outline:none}.filo-editor-surface:focus-visible,.filo-editor-surface .ProseMirror:focus-visible,.filo-editor-surface>div:focus-visible,.filo-editor-surface>div{outline:none}.filo-editor-surface>.ProseMirror,.filo-editor-surface>.cm-editor{width:var(--layout-screenplay-width);contain:layout;max-width:100%;position:relative}.filo-editor-surface>.cm-editor .cm-content{width:var(--layout-screenplay-width);contain:layout style;max-width:100%}.filo-editor-surface>.ProseMirror>*{box-sizing:border-box;content-visibility:auto;contain-intrinsic-size:0 1.5em;contain:layout style}.filo-editor-surface ::selection{background:var(--color-selection)}.filo-editor-surface .cm-editor .cm-content ::selection{background:0 0}.filo-editor-surface [data-element-label]:after{content:attr(data-element-label);width:80px;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-uppercase);color:var(--color-text-muted);text-align:left;opacity:0;transition:opacity var(--duration-fast) var(--ease-out);pointer-events:none;position:absolute;right:-100px}.filo-editor-surface :focus-within [data-element-label]:after{opacity:1}.sp-scene-heading,.sp-action,.sp-character,.sp-dialogue,.sp-parenthetical,.sp-transition{white-space:pre-wrap;min-height:calc(var(--line-height-script) * 1em);max-width:100%;margin-right:0;position:relative}.sp-scene-heading,.sp-action,.sp-transition{width:var(--layout-screenplay-width)}.sp-scene-heading{margin-left:var(--layout-scene-left);width:var(--layout-scene-width);margin-top:calc(var(--line-height-script) * 2em);z-index:1;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--editor-line-scene-heading-letter-spacing);color:var(--color-text-primary);margin-bottom:0;display:block;position:relative;overflow:visible}.sp-scene-heading:first-child{margin-top:0}.cm-line[data-scene-number]{position:relative}.cm-line[data-scene-number]:before,.cm-line[data-scene-number]:after{content:attr(data-scene-number);top:var(--editor-line-scene-number-top);line-height:var(--line-height-glyph);font-family:var(--font-script);font-size:var(--font-size-script);font-weight:var(--font-weight-bold);color:var(--color-text-primary);-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap;position:absolute}.cm-line[data-scene-number]:before{left:var(--editor-line-scene-number-inset);min-width:var(--size-40);padding-right:var(--space-1);text-align:right}.cm-line[data-scene-number]:after{right:var(--editor-line-scene-number-inset);min-width:var(--size-40);padding-left:var(--space-1);text-align:left}.hide-scene-numbers .cm-line[data-scene-number]:before,.hide-scene-numbers .cm-line[data-scene-number]:after{content:none}.sp-scene-heading__content{display:block}.sp-action{margin-left:var(--layout-action-left);width:var(--layout-action-width);font-weight:var(--font-weight-regular);color:var(--color-text-primary);margin-top:calc(var(--line-height-script) * 1em);margin-bottom:0}.sp-action+.sp-action{margin-top:0}.sp-scene-heading+.sp-action,.sp-scene-heading+.sp-character,.sp-scene-heading+.sp-transition{margin-top:calc(var(--line-height-script) * 1em)}.sp-character{margin-left:var(--layout-character-left);width:var(--layout-character-width);text-transform:uppercase;font-weight:var(--font-weight-regular);letter-spacing:var(--editor-line-character-letter-spacing);color:var(--color-text-primary);text-align:left;margin-top:calc(var(--line-height-script) * 1em);margin-bottom:0}.sp-character-contd{font-weight:var(--font-weight-regular);color:var(--color-text-secondary);pointer-events:none;-webkit-user-select:none;user-select:none}.sp-character-autocomplete,.sp-heading-autocomplete{opacity:var(--opacity-35);pointer-events:none}.sp-dialogue{margin-left:var(--layout-dialogue-left);width:var(--layout-dialogue-width);font-weight:var(--font-weight-regular);color:var(--color-text-primary);text-align:left;margin-top:0;margin-bottom:0}.sp-parenthetical{margin-left:var(--layout-parenthetical-left);width:var(--layout-parenthetical-width);font-style:italic;font-weight:var(--font-weight-regular);color:var(--color-text-secondary);text-align:left;margin-top:0;margin-bottom:0}.sp-inline-parenthetical{color:var(--color-text-secondary);font-style:italic}.sp-transition{margin-left:var(--layout-transition-left);width:var(--layout-transition-width);text-transform:uppercase;font-weight:var(--font-weight-regular);letter-spacing:var(--editor-line-transition-letter-spacing);color:var(--color-text-secondary);text-align:right;margin-top:calc(var(--line-height-script) * 1em);margin-bottom:calc(var(--line-height-script) * 1em)}.sp-action:first-child:empty:before,.sp-action.is-empty:first-child:before{content:"Start writing...";color:var(--color-text-placeholder);pointer-events:none;font-style:normal;position:absolute;inset:0 auto auto 0}.sp-action:first-child:has(>br.ProseMirror-trailingBreak):before{content:"Start writing...";color:var(--color-text-placeholder);pointer-events:none;font-style:normal;position:absolute;inset:0 auto auto 0}@media (width<=1100px){.filo-editor-shell.nav-open{padding-left:var(--space-6)}}@media (width<=1100px) and (width>=601px){.filo-editor-shell.nav-open{padding-left:var(--space-6)}}@media (width<=600px),(width<=1024px) and (orientation:portrait){.filo-editor-shell{padding:0}.filo-editor-shell.nav-open{padding-left:0}.filo-editor-page{--filo-page-bottom-runout:calc(100dvh - var(--typewriter-line-position));width:100%;max-width:100%;padding:var(--space-4) var(--space-3);padding-bottom:calc(var(--space-4) + var(--filo-page-bottom-runout));background:var(--color-surface);box-shadow:none;border-radius:0;min-height:100dvh;margin-top:0}.filo-editor-surface>.cm-editor,.filo-editor-surface>.cm-editor .cm-content{width:100%;max-width:100%}.sp-scene-heading,.sp-action,.sp-transition{width:100%}.filo-page-break-indicator{display:none}}@media (width<=600px){.filo-editor-surface .cm-content .sp-line-character{padding-left:22%}.filo-editor-surface .cm-content .sp-line-dialogue{padding-left:1.5em;padding-right:1.5em}.filo-editor-surface .cm-content .sp-line-parenthetical{padding-left:4em;padding-right:3em}}.switcher-backdrop{z-index:var(--z-modal);background:var(--color-scrim);justify-content:center;padding-top:15vh;display:flex;position:fixed;inset:0}.switcher-panel{background:var(--color-surface-raised);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);width:420px;max-height:60vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.switcher-filter{width:100%;padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--color-border-default);color:var(--color-text-primary);font-family:var(--font-ui);font-size:var(--text-sm);background:0 0;outline:none}.switcher-filter::placeholder{color:var(--color-text-placeholder)}.switcher-actions{border-bottom:1px solid var(--color-border-subtle);display:flex}.switcher-action-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);color:var(--color-accent);font-family:var(--font-ui);font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);background:0 0;border:none;flex:1;display:flex}.switcher-action-btn+.switcher-action-btn{border-left:1px solid var(--color-border-subtle)}.switcher-action-btn:hover{background:var(--color-accent-subtle)}.switcher-create-folder{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.switcher-list{padding:var(--space-1) 0;flex:1;overflow-y:auto}.switcher-folder-header{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-4);padding-right:calc(var(--space-8) + var(--space-8));color:var(--color-text-muted-raised);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-kbd);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);background:0 0;border:none;display:flex;position:relative}.switcher-folder-header:hover,.switcher-folder-header.selected{background:var(--color-fill-subtle)}.switcher-folder-chevron{font-size:var(--text-xs);width:var(--size-12);text-align:center;flex-shrink:0}.switcher-folder-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.switcher-folder-count{color:var(--color-text-muted-raised);opacity:var(--opacity-60);font-weight:var(--font-weight-regular);flex-shrink:0;margin-left:auto}.switcher-folder-header .switcher-entry-edit,.switcher-folder-header .switcher-entry-delete{opacity:0}.switcher-folder-header:hover .switcher-entry-edit,.switcher-folder-header.selected .switcher-entry-edit,.switcher-folder-header:hover .switcher-entry-delete,.switcher-folder-header.selected .switcher-entry-delete{opacity:1}.switcher-entry{gap:var(--space-0-5);width:100%;padding:var(--space-2) var(--space-4);padding-right:calc(var(--space-0-5) + var(--space-12) + var(--space-6) + var(--space-1));border:none;border-left:var(--border-width-thick) solid transparent;color:var(--color-text-secondary);text-align:left;cursor:pointer;font-family:var(--font-ui);transition:background var(--duration-fast) var(--ease-out);background:0 0;flex-direction:column;display:flex;position:relative}.switcher-entry.in-folder{padding-left:calc(var(--space-4) + var(--space-4))}.switcher-entry:hover,.switcher-entry.selected{background:var(--color-fill-subtle)}.switcher-entry.current{border-left-color:var(--color-accent)}.switcher-entry-title{font-size:var(--text-sm);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.switcher-entry-meta{font-size:var(--text-xs);color:var(--color-text-muted-raised)}.switcher-group-header{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4) var(--space-2);margin-top:var(--space-2);border-top:1px solid var(--color-border-default);color:var(--color-text-muted-raised);font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:var(--letter-spacing-kbd);text-transform:uppercase;display:flex}.switcher-entry-shared-badge{align-items:center;gap:var(--space-0-5);margin-left:var(--space-2);padding:1px var(--space-1-5);border-radius:var(--radius-pill);border:1px solid var(--color-border-default);color:var(--color-text-muted-raised);font-size:var(--text-xs);vertical-align:middle;display:inline-flex}.switcher-entry-delete,.switcher-entry-edit,.switcher-entry-move{color:var(--color-text-muted-raised);font-size:var(--text-sm);cursor:pointer;padding:var(--space-1);min-width:var(--size-24);min-height:var(--size-24);border-radius:var(--radius-sm);opacity:0;transition:opacity var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.switcher-entry-delete{right:var(--space-0-5)}.switcher-entry-edit{right:calc(var(--space-0-5) + var(--space-6))}.switcher-entry-move{right:calc(var(--space-0-5) + var(--space-12))}.switcher-entry:hover .switcher-entry-delete,.switcher-entry.selected .switcher-entry-delete,.switcher-entry:hover .switcher-entry-edit,.switcher-entry.selected .switcher-entry-edit,.switcher-entry:hover .switcher-entry-move,.switcher-entry.selected .switcher-entry-move{opacity:1}.switcher-entry-delete:hover{color:var(--color-error-text)}.switcher-entry-edit:hover,.switcher-entry-move:hover{color:var(--color-text-primary)}.switcher-rename-input{width:100%;padding:1px var(--space-0-5);background:var(--color-surface);border:1px solid var(--color-accent-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:var(--font-ui);font-size:var(--text-sm);outline:none}.switcher-empty{padding:var(--space-4);text-align:center;color:var(--color-text-muted-raised);font-family:var(--font-ui);font-size:var(--text-sm)}.switcher-skeleton{padding:var(--space-1) 0}.switcher-skeleton-row{gap:var(--space-1);padding:calc(var(--space-2) + var(--space-0-5)) var(--space-4);border-left:var(--border-width-thick) solid transparent;animation:switcher-skeleton-pulse var(--duration-1500) var(--ease-css-ease-in-out) infinite;flex-direction:column;display:flex}.switcher-skeleton-title,.switcher-skeleton-meta{height:var(--size-10);border-radius:var(--radius-sm);background:var(--color-border-default);display:block}.switcher-skeleton-meta{width:34%;height:var(--size-8);opacity:var(--opacity-70)}@keyframes switcher-skeleton-pulse{0%,to{opacity:1}50%{opacity:var(--opacity-45)}}@media (prefers-reduced-motion:reduce){.switcher-skeleton-row{animation:none}}.switcher-sync-hint{padding:0 var(--space-4) var(--space-1);font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-text-muted-raised)}.switcher-move-picker{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border-subtle);gap:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.switcher-move-label{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-text-muted-raised);margin-right:var(--space-1)}.switcher-move-option{padding:var(--space-1) var(--space-2);background:var(--color-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-family:var(--font-ui);font-size:var(--text-xs);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out)}.switcher-move-option:hover{background:var(--color-accent-subtle);border-color:var(--color-accent-border);color:var(--color-text-primary)}.switcher-move-cancel{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-muted-raised);font-family:var(--font-ui);font-size:var(--text-xs);cursor:pointer;background:0 0;margin-left:auto}.switcher-move-cancel:hover{color:var(--color-text-secondary)}.switcher-entry.dragging{opacity:var(--opacity-40)}.switcher-entry[draggable=true]{cursor:grab}.switcher-entry[draggable=true]:active{cursor:grabbing}.switcher-folder-header.drop-target{background:var(--color-accent-subtle);outline:1px dashed var(--color-accent-border);outline-offset:-1px}.switcher-entry.uncategorized-drop-hint{background:var(--color-accent-subtle)}.switcher-list-tail{min-height:var(--space-8);flex:1}.switcher-list-tail.drop-target{background:var(--color-accent-subtle)}.share-dialog{width:min(var(--layout-dialog-width), calc(100vw - var(--space-8)))}.share-dialog-body{gap:var(--space-4);font-family:var(--font-ui);flex-direction:column;display:flex}.share-dialog-section{gap:var(--space-2);flex-direction:column;display:flex}.share-dialog-section-label{font-size:var(--text-xs);letter-spacing:var(--letter-spacing-uppercase);color:var(--color-text-muted-raised)}.share-dialog-members{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.share-dialog-member{align-items:center;gap:var(--space-2-5);padding:var(--space-1-5) var(--space-2);border-radius:var(--radius-md);border:1px solid var(--color-border-default);display:flex}.share-dialog-member--pending{border-style:dashed}.share-dialog-swatch{width:var(--size-12);height:var(--size-12);box-shadow:0 0 0 var(--size-2) var(--color-surface-raised);border-radius:50%;flex:none}.share-dialog-swatch--pending{border:var(--border-width-thick) dashed var(--color-text-muted);background:0 0}.share-dialog-member-text{min-width:0;line-height:var(--line-height-ui-compact);flex-direction:column;flex:auto;display:flex}.share-dialog-member-name{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-dialog-you{color:var(--color-text-muted-raised)}.share-dialog-member-email{font-size:var(--text-xs);color:var(--color-text-muted-raised);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-dialog-role{font-size:var(--text-xs);letter-spacing:var(--letter-spacing-kbd);text-transform:uppercase;color:var(--color-text-muted-raised);flex:none}.share-dialog-empty,.share-dialog-hint,.share-dialog-note{font-size:var(--text-sm);color:var(--color-text-muted-raised);margin:0}.share-dialog-invite-row{align-items:center;gap:var(--space-2);display:flex}.share-dialog-input{flex:auto;min-width:0}.share-dialog-btn{font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-default);background:var(--color-accent);color:var(--color-text-inverse);cursor:pointer;flex:none}.share-dialog-btn:disabled{opacity:var(--opacity-50);cursor:default}.share-dialog-btn--quiet{color:var(--color-text-muted-raised);background:0 0}.share-dialog-btn--quiet:hover:not(:disabled){color:inherit}.share-dialog-btn--danger{background:var(--color-error)}.share-dialog-status{font-size:var(--text-sm);padding:var(--space-1-5) var(--space-2);border-radius:var(--radius-md);border:1px solid var(--color-border-default);margin:0}.share-dialog-status--ok{border-color:var(--color-success)}.share-dialog-status--error{border-color:var(--color-error)}.share-dialog-leave{border-top:1px solid var(--color-border-default);padding-top:var(--space-4)}.undo-redo-indicator{right:var(--space-4);bottom:var(--space-4);gap:var(--space-0-5);z-index:var(--z-toast);opacity:0;transition:opacity var(--duration-normal) var(--ease-out);pointer-events:none;display:flex;position:fixed}.app-shell:hover .undo-redo-indicator{opacity:1;pointer-events:auto}.app-shell:has(dialog[open]) .undo-redo-indicator{opacity:0;pointer-events:none;transition:none}.undo-redo-btn{width:var(--size-44);height:var(--control-height-touch);border-radius:var(--radius-sm);color:var(--color-text-disabled);cursor:default;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.undo-redo-btn.available{color:var(--color-accent);cursor:pointer}.undo-redo-btn.available:hover{color:var(--color-accent-hover)}.undo-redo-btn.available:active{color:var(--color-accent-active)}.undo-redo-btn svg{width:var(--size-14);height:var(--size-14);fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.report-bug-button{right:var(--space-4);bottom:calc(var(--space-4) + var(--space-14));min-width:var(--size-44);min-height:var(--control-height-touch);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-family:var(--font-ui);font-size:var(--text-xs);cursor:pointer;z-index:var(--z-toast);transition:opacity var(--duration-normal) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:fixed}.report-bug-button:hover,.report-bug-button:focus-visible{color:var(--color-text-primary)}.report-bug-button:hover svg,.report-bug-button:focus-visible svg{opacity:1}.report-bug-button:focus-visible{outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:var(--focus-ring-offset)}.report-bug-button-label{opacity:0;white-space:nowrap;max-width:0;transition:max-width var(--duration-normal) var(--ease-out), opacity var(--duration-normal) var(--ease-out), margin-left var(--duration-normal) var(--ease-out);display:inline-block;overflow:hidden}.report-bug-button:hover .report-bug-button-label,.report-bug-button:focus-visible .report-bug-button-label{opacity:1;max-width:120px;margin-left:var(--space-2)}.report-bug-button svg{width:var(--size-16);height:var(--size-16);fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;opacity:var(--opacity-55);transition:opacity var(--duration-fast) var(--ease-out);flex:none}.app-shell:has(dialog[open]) .report-bug-button{opacity:0;pointer-events:none;transition:none}.app-shell.fullscreen-writing .report-bug-button{opacity:0}.app-shell.fullscreen-writing:hover .report-bug-button,.app-shell.fullscreen-writing .report-bug-button:focus-visible{opacity:1}@media (pointer:coarse){.report-bug-button{bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-4) + var(--space-14));z-index:var(--z-toolbar)}}@media (pointer:fine) and (width>=1101px){.app-shell:not(.scene-nav-open,.annotations-open,:has(.switcher-backdrop,.shortcut-backdrop,.tour-overlay)) .report-bug-button-label{opacity:1;max-width:none;margin-left:var(--space-2);color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out)}.app-shell:not(.scene-nav-open,.annotations-open,:has(.switcher-backdrop,.shortcut-backdrop,.tour-overlay)) .report-bug-button:is(:hover,:focus-visible) .report-bug-button-label{color:var(--color-text-primary)}}.shortcut-backdrop{z-index:var(--z-modal);background:var(--color-scrim);justify-content:center;padding-top:10vh;display:flex;position:fixed;inset:0}.shortcut-panel{width:560px;max-width:calc(100vw - var(--space-8));background:var(--color-surface-raised);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);max-height:70vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.shortcut-panel-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-default);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.shortcut-grid{gap:var(--space-4);padding:var(--space-4);grid-template-columns:1fr 1fr;display:grid;overflow-y:auto}.shortcut-category-title{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted-raised);text-transform:uppercase;letter-spacing:var(--letter-spacing-kbd);margin-bottom:var(--space-2)}.shortcut-list{gap:var(--space-1);flex-direction:column;display:flex}.shortcut-row{justify-content:space-between;align-items:baseline;gap:var(--space-2);padding:var(--space-1) 0;display:flex}.shortcut-key{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-accent);white-space:nowrap;flex-shrink:0}.shortcut-label{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-secondary);text-align:right}.search-bar{top:var(--space-3);align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface-raised);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-modal);font-family:var(--font-ui);font-size:var(--text-sm);animation:search-bar-enter var(--duration-normal) var(--ease-out);display:flex;position:fixed;left:50%;transform:translate(-50%)}@keyframes search-bar-enter{0%{opacity:0;transform:translateX(-50%) translateY(var(--search-bar-enter-offset))}to{opacity:1;transform:translate(-50%)translateY(0)}}.search-bar-input{width:160px;padding:var(--space-1) var(--space-2);background:var(--color-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-ui);font-size:var(--text-sm);outline:none}.search-bar-input:focus{border-color:var(--color-accent)}.search-bar-input::placeholder{color:var(--color-text-placeholder)}.search-bar-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted-raised);min-width:var(--size-48);text-align:center;white-space:nowrap}.search-bar-btn{min-width:var(--size-28);height:var(--control-height-compact);padding:0 var(--space-1);color:var(--color-text-muted-raised);cursor:pointer;font-family:var(--font-ui);font-size:var(--text-sm);border-radius:var(--radius-md);transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.search-bar-btn:hover{color:var(--color-text-primary);background:var(--color-fill-default)}.search-bar-btn.active{color:var(--color-accent);background:var(--color-accent-subtle)}.search-bar-divider{width:1px;height:var(--size-20);background:var(--color-border-default);flex-shrink:0}.search-bar-replace-input{width:140px;padding:var(--space-1) var(--space-2);background:var(--color-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-ui);font-size:var(--text-sm);outline:none}.search-bar-replace-input:focus{border-color:var(--color-accent)}.search-bar-replace-input::placeholder{color:var(--color-text-placeholder)}.search-bar-replace-btn{height:var(--control-height-compact);padding:0 var(--space-2);color:var(--color-text-secondary);cursor:pointer;font-family:var(--font-ui);font-size:var(--text-xs);border-radius:var(--radius-md);white-space:nowrap;transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.search-bar-replace-btn:hover{color:var(--color-text-primary);background:var(--color-fill-default)}.search-bar-replace-btn:disabled{opacity:var(--opacity-40);cursor:default}.search-bar-replace-btn:disabled:hover{color:var(--color-text-secondary);background:0 0}.search-bar{align-items:stretch;gap:var(--space-1);flex-direction:column}.search-bar-row{align-items:center;gap:var(--space-2);display:flex}.search-bar-hint{font-size:var(--text-xs);color:var(--color-text-muted-raised);white-space:nowrap;padding:0 var(--space-1)}.search-bar-hint code{font-family:var(--font-mono);color:var(--color-text-secondary)}.outline-view-shell{padding:calc(var(--space-12) + var(--space-2)) var(--space-6) var(--space-6);height:100vh;overflow-y:auto}.app-shell.scene-nav-open .outline-view-shell{padding-left:calc(var(--layout-navigator-width) + var(--space-6))}.outline-view{width:100%;max-width:var(--layout-page-width);gap:var(--space-3);flex-direction:column;margin:0 auto;display:flex}.scene-card{width:100%;padding:var(--space-3);border:1px solid var(--color-border-subtle);border-left:var(--border-width-thick) solid transparent;border-radius:var(--radius-lg);background:var(--color-surface-raised);cursor:pointer;transition:background-color var(--duration-normal) var(--ease-out), border-color var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out);will-change:transform, opacity}@media (prefers-reduced-motion:reduce){.scene-card{transition:none}}.filo-scene-view[data-zoom-from-active] .scene-card.active{transform-origin:var(--scene-rect-left) var(--scene-rect-top);animation:zoom-in-from-rect var(--duration-bridge) var(--ease-out) forwards}@keyframes zoom-in-from-rect{0%{transform:translate(calc(var(--scene-rect-left) - 50%), calc(var(--scene-rect-top) - 50%)) scale(calc(var(--scene-rect-width) / 500px), calc(var(--scene-rect-height) / 200px));opacity:0}to{opacity:1;transform:translate(0)scale(1)}}.scene-card:hover{border-color:var(--color-border-hover);border-left-color:var(--color-border-hover)}.scene-card.active{background:var(--color-accent-subtle);border-color:var(--color-accent-border);border-left-color:var(--color-accent);border-left-width:var(--border-width-thick);box-shadow:var(--shadow-glow)}.scene-card-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.scene-card-index{min-width:1.5em;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted-raised)}.scene-card-heading{font-size:var(--text-md);font-weight:var(--font-weight-medium);line-height:var(--line-height-ui-compact);color:var(--color-text-primary);flex:1;margin:0}.scene-card-body{padding-left:calc(1.5em + var(--space-3));margin-bottom:var(--space-3);gap:var(--space-3);flex-direction:column;display:flex}.scene-card-meta{gap:var(--space-0-5);flex-direction:column;display:flex}.scene-card-meta-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted-raised);text-transform:uppercase;letter-spacing:var(--letter-spacing-uppercase)}.scene-card-meta-value{font-size:var(--text-sm);color:var(--color-text-secondary)}.scene-card-footer{padding-left:calc(1.5em + var(--space-3));font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted-raised);justify-content:space-between;display:flex}.scene-card-actions{display:flex}.scene-card-action{min-height:var(--control-height-minimum)}.scene-card-ai-metadata{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.scene-card-meta-field{gap:var(--space-1-5);flex-direction:column;display:flex}.scene-card-meta-field:nth-child(3){grid-column:1/-1}.scene-card-meta-field input,.scene-card-meta-field textarea{border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-scrim);width:100%;color:var(--color-text-primary);padding:var(--space-2)}.scene-card-action-preview{font-size:var(--text-sm);color:var(--color-text-muted-raised);line-height:var(--line-height-ui-body);-webkit-line-clamp:3;margin-bottom:var(--space-2);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.scene-card-characters{gap:var(--space-1);margin-bottom:var(--space-2);flex-direction:column;display:flex}.scene-card-character-pills{gap:var(--space-1);flex-wrap:wrap;display:flex}.scene-card-character-pill{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-accent-subtle);border:1px solid var(--color-accent-border);border-radius:var(--radius-pill);padding:var(--space-0-5) var(--space-2);letter-spacing:var(--letter-spacing-uppercase);text-transform:uppercase;white-space:nowrap}.invite-inviter{align-items:center;gap:var(--space-3);margin:0 0 var(--space-4);display:flex}.invite-inviter .login-title{overflow-wrap:anywhere;min-width:0;margin:0}.invite-avatar{box-sizing:border-box;width:var(--size-44);height:var(--size-44);border:var(--border-width-thick) solid var(--presence-colour);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-primary);font-family:var(--font-ui);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-glyph);flex:none;justify-content:center;align-items:center;display:inline-flex}.invite-note{margin:0 0 var(--space-4);border-inline-start:var(--border-width-thick) solid var(--color-accent);font-family:var(--font-script);font-size:var(--text-md);line-height:var(--line-height-ui-reading);color:var(--color-text-primary);white-space:pre-line;overflow-wrap:anywhere;padding-inline-start:var(--space-4)}.invite-address{font-weight:var(--font-weight-medium);color:var(--color-text-secondary);overflow-wrap:anywhere}.invite-actions{gap:var(--space-3);flex-direction:column;display:flex}.hamburger-backdrop{z-index:var(--z-navigator);background:0 0;position:fixed;inset:0}.hamburger-menu{top:calc(var(--space-4) + var(--space-11));right:var(--space-4);z-index:calc(var(--z-navigator) + 1);background:var(--color-surface-raised);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);width:200px;box-shadow:var(--shadow-lg);padding:var(--space-1) 0;position:fixed}.hamburger-item{width:100%;padding:var(--space-1-5) var(--space-3);cursor:pointer;font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-secondary);text-align:left;align-items:center;gap:var(--space-2);transition:background var(--duration-fast), color var(--duration-fast);background:0 0;border:none;display:flex}.hamburger-item:hover{background:var(--color-fill-subtle);color:var(--color-text-primary)}.hamburger-label{flex:1}.hamburger-shortcut{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted-raised);letter-spacing:var(--letter-spacing-kbd);background:0 0;border:none;padding:0}.hamburger-divider{background:var(--color-fill-default);height:1px;margin:var(--space-1) 0}.hamburger-item--danger,.hamburger-item--danger:hover{color:var(--color-error-text)}.mobile-toolbar{display:none}@media (pointer:coarse){.mobile-toolbar{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-3));gap:var(--space-2);padding:var(--space-1);border-radius:var(--radius-pill);background:var(--color-surface-raised);border:1px solid var(--color-border-default);box-shadow:var(--shadow-md);z-index:var(--z-toolbar);width:fit-content;margin:0 auto;display:flex;position:fixed;left:0;right:0;transform:none}.mobile-toolbar-btn{align-items:center;gap:var(--space-2);min-height:var(--control-height-touch);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);color:var(--color-text-secondary);font-family:var(--font-ui);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;display:inline-flex}.mobile-toolbar-btn:active{background:var(--color-accent-subtle);color:var(--color-accent)}.mobile-toolbar-key{font-family:var(--font-mono);font-size:var(--text-md);line-height:var(--line-height-glyph)}.mobile-toolbar-label{letter-spacing:var(--letter-spacing-mono)}:is(.app-shell:has(dialog[open])~.mobile-toolbar,.app-shell:has(dialog[open]) .mobile-toolbar){display:none}}.tour-overlay,.tour-callout{background:0 0;border:none;margin:0;padding:0;overflow:visible}:is(.tour-overlay:popover-open,.tour-callout:popover-open){display:block}.tour-overlay{width:100%;height:100%;z-index:calc(var(--z-modal) + 5);pointer-events:none;position:fixed;inset:0}.tour-overlay-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.tour-overlay-dim{fill:var(--color-overlay-scrim)}.tour-overlay-ring{fill:none;stroke:rgba(var(--color-accent-rgb), var(--opacity-55));stroke-width:1.5px}.tour-overlay-block{cursor:default;pointer-events:auto;background:0 0;border:none;margin:0;padding:0;position:fixed}.tour-overlay-block:focus-visible{outline:none}.tour-overlay-block--hole{cursor:not-allowed}.tour-callout{z-index:calc(var(--z-modal) + 6);width:340px;height:auto;max-width:calc(100vw - var(--space-6));padding:var(--space-4);background:var(--color-surface-raised);color:var(--color-text-primary);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-family:var(--font-ui);transition:top var(--duration-normal) var(--ease-out), left var(--duration-normal) var(--ease-out);position:fixed;inset:auto}.tour-callout-arrow{width:var(--size-14);height:var(--size-14);background:var(--color-surface-raised);border:1px solid var(--color-border-default);position:absolute;transform:rotate(45deg)}.tour-callout--bottom .tour-callout-arrow{top:var(--tour-arrow-overhang);margin-left:var(--tour-arrow-offset);border-bottom:none;border-right:none}.tour-callout--top .tour-callout-arrow{bottom:var(--tour-arrow-overhang);margin-left:var(--tour-arrow-offset);border-top:none;border-left:none}.tour-callout--right .tour-callout-arrow{left:var(--tour-arrow-overhang);margin-top:var(--tour-arrow-offset);border-top:none;border-right:none}.tour-callout--left .tour-callout-arrow{right:var(--tour-arrow-overhang);margin-top:var(--tour-arrow-offset);border-bottom:none;border-left:none}.tour-callout-header{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.tour-callout-count{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-uppercase);color:var(--color-text-muted-raised)}.tour-callout-skip{font-family:inherit;font-size:var(--text-xs);color:var(--color-text-muted-raised);cursor:pointer;text-underline-offset:var(--size-2);background:0 0;border:none;padding:0;text-decoration:underline}.tour-callout-skip:hover{color:var(--color-text-secondary)}.tour-progress{height:var(--size-2);margin:var(--space-2) 0 var(--space-3);background:var(--color-border-default);border-radius:var(--radius-sm);overflow:hidden}.tour-progress-bar{background:var(--color-accent);height:100%;transition:width var(--duration-normal) var(--ease-out)}.tour-callout-title{margin:0 0 var(--space-2);font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.tour-callout-body{font-size:var(--text-sm);line-height:var(--line-height-ui-reading);color:var(--color-text-secondary);margin:0}.tour-callout-body kbd{font-family:var(--font-mono);padding:1px var(--space-1);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font-size:.9em}.tour-callout-extra-actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.tour-btn--secondary{border-color:var(--color-border-default);background:var(--color-surface);color:var(--color-text-secondary)}.tour-btn--secondary:hover{border-color:var(--color-accent-border);color:var(--color-text-primary)}.tour-callout-extra-actions+.tour-callout-actions{margin-top:var(--space-2)}.tour-callout-actions{align-items:center;gap:var(--space-2);margin-top:var(--space-4);display:flex}.tour-waiting{font-size:var(--text-xs);color:var(--color-text-muted-raised);text-align:center;flex:1;font-style:italic}.tour-btn{min-height:var(--size-32);padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-accent-border);background:var(--color-accent-subtle);color:var(--color-text-primary);font-family:inherit;font-size:var(--text-sm);cursor:pointer}.tour-btn:hover:not(:disabled){border-color:var(--color-accent)}.tour-btn--ghost{border-color:var(--color-border-default);color:var(--color-text-secondary);background:0 0;margin-right:auto}.tour-btn:disabled{opacity:var(--opacity-40);cursor:default}@media (prefers-reduced-motion:reduce){.tour-callout,.tour-progress-bar{transition:none}}.chat-toggle{right:var(--space-4);bottom:calc(var(--space-4) + 108px);width:var(--size-44);height:var(--control-height-touch);border:1px solid var(--color-border-default);background:var(--color-surface-raised);color:var(--color-text-muted);cursor:pointer;box-shadow:var(--shadow-md);z-index:var(--z-toolbar);transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:fixed}.chat-toggle:hover,.chat-toggle:focus-visible,.chat-toggle--open,.chat-toggle--unread{color:var(--color-text-primary)}.chat-toggle:focus-visible{outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:var(--focus-ring-offset)}.chat-toggle-badge{top:var(--chat-panel-badge-offset);right:var(--chat-panel-badge-offset);min-width:var(--size-18);height:var(--size-18);padding:0 var(--space-1);border-radius:var(--radius-pill);background:var(--color-error);color:var(--color-text-inverse);font:var(--font-weight-bold) var(--text-xs)/var(--size-18) var(--font-ui);text-align:center;position:absolute}.chat-panel{right:var(--space-4);bottom:calc(var(--space-4) + 160px);width:340px;max-width:calc(100vw - 2 * var(--space-4));background:var(--color-surface-raised);border:1px solid var(--color-border-default);border-radius:var(--radius-md);height:420px;max-height:calc(100vh - 220px);box-shadow:var(--chat-panel-shadow);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-primary);z-index:var(--z-toolbar);flex-direction:column;display:flex;position:fixed;overflow:hidden}.chat-panel-head{padding:var(--space-2) var(--space-3);border-bottom:1px solid color-mix(in srgb, var(--color-text-muted) var(--opacity-20-percent), transparent);font-weight:var(--font-weight-semibold);justify-content:space-between;align-items:center;display:flex}.chat-panel-close{width:var(--size-28);height:var(--control-height-compact);color:var(--color-text-muted-raised);font-size:var(--font-size-18);line-height:var(--line-height-glyph);cursor:pointer;background:0 0;border:none;border-radius:50%}.chat-panel-close:hover,.chat-panel-close:focus-visible{color:var(--color-text-primary);background:color-mix(in srgb, var(--color-text-muted) var(--opacity-12-percent), transparent)}.chat-panel-list{padding:var(--space-2) var(--space-3);gap:var(--space-2);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.chat-panel-load-older{margin:0 0 var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid color-mix(in srgb, var(--color-text-muted) var(--opacity-30-percent), transparent);border-radius:var(--radius-pill);color:var(--color-text-muted-raised);font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;flex:none;align-self:center}.chat-panel-load-older:hover,.chat-panel-load-older:focus-visible{color:var(--color-text-primary)}.chat-panel-load-older:disabled{opacity:var(--opacity-60);cursor:default}.chat-panel-empty{text-align:center;color:var(--color-text-muted-raised);margin:auto 0}.chat-group-head{align-items:baseline;gap:var(--space-1-5);margin-bottom:var(--space-0-5);font-size:var(--text-xs);color:var(--color-text-muted-raised);display:flex}.chat-group-swatch{width:var(--size-8);height:var(--size-8);background:var(--presence-colour,var(--color-text-muted));border-radius:50%;flex:none;align-self:center}.chat-group-author{font-weight:var(--font-weight-semibold);color:var(--presence-colour,var(--color-text-primary))}.chat-group--mine .chat-group-author{color:var(--color-text-primary)}.chat-message{padding:var(--space-0-5) 0 var(--space-0-5) var(--space-3);white-space:pre-wrap;word-break:break-word;line-height:var(--line-height-ui-body);border-radius:var(--radius-md)}.chat-message--mentions-me{background:color-mix(in srgb, var(--color-accent) var(--opacity-10-percent), transparent)}.chat-message--focus{outline:1px solid color-mix(in srgb, var(--color-accent) var(--opacity-60-percent), transparent)}.chat-panel-compose{align-items:flex-end;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid color-mix(in srgb, var(--color-text-muted) var(--opacity-20-percent), transparent);display:flex}.chat-panel-compose .mention-textarea{flex:auto;position:relative}.chat-panel-compose .mention-suggestions{margin:0 0 var(--space-0-5);top:auto;bottom:100%}.chat-panel-input{resize:none;width:100%;padding:var(--space-1-5) var(--space-2);border:1px solid color-mix(in srgb, var(--color-text-muted) var(--opacity-30-percent), transparent);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font:inherit;line-height:var(--line-height-ui-body)}.chat-panel-input:focus{outline:var(--focus-ring-width) solid color-mix(in srgb, var(--color-accent) var(--opacity-50-percent), transparent);outline-offset:0}.chat-panel-send{min-height:var(--size-34);padding:0 var(--space-3);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-surface);font:inherit;font-weight:var(--font-weight-semibold);cursor:pointer;border:none}.chat-panel-send:disabled{opacity:var(--opacity-45);cursor:default}:is(.app-shell:has(dialog[open]) .chat-toggle,.app-shell:has(dialog[open]) .chat-panel){visibility:hidden}@media (pointer:coarse){.chat-toggle{bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-4) + 108px);width:var(--size-48);height:var(--size-48)}.chat-panel{left:var(--space-2);right:var(--space-2);width:auto;max-width:none;bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-4) + 164px);height:min(420px,100vh - 240px)}}@media (width<=600px){.chat-panel{left:var(--space-2);right:var(--space-2);width:auto;max-width:none}}.chat-panel-error{padding:var(--space-1) var(--space-3) var(--space-2);font-size:var(--text-xs);color:var(--color-error-text);margin:0}
