@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/mainspring/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/mainspring/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");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:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/mainspring/_astro/instrument-serif-latin-400-normal.DnYpCC2O.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:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/mainspring/_astro/instrument-serif-latin-400-italic.DKMiL14s.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}:root{--font-sans:"Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Instrument Serif", Georgia, "Times New Roman", serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--text-xs:.8125rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem);--text-label:.75rem;--leading:1.5;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--gap-panel:8px;--size-topbar:3.75rem;--size-tabbar:3.75rem;--size-tap:2.75rem;--size-row:2.25rem;--size-outline:20rem;--size-inspector:20rem;--size-rail:3rem;--tabbar-clearance:calc(var(--size-tabbar) + 18px + env(safe-area-inset-bottom));--size-gantt-names:18.75rem;--size-control:2.25rem;--size-divider:.75rem;--motion-fast:.15s;--motion-base:.2s;--radius-sm:6px;--radius-md:10px;--radius-panel:16px;--radius-sheet:22px;--radius-pill:999px;--gutter:var(--space-4);--gantt-row-height:40px;--gantt-row-line-width:0px;--gantt-bar-height:22px;--gantt-bar-radius:11px;--gantt-bar-outline-width:1px;--gantt-bar-shadow-blur:2px;--gantt-bar-shadow-y:1px;--gantt-critical-shadow-blur:6px;--gantt-critical-shadow-y:2px;--gantt-summary-height:9px;--gantt-summary-stem:3px;--gantt-summary-cap:2px;--gantt-milestone-half:10px;--gantt-milestone-radius:3px;--gantt-jewel-blur:6px;--gantt-jewel-y:2px;--gantt-min-bar-width:6px;--gantt-origin-gap:8px;--gantt-header-row-height:32px;--gantt-font-size:11.5px;--gantt-font-weight-bar:600;--gantt-label-size:11px;--gantt-display-size:15px;--gantt-header-font-size:19px;--gantt-header-minor-font-size:11px;--gantt-header-letter-spacing:.22px;--gantt-font-weight-strong:600;--gantt-label-gap:14px;--gantt-label-pad:10px;--gantt-avatar-size:20px;--gantt-avatar-gap:4px;--gantt-avatar-font-size:9.5px;--gantt-link-width:1.2px;--gantt-link-width-critical:2.2px;--gantt-link-width-hover:2.4px;--gantt-link-elbow:8px;--gantt-link-radius:4px;--gantt-link-gap:2px;--gantt-arrow-size:5px;--gantt-outline-width:1.5px;--gantt-critical-edge-width:2px;--gantt-critical-post-width:2px;--gantt-critical-post-reach:4px;--gantt-marker-width:1.5px;--gantt-marker-size:5px;--gantt-crown-width:12px;--gantt-crown-height:9px;--gantt-ring-width:2px;--gantt-ring-gap:3px;--gantt-hover-ring-width:1.5px;--gantt-float-height:1.5px;--gantt-float-opacity:.75;--gantt-dash:4px;--gantt-dim-opacity:.5;--gantt-text-only-opacity:.25;--gantt-motion:var(--motion-base);--gantt-chip-height:30px}@media (prefers-reduced-motion:reduce){:root{--motion-fast:0s;--motion-base:0s}}@media (pointer:coarse){:root{--size-row:var(--size-tap);--size-control:var(--size-tap);--size-divider:1.5rem;--gantt-min-bar-width:8px}}@media (width>=768px){:root{--gutter:var(--space-6)}}:root,:root[data-theme=light]{color-scheme:light;--color-bg:#ece7dc;--color-surface:#fffdf8;--color-surface-sunken:#f4efe5;--color-surface-raised:#fffdf8;--color-text:#1c1a17;--color-text-muted:#625b4f;--color-text-faint:#6f675a;--color-border:#e6e0d2;--color-border-strong:#d5ccb8;--color-overlay:#1c1a1773;--color-brass:#b08d3c;--color-brass-deep:#9a7424;--color-brass-wash:#f6eeda;--color-brass-ink:#5e4710;--color-accent:#7a5c14;--color-accent-hover:#664c0e;--color-accent-text:#fffdf8;--color-row-hover:#f4efe5;--color-row-selected:#f6eeda;--color-steel:#2346a0;--color-focus:#2346a0;--color-pill-on:#2b2620;--color-pill-on-ink:#f6f1e6;--color-pill-marker:#8fa9ec;--color-ruby:#a3123a;--color-ruby-wash:#f7e3e8;--color-ruby-ink:#8a0f31;--color-mark-brass-hi:#ddbb6e;--color-mark-brass:#b08d3c;--color-mark-brass-lo:#7e5f22;--color-mark-ruby-hi:#e0577a;--color-mark-ruby:#a3123a;--color-mark-ruby-lo:#5e0820;--color-mark-steel-hi:#4e74d0;--color-mark-steel:#2346a0;--color-mark-steel-lo:#142a66;--color-mark-glint:#fff;--color-status-neutral:#625b4f;--color-status-ok:#2f7d4f;--color-status-ok-halo:#2f7d4f29;--color-badge-bg:#ece6d8;--color-badge-text:#3a352c;--color-toast-bg:#1a2240;--color-toast-ink:#f6f1e6;--color-toast-accent:#e3c47e;--shadow-chip:0 1px 2px #281e0a0f;--shadow-panel:0 1px 2px #281e0a0d, 0 10px 30px #281e0a12;--shadow-dock:0 2px 6px #281e0a14, 0 18px 40px #281e0a24;--shadow-raised:0 4px 24px #281e0a33;--shadow-inset:inset 0 1px 0 #ffffffb3;--color-gantt-surface:#fffdf8;--color-gantt-surface-header:#fffdf8;--color-gantt-inset:#f4efe5;--color-gantt-text:#1c1a17;--color-gantt-text-muted:#625b4f;--color-gantt-text-faint:#6f675a;--color-gantt-border:#eee8dc;--color-gantt-border-strong:#e2dbcb;--color-gantt-grid:#f1ece1;--color-gantt-grid-major:#eee8dc;--color-gantt-row-line:#eee8dc;--color-gantt-weekend:#fbf8f1;--color-gantt-holiday:#f5efe2;--color-gantt-accent:#2346a0;--color-gantt-accent-text:#fff;--color-gantt-row-selected:#f6eeda;--color-gantt-row-hover:#f4efe5;--color-gantt-chip:#fffdf8eb;--color-gantt-crit-border:#e8bfcb;--color-gantt-crit-wash:#f7e3e8;--color-gantt-crit-ink:#8a0f31;--color-gantt-bar-top:#f7efdc;--color-gantt-bar-bottom:#eaddbd;--color-gantt-bar-ink:#4a3912;--color-gantt-bar-progress:#b08d3c47;--color-gantt-bar-outline:#9a7424;--color-gantt-bar-highlight:#ffffffb3;--color-gantt-bar-lowlight:#785a142e;--color-gantt-bar-shadow:#503c0a1f;--color-gantt-critical-top:#c0264f;--color-gantt-critical-bottom:#a3123a;--color-gantt-critical-ink:#fff;--color-gantt-critical-progress:#fff3;--color-gantt-critical-highlight:#ffffff47;--color-gantt-critical-shadow:#a3123a4d;--color-gantt-critical-edge:#fbc9d5;--color-gantt-summary:#7a7262;--color-gantt-milestone:#b08d3c;--color-gantt-jewel-high:#f1d99a;--color-gantt-jewel-deep:#9a7424;--color-gantt-jewel-glow:#9a742459;--color-gantt-link:#9a7424;--color-gantt-crown-top:#e3c47e;--color-gantt-crown-edge:#503c0a59;--color-critical:#a3123a;--color-float:#857d6e;--color-pending:#8a5a00;--color-status-date:#2b2620;--color-today:#9a7424;--color-text-only:#625b4f;--color-done:#2f7d4f;--color-gantt-avatar-1-bg:#e3e9f7;--color-gantt-avatar-1-ink:#22408f;--color-gantt-avatar-2-bg:#f3ead6;--color-gantt-avatar-2-ink:#6e5316;--color-gantt-avatar-3-bg:#f6e3e8;--color-gantt-avatar-3-ink:#8e1b3a;--color-gantt-avatar-4-bg:#e2f1e7;--color-gantt-avatar-4-ink:#1f5c3a;--color-gantt-avatar-5-bg:#eee5f6;--color-gantt-avatar-5-ink:#5a2e8c;--color-gantt-avatar-6-bg:#dff0ef;--color-gantt-avatar-6-ink:#14615a;--gantt-chip-shadow:var(--shadow-chip);--color-syntax-keyword:#7a5c14;--color-syntax-definition:#7a2e8e;--color-syntax-reference:#1c1a17;--color-syntax-string:#1f6f35;--color-syntax-literal:#8f4700;--color-syntax-comment:#6b6455;--color-syntax-macro:#a3216b;--color-syntax-invalid:#a3123a;--color-diagnostic-error:#a3123a;--color-diagnostic-warning:#8a5a00;--color-diagnostic-info:#625b4f;--color-editor-selection:#eadfbf;--color-editor-active-line:#f8f3e8}:root[data-theme=dark]{color-scheme:dark;--color-bg:#080b10;--color-surface:#11151d;--color-surface-sunken:#181d28;--color-surface-raised:#141924;--color-text:#eee7d7;--color-text-muted:#a9a291;--color-text-faint:#8f897a;--color-border:#1e2431;--color-border-strong:#2a3243;--color-overlay:#0009;--color-brass:#d2ae5c;--color-brass-deep:#c9a24d;--color-brass-wash:#2a2517;--color-brass-ink:#f1e3bf;--color-accent:#d2ae5c;--color-accent-hover:#e3c47e;--color-accent-text:#1a1405;--color-row-hover:#181d28;--color-row-selected:#251f12;--color-steel:#7d9be8;--color-focus:#7d9be8;--color-pill-on:#eee7d7;--color-pill-on-ink:#11151d;--color-pill-marker:#2346a0;--color-ruby:#f0627e;--color-ruby-wash:#3a1620;--color-ruby-ink:#f6a3b5;--color-mark-brass-hi:#f6e3ae;--color-mark-brass:#d2ae5c;--color-mark-brass-lo:#9c7a34;--color-mark-ruby-hi:#ff8fa6;--color-mark-ruby:#e0456a;--color-mark-ruby-lo:#8a1534;--color-mark-steel-hi:#a9bef2;--color-mark-steel:#7d9be8;--color-mark-steel-lo:#3d5fb8;--color-mark-glint:#fff;--color-status-neutral:#a9a291;--color-status-ok:#6fcf97;--color-status-ok-halo:#6fcf9729;--color-badge-bg:#232a38;--color-badge-text:#d9d2c1;--color-toast-bg:#eee7d7;--color-toast-ink:#11151d;--color-toast-accent:#7a5c14;--shadow-chip:0 1px 2px #0006;--shadow-panel:0 1px 2px #0006, 0 12px 32px #00000073;--shadow-dock:0 2px 6px #0006, 0 20px 44px #0009;--shadow-raised:0 4px 28px #0009;--shadow-inset:inset 0 1px 0 #ffffff0d;--color-gantt-surface:#11151d;--color-gantt-surface-header:#11151d;--color-gantt-inset:#181d28;--color-gantt-text:#eee7d7;--color-gantt-text-muted:#a9a291;--color-gantt-text-faint:#8f897a;--color-gantt-border:#1e2431;--color-gantt-border-strong:#2a3243;--color-gantt-grid:#161b25;--color-gantt-grid-major:#1e2431;--color-gantt-row-line:#1e2431;--color-gantt-weekend:#0e1219;--color-gantt-holiday:#141821;--color-gantt-accent:#7d9be8;--color-gantt-accent-text:#0d1117;--color-gantt-row-selected:#251f12;--color-gantt-row-hover:#181d28;--color-gantt-chip:#11151de6;--color-gantt-crit-border:#5a2434;--color-gantt-crit-wash:#3a1620;--color-gantt-crit-ink:#f6a3b5;--color-gantt-bar-top:#3b3322;--color-gantt-bar-bottom:#2a2417;--color-gantt-bar-ink:#f1e3bf;--color-gantt-bar-progress:#d2ae5c38;--color-gantt-bar-outline:#c9a24d;--color-gantt-bar-highlight:#ffffff12;--color-gantt-bar-lowlight:#0000;--color-gantt-bar-shadow:#00000080;--color-gantt-critical-top:#c93e63;--color-gantt-critical-bottom:#a3274a;--color-gantt-critical-ink:#fff;--color-gantt-critical-progress:#ffffff2e;--color-gantt-critical-highlight:#ffffff38;--color-gantt-critical-shadow:#f0627e47;--color-gantt-critical-edge:#ffdde4;--color-gantt-summary:#b9af98;--color-gantt-milestone:#d2ae5c;--color-gantt-jewel-high:#f6e3ae;--color-gantt-jewel-deep:#c9a24d;--color-gantt-jewel-glow:#d2ae5c59;--color-gantt-link:#c9a24d;--color-gantt-crown-top:#f1d99a;--color-gantt-crown-edge:#0006;--color-critical:#f0627e;--color-float:#958f80;--color-pending:#d2ae5c;--color-status-date:#eee7d7;--color-today:#d2ae5c;--color-text-only:#a9a291;--color-done:#6fcf97;--color-gantt-avatar-1-bg:#1b2748;--color-gantt-avatar-1-ink:#b3c5f4;--color-gantt-avatar-2-bg:#2e2817;--color-gantt-avatar-2-ink:#e3c47e;--color-gantt-avatar-3-bg:#3a1822;--color-gantt-avatar-3-ink:#f2a1b3;--color-gantt-avatar-4-bg:#16301f;--color-gantt-avatar-4-ink:#9edbb5;--color-gantt-avatar-5-bg:#2a1f3d;--color-gantt-avatar-5-ink:#d2b8f0;--color-gantt-avatar-6-bg:#123532;--color-gantt-avatar-6-ink:#9ad9d3;--color-syntax-keyword:#e3c47e;--color-syntax-definition:#d39af0;--color-syntax-reference:#eee7d7;--color-syntax-string:#86d39a;--color-syntax-literal:#f0a35e;--color-syntax-comment:#9a9484;--color-syntax-macro:#f08ac0;--color-syntax-invalid:#ff8a9c;--color-diagnostic-error:#ff8a9c;--color-diagnostic-warning:#e8c15a;--color-diagnostic-info:#a9a291;--color-editor-selection:#3a3220;--color-editor-active-line:#181d28}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading);-webkit-font-smoothing:antialiased;margin:0}html[data-shell],html[data-shell] body{overscroll-behavior:none;block-size:100%;overflow:hidden}html[data-shell] body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;inline-size:100%;position:fixed;inset:0}html[data-shell] :is(input,textarea,select,.cm-editor,.selectable,.selectable *){-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:100;left:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-accent);color:var(--color-accent-text);border-radius:var(--radius-sm);position:absolute;top:-4rem}.skip:focus{top:var(--space-2)}
