@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-ext-wght-normal.okcGN4Nq.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-wght-normal.BS41q_Tv.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-ext-wght-normal.DQgQPNk4.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-wght-normal.sS1B39LI.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-vietnamese-wght-normal.TKKdAiBA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-ext-wght-normal.B4u9PlvR.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-wght-normal.DX-nOvPD.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-cyrillic-ext-400-normal.C_uLvvQ5.woff2)format("woff2"),url(/_astro/jetbrains-mono-cyrillic-ext-400-normal.Bh0R7Dhr.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-cyrillic-400-normal.BEIGL1Tu.woff2)format("woff2"),url(/_astro/jetbrains-mono-cyrillic-400-normal.ugxPyKxw.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-greek-400-normal.C190GLew.woff2)format("woff2"),url(/_astro/jetbrains-mono-greek-400-normal.B9oWc5Lo.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-vietnamese-400-normal.ByoDsISC.woff2)format("woff2"),url(/_astro/jetbrains-mono-vietnamese-400-normal.CqNFfHCs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-ext-400-normal.Bc8Ftmh3.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-ext-400-normal.fXTG6kC5.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-cyrillic-ext-500-normal.C9ShMxGR.woff2)format("woff2"),url(/_astro/jetbrains-mono-cyrillic-ext-500-normal.CEVyPk4Y.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-cyrillic-500-normal.DmUKJPL_.woff2)format("woff2"),url(/_astro/jetbrains-mono-cyrillic-500-normal.DJqRU3vO.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-greek-500-normal.JpySY46c.woff2)format("woff2"),url(/_astro/jetbrains-mono-greek-500-normal.D7SFKleX.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-vietnamese-500-normal.BvH7FW2L.woff2)format("woff2"),url(/_astro/jetbrains-mono-vietnamese-500-normal.DNRqzVM1.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-ext-500-normal.Cut-4mMH.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-ext-500-normal.ckzbgY84.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-cyrillic-ext-600-normal.Dj6eZy5f.woff2)format("woff2"),url(/_astro/jetbrains-mono-cyrillic-ext-600-normal.DVvC-yKp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-cyrillic-600-normal.EVf6-Yzo.woff2)format("woff2"),url(/_astro/jetbrains-mono-cyrillic-600-normal.8K4wrrwR.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-greek-600-normal.H7WoG9Et.woff2)format("woff2"),url(/_astro/jetbrains-mono-greek-600-normal.mc2nkWzM.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-vietnamese-600-normal.Dtizs43-.woff2)format("woff2"),url(/_astro/jetbrains-mono-vietnamese-600-normal.OWROknRo.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-latin-ext-600-normal.BfB_LPfz.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-ext-600-normal.DObL3zCW.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-latin-600-normal.C8RAYTDA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-600-normal.BfsvjouI.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#fff;--paper-2:#f4f4f4;--ink:#0a0a0a;--ink-2:#262626;--mid:#6e6e6e;--rule:#dadada;--rule-2:#b5b5b5;--font-sans:"Inter Tight Variable", "Inter Tight", -apple-system, system-ui, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--max-w:1440px;--gutter:clamp(1.25rem, 4vw, 3.5rem);--easing:cubic-bezier(.2, .6, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--paper);color:var(--ink);font-feature-settings:"ss01", "ss02", "cv11";-webkit-text-size-adjust:100%;font-size:16px;line-height:1.5;overflow-x:hidden}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important}html{scroll-behavior:auto}.marquee-track{animation:none!important}.js .reveal,.js [data-reveal]{opacity:1!important;transform:none!important}}.mono{font-family:var(--font-mono)}::selection{background:var(--ink);color:var(--paper)}.section-title,.display,.contact-headline,.approach-lead{text-wrap:balance}.prose p,.lede,.hero-statement,.project-lede{text-wrap:pretty}.index-table,.project-index,.details-list dd,.stat-num,.hero-tape b{font-variant-numeric:tabular-nums}.tiny-cap{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.6875rem;font-weight:500}.utility{padding:.7rem var(--gutter);border-bottom:1px solid var(--rule);color:var(--mid);justify-content:space-between;align-items:center;display:flex}.utility-left,.utility-right{gap:1.75rem;display:flex}.utility .ink{color:var(--ink)}@media (width<=880px){.utility-right{display:none}}.nav{z-index:50;-webkit-backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--rule);background:#ffffffeb;position:sticky;top:0}.nav-inner{max-width:var(--max-w);padding:1.1rem var(--gutter);justify-content:space-between;align-items:center;gap:2rem;margin:0 auto;display:flex}.brand{letter-spacing:-.015em;align-items:center;gap:.7rem;font-size:1.0625rem;font-weight:600;display:inline-flex}.brand-logo{width:auto;height:2.1rem;display:block}.brand-suffix{color:var(--mid);font-weight:400}@media (width<=420px){.brand-text{display:none}.brand-logo{height:2.3rem}}.nav-menu{align-items:center;gap:2.25rem;font-size:.9rem;font-weight:500;display:flex}.nav-menu a{padding:.25rem 0;position:relative}.nav-menu a:after{content:"";transform-origin:100%;width:100%;height:1px;transition:transform .4s var(--easing);background:currentColor;position:absolute;bottom:-3px;left:0;transform:scaleX(0)}.nav-menu a:hover:after{transform-origin:0;transform:scaleX(1)}.nav-cta{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--ink);transition:background .3s var(--easing), color .3s var(--easing);align-items:center;gap:.5rem;padding:.55rem .95rem;font-size:.75rem;display:inline-flex}.nav-cta:hover{background:var(--ink);color:var(--paper)}.nav-cta .arrow{transition:transform .3s var(--easing)}.nav-cta:hover .arrow{transform:translate(2px,-2px)}.nav-toggle{border:1px solid var(--ink);justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:none}.nav-toggle span{background:var(--ink);width:1.1rem;height:1.5px;display:block;position:relative}.nav-toggle span:before,.nav-toggle span:after{content:"";background:var(--ink);width:100%;height:1.5px;position:absolute;left:0}.nav-toggle span:before{top:-5px}.nav-toggle span:after{top:5px}.nav-panel-head,.nav-cta--panel{display:none}@media (width<=880px){.nav{backdrop-filter:none;background:var(--paper)}.nav-cta{display:none}.nav-toggle{display:inline-flex}.js .nav-menu{z-index:200;width:min(84vw,380px);padding:calc(1rem + env(safe-area-inset-top)) 1.6rem calc(1.4rem + env(safe-area-inset-bottom));background:var(--paper);border-left:1px solid var(--ink);visibility:hidden;transition:transform .45s var(--easing), visibility 0s linear .45s;flex-direction:column;align-items:stretch;gap:0;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(105%);box-shadow:-40px 0 80px #0000001a}.js .nav-menu.is-open{visibility:visible;transition-delay:0s;transform:translate(0)}.js .nav-menu .nav-panel-head{border-bottom:1px solid var(--ink);color:var(--mid);justify-content:space-between;align-items:center;padding-bottom:.9rem;display:flex}.nav-close{border:1px solid var(--ink);width:2.5rem;height:2.5rem;color:var(--ink);transition:background .3s var(--easing), color .3s var(--easing);justify-content:center;align-items:center;font-size:.9rem;line-height:1;display:inline-flex}.nav-close:hover{background:var(--ink);color:var(--paper)}.js .nav-menu{counter-reset:navitem}.js .nav-menu>a:not(.nav-cta--panel){counter-increment:navitem;border-bottom:1px solid var(--rule);letter-spacing:-.01em;align-items:baseline;gap:.9rem;padding:1rem 0;font-size:1.35rem;font-weight:600;display:flex}.js .nav-menu>a:not(.nav-cta--panel):before{content:counter(navitem, decimal-leading-zero);font-family:var(--font-mono);color:var(--mid);font-size:.7rem;font-weight:400}.nav-menu a:after{display:none}.js .nav-menu a[aria-current]:before{color:var(--ink)}.js .nav-menu .nav-cta--panel{justify-content:center;margin-top:auto;padding-top:.85rem;padding-bottom:.85rem;font-size:.8rem;display:inline-flex}html:not(.js) .nav-inner{flex-wrap:wrap}html:not(.js) .nav-menu{flex-wrap:wrap;flex-basis:100%;order:10;gap:.75rem 1.4rem;padding-top:.35rem;font-size:.85rem}html:not(.js) .nav-toggle{display:none}}.hero{padding:clamp(3rem, 8vw, 6rem) var(--gutter) clamp(2.5rem, 5vw, 4rem);max-width:var(--max-w);margin:0 auto;position:relative}.hero:before{content:"";background-image:linear-gradient(var(--rule) 1px, transparent 1px), linear-gradient(90deg, var(--rule) 1px, transparent 1px);opacity:.35;pointer-events:none;z-index:0;background-position:50%;background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 75%);mask-image:radial-gradient(#000 30%,#0000 75%)}.hero>*{z-index:1;position:relative}.hero-eyebrow{color:var(--mid);justify-content:space-between;gap:2rem;margin-bottom:clamp(3rem,7vw,5rem);display:flex}.hero-eyebrow .ink{color:var(--ink)}.hero-eyebrow .rule{background:var(--rule-2);flex:1;align-self:center;max-width:28rem;height:1px;margin:0 1.5rem}@media (width<=720px){.hero-eyebrow .rule{display:none}.hero-eyebrow{flex-wrap:wrap;row-gap:.5rem}}.hero-title{letter-spacing:-.05em;margin-bottom:.1em;font-size:clamp(4rem,16vw,13rem);font-weight:700;line-height:.82}.hero-title .line{display:block;overflow:hidden}.hero-title .word{animation:rise 1.1s var(--easing) forwards;display:inline-block;transform:translateY(110%)}.hero-title .w-1{animation-delay:50ms}.hero-title .w-2{animation-delay:.18s}.hero-title sup{vertical-align:super;font-size:.2em;font-weight:500;font-family:var(--font-mono);letter-spacing:0;color:var(--mid);cursor:help;margin-left:.2em}.hero-title sup:hover{color:var(--ink)}.hero-logo{width:min(72vw,620px);height:auto}@keyframes rise{to{transform:translateY(0)}}.hero-bottom{grid-template-columns:1.4fr 1fr;align-items:end;gap:clamp(2rem,6vw,5rem);margin-top:clamp(2.5rem,6vw,4.5rem);display:grid}.hero-statement{letter-spacing:-.015em;max-width:38ch;color:var(--ink-2);font-size:clamp(1.125rem,1.8vw,1.4rem);line-height:1.35}.hero-statement em{color:var(--ink);font-style:normal;font-weight:600}.hero-meta{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;grid-template-columns:max-content 1fr;gap:.55rem 1.5rem;font-size:.75rem;display:grid}.hero-meta dt{color:var(--mid)}.hero-meta dd{color:var(--ink);font-weight:500}@media (width<=720px){.hero-bottom{grid-template-columns:1fr;gap:2rem}}.hero-tape{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:clamp(2.5rem,5vw,4rem);padding:1rem 0;display:flex}.hero-tape>span{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.hero-tape b{color:var(--ink);font-weight:600}.hero-tape em{color:var(--mid);font-style:normal}.marquee{background:var(--ink);color:var(--paper);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:1.4rem 0;overflow:hidden}.marquee-track{white-space:nowrap;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;gap:3.5rem;width:max-content;font-size:.85rem;animation:80s linear infinite marquee;display:flex}.marquee-track .dot{color:var(--rule-2);margin-left:-1.5rem}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes marquee{to{transform:translate(-50%)}}.section{padding:clamp(4rem, 9vw, 7.5rem) var(--gutter);max-width:var(--max-w);margin:0 auto}.section.flush{padding-top:0}.section-header{border-bottom:1px solid var(--ink);grid-template-columns:1fr auto;align-items:end;gap:2rem;margin-bottom:clamp(2.5rem,5vw,4rem);padding-bottom:1.25rem;display:grid}.section-num{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mid);margin-bottom:.75rem;font-size:.6875rem;display:block}.section-title{letter-spacing:-.035em;font-size:clamp(2rem,5vw,3.75rem);font-weight:600;line-height:.95}.section-title em{color:var(--mid);font-style:normal;font-weight:400}.section-aside{text-align:right;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--mid);align-self:end;font-size:.75rem}@media (width<=600px){.section-header{grid-template-columns:1fr}.section-aside{text-align:left}}.index-table{border-collapse:collapse;width:100%}.index-table thead th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--mid);text-align:left;border-bottom:1px solid var(--rule-2);padding:.75rem .65rem;font-size:.6875rem;font-weight:500}.index-table tbody td{border-bottom:1px solid var(--rule);vertical-align:middle;font-family:var(--font-mono);color:var(--ink-2);padding:1.05rem .65rem;font-size:.8125rem}.index-table .col-num{width:4rem;color:var(--mid)}.index-table .col-proj{font-family:var(--font-sans);letter-spacing:-.015em;color:var(--ink);font-size:1.0625rem;font-weight:500}.index-table .col-arrow{text-align:right;width:2.5rem;color:var(--mid)}.index-table tbody tr{cursor:pointer;cursor:pointer;transition:background .25s}.index-table tbody tr:hover{background:var(--paper-2)}.index-table tbody tr:hover .col-proj{text-underline-offset:.2em;text-decoration:underline 1px}.index-table tbody tr:hover .col-arrow{color:var(--ink)}.index-table tbody tr:hover .arrow-svg{transform:translate(3px,-3px)}.arrow-svg{transition:transform .3s var(--easing)}@media (width<=720px){.index-table thead{display:none}.index-table,.index-table tbody,.index-table tr,.index-table td{display:block}.index-table tr{border-bottom:1px solid var(--rule);padding:1.1rem 0;position:relative}.index-table td{border:none;padding:.15rem 0}.index-table .col-num{width:auto;padding-right:.6rem;display:inline-block}.index-table .col-proj{font-size:1.2rem;display:inline-block}.index-table td[data-label]:before{content:attr(data-label) " — ";color:var(--mid);text-transform:uppercase;letter-spacing:.06em;font-size:.65rem}.index-table .col-arrow{position:absolute;top:1.1rem;right:0}}.index-footer{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:2rem;display:flex}.see-all{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--ink);transition:padding .3s var(--easing);padding-bottom:.2rem;font-size:.8125rem}.see-all:hover{padding-bottom:.5rem}.see-all .arrow{margin-left:.35rem;display:inline-block}.work-grid{grid-template-columns:repeat(12,1fr);gap:clamp(1.75rem,3vw,3rem);display:grid}.work-item.span-7{grid-column:span 7}.work-item.span-5{grid-column:span 5}.work-item.span-6{grid-column:span 6}.work-item.span-12{grid-column:span 12}@media (width<=880px){.work-item{grid-column:span 12!important}}.work-viz{aspect-ratio:4/3;background:var(--paper);border:1px solid var(--rule-2);transition:background .5s var(--easing);position:relative;overflow:hidden}.work-item.tall .work-viz{aspect-ratio:3/4}.work-item.wide .work-viz{aspect-ratio:16/9}.work-viz:before{content:"";pointer-events:none;background-image:linear-gradient(#0000000a 1px,#0000 1px),linear-gradient(90deg,#0000000a 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0}.work-viz .title-block{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--ink);color:var(--ink);background:var(--paper);font-size:.625rem;display:flex;position:absolute;bottom:1rem;left:1rem}.work-viz .title-block>span{border-right:1px solid var(--ink);padding:.35rem .55rem}.work-viz .title-block>span:last-child{color:var(--mid);border-right:none}.work-viz .corner-mark{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mid);font-size:.625rem;position:absolute;top:.6rem;right:.6rem}.work-viz .axo{width:100%;height:100%;position:absolute;inset:0}.work-viz .axo line,.work-viz .axo polyline,.work-viz .axo polygon,.work-viz .axo path,.work-viz .axo rect,.work-viz .axo circle{fill:none;stroke:var(--ink);stroke-width:1.1px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.work-viz .axo .hidden{stroke-dasharray:2 3;opacity:.55}.work-viz .axo .hair{stroke-width:.6px;opacity:.6}.work-viz .axo .fill-paper{fill:var(--paper);stroke:var(--ink)}.work-viz .axo .fill-ink{fill:var(--ink);stroke:var(--ink)}.work-viz .axo .mono-label{fill:var(--mid);stroke:none;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:7.5px}.work-viz .axo .dim{stroke:var(--mid);stroke-width:.6px}.work-item:hover .work-viz{background:var(--ink);border-color:var(--ink)}.work-viz:before,.work-viz .corner-mark{transition:color .5s var(--easing), background-image .5s var(--easing)}.work-item:hover .work-viz:before{background-image:linear-gradient(#ffffff14 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px)}.work-item:hover .work-viz .corner-mark{color:#fff9}.work-viz img.axo{transition:transform .6s var(--easing), filter .5s var(--easing)}.work-item:hover .work-viz img.axo{filter:invert()}.work-viz img.axo,.work-viz svg.axo{transition:transform .6s var(--easing)}.work-item:hover .work-viz img.axo,.work-item:hover .work-viz svg.axo{transform:scale(1.015)}.work-meta{border-top:1px solid var(--ink);grid-template-columns:1fr auto;align-items:baseline;gap:1rem;margin-top:1.1rem;padding-top:1.1rem;display:grid}.work-num{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mid);margin-bottom:.4rem;font-size:.6875rem;display:block}.work-title{letter-spacing:-.025em;font-size:clamp(1.25rem,2vw,1.65rem);font-weight:500;line-height:1.05}.work-meta-right{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--mid);text-align:right;white-space:nowrap;font-size:.7rem}.approach{background:var(--ink);color:var(--paper)}.approach .section{padding-top:clamp(4rem,9vw,7.5rem);padding-bottom:clamp(4rem,9vw,7.5rem)}.approach .section-header{border-bottom-color:var(--paper)}.approach .section-num,.approach .section-aside{color:#ffffff80}.approach-body{grid-template-columns:1.3fr 1fr;align-items:start;gap:clamp(2rem,5vw,5rem);display:grid}.approach-lead{letter-spacing:-.025em;font-size:clamp(1.5rem,2.6vw,2.4rem);font-weight:400;line-height:1.18}.approach-lead em{color:#ffffff8c;font-style:normal}.approach-detail{color:#ffffffc7;max-width:40ch;line-height:1.65}.approach-detail p+p{margin-top:1.1rem}.approach-stats{border-top:1px solid #fff3;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,3vw,3rem);margin-top:clamp(3.5rem,6vw,5rem);padding-top:1.5rem;display:grid}.stat-num{letter-spacing:-.035em;font-size:clamp(2.5rem,5vw,4.5rem);font-weight:600;line-height:.95;display:block}.stat-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:#ffffff8c;margin-top:.6rem;font-size:.6875rem;display:block}@media (width<=720px){.approach-body{grid-template-columns:1fr}.approach-stats{grid-template-columns:repeat(2,1fr);row-gap:2rem}}.services-list{list-style:none}.service{border-bottom:1px solid var(--rule);transition:padding-left .4s var(--easing), background .3s var(--easing);cursor:pointer;grid-template-columns:4rem 1fr 1fr 6rem;align-items:baseline;gap:clamp(1rem,3vw,3rem);padding:clamp(1.4rem,3vw,2.4rem) 0;display:grid}.service:first-child{border-top:1px solid var(--rule)}.service-num{font-family:var(--font-mono);color:var(--mid);font-size:.8125rem}.service-name{letter-spacing:-.035em;transition:font-weight .3s var(--easing);font-size:clamp(1.75rem,4vw,3.25rem);font-weight:500;line-height:1}.service-detail{color:var(--mid);max-width:38ch;font-size:.95rem;line-height:1.55}.service-mark{font-family:var(--font-mono);text-align:right;color:var(--mid);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.service:hover{background:linear-gradient(to right, var(--paper-2) 0%, transparent 100%);padding-left:1.25rem}.service:hover .service-name{font-weight:700}@media (width<=720px){.service{grid-template-columns:2.5rem 1fr;gap:.75rem}.service-detail{grid-column:2;margin-top:.6rem}.service-mark{display:none}}.contact-grid{grid-template-columns:1.4fr 1fr;align-items:start;gap:clamp(2.5rem,5vw,5rem);display:grid}.contact-headline{letter-spacing:-.04em;font-size:clamp(2.5rem,6.5vw,5.5rem);font-weight:500;line-height:.92}.contact-headline em{color:var(--mid);font-style:normal;font-weight:400}.contact-cta{border:1px solid var(--ink);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;transition:background .3s var(--easing), color .3s var(--easing);align-items:center;gap:.6rem;margin-top:2rem;padding:1rem 1.5rem;font-size:.8125rem;display:inline-flex}.contact-cta:hover{background:var(--ink);color:var(--paper)}.contact-cta .arrow{transition:transform .3s var(--easing)}.contact-cta:hover .arrow{transform:translate(3px,-3px)}.contact-info{font-family:var(--font-mono);font-size:.8125rem;line-height:1.7}.info-group{border-bottom:1px solid var(--rule);margin-bottom:1.75rem;padding-bottom:1.5rem}.info-group:last-child{border-bottom:none}.info-label{color:var(--mid);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;font-size:.6875rem;display:block}.info-value a{display:block}.info-value a:hover{text-underline-offset:4px;text-decoration:underline}@media (width<=720px){.contact-grid{grid-template-columns:1fr}}.footer{border-top:1px solid var(--ink)}.footer-inner{max-width:var(--max-w);padding:clamp(2.5rem, 5vw, 4.5rem) var(--gutter) 1.5rem;margin:0 auto}.footer-top{grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;margin-bottom:clamp(3rem,5vw,5rem);display:grid}.footer-brand-large{align-items:flex-start;gap:.75rem;display:flex}.footer-brand-large .footer-logo{width:auto;height:clamp(3.2rem,7vw,5.5rem)}.footer-brand-large sub{font-family:var(--font-mono);letter-spacing:.06em;color:var(--mid);text-transform:uppercase;margin-top:.35rem;font-size:.7rem;font-weight:500}.footer-col h4{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mid);border-bottom:1px solid var(--rule);margin-bottom:.9rem;padding-bottom:.6rem;font-size:.6875rem;font-weight:500}.footer-col ul{list-style:none}.footer-col li{margin-bottom:.4rem;font-size:.9rem}.footer-col a{color:var(--ink-2)}.footer-col a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.footer-bottom{border-top:1px solid var(--rule);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mid);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:1.5rem;font-size:.6875rem;display:flex}@media (width<=880px){.footer-top{grid-template-columns:1fr 1fr}.footer-brand-large{grid-column:1/-1}}@media (width<=480px){.footer-top{grid-template-columns:1fr}}.js .reveal,.js [data-reveal]{opacity:0;transition:opacity .9s var(--easing), transform .9s var(--easing);will-change:opacity, transform;transform:translateY(24px)}.js .reveal.in,.js [data-reveal].in{opacity:1;transform:translateY(0)}.screen-reader-text{clip:rect(1px,1px,1px,1px);clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;word-wrap:normal!important;position:absolute!important}.skip-link{z-index:1000;background:var(--ink);color:var(--paper);font-family:var(--font-mono);padding:.75rem 1.25rem;font-size:.75rem;position:absolute;top:0;left:-9999px}.skip-link:focus{top:1rem;left:1rem}.container{max-width:var(--max-w);padding-left:var(--gutter);padding-right:var(--gutter);margin:0 auto}.section-head{border-bottom:1px solid var(--ink);margin-bottom:clamp(2rem,5vw,3.5rem);padding-bottom:1.25rem}.kicker{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mid);margin-bottom:1rem;font-size:.6875rem;font-weight:500;display:block}.display{letter-spacing:-.02em;font-size:clamp(2rem,5.5vw,4rem);font-weight:800;line-height:1.02}.display em{color:var(--mid);font-style:normal;font-weight:500}.lede{max-width:46rem;color:var(--ink-2);margin-top:1.25rem;font-size:clamp(1rem,1.6vw,1.2rem);line-height:1.5}.link-button{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--ink);transition:background .3s var(--easing), color .3s var(--easing);align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.75rem;display:inline-flex}.link-button:hover{background:var(--ink);color:var(--paper)}.search-form .search-row{border-bottom:1px solid var(--ink);transition:box-shadow .2s var(--easing);align-items:center;gap:.5rem;padding-bottom:.5rem;display:flex}.search-form .search-row:focus-within{box-shadow:0 1px 0 0 var(--ink)}.search-form .search-field{font:inherit;color:var(--ink);background:0 0;border:none;outline:none;flex:1;min-width:0}.search-form .search-field::placeholder{color:var(--mid)}.search-form .search-submit{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:.75rem}.search-form .search-submit:hover{text-underline-offset:4px;text-decoration:underline}.prose{max-width:42rem;color:var(--ink-2);font-size:1.0625rem;line-height:1.65}.prose>*+*{margin-top:1.15rem}.prose h2{letter-spacing:-.01em;color:var(--ink);margin-top:2.5rem;font-size:1.6rem;font-weight:700}.prose h3{color:var(--ink);margin-top:2rem;font-size:1.25rem;font-weight:600}.prose a{text-underline-offset:3px;text-decoration:underline 1px}.prose ul,.prose ol{padding-left:1.25rem}.prose li+li{margin-top:.4rem}.prose blockquote{border-left:2px solid var(--ink);color:var(--ink);padding-left:1.25rem;font-style:normal}.prose img{margin:1.5rem 0}.prose code{font-family:var(--font-mono);background:var(--paper-2);border-radius:2px;padding:.1em .35em;font-size:.875em}.work-viz-link{display:block;position:relative}.work-viz img.axo,.work-viz svg.axo{object-fit:contain;width:100%;height:100%;padding:clamp(1.25rem,3vw,2.75rem);position:absolute;inset:0}.work-title a{display:inline}.work-title a:hover{text-underline-offset:4px;text-decoration:underline}.col-proj a:hover{text-underline-offset:3px;text-decoration:underline}body.nav-locked{overflow:hidden}.nav-toggle.is-active span{background:0 0}.nav-toggle.is-active span:before{top:0;transform:rotate(45deg)}.nav-toggle.is-active span:after{top:0;transform:rotate(-45deg)}.nav-scrim{z-index:40;opacity:0;pointer-events:none;transition:opacity .3s var(--easing);background:#0a0a0a47;position:fixed;inset:0}.nav-scrim.is-visible{opacity:1;pointer-events:auto}.single-project .project-hero{padding-top:clamp(2.5rem,6vw,5rem)}.project-breadcrumb{font-family:var(--font-mono);letter-spacing:.04em;color:var(--mid);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.75rem;display:flex}.project-breadcrumb a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.project-breadcrumb .sep{color:var(--rule-2)}.project-breadcrumb .kicker{font-size:inherit;line-height:inherit;margin-bottom:0;display:inline}.project-title{margin-bottom:1.25rem}.project-lede{max-width:44rem;color:var(--ink-2);font-size:clamp(1.1rem,2vw,1.4rem);font-weight:400;line-height:1.4}.hero-image-wrap{max-width:var(--max-w);padding:0 var(--gutter);margin-top:clamp(2rem,5vw,3.5rem);margin-left:auto;margin-right:auto}.hero-image-wrap .hero-image{border:1px solid var(--rule);background:var(--paper-2);width:100%;height:auto}.project-body{padding:clamp(3rem,7vw,5.5rem) 0}.project-grid{grid-template-columns:18rem 1fr;align-items:start;gap:clamp(2rem,6vw,5rem);display:grid}.project-details{position:sticky;top:5.5rem}.details-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mid);border-bottom:1px solid var(--ink);margin-bottom:1.25rem;padding-bottom:.75rem;font-size:.6875rem}.details-list .detail{border-bottom:1px solid var(--rule);grid-template-columns:6.5rem 1fr;gap:1rem;padding:.65rem 0;font-size:.9rem;display:grid}.details-list dt{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--mid);padding-top:.15rem;font-size:.7rem}.details-list dd{color:var(--ink)}.video-link{margin-top:1.5rem}.project-axo{border-top:1px solid var(--rule);padding:clamp(2.5rem,6vw,4.5rem) 0}.axo-large{border:1px solid var(--ink);background:var(--paper);aspect-ratio:16/9;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.axo-large .axo-image-large{object-fit:contain;width:100%;height:100%;padding:clamp(1.5rem,4vw,3.5rem)}.axo-caption{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--mid);border-top:1px solid var(--ink);border-right:1px solid var(--ink);background:var(--paper);align-items:center;gap:.5rem;padding:.6rem .9rem;font-size:.6875rem;display:flex;position:absolute;bottom:0;left:0}.axo-caption .tb-sep{color:var(--rule-2)}.project-gallery{border-top:1px solid var(--rule);padding:clamp(2.5rem,6vw,4.5rem) 0}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:clamp(1rem,2.5vw,1.75rem);display:grid}.gallery-item{border:1px solid var(--rule);background:var(--paper-2);overflow:hidden}.gallery-item .gallery-image{object-fit:cover;aspect-ratio:3/2;width:100%;height:100%}.project-nav{border-top:1px solid var(--ink)}.project-nav-row{padding:clamp(2rem, 4vw, 3rem) var(--gutter);max-width:var(--max-w);grid-template-columns:1fr 1fr;gap:2rem;margin:0 auto;display:grid}.project-nav .nav-next{text-align:right}.project-nav .nav-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--mid);margin-bottom:.4rem;font-size:.7rem;display:block}.project-nav .nav-title{letter-spacing:-.01em;font-size:1.25rem;font-weight:600}.project-nav a:hover .nav-title{text-underline-offset:4px;text-decoration:underline}.archive-head{padding:clamp(3rem,7vw,5.5rem) 0 0}.archive-body{padding:clamp(2.5rem,5vw,4rem) 0 clamp(4rem,8vw,6rem)}.filter-nav{flex-wrap:wrap;gap:.5rem;margin-top:2rem;display:flex}.filter-item{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--rule-2);color:var(--ink-2);transition:background .25s var(--easing), color .25s var(--easing), border-color .25s var(--easing);padding:.5rem .85rem;font-size:.72rem}.filter-item:hover{border-color:var(--ink)}.filter-item.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.filter-item .count{opacity:.55;margin-left:.35rem}.project-index{border-top:1px solid var(--ink);width:100%}.ix-row{grid-template-columns:var(--ix-cols,3.5rem 2.2fr 1.3fr 1.3fr .7fr .9fr 1.5rem);border-bottom:1px solid var(--rule);align-items:center;gap:1rem;padding:1rem 0;display:grid}.ix-head{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mid);border-bottom-color:var(--ink);font-size:.65rem}.ix-item{color:var(--ink);transition:background .2s var(--easing)}.ix-item:hover{background:var(--paper-2)}.ix-no{font-family:var(--font-mono);color:var(--mid);font-size:.8rem}.ix-name{letter-spacing:-.01em;font-size:1.05rem;font-weight:600}.ix-type,.ix-loc{color:var(--ink-2);font-size:.85rem}.ix-year,.ix-area{font-family:var(--font-mono);color:var(--ink-2);font-size:.8rem}.ix-arrow{text-align:right;color:var(--mid);transition:transform .2s var(--easing)}.ix-item:hover .ix-arrow{color:var(--ink);transform:translate(2px,-2px)}.index-foot{margin-top:2.5rem}.pagination,.nav-links{font-family:var(--font-mono);flex-wrap:wrap;gap:.5rem;margin-top:3rem;font-size:.8rem;display:flex}.pagination .page-numbers,.nav-links .page-numbers{border:1px solid var(--rule-2);padding:.5rem .8rem}.pagination .page-numbers.current{background:var(--ink);color:var(--paper);border-color:var(--ink)}.pagination .page-numbers:hover{border-color:var(--ink)}.page-hero{padding:clamp(3.5rem,8vw,6rem) 0 0}.page-hero .display{max-width:20ch}.page-content{padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(4rem,9vw,7rem)}.page-content .prose{max-width:44rem}.team-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:clamp(1.25rem,3vw,2rem);margin-top:2.5rem;display:grid}.team-member{border-top:1px solid var(--ink);padding-top:1rem}.team-member .tm-name{font-size:1.1rem;font-weight:600}.team-member .tm-role{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--mid);margin-top:.25rem;font-size:.7rem}.error-404{text-align:left;padding:clamp(5rem,12vw,9rem) 0}.error-404 .big{letter-spacing:-.04em;font-size:clamp(5rem,22vw,16rem);font-weight:900;line-height:.9}.error-404 .msg{max-width:32rem;color:var(--ink-2);margin-top:1.5rem;font-size:1.1rem}.error-404 .link-button{margin-top:2rem}@media (width<=880px){.project-grid{grid-template-columns:1fr}.project-details{position:static}.details-list .detail{grid-template-columns:7rem 1fr}}@media (width<=720px){.gallery-grid{grid-template-columns:1fr}.project-nav-row{grid-template-columns:1fr;gap:1.5rem}.project-nav .nav-next{text-align:left}.project-index .ix-head{display:none}.ix-row{grid-template-columns:1fr;gap:.35rem;padding:1.1rem 0}.ix-arrow{display:none}.ix-no{font-size:.7rem}.ix-name{font-size:1.15rem}.ix-row [data-label]:before{content:attr(data-label) " — ";color:var(--mid);text-transform:uppercase;letter-spacing:.06em;font-size:.65rem}}@media print{.utility,.nav,.nav-toggle,.nav-scrim,.skip-link,.marquee,.footer,.project-nav,.filter-nav,.index-footer,.search-form{display:none!important}body{color:#000;background:#fff}a{color:#000}.js .reveal,.js [data-reveal]{opacity:1!important;transform:none!important}.approach{color:#000;background:#fff}.approach .section-num,.approach .section-aside,.approach-detail,.stat-label{color:#444}}.lightbox-item{cursor:zoom-in;display:block}.lightbox{z-index:500;opacity:0;visibility:hidden;transition:opacity .3s var(--easing), visibility 0s linear .3s;background:#fffffff7;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.lightbox.is-open{opacity:1;visibility:visible;transition-delay:0s}body.lightbox-locked{overflow:hidden}.lightbox-figure{max-width:min(90vw,1400px);margin:0}.lightbox-img{border:1px solid var(--ink);background:#fff;width:auto;max-width:100%;height:auto;max-height:82vh;margin:0 auto;display:block}.lightbox-counter{font-family:var(--font-mono);letter-spacing:.06em;color:var(--mid);text-align:center;margin-top:.75rem;font-size:.7rem}.lightbox-close,.lightbox-prev,.lightbox-next{border:1px solid var(--ink);background:var(--paper);width:2.75rem;height:2.75rem;color:var(--ink);z-index:2;transition:background .3s var(--easing), color .3s var(--easing);justify-content:center;align-items:center;display:inline-flex;position:absolute}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:var(--ink);color:var(--paper)}.lightbox-close{top:calc(1rem + env(safe-area-inset-top));right:calc(1rem + env(safe-area-inset-right))}.lightbox-prev{left:calc(1rem + env(safe-area-inset-left));top:50%;transform:translateY(-50%)}.lightbox-next{right:calc(1rem + env(safe-area-inset-right));top:50%;transform:translateY(-50%)}@media (width<=720px){.lightbox-prev,.lightbox-next{top:auto;bottom:calc(1.25rem + env(safe-area-inset-bottom));transform:none}.lightbox-prev{left:1.25rem}.lightbox-next{right:1.25rem}.lightbox-img{max-height:72vh}}.js .reveal,.js [data-reveal]{transition-delay:var(--rd,0s)}[data-parallax]{will-change:transform}.process{--p:1;border-top:1px solid var(--ink);height:240vh;position:relative}.process-sticky{align-items:center;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.process-grid-bg{background-image:linear-gradient(var(--rule) 1px, transparent 1px), linear-gradient(90deg, var(--rule) 1px, transparent 1px);opacity:.4;pointer-events:none;background-size:56px 56px;position:absolute;inset:-22% 0}.process-inner{width:100%;max-width:var(--max-w);padding:0 var(--gutter);grid-template-columns:1fr minmax(200px,250px);align-items:center;gap:3.5rem;margin:0 auto;display:grid;position:relative}.process-drawing{transform:translateY(calc((1 - var(--p)) * 34px))}.construct-svg{width:100%;height:auto;max-height:76vh;color:var(--ink);display:block}.construct-svg path{stroke-dasharray:1}.ph-site path{stroke-dasharray:.016 .011;opacity:calc(clamp(0, var(--p) * 16, 1) * .55)}.ph-plan path{stroke-dashoffset:calc(1 - clamp(0, (var(--p) - .04) / .26, 1))}.ph-rise path{stroke-dashoffset:calc(1 - clamp(0, (var(--p) - .32) / .26, 1))}.ph-roof path{stroke-dashoffset:calc(1 - clamp(0, (var(--p) - .58) / .24, 1))}.ph-anno path{stroke-dashoffset:calc(1 - clamp(0, (var(--p) - .82) / .14, 1));opacity:.8}.process-steps{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;flex-direction:column;gap:1.1rem;font-size:.78rem;list-style:none;display:flex}.process-steps li{border-bottom:1px solid var(--rule);align-items:baseline;gap:.75rem;padding-bottom:1.1rem;display:flex}.process-steps .tb-no{color:var(--mid);font-size:.68rem}.process-steps li:first-child{opacity:calc(.22 + .78 * clamp(0, (var(--p) - .04) / .1, 1))}.process-steps li:nth-child(2){opacity:calc(.22 + .78 * clamp(0, (var(--p) - .32) / .1, 1))}.process-steps li:nth-child(3){opacity:calc(.22 + .78 * clamp(0, (var(--p) - .58) / .1, 1))}@media (width<=880px){.process{height:185vh}.process-inner{grid-template-columns:1fr;gap:1.75rem}.construct-svg{max-height:54vh}.process-steps{flex-flow:wrap;gap:1rem 1.4rem;font-size:.62rem}.process-steps li{border-bottom:0;padding-bottom:0}.js .nav-menu>*{opacity:0;transition:opacity .4s var(--easing), transform .4s var(--easing);transform:translateY(18px)}.js .nav-menu.is-open>*{opacity:1;transition-delay:calc(.12s + var(--i,0) * 50ms);transform:none}}@keyframes hero-settle{0%{transform:scale(1.045)}}.js .single-project .lightbox-item:has(>.hero-image){display:block;overflow:hidden}.js .single-project .hero-image{animation:hero-settle 1.3s var(--easing) both}.work-viz--photo{padding:0}.work-viz--photo .viz-photo{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--easing);position:absolute;inset:0}.work-item:hover .work-viz--photo .viz-photo{transform:scale(1.015)}.work-viz--photo .corner-mark{background:var(--paper);border:1px solid var(--ink);padding:2px 7px}.nav-panel-lang{display:none}@media (width<=880px){.js .nav-menu .nav-panel-lang{border-top:1px solid var(--rule);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mid);align-items:center;gap:1.1rem;margin-top:auto;padding:1rem 0 .2rem;font-size:.75rem;display:flex}.js .nav-menu .nav-panel-lang a{color:var(--ink);padding:.25rem 0}.js .nav-menu .nav-panel-lang+.nav-cta--panel{margin-top:.9rem}}.journal-strip{border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);padding:clamp(1.5rem,3vw,2.25rem) 0}.journal-row{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:clamp(1.25rem,3vw,2.5rem);display:grid}.journal-viz{border:1px solid var(--rule);background:var(--paper-2);aspect-ratio:16/10;position:relative;overflow:hidden}.journal-img{object-fit:cover;width:100%;height:100%;transition:transform .7s var(--easing)}.journal-row:hover .journal-img{transform:scale(1.03)}.journal-kicker{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mid);font-size:.6875rem;display:block}.journal-title{letter-spacing:-.02em;text-wrap:balance;margin-top:.6rem;font-size:clamp(1.35rem,2.6vw,2rem);font-weight:700;line-height:1.12}.journal-row:hover .journal-title{text-underline-offset:5px;text-decoration:underline 1px}.journal-lede{max-width:46ch;color:var(--ink-2);margin-top:.7rem;line-height:1.55}.journal-more{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;margin-top:.9rem;font-size:.7rem;display:inline-block}@media (width<=780px){.journal-row{grid-template-columns:1fr;gap:1rem}}.entry-lede{max-width:46rem;color:var(--ink-2);margin-top:1.5rem;font-size:clamp(1.0625rem,1.6vw,1.25rem);line-height:1.5}.entry-hero{padding:clamp(2rem,4vw,3rem) 0 0}.entry-hero-figure{border:1px solid var(--rule);background:var(--paper-2);justify-content:center;margin:0;display:flex;overflow:hidden}.entry-hero-image{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}.entry-nav{border-top:1px solid var(--rule);padding:clamp(2rem,4vw,3rem) 0 clamp(3rem,6vw,4.5rem)}.entry-nav-row{justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.entry-nav-side{flex:1 1 0;min-width:0}.entry-nav-next{text-align:right}.entry-nav-title{letter-spacing:-.01em;margin-top:.35rem;font-weight:600;display:block}.entry-nav-row a:hover .entry-nav-title{text-underline-offset:4px;text-decoration:underline}.entry-nav-home{color:var(--mid);white-space:nowrap;padding-top:.1rem}.entry-nav-home:hover{color:var(--ink)}@media (width<=640px){.entry-nav-row{flex-direction:column;align-items:stretch}.entry-nav-next{text-align:left}}em,i,cite,dfn,address,var{font-style:normal}.lang-switch{gap:.9rem;list-style:none;display:flex}.lang-switch a{color:var(--ink)}.lang-switch a:hover{text-underline-offset:3px;text-decoration:underline}.project-index{--ix-cols:3.5rem 2.2fr 1.3fr 1.3fr 1.5rem}.project-index.has-year{--ix-cols:3.5rem 2.2fr 1.3fr 1.3fr .7fr 1.5rem}.project-index.has-area{--ix-cols:3.5rem 2.2fr 1.3fr 1.3fr .9fr 1.5rem}.project-index.has-year.has-area{--ix-cols:3.5rem 2.2fr 1.3fr 1.3fr .7fr .9fr 1.5rem}.project-index.journal-index{--ix-cols:3.5rem 2.2fr 2fr .7fr 1.5rem}.approach--stats{border-top:1px solid var(--rule)}.preview-note{padding:.5rem var(--gutter);background:var(--ink);color:var(--paper);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.6875rem}.contact-form-section{border-top:1px solid var(--rule)}.contact-form{max-width:62rem}.contact-form .hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.cf-grid{grid-template-columns:1fr 1fr;gap:0 clamp(1.25rem,3vw,2.5rem);display:grid}.cf-field{padding:1rem 0 0;display:block}.cf-wide{grid-column:1/-1}.cf-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mid);margin-bottom:.35rem;font-size:.6875rem;font-weight:500;display:block}.cf-field input,.cf-field select,.cf-field textarea{width:100%;font:inherit;letter-spacing:-.01em;color:var(--ink);border:0;border-bottom:1px solid var(--rule-2);transition:border-color .2s var(--easing);background:0 0;border-radius:0;padding:.6rem 0;font-size:1.125rem;display:block}.cf-field select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);background-position:calc(100% - 10px) 55%,calc(100% - 5px) 55%;background-repeat:no-repeat;background-size:5px 5px}.cf-field textarea{resize:vertical;min-height:9rem;line-height:1.5}.cf-field input:focus,.cf-field select:focus,.cf-field textarea:focus{border-bottom-color:var(--ink);box-shadow:0 1px 0 0 var(--ink);outline:none}.cf-field [aria-invalid=true]{border-bottom-color:var(--ink);box-shadow:0 2px 0 0 var(--ink)}.cf-field:has([aria-invalid=true]) .cf-label{color:var(--ink);font-weight:700}.cf-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;margin-top:2rem;display:flex}.cf-send{background:var(--paper);color:var(--ink);cursor:pointer;margin-top:0}.cf-send:disabled{opacity:.4;cursor:not-allowed}.cf-send:disabled:hover{background:var(--paper);color:var(--ink)}.cf-note{font-family:var(--font-mono);letter-spacing:.04em;color:var(--mid);margin-top:1rem;font-size:.6875rem}.cf-foot .cf-note{margin-top:0}.cf-status{letter-spacing:-.01em;margin-top:1.25rem;font-size:1.125rem;font-weight:600}.cf-status:empty{display:none}@media (width<=720px){.cf-grid{grid-template-columns:1fr}}.axo-large>.lightbox-item{display:block;position:absolute;inset:0}
