@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2)format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2)format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2)format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff)format("woff")}:root{color-scheme:light;--color-bg:#f7f8fa;--color-surface:#fff;--color-text-primary:#17191d;--color-text-secondary:#5e6470;--color-text-tertiary:#7a818d;--color-border:#dde1e7;--color-border-strong:#c8cdd5;--color-accent:#2457d6;--color-accent-hover:#1947ba;--color-accent-subtle:#eef3ff;--color-accent-subtle-strong:#dce7ff;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--text-hero:64px;--text-hero-positioning:36px;--text-h2:32px;--text-h3:22px;--text-lead:22px;--text-body-lg:19px;--text-body:17px;--text-small:15px;--text-meta:15px;--text-eyebrow:12px;--text-caption:13px;--content-page:1240px;--content-media:1120px;--content-media-compact:920px;--content-reading:720px;--content-reading-narrow:640px;--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;--space-10:128px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--border-default:1px;--header-height:64px;--header-height-mobile:60px;--page-padding:32px}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-body);margin:0;line-height:1.7}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600}h2{font-size:var(--text-h2);letter-spacing:-.015em;line-height:1.18}h3{font-size:var(--text-h3);line-height:1.3}a{color:var(--color-accent);text-underline-offset:.25em}a:hover{color:var(--color-accent-hover)}:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}[id]{scroll-margin-top:calc(var(--header-height) + var(--space-5))}.container{width:calc(100% - var(--page-padding) * 2);max-width:var(--content-page);margin-inline:auto}.skip-link{top:var(--space-3);left:var(--page-padding);z-index:2;padding:var(--space-3) var(--space-4);background:var(--color-surface);transform:translateY(calc(-100% - var(--space-5)));position:fixed}.skip-link:focus{transform:translateY(0)}.site-header{z-index:1;background:var(--color-bg);border-bottom:var(--border-default) solid var(--color-border);position:sticky;top:0}.header-inner{min-height:var(--header-height);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.site-header a{min-height:44px;font-size:var(--text-meta);align-items:center;text-decoration:none;display:inline-flex}.site-name{color:var(--color-text-primary);font-weight:600}.site-header nav a{color:var(--color-text-secondary);font-weight:500}.site-header a:hover{color:var(--color-text-primary);text-decoration:underline}.hero{padding-block:var(--space-9)}.hero h1{font-size:var(--text-hero);letter-spacing:-.035em;line-height:1.03}.hero-positioning{margin-top:var(--space-4);font-size:var(--text-hero-positioning);letter-spacing:-.025em;font-weight:500;line-height:1.15}.hero-specialization{margin-top:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-lead);line-height:1.45}.hero-copy{max-width:var(--content-reading);margin-top:var(--space-5);color:var(--color-text-secondary);font-size:var(--text-body-lg);line-height:1.65}.hero-actions{align-items:center;gap:var(--space-5);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.primary-cta{border:var(--border-default) solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-accent);min-height:44px;color:var(--color-surface);justify-content:center;align-items:center;padding:12px 18px;font-size:15px;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}.primary-cta:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover);color:var(--color-surface)}.primary-cta:focus-visible{outline-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.secondary-link,.footer-links a{align-items:center;gap:var(--space-2);min-height:44px;font-weight:500;display:inline-flex}.secondary-link{color:var(--color-text-primary)}.selected-work{padding-bottom:var(--space-9)}.case-list{gap:var(--space-7);margin-top:var(--space-7);display:grid}.case-card{border:var(--border-default) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-width:0}.case-card-media{min-width:0;margin:0}.case-card-media img{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;height:auto;display:block}.case-card-media img[src$=\.svg]{max-width:360px;margin-inline:auto}.case-card-caption{margin-top:var(--space-5);color:var(--color-text-secondary);font-size:var(--text-caption);line-height:1.55}.case-card-content{min-width:0;padding:var(--space-5);overflow-wrap:anywhere}.case-card--primary .case-card-content{max-width:calc(360px + var(--space-5) * 2);margin-inline:auto}.case-card-content h3{margin-bottom:var(--space-5)}.case-card-problem,.case-card-responsibility{color:var(--color-text-secondary)}.case-card-responsibility{margin-top:var(--space-5)}.case-card-responsibility strong{color:var(--color-text-primary);font-weight:600;display:block}.case-card-capabilities{gap:var(--space-2) var(--space-4);margin:var(--space-5) 0 0;color:var(--color-text-secondary);font-size:var(--text-meta);flex-wrap:wrap;padding:0;list-style:none;display:flex}.case-card-capabilities li{border-top:var(--border-default) solid var(--color-border);padding-top:var(--space-2)}.case-card--secondary{font-size:var(--text-small);line-height:1.6}.case-card--secondary .case-card-content h3{font-size:var(--text-body-lg);margin-bottom:var(--space-4)}.case-card--secondary .case-card-responsibility,.case-card--secondary .case-card-capabilities{margin-top:var(--space-4)}@media (width>=1024px){.case-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.case-card-content{padding:var(--space-7)}.case-card--primary .case-card-content{max-width:calc(360px + var(--space-7) * 2)}.case-card-media img{border-radius:var(--radius-lg) 0 0 0}.selected-work .case-list>.case-card--primary:nth-child(2) .case-card-media{grid-area:1/2}.selected-work .case-list>.case-card--primary:nth-child(2) .case-card-content{grid-area:1/1}.selected-work .case-list>.case-card--primary:nth-child(2) .case-card-media img{border-radius:0 var(--radius-lg) 0 0}.case-card--secondary{grid-template-columns:320px minmax(0,1fr)}.case-card--secondary .case-card-content{padding:var(--space-6)}}.eyebrow{margin-bottom:var(--space-3);color:var(--color-text-secondary);font-size:var(--text-eyebrow);letter-spacing:.08em;font-weight:600;line-height:1.3}.site-footer{border-top:var(--border-default) solid var(--color-border);padding-block:var(--space-7);font-size:var(--text-small);line-height:1.55}.footer-name{font-weight:600}.footer-links{gap:var(--space-5);margin-top:var(--space-3);flex-wrap:wrap;display:flex}@media (width<=1024px){:root{--page-padding:24px}}@media (width<=767px){:root{--page-padding:20px;--header-height:var(--header-height-mobile);--text-hero:42px;--text-hero-positioning:28px;--text-h2:28px;--text-h3:21px;--text-lead:19px;--text-body-lg:18px;--text-small:14px;--text-meta:14px;--text-eyebrow:11px}.hero{padding-top:var(--space-8);padding-bottom:var(--space-9)}.hero h1{line-height:1.05}.hero-positioning{line-height:1.2}.hero-specialization{line-height:1.5}h2{line-height:1.2}.selected-work{padding-bottom:var(--space-8)}}.site-header nav{gap:var(--space-5);flex-wrap:wrap;display:flex}.site-header nav a{justify-content:center;min-width:44px}.reading{max-width:var(--content-reading)}.home-section{padding-bottom:var(--space-9)}.home-section>p,.section-intro{margin-top:var(--space-5);color:var(--color-text-secondary)}.home-section>.secondary-link,.section-link{margin-top:var(--space-5)}.editorial-page{padding-block:var(--space-8) var(--space-9)}.editorial-page h1{letter-spacing:-.025em;font-size:44px;line-height:1.08}.editorial-page p{margin-top:var(--space-5);color:var(--color-text-secondary)}.editorial-lead{font-size:var(--text-lead);line-height:1.45}.editorial-section{margin-top:var(--space-7)}.editorial-links,.contact-links{gap:var(--space-3) var(--space-5);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.contact-email{overflow-wrap:anywhere;flex-basis:100%}.repository-grid{gap:var(--space-5);margin-top:var(--space-6);display:grid}.repository-list{gap:var(--space-6);margin-top:var(--space-7);display:grid}.repository-card{min-width:0;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow-wrap:anywhere}.repository-card:hover{border-color:var(--color-border-strong)}.repository-card--primary{border-top:3px solid var(--color-border-strong)}.repository-card--secondary{background:var(--color-bg)}.repository-name{font-family:var(--font-mono);font-size:var(--text-body);line-height:1.4}.repository-card p{margin-top:var(--space-4);color:var(--color-text-secondary)}.repository-meta{gap:var(--space-2) var(--space-4);margin:var(--space-5) 0;color:var(--color-text-secondary);font-size:var(--text-meta);flex-wrap:wrap;padding:0;list-style:none;display:flex}.repository-meta li{border-top:1px solid var(--color-border);padding-top:var(--space-2)}.repository-card h3:not(.repository-name){font-size:var(--text-body-lg)}.repository-aspects{margin-block:var(--space-4) var(--space-5);padding-left:var(--space-5);color:var(--color-text-secondary)}.repository-aspects li+li{margin-top:var(--space-3)}@media (width>=1024px){.repository-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start}}@media (width<=767px){:root{--header-height-mobile:112px}.header-inner{padding-block:var(--space-2);gap:0;display:grid}.site-name{justify-self:start}.site-header nav{gap:var(--space-2);justify-content:space-between}.home-section{padding-bottom:var(--space-8)}.editorial-page{padding-block:var(--space-7) var(--space-8)}.editorial-page h1{font-size:36px;line-height:1.1}.repository-card{padding:var(--space-5)}}@media (width<=359px){:root{--header-height-mobile:156px}.site-header nav{gap:0 var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}
