@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/154774486251d342-s.2h39zro8u2-y7.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/12c837ea3f40b0ad-s.2qjvoow5u1cvi.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/83d22a48fd18eae0-s.1ul--qokeajhg.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/bda627dbea9cad1d-s.2ml1_fm6-z2tm.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/0e73f52cc4a5b9d2-s.3khrbpkpgfwvt.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/178026bdf085375b-s.235is1lp2iere.woff2)format("woff2");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:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/cdb3cb33f221588b-s.p.1sxl46gnjqnfy.woff2)format("woff2");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:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/dcc06fc59088004f-s.26afxfjuoa9fw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/14a4f422adc8017e-s.0g2162x3jbg9n.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/294dd5272e5dc576-s.24z3xhdtefne-.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/c0f3072741f3158c-s.0ip40b8wahlg_.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/32ed8f926ffc9cc2-s.0cu0ymttrfic-.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/b6a9aad84d41ea38-s.19z0m3vc7o74g.woff2)format("woff2");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:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/30bdb5bb2b173ee1-s.p.0zb6_9j98fvm-.woff2)format("woff2");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:Literata Fallback;src:local(Times New Roman);ascent-override:99.62%;descent-override:26.07%;line-gap-override:0.0%;size-adjust:118.15%}.literata_6a0e9258-module__kRVmga__className{font-family:Literata,Literata Fallback}.literata_6a0e9258-module__kRVmga__variable{--font-serif:"Literata", "Literata Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_514b80a7-module__erStFa__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_514b80a7-module__erStFa__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--paper:#f3ead3;--paper-raised:#f8f1de;--ink:#1f2433;--ink-soft:#4b4f5e;--ink-faint:#1f243375;--rule:#1f243321;--accent:#8a3324;--accent-wash:#8a332417;--signal:#2f6f68;--warn:#b0701c;--selection:#8a332429;--grain-opacity:.32;--grain-blend:multiply;--shadow:0 10px 30px -12px #3c280a47, 0 1px 0 #fff6 inset;--vignette:radial-gradient(ellipse at 50% 35%, transparent 55%, #78551e1a);--font-ui:var(--font-mono), ui-monospace, "SF Mono", Menlo, monospace;--font-body:var(--font-serif), "Iowan Old Style", Georgia, serif;--topbar-h:52px;--kb:0px;--measure:34rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#16130f;--paper-raised:#1f1b16;--ink:#e7dbc1;--ink-soft:#b5a88f;--ink-faint:#e7dbc16b;--rule:#e7dbc11c;--accent:#e2a55a;--accent-wash:#e2a55a1a;--signal:#7fc4b5;--warn:#e2a55a;--selection:#e2a55a38;--grain-opacity:.1;--grain-blend:screen;--shadow:0 12px 34px -12px #000000b3, 0 1px 0 #fff0d20a inset;--vignette:radial-gradient(ellipse at 50% 30%, #e2a55a09, transparent 60%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#16130f;--paper-raised:#1f1b16;--ink:#e7dbc1;--ink-soft:#b5a88f;--ink-faint:#e7dbc16b;--rule:#e7dbc11c;--accent:#e2a55a;--accent-wash:#e2a55a1a;--signal:#7fc4b5;--warn:#e2a55a;--selection:#e2a55a38;--grain-opacity:.1;--grain-blend:screen;--shadow:0 12px 34px -12px #000000b3, 0 1px 0 #fff0d20a inset;--vignette:radial-gradient(ellipse at 50% 30%, #e2a55a09, transparent 60%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--topbar-h) + 32px)}body{background:var(--paper);background-image:var(--vignette);min-height:100dvh;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;margin:0;transition:background-color .4s,color .4s}body:before{content:"";pointer-events:none;z-index:0;opacity:var(--grain-opacity);mix-blend-mode:var(--grain-blend);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .36 0 0 0 0 .2 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}::selection{background:var(--selection)}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}:focus-visible{outline:1px solid var(--accent);outline-offset:2px;border-radius:6px}.label{font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-size:10.5px;font-weight:400}.icon-btn{width:40px;height:40px;color:var(--ink-soft);border-radius:10px;place-items:center;transition:color .2s,background-color .2s;display:inline-grid}.icon-btn:hover{color:var(--ink);background:var(--accent-wash)}.app{z-index:1;position:relative}.progress{z-index:30;background:var(--accent);transform-origin:0;opacity:.8;height:1px;transition:transform .15s linear;position:fixed;top:0;left:0;right:0}.topbar{z-index:20;height:calc(var(--topbar-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(8px, env(safe-area-inset-right)) 0 max(8px, env(safe-area-inset-left));background:color-mix(in srgb, var(--paper) 82%, transparent);-webkit-backdrop-filter:blur(10px)saturate(1.1);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:8px;transition:opacity .6s;display:flex;position:fixed;top:0;left:0;right:0}.topbar-left,.topbar-right{align-items:center;gap:4px;min-width:0;display:flex}.wordmark{border-radius:10px;place-items:center;width:36px;height:36px;margin-right:4px;display:inline-grid}.wordmark svg{display:block}.topbar-title{font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;border-left:1px solid var(--rule);min-width:0;padding-left:10px;font-size:10.5px;overflow:hidden}.words{white-space:nowrap;padding:0 8px}.status{font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;align-items:center;gap:7px;padding:0 8px;font-size:10.5px;display:inline-flex}.status-dot{background:var(--signal);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in srgb, var(--signal) 18%, transparent);border-radius:50%;transition:background-color .3s,box-shadow .3s}.status-unsaved .status-dot{box-shadow:inset 0 0 0 1px var(--accent);background:0 0}.status-saving .status-dot{background:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);animation:1s ease-in-out infinite pulse}.status-offline .status-dot{background:var(--warn);animation:1.6s ease-in-out infinite pulse}.status-conflict{color:var(--accent)}.status-conflict .status-dot{background:var(--accent)}@keyframes pulse{50%{opacity:.35}}.is-typing .topbar,.is-typing .progress{opacity:.22}.is-typing .topbar:hover{opacity:1}.page{padding:calc(var(--topbar-h) + env(safe-area-inset-top) + 40px) 22px calc(40vh + var(--kb) + env(safe-area-inset-bottom))}.prose{max-width:var(--measure);font-family:var(--font-body);font-optical-sizing:auto;font-variant-ligatures:common-ligatures;hanging-punctuation:first;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word;caret-color:var(--accent);counter-reset:part chapter;outline:none;margin:0 auto;font-size:1.125rem;line-height:1.72}.prose.loading{min-height:60vh}.prose>*+*{margin-top:0}.prose p{margin:0}.prose p+p{text-indent:1.5em}.prose h1,.prose h2,.prose h3{letter-spacing:-.01em;text-wrap:balance;scroll-margin-top:calc(var(--topbar-h) + 32px);font-weight:450;line-height:1.25}.prose h1{text-align:center;margin:1.5rem 0 2.75rem;font-size:2.1rem;font-weight:400}.prose h1:after{content:"";background:var(--accent);width:36px;height:1px;margin:1.1rem auto 0;display:block}.prose h2{counter-increment:part;text-align:center;margin:5rem 0 3.25rem;font-size:1.75rem;font-weight:400}.prose h2:not(.is-empty):before{content:"Part " counter(part, upper-roman);font-family:var(--font-ui);letter-spacing:.32em;text-transform:uppercase;color:var(--accent);margin-bottom:.8rem;font-size:11px;font-weight:400;display:block}.prose h2:after{content:"";background:var(--rule);width:24px;height:1px;margin:1.1rem auto 0;display:block}.prose h3{counter-increment:chapter;margin:3.5rem 0 1.4rem;font-size:1.5rem}.prose h3:not(.is-empty):before{content:counter(chapter, decimal-leading-zero) " —";font-family:var(--font-ui);letter-spacing:.2em;color:var(--accent);margin-bottom:.55rem;font-size:10.5px;font-weight:400;display:block}.prose h2+h3{margin-top:0}.prose h1:first-child,.prose h2:first-child,.prose h3:first-child{margin-top:.5rem}.prose blockquote{border-left:1px solid var(--accent);color:var(--ink-soft);margin:1.4rem 0;padding:.1rem 0 .1rem 1.2rem;font-style:italic}.prose ul,.prose ol{margin:1rem 0;padding-left:1.4em}.prose li::marker{color:var(--ink-faint);font-family:var(--font-ui);font-size:.8em}.prose li p+p{text-indent:0}.prose strong{font-weight:600}.prose s{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-decoration-thickness:1px}.prose a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}.prose code{font-family:var(--font-ui);background:var(--accent-wash);border-radius:4px;padding:.1em .3em;font-size:.82em}.prose pre{font-family:var(--font-ui);border:1px solid var(--rule);border-radius:8px;margin:1.4rem 0;padding:1rem 1.1rem;font-size:.85rem;line-height:1.6;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose .comment-block{border-left:1px dashed var(--accent);color:var(--ink-soft);white-space:pre-wrap;margin:1.2rem 0;padding:.15rem 0 .15rem .9rem;font-size:.9em;font-style:italic;line-height:1.6}.prose .comment-inline{color:var(--ink-soft);background:var(--accent-wash);border-bottom:1px dashed color-mix(in srgb, var(--accent) 60%, transparent);border-radius:2px;padding:0 .2em;font-size:.9em;font-style:italic}.prose hr{text-align:center;border:0;height:auto;margin:2.2rem 0;line-height:1}.prose hr:after{content:"⁂";color:var(--accent);letter-spacing:0;font-size:1.35rem}.prose hr+p{text-indent:0}.prose hr.ProseMirror-selectednode:after{outline:1px solid var(--accent);outline-offset:6px;border-radius:4px}.prose p.is-empty:before,.prose h1.is-empty:before,.prose h2.is-empty:before,.prose h3.is-empty:before{content:attr(data-placeholder);float:left;pointer-events:none;height:0;color:var(--ink-faint);font-style:italic}.toolbar{left:0;right:0;bottom:var(--kb);z-index:20;padding:4px max(6px, env(safe-area-inset-right)) max(4px, env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left));background:color-mix(in srgb, var(--paper-raised) 88%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.1);border-top:1px solid var(--rule);transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .3s;position:fixed}.toolbar-scroll{scrollbar-width:none;justify-content:safe center;align-items:center;gap:2px;display:flex;overflow-x:auto}.toolbar-scroll::-webkit-scrollbar{display:none}.tool{width:44px;height:44px;color:var(--ink-soft);border-radius:10px;flex:none;place-items:center;transition:color .15s,background-color .15s;display:grid;position:relative}.tool:hover:not(:disabled){color:var(--ink);background:var(--accent-wash)}.tool[aria-pressed=true]{color:var(--accent);background:var(--accent-wash)}.tool[aria-pressed=true]:after{content:"";background:currentColor;border-radius:50%;width:3px;height:3px;position:absolute;bottom:5px}.tool:disabled{opacity:.3;cursor:default}.glyph{font-family:var(--font-body);font-size:19px;line-height:1}.glyph-h{font-family:var(--font-ui);letter-spacing:.04em;font-size:11.5px;font-weight:500}.tool-sep{background:var(--rule);flex:none;width:1px;height:18px;margin:0 4px}.scrim{z-index:40;opacity:0;pointer-events:none;background:#140e0647;transition:opacity .3s;position:fixed;inset:0}.scrim.is-open{opacity:1;pointer-events:auto}.outline{z-index:50;width:min(84vw,320px);padding:calc(env(safe-area-inset-top) + 8px) 0 calc(env(safe-area-inset-bottom) + 14px) env(safe-area-inset-left);background:var(--paper-raised);border-right:1px solid var(--rule);box-shadow:var(--shadow);flex-direction:column;transition:transform .35s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-102%)}.outline.is-open{transform:none}.outline-head{min-height:var(--topbar-h);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;padding:0 8px 8px 20px;display:flex}.outline-body{overscroll-behavior:contain;flex:1;overflow-y:auto}.outline-list{margin:0;padding:12px 0;list-style:none}.outline-item{text-align:left;width:100%;color:var(--ink-soft);font-family:var(--font-body);grid-template-columns:2.2em 1fr;align-items:baseline;gap:4px;padding:9px 20px;font-size:15px;line-height:1.35;transition:color .2s,background-color .2s;display:grid;position:relative}.outline-item:hover{color:var(--ink);background:var(--accent-wash)}.outline-item.is-title{color:var(--ink)}.outline-item.is-part{color:var(--ink);grid-template-columns:1fr;gap:2px;margin-top:10px}.outline-item.is-part .outline-num{color:var(--accent);letter-spacing:.24em;text-transform:uppercase}.outline-item.is-part .outline-text{font-style:italic}.outline-item.is-active{color:var(--accent)}.outline-item.is-active:before{content:"";background:var(--accent);width:2px;position:absolute;top:10px;bottom:10px;left:0}.outline-num{font-family:var(--font-ui);letter-spacing:.1em;color:var(--ink-faint);font-size:10.5px}.outline-item.is-active .outline-num{color:var(--accent)}.outline-text{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.outline-empty{color:var(--ink-faint);margin:0;padding:20px;font-size:15px;font-style:italic}.outline-foot{border-top:1px solid var(--rule);padding:12px 20px 0}.drawer-back,.drawer-action{height:36px;font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);border-radius:8px;align-items:center;gap:4px;margin-left:-6px;padding:0 10px 0 4px;font-size:10.5px;transition:color .2s,background-color .2s;display:inline-flex}.drawer-action{color:var(--accent);margin-left:auto;margin-right:4px;padding:0 10px 0 6px}.drawer-back:hover,.drawer-action:hover{color:var(--accent);background:var(--accent-wash)}.drawer-back svg,.drawer-action svg{width:16px;height:16px}.library-row{align-items:center;display:flex;position:relative}.library-item{min-width:0;color:var(--ink);flex-direction:column;flex:1;gap:3px;padding:10px 4px 10px 20px;text-decoration:none;transition:background-color .2s,color .2s;display:flex}.library-row:hover{background:var(--accent-wash)}.library-item:hover .library-title{color:var(--accent)}.library-title{text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:1.3;transition:color .2s;overflow:hidden}.library-meta{font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-size:10px}.library-delete{color:var(--ink-faint);flex:none;margin-right:8px}.library-delete:hover{color:var(--accent)}@media (hover:hover){.library-delete{opacity:0}.library-row:hover .library-delete,.library-delete:focus-visible{opacity:1}}.library-confirm{border-left:2px solid var(--accent);width:100%;padding:10px 12px 10px 20px;font-size:15px;line-height:1.35}.library-confirm em{color:var(--accent)}.library-confirm-actions{justify-content:flex-end;gap:6px;margin-top:8px;display:flex}.library-confirm-actions button,.btn{font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--rule);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:11px;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.library-confirm-actions button:hover,.btn:hover{border-color:color-mix(in srgb, var(--ink) 30%, transparent)}.library-confirm-actions button.danger{color:var(--paper);background:var(--accent);border-color:var(--accent)}.welcome{max-width:var(--measure);flex-direction:column;align-items:flex-start;margin:0 auto;padding-top:8vh;display:flex}.welcome-title{letter-spacing:-.02em;margin:1.4rem 0 .8rem;font-size:clamp(2.4rem,9vw,3.4rem);font-style:italic;font-weight:400;line-height:1.05}.welcome-title:after{content:"";background:var(--accent);width:36px;height:1px;margin-top:1.4rem;display:block}.welcome-lede{color:var(--ink-soft);max-width:28em;margin:.4rem 0 2.2rem;font-size:1.125rem;line-height:1.65}.welcome-actions{flex-wrap:wrap;gap:10px;display:flex}.btn{min-height:46px;color:inherit;border-radius:10px;padding:0 18px 0 14px}.btn svg{width:18px;height:18px}.btn-primary{color:var(--paper);background:var(--ink);border-color:var(--ink)}.btn-primary:hover{background:var(--accent);border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:progress}.welcome-error{border-left:2px solid var(--accent);color:var(--accent);margin:1.4rem 0 0;padding-left:12px;font-style:italic}.welcome-hint{margin-top:3rem}@media (hover:none){.welcome-hint{display:none}}.welcome.is-shelved{max-width:64rem}.settings .lock{border-top:0;margin-top:.6rem}.shelf{grid-template-columns:repeat(auto-fill,minmax(136px,1fr));align-self:stretch;gap:38px 22px;margin:3.2rem 0 0;padding:0;list-style:none;display:grid}@media (min-width:720px){.shelf{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:52px 36px}}.book{min-width:0;position:relative}.book-link{color:inherit;border-radius:4px;flex-direction:column;gap:14px;text-decoration:none;display:flex}.book-cover{aspect-ratio:2/3;background:var(--cloth);transform-origin:0;border-radius:2px 5px 5px 2px;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s,opacity .3s;display:block;position:relative;overflow:hidden;box-shadow:0 1px 1px #00000024,0 4px 10px -6px #1e120459,0 18px 30px -16px #1e120499;container-type:inline-size}.book-link:hover .book-cover,.book-link:focus-visible .book-cover{transform:perspective(900px)rotateY(-9deg)translateY(-3px);box-shadow:0 1px 1px #00000024,8px 8px 16px -8px #1e120466,14px 26px 36px -18px #1e1204a6}.book-cover img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.book-sheen{pointer-events:none;background:linear-gradient(90deg,#0000004d 0,#0000001a 2.4%,#ffffff29 3.4%,#fff0 7%,#0000 95%,#0000001a 100%),linear-gradient(#ffffff12,#0000 38%,#0000001f);position:absolute;inset:0;box-shadow:inset 0 0 0 1px #0000001a}.book-plate{text-align:center;color:#efe3c6;background:radial-gradient(at 50% 28%,#ffffff17,#0000 70%);flex-direction:column;justify-content:center;align-items:center;padding:20% 16% 24% 19%;display:flex;position:absolute;inset:0}.book-plate:before{content:"";border:1px solid #efe3c652;border-radius:1px;position:absolute;inset:6% 7% 6% 10%}.book-plate:after{content:"";background:#efe3c699;width:18%;height:1px;margin-top:1.1em}.book-plate-title{-webkit-line-clamp:5;overflow-wrap:anywhere;font-family:var(--font-body);letter-spacing:-.005em;text-wrap:balance;-webkit-box-orient:vertical;font-size:clamp(.85rem,11.5cqi,1.6rem);font-style:italic;line-height:1.15;display:-webkit-box;overflow:hidden}.book-caption{flex-direction:column;gap:4px;min-width:0;padding-right:32px;display:flex}.book-title{font-family:var(--font-body);color:var(--ink);-webkit-line-clamp:2;text-wrap:pretty;-webkit-box-orient:vertical;font-size:1rem;line-height:1.3;display:-webkit-box;overflow:hidden}.book-link:hover .book-title{color:var(--accent)}.book-meta{font-family:var(--font-ui);letter-spacing:.06em;color:var(--ink-faint);font-size:10.5px}.book-more{width:36px;height:36px;position:absolute;bottom:0;right:-10px}.book-more svg{width:18px;height:18px}.popover-menu{z-index:25;background:var(--paper-raised);border:1px solid var(--rule);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;padding:6px;display:flex;position:absolute}.popover-menu>button{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;text-align:left;color:var(--ink-soft);border-radius:7px;align-items:center;gap:10px;padding:10px 12px;font-size:11px;display:flex}.popover-menu>button:hover{color:var(--ink);background:var(--accent-wash)}.popover-menu>button.danger,.popover-menu>button.is-on{color:var(--accent)}.popover-menu>button:disabled{opacity:.5;cursor:progress}.popover-menu svg{flex:none;width:16px;height:16px}.book-menu{top:40%;left:-4px;right:-4px}.book-confirm{padding:8px 8px 4px;font-size:.95rem;line-height:1.4}.book.is-drop .book-cover{outline:1.5px dashed var(--accent);outline-offset:5px}.book.is-binding .book-cover{opacity:.5;cursor:progress}.drawer-tabs{gap:18px;padding:14px 20px 4px;display:flex}.drawer-tabs button{font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid #0000;padding:6px 0;font-size:10.5px;transition:color .2s,border-color .2s}.drawer-tabs button:hover{color:var(--ink-soft)}.drawer-tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.history-new{font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:10px 20px 4px;padding:8px 0;font-size:10.5px}.panel-actions{gap:22px;padding:0 20px;display:flex}.panel-actions .history-new{margin:10px 0 4px}.panel-actions .history-new:disabled{opacity:.5;cursor:progress}.panel-notice{color:var(--signal)}.outline-body:has(>.drop-panel){flex-direction:column;display:flex}.drop-panel{flex:1 0 auto;position:relative}.drop-panel.is-drop{outline:1px dashed var(--accent);outline-offset:-10px;border-radius:14px}.drop-hint{z-index:1;background:color-mix(in srgb, var(--paper) 86%, transparent);color:var(--accent);pointer-events:none;border-radius:14px;place-items:center;margin:0;font-size:1.15rem;font-style:italic;display:grid;position:absolute;inset:10px}.history-save{flex-direction:column;gap:8px;margin:10px 20px 6px;display:flex}.history-save input{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:8px;outline:none;min-height:42px;padding:0 12px;font-size:15px}.history-save input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.library-row>.history-save{flex:1}.library-rename:not(:last-child){margin-right:0}.history-save-actions{justify-content:flex-end;gap:6px;display:flex}.history-save-actions .btn{min-height:38px;padding:0 12px}.version-item{text-align:left}.version-item.is-auto .library-title{color:var(--ink-soft);font-style:italic}.version-item.is-active .library-title{color:var(--accent)}.version-item.is-active{box-shadow:inset 2px 0 0 var(--accent)}.outline-item.is-note.lvl-3 .outline-text{padding-left:1em;font-size:14px;font-style:italic}.prose.is-notes h2,.prose.is-notes h3{text-align:left;counter-increment:none;margin:2.2rem 0 .8rem}.prose.is-notes h2{font-size:1.35rem}.prose.is-notes h3{font-size:1.12rem;font-style:italic}.prose.is-notes h2:not(.is-empty):before,.prose.is-notes h3:not(.is-empty):before,.prose.is-notes h2:after{content:none}.prose.is-notes p+p{text-indent:0;margin-top:.8em}.preview-bar{z-index:15;top:calc(var(--topbar-h) + env(safe-area-inset-top) + 10px);max-width:var(--measure);background:color-mix(in srgb, var(--paper-raised) 92%, transparent);-webkit-backdrop-filter:blur(8px);border:1px solid var(--rule);border-left:2px solid var(--accent);box-shadow:var(--shadow);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;margin:-16px auto 36px;padding:10px 12px 10px 16px;display:flex;position:sticky}.preview-what{flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;display:flex}.preview-label{font-size:1.05rem;font-style:italic}.preview-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin-left:auto;display:flex}.preview-actions .btn{min-height:38px;padding:0 12px}.preview-confirm{color:var(--ink-soft);font-size:.95rem;font-style:italic}.prose.is-preview{caret-color:#0000}.lock{border-top:1px solid var(--rule);align-self:stretch;margin-top:3.5rem;padding-top:1.4rem}.lock-head{color:var(--ink-soft);align-items:center;gap:8px;display:flex}.lock-head svg{width:16px;height:16px}.lock-head h2{margin:0}.lock-state{font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--rule);border-radius:999px;margin-left:auto;padding:3px 8px;font-size:10.5px}.lock-state.is-locked{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.lock-text{color:var(--ink-soft);margin:.8rem 0 1.1rem;font-size:1rem;line-height:1.6}.lock-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.lock-form{flex-direction:column;gap:12px;max-width:22rem;display:flex}.unlock-form{flex-flow:wrap;align-items:flex-end;max-width:none}.unlock-form .field{flex:14rem}.field{flex-direction:column;gap:6px;display:flex}.field input{font:inherit;color:var(--ink);background:var(--paper-raised);border:1px solid var(--rule);border-radius:10px;outline:none;min-height:46px;padding:0 14px;font-size:1.05rem;transition:border-color .2s,box-shadow .2s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.field input[aria-invalid=true]{border-color:var(--accent)}.lock-hint{color:var(--ink-faint);margin:-2px 0 0;font-size:.9rem;font-style:italic}.lock-warn{color:var(--warn)}.lock-notice{border-left:2px solid var(--signal);color:var(--ink-soft);margin:1rem 0 0;padding-left:12px;font-style:italic}.btn-quiet{color:var(--ink-soft);border-color:#0000}.btn-danger{color:var(--paper);background:var(--accent);border-color:var(--accent)}.btn svg{flex:none}.icon-btn.is-on{color:var(--accent)}a.status,a.wordmark,a.icon-btn,a.btn{text-decoration:none}.status-locked{color:var(--accent)}.status-locked .status-dot{box-shadow:inset 0 0 0 1.5px var(--accent);background:0 0;border-radius:1px}.dropzone{z-index:60;background:color-mix(in srgb, var(--paper) 78%, transparent);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;place-items:center;padding:24px;transition:opacity .2s;display:grid;position:fixed;inset:0}.dropzone.is-over{opacity:1}.dropzone-inner{border:1px dashed var(--accent);border-radius:14px;flex-direction:column;align-items:center;gap:10px;width:min(100%,26rem);padding:48px 24px;display:flex}.dropzone-text{font-size:1.3rem;font-style:italic}.toast{z-index:25;left:50%;top:calc(var(--topbar-h) + env(safe-area-inset-top) + 12px);background:var(--paper-raised);border:1px solid var(--rule);border-left:2px solid var(--accent);max-width:calc(100% - 24px);box-shadow:var(--shadow);cursor:pointer;border-radius:10px;padding:10px 14px;font-style:italic;position:fixed;transform:translate(-50%)}.conflict{z-index:25;top:calc(var(--topbar-h) + env(safe-area-inset-top) + 10px);background:var(--paper-raised);border:1px solid var(--rule);border-left:2px solid var(--accent);max-width:30rem;box-shadow:var(--shadow);border-radius:10px;margin:0 auto;padding:14px 16px;font-size:15px;position:fixed;left:12px;right:12px}.conflict p{margin:0 0 12px}.conflict .label{color:var(--accent);margin-right:10px}.conflict-actions{justify-content:flex-end;gap:8px;display:flex}.conflict-actions button{font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--rule);border-radius:8px;padding:9px 12px;font-size:11px}.conflict-actions button.primary{color:var(--paper);background:var(--ink);border-color:var(--ink)}:root[data-focus] .app-editor .topbar,:root[data-focus] .app-editor .progress,:root[data-focus] .app-editor .outline,:root[data-focus] .app-editor .scrim{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s,visibility 0s linear .5s}:root[data-focus] .app-editor .page{padding-left:22px}:root[data-focus] .app-editor:not(.toolbar-shown) .toolbar{opacity:0;pointer-events:none;transform:translateY(calc(100% + 24px))}.focus-controls{z-index:22;right:max(12px, env(safe-area-inset-right));bottom:calc(var(--kb) + max(12px, env(safe-area-inset-bottom)));gap:6px;transition:bottom .35s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed}.focus-btn{width:36px;height:36px;color:var(--ink-soft);background:color-mix(in srgb, var(--paper-raised) 70%, transparent);border:1px solid var(--rule);-webkit-backdrop-filter:blur(6px);opacity:.4;border-radius:50%;place-items:center;transition:opacity .3s,color .2s;display:grid}.focus-btn:hover,.focus-btn:focus-visible{opacity:1;color:var(--ink)}.focus-btn[aria-pressed=true]{opacity:.9;color:var(--accent)}.focus-btn svg{width:16px;height:16px}.focus-glyph{font-family:var(--font-body);font-size:14px;font-style:italic;line-height:1}@media (hover:none){.focus-btn{opacity:.6}}@media (max-width:719px){.toolbar-shown .focus-controls{bottom:calc(var(--kb) + 62px + env(safe-area-inset-bottom))}}.topbar-tools{align-items:center;gap:4px;display:none}.editor-menu{position:relative}.editor-menu-list{min-width:232px;top:calc(100% + 6px);right:0}.editor-menu-head{border-bottom:1px solid var(--rule);margin:4px 12px 6px;padding-bottom:10px}.editor-menu-value{color:var(--ink-faint);margin-left:auto;padding-left:12px}@media (max-width:719px){.status-label{display:none}}@media (min-width:720px){.topbar-tools{display:flex}.editor-menu{display:none}:root{--topbar-h:56px}.prose{font-size:1.1875rem}.prose h1{font-size:2.5rem}.page{padding-top:calc(var(--topbar-h) + 72px)}.topbar{padding-left:16px;padding-right:16px}.toolbar{left:50%;right:auto;bottom:calc(var(--kb) + 22px);border:1px solid var(--rule);box-shadow:var(--shadow);border-radius:999px;padding:5px 8px;transform:translate(-50%)}:root[data-focus] .app-editor:not(.toolbar-shown) .toolbar{transform:translate(-50%,calc(100% + 40px))}.tool{border-radius:999px;width:40px;height:40px}}@media (min-width:1180px){.outline{top:calc(var(--topbar-h) + env(safe-area-inset-top));border-right:1px solid var(--rule);width:272px;box-shadow:none;background:0 0;padding-top:28px;transition:opacity .6s;transform:none}.outline-head{min-height:0;padding:0 20px 12px}.outline-close,.outline-toggle,.scrim{display:none}.is-typing .outline{opacity:.35}.is-typing .outline:hover{opacity:1}.page{padding-left:272px}.page-bare{padding-left:22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.construct-toggle.is-on{color:var(--accent)}.construct{z-index:50;width:min(100vw,420px);padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 0;background:var(--paper-raised);border-left:1px solid var(--rule);box-shadow:var(--shadow);visibility:hidden;flex-direction:column;transition:transform .35s cubic-bezier(.2,.8,.2,1),visibility 0s linear .35s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(102%)}.construct.is-open{visibility:visible;transition:transform .35s cubic-bezier(.2,.8,.2,1);transform:none}.construct-head{min-height:var(--topbar-h);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:8px;padding:0 8px 0 20px;display:flex}.construct-title{align-items:baseline;gap:10px;min-width:0;display:flex}.construct-name{font-family:var(--font-body);color:var(--ink);font-size:19px;font-style:italic}.construct-head-actions{gap:2px;display:flex}.construct-head-actions .icon-btn:disabled{opacity:.35;pointer-events:none}.construct-config{border-bottom:1px solid var(--rule);flex-wrap:wrap;gap:6px 16px;padding:8px 20px;display:flex}.construct-select{align-items:baseline;gap:8px;display:flex}.construct-select select{max-width:14em;font-family:var(--font-ui);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:12px}.construct-select select option{background:var(--paper-raised);color:var(--ink)}.construct-log{overscroll-behavior:contain;flex-direction:column;flex:1;gap:10px;padding:18px 20px 12px;display:flex;overflow-y:auto}.construct-empty{color:var(--ink-soft);font-family:var(--font-body);margin:auto 0;font-size:15px;font-style:italic;line-height:1.5}.construct-empty p{margin:0 0 .8em}.construct-msg{font-family:var(--font-body);color:var(--ink);overflow-wrap:anywhere;font-size:15.5px;line-height:1.5}.construct-msg p{margin:0}.construct-msg.is-user{background:var(--accent-wash);white-space:pre-wrap;border-radius:14px 14px 4px;align-self:flex-end;max-width:88%;margin-top:8px;padding:9px 14px}.construct-quote{border-left:2px solid var(--accent);color:var(--ink-soft);white-space:pre-wrap;max-height:6.5em;margin:0 0 6px;padding-left:10px;font-size:14px;font-style:italic;overflow:hidden}.construct-md>:first-child{margin-top:0}.construct-md>:last-child{margin-bottom:0}.construct-md p,.construct-md ul,.construct-md ol,.construct-md blockquote,.construct-md pre{margin:0 0 .7em}.construct-md ul,.construct-md ol{padding-left:1.3em}.construct-md li+li{margin-top:.2em}.construct-md h1,.construct-md h2,.construct-md h3,.construct-md h4{margin:1em 0 .4em;font-size:1em;font-weight:600}.construct-md blockquote{border-left:2px solid var(--rule);color:var(--ink-soft);padding-left:12px;font-style:italic}.construct-md code{font-family:var(--font-ui);background:var(--accent-wash);border-radius:4px;padding:1px 4px;font-size:.82em}.construct-md pre{background:var(--accent-wash);border-radius:8px;padding:10px 12px;overflow-x:auto}.construct-md pre code{background:0 0;padding:0}.construct-md a{color:var(--accent)}.construct-md hr{border:none;border-top:1px solid var(--rule);margin:1em 0}.construct-md table{border-collapse:collapse;margin:0 0 .7em;font-size:.92em}.construct-md th,.construct-md td{border:1px solid var(--rule);text-align:left;padding:3px 8px}.construct-thought summary{cursor:pointer;list-style:none}.construct-thought summary::-webkit-details-marker{display:none}.construct-thought summary:before{content:"› "}.construct-thought[open] summary:before{content:"⌄ "}.construct-thought p{border-left:1px solid var(--rule);color:var(--ink-faint);font-family:var(--font-body);white-space:pre-wrap;margin:6px 0 0;padding-left:10px;font-size:14px;font-style:italic;line-height:1.45}.construct-tool{font-family:var(--font-ui);color:var(--ink-faint);align-items:baseline;gap:8px;font-size:11.5px;line-height:1.4;display:flex}.construct-tool+.construct-tool{margin-top:-6px}.construct-tool button{color:var(--ink-soft);text-align:left;border-bottom:1px solid var(--rule)}.construct-tool button:hover{color:var(--accent);border-bottom-color:currentColor}.construct-tool-dot{background:var(--signal);border-radius:50%;flex:none;width:5px;height:5px;transform:translateY(-1px)}.construct-tool.is-pending .construct-tool-dot,.construct-tool.is-in_progress .construct-tool-dot{background:var(--warn);animation:1.2s ease-in-out infinite construct-pulse}.construct-tool.is-failed{color:var(--accent)}.construct-tool.is-failed .construct-tool-dot{background:var(--accent)}.construct-plan{border:1px solid var(--rule);font-family:var(--font-ui);color:var(--ink-soft);border-radius:8px;margin:0;padding:8px 12px 8px 30px;font-size:11.5px;line-height:1.6}.construct-plan .is-completed{color:var(--ink-faint);text-decoration:line-through}.construct-plan .is-in_progress{color:var(--ink)}.construct-notice{font-family:var(--font-ui);color:var(--ink-faint);margin:0;font-size:11.5px}.construct-notice.is-error,.construct-error{color:var(--accent)}.construct-error{font-family:var(--font-ui);border-top:1px solid var(--rule);margin:0;padding:8px 20px;font-size:11.5px}.construct-error button{color:var(--ink);border-bottom:1px solid}.construct-working{background:var(--accent);border-radius:50%;width:5px;height:5px;margin:4px 0 0 1px;animation:1.2s ease-in-out infinite construct-pulse}@keyframes construct-pulse{50%{opacity:.25}}.construct-input{margin:0 12px calc(12px + env(safe-area-inset-bottom) + var(--kb));background:var(--paper);border:1px solid var(--rule);border-radius:14px;align-items:flex-end;gap:8px;padding:6px 6px 6px 14px;transition:border-color .2s,box-shadow .2s;display:flex}.construct-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.construct-input textarea{field-sizing:content;resize:none;min-height:34px;max-height:10.5em;font-family:var(--font-body);color:var(--ink);background:0 0;border:none;outline:none;flex:1;padding:7px 0;font-size:16px;line-height:1.35}.construct-input textarea::placeholder{color:var(--ink-faint);font-style:italic}.construct-send{width:34px;height:34px;color:var(--paper);background:var(--ink);border-radius:10px;flex:none;place-items:center;transition:background-color .2s,opacity .2s;display:grid}.construct-send:hover{background:var(--accent)}.construct-send:disabled{opacity:.25;pointer-events:none}.construct-log[hidden]{display:none}.construct-head-actions .icon-btn.is-on{color:var(--accent)}.construct-chats{overscroll-behavior:contain;flex:1;margin:0;padding:8px 0;list-style:none;overflow-y:auto}.construct-chats li{align-items:center;padding-right:8px;display:flex}.construct-chat{text-align:left;flex-direction:column;flex:1;gap:3px;min-width:0;padding:10px 12px 10px 20px;transition:background-color .2s;display:flex}.construct-chat:hover{background:var(--accent-wash)}.construct-chat:disabled{opacity:.5;pointer-events:none}.construct-chat-title{font-family:var(--font-body);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.construct-chats .is-current .construct-chat-title{color:var(--accent)}.construct-chat-delete{opacity:.5;flex:none}.construct-chat-delete:hover{opacity:1}.construct-chat-confirm{font-family:var(--font-ui);color:var(--ink-soft);flex:1;align-items:center;gap:12px;padding:12px 12px 12px 20px;font-size:11.5px;display:flex}.construct-chat-confirm span{flex:1}.construct-chat-confirm button{color:var(--ink);border-bottom:1px solid}.construct-chat-confirm .is-danger{color:var(--accent)}:root[data-focus] .app-editor .construct{visibility:hidden}@media (min-width:1180px){.construct{top:calc(var(--topbar-h) + env(safe-area-inset-top));width:380px;box-shadow:none;background:var(--paper);padding-top:0}.construct-head{min-height:0;padding-top:8px;padding-bottom:8px}.construct-scrim{display:none}.construct-open .page{padding-right:380px}}.codex-panel{display:none}@media (min-width:1180px){:root{--codex-w:clamp(360px, 30vw, 520px)}.codex-panel{top:calc(var(--topbar-h) + env(safe-area-inset-top));z-index:15;width:var(--codex-w);background:var(--paper);border-left:1px solid var(--rule);flex-direction:column;transition:opacity .6s;display:flex;position:fixed;bottom:0;right:0}.codex-open .page{padding-right:var(--codex-w)}.is-typing .codex-panel:not(:focus-within){opacity:.35}.is-typing .codex-panel:hover{opacity:1}}@media (min-width:1800px){.construct-open .codex-panel{right:380px}.codex-open.construct-open .page{padding-right:calc(380px + var(--codex-w))}}.codex-panel-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:8px;padding:8px 8px 8px 20px;display:flex}.codex-panel-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--ink-soft);overflow:hidden}.codex-panel-head .construct-head-actions{flex-shrink:0;align-items:center}.codex-panel-conflict{margin:12px;position:static}.codex-panel-body{overscroll-behavior:contain;flex:1;padding:36px 28px 40vh;overflow-y:auto}.codex-panel-body .prose{font-size:1.0625rem}:root[data-focus] .app-editor .codex-panel{visibility:hidden}:root[data-focus] .app-editor.codex-open .page{padding-right:22px}@media (min-width:1180px){.app-editor{--right-rail:0px}.app-editor.construct-open{--right-rail:380px}.app-editor.codex-open{--right-rail:var(--codex-w)}.app-editor .toolbar{left:calc(50% + (272px - var(--right-rail)) / 2)}:root[data-focus] .app-editor .toolbar{left:50%}}@media (min-width:1800px){.app-editor.codex-open.construct-open{--right-rail:calc(380px + var(--codex-w))}}
