*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:none;text-size-adjust:none;tab-size:4}body{min-height:100dvh;line-height:1.6;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:inherit;text-decoration-skip-ink:auto}ul,ol{list-style:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--color-bg: #0d1117;--color-surface: #161b22;--color-text: #e6edf3;--color-text-dim: #8b949e;--color-text-faint: #6e7681;--color-accent: #2cb5e8;--color-accent-hover: #58c8f0;--color-border: #21262d;--font-sans: "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", "Fira Code", monospace;--text-xs: clamp(.6875rem, .65rem + .2vw, .75rem);--text-sm: clamp(.8125rem, .77rem + .25vw, .9375rem);--text-base: clamp(1rem, .95rem + .25vw, 1.0625rem);--text-lg: clamp(1.125rem, 1rem + .6vw, 1.375rem);--text-xl: clamp(1.375rem, 1.1rem + 1.4vw, 2rem);--text-2xl: clamp(2rem, 1.4rem + 3vw, 3.5rem);--text-3xl: clamp(2.5rem, 1.6rem + 4.5vw, 5.25rem);--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;--space-24: 6rem;--space-32: 8rem;--space-48: 12rem;--max-width: 72rem;--gutter: clamp(1.5rem, 4vw, 3rem);--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-base: .25s;--radius-sm: 2px;--radius-md: 4px}@media(prefers-color-scheme:light){:root{--color-bg: #f0f4f8;--color-surface: #e2e8f0;--color-text: #1a1f26;--color-text-dim: #57606a;--color-text-faint: #8b949e;--color-accent: #0d8ecf;--color-accent-hover: #0a7ab8;--color-border: #d0d7de}}html{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.65;font-feature-settings:"kern" 1,"liga" 1,"calt" 1}body{background-color:var(--color-bg)}.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:var(--gutter)}.label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-faint)}.section-rule{border:none;border-top:1px solid var(--color-border)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}::selection{background-color:var(--color-accent);color:var(--color-bg)}.site-header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:100;background-color:color-mix(in srgb,var(--color-bg) 85%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.header-inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;padding-block:var(--space-4)}.wordmark[data-astro-cid-3ef6ksr2]{text-decoration:none;transition:opacity var(--duration-fast) var(--ease-out);display:flex;align-items:center;gap:var(--space-3)}.wordmark[data-astro-cid-3ef6ksr2]:hover{opacity:.8}.logo-img[data-astro-cid-3ef6ksr2]{height:2rem;width:auto;display:block}.wordmark-text[data-astro-cid-3ef6ksr2]{font-family:var(--font-sans);font-size:var(--text-base);font-weight:700;letter-spacing:.01em;color:var(--color-text)}.nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-8)}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--color-text-dim);transition:color var(--duration-fast) var(--ease-out)}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:var(--color-text)}.hero[data-astro-cid-bbe6dxrz]{padding-block:var(--space-48) var(--space-32)}.hero-content[data-astro-cid-bbe6dxrz]{max-width:44rem}.hero-headline[data-astro-cid-bbe6dxrz]{font-size:var(--text-3xl);font-weight:300;line-height:1.08;letter-spacing:-.02em;color:var(--color-text);margin-bottom:var(--space-8)}.hero-sub[data-astro-cid-bbe6dxrz]{font-size:var(--text-lg);color:var(--color-text-dim);line-height:1.55;max-width:34rem;margin-bottom:var(--space-12)}.hero-actions[data-astro-cid-bbe6dxrz]{display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap}.btn-primary[data-astro-cid-bbe6dxrz]{display:inline-block;background-color:var(--color-accent);color:var(--color-bg);font-size:var(--text-sm);font-weight:500;letter-spacing:.02em;text-decoration:none;padding:.65em 1.4em;border-radius:var(--radius-sm);transition:background-color var(--duration-fast) var(--ease-out)}.btn-primary[data-astro-cid-bbe6dxrz]:hover{background-color:var(--color-accent-hover)}.btn-secondary[data-astro-cid-bbe6dxrz]{display:inline-block;font-size:var(--text-sm);color:var(--color-text-dim);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--color-border);transition:color var(--duration-fast) var(--ease-out),text-decoration-color var(--duration-fast) var(--ease-out)}.btn-secondary[data-astro-cid-bbe6dxrz]:hover{color:var(--color-text);text-decoration-color:var(--color-text-dim)}@media(max-width:600px){.hero[data-astro-cid-bbe6dxrz]{padding-block:var(--space-32) var(--space-24)}}.about[data-astro-cid-v2cbyr3p]{padding-block:var(--space-24);border-top:1px solid var(--color-border)}.about-layout[data-astro-cid-v2cbyr3p]{display:grid;grid-template-columns:10rem 1fr;gap:var(--space-8);align-items:start}.about-label-col[data-astro-cid-v2cbyr3p]{padding-top:.35em}.about-content[data-astro-cid-v2cbyr3p]{max-width:38rem}.about-text[data-astro-cid-v2cbyr3p]{font-size:var(--text-lg);line-height:1.6;color:var(--color-text-dim)}.about-text[data-astro-cid-v2cbyr3p]+.about-text[data-astro-cid-v2cbyr3p]{margin-top:var(--space-6)}@media(max-width:640px){.about-layout[data-astro-cid-v2cbyr3p]{grid-template-columns:1fr;gap:var(--space-4)}}.products[data-astro-cid-qnwxz4mj]{padding-block:var(--space-24);border-top:1px solid var(--color-border)}.products-header[data-astro-cid-qnwxz4mj]{margin-bottom:var(--space-12)}.product-list[data-astro-cid-qnwxz4mj]{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,26rem),1fr));gap:1px;background-color:var(--color-border);border:1px solid var(--color-border)}.product[data-astro-cid-qnwxz4mj]{background-color:var(--color-bg)}.product-inner[data-astro-cid-qnwxz4mj]{padding:var(--space-8) var(--space-8) var(--space-8);display:flex;flex-direction:column;gap:var(--space-4);min-height:13rem}.product-meta[data-astro-cid-qnwxz4mj]{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4)}.product-name[data-astro-cid-qnwxz4mj]{font-size:var(--text-xl);font-weight:400;letter-spacing:-.01em;color:var(--color-text)}.product-status[data-astro-cid-qnwxz4mj]{color:var(--color-accent)}.product-desc[data-astro-cid-qnwxz4mj]{font-size:var(--text-base);color:var(--color-text-dim);line-height:1.6;max-width:32rem;flex:1}.product-link[data-astro-cid-qnwxz4mj]{display:inline-flex;align-items:center;gap:.2em;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;text-decoration:none;color:var(--color-text-dim);transition:color var(--duration-fast) var(--ease-out);margin-top:auto}.product-link[data-astro-cid-qnwxz4mj]:hover{color:var(--color-accent)}.link-arrow[data-astro-cid-qnwxz4mj]{font-size:.85em}.product--placeholder[data-astro-cid-qnwxz4mj] .product-inner[data-astro-cid-qnwxz4mj]{justify-content:flex-end}.product-name-placeholder[data-astro-cid-qnwxz4mj]{display:block;height:1.5rem;width:6rem;background-color:var(--color-surface);border-radius:var(--radius-sm)}.placeholder-label[data-astro-cid-qnwxz4mj]{align-self:flex-start}@media(max-width:640px){.product-list[data-astro-cid-qnwxz4mj]{grid-template-columns:1fr}}.philosophy[data-astro-cid-iaxkagjk]{padding-block:var(--space-24);border-top:1px solid var(--color-border)}.philosophy-header[data-astro-cid-iaxkagjk]{margin-bottom:var(--space-12)}.principles[data-astro-cid-iaxkagjk]{display:flex;flex-direction:column;gap:0}.principle[data-astro-cid-iaxkagjk]{display:grid;grid-template-columns:10rem 1fr;gap:var(--space-8);align-items:start;padding-block:var(--space-8);border-top:1px solid var(--color-border)}.principle[data-astro-cid-iaxkagjk]:last-child{border-bottom:1px solid var(--color-border)}.principle-label[data-astro-cid-iaxkagjk]{padding-top:.25em}.principle-body[data-astro-cid-iaxkagjk]{max-width:36rem}.principle-heading[data-astro-cid-iaxkagjk]{font-size:var(--text-base);font-weight:500;color:var(--color-text);margin-bottom:var(--space-2);letter-spacing:-.01em}.principle-text[data-astro-cid-iaxkagjk]{font-size:var(--text-base);color:var(--color-text-dim);line-height:1.65}@media(max-width:640px){.principle[data-astro-cid-iaxkagjk]{grid-template-columns:1fr;gap:var(--space-2)}}.site-footer[data-astro-cid-sz7xmlte]{padding-block:var(--space-24) var(--space-12);border-top:1px solid var(--color-border);margin-top:var(--space-24)}.footer-cta[data-astro-cid-sz7xmlte]{margin-bottom:var(--space-16)}.footer-cta-text[data-astro-cid-sz7xmlte]{font-size:var(--text-base);color:var(--color-text-dim);margin-bottom:var(--space-3)}.footer-email[data-astro-cid-sz7xmlte]{font-size:var(--text-xl);font-weight:300;letter-spacing:-.01em;color:var(--color-text);text-decoration:none;transition:color var(--duration-fast) var(--ease-out);display:inline-block}.footer-email[data-astro-cid-sz7xmlte]:hover{color:var(--color-accent)}.footer-bottom[data-astro-cid-sz7xmlte]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.footer-copy[data-astro-cid-sz7xmlte]{color:var(--color-text-faint)}.footer-links[data-astro-cid-sz7xmlte]{display:flex;gap:var(--space-6)}.footer-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--color-text-faint);transition:color var(--duration-fast) var(--ease-out)}.footer-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--color-text)}
