@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/adb45196eddef626-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d0ba92e140f0dc-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Instrument Sans Fallback;src:local("Arial");ascent-override:94.42%;descent-override:24.33%;line-gap-override:0.00%;size-adjust:102.74%}.__className_3d9088{font-family:Instrument Sans,Instrument Sans Fallback;font-style:normal}.__variable_3d9088{--font-sans:"Instrument Sans","Instrument Sans Fallback"}:root{--paper:#100f0d;--paper-deep:#1a1816;--ink:#ece7df;--ink-soft:#c9c2b6;--muted:#9a9288;--line:rgba(236,231,223,0.16);--bronze:#d4b483;--serif:var(--font-sans),"Avenir Next","Segoe UI",sans-serif;--sans:var(--font-sans),"Avenir Next","Segoe UI",sans-serif;--measure:40rem;--page:72rem;--pad:clamp(1.15rem,4vw,2.75rem);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{overflow-x:clip}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.65;text-rendering:optimizeLegibility;padding-left:var(--safe-left);padding-right:var(--safe-right)}::selection{background:#3d3426;color:var(--ink)}:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}a{color:inherit}.skip{position:absolute;left:1rem;top:-4rem;background:var(--ink);color:var(--paper);padding:.6rem .9rem;z-index:10}.skip:focus{top:1rem}.shell{width:min(var(--page),calc(100% - var(--pad) * 2));margin-inline:auto}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:5;padding-top:var(--safe-top);background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.header-inner{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:4.25rem;gap:1rem}.brand{min-width:0;font-size:1.05rem;font-weight:500;letter-spacing:-.03em;text-decoration:none}.nav-toggle{display:none;flex-shrink:0;background:transparent;border:1px solid var(--line);color:var(--ink);font:inherit;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;min-height:2.75rem;min-width:2.75rem;padding:.55rem .85rem;cursor:pointer}.nav{display:flex;gap:1.5rem}.nav a{text-decoration:none;font-size:.92rem;color:var(--ink-soft)}.nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -1px 0 var(--bronze)}.nav a:hover{color:var(--ink)}.hero{padding:clamp(4.5rem,12vw,8.5rem) 0 clamp(3.5rem,8vw,6rem)}.kicker{margin:0 0 1.25rem;color:var(--bronze);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}h1,h2,h3{font-family:var(--sans);font-weight:500;letter-spacing:-.035em;line-height:1.05}h1{margin:0;max-width:22ch;font-size:clamp(2.7rem,6.4vw,5.15rem)}.lede{margin:1.75rem 0 0;font-size:1.2rem;line-height:1.55}.hero-aside,.lede{max-width:var(--measure);color:var(--ink-soft)}.hero-aside{margin:1.5rem 0 0}.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem 1.25rem;align-items:center;margin-top:2.25rem}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);min-height:2.75rem;padding:.8rem 1.15rem;text-decoration:none;letter-spacing:.04em;font-size:.92rem;background:transparent;color:var(--ink)}.button:hover{background:var(--ink);color:var(--paper)}.text-link{color:var(--ink);text-underline-offset:.2em;-webkit-text-decoration-color:var(--bronze);text-decoration-color:var(--bronze)}.block{display:grid;grid-template-columns:4.25rem 1fr;grid-gap:.5rem 1.5rem;gap:.5rem 1.5rem;border-top:1px solid var(--line);padding:clamp(2.75rem,6vw,4.5rem) 0}.index{margin:.35rem 0 0;color:var(--bronze);font-size:.82rem;letter-spacing:.14em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.block h2,.page-intro h1{margin:0}.block h2{font-size:clamp(2rem,4vw,3rem)}.block-intro{max-width:var(--measure);margin:1rem 0 0;color:var(--ink-soft)}.block-aside{max-width:var(--measure);margin:1.25rem 0 0;color:var(--muted);font-size:.98rem}.work-metric{color:var(--bronze)!important;font-size:.95rem}.case-metric{margin:.5rem 0 .75rem;font-family:var(--sans);font-size:clamp(1.35rem,2.4vw,1.85rem);font-weight:500;letter-spacing:-.02em;color:var(--bronze)}.case-context{max-width:46rem;margin:1.5rem 0 0;color:var(--muted);font-size:.95rem}.forward{max-width:var(--measure);margin-top:1.5rem;padding:1.25rem 0 0;border-top:1px solid var(--line)}.forward p{margin:0;color:var(--ink-soft)}.forward p+p{margin-top:.85rem}.service-done,.service-situation{max-width:42rem;margin:1rem 0 0}.service-done span,.service-situation span{color:var(--bronze);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-right:.45rem}.service-details{margin-top:1.25rem;max-width:42rem}.service-details summary{cursor:pointer;color:var(--ink-soft);font-size:.95rem;list-style:none}.service-details summary::-webkit-details-marker{display:none}.service-details summary:before{content:"+ ";color:var(--bronze)}.service-details[open] summary:before{content:"– "}.service-details ul{margin:.75rem 0 0}.fit-note{max-width:var(--measure);padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink-soft)}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem;gap:1rem;margin:3rem 0 0;padding:0;list-style:none;max-width:56rem}.metrics li{display:flex;flex-direction:column;gap:.35rem;padding-top:.85rem;border-top:1px solid var(--line)}.metrics strong{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:500;letter-spacing:-.04em;line-height:1;color:var(--ink)}.metrics span{color:var(--muted);font-size:.92rem;line-height:1.4}.metrics-note{margin:.85rem 0 0;color:var(--muted);font-size:.88rem}.stack-groups{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.25rem 2rem;gap:1.25rem 2rem;margin-top:1.75rem;max-width:52rem}.stack-groups article{padding-top:.85rem;border-top:1px solid var(--line)}.stack-groups h3{margin:0;font-size:1.05rem}.stack-groups p{margin:.45rem 0 0;color:var(--ink-soft);font-size:.95rem}.range-tech{color:var(--muted)!important;font-size:.88rem!important}.offer-list,.topic-list{display:flex;flex-wrap:wrap;gap:.5rem .75rem;margin:1.5rem 0 0;padding:0;list-style:none;max-width:46rem}.offer-list a,.topic-list li{border:1px solid var(--line);padding:.45rem .7rem;text-decoration:none;color:var(--ink-soft);font-size:.95rem}.offer-list a:hover{color:var(--ink);border-color:var(--bronze)}.service{scroll-margin-top:5.5rem}.case-section{margin-top:1.75rem;max-width:46rem}.case-section h3{margin:0;font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze)}.case-section p{margin:.65rem 0 0}.case-tag{color:var(--bronze);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-right:.35rem}.architecture{display:grid;grid-gap:1.25rem;gap:1.25rem;margin-top:.85rem}.arch-label{margin:0 0 .55rem;color:var(--muted);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase}.arch-stack{display:grid;grid-gap:.55rem;gap:.55rem}.arch-row{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none}.arch-row li{border:1px solid var(--line);padding:.45rem .7rem;color:var(--ink-soft);font-size:.92rem;line-height:1.35}.contact-forward,.contact-start{margin-top:2.5rem;padding-top:.5rem}.contact-forward .forward{margin-top:.75rem;padding-top:0;border-top:none}.contact-sub{margin:0 0 1.5rem;font-size:clamp(1.55rem,2.5vw,2rem)}.stack{display:grid;grid-gap:2.25rem;gap:2.25rem;margin-top:2.5rem}.item{display:grid;grid-template-columns:2.75rem 1fr;grid-gap:.75rem 1rem;gap:.75rem 1rem;max-width:46rem}.case h2,.item h3,.service h2{margin:0;font-size:clamp(1.55rem,2.5vw,2rem)}.case p,.item p,.prose p,.service p{margin:.75rem 0 0}.work-list{margin:2.25rem 0 0;padding:0;list-style:none}.work-list a{display:grid;grid-template-columns:2.75rem minmax(0,1fr) auto;grid-gap:.35rem 1.25rem;gap:.35rem 1.25rem;align-items:start;padding:1.35rem 0;border-top:1px solid var(--line);text-decoration:none}.block-intro,.case h2,.forward,.hero-aside,.lede,.prose,.service h2,.work-copy,.work-copy strong{overflow-wrap:break-word}.fit-note,.footer-inner a,.prose a{overflow-wrap:anywhere}.work-index{color:var(--bronze);font-size:.82rem;letter-spacing:.14em;padding-top:.45rem}.work-copy{display:flex;flex-direction:column;gap:.3rem}.work-copy span{color:var(--muted)}.work-list li:last-child a{border-bottom:1px solid var(--line)}.work-list strong{font-size:1.35rem;font-weight:500}.work-list span{color:var(--muted)}.work-list em{font-style:normal;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}.work-list a:hover strong,.work-list em{color:var(--bronze)}.page-intro{padding:clamp(3.5rem,8vw,6rem) 0 1rem}.page-intro h1{max-width:22ch;font-size:clamp(2.8rem,6vw,4.6rem)}.case{padding:clamp(2.5rem,5vw,3.5rem) 0;border-top:1px solid var(--line);scroll-margin-top:5.5rem}.also h3+p,.case .stack-line{color:var(--muted);font-size:.95rem}.facts{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.5rem;gap:1.5rem;margin-top:1.75rem}.facts h3{margin:0;font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze)}.facts p{margin:.65rem 0 0}.service{padding:2.5rem 0;border-top:1px solid var(--line)}.service ul{margin:1.25rem 0 0;padding:0;list-style:none;max-width:42rem}.service li{padding:.7rem 0;border-top:1px solid var(--line)}.also{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.5rem 2rem;gap:1.5rem 2rem;margin-top:1.5rem}.also article{padding-top:1rem;border-top:1px solid var(--line)}.also h3{font-size:1.45rem}.prose{max-width:var(--measure)}.prose p+p{margin-top:1rem}.page-close{padding-bottom:4.5rem}.site-footer{border-top:1px solid var(--line);padding:1.5rem 0 calc(2.5rem + var(--safe-bottom))}.footer-inner{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem 1.5rem;flex-wrap:wrap;color:var(--muted);font-size:.92rem}.footer-inner a{color:var(--ink);-webkit-text-decoration-color:var(--bronze);text-decoration-color:var(--bronze);overflow-wrap:anywhere}.rise>*{animation:rise .7s ease both}.rise>:nth-child(2){animation-delay:80ms}.rise>:nth-child(3){animation-delay:.14s}.rise>:nth-child(4){animation-delay:.2s}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (max-width:900px){.also,.facts,.stack-groups{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}.work-list a{grid-template-columns:2.25rem minmax(0,1fr)}.work-list em{grid-column:2}}@media (max-width:800px){.nav-toggle{display:inline-flex;align-items:center;justify-content:center}.nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:.4rem 0 .9rem}.nav a,.nav.is-open{display:flex}.nav a{align-items:center;min-height:2.75rem;padding:.75rem 0;border-top:1px solid var(--line)}.block{grid-template-columns:1fr;gap:.75rem}.index{margin:0}.lede{font-size:1.08rem}.hero{padding:clamp(3.25rem,10vw,5rem) 0 clamp(2.75rem,8vw,4.5rem)}.hero-actions,.hero-actions .button{width:100%}.footer-inner{flex-direction:column;align-items:flex-start;gap:.65rem}}@media (max-width:480px){body{font-size:1rem}.page-intro h1,h1{max-width:none;font-size:clamp(2.15rem,11vw,2.85rem)}.block h2{font-size:clamp(1.65rem,8vw,2.15rem)}.work-list strong{font-size:1.15rem}.item{grid-template-columns:2.25rem 1fr}.case-metric{font-size:clamp(1.2rem,6vw,1.5rem)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rise>*{animation:none}}