@font-face{font-family:Geist;src:url(/fonts/geist/Geist-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/geist/Geist-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/geist/Geist-Bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/geist/GeistMono-Regular.woff2)format("woff2");font-weight:400;font-display:swap}:root{--font-sans:"Geist", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", monospace;--black:#0a0a0a;--white:#fff;--ink:#111;--ink-secondary:#8a8a8a;--ink-muted:#757575;--paper:#f5f5f5;--paper-secondary:#6e6e6e;--paper-muted:#9c9c9c;--rule-on-white:#11111124;--rule-on-black:#ffffff2e;--text-on-image:#fff;--text-on-image-muted:#ffffffd6;--text-hero:clamp(1.375rem, 7vw, 8.25rem);--text-h1:clamp(2.375rem, 5.4vw, 5.25rem);--text-h2:clamp(1.875rem, 3.8vw, 3.5rem);--text-row-title:clamp(1.3125rem, 2.2vw, 2rem);--text-stat:clamp(2.75rem, 5.5vw, 5rem);--text-body-lg:clamp(1.125rem, 1.5vw, 1.375rem);--text-body:clamp(1rem, 1.15vw, 1.125rem);--text-eyebrow:clamp(.6875rem, .8vw, .75rem);--text-footer:.8125rem;--margin-x:clamp(20px, 4vw, 56px);--section-pad:clamp(96px, 14vh, 200px);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-inout:cubic-bezier(.65, 0, .35, 1);--ease-hover:cubic-bezier(.25, .1, .25, 1);--t-hover:.25s;--t-fast:.45s;--t-base:.7s;--t-slow:1s;--t-img:1.4s;--stagger-row:90ms;--stagger-line:.12s;--stagger-word:30ms;--rise:24px}*,:before,:after{box-sizing:border-box;border-radius:0;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-body);background:var(--white);color:var(--ink);line-height:1.55}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}h1,h2,h3{text-wrap:balance;font-weight:500}[data-theme=light]{--bg:var(--white);--fg:var(--ink);--fg-secondary:var(--ink-secondary);--fg-muted:var(--ink-muted);--rule:var(--rule-on-white);background-color:var(--bg);color:var(--fg)}[data-theme=dark]{--bg:var(--black);--fg:var(--paper);--fg-secondary:var(--paper-secondary);--fg-muted:var(--paper-muted);--rule:var(--rule-on-black);background-color:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}[data-theme=image]{--bg:var(--black);--fg:var(--text-on-image);--fg-secondary:var(--text-on-image-muted);--fg-muted:var(--text-on-image-muted);--rule:var(--rule-on-black);color:var(--fg);-webkit-font-smoothing:antialiased}[data-theme=light] ::selection{background:var(--ink);color:var(--white)}[data-theme=dark] ::selection{background:var(--paper);color:var(--black)}[data-theme=image] ::selection{background:var(--paper);color:var(--black)}.container{max-width:1440px;padding-inline:var(--margin-x);margin-inline:auto}.section{padding-block:var(--section-pad);scroll-margin-top:76px}.eyebrow{font-family:var(--font-mono);font-size:var(--text-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-muted);font-weight:400;line-height:1}.section-head .headline-2t{margin-top:clamp(20px,2.5vw,32px)}.lede{font-size:var(--text-body-lg);letter-spacing:-.005em;color:var(--fg-muted);max-width:56ch;margin-top:clamp(20px,2.5vw,32px);line-height:1.5}.headline-2t{font-size:var(--text-h1);letter-spacing:-.03em;max-width:20ch;font-weight:500;line-height:1.04}.headline-2t span{display:inline}.headline-2t .t1{color:var(--fg)}.headline-2t .t2,.headline-2t.is-scrub .t2{color:var(--fg-secondary)}.tt-word{color:var(--fg-secondary);transition:color .35s var(--ease-inout)}.tt-word.on{color:var(--fg)}.nav{--nav-rule:var(--rule-on-black);z-index:10;height:96px;color:var(--text-on-image);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--nav-rule);transition:background-color var(--t-fast) var(--ease-inout), color var(--t-fast) var(--ease-inout), height var(--t-fast) var(--ease-inout), border-color var(--t-fast) var(--ease-inout), opacity var(--t-base) var(--ease-out) .5s;background-color:#0a0a0a2e;grid-template-columns:repeat(6,1fr);align-items:stretch;display:grid;position:fixed;top:0;left:0;right:0}.nav.nav-solid{--nav-rule:var(--rule-on-white);background-color:color-mix(in srgb, var(--white) 88%, transparent);height:60px;color:var(--ink)}.nav.nav-solid.nav-dark{--nav-rule:var(--rule-on-black);background-color:color-mix(in srgb, var(--black) 86%, transparent);color:var(--paper)}html:not(.js) .nav{position:absolute}.nav-wordmark{font-family:var(--font-mono);font-size:var(--text-footer);letter-spacing:.22em;text-transform:uppercase;justify-content:center;align-items:center;display:flex}.nav-links{display:contents}.nav-links a,.nav-links button{border:none;border-left:1px solid var(--nav-rule);cursor:pointer;min-width:0;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:var(--text-on-image-muted);transition:color .2s var(--ease-hover), background-color .2s var(--ease-hover);background:0 0;justify-content:center;align-items:center;font-size:.75rem;display:flex}.nav.nav-solid .nav-links a,.nav.nav-solid .nav-links button{color:var(--ink-muted)}.nav.nav-solid.nav-dark .nav-links a,.nav.nav-solid.nav-dark .nav-links button{color:var(--paper-muted)}.nav-links a:hover,.nav-links button:hover{color:inherit;background-color:color-mix(in srgb, currentColor 6%, transparent)}.nav-burger{border:none;border-left:1px solid var(--nav-rule);cursor:pointer;padding-inline:var(--margin-x);color:inherit;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:7px;display:none}.nav-burger span{background:currentColor;width:22px;height:1.5px;display:block}.hero{background-color:#6a7a58;flex-direction:column;min-height:100svh;display:flex;position:relative;overflow:hidden}.hero-media{position:absolute;inset:0}.hero-img{object-fit:cover;width:100%;height:100%}.hero-veil{background:linear-gradient(#0a0a0a52 0%,#0a0a0a0f 30%,#0a0a0a73 100%);position:absolute;inset:0}.hero-content{z-index:2;padding:0 var(--margin-x) clamp(96px, 14vh, 180px);margin-top:auto;width:100%;max-width:1440px;margin-inline:auto;position:relative}.hero-eyebrow{color:var(--text-on-image-muted);margin-bottom:clamp(20px,3vh,32px)}.hero-headline{font-size:var(--text-hero);letter-spacing:-.035em;color:var(--text-on-image);font-weight:500;line-height:.98}.hero-line-mask{margin-bottom:-.06em;padding-bottom:.06em;display:block;overflow:hidden}.hero-line{display:block}.hero-subline{font-size:var(--text-body-lg);color:var(--text-on-image-muted);max-width:44ch;margin-top:clamp(20px,2.5vw,32px);line-height:1.5}.hero-rule{left:var(--margin-x);right:var(--margin-x);background:var(--rule-on-black);transform-origin:0;height:1px;position:absolute;bottom:clamp(28px,4vh,44px)}html.js .hero-img{transition:opacity var(--t-img) var(--ease-out), transform var(--t-img) var(--ease-out)}html.js .hero-line-1{transition:opacity var(--t-slow) var(--ease-out) .15s, transform var(--t-slow) var(--ease-out) .15s}html.js .hero-line-2{transition:opacity var(--t-slow) var(--ease-out) .27s, transform var(--t-slow) var(--ease-out) .27s}html.js .hero-subline{transition:opacity var(--t-base) var(--ease-out) .45s, transform var(--t-base) var(--ease-out) .45s}html.js .hero-rule{transition:transform var(--t-slow) var(--ease-out) .65s}html.js .hero-eyebrow{transition:opacity var(--t-base) var(--ease-out) .8s}html.is-loading .hero-img{opacity:0;transform:scale(1.04)}html.is-loading .hero-line,html.is-loading .hero-subline{opacity:0;transform:translateY(var(--rise))}html.is-loading .hero-rule{transform:scaleX(0)}html.is-loading .hero-eyebrow,html.is-loading .nav{opacity:0}:root{--radius-media:14px}.section-head--split{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;column-gap:clamp(40px,6vw,120px);display:grid}.head-media{min-width:0}.head-media img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-media);width:100%;display:block}.split--flip{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.split--flip .head-media{order:-1}.media-mosaic{grid-template-rows:1fr 1fr;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(12px,1.5vw,20px);margin-top:clamp(48px,7vh,88px);display:grid}.media-mosaic .tile{border-radius:var(--radius-media);min-width:0;min-height:0;position:relative;overflow:hidden}.media-mosaic .tile-main{grid-row:span 2}.media-mosaic .tile img{object-fit:cover;width:100%;height:100%;transition:transform .9s var(--ease-out)}.media-mosaic .tile:hover img{transform:scale(1.03)}.media-mosaic{height:clamp(380px,44vw,680px)}.tile-label{font-family:var(--font-mono);font-size:var(--text-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:#ffffffe6;position:absolute;bottom:clamp(14px,1.6vw,24px);left:clamp(16px,1.8vw,28px)}.media-banner{margin-top:clamp(72px,10vh,128px)}.media-banner img{aspect-ratio:21/9;object-fit:cover;border-radius:var(--radius-media);width:100%;display:block}@media (width<=999px){.section-head--split,.split--flip{display:block}.head-media{margin-top:clamp(32px,6vw,48px)}.media-mosaic{display:none}.media-banner img{aspect-ratio:16/10}}.row-list{margin-top:clamp(56px,8vh,112px);position:relative}.row-list:after{content:"";background:var(--rule);transform-origin:0;height:1px;display:block}.row{grid-template-columns:clamp(56px,6vw,96px) minmax(240px,32%) 1fr;align-items:baseline;column-gap:clamp(24px,4vw,64px);padding-block:clamp(24px,3vw,40px);display:grid;position:relative}.row:before{content:"";background:var(--rule);transform-origin:0;height:1px;position:absolute;top:0;left:0;right:0}.row-num{font-family:var(--font-mono);font-size:var(--text-footer);letter-spacing:.02em;color:var(--fg-secondary)}.row-title{font-size:var(--text-row-title);letter-spacing:-.015em;color:var(--fg);font-weight:500;line-height:1.2}.row-desc{font-size:var(--text-body);color:var(--fg-muted);max-width:72ch;line-height:1.55}.row--2col{grid-template-columns:minmax(240px,32%) 1fr}.row--display{grid-template-columns:1fr auto;align-items:center;padding-block:clamp(28px,3.5vw,48px)}.row--display .row-title{font-size:var(--text-h2);letter-spacing:-.02em;line-height:1.1}.row-flag{aspect-ratio:4/3;border:1px solid var(--rule);border-radius:6px;width:auto;height:clamp(30px,2.8vw,40px)}html.js [data-reveal=rows] .row:before{transition:transform var(--t-slow) var(--ease-out) calc(var(--i) * var(--stagger-row))}html.js [data-reveal=rows] .row>*{transition:opacity var(--t-base) var(--ease-out) calc(var(--i) * var(--stagger-row) + .12s), transform var(--t-base) var(--ease-out) calc(var(--i) * var(--stagger-row) + .12s)}html.js [data-reveal=rows]:after{transition:transform var(--t-slow) var(--ease-out) calc(var(--n) * var(--stagger-row))}html.js [data-reveal=rows]:not(.in) .row:before,html.js [data-reveal=rows]:not(.in):after{transform:scaleX(0)}html.js [data-reveal=rows]:not(.in) .row>*{opacity:0;transform:translateY(16px)}html.js [data-reveal=head] .eyebrow{transition:opacity var(--t-fast) var(--ease-out)}html.js [data-reveal=head] .headline-2t{transition:opacity var(--t-slow) var(--ease-out) .1s, transform var(--t-slow) var(--ease-out) .1s}html.js [data-reveal=head] .lede{transition:opacity var(--t-base) var(--ease-out) .25s, transform var(--t-base) var(--ease-out) .25s}html.js [data-reveal=head] .head-media{transition:opacity var(--t-slow) var(--ease-out) .3s, transform var(--t-slow) var(--ease-out) .3s}html.js [data-reveal=head]:not(.in) .eyebrow{opacity:0}html.js [data-reveal=head]:not(.in) .headline-2t,html.js [data-reveal=head]:not(.in) .lede,html.js [data-reveal=head]:not(.in) .head-media{opacity:0;transform:translateY(var(--rise))}html.js [data-reveal=""]{transition:opacity var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out)}html.js [data-reveal=""]:not(.in){opacity:0;transform:translateY(var(--rise))}.stat-band{grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px);margin-top:clamp(56px,8vh,112px);display:grid}.stat{padding-top:clamp(20px,2.5vw,32px);position:relative}.stat:before{content:"";background:var(--rule);transform-origin:0;height:1px;position:absolute;top:0;left:0;right:0}.stat-value{font-size:var(--text-stat);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--fg);font-weight:500;line-height:1.1}.stat-label{font-size:var(--text-body);color:var(--fg-muted);max-width:28ch;margin-top:12px}html.js [data-reveal=stats] .stat:before{transition:transform var(--t-slow) var(--ease-out) calc(var(--i) * var(--stagger-line))}html.js [data-reveal=stats] .stat-value{transition:opacity var(--t-base) var(--ease-out) calc(var(--i) * var(--stagger-line))}html.js [data-reveal=stats] .stat-label{transition:opacity var(--t-base) var(--ease-out) calc(var(--i) * var(--stagger-line) + .2s), transform var(--t-base) var(--ease-out) calc(var(--i) * var(--stagger-line) + .2s)}html.js [data-reveal=stats]:not(.in) .stat:before{transform:scaleX(0)}html.js [data-reveal=stats]:not(.in) .stat-value{opacity:0}html.js [data-reveal=stats]:not(.in) .stat-label{opacity:0;transform:translateY(16px)}.sub-label{margin-top:clamp(72px,10vh,128px);display:block}.sub-label+.row-list{margin-top:clamp(24px,4vh,40px)}#contact{padding-block:clamp(48px,8vh,112px)}.cta-email-wrap{margin-top:clamp(12px,1.5vw,20px)}.cta-email{font-family:var(--font-mono);letter-spacing:.02em;color:var(--fg);transition:background-size var(--t-hover) var(--ease-hover);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;padding-bottom:3px;font-size:.9375rem;display:inline-block}.cta-email:hover{background-size:100% 1px}.portfolio-dialog{border:1px solid var(--rule-on-white);border-radius:var(--radius-media);background:var(--white);width:min(92vw,520px);color:var(--ink);margin:auto;padding:clamp(32px,4vw,56px)}.portfolio-dialog::backdrop{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff59}.dialog-title{font-size:var(--text-h2);letter-spacing:-.02em;color:var(--ink);margin-top:clamp(16px,2vw,24px);font-weight:500;line-height:1.1}.dialog-body{font-size:var(--text-body);color:var(--ink-muted);max-width:40ch;margin-top:clamp(12px,1.5vw,20px);line-height:1.55}.dialog-body a{color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.dialog-close{border:1px solid var(--rule-on-white);cursor:pointer;width:40px;height:40px;color:var(--ink);transition:background-color var(--t-hover) var(--ease-hover), color var(--t-hover) var(--ease-hover);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:1.375rem;line-height:1;display:flex;position:absolute;top:clamp(14px,1.8vw,22px);right:clamp(14px,1.8vw,22px)}.dialog-close:hover{background:var(--ink);color:var(--white)}.menu-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;padding:0 var(--margin-x);background:var(--white);color:var(--ink);border:none;margin:0}.menu-dialog::backdrop{background:0 0}.menu-top{justify-content:space-between;align-items:center;height:72px;display:flex}.menu-top .nav-wordmark{color:var(--ink);padding-inline:0}.menu-rows{border-bottom:1px solid var(--rule-on-white);margin-top:clamp(24px,5vh,48px);display:block}.menu-row{border:none;border-top:1px solid var(--rule-on-white);cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;align-items:baseline;gap:16px;padding-block:clamp(20px,3.5vh,32px);display:flex}.menu-row .row-num{color:var(--ink-secondary)}.menu-title{font-size:var(--text-h2);letter-spacing:-.02em;font-weight:500;line-height:1.1}@media (width<=899px){.nav{justify-content:space-between;height:72px;display:flex}.nav.nav-solid{height:56px}.nav-wordmark{padding-inline:var(--margin-x);justify-content:flex-start}.nav-links{display:none}.nav-burger{display:flex}.row,.row--2col{padding-block:20px;display:block}.row--display{justify-content:space-between;align-items:center;padding-block:20px;display:flex}.row-num{margin-right:12px;display:inline-block}.row-title{display:inline-block}.row-desc{margin-top:8px}.stat-band{grid-template-columns:1fr}.footer-row{flex-direction:column;align-items:flex-start;gap:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}html.is-loading *,html.js [data-reveal]:not(.in),html.js [data-reveal]:not(.in) *,html.js [data-reveal]:not(.in):after,html.js [data-reveal]:not(.in) .row:before{opacity:1!important;transform:none!important}*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}
