@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/atkinsonhyperlegible-400-latin-ext-DRk46D-x.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/atkinsonhyperlegible-400-latin-BrHNak5F.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:Atkinson Hyperlegible;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/atkinsonhyperlegible-700-latin-ext-BoVPHkS0.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/atkinsonhyperlegible-700-latin-GZI4o3u0.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:DM Serif Display;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dmserifdisplay-400-latin-ext-p18AlW_x.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Serif Display;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dmserifdisplay-400-latin-C5_t9oOD.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(/assets/jetbrainsmono-400-latin-ext-DIC32ArD.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-20C4,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(/assets/jetbrainsmono-400-latin-6fWv1k7M.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(/assets/jetbrainsmono-400-latin-ext-DIC32ArD.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-20C4,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(/assets/jetbrainsmono-400-latin-6fWv1k7M.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{--brand-600:#0d5c63;--brand-500:#0a7285;--brand-400:#14b8a6;--brand-300:#2dd4bf;--brand-050:#e6faf8;--brand-violet:#7c3aed;--brand-violet-dark:#a78bfa;--brand-teal:#0d9488;--brand-teal-dark:#5eead4;--brand-warm:#d97706;--brand-warm-light:#fbbf24;--sem-success:#15803d;--sem-warning:#b45309;--sem-danger:#dc2626;--sem-success-glow:#15803d2e;--sem-warning-glow:#b453092e;--sem-danger-glow:#dc26262e;--sem-success-d:#34d399;--sem-warning-d:#fbbf24;--sem-danger-d:#fb7185;--sem-success-d-glow:#34d39933;--sem-warning-d-glow:#fbbf2433;--sem-danger-d-glow:#fb718533;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--shadow-sm:0 1px 2px #0f172a0d;--shadow-md:0 4px 12px #0f172a14;--shadow-lg:0 12px 32px #0f172a1a;--shadow-xl:0 24px 60px #0f172a1f;--shadow-sm-d:0 2px 6px #0000004d;--shadow-md-d:0 8px 24px #0006;--shadow-lg-d:0 16px 44px #00000080;--shadow-xl-d:0 24px 60px #00000094;--glow-brand:0 0 40px #14b8a626;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--font-heading:"DM Serif Display", Georgia, serif;--font-body:"Atkinson Hyperlegible", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--font-dense:"Atkinson Hyperlegible", system-ui, sans-serif;--type-meta:.6875rem;--type-small:.8125rem;--type-body:.9375rem;--type-h4:1.125rem;--type-h3:1.375rem;--type-h2:1.75rem;--type-h1:2rem}.site-footer-nav{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--stroke,#80808026);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.site-footer-nav .site-links{gap:var(--space-4);flex-wrap:wrap;display:flex}.site-footer-nav .site-links a{color:var(--muted,inherit);font-size:var(--type-small);font-family:var(--font-dense);transition:color var(--transition-fast);text-decoration:none}.site-footer-nav .site-links a:hover,.site-footer-nav .site-links a[aria-current=page]{color:var(--acc,var(--brand-400))}.site-footer-nav .site-copy{color:var(--muted2,var(--muted,inherit));font-size:var(--type-small)}@media (width<=600px){.site-footer-nav{flex-direction:column;align-items:flex-start}}:where(:root){--lm-bg:#ffffffe0;--lm-border:#0d5c631f;--lm-fg:#1a2e2d;--lm-muted:#6f8483;--lm-chip-bg:#0d5c6312;--lm-chip-fg:#0d5c63;--lm-accent:#0d5c63;--lm-accent-soft:#0d5c6317;--lm-hover:#0d5c630f;--lm-shadow:0 1px 2px #0f172a0d, 0 14px 34px -10px #0d5c6347}.lang-menu{flex:none;position:relative}.lang-menu-slot{align-items:center;display:inline-flex}.lang-menu__trigger{height:2.125rem;font-family:var(--font-dense);font-size:var(--type-small);white-space:nowrap;color:var(--lm-fg);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:.375rem;padding:0 .4375rem 0 .5625rem;font-weight:500;line-height:1;display:inline-flex}.lang-menu__trigger:hover{background:var(--lm-hover);border-color:var(--lm-border)}.lang-menu__trigger:focus-visible{outline:2px solid var(--lm-accent);outline-offset:2px}.lang-menu__globe,.lang-menu__chevron{flex:none;display:block}.lang-menu__globe{opacity:.7;transition:opacity var(--transition-fast), color var(--transition-fast)}.lang-menu__chevron{opacity:.55;transition:transform var(--transition-base), opacity var(--transition-fast)}.lang-menu__trigger:hover .lang-menu__globe,.lang-menu[data-open=true] .lang-menu__globe{opacity:1;color:var(--lm-accent)}.lang-menu[data-open=true] .lang-menu__chevron{opacity:1;transform:rotate(180deg)}.lang-menu__panel{z-index:100;text-align:left;background:var(--lm-bg);border:1px solid var(--lm-border);min-width:9.75rem;max-width:min(14rem,100vw - 2rem);box-shadow:var(--lm-shadow);-webkit-backdrop-filter:blur(18px)saturate(180%);transform-origin:100% 0;border-radius:14px;margin:0;padding:.3125rem;list-style:none;position:absolute;top:calc(100% + .5rem);right:0}.lang-menu__item{cursor:pointer;color:var(--lm-fg);transition:background var(--transition-fast);border-radius:9px;outline:none;align-items:center;gap:.5rem;padding:.375rem .4375rem;display:flex}.lang-menu__item:hover,.lang-menu__item:focus-visible,.lang-menu__item[data-active=true]{background:var(--lm-hover)}.lang-menu__item[aria-selected=true]{background:var(--lm-accent-soft)}.lang-menu__code{min-width:1.75rem;height:1.3125rem;font-family:var(--font-mono);letter-spacing:.05em;color:var(--lm-chip-fg);background:var(--lm-chip-bg);transition:color var(--transition-fast), background var(--transition-fast);border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0 .3125rem;font-size:.625rem;font-weight:600;display:inline-flex}.lang-menu__item[aria-selected=true] .lang-menu__code{color:var(--lm-accent);background:0 0}.lang-menu__name{min-width:0;font-family:var(--font-dense);font-size:var(--type-small);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-weight:500;line-height:1.2;overflow:hidden}.lang-menu__item[aria-selected=true] .lang-menu__name{color:var(--lm-accent);font-weight:600}.lang-menu__check{opacity:0;color:var(--lm-accent);flex:none}.lang-menu__item[aria-selected=true] .lang-menu__check{opacity:1}.lang-menu--compact .lang-menu__trigger{border-radius:9px;gap:.25rem;height:1.9375rem;padding:0 .3125rem 0 .4375rem;font-size:.75rem}.lang-menu--compact .lang-menu__panel{min-width:8.5rem}@media (prefers-reduced-motion:no-preference){.lang-menu__panel{animation:.19s cubic-bezier(.16,1,.3,1) both lang-menu-in}}@keyframes lang-menu-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:none}}.canvas-frame{width:100%;display:inline-block;position:relative}.canvas-frame canvas{display:block}.canvas-export-bar{opacity:0;transition:opacity var(--transition-fast);z-index:5;gap:4px;display:flex;position:absolute;top:8px;right:8px}.canvas-frame:hover .canvas-export-bar,.canvas-frame:focus-within .canvas-export-bar{opacity:1}@media (width<=600px){.canvas-export-bar{opacity:1}}.canvas-export-btn{background:var(--plot-bg,#0c0f14);color:var(--text,#fff);border:1px solid var(--stroke,#ffffff2e);font-family:var(--font-mono,monospace);cursor:pointer;letter-spacing:.02em;transition:all var(--transition-fast);border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:.6875rem;font-weight:600;display:inline-flex}.canvas-export-btn:hover{border-color:var(--acc,#60a5fa);color:var(--acc,#60a5fa);transform:translateY(-1px)}.canvas-export-btn:focus-visible{outline:2px solid var(--acc,#60a5fa);outline-offset:2px}.canvas-toast{background:var(--good,#34d399);color:#0a0c12;font-family:var(--font-mono,monospace);z-index:10000;opacity:0;pointer-events:none;border-radius:8px;padding:8px 16px;font-size:.8125rem;font-weight:600;transition:opacity .3s;position:fixed;bottom:100px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0006}.canvas-toast.show{opacity:1}#boot-loader{z-index:99999;pointer-events:none;justify-content:center;align-items:center;transition:opacity .35s;display:flex;position:fixed;inset:0}#boot-loader div{border:3px solid var(--loader-track,#0d5c6326);border-top-color:var(--loader-fg,#0d5c63);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite boot-spin}@keyframes boot-spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:var(--scrollbar-track,#f0f7f6);border-radius:4px}::-webkit-scrollbar-thumb{background:linear-gradient(#0d5c63,#14b8a6);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(#094449,#0d5c63)}[data-theme=dark] ::-webkit-scrollbar-track{background:#ffffff0d}[data-theme=dark] ::-webkit-scrollbar-thumb{background:linear-gradient(#14b8a6,#2dd4bf)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(#0d5c63,#14b8a6)}::selection{background:var(--selection-bg,#0d5c632e);color:var(--selection-color,#1a2e2d)}.skip-link{z-index:99999;background:var(--skip-bg,var(--acc,#60a5fa));color:var(--skip-color,#fff);border-radius:0 0 8px;padding:12px 18px;font-weight:600;text-decoration:none;transition:none;position:absolute;top:0;left:-9999px}.skip-link:focus{position:fixed;top:0!important;left:0!important;transform:none!important}
