:root{--paper: #f7f5f1;--paper-2: #efebe4;--paper-3: #e6e1d8;--ink: #17171a;--ink-2: #4a4a53;--ink-3: #85858f;--rule: #d8d3ca;--rule-strong: #b9b3a8;--accent: #b2411d;--accent-hover: #8e3315;--accent-wash: #f2e4de;--danger: #a3241c;--font-display: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Mono", "Segoe UI Mono", "SF Mono", Consolas, "Liberation Mono", monospace;--gutter: clamp(1.25rem, 5vw, 3.5rem);--measure: 34rem;--radius: 3px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--paper: #121214;--paper-2: #1a1a1e;--paper-3: #232329;--ink: #f1efea;--ink-2: #a9a9b3;--ink-3: #74747e;--rule: #2c2c33;--rule-strong: #43434c;--accent: #e0703f;--accent-hover: #ef8a5c;--accent-wash: #2a1c16;--danger: #e5776c;color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{max-width:100%;display:block}a{color:inherit}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:1px}.container{width:100%;max-width:72rem;margin-inline:auto;padding-inline:var(--gutter)}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ink);color:var(--paper);padding:.75rem 1.25rem;font-family:var(--font-mono);font-size:.8125rem}.skip-link:focus{left:1rem;top:1rem}.eyebrow{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:0}.section{border-top:1px solid var(--rule);padding-block:clamp(4rem,9vw,7.5rem)}.section__head{display:grid;gap:1rem;max-width:44rem;margin-bottom:clamp(2.5rem,5vw,4rem)}.section__title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.1;letter-spacing:-.015em;margin:0;text-wrap:balance}.section__lead{margin:0;color:var(--ink-2);font-size:clamp(1rem,1.6vw,1.125rem);max-width:var(--measure)}.link-arrow{display:inline-flex;align-items:baseline;gap:.45em;font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;color:var(--accent);border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,transparent);padding-bottom:2px;transition:color .18s ease,border-color .18s ease}.link-arrow:hover{color:var(--accent-hover);border-bottom-color:currentColor}.link-arrow span:last-child{transition:transform .18s ease}.link-arrow:hover span:last-child{transform:translate(3px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;line-height:1;padding:.95rem 1.5rem;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;text-decoration:none;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--primary:disabled{opacity:.55;cursor:progress}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule-strong)}.btn--ghost:hover{border-color:var(--ink)}.site-header{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:saturate(150%) blur(10px);backdrop-filter:saturate(150%) blur(10px);border-bottom:1px solid transparent;transition:border-color .2s ease}.site-header[data-scrolled=true]{border-bottom-color:var(--rule)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:4.5rem}.wordmark{font-family:var(--font-mono);font-size:.875rem;letter-spacing:.02em;text-decoration:none;white-space:nowrap}.wordmark b{font-weight:600}.wordmark span{color:var(--ink-3)}.site-nav{display:flex;align-items:center;gap:clamp(1rem,2.5vw,1.9rem)}.site-nav a{font-size:.9375rem;text-decoration:none;color:var(--ink-2);transition:color .16s ease}.site-nav a:hover{color:var(--ink)}.header__actions{display:flex;align-items:center;gap:1rem}.lang-toggle{display:inline-flex;border:1px solid var(--rule-strong);border-radius:var(--radius);overflow:hidden;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em}.lang-toggle button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink-3);padding:.4rem .6rem;cursor:pointer;font:inherit;transition:background-color .16s ease,color .16s ease}.lang-toggle button:hover{color:var(--ink)}.lang-toggle button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.header__cta{padding:.6rem 1.1rem;font-size:.875rem}@media(max-width:47.99rem){.site-nav{display:none}}@media(max-width:30rem){.header__cta{display:none}}.hero{padding-block:clamp(3.5rem,10vw,8rem) clamp(3rem,7vw,5.5rem)}.hero__eyebrow{margin-bottom:1.75rem}.hero__title{font-family:var(--font-display);font-weight:600;font-size:clamp(2.3rem,6.2vw,4.4rem);line-height:1.04;letter-spacing:-.022em;margin:0 0 1.75rem;max-width:19ch;text-wrap:balance}.hero__lead{display:grid;gap:1.1rem;max-width:var(--measure);color:var(--ink-2);font-size:clamp(1.0625rem,1.7vw,1.1875rem)}.hero__lead p{margin:0}.hero__actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2.5rem}.hero__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-top:clamp(3rem,7vw,5rem);padding-top:2rem;border-top:1px solid var(--rule);max-width:40rem}.hero__stat dt{font-family:var(--font-display);font-size:clamp(1.75rem,3.4vw,2.4rem);font-weight:600;line-height:1;letter-spacing:-.02em}.hero__stat dd{margin:.5rem 0 0;font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);line-height:1.45}.work-list{display:grid;border-top:1px solid var(--rule)}.project{display:grid;grid-template-columns:3.5rem minmax(0,1fr);gap:0 1.5rem;padding-block:clamp(2.25rem,4.5vw,3.5rem);border-bottom:1px solid var(--rule)}.project__index{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-3);padding-top:.75rem;letter-spacing:.06em}.project__body{display:grid;gap:1.25rem}.project__heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem}.project__name{font-family:var(--font-display);font-weight:600;font-size:clamp(1.6rem,3.4vw,2.3rem);line-height:1.1;letter-spacing:-.015em;margin:0}.project__kind{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.05em;color:var(--ink-3)}.project__prose{display:grid;gap:.9rem;max-width:42rem}.project__prose p{margin:0}.project__prose p:first-child{font-size:1.0625rem;color:var(--ink)}.project__prose p:last-child{color:var(--ink-2)}.project__highlights{list-style:none;margin:0;padding:0;display:grid;gap:.6rem;max-width:42rem}.project__highlights li{position:relative;padding-left:1.4rem;color:var(--ink-2);font-size:.9375rem}.project__highlights li:before{content:"";position:absolute;left:0;top:.68em;width:.55rem;height:1px;background:var(--rule-strong)}.project__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding-top:.5rem}.tags{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}.tags li{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.05em;color:var(--ink-3);border:1px solid var(--rule);border-radius:999px;padding:.2rem .6rem}@media(max-width:36rem){.project{grid-template-columns:minmax(0,1fr);gap:.75rem}.project__index{padding-top:0}}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}.service{background:var(--paper);padding:clamp(1.5rem,3vw,2.25rem);display:grid;gap:.75rem;align-content:start}.service__num{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.1em;color:var(--accent)}.service h3{font-family:var(--font-display);font-weight:600;font-size:1.25rem;line-height:1.25;margin:0}.service p{margin:0;color:var(--ink-2);font-size:.9375rem}.process-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:clamp(1.75rem,3.5vw,2.75rem);counter-reset:step}.process-step{display:grid;gap:.6rem;align-content:start;padding-top:1.25rem;border-top:2px solid var(--ink);counter-increment:step}.process-step:before{content:counter(step,decimal-leading-zero);font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.1em;color:var(--ink-3)}.process-step h3{font-family:var(--font-display);font-weight:600;font-size:1.1875rem;margin:0}.process-step p{margin:0;color:var(--ink-2);font-size:.9375rem}.about-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}.about__prose{display:grid;gap:1.15rem;max-width:40rem;font-size:clamp(1rem,1.5vw,1.0625rem)}.about__prose p{margin:0;color:var(--ink-2)}.about__prose p:first-child{color:var(--ink)}.about__aside{display:grid;gap:1.75rem}.portrait{position:relative;aspect-ratio:4 / 5;background:var(--paper-2);border:1px solid var(--rule);overflow:hidden}.portrait img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(1.03);transition:filter .4s ease}.portrait:hover img{filter:grayscale(0%)}.portrait__fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--font-display);font-size:clamp(3rem,8vw,4.5rem);font-weight:600;color:var(--ink-3);letter-spacing:.02em}.facts{display:grid;gap:0;margin:0;border-top:1px solid var(--rule)}.facts__row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1rem;padding-block:.7rem;border-bottom:1px solid var(--rule)}.facts dt{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding-top:.15rem}.facts dd{margin:0;font-size:.875rem;color:var(--ink-2)}@media(max-width:47.99rem){.about-grid{grid-template-columns:minmax(0,1fr)}.about__aside{grid-template-columns:minmax(0,12rem) minmax(0,1fr);display:grid;gap:1.75rem;align-items:start}}@media(max-width:30rem){.about__aside{grid-template-columns:minmax(0,1fr)}}.contact-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}.form{display:grid;gap:1.25rem}.field{display:grid;gap:.4rem}.field__label{display:flex;align-items:baseline;gap:.5rem;font-size:.875rem;font-weight:500}.field__flag{font-family:var(--font-mono);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.field__hint{font-size:.8125rem;color:var(--ink-3);margin:0}.field input,.field select,.field textarea{width:100%;font:inherit;font-size:.9375rem;color:var(--ink);background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);padding:.7rem .85rem;transition:border-color .16s ease,background-color .16s ease}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 1.15rem) 1.15rem,calc(100% - .8rem) 1.15rem;background-size:.35rem .35rem,.35rem .35rem;background-repeat:no-repeat;padding-right:2.25rem;cursor:pointer}.field textarea{resize:vertical;min-height:9rem;line-height:1.6}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--rule-strong)}.field input:focus,.field select:focus,.field textarea:focus{background:var(--paper);border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-wash)}.field[data-invalid=true] input,.field[data-invalid=true] select,.field[data-invalid=true] textarea{border-color:var(--danger)}.field__error{font-size:.8125rem;color:var(--danger);margin:0}.field__counter{font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-3);justify-self:end}.form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1.25rem}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.consent{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem .75rem;align-items:start;padding:1rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper-2)}.consent[data-invalid=true]{border-color:var(--danger)}.consent input{width:1.05rem;height:1.05rem;margin:.25rem 0 0;accent-color:var(--accent);cursor:pointer}.consent label{font-size:.875rem;cursor:pointer}.consent__note{grid-column:2;margin:0;font-size:.8125rem;color:var(--ink-3)}.consent .field__error{grid-column:2}.form__submit{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.form__status{font-size:.875rem;color:var(--danger);margin:0}.form__status a{color:inherit}.form-success{border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--paper-2);padding:clamp(1.5rem,4vw,2.5rem);display:grid;gap:.85rem;justify-items:start}.form-success h3{font-family:var(--font-display);font-weight:600;font-size:1.5rem;margin:0}.form-success p{margin:0;color:var(--ink-2);max-width:var(--measure)}.form-success button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:0;font:inherit;font-size:.875rem;color:var(--accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.contact__aside{display:grid;gap:.85rem;align-content:start;padding:clamp(1.5rem,3vw,2rem);border:1px solid var(--rule);border-radius:var(--radius)}.contact__aside h3{font-family:var(--font-display);font-weight:600;font-size:1.25rem;margin:0}.contact__aside p{margin:0;font-size:.9375rem;color:var(--ink-2)}.contact__direct{display:grid;gap:.5rem;margin-top:.5rem}.contact__direct a{font-family:var(--font-mono);font-size:.875rem;text-decoration:none;color:var(--accent);border-bottom:1px solid color-mix(in srgb,var(--accent) 30%,transparent);padding-bottom:2px;justify-self:start;word-break:break-all}.contact__direct a:hover{border-bottom-color:currentColor}@media(max-width:52rem){.contact-grid{grid-template-columns:minmax(0,1fr)}}.site-footer{border-top:1px solid var(--rule);padding-block:3rem 3.5rem}.site-footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem 2rem}.site-footer__meta{display:grid;gap:.35rem;font-family:var(--font-mono);font-size:.75rem;color:var(--ink-3);letter-spacing:.02em}.site-footer__links{display:flex;flex-wrap:wrap;gap:1.25rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.site-footer__links a,.site-footer__links button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:0;font:inherit;color:var(--ink-3);text-decoration:none;cursor:pointer;transition:color .16s ease}.site-footer__links a:hover,.site-footer__links button:hover{color:var(--ink)}.reveal{opacity:1;transform:none;transition:opacity .5s ease,transform .5s ease}.reveal[data-visible=false]{opacity:0;transform:translateY(12px)}@media(prefers-reduced-motion:reduce){.reveal[data-visible=false]{opacity:1;transform:none}}
