@font-face{font-family:bricolage grotesque;src:url(/fonts/bricolage-grotesque-latin-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:ibm plex sans;src:url(/fonts/ibm-plex-sans-latin-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:ibm plex sans;src:url(/fonts/ibm-plex-sans-latin-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:ibm plex mono;src:url(/fonts/ibm-plex-mono-latin-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--paper:#f7f7f4;--paper-raised:#ffffff;--ink:#1a1d21;--muted:#50565f;--accent:#2743d0;--accent-ink:#1e33a3;--line:#dcdcd4;--line-strong:#b9b9ae;--font-display:"Bricolage Grotesque", "Arial Black", sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--step-0:1.0625rem;--step-1:clamp(1.15rem, 1.05rem + 0.5vw, 1.35rem);--step-2:clamp(1.4rem, 1.2rem + 1vw, 1.9rem);--step-3:clamp(1.8rem, 1.4rem + 2vw, 2.6rem);--step-4:clamp(2.3rem, 1.6rem + 3.6vw, 3.8rem);--step-mono:0.8125rem;--space-1:0.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--space-6:6.5rem;--container:68rem;--radius:6px}*,*::before,*::after{box-sizing:border-box}html{scroll-padding-top:5rem}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{max-width:100%;height:auto;display:block}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.1;margin:0 0 var(--space-3);text-wrap:balance}h1{font-size:var(--step-4);letter-spacing:-.02em}h2{font-size:var(--step-3);letter-spacing:-.015em}h3{font-size:var(--step-1)}p{margin:0 0 var(--space-2)}a{color:var(--accent);text-underline-offset:.15em}a:hover{color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent);color:var(--paper)}.eyebrow{font-family:var(--font-mono);font-size:var(--step-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 var(--space-2)}.skip-link{position:absolute;left:var(--space-2);top:-4rem;z-index:100;background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:var(--radius);transition:top 120ms ease-out}.skip-link:focus{top:var(--space-2)}.button{display:inline-block;font-family:var(--font-body);font-weight:600;font-size:1rem;line-height:1;padding:.9rem 1.5rem;border-radius:var(--radius);border:1.5px solid var(--accent);background:var(--accent);color:var(--paper-raised);text-decoration:none;cursor:pointer}.button:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--paper-raised)}.button-ghost{background:0 0;color:var(--accent)}.button-ghost:hover{background:0 0;color:var(--accent-ink)}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.nav{max-width:var(--container);margin-inline:auto;padding:.8rem var(--space-3);display:flex;align-items:center;gap:var(--space-3)}.brand{font-family:var(--font-display);font-size:1.2rem;color:var(--ink);text-decoration:none;margin-right:auto;display:flex;align-items:center;gap:.55rem}.brand:hover{color:var(--accent)}.brand-mark{width:32px;height:32px;flex:none}.nav-links{list-style:none;display:flex;gap:var(--space-3);margin:0;padding:0}.nav-links a{font-family:var(--font-mono);font-size:var(--step-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:.3rem 0;border-bottom:2px solid transparent}.nav-links a:hover{color:var(--ink)}.nav-links a[aria-current=true]{color:var(--ink);border-bottom-color:var(--accent)}.lang-switch{font-family:var(--font-mono);font-size:var(--step-mono);color:var(--ink);text-decoration:none;border:1px solid var(--line-strong);border-radius:var(--radius);padding:.35rem .7rem}.lang-switch:hover{border-color:var(--accent);color:var(--accent)}main section{max-width:var(--container);margin-inline:auto;padding:var(--space-6)var(--space-3);border-top:1px solid var(--line)}main section:first-child{border-top:none}.hero{padding-top:var(--space-6);padding-bottom:var(--space-6)}.hero h1{max-width:22ch}.hero-sub{font-size:var(--step-1);color:var(--muted);max-width:52ch;margin-bottom:var(--space-4)}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.about-grid{display:grid;grid-template-columns:minmax(0,1fr)260px;gap:var(--space-5);align-items:start}.about-body{max-width:62ch}.about-portrait{margin:0;grid-column:2;grid-row:1}.about-portrait img{width:100%;border:1px solid var(--line);border-radius:var(--radius)}@media(max-width:900px){.about-grid{grid-template-columns:1fr;gap:var(--space-3)}.about-portrait{grid-column:1;max-width:200px}}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-4)}.service{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-3);display:flex;flex-direction:column}.service p{color:var(--muted);font-size:.9375rem;flex-grow:1}.service-link{font-family:var(--font-mono);font-size:var(--step-mono);text-decoration:none}.service-link:hover{text-decoration:underline}@media(max-width:900px){.service-grid{grid-template-columns:1fr}}.sr-radio{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.filter-labels{display:flex;flex-wrap:wrap;gap:var(--space-1);margin:var(--space-3)0 var(--space-4)}.filter-labels label{font-family:var(--font-mono);font-size:var(--step-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.45rem .9rem;cursor:pointer}.filter-labels label:hover{border-color:var(--ink)}.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.card-featured{grid-column:1/-1}.card-inner{display:flex;flex-direction:column;height:100%}.card-featured .card-inner{display:grid;grid-template-columns:minmax(0,5fr)minmax(0,6fr);align-items:start}.card-media{border-bottom:1px solid var(--line);background:var(--paper)}.card-featured .card-media{border-bottom:none;border-right:1px solid var(--line);height:100%;padding:var(--space-3)}.card-media img{width:100%;height:100%;object-fit:cover;object-position:top}.card-featured .card-media img{height:auto;object-fit:initial;border:1px solid var(--line);border-radius:var(--radius);position:sticky;top:5rem}.card-content{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.card-content>*{margin:0}.card-type{font-family:var(--font-mono);font-size:var(--step-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.card-content h3{margin:0;font-size:var(--step-2)}.card-tagline{font-weight:600;color:var(--ink)}.card-summary{color:var(--muted);font-size:.9375rem}.card-summary p{margin:0}.stats{list-style:none;margin:var(--space-2)0 0;padding:var(--space-3)0 0;border-top:1px solid var(--line);display:flex;gap:var(--space-5);flex-wrap:wrap}.stat{display:flex;flex-direction:column;gap:.35rem}.stat-figure{font-family:var(--font-display);font-weight:700;font-size:clamp(3.2rem,3rem + 3vw,5rem);line-height:.95;letter-spacing:-.03em;color:var(--ink)}.stat-symbol{color:var(--accent)}.stat-label{font-family:var(--font-mono);font-size:var(--step-mono);color:var(--muted);max-width:24ch}.specs{list-style:none;margin:var(--space-2)0 0;padding:var(--space-3)0 0;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--step-mono);color:var(--ink);display:flex;flex-direction:column;gap:.55rem}.specs li{padding-left:1.2rem;position:relative}.specs li::before{content:"▸";position:absolute;left:0;color:var(--accent)}.testimonial{margin:var(--space-2)0 0;border-left:3px solid var(--accent);padding-left:var(--space-2)}.testimonial blockquote{margin:0;font-style:italic}.testimonial figcaption{font-family:var(--font-mono);font-size:var(--step-mono);color:var(--muted);margin-top:.4rem}.sites-grid{list-style:none;margin:var(--space-2)0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.site-entry img{border:1px solid var(--line);border-radius:var(--radius)}.site-name{font-weight:600;margin:.6rem 0 .15rem}.site-name a{color:var(--ink);text-decoration:none}.site-name a:hover{color:var(--accent);text-decoration:underline}.site-note{font-size:.875rem;color:var(--muted);margin:0}.tech{margin:var(--space-2)0 0;padding:var(--space-3)0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.6rem}.tech-group{display:flex;align-items:baseline;gap:var(--space-2)}.tech-group dt{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex:0 0 6.5rem}.tech-group dd{margin:0}.tech-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.tech-tags li{font-family:var(--font-mono);font-size:.75rem;border:1px solid var(--line);border-radius:999px;padding:.15rem .6rem;color:var(--ink)}.card-links{margin-top:auto;padding-top:var(--space-2);display:flex;flex-wrap:wrap;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--step-mono)}.card-links a{text-decoration:none}.card-links a:hover{text-decoration:underline}@media(max-width:900px){.cards{grid-template-columns:1fr}.card-featured .card-inner{grid-template-columns:1fr}.card-featured .card-media{border-right:none;border-bottom:1px solid var(--line);height:auto}.stats{gap:var(--space-4)}.tech-group{flex-direction:column;gap:.25rem}}@media(max-width:560px){.sites-grid{grid-template-columns:1fr}}.site-footer{border-top:1px solid var(--line);max-width:var(--container);margin-inline:auto;padding:var(--space-4)var(--space-3);color:var(--muted);font-size:.9375rem}.footer-links{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-1);margin:0;padding:0;margin-left:-.75rem}.footer-links a{color:var(--muted);display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius)}.footer-links a:hover{color:var(--ink)}.contact-form{max-width:36rem;display:flex;flex-direction:column;gap:var(--space-3)}.hp-field{position:absolute;left:-9999px;width:1px;height:1px}.form-field{display:flex;flex-direction:column;gap:.4rem}.form-field label{font-family:var(--font-mono);font-size:var(--step-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}.form-field input,.form-field textarea{font-family:var(--font-body);font-size:1rem;color:var(--ink);background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.7rem .9rem}.form-field input:focus-visible,.form-field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.form-field [aria-invalid=true]{border-color:#a4262c}.field-error{font-size:.875rem;color:#a4262c;min-height:1.2em}.form-privacy{font-family:var(--font-mono);font-size:var(--step-mono);color:var(--muted);margin:0}.contact-form .button{align-self:flex-start}.form-status{min-height:1.5em;margin:0;font-weight:600}.form-status.is-success{color:#1c6b40}.form-status.is-error{color:#a4262c}.form-missing{font-family:var(--font-mono);font-size:var(--step-mono);color:var(--muted)}.page-simple{min-height:40vh}.reveal-pending{opacity:0;transform:translateY(.75rem)}.revealed{opacity:1;transform:none;transition:opacity 500ms ease-out,transform 500ms ease-out}@media(max-width:640px){.nav{flex-wrap:wrap;row-gap:.4rem;padding-block:.6rem}.nav-links{order:3;width:100%;justify-content:space-between;gap:var(--space-2)}main section{padding-block:var(--space-5)}}