@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-latin-400-normal.2qdljeg3s-lsl.woff2)format("woff2"),url(../media/inter-latin-400-normal.102grxki9ek3x.woff)format("woff")}
@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(../media/inter-latin-500-normal.1d14jwmkqqa0f.woff2)format("woff2"),url(../media/inter-latin-500-normal.3mx_ru0c2nzc3.woff)format("woff")}
@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-latin-600-normal.2dov6rjg62vru.woff2)format("woff2"),url(../media/inter-latin-600-normal.2mum3nstrlzrd.woff)format("woff")}
@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(../media/inter-latin-700-normal.4421omqeymgmp.woff2)format("woff2"),url(../media/inter-latin-700-normal.2u2w-uf8g45lc.woff)format("woff")}
@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(../media/inter-latin-800-normal.1l5zt2v7macfm.woff2)format("woff2"),url(../media/inter-latin-800-normal.3p_gdtpozftvv.woff)format("woff")}
*{box-sizing:border-box}:root{--ink:#101010;--muted:#727272;--paper:#f3f1ec;--line:#10101024;--white:#fff;--card-img-bg:#dedbd4;--card-shadow:#1010101a;--navbar-scrolled-bg:#f3f1ecd6;--nav-hover-scrolled:#1010100f;--nav-border-scrolled:#10101026;--resume-bg:#f3f1ec;--resume-ink:#101010;--resume-muted:#727272;--resume-kicker:#8a8a8a;--kicker:#8a8a8a}[data-theme=dark]{--ink:#f2f0ea;--muted:#9c9a93;--paper:#16151a;--line:#f2f0ea24;--card-img-bg:#29282d;--card-shadow:#00000073;--navbar-scrolled-bg:#16151adb;--nav-hover-scrolled:#f2f0ea14;--nav-border-scrolled:#f2f0ea33;--resume-bg:#16151a;--resume-ink:#f2f0ea;--resume-muted:#9c9a93;--resume-kicker:#888;--kicker:#8a8a8a}::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}html.theme-switching body,html.theme-switching .navbar,html.theme-switching .navbar *,html.theme-switching .navbar :before,html.theme-switching .navbar :after{transition:none!important}@media (prefers-reduced-motion:reduce){::view-transition-group(root){animation:none!important}::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}}body{animation:.52s cubic-bezier(.22,1,.36,1) both site-page-fade-in}body.page-leaving{pointer-events:none;animation:.42s cubic-bezier(.55,0,.68,.53) both site-page-fade-out}@keyframes site-page-fade-in{0%{opacity:0}to{opacity:1}}@keyframes site-page-fade-out{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){body,body.page-leaving{animation:none!important}}body{background:var(--paper);color:var(--ink);margin:0;font-family:Inter,Arial,sans-serif;transition:background-color .4s,color .4s;overflow-x:hidden}a{color:inherit}a:focus-visible,button:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid}.navbar{z-index:50;color:#fff;justify-content:space-between;align-items:center;padding:30px clamp(24px,5vw,76px);transition:background .35s,color .35s,padding .35s,-webkit-backdrop-filter .35s,backdrop-filter .35s;display:flex;position:fixed;top:0;left:0;right:0}.navbar.scrolled{background:var(--navbar-scrolled-bg);color:var(--ink);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding-top:20px;padding-bottom:20px}.logo{letter-spacing:-.07em;font-size:25px;font-weight:800;line-height:1;text-decoration:none}.nav-right{align-items:center;gap:18px;display:flex}.nav-links{gap:8px;display:flex}.nav-links a{border:1px solid #0000;border-radius:999px;padding:11px 17px;font-size:13px;font-weight:600;text-decoration:none;transition:all .25s}.nav-links a:hover{background:#ffffff21;border-color:#ffffff47;transform:translateY(-1px)}.navbar.scrolled .nav-links a:hover{background:var(--nav-hover-scrolled);border-color:var(--nav-border-scrolled)}.theme-toggle{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:9px;padding:6px 4px;font-size:12px;font-weight:600;display:flex}.theme-toggle-track{opacity:.85;border:1px solid;border-radius:999px;flex:none;width:36px;height:20px;transition:opacity .25s;position:relative}.theme-toggle-thumb{background:currentColor;border-radius:50%;width:14px;height:14px;transition:transform .3s cubic-bezier(.22,1,.36,1);position:absolute;top:2px;left:2px}[data-theme=dark] .theme-toggle-thumb{transform:translate(16px)}.theme-toggle:hover .theme-toggle-track{opacity:1}.theme-toggle-label{text-align:left;min-width:26px}.hero{isolation:isolate;color:#fff;background:#080808;min-height:100svh;position:relative;overflow:hidden}.hero-video{object-fit:cover;z-index:-3;width:100%;height:100%;position:absolute;inset:0}.video-overlay{z-index:-2;background:linear-gradient(#00000075,#0000000f 42%,#0000009e);position:absolute;inset:0}.hero-content{max-width:880px;position:absolute;bottom:clamp(110px,15vh,170px);left:clamp(24px,8vw,120px)}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.2em;margin:0 0 16px;font-size:10px;font-weight:700}.eyebrow{color:#ffffffb8}h1{letter-spacing:-.03em;overflow-wrap:anywhere;margin:0;font-size:clamp(40px,4vw,118px);font-weight:800;line-height:.98}.intro{color:#ffffffd6;max-width:470px;margin:30px 0 0;font-size:clamp(16px,1.5vw,21px);line-height:1.5}.scroll-indicator{color:#ffffff9e;text-transform:uppercase;letter-spacing:.18em;align-items:center;gap:12px;font-size:10px;text-decoration:none;display:flex;position:absolute;bottom:30px;left:clamp(24px,5vw,76px)}.scroll-indicator span{background:currentColor;width:34px;height:1px}.portfolio{background:var(--paper);padding:clamp(92px,11vw,150px) 0 95px}.portfolio-header{grid-template-columns:1fr minmax(260px,410px);align-items:end;gap:60px;max-width:1320px;margin:0 auto 54px;padding:0 32px;display:grid}.section-kicker{color:var(--kicker)}.portfolio h2,.resume h2,.contact h2{letter-spacing:-.075em;margin:0;font-size:clamp(54px,8vw,112px);font-weight:700;line-height:.86}.portfolio-copy{color:var(--muted);margin:0 0 3px;font-size:16px;line-height:1.65}.filter-bar{flex-wrap:wrap;gap:10px;max-width:1376px;margin:0 auto 40px;padding:0 32px;display:flex}.filter-btn{font:inherit;letter-spacing:.02em;color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;padding:10px 18px;font-size:12px;font-weight:600;transition:color .3s,background-color .3s,border-color .3s}.filter-btn:hover{color:var(--ink);border-color:#1010104d}.filter-btn.is-active{color:var(--paper);background:var(--ink);border-color:var(--ink)}.project-grid{grid-template-columns:repeat(3,1fr);gap:40px 28px;max-width:1376px;margin:0 auto;padding:0 32px;display:grid}.project-card{opacity:0;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(28px)}.project-card.is-visible{opacity:1;transform:translateY(0)}.project-card.is-hidden{display:none}.project-card.is-filtering-out{opacity:0;pointer-events:none;transition:opacity .38s cubic-bezier(.4,0,1,1),transform .38s cubic-bezier(.4,0,1,1);transform:translateY(-10px)scale(.94)}.project-card.is-filtering-in{opacity:0;transition:none;transform:translateY(18px)scale(.96)}.project-link{color:inherit;text-decoration:none;display:block}.project-image{aspect-ratio:4/3;background:var(--card-img-bg);transition:background-color .4s;overflow:hidden}.project-image img{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.7,.2,1);display:block}.project-meta{padding:16px 1px 0}.project-meta h3{letter-spacing:-.01em;color:var(--ink);margin:0 0 6px;font-size:16px;font-weight:700}.project-meta p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.resume{background:var(--resume-bg);min-height:72vh;color:var(--resume-ink);align-content:center;padding:120px clamp(24px,8vw,120px);transition:background-color .4s,color .4s;display:grid}.resume .section-kicker{color:var(--resume-kicker)}.resume-copy{color:var(--resume-muted);margin:0;font-size:16px;line-height:1.75}.resume-inner{width:100%;max-width:1200px;margin:0 auto}.resume-header{grid-template-columns:1fr 1.15fr;align-items:start;gap:64px;margin-bottom:88px;display:grid}.resume-group+.resume-group{margin-top:64px}.resume-group h3{letter-spacing:.1em;text-transform:uppercase;margin:0 0 24px;font-size:14px;font-weight:600}.resume-entries{margin:0;padding:0;list-style:none}.resume-entry{border-top:1px solid var(--line);grid-template-columns:minmax(120px,.3fr) minmax(0,1fr);gap:32px;padding:28px 0 32px;display:grid}.resume-dates{color:var(--resume-muted);font-variant-numeric:tabular-nums;margin:3px 0 0;font-size:14px;line-height:1.6}.resume-entry h4{letter-spacing:-.025em;margin:0 0 10px;font-size:clamp(18px,2vw,24px);font-weight:600;line-height:1.3}.resume-organization{margin:0;font-size:15px;font-weight:500;line-height:1.6}.resume-location{color:var(--resume-muted);margin:3px 0 0;font-size:13px;line-height:1.6}.resume-description{max-width:70ch;color:var(--resume-muted);margin:16px 0 0;font-size:15px;line-height:1.75}.contact{border-top:1px solid var(--line);background:var(--paper);color:var(--ink);padding:88px clamp(24px,8vw,120px) 104px}.contact-inner{grid-template-columns:1fr 1.15fr;align-items:center;gap:64px;max-width:1200px;margin:0 auto;display:grid}.contact-content{display:flex}.contact-link{border:1px solid var(--line);min-height:52px;color:var(--ink);border-radius:8px;align-items:center;gap:14px;padding:12px 18px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.contact-link:hover{border-color:var(--ink)}.contact-link:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.contact-icon{flex:none;width:24px;height:24px}.contact-arrow{margin-left:8px;font-size:22px;line-height:1}@media (max-width:800px){.nav-right{gap:10px}.theme-toggle-label{display:none}}html{scroll-behavior:auto}.navbar{transition:background-color .6s cubic-bezier(.22,1,.36,1),color .6s cubic-bezier(.22,1,.36,1),padding .6s cubic-bezier(.22,1,.36,1),-webkit-backdrop-filter .6s cubic-bezier(.22,1,.36,1),backdrop-filter .6s cubic-bezier(.22,1,.36,1)}.nav-links a{transition:color .45s cubic-bezier(.22,1,.36,1),background-color .45s cubic-bezier(.22,1,.36,1),border-color .45s cubic-bezier(.22,1,.36,1),transform .45s cubic-bezier(.22,1,.36,1);position:relative}.nav-links a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .5s cubic-bezier(.22,1,.36,1);position:absolute;bottom:6px;left:17px;right:17px;transform:scaleX(0)}.nav-links a:hover:after,.nav-links a.active:after{transform-origin:0;transform:scaleX(1)}.scroll-indicator{transition:opacity .5s,transform .7s cubic-bezier(.22,1,.36,1)}.scroll-indicator:hover{color:#fff;transform:translate(5px)}.scroll-indicator span{transform-origin:0;transition:transform .7s cubic-bezier(.22,1,.36,1)}.scroll-indicator:hover span{transform:scaleX(1.35)}.portfolio-header,.filter-bar,.resume{opacity:0;transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1);transform:translateY(24px)}.portfolio-header.is-visible,.filter-bar.is-visible,.resume.is-visible{opacity:1;transform:translateY(0)}.filter-bar.is-visible{transition-delay:80ms}.project-card{transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .65s}.project-image{transition:box-shadow .65s cubic-bezier(.22,1,.36,1)}.project-card:hover{transform:translateY(-4px)}.project-card:hover .project-image{box-shadow:0 18px 42px var(--card-shadow)}.project-image img{transition:transform 1s cubic-bezier(.16,1,.3,1)}.project-card:hover .project-image img{transform:scale(1.045)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.01ms!important}.portfolio-header,.filter-bar,.resume{opacity:1;transition:none;transform:none}.project-card,.project-image img,.nav-links a,.scroll-indicator{transition:none!important}.project-card{opacity:1;transform:none}}@media (max-width:1100px){.navbar{padding-left:32px;padding-right:32px}.hero-content{max-width:620px;left:6vw}h1{font-size:clamp(52px,7vw,92px)}.portfolio-header{gap:36px;padding-left:28px;padding-right:28px}.filter-bar,.project-grid{padding-left:28px;padding-right:28px}}@media (max-width:800px){.navbar{padding:20px 22px}.navbar.scrolled{padding-top:16px;padding-bottom:16px}.logo{font-size:23px}.nav-links{gap:2px}.nav-links a{padding:9px 10px;font-size:10px}.nav-links a:after{bottom:5px;left:10px;right:10px}.hero-content{max-width:none;bottom:112px;left:24px;right:24px}h1{font-size:clamp(44px,10vw,76px)}.intro{max-width:520px;margin-top:22px;font-size:15px}.scroll-indicator{bottom:24px;left:24px}.portfolio{padding-top:90px;padding-bottom:80px}.portfolio-header{margin-bottom:34px;padding:0 24px;display:block}.portfolio h2,.resume h2,.contact h2{font-size:clamp(58px,16vw,96px)}.portfolio-copy{max-width:520px;margin-top:24px;font-size:14px}.filter-bar{gap:8px;padding:0 24px}.filter-btn{padding:9px 14px;font-size:11px}.project-grid{grid-template-columns:repeat(2,1fr);gap:28px 16px;padding:0 24px}.project-meta{padding-top:12px}.project-meta h3{font-size:14px}.project-meta p{font-size:12px}.resume{min-height:62vh;padding:100px 24px}.resume-copy{font-size:14px}.resume-header{grid-template-columns:1fr;gap:32px;margin-bottom:56px}.resume-copy{max-width:65ch}.contact{padding:72px 24px 80px}.contact-inner{grid-template-columns:1fr;gap:32px}}@media (max-width:560px){.navbar{padding:17px 16px}.navbar.scrolled{padding-top:14px;padding-bottom:14px}.nav-links a{letter-spacing:.01em;padding:8px 7px;font-size:9px}.nav-links a:after{left:7px;right:7px}.nav-right{gap:8px}.hero{min-height:100svh}.hero-content{bottom:100px;left:18px;right:18px}h1{font-size:clamp(30px,10.5vw,46px)}.eyebrow,.section-kicker{letter-spacing:.16em;font-size:8px}.intro{margin-top:18px;font-size:14px;line-height:1.45}.scroll-indicator{font-size:8px;bottom:19px;left:18px}.scroll-indicator span{width:26px}.portfolio{padding-top:76px;padding-bottom:68px}.portfolio-header{margin-bottom:28px;padding:0 18px}.portfolio h2,.resume h2,.contact h2{font-size:clamp(52px,17vw,78px)}.portfolio-copy{margin-top:20px;font-size:14px;line-height:1.6}.filter-bar{gap:8px;padding:0 18px}.filter-btn{padding:8px 12px;font-size:10px}.project-grid{grid-template-columns:1fr;gap:26px;padding:0 18px}.project-meta{padding-top:10px}.resume{min-height:58vh;padding:82px 18px}.resume-copy{font-size:14px}.resume-entry{grid-template-columns:1fr;gap:12px;padding:24px 0 28px}.resume-dates{margin:0;font-size:13px}.resume-group+.resume-group{margin-top:40px}.contact{padding:64px 18px 72px}}@media (hover:none) and (pointer:coarse){.project-card:hover{transform:none}.project-card:hover .project-image{box-shadow:none}.project-card:hover .project-image img{transform:none}}
:root{--gf-max:1380px;--gf-pad:clamp(18px, 4vw, 64px);--gf-accent:#69795f;--gf-accent-soft:#69795f21;--gf-concrete:#dedbd4;--gf-line-strong:#10101057}[data-theme=dark]{--gf-accent:#8ea183;--gf-accent-soft:#8ea18324;--gf-concrete:#2a292e;--gf-line-strong:#f2f0ea4d}.project-page{background:var(--paper);min-height:100vh}.project-page main{overflow:clip}.gf-hero{color:#fff;isolation:isolate;background:#101010;align-items:end;min-height:clamp(410px,51vh,610px);display:grid;position:relative;overflow:hidden}.gf-hero-media{z-index:-2;position:absolute;inset:0;overflow:hidden}.gf-hero-media img{object-fit:cover;object-position:center 48%;will-change:transform;width:100%;height:100%;animation:14s cubic-bezier(.22,1,.36,1) forwards gf-hero-zoom-out;display:block;transform:scale(1.06)}.gf-hero-overlay{background:linear-gradient(#0006 0%,#0000001f 43%,#000000ad 100%);position:absolute;inset:0}.gf-hero-grain{opacity:.085;mix-blend-mode:soft-light;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");position:absolute;inset:0}.gf-hero-content{width:min(var(--gf-max), calc(100% - (2 * var(--gf-pad))));margin:0 auto;padding:0 0 clamp(46px,8vh,90px)}.gf-eyebrow,.gf-section-kicker,.gf-end-label{text-transform:uppercase;letter-spacing:.16em;margin:0;font-size:9px;font-weight:700;line-height:1.4}.gf-eyebrow{color:#ffffffb3;margin-bottom:17px}.gf-hero h1{letter-spacing:-.07em;max-width:1000px;margin:0;font-size:clamp(62px,9vw,140px);font-weight:700;line-height:.86}.gf-hero-deck{color:#fffc;letter-spacing:.01em;margin:22px 0 0 2px;font-size:clamp(14px,1.35vw,19px)}.gf-full-image{background:var(--gf-concrete);width:100%;margin:0;overflow:hidden}.gf-full-image img{object-fit:cover;object-position:center;width:100%;height:auto;min-height:clamp(360px,58vw,760px);max-height:78vh;display:block}.gf-meta-wrap,.gf-introduction,.gf-video-section,.gf-section,.gf-end-nav{width:min(var(--gf-max), calc(100% - (2 * var(--gf-pad))));margin-inline:auto}.gf-meta-wrap{border-bottom:1px solid var(--line);grid-template-columns:minmax(260px,.85fr) minmax(460px,1.15fr);gap:clamp(44px,8vw,140px);padding:clamp(70px,9vw,124px) 0 clamp(78px,10vw,130px);display:grid}.gf-meta-lead{max-width:470px;color:var(--muted);letter-spacing:-.02em;margin:17px 0 0;font-size:clamp(20px,2.2vw,30px);line-height:1.2}.gf-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 44px;margin:0;display:grid}.gf-meta-grid>div{border-top:1px solid var(--line);padding-top:11px}.gf-meta-grid dt{color:var(--muted);text-transform:uppercase;letter-spacing:.14em;margin:0 0 10px;font-size:10px;font-weight:700}.gf-meta-grid dd{max-width:260px;color:var(--ink);margin:0;font-size:14px;line-height:1.5}.gf-introduction{grid-template-columns:minmax(150px,.35fr) minmax(0,1.65fr);gap:clamp(30px,7vw,120px);padding:clamp(90px,12vw,170px) 0 clamp(110px,13vw,190px);display:grid}.gf-intro-label{padding-top:8px}.gf-rule{background:var(--ink);opacity:.5;width:44px;height:1px;margin-top:19px;display:block}.gf-intro-copy{max-width:920px}.gf-intro-copy h2{letter-spacing:-.065em;max-width:860px;margin:0 0 54px;font-size:clamp(42px,6.5vw,94px);font-weight:700;line-height:.94}.gf-body{max-width:680px;color:var(--muted);margin:0 0 27px;font-size:15px;line-height:1.72}.gf-body-large{color:var(--ink);letter-spacing:-.015em;font-size:clamp(18px,1.7vw,24px);line-height:1.48}.gf-challenge{border-left:1px solid var(--gf-accent);max-width:760px;color:var(--ink);letter-spacing:-.02em;margin:72px 0 0;padding:26px 0 0 28px;font-size:clamp(21px,2vw,30px);line-height:1.33}.gf-challenge span{color:var(--gf-accent);text-transform:uppercase;letter-spacing:.16em;margin-bottom:13px;font-size:10px;font-weight:700;display:block}.gf-video-section{border-top:1px solid var(--line);padding:clamp(96px,11vw,150px) 0 clamp(116px,13vw,180px)}.gf-video-heading{max-width:640px;margin:0 0 clamp(40px,5vw,64px)}.gf-video-heading .gf-rule{margin:0 0 28px}.gf-video-heading h2{letter-spacing:-.03em;margin:0;font-size:clamp(32px,3.6vw,52px);font-weight:600;line-height:1.08}.gf-video-frame{margin:0}.gf-video-frame video{aspect-ratio:16/9;object-fit:cover;background:#111;width:100%;display:block;box-shadow:0 24px 60px #0000001f}[data-theme=dark] .gf-video-frame video{box-shadow:0 24px 60px #0000004d}.gf-video-frame figcaption{color:var(--muted);letter-spacing:.11em;text-transform:uppercase;margin-top:11px;font-size:10px}.gf-section{border-top:1px solid var(--line);padding:clamp(100px,12vw,175px) 0}.gf-section-layout{grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);align-items:center;gap:clamp(36px,7vw,120px);display:grid}.gf-section-layout-reverse{grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr)}.gf-section-copy{max-width:470px}.gf-section-copy h2{letter-spacing:-.055em;margin:0 0 22px;font-size:clamp(34px,4vw,58px);line-height:.96}.gf-image-stack{gap:clamp(18px,2vw,30px);display:grid}.gf-project-image{background:var(--gf-concrete);margin:0;overflow:hidden}.gf-project-image img{object-fit:cover;width:100%;height:100%;transition:transform .9s cubic-bezier(.22,1,.36,1);display:block}.gf-project-image:hover img{transform:scale(1.025)}.gf-project-image-wide{aspect-ratio:16/10}.gf-project-image-tall{aspect-ratio:16/11}.gf-project-image-feature{aspect-ratio:4048/2600;width:100%}.gf-section-feature{isolation:isolate;border-block:1px solid var(--line);padding:clamp(100px,12vw,150px) 0;position:relative}.gf-meta-wrap+.gf-section,.gf-section-feature+.gf-section,.gf-section-feature+.gf-video-section{border-top-width:0}.gf-section-feature .gf-project-image-feature{z-index:1;min-height:0;position:relative}.gf-end-nav{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:clamp(74px,9vw,120px) 0 80px;display:grid}.gf-end-nav-with-portfolio{grid-template-columns:minmax(0,1fr) clamp(72px,8vw,112px) minmax(0,1fr)}.gf-end-link{border:1px solid var(--line);flex-direction:column;justify-content:flex-end;min-height:155px;padding:28px 30px;text-decoration:none;transition:transform .65s cubic-bezier(.22,1,.36,1),background-color .45s,border-color .45s;display:flex;position:relative;overflow:hidden}.gf-end-link:before{content:"";background:var(--gf-accent);transform-origin:0;height:2px;transition:transform .65s cubic-bezier(.22,1,.36,1);position:absolute;inset:auto 0 0;transform:scaleX(0)}.gf-end-link:hover,.gf-end-link:focus-visible{background:var(--gf-accent-soft);border-color:color-mix(in srgb, var(--gf-accent) 40%, var(--line));transform:translateY(-4px)}.gf-end-link:hover:before,.gf-end-link:focus-visible:before{transform:scaleX(1)}.gf-end-link.gf-portfolio-link{color:var(--ink);justify-content:center;align-items:center;padding:24px}.gf-portfolio-link svg{flex-shrink:0;width:28px;height:28px}.gf-portfolio-link:before{transform-origin:50%}.gf-end-label{color:var(--muted);margin-bottom:8px}.gf-end-link strong{letter-spacing:-.05em;max-width:460px;font-size:clamp(28px,3.5vw,54px);line-height:.96}.gf-end-arrow{font-size:28px;font-weight:400;transition:transform .55s cubic-bezier(.22,1,.36,1);position:absolute;top:25px;right:28px}.gf-back-link:hover .gf-end-arrow{transform:translate(-5px)}.gf-next-link{text-align:right;align-items:flex-end}.gf-next-link:before{transform-origin:100%}.gf-next-link:hover .gf-end-arrow{transform:translate(5px)}.page-reveal{opacity:0;animation:1s cubic-bezier(.22,1,.36,1) .18s forwards gf-page-reveal;transform:translateY(24px)}.reveal{opacity:0;transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1);transform:translateY(26px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes gf-hero-zoom-out{0%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes gf-page-reveal{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (max-width:980px){.gf-meta-wrap,.gf-introduction{grid-template-columns:1fr}.gf-meta-wrap{gap:50px}.gf-meta-lead{max-width:650px}.gf-intro-label{padding-top:0}.gf-introduction .gf-rule{display:none}.gf-section-layout,.gf-section-layout-reverse{grid-template-columns:1fr}.gf-section-layout-reverse .gf-section-copy{order:2}.gf-section-copy{max-width:680px}.gf-project-image-wide,.gf-project-image-tall{aspect-ratio:16/10}}@media (max-width:640px){.gf-hero{min-height:41svh;max-height:520px}.gf-hero-media img{object-position:center}.gf-hero-content{padding-bottom:28px}.gf-eyebrow,.gf-section-kicker,.gf-end-label{font-size:8px}.gf-hero h1{font-size:clamp(44px,12vw,64px);line-height:.9}.gf-hero-deck{margin-top:13px;font-size:12px}.gf-meta-grid{grid-template-columns:1fr;gap:22px}.gf-meta-grid dd{max-width:none}.gf-intro-copy h2{margin-bottom:38px;font-size:clamp(36px,10vw,52px)}.gf-body{font-size:13px}.gf-body-large{font-size:17px}.gf-challenge{margin-top:50px;padding-left:19px;font-size:20px}.gf-video-heading h2{font-size:34px}.gf-video-frame video{aspect-ratio:16/10}.gf-full-image img{min-height:44svh;max-height:60svh}.gf-project-image-wide,.gf-project-image-tall,.gf-project-image-feature{aspect-ratio:4/3}.gf-section{padding-block:82px}.gf-section-feature{padding-block:clamp(100px,12vw,150px)}.gf-end-nav,.gf-end-nav-with-portfolio{grid-template-columns:1fr;gap:12px;padding-bottom:42px}.gf-end-link.gf-portfolio-link{min-height:72px}.gf-end-link,.gf-next-link{text-align:left;align-items:flex-start;min-height:135px}.gf-next-link:before{transform-origin:0}.gf-next-link .gf-end-arrow{right:28px}}@media (prefers-reduced-motion:reduce){.gf-hero-media img,.page-reveal,.reveal,.page-leaving,.gf-end-link,.gf-end-arrow,.gf-portfolio-link,.gf-project-image img{transition:none!important;animation:none!important}.gf-hero-media img{transform:none}.page-reveal,.reveal{opacity:1;transform:none}}.gc-gallery .gf-project-image img{height:auto}.gc-detail-grid{grid-template-columns:1fr 1.4fr 1fr;align-items:center;gap:clamp(12px,2vw,28px);display:grid}.gc-worn-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2vw,28px);display:grid}@media (max-width:640px){.gc-detail-grid,.gc-worn-grid{grid-template-columns:1fr}}.pv-gallery .gf-project-image img{height:auto}.pv-exploration-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(18px,2vw,28px);display:grid}@media (max-width:640px){.pv-exploration-grid{grid-template-columns:1fr}}.sx-gallery .gf-project-image img{height:auto}.sx-interface-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2vw,28px);display:grid}.sx-video{aspect-ratio:16/9;background:#111;border:0;width:100%;display:block}@media (max-width:640px){.sx-interface-grid{grid-template-columns:1fr}}.wp-gallery .gf-project-image img{height:auto}.wp-concept .gf-project-image{background:#fff}.wp-interaction-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(18px,2vw,28px);display:grid}.wp-landscape-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(18px,2vw,28px);display:grid}@media (max-width:640px){.wp-landscape-grid,.wp-interaction-grid{grid-template-columns:1fr}}.fld-gallery .gf-project-image img{height:auto}.fld-case-label{color:var(--gf-accent);margin-bottom:18px}.fld-copy-wide{max-width:520px}.fld-requirements{color:var(--muted);margin:28px 0 0;padding-left:20px;font-size:14px;line-height:1.55}.fld-requirements li+li{margin-top:8px}.fld-requirements strong{color:var(--ink)}.fld-section-heading{max-width:760px}.fld-installation-grid{grid-template-columns:minmax(0,1.18fr) minmax(180px,.56fr) minmax(0,1.18fr);align-items:center;gap:clamp(18px,2vw,28px);display:grid}.fld-netherlands-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(18px,2vw,28px);display:grid}.fld-netherlands-grid .gf-project-image:last-child{grid-column:1/-1;justify-self:center;width:min(58%,760px)}.fld-operation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2vw,28px);display:grid}.fld-operation-grid .gf-project-image{aspect-ratio:4/3;overflow:hidden}.fld-operation-grid .gf-project-image img{object-fit:cover;width:100%;height:100%}@media (max-width:760px){.fld-installation-grid,.fld-netherlands-grid,.fld-operation-grid{grid-template-columns:1fr}.fld-installation-grid .gf-project-image:nth-child(2){max-width:66%;margin-inline:auto}.fld-netherlands-grid .gf-project-image:last-child{grid-column:auto;width:100%}}.st-gallery .gf-project-image img{height:auto}.st-section-heading{max-width:780px}.st-prototype-layout{grid-template-columns:minmax(240px,.68fr) minmax(0,1.32fr);align-items:center}.st-prototype-layout>.gf-project-image{max-width:500px}.st-copy-wide{max-width:620px}.st-result-grid{grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);align-items:center;gap:clamp(18px,2vw,28px);display:grid}@media (max-width:760px){.st-prototype-layout,.st-result-grid{grid-template-columns:1fr}.st-prototype-layout>.gf-project-image{max-width:78%;margin-inline:auto}}.htc-gallery .gf-project-image img{height:auto}.htc-pair-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.5vw,22px);display:grid}.htc-detail-layout{grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr)}.htc-detail-layout>.gf-project-image{max-width:560px}.htc-copy-wide{max-width:620px}.htc-section-heading{max-width:780px}@media (max-width:760px){.htc-pair-grid,.htc-detail-layout{grid-template-columns:1fr}}.fn-gallery .gf-project-image img{height:auto}.fn-detail-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.fn-copy-wide{max-width:620px}.fn-section-heading{max-width:780px}@media (max-width:760px){.fn-detail-layout{grid-template-columns:1fr}}.wps-gallery .gf-project-image img{height:auto}.wps-method-layout{grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);align-items:center}.wps-copy-wide{max-width:620px}.wps-results-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(16px,2vw,28px);display:grid}@media (max-width:760px){.wps-method-layout,.wps-results-grid{grid-template-columns:1fr}}.gd-gallery .gf-project-image img{height:auto}.gd-production-grid,.gd-pair-grid{align-items:center;gap:clamp(18px,2vw,28px);display:grid}.gd-production-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gd-pair-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gd-gallery-copy{max-width:100%;margin-bottom:clamp(30px,4vw,54px)}@media (max-width:640px){.gd-production-grid,.gd-pair-grid{grid-template-columns:1fr}}.dd-gallery .gf-project-image img{height:auto}.dd-detail-layout{grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);align-items:center}.dd-copy-wide{max-width:620px}.dd-section-heading{max-width:780px}.dd-image-caption{color:var(--muted);letter-spacing:.11em;text-transform:uppercase;margin:14px 0 0;font-size:10px;line-height:1.5}@media (max-width:760px){.dd-detail-layout{grid-template-columns:1fr}}.marble-gallery .gf-project-image{background:#fff}.marble-gallery .gf-project-image img{object-fit:contain;height:auto}.marble-detail-layout{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.marble-copy-wide{max-width:620px}.marble-section-copy{margin-bottom:clamp(32px,4vw,56px)}.marble-steps{color:var(--muted);margin:0;padding-left:20px;font-size:14px;line-height:1.65}.marble-steps li+li{margin-top:10px}.marble-steps strong{color:var(--ink)}.marble-sequence-grid{grid-template-columns:minmax(0,.62fr) repeat(2,minmax(0,1fr));align-items:center;gap:clamp(14px,2vw,28px);display:grid}.marble-drilling-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(18px,2vw,28px);display:grid}.marble-section-heading{max-width:780px}.marble-result .gf-project-image{width:100%}@media (max-width:760px){.marble-detail-layout,.marble-sequence-grid,.marble-drilling-grid{grid-template-columns:1fr}.marble-detail-layout .gf-section-copy{order:-1}.marble-sequence-grid .gf-project-image:first-child{width:min(65%,300px);margin-inline:auto}}.tc-gallery .gf-project-image img,.piston-gallery .gf-project-image img{height:auto}.piston-process{padding-left:22px}.piston-results-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(18px,2vw,28px);display:grid}@media (max-width:640px){.piston-results-grid{grid-template-columns:1fr}}.project-detail-page .gf-hero-content{padding-top:140px}.project-detail-page .gf-hero h1{overflow-wrap:anywhere;max-width:1100px;font-size:clamp(40px,7vw,108px);line-height:.98}.project-detail-page .gf-hero-deck{max-width:680px;line-height:1.5}.project-detail-page .gf-end-link:not(.gf-portfolio-link){padding-top:70px}.project-detail-page .gf-end-link strong{overflow-wrap:anywhere}@media (max-width:640px){.project-detail-page .gf-hero{max-height:none}.project-detail-page .gf-hero-content{padding-top:120px}}
.project-placeholder{background:var(--gf-concrete);border:1px dashed var(--gf-line-strong);color:var(--ink);text-align:center;place-items:center;margin:0;padding:24px;display:grid}.project-placeholder figcaption{gap:12px;font-size:14px;line-height:1.5;display:grid}.project-placeholder .gf-section-kicker{color:var(--muted)}.project-video-placeholder{aspect-ratio:16/9}@media (max-width:640px){.project-video-placeholder{aspect-ratio:4/3}}
.portfolio-header,.filter-bar,.resume,.project-card,.reveal{opacity:1;transform:none}.reveal-pending{opacity:0;transform:translateY(26px)}.project-card{animation:.5s both card-enter}@keyframes card-enter{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}section[id],main[id]{scroll-margin-top:81px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--paper);color:var(--ink);padding:12px 20px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:none}.hero-video-toggle{color:#fff;font:inherit;cursor:pointer;background:#0000004d;border:1px solid #ffffff73;border-radius:999px;padding:9px 14px;font-size:11px;position:absolute;bottom:22px;right:clamp(18px,5vw,76px)}.not-found{padding:20vh 8vw}@media (prefers-reduced-motion:reduce){.project-card{animation:none}.reveal-pending{opacity:1;transform:none}}@media (max-width:800px){section[id],main[id]{scroll-margin-top:65px}}@media (max-width:560px){section[id],main[id]{scroll-margin-top:61px}}
