@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_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(/_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}:root{color-scheme:light;--color-bg:#f7f8fa;--color-surface:#fff;--color-text:#1a1f2b;--color-text-muted:#5b6475;--color-border:#dde1e8;--color-accent:#2f6feb;--color-on-accent:#fff;--color-link:#1f5bd6;--color-success:#2bb673;--color-success-text:#177a4a;--color-focus:#1f5bd6;--font-sans:"Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem);--text-3xl:clamp(2.25rem, 1.7rem + 2.6vw, 3.5rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--radius-sm:6px;--radius-md:10px;--radius-full:999px;--content-width:72rem;--gutter:var(--space-4);--header-height:4rem;--transition-fast:.15s ease}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg:#0f1419;--color-surface:#161c24;--color-text:#e6e9ef;--color-text-muted:#9aa3b2;--color-border:#2a323e;--color-link:#6c9cf5;--color-success-text:#2bb673;--color-focus:#6c9cf5}}:root[data-theme=dark]{color-scheme:dark;--color-bg:#0f1419;--color-surface:#161c24;--color-text:#e6e9ef;--color-text-muted:#9aa3b2;--color-border:#2a323e;--color-link:#6c9cf5;--color-success-text:#2bb673;--color-focus:#6c9cf5}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{background-color:var(--color-bg);min-height:100vh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);overflow-wrap:break-word;-webkit-font-smoothing:antialiased;line-height:1.6}img,svg,picture{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4{text-wrap:balance;line-height:1.2}p{text-wrap:pretty}a{color:var(--color-link);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}code,kbd,samp,time{font-family:var(--font-mono)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-sm)}.container{width:100%;max-width:var(--content-width);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--space-12)}.section-title{margin-bottom:var(--space-8);font-size:var(--text-2xl);letter-spacing:-.01em}@media (width>=48rem){.section{padding-block:var(--space-16)}}[id]{scroll-margin-top:calc(var(--header-height) + var(--space-4))}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:2.75rem;padding:var(--space-2) var(--space-6);border-radius:var(--radius-md);transition:background-color var(--transition-fast), border-color var(--transition-fast);border:1px solid #0000;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{color:var(--color-on-accent);background:var(--color-accent)}.btn-primary:hover{background:color-mix(in srgb, var(--color-accent) 85%, black)}.btn-secondary{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn-secondary:hover{background:var(--color-surface);border-color:var(--color-text-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--space-2);left:var(--space-2);z-index:100;padding:var(--space-2) var(--space-4);background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-sm);position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.theme-toggle[data-astro-cid-l6lhmie6]{width:2.75rem;height:2.75rem;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--transition-fast);background:0 0;place-items:center;padding:0;display:inline-grid}.theme-toggle[data-astro-cid-l6lhmie6][hidden]{display:none}.theme-toggle[data-astro-cid-l6lhmie6]:hover{background:var(--color-surface)}.icon[data-astro-cid-l6lhmie6]{grid-area:1/1}.icon-sun[data-astro-cid-l6lhmie6],.theme-toggle[data-astro-cid-l6lhmie6][aria-pressed=true] .icon-moon[data-astro-cid-l6lhmie6]{display:none}.theme-toggle[data-astro-cid-l6lhmie6][aria-pressed=true] .icon-sun[data-astro-cid-l6lhmie6]{display:block}.scroll-sentinel[data-astro-cid-nen7h5rs]{width:1px;height:1px;position:absolute;top:0}.site-header[data-astro-cid-nen7h5rs]{z-index:50;background:var(--color-bg);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border-bottom:1px solid #0000;position:sticky;top:0}.site-header[data-astro-cid-nen7h5rs][data-scrolled]{border-bottom-color:var(--color-border);box-shadow:0 4px 16px -12px #00000059}.header-inner[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-2) var(--space-4);min-height:var(--header-height);padding-block:var(--space-2);flex-wrap:wrap;display:flex}.site-nav[data-astro-cid-nen7h5rs]{order:3;width:100%}.nav-links[data-astro-cid-nen7h5rs]{gap:var(--space-1) var(--space-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}.nav-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding-block:var(--space-2);color:var(--color-text);text-decoration:none;display:inline-block}.nav-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--color-link)}.lang-switch[data-astro-cid-nen7h5rs]{min-width:2.75rem;height:2.75rem;padding-inline:var(--space-2);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-full);place-items:center;margin-left:auto;font-weight:600;text-decoration:none;display:inline-grid}.lang-switch[data-astro-cid-nen7h5rs]:hover{color:var(--color-link);background:var(--color-surface)}.menu-toggle[data-astro-cid-nen7h5rs]{border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;background:0 0;place-items:center;width:2.75rem;height:2.75rem;padding:0;display:inline-grid}.menu-toggle[data-astro-cid-nen7h5rs][hidden],.menu-toggle[data-astro-cid-nen7h5rs] .icon-close,.menu-toggle[data-astro-cid-nen7h5rs][aria-expanded=true] .icon-open{display:none}.menu-toggle[data-astro-cid-nen7h5rs][aria-expanded=true] .icon-close{display:block}@media (width<=47.99rem){.site-header[data-astro-cid-nen7h5rs][data-menu-ready] .header-inner[data-astro-cid-nen7h5rs]{column-gap:var(--space-2)}.site-header[data-astro-cid-nen7h5rs][data-menu-ready] .menu-toggle[data-astro-cid-nen7h5rs],.site-header[data-astro-cid-nen7h5rs][data-menu-ready] .lang-switch[data-astro-cid-nen7h5rs],.site-header[data-astro-cid-nen7h5rs][data-menu-ready] .theme-toggle{width:2.5rem;min-width:2.5rem;height:2.5rem}.site-header[data-astro-cid-nen7h5rs][data-menu-ready] .site-nav[data-astro-cid-nen7h5rs]{order:0;width:auto}.site-header[data-astro-cid-nen7h5rs][data-menu-ready] .nav-links[data-astro-cid-nen7h5rs]{padding:var(--space-2) var(--gutter) var(--space-4);background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-direction:column;gap:0;display:none;position:absolute;top:100%;left:0;right:0}.site-header[data-astro-cid-nen7h5rs][data-menu-open] .nav-links[data-astro-cid-nen7h5rs]{display:flex}.site-header[data-astro-cid-nen7h5rs][data-menu-ready] .nav-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding-block:var(--space-3);display:block}}@media (width>=48rem){.header-inner[data-astro-cid-nen7h5rs]{flex-wrap:nowrap}.site-nav[data-astro-cid-nen7h5rs]{order:0;width:auto}.menu-toggle[data-astro-cid-nen7h5rs]{display:none!important}}.tag-list[data-astro-cid-cm3albtb]{gap:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}li[data-astro-cid-cm3albtb]{padding:.125rem var(--space-2);color:var(--color-text-muted);font-family:var(--font-mono);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.8125rem}.project-type[data-astro-cid-3rlvtrsu]{color:var(--color-text-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;font-size:.8125rem}.site-footer[data-astro-cid-jo6i4kqk]{margin-top:var(--space-8);border-top:1px solid var(--color-border)}.footer-inner[data-astro-cid-jo6i4kqk]{justify-content:space-between;gap:var(--space-2) var(--space-6);padding-block:var(--space-8);color:var(--color-text-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}
