@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Sans;font-style:normal;font-weight:100 700;font-display:swap;src:url(/fonts/ibm-plex-sans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/source-serif-4-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/source-serif-4-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/source-serif-4-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/source-serif-4-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--radius-doc: 2px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 999px;--font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--text-display: clamp(2.125rem, 7vw, 3.625rem);--leading-tight: 1.25;--leading-normal: 1.55;--leading-relaxed: 1.6;--tracking-wide: .06em;--tracking-wider: .12em;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--c-env: #eef1ec;--c-env-alt: #e5e9e2;--c-card: #f9faf7;--c-card-alt: #eef1ec;--c-line: rgba(20, 26, 24, .14);--c-line-strong: rgba(20, 26, 24, .28);--c-text: #161a19;--c-text-muted: #565f5b;--c-text-faint: #636a66;--c-signal: #1e4d7b;--c-signal-hover: #163c61;--c-signal-active: #102c47;--c-signal-soft: rgba(30, 77, 123, .12);--c-signal-text: #ffffff;--c-success: #3f6b3f;--c-success-soft: rgba(63, 107, 63, .12);--c-warning: #8a6a1f;--c-warning-soft: rgba(138, 106, 31, .12);--c-danger: #8f2f28;--c-danger-hover: #71241f;--c-danger-soft: rgba(143, 47, 40, .12);--c-backdrop: rgba(20, 26, 24, .45);--bg-page: var(--c-env);--bg-page-alt: var(--c-env-alt);--bg-surface: var(--c-card);--bg-raised: var(--c-card);--bg-subtle: var(--c-card-alt);--bg-hover: var(--c-card-alt);--border-default: var(--c-line);--border-strong: var(--c-line-strong);--border-focus: var(--c-signal);--text-primary: var(--c-text);--text-secondary: var(--c-text-muted);--text-muted: var(--c-text-faint);--text-on-accent: var(--c-signal-text);--accent: var(--c-signal);--accent-hover: var(--c-signal-hover);--accent-active: var(--c-signal-active);--accent-subtle: var(--c-signal-soft);--success: var(--c-success);--success-subtle: var(--c-success-soft);--warning: var(--c-warning);--warning-subtle: var(--c-warning-soft);--danger: var(--c-danger);--danger-hover: var(--c-danger-hover);--danger-subtle: var(--c-danger-soft);--backdrop: var(--c-backdrop);--shadow-sm: 0 1px 2px rgba(10, 16, 14, .08);--shadow-md: 0 1px 2px rgba(10, 16, 14, .08), 0 10px 30px rgba(10, 16, 14, .1);--shadow-lg: 0 2px 4px rgba(10, 16, 14, .1), 0 18px 48px rgba(10, 16, 14, .16);--app-max: 720px;--content-max: 1100px;--measure: 68ch;--card-gap: .875rem;--card-padding: 1.25rem;--focus-ring: 0 0 0 3px var(--accent-subtle);--transition: .14s ease;color-scheme:light}:root[data-theme=dark]{--c-env: #0b0e10;--c-env-alt: #121618;--c-card: #1a1f22;--c-card-alt: #20262a;--c-line: rgba(230, 238, 235, .1);--c-line-strong: rgba(230, 238, 235, .22);--c-text: #e9efec;--c-text-muted: #9aa6a1;--c-text-faint: #818f86;--c-signal: #5b9bd8;--c-signal-hover: #7db2e3;--c-signal-active: #9cc6ec;--c-signal-soft: rgba(91, 155, 216, .16);--c-signal-text: #081420;--c-success: #7bab7c;--c-success-soft: rgba(123, 171, 124, .14);--c-warning: #d3ab5e;--c-warning-soft: rgba(211, 171, 94, .16);--c-danger: #d98078;--c-danger-hover: #e59a92;--c-danger-soft: rgba(217, 128, 120, .16);--c-backdrop: rgba(0, 0, 0, .6);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 30px rgba(0, 0, 0, .5);--shadow-lg: 0 2px 4px rgba(0, 0, 0, .5), 0 18px 48px rgba(0, 0, 0, .6);--bg-raised: var(--c-card-alt);color-scheme:dark}:root[data-density=compact]{--card-gap: .5rem;--card-padding: .875rem}@media(prefers-reduced-motion:reduce){:root{--transition: 0ms}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{min-height:100dvh;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased}img,picture,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4{font-family:var(--font-serif);line-height:var(--leading-tight);font-weight:var(--weight-semibold);text-wrap:balance}a{color:var(--accent)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}router-outlet+*{animation:fadeIn .4s ease both}@media(prefers-reduced-motion:reduce){router-outlet+*{animation:none}}
