@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.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:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_f15bd114-module__7725RG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_f15bd114-module__7725RG__variable{--font-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Bank Gothic;src:url(/fonts/bank-gothic-medium.ttf)format("truetype");font-display:swap}:root{--white:#fff;--paper:#f5f5f6;--ink:#171719;--muted:#737477;--line:#d8d9dc;--green:#087642;--phthalo:#123f31;--bright:#36efa7;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth;background:#fff}body{color:var(--ink);font:16px/1.6 var(--font-sans),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#fff;margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3{letter-spacing:.035em;margin:0;font-family:Bank Gothic,sans-serif;font-weight:500}::selection{background:var(--bright);color:#00150c}.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}.site-header{z-index:50;padding:18px max(28px,calc((100vw - var(--max))/2));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:#fffffff0;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:10px 24px;display:flex;position:sticky;top:0}.brand{letter-spacing:.05em;color:var(--ink);white-space:nowrap;align-items:center;gap:10px;font:20px Bank Gothic,sans-serif;display:flex}.brand img{width:26px;height:26px}.site-header nav{letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:10px 22px;font-size:13px;font-weight:600;display:flex}.site-header nav a{color:var(--muted);transition:color .18s}.site-header nav a:hover,.site-header nav a.active{color:var(--green)}.hero{color:#fff;background:#020303;padding:64px 28px 52px;position:relative;overflow:hidden}.hero:before{content:"";z-index:0;background:radial-gradient(at 25% 15%,#36efa724,#0000 55%),radial-gradient(at 85% 70%,#08764229,#0000 60%);position:absolute;inset:0}.hero-inner{z-index:1;max-width:var(--max);margin:0 auto;position:relative}.kicker{color:var(--bright);letter-spacing:.2em;text-transform:uppercase;margin:0 0 18px;font-size:12px;font-weight:700}.hero h1{max-width:820px;font-size:clamp(32px,4.6vw,58px);line-height:1.1}.hero h1+.kicker{margin:16px 0 0}.button-row{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.button{color:#fff;background:0 0;border:1px solid #ffffff40;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:0 22px;font-size:14px;font-weight:650;transition:transform .2s,background .2s,border-color .2s;display:inline-flex}.button:hover{border-color:var(--bright);transform:translateY(-1px)}.button.primary{border-color:var(--bright);background:var(--bright);color:#00150c}.page-heading{padding:78px max(28px,calc((100vw - var(--max))/2)) 20px}.page-heading h1{font-size:clamp(28px,3.4vw,42px)}.page-heading p{max-width:700px;color:var(--muted);margin:18px 0 0;font-size:16px;line-height:1.7}.about-intro{max-width:640px;color:var(--ink)!important;margin:0!important;font-size:clamp(20px,2.2vw,26px)!important;line-height:1.5!important}.client-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);padding:44px 0 48px;overflow:hidden}.client-strip-label{padding:0 max(28px,calc((100vw - var(--max))/2));margin:0 0 24px}.client-track{align-items:flex-start;gap:56px;width:max-content;animation:40s linear infinite client-marquee;display:flex}.client-track:hover{animation-play-state:paused}.client-logo{text-align:center;flex-direction:column;flex:none;align-items:center;width:220px;display:flex}.client-logo img{object-fit:contain;filter:grayscale();opacity:.6;width:220px;height:90px;margin-bottom:12px;transition:opacity .2s,filter .2s;display:block}.client-logo:hover img{filter:grayscale(0);opacity:1}.client-logo-name{color:var(--ink);font-size:13px;font-weight:650}.client-logo-role{color:var(--muted);margin-top:3px;font-size:12px;line-height:1.4}@keyframes client-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.client-track{animation:none}}section.block{border-top:1px solid var(--line);padding:70px 28px}.block-inner{max-width:var(--max);margin:0 auto}.section-label{color:var(--green);letter-spacing:.16em;text-transform:uppercase;margin:0 0 14px;font-size:12px;font-weight:700}.section-head{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px;display:flex}.section-head h2{font-size:clamp(22px,2.6vw,30px)}.section-head p{max-width:560px;color:var(--muted);margin:14px 0 0;font-size:15px;line-height:1.7}.section-head>a{color:var(--green);white-space:nowrap;font-size:14px;font-weight:650}.works-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.work-card{border:1px solid var(--line);background:#fff;border-radius:16px;transition:transform .2s,box-shadow .2s;overflow:hidden}.work-card:hover{transform:translateY(-2px);box-shadow:0 16px 40px #0000000f}.work-thumb{aspect-ratio:16/9;background:#0a0a0a;display:block;position:relative}.work-thumb img{object-fit:cover;width:100%;height:100%}.work-thumb .play-badge{color:#fff;opacity:0;background:#00000047;justify-content:center;align-items:center;font-size:15px;transition:opacity .18s;display:flex;position:absolute;inset:0}.work-thumb .play-badge:before{content:"";background:#0000008c;border-radius:50%;width:52px;height:52px;position:absolute}.work-thumb:hover .play-badge{opacity:1}.work-body{padding:22px 24px 24px}.work-card .tag{color:var(--green);letter-spacing:.06em;text-transform:uppercase;background:#eaf3ee;border-radius:999px;margin-bottom:16px;padding:4px 10px;font-size:11px;font-weight:650;display:inline-block}.work-card h3{letter-spacing:0;margin-bottom:8px;font-family:inherit;font-size:16px;font-weight:650;line-height:1.35}.work-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.work-card .work-link{color:var(--green);margin-top:14px;margin-right:14px;font-size:13px;font-weight:650;display:inline-block}.about-grid{grid-template-columns:.9fr 1.4fr;align-items:start;gap:60px;display:grid}.about-facts{flex-direction:column;gap:22px;display:flex}.about-facts dt{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;font-size:11px}.about-facts dd{margin:0;font-size:15px}.about-copy p{color:var(--muted);margin:0 0 20px;font-size:16px;line-height:1.8}.about-copy p:last-child{margin-bottom:0}.history-grid{columns:3 220px;column-gap:36px}.history-item{break-inside:avoid;border-bottom:1px solid var(--line);color:var(--ink);padding:9px 0;font-size:14px;display:block}.history-note{color:var(--muted);margin-top:28px;font-size:13px;font-style:italic}.rnd-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.rnd-card{border:1px solid var(--line);background:#fff;border-radius:18px;flex-direction:column;display:flex;position:relative;overflow:hidden}.rnd-card-body{flex-direction:column;flex:1;justify-content:space-between;min-height:230px;padding:34px;display:flex}.rnd-logo-box{align-items:center;width:170px;height:60px;margin-bottom:22px;display:flex}.rnd-logo-box img{object-fit:contain;max-width:100%;max-height:100%}.rnd-card-body h3{letter-spacing:0;margin-bottom:10px;font-family:inherit;font-size:18px;font-weight:700}.rnd-card-body p{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.rnd-card-links{gap:20px;margin-top:20px;display:flex}.rnd-card .rnd-link{color:var(--green);font-size:13px;font-weight:650}.showreel-grid{grid-template-columns:repeat(2,1fr);justify-items:center;gap:24px;display:grid}.showreel-card{border:1px solid var(--line);background:#fff;border-radius:16px;width:100%;max-width:360px;overflow:hidden}.showreel-card.wide{max-width:none}.showreel-frame{aspect-ratio:16/9;color:#8b8d8c;text-align:center;background:#0a0a0a;justify-content:center;align-items:center;padding:20px;font-size:13px;display:flex;position:relative}.showreel-card iframe,.showreel-card video{aspect-ratio:16/9;background:#0a0a0a;border:0;width:100%;display:block}.showreel-card iframe.vertical{aspect-ratio:9/16}.showreel-caption{padding:16px 20px}.showreel-caption h3{letter-spacing:0;margin-bottom:4px;font-family:inherit;font-size:15px;font-weight:650}.showreel-caption p{color:var(--muted);margin:0;font-size:13px}.cv-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.cv-heading .button{color:#00150c}.cv-contact{color:var(--muted);flex-wrap:wrap;gap:10px 22px;font-size:14px;display:flex}.cv-contact a{color:var(--green);font-weight:650}.cv-list{flex-direction:column;gap:32px;display:flex}.cv-entry h3{letter-spacing:0;margin-bottom:8px;font-family:inherit;font-size:17px;font-weight:700;line-height:1.5}.cv-entry h3 span{color:var(--muted);font-weight:500}.cv-period{font-size:13px;font-weight:500}.cv-entry ul{margin:0;padding:0;list-style:none}.cv-entry li{color:var(--muted);padding:4px 0 4px 20px;font-size:14px;line-height:1.6;position:relative}.cv-entry li:before{content:"—";color:var(--green);position:absolute;left:0}.cv-org{color:var(--ink);margin:0;font-size:14px}.cv-note{color:var(--muted);margin:6px 0 0;font-size:13px;font-style:italic}.cv-plain-list{flex-direction:column;gap:12px;max-width:820px;margin:0;padding:0;list-style:none;display:flex}.cv-plain-list li{color:var(--muted);padding:2px 0 2px 22px;font-size:14px;line-height:1.65;position:relative}.cv-plain-list li:before{content:"—";color:var(--green);position:absolute;left:0}.cv-tags-grid{grid-template-columns:1fr 1fr;gap:40px;display:grid}.cv-tags{flex-wrap:wrap;gap:10px;display:flex}.cv-tags span{color:var(--green);background:#eaf3ee;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:650}.back-link{color:var(--green);margin-bottom:18px;font-size:14px;font-weight:650;display:inline-block}.enso-hero-figure{margin:0}.enso-hero-figure img{border:1px solid var(--line);background:#0a0a0a;border-radius:16px;width:100%;max-width:700px;margin:0 auto;display:block}.enso-hero-figure figcaption{max-width:700px;color:var(--muted);text-align:center;margin-top:12px;margin-left:auto;margin-right:auto;font-size:13px}.enso-copy p:not(.section-label){max-width:760px;color:var(--muted);margin:0;font-size:16px;line-height:1.8}.enso-problems{grid-template-columns:repeat(2,1fr);gap:28px;display:grid}.enso-problems h3{letter-spacing:0;margin-bottom:8px;font-family:inherit;font-size:16px;font-weight:700}.enso-problems p{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.enso-feature{grid-template-columns:1fr .8fr;align-items:center;gap:48px;display:grid}.enso-feature.reverse{grid-template-columns:.8fr 1fr}.enso-feature.reverse .enso-feature-copy{order:2}.enso-feature.reverse figure{order:1}.enso-feature-copy p:not(.section-label){color:var(--muted);margin:0;font-size:16px;line-height:1.8}.enso-feature figure{margin:0}.enso-pair{grid-template-columns:1fr 1fr;gap:16px;display:grid}.enso-pair figure{margin:0}.enso-feature img{border:1px solid var(--line);background:#0a0a0a;border-radius:14px;width:100%;display:block}.enso-feature figcaption{color:var(--muted);text-align:center;margin-top:10px;font-size:12px}.enso-testing-intro{max-width:760px;color:var(--muted);margin:0 0 32px;font-size:16px;line-height:1.8}.enso-stats{grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:32px;display:grid}.enso-stats strong{color:var(--green);margin-bottom:8px;font:32px Bank Gothic,sans-serif;display:block}.enso-stats span{color:var(--muted);font-size:13px;line-height:1.5;display:block}.enso-quote{border-left:3px solid var(--green);max-width:700px;color:var(--ink);margin:0;padding:20px 24px;font-size:15px;font-style:italic;line-height:1.7}.thesis-card{border:1px solid var(--line);background:var(--paper);border-radius:16px;max-width:640px;padding:26px 30px}.thesis-card h3{letter-spacing:0;margin-bottom:10px;font-family:inherit;font-size:17px;font-weight:700;line-height:1.4}.thesis-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.site-footer{padding:56px max(28px,calc((100vw - var(--max))/2)) 34px;border-top:1px solid var(--line);background:var(--paper)}.footer-inner{max-width:var(--max);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:30px;margin:0 auto;display:flex}.footer-inner .brand{margin-bottom:10px}.footer-inner a.email{color:var(--green);font-size:15px;font-weight:650}.social-row{flex-wrap:wrap;gap:18px;display:flex}.social-row a{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:13px}.social-row a:hover{color:var(--green)}.copyright{border-top:1px solid var(--line);color:var(--muted);margin-top:30px;padding-top:22px;font-size:12px}@media (max-width:900px){.works-grid{grid-template-columns:repeat(2,1fr)}.about-grid{grid-template-columns:1fr;gap:36px}.rnd-grid,.showreel-grid,.enso-problems,.cv-tags-grid,.enso-feature,.enso-feature.reverse{grid-template-columns:1fr}.enso-feature.reverse .enso-feature-copy,.enso-feature.reverse figure{order:0}.enso-stats{grid-template-columns:repeat(2,1fr)}.history-grid{columns:2 180px}.site-header nav{gap:8px 16px;font-size:12px}}@media (max-width:640px){.works-grid{grid-template-columns:1fr}.hero{padding:76px 20px 60px}section.block,.page-heading{padding-left:20px;padding-right:20px}.history-grid{columns:1}.footer-inner{flex-direction:column;align-items:flex-start}.site-header{justify-content:flex-start}}
