@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-0.ttf)format("truetype")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-1.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/font-2.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-3.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-4.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/font-5.ttf)format("truetype")}:root{--bg:#11120f;--fg:#f0efe9;--muted:#999b92;--line:#34362e;--accent:#dcf884}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--bg);color:var(--fg);margin:0;font-family:DM Sans,Arial,sans-serif;font-size:15px}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{background:var(--accent);color:var(--bg)}header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:88px;margin:0 4%;display:flex}.brand{letter-spacing:-2px;font-size:30px;font-weight:700}.brand span{color:var(--accent);margin-left:4px;font-size:27px;display:inline-block}nav{gap:35px;display:flex}nav a{color:#a5a69e;font-size:13px;position:relative}nav a[aria-current],nav a:hover{color:var(--fg)}nav a[aria-current]:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:-12px;left:50%}.contact-link{border-bottom:1px solid #8b8d82;padding-bottom:5px;font-size:13px}.contact-link span{color:var(--accent);margin-left:20px}.eyebrow{letter-spacing:1.7px;font-family:DM Sans,sans-serif;font-size:10px;font-weight:500}.eyebrow i{background:var(--accent);border-radius:50%;width:6px;height:6px;margin-right:10px;display:inline-block}.accent{color:var(--accent)}.muted{color:var(--muted)}.hero{padding:42px 4% 48px}.hero-intro{justify-content:space-between;display:flex}.hero h1{letter-spacing:-.025em;max-width:1320px;margin:48px 0 30px;font-family:Barlow Condensed,Arial Narrow,Impact,sans-serif;font-size:clamp(100px,16.5vw,250px);font-weight:600;line-height:.83;position:relative}.hero h1>span{margin-left:16%}.hero h1 b{color:var(--accent);font-family:Arial,sans-serif;font-size:.59em;font-weight:400;animation:35s linear infinite turn;position:absolute;top:18%;right:3%}.hero-bottom{grid-template-columns:1fr 1fr auto;align-items:end;margin-top:38px;display:grid}.hero-bottom>p{letter-spacing:-.7px;margin:0;font-size:25px;line-height:1.25}.hero-bottom>div p{color:#b8b9af;font-size:13px;line-height:1.7}.text-link{border-bottom:1px solid #74776a;padding:8px 0;font-size:12px;display:inline-block}.text-link span{margin-left:30px}.text-link:hover{color:var(--accent)}.scroll-note{letter-spacing:1px;writing-mode:vertical-rl;font-size:9px}.feature{padding:0 4%}.feature-art{background:#292933;border-radius:5px;height:630px;display:block;position:relative;overflow:hidden}.feature-art>img{object-fit:cover;object-position:50% 40%;width:100%;height:100%;transition:transform 1s}.feature-art:hover>img{transform:scale(1.025)}.feature-art:after{content:"";background:linear-gradient(#0000 50%,#000b);position:absolute;inset:0}.feature-top{letter-spacing:1px;z-index:1;text-shadow:0 1px 5px #000;justify-content:space-between;font-size:10px;display:flex;position:absolute;top:25px;left:28px;right:28px}.feature-bottom{z-index:1;justify-content:space-between;align-items:end;display:flex;position:absolute;bottom:30px;left:30px;right:30px}.feature-bottom h2{letter-spacing:-2px;margin:8px 0 0;font-size:55px}.feature-open{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #fff7;border-radius:40px;padding:15px 22px;font-size:12px}.intro-section,.about-copy{border-bottom:1px solid var(--line);grid-template-columns:1fr 2fr;gap:30px;padding:110px 4%;display:grid}h2{letter-spacing:-1.5px;font-weight:500;line-height:1.1}.intro-section h2,.about-copy h2{margin:0 0 25px;font-size:clamp(28px,3.2vw,48px)}.intro-section p,.about-copy p{color:#b5b7aa;max-width:570px;line-height:1.8}.selected{padding:75px 4%}.section-head{justify-content:space-between;align-items:end;margin-bottom:32px;display:flex}.section-head h2{margin:14px 0 0;font-size:50px}.project-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.project-image{aspect-ratio:4/5;background:#24271f;border-radius:4px;position:relative;overflow:hidden}.project-image img{object-fit:cover;width:100%;height:100%;transition:transform .6s}.project-card:hover img{transform:scale(1.04)}.round-arrow{background:var(--fg);width:38px;height:38px;color:var(--bg);border-radius:50%;place-items:center;font-size:21px;display:grid;position:absolute;bottom:16px;right:16px}.project-caption{justify-content:space-between;padding:17px 0;display:flex}.project-caption h3{margin:0 0 8px;font-size:17px;font-weight:500}.project-caption span{letter-spacing:1px;color:var(--muted);font-size:9px}.project-number{padding-top:5px}.two-paths{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;margin:30px 4% 80px;display:grid}.two-paths>a,.two-paths>div{padding:42px 0}.two-paths>:nth-child(2){border-left:1px solid var(--line);padding-left:12%}.two-paths h2{margin:30px 0;font-size:clamp(30px,4vw,56px)}.two-paths h2 span{color:var(--accent)}.two-paths p{color:var(--muted);font-size:12px;line-height:1.8}.two-paths a:hover h2{color:var(--accent)}footer{background:#181a15;padding:50px 4% 25px}.footer-top p{color:var(--muted);font-size:13px}.footer-top>a{letter-spacing:-2px;justify-content:space-between;align-items:center;padding-bottom:60px;font-size:clamp(30px,5vw,76px);display:flex}.footer-top>a span{color:var(--accent)}.footer-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding-top:25px;font-size:9px;display:flex}.footer-bottom>div{gap:20px;display:flex}.footer-bottom>a{font-size:12px}.page-heading{border-bottom:1px solid var(--line);padding:65px 4% 55px}.page-heading h1{letter-spacing:-2px;text-transform:uppercase;margin:35px 0;font-family:Barlow Condensed,Impact,sans-serif;font-size:clamp(80px,12vw,170px);font-weight:500;line-height:.9}.page-heading h1 .accent{margin-left:15px;display:inline-block}.page-heading p{color:#b6b8ad;max-width:490px;margin-left:50%;line-height:1.75}.pill{background:var(--accent);color:#16190e;border:1px solid var(--accent);cursor:pointer;border-radius:40px;justify-content:center;align-items:center;gap:25px;padding:16px 25px;font-size:12px;display:inline-flex}.pill:hover{background:#edffb9}.selected>.pill{margin-top:35px}.filters{flex-wrap:wrap;gap:10px;margin-bottom:35px;display:flex}.filters button{border:1px solid var(--line);color:var(--fg);cursor:pointer;background:0 0;border-radius:30px;padding:11px 20px;font-size:12px}.filters button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#171b10}.work-areas{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:25px;display:grid}.work-area{border:1px solid var(--line);background:#1d2118;border-radius:4px;padding:45px}.work-area.software{background:#1b1f22}.work-area h2{font-size:48px}.work-area p{max-width:460px;font-size:14px;line-height:1.8}.tags{flex-wrap:wrap;gap:8px;margin:28px 0;display:flex}.tags span{border:1px solid #595d50;border-radius:20px;padding:8px 12px;font-size:10px}.experience{padding:60px 4%}.experience-row{border-bottom:1px solid var(--line);grid-template-columns:1fr 2fr 1fr;align-items:start;gap:20px;padding:27px 0;display:grid}.experience-row>span{color:var(--muted);font-size:12px}.experience-row>span:last-child{text-align:right}.experience-row h3{margin:0;font-size:20px;font-weight:400}.experience-row small{color:var(--muted);margin-top:12px;font-size:13px;display:block}.contact-section{padding:60px 4% 100px;scroll-margin-top:25px}.contact-section h2{margin:35px 0;font-size:clamp(40px,7vw,100px)}.contact-section h2 span{margin-left:30px}.contact-section p{color:var(--muted);line-height:1.7}.contact-section>div{align-items:center;gap:30px;margin-top:30px;display:flex}.project-detail{padding:55px 4% 80px}.project-detail h1{text-transform:uppercase;margin:45px 0;font-family:Barlow Condensed,Impact,sans-serif;font-size:clamp(55px,8vw,110px);font-weight:500;line-height:1}.detail-info{grid-template-columns:1fr 1fr;gap:25px;margin-bottom:40px;display:grid}.detail-info p{color:#b8baae;max-width:620px;margin:0;line-height:1.8}.detail-image{object-fit:contain;background:#080907;border-radius:4px;width:100%;max-height:1000px;margin-bottom:35px;display:block}.cv{color:#191b17;background:#f0efe9;border-radius:4px;max-width:940px;margin:50px auto 80px;padding:50px;line-height:1.7}.cv h1{letter-spacing:-2px;margin-bottom:15px;font-size:45px;line-height:1.1}.cv h2{font-size:23px}.cv h3{border-bottom:1px solid #b8bcaf;margin-top:30px;padding-bottom:8px}.cv-actions{justify-content:space-between;align-items:center;gap:20px;display:flex}.cv-row{justify-content:space-between;gap:20px;padding:10px 0;display:flex}.cv-row p{margin:0}.cv-row>span{font-size:12px}.skip{z-index:10;background:var(--accent);color:#111;padding:15px;position:fixed;top:-100px}.skip:focus{top:10px}@keyframes turn{to{transform:rotate(360deg)}}@media (min-width:1600px){main,header,footer{max-width:1600px;margin-left:auto;margin-right:auto}}@media (max-width:760px){header{flex-wrap:wrap;gap:12px;height:105px;padding:12px 0}.brand{font-size:25px}nav{order:3;justify-content:space-between;gap:10px;width:100%}nav a{font-size:12px}nav a[aria-current]:after{bottom:-6px}.hero{padding-top:28px}.location{display:none}.hero h1{margin-top:35px;font-size:22vw}.hero h1>span{margin-left:7%}.hero h1 b{font-size:.5em;right:0}.hero-bottom{grid-template-columns:1fr 1fr;gap:20px}.hero-bottom>p{font-size:21px}.hero-bottom>div p{font-size:11px}.scroll-note{display:none}.feature-art{height:480px}.feature-art>img{object-position:center}.feature-top{font-size:8px;left:18px;right:18px}.feature-top>span{display:none}.feature-bottom{left:18px;right:18px}.feature-bottom h2{font-size:38px}.feature-open{padding:12px;font-size:10px}.intro-section,.about-copy{grid-template-columns:1fr;gap:30px;padding:65px 4%}.selected{padding:50px 4%}.section-head h2{font-size:36px}.section-head>.text-link{font-size:10px}.project-grid{grid-template-columns:1fr;gap:25px}.project-image{aspect-ratio:1}.two-paths{grid-template-columns:1fr}.two-paths>:nth-child(2){border-left:0;border-top:1px solid var(--line);padding-left:0}.two-paths h2{font-size:40px}.footer-bottom{flex-wrap:wrap;line-height:1.8}.footer-bottom>div{width:100%}.page-heading p{max-width:100%;margin-left:0}.page-heading h1{font-size:22vw}.experience-row{grid-template-columns:1fr;gap:14px}.experience-row>span:last-child{text-align:left}.work-area{padding:28px}.work-area h2{font-size:38px}.detail-info{grid-template-columns:1fr}.cv{margin:25px 4%;padding:25px}.cv-actions{flex-wrap:wrap}.cv h1{font-size:35px}.cv-row{flex-direction:column;gap:5px}.contact-section>div{flex-wrap:wrap}.contact-section h2 span{margin-left:10px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{body{color:#000;background:#fff}header,footer,.cv-actions,.skip{display:none!important}.cv{color:#000;background:#fff;max-width:none;margin:0;padding:0;font-size:11px;line-height:1.4}.cv h1{font-size:30px}.cv h2{font-size:18px}.cv h3{margin-top:20px}.cv-row{break-inside:avoid;flex-direction:row;display:flex}.cv p{margin:6px 0}@page{size:A4;margin:18mm}}
.project-shell{border-left:1px solid var(--line);border-right:1px solid var(--line);grid-template-columns:minmax(290px,25%) minmax(0,1fr);margin:0 4%;display:grid}.project-aside{scrollbar-width:thin;border-right:1px solid var(--line);align-self:start;max-height:100vh;padding:32px 24px 36px;position:sticky;top:0;overflow-y:auto}.project-back,.project-source{text-underline-offset:4px;font-size:12px;text-decoration:underline}.project-back:hover,.project-source:hover{color:var(--accent)}.project-aside-label{letter-spacing:1.5px;color:var(--muted);margin:64px 0 12px;font-size:10px}.project-aside h1{text-transform:uppercase;letter-spacing:-.02em;overflow-wrap:anywhere;margin:0 0 32px;font-family:Barlow Condensed,Impact,sans-serif;font-size:clamp(35px,3vw,52px);font-weight:600;line-height:.95}.project-facts{border-top:1px solid var(--line);margin:0}.project-facts>div{border-bottom:1px solid var(--line);grid-template-columns:88px 1fr;gap:10px;padding:15px 0;font-size:12px;display:grid}.project-facts dt{color:var(--muted)}.project-facts dd{margin:0;line-height:1.4}.project-story{padding:36px 0 28px}.project-story p{color:#c4c6bb;margin:16px 0 0;font-size:13px;line-height:1.7}.project-story .project-credit{color:var(--muted);border-left:2px solid var(--accent);padding-left:10px;font-size:11px}.project-process{padding:0 0 34px}.project-process ol{border-top:1px solid var(--line);margin:18px 0 0;padding:0;list-style:none}.project-process li{border-bottom:1px solid var(--line);grid-template-columns:26px minmax(0,1fr);gap:10px;padding:15px 0;display:grid}.project-process li>span{color:var(--accent);padding-top:4px;font-size:10px}.project-process h2{letter-spacing:0;margin:0 0 6px;font-size:15px}.project-process p{color:#b8baae;margin:0;font-size:12px;line-height:1.6}.project-gallery{min-width:0;padding:12px}.project-gallery-item{background:#1a1b19;margin:0 0 12px;overflow:hidden}.project-gallery-item img{object-fit:contain;width:100%;height:auto;max-height:900px;display:block}.project-gallery-item figcaption{letter-spacing:.3px;color:var(--muted);justify-content:space-between;gap:15px;padding:14px 16px;font-size:10px;display:flex}.project-gallery-item figcaption span:last-child{text-align:right}.project-next{border-top:1px solid var(--line);flex-direction:column;justify-content:space-between;min-height:225px;margin-top:35px;padding:28px 20px;display:flex}.project-next>span:last-child{text-transform:uppercase;justify-content:space-between;align-items:center;gap:20px;font-family:Barlow Condensed,Impact,sans-serif;font-size:clamp(34px,5vw,76px);display:flex}.project-next b{color:var(--accent);font-family:Arial,sans-serif;font-size:.7em;font-weight:400}.project-next:hover>span:last-child{color:var(--accent)}.custom-cursor{z-index:9999;border:1px solid var(--accent);pointer-events:none;opacity:0;color:#14180b;letter-spacing:.4px;white-space:nowrap;will-change:transform;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font:700 9px DM Sans,Arial,sans-serif;transition:width .18s,height .18s,background .18s,opacity .18s;display:flex;position:fixed;top:0;left:0}.custom-cursor.is-visible{opacity:1}.custom-cursor.is-active{background:var(--accent);width:65px;height:65px}.custom-cursor.is-pressed{width:52px;height:52px}@media (hover:hover) and (pointer:fine){html.has-custom-cursor,html.has-custom-cursor *{cursor:none!important}}@media (max-width:760px){.project-shell{border-left:0;border-right:0;display:block}.project-aside{border-right:0;max-height:none;padding:28px 0 38px;position:static;overflow:visible}.project-aside-label{margin-top:40px}.project-aside h1{font-size:64px}.project-gallery{padding:0}.project-gallery-item figcaption{flex-direction:column;gap:6px}.project-gallery-item figcaption span:last-child{text-align:left}.project-next{padding-left:0;padding-right:0}}@media (prefers-reduced-motion:reduce){.custom-cursor{display:none!important}}@media print{.custom-cursor{display:none!important}}
html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
html.lenis{scroll-behavior:auto!important}.scroll-effects:before{content:"";background:var(--accent);height:3px;transform:scaleX(var(--page-progress,0));transform-origin:0;z-index:4999;pointer-events:none;position:fixed;inset:0 0 auto}.scroll-effects .hero{overflow:clip}.scroll-effects .hero h1{transform:translate3d(var(--hero-left,0px),0,0);will-change:transform}.scroll-effects .hero h1>span{transform:translate3d(var(--hero-right,0px),0,0);will-change:transform;display:inline-block}.scroll-effects .feature-art>img{transform:translate3d(0,var(--image-y,0px),0) scale(1.24);will-change:transform}.scroll-effects .feature-art:hover>img{transform:translate3d(0,var(--image-y,0px),0) scale(1.27)}.scroll-effects .intro-section h2{transform:translate3d(0,var(--copy-y,0px),0);will-change:transform}.scroll-effects .project-card{transform:translate3d(0,var(--card-y,0px),0);will-change:transform}.scroll-effects .project-image img{transform:translate3d(0,var(--image-y,0px),0) scale(1.18);will-change:transform}.scroll-effects .project-card:hover .project-image img{transform:translate3d(0,var(--image-y,0px),0) scale(1.21)}.scroll-effects .project-gallery-item{transform:scale(var(--gallery-scale,1));transform-origin:50%;will-change:transform}.scroll-effects .work-heading{overflow:clip}.scroll-effects .work-heading h1{transform:translate3d(var(--work-heading-x,0px),0,0);will-change:transform}.scroll-effects .work-section-intro h2{transform:translate3d(0,var(--work-title-y,0px),0);will-change:transform}.scroll-effects .case-row{transform:translate3d(0,var(--work-row-y,0px),0);opacity:var(--work-row-opacity,1);will-change:transform,opacity}@media (prefers-reduced-motion:reduce){.scroll-effects:before{display:none}.scroll-effects .hero h1,.scroll-effects .hero h1>span,.scroll-effects .feature-art>img,.scroll-effects .intro-section h2,.scroll-effects .project-card,.scroll-effects .project-image img,.scroll-effects .project-gallery-item,.scroll-effects .work-heading h1,.scroll-effects .work-section-intro h2,.scroll-effects .case-row{transform:none!important}.scroll-effects .case-row{opacity:1!important}}@media print{.scroll-effects:before{display:none}}
