/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Monaco, "Courier New", monospace;--spacing:.25rem;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:"Inter", ui-sans-serif, system-ui, sans-serif;--color-bg:#faf9f6;--color-bg-soft:#f3f1ec;--color-bg-raised:#fff;--color-fg:#1a1a1a;--color-fg-muted:#555;--color-fg-subtle:#8a8a8a;--color-border:#e2dfd7;--color-border-soft:#ece9e0;--color-bg-dark:#0e0f10;--color-bg-soft-dark:#161719;--color-bg-raised-dark:#1c1d20;--color-fg-dark:#ececec;--color-fg-muted-dark:#a4a4a4;--color-fg-subtle-dark:#6a6a6a;--color-border-dark:#2a2b2e;--color-border-soft-dark:#1f2023;--color-panel:#0a0b0c;--color-panel-fg:#e6e6e6;--color-panel-muted:#8a8a8a;--color-panel-border:#1c1d20;--color-accent:#e25822;--color-accent-soft:#f0a07a;--color-accent-strong:#c0481a;--color-accent-glow:#e258222e;--color-success:#4ea672;--color-warn:#d4a64e;--color-danger:#d65a5a;--color-info:#5a8fd6;--radius-pill:999px;--ease-out-quad:cubic-bezier(.25, .46, .45, .94)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{color-scheme:light;--bg:var(--color-bg);--bg-soft:var(--color-bg-soft);--bg-raised:var(--color-bg-raised);--fg:var(--color-fg);--fg-muted:var(--color-fg-muted);--fg-subtle:var(--color-fg-subtle);--border:var(--color-border);--border-soft:var(--color-border-soft)}.dark-theme{color-scheme:dark;--bg:var(--color-bg-dark);--bg-soft:var(--color-bg-soft-dark);--bg-raised:var(--color-bg-raised-dark);--fg:var(--color-fg-dark);--fg-muted:var(--color-fg-muted-dark);--fg-subtle:var(--color-fg-subtle-dark);--border:var(--color-border-dark);--border-soft:var(--color-border-soft-dark)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;font-feature-settings:"ss01", "cv11";scrollbar-gutter:stable}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:clamp(1rem,.95rem + .25vw,1.1875rem);font-weight:400;line-height:1.65}::selection{background:var(--color-accent);color:#fff}*{scrollbar-width:thin;scrollbar-color:var(--fg) transparent}@supports (color:color-mix(in lab, red, red)){*{scrollbar-color:color-mix(in srgb, var(--fg) 22%, transparent) transparent}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--fg)}@supports (color:color-mix(in lab, red, red)){::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--fg) 18%, transparent)}}::-webkit-scrollbar-thumb{background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#e25822b3}@supports (color:color-mix(in lab, red, red)){::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--color-accent) 70%, transparent)}}::-webkit-scrollbar-thumb:hover{background-clip:padding-box}::-webkit-scrollbar-corner{background:0 0}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}a{color:inherit;text-decoration:none}hr{border:0;border-top:1px solid var(--border);margin:2rem 0}img,video,picture{max-width:100%;height:auto;display:block}@media (max-width:55.99em),(hover:none) and (pointer:coarse){html{scrollbar-gutter:auto}*{scrollbar-width:none}::-webkit-scrollbar{width:0;height:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components{.skip-link{background:var(--color-accent);color:#fff;font-family:var(--font-mono);border-radius:var(--radius-sm);transition:transform .15s var(--ease-out-quad);z-index:100;padding:.5rem .75rem;font-size:.8rem;position:absolute;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.wrapper{min-height:100vh;display:flex}@media (max-width:55.99em){.wrapper{flex-direction:column}}.panel{background:var(--color-panel);width:100%;color:var(--color-panel-fg);border-right:1px solid var(--color-panel-border);font-family:var(--font-sans);flex-shrink:0}@media (min-width:56em){.panel{align-self:flex-start;width:17.5rem;height:100vh;position:sticky;top:0;overflow-y:auto}}.panel-inner{flex-direction:column;gap:1.5rem;min-height:100%;padding:1.75rem 1.5rem;display:flex}.panel-toggle{display:none}.panel-drawer{display:contents}.panel-brand{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.panel-brand img{border:1px solid var(--color-panel-border);object-fit:cover;border-radius:999px;width:60px;height:60px}.panel-brand .prompt{font-family:var(--font-mono);color:var(--color-accent);margin-bottom:.25rem;font-size:.875rem}.panel-brand h1{letter-spacing:-.01em;color:var(--color-panel-fg);margin:0;font-size:1.4rem;font-weight:600}.panel-brand .lead{color:var(--color-panel-muted);font-size:.85rem;font-family:var(--font-mono);margin:0}@media (max-width:55.99em){.panel{z-index:40;border-right:0;border-bottom:1px solid var(--color-panel-border);position:sticky;top:0}.panel-inner{flex-flow:row;align-items:center;gap:.75rem;min-height:auto;padding:.55rem .85rem}.panel-brand{flex-direction:row;flex:1;align-items:center;gap:.6rem;min-width:0}.panel-brand a{flex-shrink:0;display:inline-flex}.panel-brand img{width:32px;height:32px}.panel-brand .prompt,.panel-brand .lead{display:none}.panel-brand h1{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:1rem;overflow:hidden}.panel-toggle{border:1px solid var(--color-panel-border);width:2.25rem;height:2.25rem;color:var(--color-panel-fg);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.panel-toggle:hover{border-color:var(--color-accent);color:var(--color-accent)}.panel-drawer{border-top:1px dashed var(--color-panel-border);flex-direction:column;flex-basis:100%;gap:1rem;width:100%;padding:.85rem .85rem 1rem;display:none!important}.panel.is-open .panel-drawer{display:flex!important}.panel.is-open{flex-wrap:wrap;max-height:100vh;overflow-y:auto}.panel.is-open .panel-inner{flex-wrap:wrap}.panel-drawer .panel-bottom{margin-top:0;padding-top:0}.panel-drawer .panel-foot{border-top:1px dashed var(--color-panel-border)}}.panel-section{flex-direction:column;gap:.25rem;display:flex}.panel-section-label{font-family:var(--font-mono);color:var(--color-panel-muted);text-transform:lowercase;letter-spacing:.08em;border-bottom:1px dashed var(--color-panel-border);margin-bottom:.4rem;padding-bottom:.35rem;font-size:.7rem}.panel-link{font-family:var(--font-mono);color:var(--color-panel-fg);transition:color .15s var(--ease-out-quad);align-items:center;gap:.5rem;padding:.25rem 0;font-size:.875rem;display:flex}.panel-link:before{content:"›";color:var(--color-panel-muted);transition:color .15s var(--ease-out-quad), transform .15s var(--ease-out-quad)}.panel-link:hover,.panel-link.active{color:var(--color-accent)}.panel-link:hover:before,.panel-link.active:before{color:var(--color-accent);transform:translate(2px)}.panel-theme-toggle{color:var(--color-panel-fg);font-family:var(--font-mono);cursor:pointer;text-align:left;transition:color .15s var(--ease-out-quad);background:0 0;border:0;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.875rem;display:none}.panel-theme-toggle:hover,.panel-theme-toggle svg{color:var(--color-accent)}@media (max-width:55.99em){.panel-theme-toggle{display:inline-flex}.topbar>[data-theme-toggle]{display:none}}.panel-projects{margin-bottom:1rem}.panel-site{--site-a:var(--color-panel-muted);--site-b:var(--color-panel-muted);flex-direction:column;display:flex}.panel-site+.panel-site{margin-top:.35rem}.panel-site:hover .panel-link{color:var(--color-accent)}.panel-site:hover .panel-link:before{transform:translate(2px)}.panel-site .panel-link:before{content:"";background:linear-gradient(135deg, var(--site-a) 50%, var(--site-b) 50%);width:.45rem;height:.45rem}.panel-site-arrow{color:var(--color-panel-muted);font-size:.75rem}.panel-site-desc{font-family:var(--font-mono);color:var(--color-panel-muted);padding-left:.95rem;font-size:.7rem;line-height:1.4}.panel-socials{flex-wrap:wrap;gap:.6rem;display:flex}.panel-socials a{color:var(--color-panel-muted);transition:color .15s var(--ease-out-quad);display:inline-flex}.panel-socials a:hover{color:var(--color-accent)}.panel-status{font-family:var(--font-mono);color:var(--color-panel-muted);font-size:.72rem;line-height:1.7}.panel-status .dot{background:var(--color-success);border-radius:50%;width:.5rem;height:.5rem;display:inline-block;box-shadow:0 0 6px #4ea67299}@supports (color:color-mix(in lab, red, red)){.panel-status .dot{box-shadow:0 0 6px color-mix(in srgb, var(--color-success) 60%, transparent)}}.panel-status .dot{vertical-align:middle;animation:panel-pulse 2.4s var(--ease-out-quad) infinite;margin-right:.4rem}@keyframes panel-pulse{0%,to{opacity:1}50%{opacity:.4}}.panel-bottom{flex-direction:column;gap:1rem;margin-top:auto;padding-top:1.5rem;display:flex}.panel-foot{font-family:var(--font-mono);color:var(--color-panel-muted);border-top:1px dashed var(--color-panel-border);padding-top:.75rem;font-size:.7rem;line-height:1.6}.panel-foot a{color:var(--color-panel-fg)}.panel-foot a:hover{color:var(--color-accent)}.main-column{flex-direction:column;flex:1;min-width:0;display:flex}.article-row{flex:1;align-items:flex-start;min-width:0;display:flex}@media (max-width:79.99em){.article-row{display:block}}.topbar{z-index:30;background:var(--bg);grid-template-columns:1fr auto 1fr auto;align-items:center;gap:.6rem;width:100%;padding:.55rem 1rem;display:grid;position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.topbar{background:color-mix(in srgb, var(--bg) 88%, transparent)}}.topbar{-webkit-backdrop-filter:blur(10px)saturate(140%);border-bottom:1px solid var(--border-soft);font-family:var(--font-mono);font-size:.8rem}@media (min-width:56em){.topbar{gap:.75rem;padding:.6rem 1.5rem}}.topbar-search{background:var(--bg-soft);border:1px solid var(--border);width:clamp(10rem,60vw,28rem);min-width:0;color:var(--fg-muted);border-radius:var(--radius-sm);font-family:var(--font-mono);cursor:pointer;text-align:left;transition:color .15s var(--ease-out-quad), border-color .15s var(--ease-out-quad), background .15s var(--ease-out-quad);grid-column:2;justify-self:center;align-items:center;gap:.6rem;padding:.45rem .85rem;font-size:.8rem;display:inline-flex}.topbar-btn{grid-column:4}@media (max-width:38em){.topbar-search .label{white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.topbar-search .kbd{display:none}}.topbar-search:hover{color:var(--fg);border-color:var(--color-accent)}.topbar-search .label{color:var(--fg-subtle);flex:1}.topbar-search .kbd{font-family:var(--font-mono);border:1px solid var(--border);color:var(--fg-subtle);background:var(--bg);border-radius:3px;padding:.1rem .4rem;font-size:.7rem}.topbar-btn{background:var(--bg-soft);border:1px solid var(--border);width:2.25rem;height:2.25rem;color:var(--fg-muted);border-radius:var(--radius-sm);cursor:pointer;transition:color .15s var(--ease-out-quad), border-color .15s var(--ease-out-quad);flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;padding:.5rem;display:inline-flex}.topbar-btn:hover{color:var(--fg);border-color:var(--color-accent)}.progress{background:var(--border-soft);pointer-events:none;height:2px;position:absolute;bottom:-2px;left:0;right:0}.progress-bar{background:var(--color-accent);width:0;height:100%;transition:width 80ms linear}.container{flex:1;width:100%;min-width:0;max-width:46rem;margin:0 auto;padding:1.5rem 1rem 3rem}@media (min-width:40em){.container{padding:2rem 1.25rem 4rem}}@media (min-width:56em){.container{max-width:52rem;padding:3rem 2rem 5rem}}@media (min-width:80em){.container{max-width:56rem}}.post-hero{margin-bottom:2.5rem}.post-hero .meta-line{font-family:var(--font-mono);color:var(--fg-subtle);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.78rem;display:flex}.post-hero .meta-line .sep{color:var(--border)}.post-hero h1{font-family:var(--font-display);letter-spacing:-.025em;color:var(--fg);margin:0 0 1rem;font-size:clamp(2rem,1.6rem + 2vw,3.1rem);font-weight:700;line-height:1.1}.post-hero .lede{color:var(--fg-muted);margin-bottom:1.25rem;font-size:1.1rem;line-height:1.6}.post-hero .featured{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:1.5rem -1rem 0}@media (min-width:40em){.post-hero .featured{margin:1.5rem -1.25rem 0}}.post-hero .featured img{border-radius:0;width:100%;margin:0}.tags{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.tag{font-family:var(--font-mono);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--fg-muted);background:var(--bg-soft);transition:color .15s var(--ease-out-quad), border-color .15s var(--ease-out-quad);align-items:center;padding:.18rem .55rem;font-size:.72rem;display:inline-flex}.tag:before{content:"#";color:var(--color-accent);margin-right:.15rem}.tag:hover{color:var(--fg);border-color:var(--color-accent)}.crumbs{font-family:var(--font-mono);color:var(--fg-subtle);word-break:break-word;flex-wrap:wrap;align-items:center;margin-bottom:1.5rem;font-size:.78rem;line-height:1.4;display:flex}.crumbs .seg{color:var(--fg-muted);transition:color .15s var(--ease-out-quad), background .15s var(--ease-out-quad);border-radius:2px;padding:.05rem .15rem}.crumbs a.seg:hover{color:var(--color-accent);background:#e2582214}@supports (color:color-mix(in lab, red, red)){.crumbs a.seg:hover{background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.crumbs .sep{color:var(--border);margin:0 .05rem}.crumbs .current{color:var(--fg)}.prose{font-size:1.0625rem;line-height:1.75}.prose>*+*{margin-top:1.1em}.prose h2,.prose h3,.prose h4{font-family:var(--font-display);color:var(--fg);letter-spacing:-.015em;scroll-margin-top:4rem;font-weight:600;line-height:1.25}.prose h2{border-top:1px solid var(--border-soft);margin-top:2.5em;padding-top:1.25em;font-size:1.7rem}.prose h3{margin-top:2em;font-size:1.3rem}.prose h4{margin-top:1.6em;font-size:1.1rem}.prose h2 a,.prose h3 a,.prose h4 a{color:inherit}.prose p{color:var(--fg)}.prose strong{color:var(--fg);font-weight:600}.prose em{font-style:italic}.prose a{color:var(--color-accent);-webkit-text-decoration:underline #e2582259;text-decoration:underline #e2582259}@supports (color:color-mix(in lab, red, red)){.prose a{-webkit-text-decoration-color:color-mix(in srgb, var(--color-accent) 35%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--color-accent) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--color-accent) 35%, transparent)}}.prose a{text-underline-offset:3px;transition:text-decoration-color .15s var(--ease-out-quad);text-decoration-thickness:1px}.prose a:hover{-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-decoration-thickness:2px}.prose a.is-external:after{content:"↗";color:var(--fg-muted);vertical-align:baseline;margin-left:.15em;font-size:.8em;line-height:1;text-decoration:none;display:inline-block}.prose ul,.prose ol{color:var(--fg);margin:1.1em 0;padding-left:1.6rem}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose ul ul{margin:.4em 0;list-style:circle}.prose ul ul ul{list-style:square}.prose ol ol{margin:.4em 0;list-style:lower-alpha}.prose li{margin:.35em 0;padding-left:.3rem}.prose ul li::marker{color:var(--color-accent)}.prose ol li::marker{color:var(--color-accent);font-family:var(--font-mono);font-weight:500}.prose li>p{margin:.4em 0}.prose li>p:first-child{margin-top:0}.prose li>p:last-child{margin-bottom:0}.prose blockquote{border-left:3px solid var(--color-accent);color:var(--fg-muted);margin:1.5em 0;padding:.5rem 0 .5rem 1.25rem;font-style:italic}.prose blockquote p{color:var(--fg-muted)}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--bg-soft);border:1px solid var(--border-soft);border-radius:var(--radius-xs);color:var(--fg);padding:.12em .4em;font-size:.88em}.prose table{border-collapse:collapse;width:100%;margin:1.5em 0;font-size:.95em}.prose th,.prose td{border-bottom:1px solid var(--border-soft);text-align:left;padding:.55rem .75rem}.prose thead th{border-bottom:1px solid var(--border);color:var(--fg);font-family:var(--font-mono);text-transform:lowercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.prose tbody tr:hover{background:#e258220d}@supports (color:color-mix(in lab, red, red)){.prose tbody tr:hover{background:color-mix(in srgb, var(--color-accent) 5%, transparent)}}.codeblock{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-raised);margin:1.5em 0;overflow:hidden}.dark-theme .codeblock{background:#1a1b26;border-color:#2a2b36}.codeblock-header{background:var(--bg-soft);border-bottom:1px solid var(--border-soft);font-family:var(--font-mono);color:var(--fg-subtle);align-items:center;gap:.5rem;padding:.4rem .7rem;font-size:.72rem;display:flex}.dark-theme .codeblock-header{background:#16171f;border-color:#2a2b36}.codeblock-header .lang{text-transform:lowercase;color:var(--color-accent)}.codeblock-header .actions{gap:.25rem;margin-left:auto;display:flex}.codeblock-action{color:var(--fg-subtle);cursor:pointer;font-family:var(--font-mono);border-radius:var(--radius-xs);transition:color .15s var(--ease-out-quad), border-color .15s var(--ease-out-quad);background:0 0;border:1px solid #0000;padding:.2rem .4rem;font-size:.7rem}.codeblock-action:hover{color:var(--color-accent);border-color:var(--color-accent)}.codeblock-action.success{color:var(--color-success)}.codeblock pre{-webkit-overflow-scrolling:touch;font-family:var(--font-mono);margin:0;padding:.7rem;font-size:.82rem;line-height:1.55;overflow-x:auto}@media (min-width:56em){.codeblock pre{padding:.5rem;font-size:.85rem}}.codeblock.wrap pre{white-space:pre-wrap;word-break:break-word}.codeblock pre code{border:0;padding:0;font-family:inherit;background:0 0!important}.codeblock .chroma .lnt,.codeblock .chroma .ln{color:currentColor}@supports (color:color-mix(in lab, red, red)){.codeblock .chroma .lnt,.codeblock .chroma .ln{color:color-mix(in srgb, currentColor 35%, transparent)}}.codeblock .chroma .lnt,.codeblock .chroma .ln{-webkit-user-select:none;user-select:none;padding-right:.75rem}.callout{border-left:3px solid var(--color);background:var(--color);margin:1.5em 0;padding:.85rem 1rem .85rem 2.5rem}@supports (color:color-mix(in lab, red, red)){.callout{background:color-mix(in srgb, var(--color) 6%, transparent)}}.callout{border-radius:0 var(--radius-sm) var(--radius-sm) 0;position:relative}.callout:before{content:"";background:var(--color);width:1.1rem;height:1.1rem;-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;position:absolute;top:1.05rem;left:.85rem}.callout-title{font-family:var(--font-mono);color:var(--color);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.25rem;font-size:.78rem;font-weight:600;display:block}.callout>:not(.callout-title):first-child,.callout>.callout-title+*{margin-top:0}.callout p{color:var(--fg);margin:.4em 0}.callout--note{--color:var(--color-info);--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='16' x2='12' y2='12'/><line x1='12' y1='8' x2='12.01' y2='8'/></svg>")}.callout--tip{--color:var(--color-success);--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 18h6'/><path d='M10 22h4'/><path d='M12 2a7 7 0 0 0-4 12.7c.5.5.8 1.1.8 1.8V18h6.4v-1.5c0-.7.3-1.3.8-1.8A7 7 0 0 0 12 2z'/></svg>")}.callout--warning{--color:var(--color-warn);--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/><line x1='12' y1='9' x2='12' y2='13'/><line x1='12' y1='17' x2='12.01' y2='17'/></svg>")}.callout--danger{--color:var(--color-danger);--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='15' y1='9' x2='9' y2='15'/><line x1='9' y1='9' x2='15' y2='15'/></svg>")}.callout--important{--color:var(--color-accent);--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 9v4'/><path d='M12 17h.01'/><path d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/></svg>")}.dark-theme .callout:before{filter:invert()}.post-image{margin:1.75em 0}.post-image picture,.post-image img{border-radius:var(--radius-sm);border:1px solid var(--border-soft);cursor:zoom-in;width:auto;max-width:100%;height:auto;max-height:70vh;margin:0 auto;display:block}.post-image figcaption{font-family:var(--font-mono);color:var(--fg-subtle);text-align:center;margin-top:.6rem;font-size:.75rem}.lightbox{z-index:1000;opacity:0;pointer-events:none;transition:opacity .15s var(--ease-out-quad);cursor:zoom-out;background:#000000eb;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;inset:0}.lightbox.is-open{opacity:1;pointer-events:auto}.lightbox img{border-radius:var(--radius-sm);max-width:100%;max-height:100%;box-shadow:0 20px 60px #00000080}.toc{width:16rem;font-family:var(--font-mono);color:var(--fg-muted);overscroll-behavior:contain;border-left:1px solid var(--border-soft);max-height:calc(100vh - 4.5rem);transition:width .2s var(--ease-out-quad), padding .2s var(--ease-out-quad);scrollbar-width:thin;scrollbar-color:transparent transparent;flex-shrink:0;align-self:flex-start;padding:1.25rem 1.25rem 1rem;font-size:.78rem;line-height:1.6;position:sticky;top:4rem;overflow-y:auto}.toc:hover{scrollbar-color:var(--fg) transparent}@supports (color:color-mix(in lab, red, red)){.toc:hover{scrollbar-color:color-mix(in srgb, var(--fg) 22%, transparent) transparent}}.toc::-webkit-scrollbar{width:4px}.toc::-webkit-scrollbar-thumb{background:0 0;border:0;border-radius:999px}.toc:hover::-webkit-scrollbar-thumb{background:var(--fg)}@supports (color:color-mix(in lab, red, red)){.toc:hover::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--fg) 22%, transparent)}}@media (max-width:79.99em){.toc{display:none}}.toc-head{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;padding-bottom:.5rem;display:flex}.toc-label{font-family:var(--font-mono);color:var(--fg-subtle);text-transform:lowercase;letter-spacing:.08em;font-size:.7rem}.toc-toggle{border:1px solid var(--border);width:1.6rem;height:1.6rem;color:var(--fg-subtle);cursor:pointer;transition:color .15s var(--ease-out-quad), border-color .15s var(--ease-out-quad);background:0 0;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.toc-toggle:hover{color:var(--color-accent);border-color:var(--color-accent)}.toc.is-collapsed{width:2.5rem;padding:1.25rem .5rem 1rem;overflow:hidden}.toc.is-collapsed .toc-label,.toc.is-collapsed .toc-body{display:none}.toc.is-collapsed .toc-head{border-bottom:0;justify-content:center;margin-bottom:0;padding-bottom:0}.toc.is-collapsed .toc-icon-collapse{display:none}.toc.is-collapsed .toc-icon-expand{display:inline-block!important}.toc-body nav#TableOfContents>ul{margin:0;padding-left:0;list-style:none}.toc-body nav#TableOfContents ul ul{margin:0;padding-left:.85rem;list-style:none}.toc-body nav#TableOfContents li{margin:.15rem 0}.toc-body nav#TableOfContents a{color:var(--fg-muted);transition:color .15s var(--ease-out-quad), border-color .15s var(--ease-out-quad), background .15s var(--ease-out-quad);border-left:2px solid #0000;padding:.2rem .5rem;display:block}.toc-body nav#TableOfContents a:hover{color:var(--fg)}.toc-body nav#TableOfContents li.active>a{color:var(--color-accent);border-left-color:var(--color-accent);background:#e2582212}@supports (color:color-mix(in lab, red, red)){.toc-body nav#TableOfContents li.active>a{background:color-mix(in srgb, var(--color-accent) 7%, transparent)}}.toc-body nav#TableOfContents li.active>a{font-weight:500}.toc-inline{border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-soft);margin:1.5em 0 2em;padding:.75rem 1rem}@media (min-width:80em){.toc-inline{display:none}}.toc-inline summary{cursor:pointer;font-family:var(--font-mono);color:var(--fg-muted);font-size:.78rem;list-style:none}.toc-inline summary:before{content:"▸";color:var(--color-accent);transition:transform .15s var(--ease-out-quad);margin-right:.4rem;display:inline-block}.toc-inline[open] summary:before{transform:rotate(90deg)}.toc-inline nav{font-family:var(--font-mono);margin-top:.6rem;font-size:.8rem}.toc-inline nav ul{margin:0;padding-left:1rem;list-style:none}.toc-inline nav a{color:var(--fg-muted)}.toc-inline nav a:hover{color:var(--color-accent)}.post-foot{border-top:1px solid var(--border-soft);flex-direction:column;gap:2rem;margin-top:3rem;padding-top:1.5rem;display:flex}@media (min-width:56em){.post-foot{gap:2.5rem;margin-top:4rem;padding-top:2rem}}.post-nav{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (max-width:38em){.post-nav{grid-template-columns:1fr}}.post-nav a{border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .15s var(--ease-out-quad), background .15s var(--ease-out-quad);background:var(--bg-soft);padding:.85rem 1rem;display:block}.post-nav a:hover{border-color:var(--color-accent);background:#e25822}@supports (color:color-mix(in lab, red, red)){.post-nav a:hover{background:color-mix(in srgb, var(--color-accent) 4%, var(--bg-soft))}}.post-nav .label{font-family:var(--font-mono);color:var(--fg-subtle);text-transform:lowercase;letter-spacing:.08em;margin-bottom:.3rem;font-size:.7rem;display:block}.post-nav .title{color:var(--fg);font-weight:500}.post-nav .next{text-align:right}.post-nav .prev .label:before{content:"← ";color:var(--color-accent)}.post-nav .next .label:after{content:" →";color:var(--color-accent)}.related-section h2,.series-section h2{font-family:var(--font-mono);color:var(--fg-muted);text-transform:lowercase;letter-spacing:.06em;margin:0 0 1rem;font-size:.85rem;font-weight:500}.series-section h2 a{color:var(--color-accent);text-decoration:none}.series-section h2 a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.related-list{counter-reset:related;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.related-item{counter-increment:related;border-top:1px solid var(--border-soft)}.related-item:last-child{border-bottom:1px solid var(--border-soft)}.related-item a{transition:background .15s var(--ease-out-quad);grid-template-columns:2.25rem 1fr auto;align-items:baseline;gap:1rem;padding:.7rem .25rem;display:grid}.related-item a:before{content:counter(related, decimal-leading-zero);font-family:var(--font-mono);color:var(--color-accent);grid-column:1;font-size:.78rem}.related-item .title{color:var(--fg);transition:color .15s var(--ease-out-quad);grid-column:2;font-weight:500;line-height:1.35}.related-item .date{font-family:var(--font-mono);color:var(--fg-subtle);text-align:right;grid-column:3;font-size:.72rem}.related-item a:hover{background:#e258220d}@supports (color:color-mix(in lab, red, red)){.related-item a:hover{background:color-mix(in srgb, var(--color-accent) 5%, transparent)}}.related-item a:hover .title{color:var(--color-accent)}@media (max-width:38em){.related-item a{grid-template-rows:auto auto;grid-template-columns:2rem 1fr}.related-item .date{text-align:left;grid-column:2}}.series-list{border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-soft);margin:0;padding:0;list-style:none}.series-list li{border-bottom:1px solid var(--border-soft);font-family:var(--font-mono);gap:.75rem;padding:.55rem .9rem;font-size:.85rem;display:flex}.series-list li:last-child{border-bottom:0}.series-list li.current{color:var(--fg)}.series-list li.current:before{content:"▸ ";color:var(--color-accent)}.series-list li a{color:var(--fg-muted)}.series-list li a:hover{color:var(--color-accent)}.series-list .date{color:var(--fg-subtle);flex-shrink:0}.home-hero{margin-bottom:3rem}.home-hero .prompt{font-family:var(--font-mono);color:var(--color-accent);margin-bottom:.6rem;font-size:.85rem}.home-hero h1{font-family:var(--font-display);letter-spacing:-.025em;margin:0 0 .6rem;font-size:clamp(2rem,1.6rem + 2vw,2.8rem);font-weight:700;line-height:1.15}.home-hero p{color:var(--fg-muted);max-width:38rem;margin:0}.timeline{margin:0;padding:0;list-style:none}.timeline-year{font-family:var(--font-mono);color:var(--fg-subtle);border-bottom:1px dashed var(--border);letter-spacing:.05em;margin:2rem 0 .5rem;padding-bottom:.4rem;font-size:.9rem}.timeline-item{border-bottom:1px solid var(--border-soft);grid-template-columns:5.5rem 1fr;align-items:baseline;gap:1rem;padding:.85rem 0;display:grid}@media (max-width:38em){.timeline-item{grid-template-columns:1fr;gap:.25rem}}.timeline-item:hover{background:#e2582208}@supports (color:color-mix(in lab, red, red)){.timeline-item:hover{background:color-mix(in srgb, var(--color-accent) 3%, transparent)}}.timeline-item .date{font-family:var(--font-mono);color:var(--fg-subtle);font-size:.78rem}.timeline-item .title{color:var(--fg);font-size:1.05rem;line-height:1.4}.timeline-item:hover .title{color:var(--color-accent)}.timeline-item .summary{color:var(--fg-muted);grid-column:2;margin-top:.2rem;font-size:.92rem}@media (max-width:38em){.timeline-item .summary{grid-column:1}}.timeline-item .tags{grid-column:2;margin-top:.4rem}@media (max-width:38em){.timeline-item .tags{grid-column:1}}.timeline--no-date .timeline-item{grid-template-columns:1fr}.timeline--no-date .timeline-item .summary,.timeline--no-date .timeline-item .tags{grid-column:1}.pagination{font-family:var(--font-mono);justify-content:center;align-items:center;gap:.4rem;margin:3rem 0 1rem;font-size:.85rem;display:flex}.pagination a,.pagination span{border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--fg-muted);transition:color .15s var(--ease-out-quad), border-color .15s var(--ease-out-quad);padding:.4rem .65rem;display:inline-block}.pagination a:hover,.pagination .current{color:var(--color-accent);border-color:var(--color-accent)}.search-modal{z-index:100;opacity:0;pointer-events:none;transition:opacity .15s var(--ease-out-quad);background:#0000008c;justify-content:center;align-items:flex-start;padding:4rem .75rem 1rem;display:flex;position:fixed;inset:0}@media (min-width:40em){.search-modal{padding:6rem 1rem 2rem}}.search-modal.is-open{opacity:1;pointer-events:auto}.search-panel{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;width:min(36rem,100%);max-height:70vh;display:flex;overflow:hidden;box-shadow:0 30px 80px #00000059}.search-input-wrap{border-bottom:1px solid var(--border-soft);align-items:center;gap:.6rem;padding:.85rem 1rem;display:flex}.search-input-wrap .prompt{font-family:var(--font-mono);color:var(--color-accent)}.search-input{color:var(--fg);font-family:var(--font-mono);background:0 0;border:0;outline:0;flex:1;font-size:.95rem}.search-results{padding:.5rem 0;overflow-y:auto}.search-result{border-bottom:1px solid var(--border-soft);padding:.65rem 1rem;display:block}.search-result:hover,.search-result.is-active{background:#e2582214}@supports (color:color-mix(in lab, red, red)){.search-result:hover,.search-result.is-active{background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.search-result .title{color:var(--fg);margin-bottom:.2rem;font-weight:500}.search-result .excerpt{color:var(--fg-muted);font-size:.85rem;line-height:1.4}.search-result mark{background:var(--color-accent-glow);color:var(--color-accent);border-radius:2px;padding:0 .15em}.search-empty{text-align:center;color:var(--fg-subtle);font-family:var(--font-mono);padding:1rem;font-size:.85rem}.search-foot{border-top:1px solid var(--border-soft);font-family:var(--font-mono);color:var(--fg-subtle);gap:1rem;padding:.5rem 1rem;font-size:.7rem;display:flex}.search-foot .kbd{border:1px solid var(--border);border-radius:3px;margin-right:.3rem;padding:.1rem .35rem}.footnotes{border-top:1px solid var(--border-soft);color:var(--fg-muted);margin-top:3rem;padding-top:1.5rem;font-size:.9rem}.footnotes ol{padding-left:1.5rem}.footnote-popover{z-index:50;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);max-width:22rem;color:var(--fg);pointer-events:none;padding:.65rem .85rem;font-size:.85rem;line-height:1.5;position:absolute;box-shadow:0 10px 30px #0000002e}.footnote-ref a{font-family:var(--font-mono);color:var(--color-accent);padding:0 .15em;font-size:.78em;text-decoration:none}.mermaid-wrap{border:1px solid var(--border-soft);border-radius:var(--radius-sm);margin:1.25rem 0;overflow:hidden}.mermaid-toolbar{background:var(--bg-soft);border-bottom:1px solid var(--border-soft);justify-content:flex-end;align-items:center;gap:.5rem;padding:.4rem .7rem;display:flex}.dark-theme .mermaid-toolbar{background:#16171f;border-color:#2a2b36}pre.mermaid{background:var(--bg-soft);text-align:center;margin:0;padding:1rem;overflow-x:auto}pre.mermaid svg{max-width:100%;height:auto}pre.mermaid.has-panzoom{cursor:grab;text-align:left;overflow:hidden}pre.mermaid.has-panzoom:active{cursor:grabbing}pre.mermaid.has-panzoom svg{width:100%;max-width:none}.mermaid-error{text-align:left;border-left:3px solid var(--color-danger);background:#d65a5a14}@supports (color:color-mix(in lab, red, red)){.mermaid-error{background:color-mix(in srgb, var(--color-danger) 8%, transparent)}}.mermaid-error{border-radius:var(--radius-xs);padding:.75rem 1rem;font-size:.85rem}.mermaid-error-msg{color:var(--color-danger);font-family:var(--font-mono);margin:0 0 .5rem}.mermaid-error details summary{cursor:pointer;color:var(--fg-subtle);font-size:.78rem}.mermaid-error-src{background:var(--bg-raised);border-radius:var(--radius-xs);font-family:var(--font-mono);white-space:pre;margin:.5rem 0 0;padding:.6rem .8rem;font-size:.78rem;overflow-x:auto}.katex-display{padding:.5rem 0;overflow:auto hidden}.badge-project{font-family:var(--font-mono);border:1px solid var(--color-accent);border-radius:var(--radius-pill);color:var(--color-accent);background:#e2582214;margin-left:.5rem;padding:.2rem .45rem;font-size:.65rem;line-height:1;display:inline-block}@supports (color:color-mix(in lab, red, red)){.badge-project{background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.badge-project{letter-spacing:.04em;vertical-align:middle;text-transform:lowercase}.series-badge{font-family:var(--font-mono);color:var(--fg-muted);letter-spacing:.04em;text-transform:lowercase;margin:0 0 .6rem;font-size:.8rem}.series-badge a{color:var(--color-accent);text-decoration:none}.series-badge a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.series-badge .series-progress{color:var(--fg-subtle);margin-left:.15rem}.sort-note{font-family:var(--font-mono);color:var(--fg-muted);letter-spacing:.04em;margin:.4rem 0 0;font-size:.78rem}.tag-count{font-family:var(--font-mono);color:var(--fg-subtle);border-radius:var(--radius-pill);background:var(--fg-muted);margin-left:.55rem;padding:.1rem .4rem;font-size:.7rem;display:inline-block}@supports (color:color-mix(in lab, red, red)){.tag-count{background:color-mix(in srgb, var(--fg-muted) 10%, transparent)}}.tag-count{vertical-align:middle;line-height:1}.badge-series{font-family:var(--font-mono);border:1px solid var(--color-accent-soft);border-radius:var(--radius-pill);color:var(--color-accent-soft);background:#f0a07a1a;margin-left:.5rem;padding:.2rem .45rem;font-size:.65rem;line-height:1;display:inline-block}@supports (color:color-mix(in lab, red, red)){.badge-series{background:color-mix(in srgb, var(--color-accent-soft) 10%, transparent)}}.badge-series{letter-spacing:.04em;vertical-align:middle;text-transform:lowercase;font-weight:400}.project-grid{grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.project-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .15s var(--ease-out-quad), transform .15s var(--ease-out-quad), box-shadow .15s var(--ease-out-quad);flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--color-accent);box-shadow:0 6px 20px var(--color-accent-glow);transform:translateY(-2px)}.project-card__link{z-index:1;position:absolute;inset:0}.project-card__repo,.project-card__tags .tag{z-index:2;position:relative}.project-card__media{aspect-ratio:16/9;background:var(--bg-soft);overflow:hidden}.project-card__media img{object-fit:cover;width:100%;height:100%;transition:transform .3s var(--ease-out-quad);display:block}.project-card:hover .project-card__media img{transform:scale(1.03)}.project-card__body{flex-direction:column;flex:1;gap:.5rem;padding:1rem 1.1rem 1.1rem;display:flex}.project-card__meta{font-family:var(--font-mono);color:var(--fg-subtle);justify-content:space-between;align-items:center;font-size:.72rem;display:flex}.project-card__repo{color:var(--color-accent)}.project-card__repo:hover{text-decoration:underline}.project-card__title{font-family:var(--font-display);color:var(--fg);margin:0;font-size:1.15rem;font-weight:600;line-height:1.3}.project-card:hover .project-card__title{color:var(--color-accent)}.project-card__summary{color:var(--fg-muted);margin:0;font-size:.9rem;line-height:1.5}.project-card__tags{margin-top:auto;padding-top:.25rem}}@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@layer chroma{.bg{color:#4c4f69;background-color:#eff1f5}.chroma{color:#4c4f69;-webkit-text-size-adjust:none;background-color:#eff1f5}.chroma .err{color:#d20f39}.chroma .lnlinks{color:inherit;outline:none;text-decoration:none}.chroma .lntd{vertical-align:top;border:0;margin:0;padding:0}.chroma .lntable{border-spacing:0;border:0;margin:0;padding:0}.chroma .hl{background-color:#bcc0cc}.chroma .lnt,.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;color:#8c8fa1;margin-right:.4em;padding:0 .4em}.chroma .line{display:flex}.chroma .k{color:#8839ef}.chroma .kc{color:#fe640b}.chroma .kd{color:#d20f39}.chroma .kn{color:#179299}.chroma .kp,.chroma .kr{color:#8839ef}.chroma .kt{color:#d20f39}.chroma .na{color:#1e66f5}.chroma .nc,.chroma .no{color:#df8e1d}.chroma .nd{color:#1e66f5;font-weight:700}.chroma .ni{color:#179299}.chroma .ne{color:#fe640b}.chroma .nl{color:#04a5e5}.chroma .nn,.chroma .py{color:#fe640b}.chroma .nt{color:#8839ef}.chroma .nb,.chroma .bp{color:#04a5e5}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:#dc8a78}.chroma .nf,.chroma .fm{color:#1e66f5}.chroma .s{color:#40a02b}.chroma .sa{color:#d20f39}.chroma .sb,.chroma .sc{color:#40a02b}.chroma .dl{color:#1e66f5}.chroma .sd{color:#9ca0b0}.chroma .s2{color:#40a02b}.chroma .se{color:#1e66f5}.chroma .sh{color:#9ca0b0}.chroma .si,.chroma .sx{color:#40a02b}.chroma .sr{color:#179299}.chroma .s1,.chroma .ss{color:#40a02b}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#fe640b}.chroma .o,.chroma .ow{color:#04a5e5;font-weight:700}.chroma .c{color:#9ca0b0;font-style:italic}.chroma .ch{color:#acb0be;font-style:italic}.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp{color:#9ca0b0;font-style:italic}.chroma .cpf{color:#9ca0b0;font-style:italic;font-weight:700}.chroma .gd{color:#d20f39;background-color:#ccd0da}.chroma .ge{font-style:italic}.chroma .gr{color:#d20f39}.chroma .gh{color:#fe640b;font-weight:700}.chroma .gi{color:#40a02b;background-color:#ccd0da}.chroma .gs{font-weight:700}.chroma .gu{color:#fe640b;font-weight:700}.chroma .gt{color:#d20f39}.chroma .gl{text-decoration:underline}.dark-theme .bg{color:#c0caf5;background-color:#1a1b26}.dark-theme .chroma{color:#c0caf5;-webkit-text-size-adjust:none;background-color:#1a1b26}.dark-theme .chroma .err{color:#db4b4b}.dark-theme .chroma .lnlinks{color:inherit;outline:none;text-decoration:none}.dark-theme .chroma .lntd{vertical-align:top;border:0;margin:0;padding:0}.dark-theme .chroma .lntable{border-spacing:0;border:0;margin:0;padding:0}.dark-theme .chroma .hl{background-color:#414868}.dark-theme .chroma .lnt,.dark-theme .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;color:#a9b1d6;margin-right:.4em;padding:0 .4em}.dark-theme .chroma .line{display:flex}.dark-theme .chroma .k{color:#bb9af7}.dark-theme .chroma .kc{color:#e0af68}.dark-theme .chroma .kd{color:#9d7cd8}.dark-theme .chroma .kn{color:#7dcfff}.dark-theme .chroma .kp,.dark-theme .chroma .kr{color:#bb9af7}.dark-theme .chroma .kt{color:#41a6b5}.dark-theme .chroma .na{color:#7aa2f7}.dark-theme .chroma .nc,.dark-theme .chroma .no{color:#ff9e64}.dark-theme .chroma .nd{color:#7aa2f7;font-weight:700}.dark-theme .chroma .ni{color:#7dcfff}.dark-theme .chroma .ne{color:#e0af68}.dark-theme .chroma .nl{color:#9ece6a}.dark-theme .chroma .nn,.dark-theme .chroma .py{color:#e0af68}.dark-theme .chroma .nt{color:#bb9af7}.dark-theme .chroma .nb,.dark-theme .chroma .bp{color:#9ece6a}.dark-theme .chroma .nf,.dark-theme .chroma .fm{color:#7aa2f7}.dark-theme .chroma .s{color:#9ece6a}.dark-theme .chroma .sa{color:#9d7cd8}.dark-theme .chroma .sb,.dark-theme .chroma .sc{color:#9ece6a}.dark-theme .chroma .dl{color:#7aa2f7}.dark-theme .chroma .sd{color:#414868}.dark-theme .chroma .s2{color:#9ece6a}.dark-theme .chroma .se{color:#7aa2f7}.dark-theme .chroma .sh{color:#414868}.dark-theme .chroma .si,.dark-theme .chroma .sx{color:#9ece6a}.dark-theme .chroma .sr{color:#7dcfff}.dark-theme .chroma .s1,.dark-theme .chroma .ss{color:#9ece6a}.dark-theme .chroma .m,.dark-theme .chroma .mb,.dark-theme .chroma .mf,.dark-theme .chroma .mh,.dark-theme .chroma .mi,.dark-theme .chroma .il,.dark-theme .chroma .mo{color:#e0af68}.dark-theme .chroma .o,.dark-theme .chroma .ow{color:#9ece6a;font-weight:700}.dark-theme .chroma .c,.dark-theme .chroma .ch,.dark-theme .chroma .cm,.dark-theme .chroma .c1,.dark-theme .chroma .cs,.dark-theme .chroma .cp{color:#414868;font-style:italic}.dark-theme .chroma .cpf{color:#414868;font-style:italic;font-weight:700}.dark-theme .chroma .gd{color:#db4b4b;background-color:#15161e}.dark-theme .chroma .ge{font-style:italic}.dark-theme .chroma .gr{color:#db4b4b}.dark-theme .chroma .gh{color:#e0af68;font-weight:700}.dark-theme .chroma .gi{color:#9ece6a;background-color:#15161e}.dark-theme .chroma .gs{font-weight:700}.dark-theme .chroma .gu{color:#e0af68;font-weight:700}.dark-theme .chroma .gt{color:#db4b4b}.dark-theme .chroma .gl{text-decoration:underline}}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/InterVariable.woff2)format("woff2-variations")}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/InterVariable-Italic.woff2)format("woff2-variations")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/JetBrainsMono-Variable.woff2)format("woff2-variations")}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:100 800;font-display:swap;src:url(/fonts/JetBrainsMono-Italic-Variable.woff2)format("woff2-variations")}.codeblock .chroma{background:0 0!important}.codeblock .chroma .lntable{display:block;overflow-x:auto}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
