@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.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:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_868d7743-module__u1MDZG__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_868d7743-module__u1MDZG__variable{--font-sans:"Manrope", "Manrope Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_65475aa-module__RPHOIW__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_65475aa-module__RPHOIW__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-primary:#f7f5f3;--color-bg-secondary:#fff;--color-surface:#f1ede9;--color-surface-hover:#f4ece8;--color-surface-maroon:#f1e1de;--color-text-primary:#1b1817;--color-text-secondary:#5f5754;--color-text-muted:#7a716c;--color-brand-primary:#d31616;--color-brand-emphasis:#b51313;--color-brand-subtle:#f1e1de;--color-brand-deep:#7a1414;--color-brand-bright:#e5120e;--color-brand-fill:#c71616;--color-brand-fill-hover:#a81212;--color-on-brand:#fff;--color-on-brand-muted:#f7dcd6;--color-on-brand-border:#ffffff52;--color-support-accent:#e5120e;--color-structure:#1b1817;--color-border:#dad2cc;--color-border-emphasis:#cf9a94;--color-action-bg:#c71616;--color-action-text:#fff;--color-link:#1b1817;--color-link-hover:#d31616;--color-focus:#e5120e;--color-selection:#c71616;--color-selection-text:#fff;--color-grid:#e5120e0d;--color-header-bg:#f7f5f3eb;--color-status-available:#4e755f;--color-status-available-ring:#4e755f24;--color-footer-primary:#fff;--color-footer-text:#e8d4cf;--color-footer-accent:#eab4ab;--color-footer-border:#ffffff40;--project-surface-1:#c90f16;--project-surface-1-hover:#a80d12;--project-surface-2:color-mix(in srgb, var(--project-surface-1) 80%, var(--color-bg-primary));--project-surface-2-hover:color-mix(in srgb, var(--project-surface-1-hover) 80%, var(--color-bg-primary));--project-surface-3:color-mix(in srgb, var(--project-surface-1) 58%, var(--color-bg-primary));--project-surface-3-hover:color-mix(in srgb, var(--project-surface-1-hover) 58%, var(--color-bg-primary));--project-surface-4:color-mix(in srgb, var(--project-surface-1) 36%, var(--color-bg-primary));--project-surface-4-hover:color-mix(in srgb, var(--project-surface-1-hover) 36%, var(--color-bg-primary));--project-surface-5:color-mix(in srgb, var(--project-surface-1) 18%, var(--color-bg-primary));--project-surface-5-hover:color-mix(in srgb, var(--project-surface-1-hover) 18%, var(--color-bg-primary));--project-surface-6:color-mix(in srgb, var(--project-surface-1) 6%, var(--color-bg-primary));--project-surface-6-hover:color-mix(in srgb, var(--project-surface-1-hover) 6%, var(--color-bg-primary));--font-sans-fallback:Arial, Helvetica, sans-serif;--font-mono-fallback:"Courier New", monospace;--page-edge:clamp(1.25rem, 4vw, 4.5rem);--page-width:90rem;--section-space:clamp(6rem, 12vw, 11rem);--section-space-tight:clamp(3rem, 6vw, 5.5rem);--footer-space:clamp(5rem, 10vw, 9rem);--header-offset:4.75rem;--font-size-eyebrow:.8rem;--ease-out:cubic-bezier(.22, 1, .36, 1)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-primary:#111;--color-bg-secondary:#191919;--color-surface:#1f1f1f;--color-surface-hover:#262626;--color-surface-maroon:#241212;--color-text-primary:#f4f1ef;--color-text-secondary:#b9b2af;--color-text-muted:#8f8783;--color-brand-primary:#f5453b;--color-brand-emphasis:#f75a50;--color-brand-subtle:#241212;--color-brand-deep:#7a1414;--color-brand-bright:#fa2a1e;--color-brand-fill:#c71616;--color-brand-fill-hover:#a81212;--color-on-brand:#fff;--color-on-brand-muted:#f7dcd6;--color-on-brand-border:#ffffff52;--color-support-accent:#fa2a1e;--color-structure:#0b0b0b;--color-border:#332f2d;--color-border-emphasis:#6e2a26;--color-action-bg:#c71616;--color-action-text:#fff;--color-link:#f4f1ef;--color-link-hover:#f5453b;--color-focus:#fa2a1e;--color-selection:#c71616;--color-selection-text:#fff;--color-grid:#fa2a1e0f;--color-header-bg:#111111eb;--color-status-available:#86ac94;--color-status-available-ring:#86ac9424;--color-footer-primary:#fff;--color-footer-text:#e8d4cf;--color-footer-accent:#eab4ab;--color-footer-border:#ffffff38;--project-surface-1:#c90f16;--project-surface-1-hover:#a80d12;--project-surface-2:color-mix(in srgb, var(--project-surface-1) 80%, var(--color-bg-primary));--project-surface-2-hover:color-mix(in srgb, var(--project-surface-1-hover) 80%, var(--color-bg-primary));--project-surface-3:color-mix(in srgb, var(--project-surface-1) 58%, var(--color-bg-primary));--project-surface-3-hover:color-mix(in srgb, var(--project-surface-1-hover) 58%, var(--color-bg-primary));--project-surface-4:color-mix(in srgb, var(--project-surface-1) 36%, var(--color-bg-primary));--project-surface-4-hover:color-mix(in srgb, var(--project-surface-1-hover) 36%, var(--color-bg-primary));--project-surface-5:color-mix(in srgb, var(--project-surface-1) 18%, var(--color-bg-primary));--project-surface-5-hover:color-mix(in srgb, var(--project-surface-1-hover) 18%, var(--color-bg-primary));--project-surface-6:color-mix(in srgb, var(--project-surface-1) 6%, var(--color-bg-primary));--project-surface-6-hover:color-mix(in srgb, var(--project-surface-1-hover) 6%, var(--color-bg-primary))}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-offset);background:var(--color-bg-primary)}body{background:var(--color-bg-primary);min-height:100svh;color:var(--color-text-primary);font-family:var(--font-sans), var(--font-sans-fallback);text-rendering:optimizelegibility;transition:background-color .24s var(--ease-out), color .24s var(--ease-out);margin:0;font-size:1rem;line-height:1.55}body:before{z-index:-1;background-image:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px);content:"";pointer-events:none;background-size:4rem 4rem;position:fixed;inset:0}::selection{background:var(--color-selection);color:var(--color-selection-text)}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:.08em}.work-section,.about-section{scroll-margin-top:calc(-1 * var(--section-space))}.approach-section{scroll-margin-top:calc(-1 * var(--section-space-tight))}main:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}h1,h2,h3,p,blockquote,figure,dl,dd{margin:0}h1,h2,h3{text-wrap:balance}p,dd,li,blockquote{overflow-wrap:anywhere;text-wrap:pretty}ul,ol{margin:0;padding:0}img,svg{max-width:100%;display:block}.skip-link{z-index:100;background:var(--color-brand-fill);color:var(--color-on-brand);font-family:var(--font-mono), var(--font-mono-fallback);padding:.65rem .9rem;font-size:.75rem;transition:transform .16s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus{transform:translateY(0)}.site-header{z-index:50;width:100%;min-height:4.75rem;padding-inline:var(--page-edge);border-bottom:1px solid var(--color-border-emphasis);background:var(--color-header-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:background-color .24s var(--ease-out), border-color .24s var(--ease-out);grid-template-columns:minmax(9rem,1fr) auto minmax(9rem,1fr);align-items:center;display:grid;position:sticky;top:0}.site-header__mark{--logo-height:2.4rem;--logo-unit:calc(var(--logo-height) / 172);--logo-travel:calc(170 * var(--logo-unit));min-width:8rem;height:var(--logo-height);justify-self:start;text-decoration:none;display:inline-block;position:relative;overflow:visible}.site-header__mark-layer{line-height:0;position:absolute;top:0}.site-header__mark-layer svg{height:var(--logo-height);width:auto;display:block}.site-header__mark-layer .brand-logo__n{fill:#1b1817}:root[data-theme=dark] .site-header__mark-layer .brand-logo__n{fill:#f4f1ef}.site-header__mark-layer--u{left:calc(-1 * var(--logo-unit))}.site-header__mark-layer--slash{left:calc(51 * var(--logo-unit));transition:opacity .3s var(--ease-out)}.site-header__mark-layer--mr{left:calc(76 * var(--logo-unit))}.site-header__mark-layer--n{left:calc(98 * var(--logo-unit));transition:transform .44s var(--ease-out)}.site-header__mark-layer--dem{left:calc(178 * var(--logo-unit));transition:transform .44s var(--ease-out), clip-path .44s var(--ease-out), opacity .3s var(--ease-out)}.site-header__mark-layer--mr,.site-header__mark-layer--dem{clip-path:inset(0 100% 0 0);opacity:0}.site-header__mark-layer--mr{transition:clip-path .44s var(--ease-out), opacity .3s var(--ease-out)}.site-header__mark:hover .site-header__mark-layer--n,.site-header__mark:focus-visible .site-header__mark-layer--n,.site-header__mark:hover .site-header__mark-layer--dem,.site-header__mark:focus-visible .site-header__mark-layer--dem{transform:translateX(var(--logo-travel))}.site-header__mark:hover .site-header__mark-layer--mr,.site-header__mark:focus-visible .site-header__mark-layer--mr,.site-header__mark:hover .site-header__mark-layer--dem,.site-header__mark:focus-visible .site-header__mark-layer--dem{clip-path:inset(0);opacity:1}.site-header__mark:hover .site-header__mark-layer--slash,.site-header__mark:focus-visible .site-header__mark-layer--slash{opacity:0}@media (prefers-reduced-motion:reduce){.site-header__mark-layer--n,.site-header__mark-layer--dem,.site-header__mark-layer--mr{transition:opacity .3s var(--ease-out)}}.site-header__nav{align-items:center;gap:clamp(1.25rem,3vw,3rem);display:flex}.site-header__actions{justify-self:end;align-items:center;gap:clamp(.8rem,2vw,1.75rem);display:flex}.site-header__menu{display:none}.site-header__menu-toggle{width:2.75rem;height:2.75rem;color:var(--color-text-primary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.site-header__menu-icon,.site-header__menu-icon:before,.site-header__menu-icon:after{width:1.4rem;height:1.5px;transition:transform .24s var(--ease-out), opacity .16s var(--ease-out);background:currentColor;display:block}.site-header__menu-icon{position:relative}.site-header__menu-icon:before,.site-header__menu-icon:after{content:"";position:absolute;left:0}.site-header__menu-icon:before{top:-.45rem}.site-header__menu-icon:after{top:.45rem}.site-header__menu-icon[data-open=true]{background:0 0}.site-header__menu-icon[data-open=true]:before{transform:translateY(.45rem)rotate(45deg)}.site-header__menu-icon[data-open=true]:after{transform:translateY(-.45rem)rotate(-45deg)}.site-header__menu-backdrop{z-index:1;cursor:default;background:#00000047;border:0;width:100%;height:100%;padding:0;position:fixed;inset:0}.site-header__menu-panel{z-index:2;padding:.5rem var(--page-edge) 1rem;border-bottom:1px solid var(--color-border-emphasis);background:var(--color-header-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;visibility:hidden;transition:transform .22s var(--ease-out), opacity .18s var(--ease-out), visibility 0s linear .22s;display:grid;position:absolute;top:100%;left:0;right:0;transform:translateY(-.5rem)}.site-header__menu-panel[data-open=true]{opacity:1;visibility:visible;transition:transform .22s var(--ease-out), opacity .18s var(--ease-out);transform:translateY(0)}.site-header__menu-panel a{border-bottom:1px solid var(--color-border-subtle);transition:color .18s var(--ease-out);padding:.85rem .25rem;font-size:1.05rem;text-decoration:none}.site-header__menu-panel a:last-child{border-bottom:0}.site-header__menu-panel a:hover,.site-header__menu-panel a:focus-visible{color:var(--color-brand-primary)}.theme-toggle{min-width:2.75rem;min-height:2.75rem;color:var(--color-text-primary);cursor:pointer;font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.05em;text-transform:uppercase;background:0 0;border:0;justify-content:center;align-items:center;gap:.55rem;padding:0;font-size:.78rem;display:inline-flex}.theme-toggle__disc{border:1px solid var(--color-brand-primary);background:linear-gradient(90deg, var(--color-brand-fill) 50%, transparent 50%);width:1.05rem;height:1.05rem;transition:background-color .24s var(--ease-out), border-color .24s var(--ease-out), transform .32s var(--ease-out);border-radius:50%}.theme-toggle:hover .theme-toggle__disc{transform:rotate(180deg)}.theme-toggle__disc--light{background:0 0}.theme-toggle__disc--dark{background:var(--color-brand-fill)}.site-header__nav a{transition:color .18s var(--ease-out);font-size:1.25rem;text-decoration:none;position:relative}.site-header__nav a:after{background:var(--color-brand-primary);content:"";transform-origin:100%;height:1px;transition:transform .18s var(--ease-out);position:absolute;bottom:-.35rem;left:0;right:0;transform:scaleX(0)}.site-header__nav a:hover:after,.site-header__nav a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.site-header__nav a:hover,.site-header__nav a:focus-visible{color:var(--color-brand-primary)}.kicker,.section-heading__index,.case-study__section-index{font-variant-numeric:tabular-nums;font-family:var(--font-mono), var(--font-mono-fallback);font-size:var(--font-size-eyebrow);letter-spacing:.075em;text-transform:uppercase;font-weight:500;line-height:1.4}.kicker{color:var(--color-brand-primary)}.hero{width:min(100%, var(--page-width));min-height:calc(100dvh - 4.75rem);padding:clamp(1.5rem, 5vh, 6rem) var(--page-edge) clamp(1.5rem, 3vh, 4rem);isolation:isolate;grid-template-columns:repeat(12,minmax(0,1fr));align-content:center;gap:2rem;margin:0 auto;display:grid;position:relative}.hero__copy{grid-column:1/span 8;align-self:start;min-width:0}.typing-headline__word{white-space:nowrap;display:inline}.typing-headline__character{opacity:0;animation:type-character 42ms linear calc(.18s + (var(--typing-index) * 34ms)) forwards}.hero h1{letter-spacing:-.065em;overflow-wrap:anywhere;max-width:14ch;margin-top:clamp(.5rem,2vh,1.6rem);font-size:clamp(1.9rem,min(7.5vw,10.5vh),7rem);font-weight:520;line-height:1.02}.hero__intro{max-width:43rem;color:var(--color-text-secondary);letter-spacing:-.022em;margin-top:clamp(.85rem,3.5vh,3rem);font-size:clamp(1rem,.4vw + .9vh,1.5rem);line-height:1.45}.hero__actions{flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:clamp(.85rem,3vh,2.5rem);display:flex}.button-link{border:1px solid var(--color-action-bg);background:var(--color-action-bg);min-height:3rem;color:var(--color-action-text);font:inherit;font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.03em;text-transform:uppercase;transition:background .18s var(--ease-out), color .18s var(--ease-out), transform .18s var(--ease-out);border-radius:0;justify-content:space-between;align-items:center;gap:1.4rem;padding:.8rem 1rem;font-size:.75rem;text-decoration:none;display:inline-flex}.button-link:hover{background:var(--color-brand-fill);border-color:var(--color-brand-fill);color:var(--color-on-brand);transform:translateY(-1px)}.button-link--light{border-color:var(--color-footer-primary);background:var(--color-footer-primary);color:var(--color-structure)}.button-link--light:hover{background:var(--color-support-accent);border-color:var(--color-support-accent);color:var(--color-structure)}.text-link{color:var(--color-link);font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.03em;text-transform:uppercase;font-size:.75rem}.text-link:hover{color:var(--color-link-hover)}.portrait-placeholder{grid-column:9/-1;place-self:start end;width:min(100%,30rem,46vh);position:relative}.portrait-placeholder:before{z-index:-1;aspect-ratio:4/5;background:var(--color-brand-fill);content:"";width:100%;transition:background-color .24s var(--ease-out);position:absolute;top:-1.4rem;left:-1.4rem}.portrait-placeholder__field{aspect-ratio:4/5;border:1px solid var(--color-text-primary);background:linear-gradient(135deg, transparent 49.5%, var(--color-text-primary) 50%, transparent 50.5%), linear-gradient(var(--color-brand-subtle), var(--color-brand-subtle));place-items:center;display:grid;position:relative;overflow:hidden}.portrait-placeholder__field:before,.portrait-placeholder__field:after{border:1px solid var(--color-brand-primary);content:"";border-radius:50%;position:absolute}.portrait-placeholder__field:before{aspect-ratio:1;width:62%;top:14%;left:18%}.portrait-placeholder__field:after{aspect-ratio:1;border-color:var(--color-support-accent);width:54%;bottom:8%;right:-8%}.portrait-placeholder__field span{z-index:2;letter-spacing:-.09em;font-size:clamp(4rem,9vw,8rem);font-weight:500}.portrait-placeholder__field--image:before,.portrait-placeholder__field--image:after{display:none}.portrait-placeholder__field--image img{object-fit:cover}.portrait-placeholder__field i,.portrait-placeholder__field b{z-index:1;background:var(--color-brand-primary);display:block;position:absolute}.portrait-placeholder__field i{width:1px;height:100%;top:0;right:17%}.portrait-placeholder__field b{width:100%;height:1px;bottom:23%;left:0}.portrait-placeholder figcaption{color:var(--color-brand-bright);font-family:var(--font-mono), var(--font-mono-fallback);grid-template-columns:1fr 1.6fr;gap:1rem;margin-top:.85rem;font-size:.66rem;line-height:1.4;display:grid}.portrait-placeholder figcaption span{color:var(--color-brand-bright);text-transform:uppercase}.current-section{width:min(100%, var(--page-width));padding-inline:var(--page-edge);margin:0 auto}.current-section__inner{border-top:1px solid var(--color-brand-primary);grid-template-columns:2fr 4fr 6fr;gap:2rem;padding-block:1.4rem clamp(3rem,6vw,5rem);display:grid}.current-section__inner p:first-child{font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.06em;text-transform:uppercase;font-size:.68rem}.current-section__inner p:last-child{max-width:33rem;color:var(--color-text-secondary);grid-column:2}.range-section,.work-section,.experience-section,.approach-section,.about-section{width:min(100%, var(--page-width));padding:var(--section-space) var(--page-edge);margin:0 auto}.work-section,.experience-section{padding-bottom:var(--section-space-tight)}.experience-section,.approach-section{padding-top:var(--section-space-tight)}.range-section{border-top:1px solid var(--color-brand-primary);background:var(--color-brand-subtle);box-shadow:0 0 0 100vmax var(--color-brand-subtle);clip-path:inset(0 -100vmax);transition:background-color .24s var(--ease-out);grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem;display:grid}.range-section>.range-section__intro{grid-column:1/span 8}.range-section h2{max-width:17ch;color:var(--color-brand-emphasis);letter-spacing:-.055em;margin-top:1.15rem;font-size:clamp(2.4rem,5.2vw,5.5rem);font-weight:520;line-height:1}.range-section>.range-section__copy{grid-column:9/-1;align-self:end}.range-section>.range-section__copy>p{max-width:28rem;color:var(--color-text-muted)}.range-section>.range-line{grid-column:1/-1;margin-top:clamp(3rem,7vw,6rem)}.range-line{--segments:4;width:100%;position:relative}.range-line__body{position:relative}.range-line__span{text-align:right;font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-primary);text-wrap:balance;margin:0 0 .85rem;font-size:.75rem;font-weight:500;line-height:1.45}.range-line__span-prefix{color:inherit;margin-inline-end:.15em}.range-line__span-topic{color:inherit;font-weight:500}.range-line__span-sep{color:var(--color-brand-primary);font-weight:400}.range-line__track{background:var(--color-border);height:2px;position:relative}.range-line__active{top:-1px;left:calc((var(--range-start) / var(--segments)) * 100%);width:calc(((var(--range-end) - var(--range-start)) / var(--segments)) * 100%);background:var(--color-brand-primary);transform-origin:0;min-width:2px;height:4px;position:absolute;transform:scaleX(0)}.range-line.is-in-view .range-line__active{animation:range-reveal .56s var(--ease-out) both}.range-line__points{justify-content:space-between;list-style:none;display:flex;position:relative}.range-line__points li{width:0;color:var(--color-text-muted);font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.05em;text-transform:uppercase;flex-direction:column;align-items:center;font-size:.66rem;display:flex}.range-line__dot{z-index:1;box-sizing:border-box;border:2px solid var(--color-text-muted);background:var(--color-bg-primary);border-radius:50%;flex:none;width:.9rem;height:.9rem;margin-top:-.5rem;position:relative}.range-line__label{white-space:nowrap;margin-top:.7rem}.range-line__points li:first-child .range-line__label{text-align:left;align-self:flex-start}.range-line__points li:last-child .range-line__label{text-align:right;align-self:flex-end}.range-line__points li.is-active{color:var(--color-text-primary)}.range-line__points li.is-active .range-line__dot{border-color:var(--color-brand-primary);background:var(--color-brand-primary)}.range-line--compact .range-line__points li{font-size:.58rem}.range-line--compact .range-line__span{letter-spacing:.04em;margin-bottom:.7rem;font-size:.8125rem}@keyframes range-reveal{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.reveal{opacity:0;transition:opacity .45s var(--ease-out), transform .45s var(--ease-out);transition-delay:var(--reveal-delay,0s);transform:translateY(14px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes type-character{0%{opacity:0}8%,to{opacity:1}}.section-heading{border-top:1px solid var(--color-brand-primary);grid-template-columns:1fr 5fr 6fr;align-items:start;gap:2rem;margin-bottom:clamp(3rem,7vw,6rem);padding-top:1.2rem;display:grid}.section-heading__index{background:var(--color-brand-fill);width:fit-content;color:var(--color-on-brand);padding:.28rem .42rem}.section-heading h2{letter-spacing:-.055em;max-width:13ch;font-size:clamp(2.2rem,4.3vw,4.6rem);font-weight:520;line-height:1}.section-heading__note{max-width:28rem;color:var(--color-text-muted);justify-self:end}.project-list{gap:1rem;display:grid}.project-card{z-index:0;border:0;border-top:1px solid var(--color-border);--card-ink:var(--color-text-primary);--card-ink-soft:color-mix(in srgb, var(--color-text-primary) 92%, transparent);--card-ink-quiet:color-mix(in srgb, var(--color-text-primary) 84%, transparent);--card-rule:color-mix(in srgb, var(--color-text-primary) 30%, transparent);--card-badge-rule:var(--color-text-primary);color:var(--card-ink);transition:border-color .18s var(--ease-out), background .18s var(--ease-out), transform .18s var(--ease-out), box-shadow .18s var(--ease-out);background:0 0;gap:2rem;padding:clamp(1.35rem,3vw,2.5rem);display:grid;position:relative}.project-card:hover,.project-card:focus-within{z-index:1;border-color:var(--color-border-emphasis);background:var(--color-surface-maroon);box-shadow:0 14px 32px color-mix(in oklch, var(--color-brand-deep) 16%, transparent);transform:translateY(-4px)}.project-card--featured{border:1px solid var(--color-border);background:var(--color-surface-maroon);min-height:34rem}.project-card--featured:hover,.project-card--featured:focus-within{background:var(--color-surface-hover);box-shadow:0 14px 32px color-mix(in oklch, var(--color-brand-deep) 16%, transparent);transform:translateY(-4px)}.project-card__topline{font-family:var(--font-mono), var(--font-mono-fallback);font-variant-numeric:tabular-nums;letter-spacing:.045em;text-transform:uppercase;justify-content:space-between;gap:1rem;font-size:.65rem;display:flex}.project-card__topline p:first-child{align-items:flex-start;gap:1rem;display:flex}.project-card__topline p:first-child span{background:var(--color-brand-fill);color:var(--color-on-brand);padding:.2rem .38rem}.project-card__topline p:last-child{color:var(--card-ink-quiet)}.project-card__body{grid-template-columns:7fr 5fr;align-items:end;gap:3rem;display:grid}.project-card h3{letter-spacing:-.06em;color:var(--card-ink);font-size:clamp(2.5rem,5vw,5.5rem);font-weight:520;line-height:.95}.project-card h3 a{color:inherit;text-decoration:none}.project-card h3 a:after{content:"";position:absolute;inset:0}.project-card__summary{max-width:44rem;color:var(--card-ink-soft);letter-spacing:-.02em;margin-top:1.5rem;font-size:clamp(1.1rem,1.8vw,1.45rem)}.project-card__media{border:1px solid var(--color-border-emphasis);background:var(--color-surface);margin:0;overflow:hidden}.project-card__media img{width:100%;height:auto;transition:transform .22s var(--ease-out)}.project-card:hover .project-card__media img,.project-card:focus-within .project-card__media img{transform:scale(1.035)}.project-card__media figcaption,.case-study__media figcaption{color:var(--color-text-muted);font-family:var(--font-mono), var(--font-mono-fallback);padding:.75rem;font-size:.62rem}.project-card__facts{gap:1.1rem;display:grid}.project-card__facts div{border-top:1px solid var(--card-rule);grid-template-columns:5.75rem 1fr;gap:1rem;padding-top:.7rem;display:grid}.project-card__facts dt{color:var(--card-ink-quiet);font-family:var(--font-mono), var(--font-mono-fallback);font-size:var(--font-size-eyebrow);letter-spacing:.075em;text-transform:uppercase;font-weight:500}.project-card__facts dd{color:var(--card-ink);font-size:.84rem}.project-card__footer{justify-content:space-between;align-items:end;gap:2rem;display:flex}.project-card__stack{flex-wrap:wrap;align-items:center;gap:.4rem;min-width:0;display:flex}.project-card__footer ul,.case-study__tools ul{flex-wrap:wrap;gap:.4rem;list-style:none;display:flex}.project-card__stack-row--secondary{gap:.4rem}.project-card__footer li{border:1px solid var(--card-badge-rule);min-height:2.8rem;font-family:var(--font-mono), var(--font-mono-fallback);color:var(--card-ink);align-items:center;padding:.75rem .95rem;font-size:.75rem;display:inline-flex}.project-card__footer .technology-badge__label,.project-card__footer .technology-badge--secondary .technology-badge__label{font-size:.75rem}.project-card__footer .technology-badge__icon,.project-card__footer .technology-badge--secondary:not(.technology-badge--vertical) .technology-badge__icon{width:1.4rem;height:1.4rem}.project-card__stack-row--secondary li{border-color:color-mix(in srgb, var(--card-badge-rule) 75%, transparent);color:var(--card-ink-soft)}.case-study__tools li{border:1px solid var(--color-border-emphasis);justify-content:center;align-items:center;width:4.25rem;height:4.25rem;display:flex;overflow:hidden}.case-study__stack-group--secondary li{width:auto;min-width:4.25rem;max-width:7.5rem;height:auto;min-height:4.25rem;padding:.45rem .4rem}.case-study__stack-group--secondary .technology-badge--vertical{white-space:normal}.case-study__stack-group--secondary .technology-badge__label{white-space:normal;text-align:center;overflow-wrap:break-word}.project-card__footer .text-link{z-index:2;color:var(--card-ink);flex:none;position:relative}.project-card__footer .text-link:hover,.project-card .range-line__span{color:var(--card-ink)}.project-card .range-line__span-sep{color:color-mix(in srgb, var(--card-ink) 72%, transparent)}.project-card .range-line__points li{color:var(--card-ink-quiet)}.project-card .range-line__points li.is-active{color:var(--card-ink)}.project-card .range-line__track{background:#fff9}.project-card[data-surface="5"] .range-line__track,.project-card[data-surface="6"] .range-line__track{background:var(--color-border)}.project-card .range-line__dot{background:var(--range-dot-mask,#fff);box-shadow:none;border:2px solid #fff}.project-card .range-line__active,.project-card .range-line__points li.is-active .range-line__dot{border-color:var(--color-brand-primary);background:var(--color-brand-primary);box-shadow:none}.project-card[data-ink=on-brand] .range-line__track{background:#ffffff57}.project-card[data-ink=on-brand] .range-line__dot{background:var(--range-dot-mask,var(--project-surface-1));box-shadow:none;border-color:#ffffffeb}.project-card[data-ink=on-brand] .range-line__active,.project-card[data-ink=on-brand] .range-line__points li.is-active .range-line__dot{box-shadow:none;background:#fff;border-color:#fff}.project-card__footer .text-link span[aria-hidden=true]{transition:transform .18s var(--ease-out);display:inline-block}.project-card:hover .project-card__footer .text-link span[aria-hidden=true],.project-card:focus-within .project-card__footer .text-link span[aria-hidden=true]{transform:translate(2px,-2px)}.technology-badge{text-transform:none;letter-spacing:0;white-space:nowrap;align-items:center;gap:.5rem;display:inline-flex}.technology-badge--vertical{flex-direction:column;align-items:center;gap:.25rem}.technology-badge--text{text-transform:uppercase;letter-spacing:.03em}.technology-badge--vertical.technology-badge--text{white-space:normal;text-align:center;overflow-wrap:break-word;word-break:break-word;font-size:.6rem;line-height:1.3}.technology-badge--secondary .technology-badge__label{opacity:.9;font-size:.55rem}.technology-badge__mark{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.technology-badge--logo-safe .technology-badge__mark{background:color-mix(in srgb, var(--color-surface) 88%, var(--color-text-primary) 12%);border-radius:.2rem;padding:.15rem}.technology-badge__icon{object-fit:contain;flex-shrink:0;width:1.125rem;height:1.125rem;display:block}.technology-badge--vertical .technology-badge__icon{width:2.25rem;height:2.25rem}.technology-badge--secondary:not(.technology-badge--vertical) .technology-badge__icon{width:.95rem;height:.95rem}.technology-badge__label{font-family:var(--font-mono), var(--font-mono-fallback);text-transform:uppercase;letter-spacing:.03em;font-size:.6rem;line-height:1.3}.technology-badge__icon--dark,[data-theme=dark] .technology-badge__icon--light{display:none}[data-theme=dark] .technology-badge__icon--dark{display:block}.project-card[data-surface="1"]{--range-dot-mask:var(--project-surface-1);border-color:var(--project-surface-1);background:var(--project-surface-1)}.project-card[data-surface="1"]:hover,.project-card[data-surface="1"]:focus-within{--range-dot-mask:var(--project-surface-1-hover);border-color:var(--project-surface-1-hover);background:var(--project-surface-1-hover)}.project-card[data-surface="2"]{--range-dot-mask:var(--project-surface-2);background:var(--project-surface-2)}.project-card[data-surface="2"]:hover,.project-card[data-surface="2"]:focus-within{--range-dot-mask:var(--project-surface-2-hover);background:var(--project-surface-2-hover)}.project-card[data-surface="3"]{--range-dot-mask:var(--project-surface-3);background:var(--project-surface-3)}.project-card[data-surface="3"]:hover,.project-card[data-surface="3"]:focus-within{--range-dot-mask:var(--project-surface-3-hover);background:var(--project-surface-3-hover)}.project-card[data-surface="4"]{--range-dot-mask:var(--project-surface-4);background:var(--project-surface-4)}.project-card[data-surface="4"]:hover,.project-card[data-surface="4"]:focus-within{--range-dot-mask:var(--project-surface-4-hover);background:var(--project-surface-4-hover)}.project-card[data-surface="5"]{--range-dot-mask:var(--project-surface-5);background:var(--project-surface-5)}.project-card[data-surface="5"]:hover,.project-card[data-surface="5"]:focus-within{--range-dot-mask:var(--project-surface-5-hover);background:var(--project-surface-5-hover)}.project-card[data-surface="6"]{--range-dot-mask:var(--project-surface-6);background:var(--project-surface-6)}.project-card[data-surface="6"]:hover,.project-card[data-surface="6"]:focus-within{--range-dot-mask:var(--project-surface-6-hover);background:var(--project-surface-6-hover)}.project-card[data-surface-mode=mix]{--range-dot-mask:color-mix(in oklch, var(--project-surface-1), var(--project-surface-6) var(--project-surface-mix,0%));background:color-mix(in oklch, var(--project-surface-1), var(--project-surface-6) var(--project-surface-mix,0%))}.project-card[data-surface-mode=mix]:hover,.project-card[data-surface-mode=mix]:focus-within{--range-dot-mask:color-mix(in oklch, var(--project-surface-1-hover), var(--project-surface-6-hover) var(--project-surface-mix,0%));background:color-mix(in oklch, var(--project-surface-1-hover), var(--project-surface-6-hover) var(--project-surface-mix,0%))}.project-card[data-ink=on-brand]{--card-ink:#fff;--card-ink-soft:#ffffffe0;--card-ink-quiet:#ffffffc2;--card-rule:#ffffff57;color:var(--card-ink)}.project-card[data-ink=on-brand] h3{letter-spacing:-.04em}.project-card[data-ink=on-brand] .project-card__topline p:first-child span{color:var(--color-brand-deep);background:#fff}.project-card[data-ink=on-brand] .technology-badge--logo-safe .technology-badge__mark{background:#ffffffe0}.project-card[data-ink=on-brand] :focus-visible{outline-color:#fff}.project-card[data-ink=default][data-surface="3"],.project-card[data-ink=default][data-surface="4"]{--card-ink-soft:color-mix(in srgb, var(--color-text-primary) 96%, transparent);--card-ink-quiet:color-mix(in srgb, var(--color-text-primary) 90%, transparent);--card-rule:color-mix(in srgb, var(--color-text-primary) 34%, transparent)}[data-theme=dark] .project-card[data-ink=default]{--card-ink:var(--color-text-primary);--card-ink-soft:color-mix(in srgb, var(--color-text-primary) 90%, transparent);--card-ink-quiet:color-mix(in srgb, var(--color-text-primary) 78%, transparent);--card-rule:#f4f1ef4d}[data-theme=dark] .project-card[data-surface="1"],[data-theme=dark] .project-card[data-ink=on-brand]{--card-ink:#fff;--card-ink-soft:#ffffffe0;--card-ink-quiet:#ffffffc2;--card-rule:#ffffff57;color:var(--card-ink)}.experience-entry{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:2fr 5fr 5fr;gap:2rem;padding-block:1.5rem;display:grid}.experience-entry__when,.experience-entry__role>p:first-child{font-family:var(--font-mono), var(--font-mono-fallback);font-variant-numeric:tabular-nums;letter-spacing:.04em;text-transform:uppercase;font-size:.66rem}.experience-entry__when p:last-child{color:var(--color-text-muted);margin-top:.35rem}.experience-entry__role h3{letter-spacing:-.045em;margin-top:1rem;font-size:clamp(2rem,3vw,3.25rem);font-weight:520}.experience-entry__role>p:last-child{max-width:34rem;color:var(--color-text-secondary);margin-top:1rem}.experience-entry ul{align-content:start;list-style:none;display:grid}.experience-entry li{border-top:1px solid var(--color-border);padding:.85rem 0}.experience-entry li:before{color:var(--color-brand-primary);content:"↳";font-family:var(--font-mono), var(--font-mono-fallback);margin-right:.8rem}.approach-grid{border-top:1px solid var(--color-border);border-left:1px solid var(--color-border);grid-template-columns:repeat(3,1fr);display:grid}.approach-grid article{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);min-height:25rem;padding:clamp(1.25rem,2.5vw,2rem)}.approach-grid article:first-child{background:var(--color-surface-maroon)}.approach-grid__number{color:var(--color-brand-primary);font-family:var(--font-mono), var(--font-mono-fallback);font-size:var(--font-size-eyebrow)}.approach-grid h3{letter-spacing:-.04em;max-width:10ch;margin-top:7rem;font-size:clamp(1.6rem,2.5vw,2.5rem);font-weight:520;line-height:1.05}.approach-grid article>p:last-child{max-width:30rem;color:var(--color-text-muted);margin-top:1.25rem}.approach-grid .approach-grid__statement{background:var(--color-brand-subtle);grid-column:1/-1;grid-template-columns:1fr 2fr;gap:2rem;min-height:auto;display:grid}.approach-grid__statement blockquote{letter-spacing:-.045em;max-width:34ch;font-size:clamp(1.7rem,3.4vw,3.5rem);font-weight:500;line-height:1.1}.about-grid{grid-template-columns:7fr 5fr;gap:clamp(3rem,8vw,8rem);display:grid}.about-section{background:var(--color-surface-maroon);box-shadow:0 0 0 100vmax var(--color-surface-maroon);clip-path:inset(0 -100vmax);transition:background-color .24s var(--ease-out)}.about-grid__lead{letter-spacing:-.04em;gap:1.5rem;font-size:clamp(1.5rem,2.8vw,2.7rem);font-weight:480;line-height:1.16;display:grid}.about-grid__lead p:last-child{color:var(--color-brand-primary)}.about-grid dl{align-content:start;display:grid}.about-grid dl div{border-top:1px solid var(--color-border);grid-template-columns:9.5rem 1fr;gap:1rem;padding:1.15rem 0;display:grid}.about-grid dt{color:var(--color-text-muted);font-family:var(--font-mono), var(--font-mono-fallback);font-size:var(--font-size-eyebrow);letter-spacing:.075em;text-transform:uppercase;font-weight:500}.site-footer{min-height:75svh;padding:var(--footer-space) var(--page-edge) 2rem;background:var(--color-brand-deep);color:var(--color-footer-primary);transition:background-color .24s var(--ease-out), color .24s var(--ease-out);grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem;display:grid}.site-footer__lead{grid-column:1/span 5;align-self:start}.site-footer h2{letter-spacing:-.065em;margin-top:1.25rem;font-size:clamp(2.6rem,5.8vw,5.6rem);font-weight:500;line-height:1.12}.site-footer__availability{max-width:28rem;color:var(--color-footer-text);letter-spacing:-.01em;margin-top:1.5rem;font-size:clamp(.95rem,1.2vw,1.1rem);line-height:1.5}.site-footer__form{grid-column:7/-1;align-self:start}.site-footer .kicker{color:var(--color-footer-accent)}.site-footer .button-link--light:hover{border-color:var(--color-brand-fill);background:var(--color-brand-fill);color:var(--color-on-brand)}.site-footer a:hover{color:var(--color-footer-accent)}.contact-form{gap:1.1rem;display:grid}.contact-form__row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.contact-form__field{gap:.45rem;display:grid}.contact-form__field span{font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.05em;text-transform:uppercase;color:var(--color-footer-accent);font-size:.62rem}.contact-form__field input,.contact-form__field textarea{border:1px solid var(--color-footer-border);width:100%;color:var(--color-footer-primary);font:inherit;letter-spacing:-.01em;transition:border-color .16s var(--ease-out), background-color .16s var(--ease-out);background:#ffffff0f;border-radius:0;padding:.85rem .9rem;font-size:.95rem;line-height:1.4}.contact-form__field textarea{resize:vertical;min-height:8.5rem}.contact-form__field input::placeholder,.contact-form__field textarea::placeholder{color:#ffffff6b}.contact-form__field input:hover,.contact-form__field textarea:hover{background:#ffffff17;border-color:#ffffff73}.contact-form__field input:focus-visible,.contact-form__field textarea:focus-visible{outline:2px solid var(--color-footer-accent);outline-offset:2px;border-color:var(--color-footer-accent)}.contact-form__field input:disabled,.contact-form__field textarea:disabled,.contact-form .button-link:disabled{opacity:.65;cursor:wait}.contact-form__honeypot{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.contact-form__actions{flex-wrap:wrap;align-items:center;gap:1.25rem;margin-top:.35rem;display:flex}.contact-form__mailto{color:var(--color-footer-accent)}.contact-form__mailto:hover{color:var(--color-footer-primary)}.contact-form__status{min-height:2.75rem}.contact-form__status p{max-width:34rem;color:var(--color-footer-text);gap:.35rem;font-size:.92rem;line-height:1.45;display:grid}.contact-form__status strong{font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.05em;text-transform:uppercase;color:var(--color-footer-accent);font-size:.62rem;font-weight:500}.contact-form__status--error strong{color:#ffb4a8}.site-footer__base{border-top:1px solid var(--color-footer-border);font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.035em;text-transform:uppercase;grid-column:1/-1;grid-template-columns:1fr 1fr 1fr;grid-template-areas:"address links note";align-self:end;align-items:center;gap:2rem;margin-top:clamp(2rem,6vw,4rem);padding-top:1.4rem;font-size:.65rem;display:grid}.site-footer__address{grid-area:address}.site-footer__base nav{grid-area:links;justify-self:center;gap:1.5rem;display:flex}.site-footer__base nav a{align-items:center;min-height:1.75rem;display:inline-flex}.site-footer__note{text-align:right;grid-area:note;justify-self:end}.site-footer__note a{align-items:center;min-height:1.75rem;display:inline-flex}.acknowledgements{width:min(100%, var(--page-width));padding-inline:var(--page-edge);margin:0 auto}.acknowledgements__hero{min-height:calc(100svh - var(--header-offset));min-height:calc(100dvh - var(--header-offset));border-bottom:1px solid var(--color-border);grid-template-columns:repeat(12,minmax(0,1fr));align-content:center;gap:1rem 1.5rem;padding-block:clamp(1.25rem,4vh,3.5rem);display:grid;position:relative}.acknowledgements__breadcrumb{color:var(--color-text-muted);font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.05em;text-transform:uppercase;grid-column:1/-1;align-items:center;gap:.65rem;margin-bottom:clamp(.35rem,1.5vh,1rem);font-size:.68rem;display:flex}.acknowledgements__breadcrumb a:hover{color:var(--color-brand-primary)}.acknowledgements__eyebrow{grid-column:1/span 3;align-self:start;margin:0;padding-top:.45rem}.acknowledgements__hero-main{grid-column:4/-1;min-width:0}.acknowledgements__hero-main h1{letter-spacing:-.04em;max-width:12ch;font-size:clamp(2.4rem,min(8vw,11vh),8.5rem);font-weight:520;line-height:.98}.acknowledgements__title-line{display:block}.acknowledgements__optical-t{margin-left:-.18em;margin-right:-.01em;display:inline-block}.acknowledgements__introduction{max-width:39rem;color:var(--color-text-secondary);margin-top:clamp(.85rem,3vh,2.25rem);font-size:clamp(1rem,min(1.5vw,2.2vh),1.28rem);line-height:1.55}.acknowledgements__praise{background:var(--color-brand-deep);color:var(--color-on-brand);box-shadow:0 0 0 100vmax var(--color-brand-deep);clip-path:inset(0 -100vmax);grid-template-columns:repeat(12,minmax(0,1fr));gap:1.25rem 2rem;padding-block:clamp(2.25rem,5vw,3.75rem);display:grid;position:relative}.acknowledgements__praise>.kicker{color:var(--color-on-brand-muted);grid-column:1/span 3}.acknowledgements__praise-copy{grid-column:4/span 8}.acknowledgements__praise h2{letter-spacing:-.05em;max-width:18ch;color:var(--color-on-brand);font-size:clamp(1.85rem,3.8vw,3.4rem);font-weight:520;line-height:1.05}.acknowledgements__praise-copy>p{max-width:42rem;color:var(--color-on-brand-muted);margin-top:1.1rem;font-size:clamp(.98rem,1.2vw,1.12rem);line-height:1.6}.acknowledgements__entries{padding-block:clamp(1.5rem,4vw,3rem) clamp(2rem,5vw,3.5rem)}.acknowledgements__entry{border-top:1px solid var(--color-border);grid-template-columns:.65rem minmax(8.5rem,2.2fr) minmax(12rem,2.6fr) minmax(0,6fr);align-items:start;gap:clamp(1rem,2.5vw,2.5rem);padding-block:clamp(1.5rem,3.5vw,2.5rem);display:grid}.acknowledgements__entry:first-of-type{border-top:0}.acknowledgements__marker{background:var(--color-brand-primary);border-radius:50%;width:.45rem;height:.45rem;margin-top:.55rem}.acknowledgements__relationship{color:var(--color-text-muted);font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.06em;text-transform:uppercase;font-size:.68rem;font-weight:500;line-height:1.5}.acknowledgements__name{letter-spacing:-.04em;white-space:nowrap;font-size:clamp(1.35rem,2.2vw,1.85rem);font-weight:520;line-height:1.15}.acknowledgements__copy{max-width:38rem;color:var(--color-text-secondary);font-size:clamp(.98rem,1.15vw,1.05rem);line-height:1.65}.acknowledgements__closing{border-top:1px solid var(--color-border-emphasis);background:var(--color-surface-maroon);grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:1.5rem 2rem;margin-block:clamp(1rem,3vw,2rem) clamp(2rem,5vw,4rem);padding:clamp(2rem,5vw,3.5rem);display:grid}.acknowledgements__closing>p{max-width:34rem;color:var(--color-text-primary);letter-spacing:-.025em;grid-column:1/span 8;font-size:clamp(1.15rem,2vw,1.7rem);line-height:1.4}.acknowledgements__closing .text-link{grid-column:9/-1;justify-self:end}.case-study{width:min(100%, var(--page-width));padding-inline:var(--page-edge);margin:0 auto}.case-study__hero{grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem;min-height:calc(100svh - 4.75rem);padding:3rem 0;display:grid}.case-study__breadcrumb{color:var(--color-text-muted);font-family:var(--font-mono), var(--font-mono-fallback);letter-spacing:.04em;text-transform:uppercase;grid-column:1/-1;gap:.7rem;font-size:.66rem;display:flex}.case-study__title{grid-column:1/span 9;align-self:center}.case-study__title h1{letter-spacing:-.04em;margin-top:1rem;font-size:clamp(4rem,10vw,10rem);font-weight:520;line-height:.92}.case-study__title>p:last-child{max-width:48rem;color:var(--color-text-secondary);letter-spacing:-.025em;margin-top:2rem;font-size:clamp(1.2rem,2vw,1.7rem)}.case-study__meta{border-top:3px solid var(--color-brand-primary);background:var(--color-surface-maroon);grid-column:10/-1;align-self:center;gap:1rem;padding:1.5rem;display:grid}.case-study__meta div{border-top:1px solid var(--color-border);padding-top:.75rem}.case-study__meta dt{color:var(--color-text-muted);font-family:var(--font-mono), var(--font-mono-fallback);font-size:var(--font-size-eyebrow);letter-spacing:.075em;text-transform:uppercase;font-weight:500}.case-study__meta dd{margin-top:.35rem;font-size:.85rem}.case-study__hero .range-line{grid-column:1/-1;align-self:end}.case-study__boundary{border-inline-start:3px solid var(--color-brand-primary);background:var(--color-brand-subtle);grid-template-columns:3fr 9fr;gap:2rem;padding:clamp(1.5rem,4vw,3rem);display:grid}.case-study__boundary>div{grid-template-columns:1fr 1fr;gap:2rem;display:grid}.case-study__boundary strong{color:var(--color-brand-primary);font-weight:600}.case-study__gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding-top:clamp(3rem,7vw,6rem);display:grid}.case-study__media{border:1px solid var(--color-border);background:var(--color-surface);margin:0;overflow:hidden}.case-study__media img{width:100%;height:auto}.case-study__content{padding-block:var(--section-space);grid-template-columns:3fr 9fr;gap:2rem;display:grid}.case-study__content>nav{align-self:start;position:sticky;top:7rem}.case-study__content>nav ol{color:var(--color-text-muted);gap:.6rem;margin-top:1rem;padding-left:1.2rem;display:grid}.case-study__content>nav a{font-size:.8rem}.case-study__content>nav a:hover{color:var(--color-link-hover)}.case-study__sections{display:grid}.case-study__sections>section{border-top:1px solid var(--color-border);grid-template-columns:1fr 3fr;gap:2rem;min-height:22rem;padding:2rem 0;display:grid}.case-study__sections h2{letter-spacing:-.045em;grid-column:1;font-size:clamp(1.7rem,2.7vw,2.8rem);font-weight:520;line-height:1.05}.case-study__sections section>p:last-child{grid-column:2;max-width:45rem;font-size:clamp(1.1rem,1.55vw,1.3rem)}.case-study__section-index{color:var(--color-brand-primary);grid-column:1/-1;margin:0}.case-study__sections .case-study__tools{min-height:18rem}.case-study__tools ul,.case-study__tools .button-link,.case-study__tools .case-study__infrastructure,.case-study__private-note{grid-column:2}.case-study__stack-groups{flex-direction:column;grid-column:2;gap:1.25rem;display:flex}.case-study__stack-group ul{margin-top:.65rem}.case-study__stack-label{font-family:var(--font-mono), var(--font-mono-fallback);font-size:var(--font-size-eyebrow);letter-spacing:.075em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-weight:500}.case-study__stack-group--secondary .case-study__stack-label{opacity:.9}.case-study__stack-group--secondary li{opacity:.92}.case-study__infrastructure{max-width:40rem;color:var(--color-text-muted);margin-top:1.25rem}.case-study__tools .button-link{width:fit-content;margin-top:1.5rem}.case-study__private-note{max-width:34rem;color:var(--color-text-muted);margin-top:1.5rem}.case-study__next{padding-block:3rem var(--section-space);border-top:1px solid var(--color-border-emphasis)}.case-study__next>a{letter-spacing:-.06em;justify-content:space-between;margin-top:1rem;font-size:clamp(2.5rem,6vw,6rem);font-weight:520;line-height:1;text-decoration:none;display:flex}.status-page{min-height:calc(100svh - 4.75rem);padding:var(--page-edge);align-content:center;justify-items:start;display:grid}.status-page h1{letter-spacing:-.065em;max-width:13ch;margin-top:1rem;font-size:clamp(3rem,8vw,7rem);font-weight:520;line-height:.95}.status-page>p:not(.kicker){max-width:35rem;color:var(--color-text-muted);margin-top:1.5rem}.status-page .button-link{margin-top:2rem}@media (max-width:960px){.site-header{grid-template-columns:auto 1fr auto}.hero__copy{grid-column:1/span 7}.portrait-placeholder{grid-column:8/-1}.range-section>.range-section__intro{grid-column:1/span 7}.range-section>.range-section__copy{grid-column:8/-1}.section-heading{grid-template-columns:1fr 7fr 4fr}.project-card__body{grid-template-columns:1fr}.project-card--featured{min-height:30rem}.experience-entry{grid-template-columns:2fr 5fr 5fr}.approach-grid{grid-template-columns:1fr 1fr}.approach-grid article:nth-child(3){grid-column:1/-1}.about-grid{grid-template-columns:1fr}.site-footer__lead,.site-footer__form,.site-footer__base{grid-column:1/-1}.site-footer__base{grid-template-columns:1fr auto;grid-template-areas:"links links""address note";align-items:center;gap:.55rem 1.25rem}.site-footer__address{grid-area:address}.site-footer__base nav{flex-wrap:wrap;grid-area:links;justify-content:space-between;justify-self:stretch;gap:.55rem 1.25rem}.site-footer__note{text-align:right;grid-area:note;justify-self:end}.contact-form__row{grid-template-columns:1fr}.case-study__title{grid-column:1/span 8}.case-study__meta{grid-column:9/-1}}@media (max-width:700px){:root{--page-edge:1.25rem;--section-space:6.5rem;--header-offset:4rem}body:before{background-size:2.5rem 2.5rem}.site-header{grid-template-columns:1fr auto;min-height:4rem}.site-header__nav{display:none}.site-header__menu{display:block}.theme-toggle__label{display:none}.hero{grid-template-columns:repeat(4,minmax(0,1fr));align-content:space-between;min-height:calc(100svh - 4rem);padding-top:clamp(1.25rem,3.5vh,3rem)}.hero:before{display:none}.hero__copy,.portrait-placeholder{grid-column:1/-1}.hero h1{max-width:16ch;font-size:clamp(1.9rem,8.5vw,3.1rem)}.hero__intro{margin-top:clamp(.75rem,2.5vh,1.5rem);font-size:clamp(.9rem,3.6vw,1.05rem)}.hero__actions{flex-direction:column;align-items:flex-start}.portrait-placeholder{justify-self:end;width:64%;margin-top:clamp(1rem,2vh,1.75rem)}.current-section__inner{grid-template-columns:1fr}.current-section__inner p:last-child{grid-column:1}.range-section{grid-template-columns:repeat(4,minmax(0,1fr))}.range-section>.range-section__intro,.range-section>.range-section__copy,.range-section>.range-line{grid-column:1/-1}.range-section>.range-section__copy{margin-top:1rem}.range-line{--range-dot-size:.875rem;--range-track-width:2px;--range-active-width:4px;--range-row-size:2.75rem;position:relative}.range-line__body{position:relative}.range-line__track{z-index:0;top:calc(var(--range-row-size) / 2);bottom:calc(var(--range-row-size) / 2);left:calc((var(--range-dot-size) - var(--range-track-width)) / 2);width:var(--range-track-width);height:auto;margin:0;position:absolute}.range-line__active{top:calc((var(--range-start) / var(--segments)) * 100%);left:calc((var(--range-active-width) - var(--range-track-width)) / -2);width:var(--range-active-width);min-width:0;height:calc(((var(--range-end) - var(--range-start)) / var(--segments)) * 100%);transform-origin:top;min-height:2px;animation-name:range-reveal-mobile}.range-line__span{margin-bottom:1rem}.range-line__points{grid-template-rows:repeat(calc(var(--segments) + 1), var(--range-row-size));min-height:0;margin:0;padding-inline:0;display:grid}.range-line__points li,.range-line__points li:first-child,.range-line__points li:last-child{grid-template-columns:var(--range-dot-size) minmax(0, 1fr);align-items:center;column-gap:.8rem;width:auto;display:grid}.range-line__dot{z-index:1;width:var(--range-dot-size);height:var(--range-dot-size);justify-self:center;margin-top:0}.range-line__label{margin-top:0}.range-line__points li:first-child .range-line__label,.range-line__points li:last-child .range-line__label{text-align:left;align-self:auto}@keyframes range-reveal-mobile{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.section-heading{grid-template-columns:2rem 1fr;gap:1rem}.section-heading h2{grid-column:2}.section-heading__note{grid-column:2;justify-self:start}.project-card{gap:2.5rem}.project-card--featured{min-height:0}.project-card__topline{align-items:flex-start}.project-card__topline p:last-child{text-align:right;max-width:7rem}.project-card h3{font-size:clamp(2.7rem,14vw,4.2rem)}.project-card__facts div{grid-template-columns:4.5rem 1fr}.project-card__footer{flex-direction:column;align-items:flex-start}.experience-entry,.approach-grid{grid-template-columns:1fr}.approach-grid article:nth-child(3){grid-column:auto}.approach-grid article{min-height:20rem}.approach-grid h3{margin-top:4rem}.approach-grid .approach-grid__statement{grid-template-columns:1fr}.about-grid__lead{font-size:1.55rem}.about-grid dl div{grid-template-columns:8.5rem 1fr}.site-footer{min-height:auto;padding-bottom:max(1rem, env(safe-area-inset-bottom,0px));grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}.site-footer__lead,.site-footer__form,.site-footer__base{grid-column:1/-1}.site-footer__form{margin-top:1.25rem}.contact-form__row{grid-template-columns:1fr}.site-footer__base{grid-template-columns:1fr auto;grid-template-areas:"links links""address note";align-self:stretch;gap:.45rem 1rem;margin-top:1.5rem;padding-top:1rem}.site-footer__address{grid-area:address}.site-footer__base nav{flex-flow:wrap;grid-area:links;justify-content:space-between;justify-self:stretch;gap:.45rem 1rem;display:flex}.site-footer__note{text-align:right;grid-area:note;justify-self:end}.acknowledgements__hero{min-height:calc(100svh - var(--header-offset));min-height:calc(100dvh - var(--header-offset));grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem 1rem;padding-block:clamp(1.25rem,3.5vh,2.5rem)}.acknowledgements__breadcrumb,.acknowledgements__eyebrow,.acknowledgements__hero-main{grid-column:1/-1}.acknowledgements__breadcrumb{margin-bottom:clamp(.35rem,1.2vh,.75rem)}.acknowledgements__eyebrow{padding-top:0}.acknowledgements__hero-main h1{margin-top:.15rem;font-size:clamp(2.25rem,min(13vw,8.5vh),4.4rem)}.acknowledgements__introduction{margin-top:clamp(.7rem,2vh,1.1rem);font-size:clamp(.95rem,3.4vw,1.08rem)}.acknowledgements__praise{grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;padding-block:clamp(2rem,7vw,2.75rem)}.acknowledgements__praise>.kicker,.acknowledgements__praise-copy{grid-column:1/-1}.acknowledgements__entry{grid-template-columns:.65rem 1fr;gap:.35rem .9rem;padding-block:1.75rem}.acknowledgements__relationship,.acknowledgements__name,.acknowledgements__copy{grid-column:2}.acknowledgements__marker{grid-row:1/span 3;margin-top:.45rem}.acknowledgements__name{white-space:normal;font-size:clamp(1.25rem,5.5vw,1.55rem)}.acknowledgements__closing{grid-template-columns:1fr;gap:1.5rem;margin-block:1.5rem 2.5rem;padding:1.75rem}.acknowledgements__closing>p,.acknowledgements__closing .text-link{grid-column:1}.acknowledgements__closing .text-link{justify-self:start}.case-study__hero{grid-template-columns:repeat(4,minmax(0,1fr));min-height:auto;padding-block:2rem 4rem}.case-study__breadcrumb,.case-study__title,.case-study__meta,.case-study__hero .range-line{grid-column:1/-1}.case-study__title{margin-top:3rem}.case-study__title h1{font-size:clamp(4rem,19vw,6rem)}.case-study__meta{margin-block:2rem}.case-study__boundary,.case-study__boundary>div,.case-study__gallery,.case-study__content{grid-template-columns:1fr}.case-study__content>nav{border-bottom:1px solid var(--color-border);padding-bottom:2rem;position:static}.case-study__sections>section{grid-template-columns:1fr;min-height:0;padding-block:2.5rem 4rem}.case-study__sections h2,.case-study__sections section>p:last-child,.case-study__tools ul,.case-study__tools .button-link,.case-study__tools .case-study__infrastructure,.case-study__stack-groups,.case-study__private-note{grid-column:1}.case-study__next>a{font-size:clamp(2.6rem,13vw,4rem)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.button-link:hover{transform:none}.typing-headline__character{opacity:1;animation:none!important}.reveal,.reveal.is-visible{opacity:1;transition:none;transform:none}.range-line__active,.range-line.is-in-view .range-line__active{transform:scaleX(1);animation:none!important}.project-card:hover,.project-card:focus-within,.project-card--featured:hover,.project-card--featured:focus-within{box-shadow:none;transform:none}.project-card:hover .project-card__media img,.project-card:focus-within .project-card__media img,.project-card:hover .project-card__footer .text-link span[aria-hidden=true],.project-card:focus-within .project-card__footer .text-link span[aria-hidden=true]{transform:none}}@media (forced-colors:active){.range-line__active,.range-line__dot{forced-color-adjust:none}}
