@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.woff2)format("woff2");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:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_84ff9a6e-module__Mr_65W__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_84ff9a6e-module__Mr_65W__variable{--font-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
@font-face{font-family:Oswald;font-style:normal;font-weight:400;font-display:swap;src:url(../media/48cb8c496a1feb17-s.0734_fcy06s9j.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Oswald;font-style:normal;font-weight:400;font-display:swap;src:url(../media/87ccb897ba116d44-s.05f-deljhbeh9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e9a8df42b0c6fb7a-s.2k0uebm9v9x1w.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:400;font-display:swap;src:url(../media/804b9eb4033edb5d-s.1fbf3d0ri8mfi.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6ad1cda2f16975ee-s.p.2j22bd4n1tlhh.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(../media/48cb8c496a1feb17-s.0734_fcy06s9j.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(../media/87ccb897ba116d44-s.05f-deljhbeh9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e9a8df42b0c6fb7a-s.2k0uebm9v9x1w.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(../media/804b9eb4033edb5d-s.1fbf3d0ri8mfi.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6ad1cda2f16975ee-s.p.2j22bd4n1tlhh.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(../media/48cb8c496a1feb17-s.0734_fcy06s9j.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(../media/87ccb897ba116d44-s.05f-deljhbeh9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e9a8df42b0c6fb7a-s.2k0uebm9v9x1w.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(../media/804b9eb4033edb5d-s.1fbf3d0ri8mfi.woff2)format("woff2");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:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ad1cda2f16975ee-s.p.2j22bd4n1tlhh.woff2)format("woff2");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:Oswald Fallback;src:local(Arial);ascent-override:146.51%;descent-override:35.49%;line-gap-override:0.0%;size-adjust:81.43%}.oswald_3b7715c5-module__v4YhNG__className{font-family:Oswald,Oswald Fallback;font-style:normal}.oswald_3b7715c5-module__v4YhNG__variable{--font-display:"Oswald", "Oswald Fallback"}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#070809;--ink-deep:#040506;--charcoal:#0c0e10;--charcoal-raised:#121518;--paper:#efeee9;--paper-soft:#d2d3cf;--muted:#92979a;--quiet:#7b8388;--steel:#8aa6b2;--steel-bright:#b1c5cc;--line:#efeee921;--line-strong:#efeee93d;--header-background:#070809f7;--mobile-menu-background:#090a0bfc;--texture-image:url(/textures/signal-particles.webp);--texture-opacity:.24;--rail:clamp(3.5rem, 6vw, 6.5rem);--header-height:4.5rem;--page-max:112rem}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#f3f0e8;--ink-deep:#ebe7dd;--charcoal:#e9e4d9;--charcoal-raised:#e3ddd1;--paper:#141719;--paper-soft:#343a3d;--muted:#5e686d;--quiet:#697277;--steel:#496d7c;--steel-bright:#315c6d;--line:#07080924;--line-strong:#07080940;--header-background:#f3f0e8f7;--mobile-menu-background:#f3f0e8fc;--texture-image:url(/textures/signal-particles-light.webp);--texture-opacity:.82}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ink)}body{min-width:20rem;color:var(--paper);background:var(--ink);font-family:var(--font-sans), Arial, sans-serif;text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.55;position:relative}body:before{z-index:0;background-image:var(--texture-image);content:"";opacity:var(--texture-opacity);pointer-events:none;background-position:50%;background-size:min(64rem,92vw);animation:46s ease-in-out infinite alternate signal-drift;position:fixed;inset:-8%}.site-header,main,.site-footer{z-index:1;position:relative}@keyframes signal-drift{0%{transform:translate(-.4%,-.3%)scale(1.01)}to{transform:translate(.7%,.55%)scale(1.025)}}@keyframes content-settle{0%{transform:translateY(1.25rem)}to{transform:translateY(0)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.indexed-section__body,.project-row,.education-entry,.note-card,.note-article__chapter{animation:linear both content-settle;animation-timeline:view();animation-range:entry 4% cover 24%}}}body::selection{color:var(--ink);background:var(--steel-bright)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit}h1,h2,h3,p,dl,dd,ol,ul{margin:0}ul,ol{padding:0}.skip-link{z-index:1000;color:var(--ink);background:var(--paper);padding:.75rem 1rem;transition:transform .18s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:2px solid var(--steel-bright);outline-offset:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.eyebrow,.section-heading__intro,.hero__index span,.project-row__title p,.project-row dt,.case-study__meta dt,.route-hero dt{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:500}.site-header{z-index:100;width:min(100%, var(--page-max));min-height:var(--header-height);grid-template-columns:var(--rail) minmax(13rem, .85fr) minmax(32rem, 2fr) auto;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-left:1px solid var(--line);background:var(--header-background);margin:0 auto;display:grid;position:sticky;top:0}.site-header__rail,.site-header__brand,.desktop-nav,.site-header__actions{min-height:var(--header-height);align-items:center;display:flex}.site-header__rail,.site-header__brand,.desktop-nav{border-right:1px solid var(--line)}.site-header__rail{justify-content:center}.monogram,.brand-name,.desktop-nav a,.menu-button{letter-spacing:.14em;text-transform:uppercase;font-size:.75rem;font-weight:500}.monogram{color:var(--steel-bright);font-size:1rem}.site-header__brand{padding:0 2rem}.brand-name{white-space:nowrap}.desktop-nav{justify-content:space-evenly;gap:.5rem;padding:0 1rem}.desktop-nav a,.icon-link{transition:color .18s,opacity .18s}.desktop-nav a{color:var(--muted);position:relative}.desktop-nav a:after{background:var(--steel);content:"";transform-origin:0;height:1px;transition:transform .18s;position:absolute;bottom:-.55rem;left:0;right:0;transform:scaleX(0)}.desktop-nav a:hover,.desktop-nav a[aria-current=page]{color:var(--paper)}.desktop-nav a:hover:after,.desktop-nav a[aria-current=page]:after{transform:scaleX(1)}.site-header__actions{gap:1.25rem;padding:0 1.4rem}.icon-link{color:var(--muted);place-items:center;display:grid}.icon-link:hover{color:var(--steel-bright)}.theme-toggle{width:1.25rem;height:1.25rem;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;list-style:none;transition:color .18s;display:grid}.theme-toggle:hover{color:var(--steel-bright)}.theme-toggle::-webkit-details-marker{display:none}.theme-toggle svg{width:1rem;height:1rem}.theme-toggle__moon,:root[data-theme=light] .theme-toggle__sun{display:none}:root[data-theme=light] .theme-toggle__moon{display:block}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}.theme-transition-ripple{z-index:1000;top:var(--theme-ripple-y);left:var(--theme-ripple-x);background:var(--theme-ripple-color);pointer-events:none;border-radius:50%;width:2px;height:2px;animation:.65s cubic-bezier(.76,0,.24,1) forwards theme-ripple-cover;position:fixed;transform:translate(-50%,-50%)scale(0)}@keyframes theme-ripple-cover{to{transform:translate(-50%, -50%) scale(var(--theme-ripple-radius))}}.theme-menu{position:relative}.theme-menu__popover{z-index:210;top:calc(.625rem + var(--header-height) / 2);width:10.5rem;color:var(--paper);border:1px solid var(--line-strong);background:var(--ink-deep);padding:.35rem;display:grid;position:absolute;right:-.5rem;box-shadow:0 1rem 2.5rem #0405062e}.theme-menu__popover button{min-height:2.75rem;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:1.25rem 1fr 1rem;align-items:center;gap:.65rem;padding:0 .7rem;transition:color .18s,background-color .18s;display:grid}.theme-menu__popover button:hover,.theme-menu__popover button:focus-visible{color:var(--paper);background:var(--charcoal-raised)}.theme-menu__popover button>svg{width:.95rem;height:.95rem}.theme-menu__popover button>span{letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:500}.theme-menu__check{opacity:0}.theme-menu__popover button[aria-pressed=true]{color:var(--steel-bright)}.theme-menu__popover button[aria-pressed=true] .theme-menu__check{opacity:1}.menu-button{cursor:pointer;background:0 0;border:0;padding:0;display:none}.menu-button svg{width:1.4rem;height:1.4rem}.mobile-menu,.menu-button__close,.mobile-nav{display:none}.hero,.indexed-section,.site-footer,.route-hero,.route-projects,.case-study__hero,.case-study__content,.notes-page{width:min(100%, var(--page-max));border-right:1px solid var(--line);border-left:1px solid var(--line);margin:0 auto;display:grid}.hero,.route-hero,.case-study__hero,.notes-page{grid-template-columns:minmax(0,1fr)}.indexed-section,.route-projects,.case-study__content,.site-footer{grid-template-columns:var(--rail) minmax(0, 1fr)}.hero__rail,.indexed-section__rail,.site-footer__rail,.route-hero__rail,.route-projects__rail,.case-study__rail,.case-study__content-rail,.notes-page__rail{color:var(--muted);letter-spacing:.12em;text-align:center;border-right:1px solid var(--line);padding-top:clamp(2rem,5vw,5rem);font-size:clamp(.8rem,1vw,1rem)}.hero h1,.route-hero h1,.case-study h1,.notes-page h1{max-width:12ch;font-family:var(--font-display), Impact, sans-serif;letter-spacing:-.035em;text-transform:uppercase;font-size:clamp(4.2rem,10.5vw,11.75rem);font-weight:500;line-height:.88}.case-study__chapters section>span{color:var(--steel);letter-spacing:.12em;font-size:.75rem}.back-link,.notes-page__body>a,.case-study__links a{color:var(--steel-bright);letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:.6rem;font-size:.74rem;display:inline-flex}.site-footer{border-bottom:1px solid var(--line)}.site-footer__rail{padding-top:2rem;padding-bottom:2rem}.site-footer__body{min-height:7rem;color:var(--quiet);letter-spacing:.12em;text-transform:uppercase;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:2rem;padding:1.5rem clamp(1.5rem,6vw,7rem);font-size:.68rem;display:grid}.site-footer__body>p:nth-child(2){justify-self:center}.site-footer__links{justify-self:end;gap:1.5rem;display:flex}.site-footer__links a{color:var(--muted);align-items:center;gap:.35rem;display:inline-flex}.route-hero,.case-study__hero{border-bottom:1px solid var(--line);min-height:76svh}.route-hero__body,.case-study__hero-body{flex-direction:column;justify-content:center;padding:clamp(5rem,10vw,10rem) clamp(1.5rem,7vw,8rem);display:flex}.route-hero h1,.case-study h1,.notes-page h1{margin-top:1.25rem}.route-hero__body>p:not(.eyebrow),.case-study__intro,.notes-page__body>p:not(.eyebrow){max-width:46rem;color:var(--paper-soft);margin-top:2rem;font-size:clamp(1.05rem,1.5vw,1.35rem);font-weight:300}.route-hero dl,.case-study__meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));max-width:60rem;margin-top:4rem;display:grid}.route-hero dl>div,.case-study__meta>div{border-right:1px solid var(--line);padding:1.25rem 1.5rem 1.25rem 0}.route-hero dl>div:last-child,.case-study__meta>div:last-child{border-right:0;padding-left:1.5rem}.route-hero dd,.case-study__meta dd{color:var(--paper-soft);margin-top:.35rem}.route-projects{border-bottom:1px solid var(--line)}.route-projects .projects-list{padding:clamp(4rem,8vw,8rem) clamp(1.5rem,6vw,7rem)}.case-study__meta{grid-template-columns:minmax(12rem,.75fr) minmax(13rem,.8fr) minmax(16rem,1.45fr)}.case-study__meta>div:not(:first-child){padding-left:1.5rem}.case-study__meta>div:nth-child(2) dd{white-space:nowrap}.back-link{width:fit-content;margin-bottom:4rem}.case-study__content{border-bottom:1px solid var(--line)}.case-study__content-rail{writing-mode:vertical-rl;text-orientation:mixed}.case-study__content-label{display:none}.case-study__chapters{padding:clamp(5rem,10vw,10rem) clamp(1.5rem,9vw,11rem)}.case-study__chapters section{border-top:1px solid var(--line);grid-template-columns:5rem minmax(15rem,.7fr) minmax(20rem,1fr);align-items:start;min-height:22rem;padding:3rem 0;display:grid}.case-study__chapters h2{letter-spacing:-.04em;max-width:12ch;font-size:clamp(2rem,4vw,4.2rem);font-weight:300;line-height:1}.case-study__chapters p{max-width:42rem;color:var(--paper-soft);font-size:clamp(1.05rem,1.4vw,1.3rem);font-weight:300}.case-study__chapters ol{list-style:none;display:grid}.case-study__highlights li{border-bottom:1px solid var(--line);grid-template-columns:3rem 1fr;padding:0 0 1.25rem;display:grid}.case-study__highlights li+li{padding-top:1.25rem}.case-study__highlights li>span{color:var(--steel);letter-spacing:.12em;font-size:.72rem}.case-study__highlights li p{font-size:clamp(.95rem,1.2vw,1.12rem)}.case-study__links{width:min(100%, var(--page-max));min-height:10rem;padding:2rem clamp(1.5rem, 6vw, 7rem) 2rem calc(var(--rail) + clamp(1.5rem, 6vw, 7rem));border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));align-items:center;margin:0 auto;display:grid}.case-study__links a:last-child{justify-self:end}.notes-page{min-height:calc(100svh - var(--header-height))}.notes-page__body{flex-direction:column;justify-content:center;padding:clamp(5rem,10vw,10rem) clamp(1.5rem,8vw,9rem);display:flex}.notes-page__body>a{width:fit-content;margin-top:4rem}@media (max-width:1180px){.site-header{grid-template-columns:var(--rail) 1fr auto}.desktop-nav{display:none}.site-header__brand{border-right:1px solid var(--line)}.menu-button{place-items:center;list-style:none;display:grid}.mobile-menu{display:block}.menu-button::-webkit-details-marker{display:none}.mobile-menu[open] .menu-button__open{display:none}.mobile-menu[open] .menu-button__close{display:block}.mobile-nav{z-index:99;top:var(--header-height);padding:clamp(1.25rem, 4svh, 2.5rem) clamp(1.5rem, 6vw, 4rem) calc(1.5rem + env(safe-area-inset-bottom));background:var(--mobile-menu-background);border-bottom:1px solid var(--line);opacity:0;overscroll-behavior-y:contain;pointer-events:none;visibility:hidden;grid-template-rows:auto auto;align-content:start;transition:opacity .18s,transform .22s,visibility .22s;display:grid;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(-.75rem)}.mobile-menu[open] .mobile-nav{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)}.mobile-nav nav{display:grid}.mobile-nav nav a{border-bottom:1px solid var(--line);grid-template-columns:3rem 1fr;align-items:center;min-height:clamp(3.6rem,8svh,4.75rem);padding:.5rem 0;font-size:clamp(1.2rem,4.4vw,1.75rem);font-weight:300;display:grid}.mobile-nav nav span{color:var(--steel);letter-spacing:.12em;font-size:.7rem}.mobile-nav__socials{color:var(--steel-bright);align-items:center;gap:1.25rem;margin-top:1.1rem;font-size:1.1rem;display:flex}.mobile-nav__socials a{border:1px solid var(--line-strong);place-items:center;width:2.75rem;height:2.75rem;transition:color .18s,border-color .18s;display:grid}.mobile-nav__socials a:hover{color:var(--paper);border-color:var(--steel)}}@media (max-width:820px){:root{--rail:3.25rem;--header-height:4rem}.site-header{grid-template-columns:var(--rail) 1fr auto}.site-header__brand{padding:0 1rem}.brand-name{font-size:.68rem}.site-header__actions{padding:0 1rem}.icon-link{display:none}.hero h1,.route-hero h1,.case-study h1,.notes-page h1{font-size:clamp(3.5rem,18vw,7.25rem)}.site-footer__body{grid-template-columns:1fr;gap:.75rem}.site-footer{grid-template-columns:1fr}.site-footer__rail{display:none}.site-footer__body>p:nth-child(2),.site-footer__links{justify-self:start}.route-hero,.case-study__hero{min-height:68svh}.route-hero__body,.case-study__hero-body,.notes-page__body{padding:5rem 1.5rem}.case-study__meta{grid-template-columns:1fr}.case-study__meta>div,.case-study__meta>div:last-child,.case-study__meta>div:not(:first-child){border-right:0;border-bottom:1px solid var(--line);padding:1rem 0}.case-study__chapters{width:100%;min-width:0;padding:4rem 1.5rem}.case-study__content{grid-template-columns:1fr}.case-study__content-rail{display:none}.case-study__content-label{color:var(--steel);letter-spacing:.14em;text-transform:uppercase;margin-bottom:2rem;font-size:.72rem;display:block}.case-study__chapters section{grid-template-columns:3rem 1fr;gap:1.25rem 0;min-height:auto}.case-study__chapters section p,.case-study__chapters section ol,.case-study__highlights li p{grid-column:2}.case-study__links{padding-left:calc(var(--rail) + 1.5rem);grid-template-columns:1fr;gap:2rem}.case-study__links a:last-child{justify-self:start}}@media (max-width:560px){.site-footer__rail,.route-hero__rail,.route-projects__rail,.case-study__rail,.case-study__content-rail,.notes-page__rail{padding-top:1.5rem;font-size:.7rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (min-width:1181px){body{zoom:.75}.notes-page{min-height:calc(133.333svh - var(--header-height))}.route-hero,.case-study__hero{min-height:101.333svh}}
.hero{min-height:calc(100svh - var(--header-height));border-bottom:1px solid var(--line)}.hero__body{min-height:calc(100svh - var(--header-height));grid-template-rows:1fr auto;grid-template-columns:minmax(0,1.55fr) minmax(17rem,.65fr);column-gap:clamp(4rem,10vw,11rem);padding:clamp(4rem,10vh,8rem) clamp(2rem,7vw,8rem) 2.5rem;display:grid;position:relative}.hero__copy{align-self:center;max-width:68rem}.hero__intro{color:var(--steel);margin-bottom:1.25rem}.hero__tagline{max-width:22ch;color:var(--steel-bright);letter-spacing:-.025em;margin-top:1.25rem;font-size:clamp(1.55rem,3vw,3.25rem);font-weight:300;line-height:1.08}.hero__description{max-width:42rem;color:var(--paper-soft);margin-top:2rem;font-size:clamp(1rem,1.25vw,1.2rem);font-weight:300}.hero__actions{flex-wrap:wrap;gap:.75rem;margin-top:2.5rem;display:flex}.button{letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line-strong);justify-content:center;align-items:center;gap:.7rem;min-height:3.25rem;padding:0 1.4rem;font-size:.78rem;font-weight:500;transition:color .18s,background-color .18s,border-color .18s;display:inline-flex}.button--primary:hover{color:var(--ink);border-color:var(--paper);background:var(--paper)}.button--quiet{color:var(--muted);border-color:#0000}.button--quiet:hover{color:var(--steel-bright)}.hero__index{border-top:1px solid var(--line);align-self:center}.hero__index div{border-bottom:1px solid var(--line);padding:1.25rem 0}.hero__index span,.hero__index strong{display:block}.hero__index strong{color:var(--paper-soft);margin-top:.35rem;font-size:.9rem;font-weight:400}.scroll-cue{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;align-self:end;align-items:center;gap:.7rem;font-size:.72rem;display:inline-flex}.scroll-cue svg{transition:transform .18s}.scroll-cue:hover svg{transform:translateY(.3rem)}@media (max-width:1180px){.hero__body{grid-template-columns:minmax(0,1fr) minmax(14rem,.5fr);column-gap:4rem}}@media (max-width:820px){.hero{grid-template-columns:1fr}.hero__rail{display:none}.hero__body{min-height:calc(100svh - var(--header-height));flex-direction:column;justify-content:center;padding:4rem clamp(1.5rem,7vw,3.5rem) 2rem;display:flex}.hero__copy{align-self:auto}.hero__tagline{font-size:clamp(1.5rem,7vw,2.6rem)}.hero__description{font-size:.98rem}.hero__index{grid-template-columns:repeat(3,1fr);margin-top:4rem;display:grid}.hero__index div{border-right:1px solid var(--line);padding:1rem}.hero__index div:first-child{padding-left:0}.hero__index div:last-child{border-right:0}.scroll-cue{margin-top:2.5rem}}@media (max-width:560px){.hero__index{display:none}.hero__actions{flex-direction:column;align-items:stretch}.button{width:100%}}@media (min-width:1181px){.hero,.hero__body{min-height:calc(133.333svh - var(--header-height))}}
.indexed-section{min-height:70svh;scroll-margin-top:var(--header-height);border-bottom:1px solid var(--line)}.indexed-section__body{min-width:0;padding:clamp(5rem,10vw,10rem) clamp(1.5rem,6vw,7rem)}.section-heading{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;align-items:end;margin-bottom:clamp(3.5rem,7vw,7rem);padding-bottom:1.25rem;display:grid}.section-heading__index{display:none}.section-heading .eyebrow{color:var(--paper);letter-spacing:.08em;font-size:clamp(1.4rem,2.4vw,2.4rem)}.section-heading__intro{max-width:38rem;color:var(--muted);text-transform:none;justify-self:end;line-height:1.8}@media (max-width:820px){.indexed-section{grid-template-columns:1fr;min-height:auto}.indexed-section__rail{display:none}.indexed-section__body{padding:5rem clamp(1.5rem,7vw,3.5rem)}.section-heading{grid-template-columns:2.25rem 1fr;align-items:start;gap:1rem 0}.section-heading__index{color:var(--steel);letter-spacing:.14em;padding-top:.38rem;font-size:.72rem;display:block}.section-heading .eyebrow,.section-heading__intro{grid-column:2;justify-self:start}}@media (min-width:1181px){.indexed-section{min-height:93.333svh}}
.about-layout{grid-template-columns:minmax(0,1.2fr) minmax(20rem,.8fr);gap:clamp(4rem,12vw,13rem);display:grid}.about-layout__lead{letter-spacing:-.05em;max-width:20ch;font-size:clamp(2.5rem,5.5vw,6.5rem);font-weight:300;line-height:.98}.about-layout__copy{color:var(--paper-soft);align-content:end;gap:1.5rem;font-size:clamp(1rem,1.3vw,1.25rem);font-weight:300;display:grid}@media (max-width:820px){.about-layout{grid-template-columns:1fr;gap:3rem}}
.skills-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.skill-group{border-right:1px solid var(--line);min-height:26rem;padding:1.5rem;transition:background-color .22s,transform .22s}.skills-grid--full .skill-group:nth-child(-n+4){border-bottom:1px solid var(--line)}.skill-group:nth-child(4n),.skill-group:last-child{border-right:0}.skill-group:hover{background:var(--charcoal-raised);transform:translateY(-.5rem)}.skill-group>span{color:var(--steel);letter-spacing:.12em;font-size:.75rem}.skill-group h2,.skill-group h3{margin-top:7rem;font-size:clamp(1.15rem,1.7vw,1.65rem);font-weight:400}.skill-group ul{margin-top:1.5rem;list-style:none}.skill-group li{color:var(--muted);padding:.3rem 0;font-size:.92rem}@media (max-width:820px){.skills-grid,.skills-grid--full{overscroll-behavior-inline:contain;scroll-behavior:smooth;scroll-snap-type:inline mandatory;scrollbar-width:none;touch-action:pan-x pan-y;grid-template-columns:none;display:flex;overflow-x:auto}.skills-grid::-webkit-scrollbar{display:none}.skill-group,.skills-grid--full .skill-group:nth-child(-n+4),.skill-group:nth-child(4n),.skill-group:last-child{border-right:1px solid var(--line);scroll-snap-align:start;border-bottom:0;flex:0 0 min(78vw,22rem);min-height:24rem}.skill-group:last-child{border-right:0}}@media (max-width:560px){.skill-group{flex-basis:82vw;min-height:22rem;padding:1.5rem}.skill-group h2,.skill-group h3{margin-top:5rem}}
.experience-list{display:grid}.experience-tabs{min-width:0;display:none}.experience-entry{border-top:1px solid var(--line);grid-template-columns:minmax(17rem,.75fr) 1.25fr;display:grid}.experience-entry__heading{border-right:1px solid var(--line);padding:2rem 3rem 4rem 0}.experience-entry__heading>p,.experience-entry__heading>span{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem}.experience-entry__heading h3{letter-spacing:-.04em;max-width:13ch;margin:5rem 0 .75rem;font-size:clamp(2rem,4vw,4.5rem);font-weight:300;line-height:1}.experience-entry__heading>.experience-entry__summary{max-width:34rem;color:var(--paper-soft);letter-spacing:0;text-transform:none;margin-top:2rem;font-size:.95rem;line-height:1.65}.experience-entry ol{list-style:none}.experience-entry li{color:var(--paper-soft);border-bottom:1px solid var(--line);grid-template-columns:3rem 1fr;padding:1.5rem 0 1.5rem 2rem;display:grid}.experience-entry li span{color:var(--steel);letter-spacing:.12em;font-size:.75rem}@media (max-width:820px){.experience-list__desktop{display:none}.experience-tabs{display:block}.experience-tabs__list{border-top:1px solid var(--line);border-right:0;border-bottom:1px solid var(--line);scroll-snap-type:inline mandatory;scrollbar-width:none;border-left:0;width:100%;min-width:0;max-width:100%;margin:0;padding:0;display:flex;overflow-x:auto}.experience-tabs__list::-webkit-scrollbar{display:none}.experience-tabs__option{scroll-snap-align:start;flex:1 0 min(76vw,19rem);min-width:0}.experience-tabs__option input{opacity:0;width:1px;height:1px;position:absolute}.experience-tabs__option label{min-height:5.5rem;color:var(--muted);border:0;border-right:1px solid var(--line);letter-spacing:.09em;text-align:left;text-transform:uppercase;cursor:pointer;background:0 0;align-content:center;gap:.35rem;padding:1rem 1.25rem;font-size:.78rem;display:grid;position:relative}.experience-tabs__option label:after{background:var(--steel-bright);content:"";transform-origin:0;height:2px;transition:transform .18s;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.experience-tabs__option input:checked+label{color:var(--paper);background:var(--charcoal-raised)}.experience-tabs__option input:checked+label:after{transform:scaleX(1)}.experience-tabs__option input:focus-visible+label{outline:2px solid var(--steel-bright);outline-offset:-2px}.experience-tabs__option label>span{color:var(--steel);font-size:.68rem}.experience-tabs__panel{display:none}.experience-entry{border-top:0;grid-template-columns:1fr}.experience-entry__heading{border-right:0;border-bottom:1px solid var(--line);padding-right:0}.experience-entry__heading h3{margin-top:3rem}.experience-entry li{padding-left:0}}
.education-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.education-entry{border-right:1px solid var(--line);min-height:25rem;padding:2rem;position:relative}.education-entry:last-child{border-right:0}.education-entry>span{color:var(--steel);letter-spacing:.12em;font-size:.75rem}.education-entry>p:first-of-type{color:var(--muted);letter-spacing:.1em;font-size:.78rem;position:absolute;top:2rem;right:2rem}.education-entry h3{letter-spacing:-.04em;max-width:14ch;margin-top:9rem;font-size:clamp(2rem,4vw,4rem);font-weight:300;line-height:1.02}.education-entry>h3+p{color:var(--muted);margin-top:1.25rem}.education-entry>strong{color:var(--steel-bright);letter-spacing:.1em;text-transform:uppercase;margin-top:.75rem;font-size:.78rem;font-weight:500;display:block}@media (max-width:820px){.education-grid{grid-template-columns:1fr}.education-entry{border-right:0;border-bottom:1px solid var(--line);min-height:20rem}.education-entry:last-child{border-bottom:0}}
.projects-list{border-top:1px solid var(--line)}.route-projects__body{min-width:0}.route-projects__index{display:none}.project-row{border-bottom:1px solid var(--line);grid-template-columns:5rem minmax(15rem,1.05fr) minmax(18rem,1.25fr) minmax(12rem,.7fr) 3rem;align-items:center;min-height:11rem;padding:1.75rem 1.5rem 1.75rem 0;transition:background-color .22s,color .22s;display:grid;position:relative}.project-row:before{background:var(--steel);content:"";transform-origin:bottom;width:3px;transition:transform .22s;position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.project-row:hover{background:var(--charcoal-raised)}.project-row:hover:before{transform:scaleY(1)}.project-row__index{color:var(--steel);letter-spacing:.12em;font-size:.78rem}.project-row__title{padding-right:2rem}.project-row__title h3{letter-spacing:-.025em;margin-top:.55rem;font-size:clamp(1.4rem,2.4vw,2.4rem);font-weight:400;line-height:1.1}.project-row__description{max-width:38rem;color:var(--muted);font-size:.94rem}.project-row__summary{min-width:0;padding-right:3rem}.project-row__stack{flex-wrap:wrap;gap:.65rem 1rem;margin-top:1.5rem;list-style:none;display:flex}.project-row__stack li{color:var(--steel);letter-spacing:.1em;text-transform:uppercase;font-size:.68rem}.projects-section .project-row--featured{background:var(--charcoal);min-height:16rem}.projects-section .project-row--featured .project-row__title h3{max-width:18ch;font-size:clamp(2rem,3.5vw,4.25rem);font-weight:300;line-height:1}.projects-section .project-row--featured .project-row__description{color:var(--paper-soft);font-size:clamp(.95rem,1.15vw,1.08rem)}.project-row__meta{border-left:1px solid var(--line);gap:.9rem;padding-left:1.5rem;display:grid}.project-row__meta div{grid-template-columns:3.5rem 1fr;display:grid}.project-row__meta dd{color:var(--paper-soft);text-transform:capitalize;font-size:.82rem}.project-row__arrow{color:var(--steel-bright);justify-self:end;place-items:center;transition:transform .22s;display:grid}.project-row__arrow svg{width:1.4rem;height:1.4rem}.project-row:hover .project-row__arrow{transform:translate(.35rem,-.35rem)}.section-cta{width:fit-content;color:var(--steel-bright);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.65rem;margin-top:2rem;margin-left:auto;font-size:.75rem;display:flex}@media (max-width:1180px){.project-row{grid-template-columns:4rem minmax(12rem,1fr) minmax(17rem,1.2fr) 3rem}.project-row__meta{display:none}}@media (max-width:820px){.route-projects{grid-template-columns:1fr}.route-projects__rail{display:none}.route-projects__index{color:var(--steel);letter-spacing:.14em;padding:4rem clamp(1.5rem,7vw,3.5rem) 0;font-size:.72rem;display:block}.route-projects .projects-list{padding-top:2rem}.project-row{grid-template-columns:3rem minmax(0,1fr) 2rem;grid-template-areas:"index title arrow"".description description";align-items:start;padding:1.5rem 0}.project-row__index{grid-area:index}.project-row__title{grid-area:title;padding-right:1rem}.project-row__description{margin-top:0;padding:0 1.5rem 0 0}.project-row__summary{grid-area:description;margin-top:1.25rem;padding:0 1.5rem 0 0}.project-row__stack{display:none}.projects-section .project-row--featured{background:0 0;min-height:0}.projects-section .project-row--featured .project-row__title h3{font-size:clamp(1.4rem,2.4vw,2.4rem);font-weight:400;line-height:1.1}.projects-section .project-row--featured .project-row__description{color:var(--muted);font-size:.94rem}.project-row__arrow{grid-area:arrow}}
.notes-section{min-height:auto}.notes-preview{border-top:1px solid var(--line);grid-template-columns:.5fr 1.5fr auto;align-items:end;gap:2rem;padding-top:2rem;display:grid}.notes-preview>p{color:var(--steel);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem}.notes-preview h2{letter-spacing:-.04em;max-width:24ch;font-size:clamp(1.8rem,3.6vw,4rem);font-weight:300;line-height:1.05}.notes-preview a{color:var(--steel-bright);letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:.6rem;font-size:.74rem;display:inline-flex}@media (max-width:820px){.notes-preview{grid-template-columns:1fr;gap:1.5rem}}
.media-carousel{background:var(--ink-deep);border:1px solid var(--line-strong);min-width:0;margin:0;overflow:hidden}.media-carousel__track{scrollbar-width:none;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x pan-y;display:flex;overflow-x:auto}.media-carousel__track::-webkit-scrollbar{display:none}.media-carousel--inline{background:0 0;border:0;overflow:visible}.media-carousel--inline .media-carousel__track{scroll-snap-type:x proximity;gap:1rem;padding-right:22%}.media-carousel--inline .media-carousel__slide{border:1px solid var(--line-strong);background:var(--ink-deep);min-width:72%;overflow:hidden}.media-carousel--inline.media-carousel--single .media-carousel__track{padding-right:0}.media-carousel--inline.media-carousel--single .media-carousel__slide{min-width:100%}.media-carousel--inline .media-carousel__slide img{aspect-ratio:4/3}.media-carousel--inline .media-carousel__footer{background:var(--ink);border:1px solid var(--line);margin-top:.75rem}.media-carousel--inline .media-carousel__dots{display:none}.media-carousel--inline .media-carousel__arrows button{width:3.4rem}.media-carousel__slide{scroll-snap-align:start;scroll-snap-stop:always;min-width:100%}.media-carousel__open{width:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;padding:0;display:block;position:relative;overflow:hidden}.media-carousel__open>span{color:#d2d3cf;letter-spacing:.12em;text-transform:uppercase;opacity:0;background:#070809e0;border:1px solid #efeee93d;align-items:center;gap:.5rem;padding:.6rem .75rem;font-size:.64rem;transition:opacity .18s,transform .18s;display:inline-flex;position:absolute;bottom:1rem;right:1rem;transform:translateY(.4rem)}.media-carousel__open:hover>span,.media-carousel__open:focus-visible>span{opacity:1;transform:translateY(0)}.media-carousel__slide img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}.media-carousel__footer{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:4.4rem;padding-left:1rem;display:grid}.media-carousel__footer figcaption{max-width:64rem;color:var(--quiet);letter-spacing:.07em;border:0;margin:0;padding:.8rem 1rem .8rem 0;font-size:.7rem}.media-carousel__controls,.media-carousel__dots,.media-carousel__arrows{align-items:center;display:flex}.media-carousel__controls{border-left:1px solid var(--line);align-self:stretch}.media-carousel__count{min-width:5.5rem;color:var(--muted);letter-spacing:.14em;text-align:center;padding:0 1rem;font-size:.66rem}.media-carousel__gesture{color:var(--steel);letter-spacing:.13em;white-space:nowrap;text-transform:uppercase;padding:0 1rem;font-size:.62rem}.media-carousel__dots{gap:.45rem;padding:0 1rem}.media-carousel__dots button{cursor:pointer;background:0 0;border:0;width:1.7rem;height:1.7rem;padding:0}.media-carousel__dots button:after{background:var(--quiet);content:"";width:100%;height:1px;transition:background .18s,transform .18s;display:block}.media-carousel__dots button[aria-current=true]:after{background:var(--steel-bright);transform:scaleY(3)}.media-carousel__arrows{align-self:stretch}.media-carousel__arrows button{border:0;border-left:1px solid var(--line);cursor:pointer;background:0 0;place-items:center;width:4.4rem;padding:0;transition:color .18s,background .18s;display:grid}.media-carousel__arrows button:hover:not(:disabled){color:var(--ink);background:var(--steel-bright)}.media-carousel__arrows button:disabled{color:var(--quiet);cursor:default;opacity:.35}.media-carousel__dialog{--ink:#070809;--paper:#efeee9;--paper-soft:#d2d3cf;--muted:#92979a;--quiet:#7b8388;--line:#efeee921;width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--paper);background:#040506fa;border:0;margin:0;padding:0}.media-carousel__dialog::backdrop{background:#040506eb}.media-carousel__dialog[open]{grid-template-rows:auto minmax(0,1fr) auto;display:grid}.media-carousel__dialog-header,.media-carousel__dialog-controls{z-index:2;border-bottom:1px solid var(--line);background:var(--ink);justify-content:space-between;align-items:center;min-height:4.5rem;display:flex;position:relative}.media-carousel__dialog-header p,.media-carousel__dialog-header button,.media-carousel__dialog-controls>button{color:var(--paper-soft);letter-spacing:.13em;text-transform:uppercase;font-size:.68rem}.media-carousel__dialog-header p{padding:0 1.5rem}.media-carousel__dialog-header button,.media-carousel__dialog-controls>button{cursor:pointer;background:0 0;border:0;align-items:center;gap:.65rem;min-height:4.5rem;padding:0 1.5rem;display:inline-flex}.media-carousel__dialog-header button{border-left:1px solid var(--line)}.media-carousel__dialog-track{scrollbar-width:none;scroll-snap-type:x mandatory;overscroll-behavior:contain;min-height:0;display:flex;overflow-x:auto}.media-carousel__dialog-track::-webkit-scrollbar{display:none}.media-carousel__dialog-track figure{scroll-snap-align:start;scroll-snap-stop:always;grid-template-rows:minmax(0,1fr) auto;min-width:100%;min-height:0;margin:0;padding:1.5rem;display:grid}.media-carousel__dialog-track img{object-fit:contain;width:100%;height:100%;min-height:0}.media-carousel__dialog-track figcaption{max-width:62rem;color:var(--muted);text-align:center;border:0;margin:0 auto;padding:1rem 0 0}.media-carousel__dialog-controls{border-top:1px solid var(--line);border-bottom:0;justify-content:center}.media-carousel__dialog-controls>button{border-right:1px solid var(--line);border-left:1px solid var(--line);justify-content:center;min-width:9rem}.media-carousel__dialog-controls>button:disabled{color:var(--quiet);cursor:default;opacity:.35}@media (max-width:820px){.media-carousel--inline{border-right:0}.media-carousel--inline .media-carousel__track{gap:.85rem;padding-right:16vw}.media-carousel--inline .media-carousel__slide{min-width:78%}.media-carousel--inline .media-carousel__footer{border-right:1px solid var(--line-strong);margin-right:1.5rem}.media-carousel__open>span{opacity:1;transform:none}.media-carousel__footer{grid-template-columns:1fr;min-height:auto;padding-left:0}.media-carousel__footer figcaption{min-height:4.25rem;padding:.85rem 1rem}.media-carousel__controls{border-top:1px solid var(--line);border-left:0;justify-content:space-between;min-height:3.75rem}.media-carousel__count{text-align:left}.media-carousel--inline .media-carousel__count{min-width:auto}.media-carousel__arrows button{width:3.75rem}.media-carousel__dialog-track figure{padding:1rem}.media-carousel__dialog-controls{justify-content:space-between}.media-carousel__dialog-controls .media-carousel__dots{padding:0 .5rem;display:flex}.media-carousel__dialog-controls>button{min-width:auto;padding:0 1rem}}@media (max-width:480px){.media-carousel__dots{display:none}}@media (min-width:1181px){.media-carousel__dialog{width:133.333vw;height:133.333dvh}}
.pointer-signal{z-index:120;width:.5rem;height:.5rem;color:var(--steel-bright);opacity:0;pointer-events:none;filter:drop-shadow(0 0 .35rem #b1c5cc3d);will-change:transform;transition:opacity .22s;position:fixed;top:-.25rem;left:-.25rem}.pointer-signal[data-visible=true]{opacity:.5}.pointer-signal svg{stroke-width:1.25px;width:100%;height:100%;display:block}@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.pointer-signal{display:none}}
.case-study h1{overflow-wrap:anywhere;text-wrap:balance;max-width:100%}.case-study__hero-image,.case-study__metrics{width:min(100%, var(--page-max));border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-left:1px solid var(--line);margin:0 auto}.case-study__hero-image{padding:clamp(1rem,3vw,3rem)}.case-study__metrics{grid-template-columns:repeat(3,minmax(0,1fr));padding:0 clamp(1.5rem,9vw,11rem);display:grid}.case-study__metrics>div{border-right:1px solid var(--line);padding:2rem}.case-study__metrics>div:last-child{border-right:0}.case-study__metrics dt{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.7rem}.case-study__metrics dd{color:var(--paper);margin-top:.6rem;font-size:clamp(1.6rem,3vw,3rem);font-weight:300}.case-study__chapter-body{gap:1.5rem;display:grid}.case-study__chapter-body ul{margin-top:.5rem;list-style:none;display:grid}.case-study__chapter-body li{color:var(--paper-soft);border-top:1px solid var(--line);padding:1rem 0 1rem 1.5rem;position:relative}.case-study__chapter-body li:before{background:var(--steel);content:"";width:.4rem;height:.4rem;position:absolute;top:1.45rem;left:0}.case-study__chapter-body .media-carousel{margin-top:1.5rem}.case-study__gallery{min-width:0}@media (max-width:820px){.case-study__metrics{grid-template-columns:1fr;padding:0 1.5rem}.case-study__metrics>div{border-right:0;border-bottom:1px solid var(--line);padding:1.5rem 0}.case-study__metrics>div:last-child{border-bottom:0}.case-study__chapter-body,.case-study__gallery{grid-column:2}.case-study h1{font-size:clamp(3rem,14vw,7.25rem)}}
.notes-index,.note-article{width:min(100%, var(--page-max));border-right:1px solid var(--line);border-left:1px solid var(--line);margin:0 auto;position:relative}.notes-index__hero,.note-article__hero{border-bottom:1px solid var(--line);min-height:76svh}.notes-index__hero-body,.note-article__hero-body{min-height:inherit;flex-direction:column;justify-content:center;padding:clamp(5rem,10vw,10rem) clamp(1.5rem,7vw,8rem);display:flex}.notes-index h1,.note-article h1{max-width:11ch;font-family:var(--font-display), Impact, sans-serif;letter-spacing:-.04em;text-transform:uppercase;margin-top:1.25rem;font-size:clamp(4rem,10vw,11rem);font-weight:500;line-height:.9}.notes-index__intro,.note-article__standfirst{max-width:50rem;color:var(--paper-soft);margin-top:2rem;font-size:clamp(1.05rem,1.55vw,1.4rem);font-weight:300}.notes-index__collection,.notes-index__archive{grid-template-columns:var(--rail) minmax(0, 1fr);border-bottom:1px solid var(--line);display:grid}.notes-index__archive-list{padding:clamp(2rem,5vw,5rem) clamp(1.5rem,7vw,8rem)}.notes-index__archive-row{border-top:1px solid var(--line);grid-template-columns:3rem minmax(0,1fr) auto;align-items:center;gap:clamp(1rem,3vw,3rem);min-height:10rem;display:grid}.notes-index__archive-row:last-child{border-bottom:1px solid var(--line)}.notes-index__archive-row>span,.notes-index__archive-row p{color:var(--muted);letter-spacing:.13em;text-transform:uppercase;font-size:.68rem}.notes-index__archive-row h3{letter-spacing:-.035em;max-width:24ch;margin-top:.65rem;font-size:clamp(1.5rem,3vw,3rem);font-weight:300;line-height:1.05}.notes-index__archive-row>svg{color:var(--steel);transition:color .18s,transform .18s}.notes-index__archive-row:hover>svg{color:var(--steel-bright);transform:translate(.4rem)}.notes-index__label{color:var(--muted);letter-spacing:.14em;text-align:center;text-transform:uppercase;border-right:1px solid var(--line);writing-mode:vertical-rl;padding-top:4rem;font-size:.7rem}.note-card{grid-template-columns:minmax(0,1.3fr) minmax(20rem,.7fr);gap:clamp(2rem,5vw,6rem);padding:clamp(3rem,7vw,8rem);display:grid}.notes-index__empty{min-height:28rem;padding:clamp(4rem,8vw,9rem)}.notes-index__empty h2{letter-spacing:-.04em;max-width:18ch;margin-top:2rem;font-size:clamp(2rem,4vw,4.5rem);font-weight:300;line-height:1.02}.note-card__image,.note-article__cover,.note-article__chapter figure{background:var(--charcoal);margin:0;overflow:hidden}.note-card__image{aspect-ratio:16/9;align-self:center}.note-card img,.note-article img{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .7s;display:block}.note-card__copy{flex-direction:column;justify-content:center;padding:1rem 0;display:flex}.note-card__meta,.note-card__cta,.note-article__meta dt,.note-article__toc>span,.note-article__toc a,.note-article__chapter>span{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.7rem}.note-card__meta span{color:var(--quiet);margin:0 .6rem}.note-card h2{letter-spacing:-.045em;max-width:15ch;margin-top:2rem;font-size:clamp(2rem,4vw,4.6rem);font-weight:300;line-height:.98}.note-card__copy>p:not(.note-card__meta){max-width:38rem;color:var(--paper-soft);margin-top:2rem;font-size:clamp(1rem,1.2vw,1.15rem);font-weight:300}.note-card__cta{width:fit-content;color:var(--steel-bright);align-items:center;gap:.75rem;margin-top:3rem;display:inline-flex}.note-card__cta svg{transition:transform .22s}.note-card:hover .note-card__image img{filter:brightness(1.08);transform:scale(1.018)}.note-card:hover .note-card__cta svg{transform:translate(.4rem)}.note-article__hero h1{max-width:13ch;font-size:clamp(3.7rem,8.4vw,9.5rem)}.note-article__meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));max-width:42rem;margin-top:4rem;display:grid}.note-article__meta>div{padding:1.15rem 1.5rem 1.15rem 0}.note-article__meta>div+div{border-left:1px solid var(--line);padding-left:1.5rem}.note-article__meta dd{color:var(--paper-soft);margin-top:.35rem}.note-article__cover{border-bottom:1px solid var(--line);max-height:72rem;display:grid;position:relative}.note-article__cover img{aspect-ratio:16/9}.note-article figcaption{color:var(--quiet);letter-spacing:.08em;border-top:1px solid var(--line);padding:.9rem 1rem;font-size:.68rem}.note-article__content{border-bottom:1px solid var(--line);grid-template-columns:minmax(15rem,.34fr) minmax(0,1fr);display:grid}.note-article__toc{border-right:1px solid var(--line);align-self:start;min-height:100%;padding:clamp(3rem,6vw,7rem) clamp(1.5rem,3vw,3.5rem)}.note-article__toc ol{margin-top:2rem;list-style:none;display:grid}.note-article__toc li{border-top:1px solid var(--line)}.note-article__toc a{color:var(--paper-soft);text-transform:none;padding:1.25rem 0;line-height:1.5;transition:color .18s,padding-left .18s;display:block}.note-article__toc a:hover{color:var(--steel-bright);padding-left:.4rem}.note-article__chapters{padding:clamp(3rem,7vw,8rem) clamp(1.5rem,8vw,10rem)}.note-article__chapter{scroll-margin-top:calc(var(--header-height) + 2rem);border-top:1px solid var(--line);grid-template-columns:4rem minmax(13rem,.6fr) minmax(20rem,1fr);gap:2rem;padding:clamp(3rem,6vw,7rem) 0;display:grid}.note-article__chapter>span{color:var(--steel)}.note-article__chapter h2{letter-spacing:-.04em;max-width:11ch;font-size:clamp(2rem,3.5vw,4rem);font-weight:300;line-height:1.02}.note-article__chapter-body{gap:1.5rem;display:grid}.note-article__chapter-body>p{max-width:42rem;color:var(--paper-soft);font-size:clamp(1.05rem,1.35vw,1.25rem);font-weight:300;line-height:1.7}.note-article__chapter ul{border-top:1px solid var(--line);margin-top:1rem;list-style:none;display:grid}.note-article__chapter li{color:var(--paper-soft);border-bottom:1px solid var(--line);padding:1rem 0 1rem 2.5rem;position:relative}.note-article__chapter li:before{color:var(--steel);content:"→";position:absolute;top:1.05rem;left:0}.note-article__chapter .media-carousel{margin-top:2.5rem}.note-article__chapter .media-carousel__slide img{aspect-ratio:3/2}.note-article__chapter .media-carousel__slide:hover img{filter:brightness(1.06);transform:scale(1.012)}.note-article__footer{min-height:12rem;color:var(--muted);justify-content:space-between;align-items:center;gap:2rem;padding:3rem clamp(1.5rem,7vw,8rem);display:flex}.note-article__prose{gap:2rem;width:min(100%,64rem);margin:0 auto;padding:clamp(5rem,10vw,11rem) clamp(1.5rem,8vw,8rem);display:grid}.note-article__prose>p,.note-article__prose>blockquote{max-width:44rem;color:var(--paper-soft);font-size:clamp(1.08rem,1.45vw,1.32rem);font-weight:300;line-height:1.8}.note-article__prose>h2{letter-spacing:-.04em;max-width:13ch;margin-top:clamp(2rem,5vw,5rem);font-size:clamp(2.2rem,4.5vw,4.8rem);font-weight:300;line-height:1}.note-article__prose>blockquote{color:var(--paper);border-left:1px solid var(--steel);margin:2rem 0;padding:1.5rem 0 1.5rem 2rem;font-size:clamp(1.4rem,2.5vw,2.4rem);line-height:1.35}.note-article__prose>.media-carousel{margin:clamp(2rem,5vw,5rem) 0}.note-article__footer a{color:var(--steel-bright);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.75rem;font-size:.72rem;display:inline-flex}@media (max-width:960px){.note-card,.note-article__content{grid-template-columns:1fr}.note-article__toc{border-right:0;border-bottom:1px solid var(--line);min-height:auto}.note-article__toc ol{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}.note-article__chapter{grid-template-columns:3rem minmax(12rem,.5fr) minmax(18rem,1fr)}}@media (max-width:820px){.notes-index__hero,.note-article__hero{min-height:68svh}.notes-index__hero-body,.note-article__hero-body{padding:5rem 1.5rem}.notes-index h1,.note-article h1{font-size:clamp(3.2rem,15.2vw,6.7rem)}.notes-index__collection,.notes-index__archive{grid-template-columns:1fr}.notes-index__archive-list{padding:1.5rem}.notes-index__archive-row{grid-template-columns:2rem minmax(0,1fr) auto;min-height:8rem}.notes-index__label{text-align:left;border-right:0;border-bottom:1px solid var(--line);writing-mode:initial;padding:1.5rem}.note-card{gap:2rem;padding:1.5rem 1.5rem 4rem}.note-card h2{font-size:clamp(2.35rem,11vw,4rem)}.note-article__meta{grid-template-columns:1fr}.note-article__meta>div,.note-article__meta>div+div{border-left:0;padding:1rem 0}.note-article__meta>div+div{border-top:1px solid var(--line)}.note-article__cover img{aspect-ratio:4/3}.note-article__toc{padding:2.5rem 1.5rem}.note-article__toc ol{grid-template-columns:1fr}.note-article__chapters{padding:3rem 1.5rem}.note-article__chapter{grid-template-columns:2.5rem minmax(0,1fr);gap:1.5rem .5rem}.note-article__chapter h2{max-width:13ch}.note-article__chapter-body{grid-column:2}.note-article__chapter .media-carousel{margin-left:-3rem;margin-right:-1.5rem}.note-article__footer{flex-direction:column;align-items:flex-start}}@media (min-width:1181px){.notes-index__hero,.note-article__hero{min-height:101.333svh}}
