*,:before,:after{box-sizing:border-box;border:0 solid;margin:0;padding:0}html{-webkit-text-size-adjust:100%;line-height:1.5}h1,h2,h3,h4{font-size:inherit;font-weight:inherit}img,svg{vertical-align:middle;display:block}img{max-width:100%;height:auto}:root{--paper:#151512;--ink:#f4f3ee;--accent-global:#d6ff32;font-synthesis:none;--rgb-r-y:0px;--rgb-r-b:0px;--rgb-y-y:0px;--rgb-y-b:0px;--rgb-t-y:0px;--rgb-t-b:0px;--rgb-b-y:0px;--rgb-b-b:0px;--rgb-alpha:0;--grid-parallax-y:0px}html,body{background:var(--paper);min-width:320px;color:var(--ink);font-family:var(--font-body,"Inter", sans-serif);letter-spacing:-.01em;margin:0;font-weight:300}h1,h2,h3,.logo{font-family:var(--font-title,"Inter Tight", sans-serif);letter-spacing:-.06em;font-weight:500}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}.page-grid{z-index:0;pointer-events:none;background-image:linear-gradient(90deg,#ffffff0f 1px,#0000 1px),linear-gradient(#ffffff0f 1px,#0000 1px);background-size:4vw 4vw;background-position:0px calc(var(--grid-parallax-y)), 0px calc(var(--grid-parallax-y));position:fixed;inset:0;-webkit-mask-image:linear-gradient(90deg,#000 0%,#0000 15% 85%,#000 100%);mask-image:linear-gradient(90deg,#000 0%,#0000 15% 85%,#000 100%)}.splash{z-index:100;background:var(--paper);height:100dvh;color:var(--ink);justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.splash-progress{transform-origin:0;will-change:transform, box-shadow;background:#fff;width:100%;height:1px;position:absolute;bottom:0;left:0;transform:scaleX(0)}.splash-center{align-items:flex-end;display:flex}.counter-wrap{height:clamp(4rem,10vw,12rem);font-size:clamp(4rem,10vw,12rem);font-weight:500;line-height:1;font-family:var(--font-title);display:flex;overflow:hidden}.counter-column{will-change:transform;flex-direction:column;height:max-content;display:flex}.counter-num{flex-shrink:0;justify-content:flex-end;align-items:center;height:clamp(4rem,10vw,12rem);display:flex}.rgb-loader{text-shadow:0 2px 5px #ffdc0099,0 -2px 5px #00c8ff99,0 6px 12px #ff32004d,0 -6px 12px #0032ff4d}.rgb-title{text-shadow:0 var(--rgb-y-y) var(--rgb-y-b) rgba(255, 220, 0, var(--rgb-alpha)), 0 var(--rgb-t-y) var(--rgb-t-b) rgba(0, 200, 255, var(--rgb-alpha)), 0 var(--rgb-r-y) var(--rgb-r-b) rgba(255, 50, 0, var(--rgb-alpha)), 0 var(--rgb-b-y) var(--rgb-b-b) rgba(0, 50, 255, var(--rgb-alpha));transition:text-shadow 50ms linear;position:relative}.nav{z-index:10;border-bottom:1px solid #fff;grid-template-columns:1fr auto 1fr;align-items:center;height:84px;padding:0 12vw;display:grid;position:relative}.logo{letter-spacing:-.15em;width:fit-content;font-size:25px;font-weight:600;line-height:1}.logo span{color:var(--accent-global)}.nav-links{gap:34px;font-size:13px;display:flex}.nav-links a,.socials a{position:relative}.nav-links a:after,.socials a:after{content:"";transform-origin:100%;background:currentColor;width:100%;height:1px;transition:transform .35s;position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.nav-links a:hover:after,.socials a:hover:after{transform-origin:0;transform:scaleX(1)}.availability{justify-self:end;align-items:center;gap:9px;font-size:12px;display:flex}.availability span{background:#55bc56;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse}.eyebrow,.contact-kicker,.resume-heading>span{text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:600}.hero{text-align:left;flex-direction:column;align-items:flex-start;min-height:calc(100svh - 84px);padding:7vh 12vw 4vh;display:flex;position:relative;overflow:hidden}.hero h1{z-index:2;flex-direction:column;width:100%;margin:auto 0;display:flex;position:relative}.hero-first{letter-spacing:-.05em;font-size:7.5vw;font-weight:700;line-height:1}.hero-last{color:var(--accent-global);letter-spacing:-.08em;margin-left:-.04em;font-size:15vw;font-weight:700;line-height:.75}.hero-decoration{object-fit:contain;pointer-events:none;z-index:1;width:clamp(100px,25vw,400px);height:clamp(100px,25vw,400px);position:absolute;top:7vh;right:12vw}.hero-bottom{z-index:2;flex-direction:row;justify-content:space-between;align-items:flex-end;width:100%;display:flex;position:relative}.hero-bottom p{letter-spacing:-.03em;max-width:420px;margin:0;font-size:clamp(17px,1.5vw,22px);line-height:1.35}.scroll-hint{text-transform:uppercase;letter-spacing:.12em;opacity:.6;align-items:center;gap:15px;font-size:10px;display:flex}.scroll-hint span{font-size:20px}.work{flex-direction:column;height:100dvh;padding:100px 12vw 80px;display:flex;overflow:hidden}.work .section-intro{z-index:10;grid-template-columns:14vw 1fr auto;align-items:end;margin-bottom:20px;display:grid;position:relative}.work .section-intro h2{text-transform:none;letter-spacing:-.1em;margin:0;font-size:clamp(3.5rem,7.2vw,7rem);font-weight:700;line-height:.9}.work .section-intro p{text-align:right;margin:0;line-height:1.5}.project-list{flex-grow:1;width:100%;position:relative}.project-card{cursor:pointer;outline:none;padding:20px 0;position:absolute;inset:0}.project-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.project-meta{text-transform:uppercase;letter-spacing:.12em;color:#b5b4ad;z-index:10;grid-template-columns:14vw 1fr auto;font-size:11px;display:grid;position:relative}.project-stage{perspective:1000px;place-items:center;height:100%;min-height:610px;display:grid;position:relative}.project-title-mover{z-index:5;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.project-title{text-align:center;letter-spacing:-.1em;color:var(--ink);text-shadow:0 var(--rgb-y-y) var(--rgb-y-b) rgba(255, 220, 0, var(--rgb-alpha)), 0 var(--rgb-t-y) var(--rgb-t-b) rgba(0, 200, 255, var(--rgb-alpha)), 0 var(--rgb-r-y) var(--rgb-r-b) rgba(255, 50, 0, var(--rgb-alpha)), 0 var(--rgb-b-y) var(--rgb-b-b) rgba(0, 50, 255, var(--rgb-alpha));background-position:50%;background-size:cover;font-size:clamp(5rem,13vw,13rem);font-weight:700;line-height:.75;transition:color .3s,transform .5s,text-shadow 50ms linear}.project-card:hover .project-title,.project-card:focus .project-title{background-image:var(--thumb-url);color:#0000;text-shadow:none;-webkit-background-clip:text;background-clip:text;transform:scale(1.04)}.project-object-mover{z-index:999;pointer-events:none;position:relative}.project-object-wrap{--rx:-8deg;--ry:12deg;width:clamp(210px,35vw,500px);height:clamp(210px,35vw,500px);transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry));place-items:center;transition:transform .14s ease-out;display:grid}.object{justify-content:center;align-items:center;width:100%;height:100%;transition:transform .65s cubic-bezier(.16,1,.3,1),opacity .4s,filter .4s;display:flex;position:relative}.object img{object-fit:contain;filter:drop-shadow(20px 25px 25px #00000080);width:100%;height:100%}.object-fallback{background:#333330;border-radius:50%;width:70%;height:70%;box-shadow:inset 10px 10px 20px #ffffff0d}.project-card:hover .object,.project-card:focus .object{transform:rotate(-5deg)scale(.85)}.project-carousel{z-index:30;opacity:0;pointer-events:none;align-items:center;display:flex;position:absolute;inset:15% 0;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 15% 85%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 15% 85%,#0000 100%)}.carousel-track{will-change:transform;align-items:center;gap:5vw;width:max-content;height:100%;padding-left:45vw;padding-right:45vw;display:flex}.carousel-item{flex-direction:column;flex-shrink:0;justify-content:center;display:flex}.c-img-landscape{aspect-ratio:16/9;object-fit:cover;background:#222;border-radius:4px;height:60vh}.c-img-portrait{aspect-ratio:9/16;object-fit:cover;background:#222;border-radius:4px;height:60vh}.c-text{color:#aaa9a3;width:380px;font-size:14px;line-height:1.5}.c-text h4{font-family:var(--font-title);color:var(--ink);letter-spacing:-.04em;margin:0 0 15px;font-size:24px;font-weight:500}.c-video{color:#fff;background:#111;place-items:center;font-size:30px;display:grid}.project-hint{color:#777770;text-align:right;text-transform:uppercase;letter-spacing:.13em;font-size:9px}.hint-touch{display:none}.services{padding:140px 12vw 110px}.services .section-intro{justify-content:space-between;align-items:flex-end;margin-bottom:20px;display:flex}.services .section-intro h2{letter-spacing:-.1em;margin:0;font-size:clamp(3.5rem,7.2vw,7rem);font-weight:700;line-height:.9}.services .section-intro p{color:#aaa9a3;text-align:right;margin:0;line-height:1.5}.services-grid{border-top:1px solid #ffffff26;margin-top:60px;display:flex}.service-column{cursor:crosshair;border-right:1px solid #ffffff26;flex-direction:column;flex:1;min-height:500px;padding:40px 30px;display:flex;position:relative;overflow:hidden}.service-column:last-child{border-right:none}.service-col-top{z-index:2;flex-direction:column;height:100%;display:flex;position:relative}.service-num{font-family:var(--font-title);color:#fff6;margin-bottom:40px;font-size:14px;font-weight:700;transition:color .4s}.service-column:hover .service-num{color:var(--accent-global)}.service-title{letter-spacing:-.06em;color:var(--ink);margin:0 0 20px;font-size:clamp(2rem,3.5vw,3rem);font-weight:700;line-height:1.1;transition:color .4s}.service-column:hover .service-title{color:var(--accent-global)}.service-desc{color:#aaa9a3;max-width:95%;margin:0 0 30px;font-size:14px;line-height:1.5}.service-skills{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.service-column .skill-pill{text-transform:uppercase;letter-spacing:.1em;color:#fff;background:#0006;border:1px solid #ffffff26;border-radius:4px;padding:6px 14px;font-size:10px}.service-image-wrap{z-index:1;position:absolute;inset:0;overflow:hidden}.service-image-wrap img{object-fit:cover;filter:saturate(0)opacity(.3);width:100%;height:100%;transition:transform .6s cubic-bezier(.19,1,.22,1);transform:translateY(100%)}.service-column:hover .service-image-wrap img{transform:translateY(0)}.resume{padding:110px 12vw}.resume-heading{text-align:left;grid-template-columns:14vw 1fr;align-items:start;margin-bottom:90px;display:grid}.resume-heading h2{letter-spacing:-.12em;margin:-.13em 0 0;font-size:clamp(4.5rem,11vw,10.5rem);font-weight:700;line-height:.9}.resume-heading h2 span{color:var(--accent-global)}.experience-list{border-top:1px solid var(--ink)}.experience-row{border-bottom:1px solid #333330;flex-direction:column;justify-content:center;padding:25px 0;transition:padding .25s,background .25s;display:flex}.experience-row:hover{background:#1f1f1c;padding:25px 18px}.experience-main{grid-template-columns:7vw 35% 1fr auto;align-items:center;gap:20px;width:100%;display:grid}.experience-main>span,.experience-main time{letter-spacing:.1em;text-transform:uppercase;font-size:10px}.experience-main h3{margin:0;font-size:clamp(22px,2.6vw,38px);font-weight:500;line-height:1}.experience-main p{margin:0;font-size:14px}.experience-desc{grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.4,0,.2,1);display:grid}.experience-row:hover .experience-desc{grid-template-rows:1fr}.experience-desc-inner{color:#aaa9a3;font-size:14px;line-height:1.5;overflow:hidden}.experience-desc-inner p{max-width:600px;margin:15px 0 0 7vw;padding-right:20px}.resume-foot{text-align:left;grid-template-columns:1fr auto;align-items:end;gap:4vw;margin:80px 0 0;display:grid}.resume-foot p{margin:0;font-size:clamp(22px,2.6vw,38px);font-weight:300;line-height:1.25}.resume-foot a{white-space:nowrap;border-bottom:1px solid;align-items:center;gap:12px;padding-bottom:6px;font-size:12px;display:flex}.contact{grid-template-columns:.9fr 1.1fr;align-items:center;gap:6vw;padding:100px 12vw;display:grid}.portrait-wrap{min-height:500px;position:relative;overflow:hidden}.portrait-wrap img{object-fit:cover;object-position:center;filter:saturate(.9)contrast(1.08);width:100%;height:100%;transition:transform .8s cubic-bezier(.16,1,.3,1)}.portrait-wrap:hover img{transform:scale(1.03)}.portrait-sticker{color:#151512;background:#d6ff32;border-radius:50%;place-items:center;width:95px;height:95px;font-size:20px;font-weight:500;display:grid;position:absolute;top:10%;right:8%;transform:rotate(9deg)}.contact-copy{flex-direction:column;justify-content:center;display:flex}.contact-copy h2{letter-spacing:-.11em;margin:auto 0;font-size:clamp(4rem,7vw,7.2rem);font-weight:700;line-height:.87}.contact-copy h2 em{letter-spacing:0;font-family:Georgia,serif;font-weight:400}.email-link{border-bottom:2px solid;align-items:center;gap:18px;width:fit-content;margin-bottom:65px;padding-bottom:8px;font-size:clamp(18px,2vw,28px);display:flex}.email-link svg{width:25px}.resume-foot a svg{width:18px}.socials{gap:30px;font-size:12px;display:flex}footer{letter-spacing:.1em;text-transform:uppercase;grid-template-columns:1fr 1fr 1fr;align-items:center;min-height:90px;padding:0 12vw;font-size:10px;display:grid}footer span:nth-child(2){text-align:center}footer a{text-align:right}@keyframes pulse{50%{box-shadow:0 0 0 5px #55bc5630}}@media (width<=800px){.nav{grid-template-columns:1fr auto;height:70px;padding:0 20px}.nav-links{display:none}.availability{font-size:10px}.hero{min-height:calc(100svh - 70px);padding:9vh 20px 30px}.hero-first{font-size:10vw}.hero-last{font-size:20vw}.hero-decoration{width:30vw;height:30vw;top:9vh;right:20px}.services{padding:80px 20px}.services-grid{border:none;flex-direction:column}.service-column{border-bottom:1px solid #ffffff26;border-right:none;min-height:400px;padding:30px 10px}.service-column:last-child{border-bottom:none}.resume,.contact{padding:70px 20px}.work{padding:70px 20px 24px}.section-intro{grid-template-columns:auto 1fr;gap:24px}.work .section-intro p{display:none}.section-intro h2{font-size:3.2rem}.project-card{flex-direction:column;padding:12px 0 0;display:flex}.project-stage{flex:1;height:auto;min-height:0}.project-carousel{top:6%;bottom:6%}.c-img-landscape,.c-img-portrait{height:50dvh}.c-text{width:min(380px,78vw)}.project-meta{grid-template-columns:55px 1fr auto}.project-title{font-size:clamp(4rem,21vw,7rem)}.project-object-wrap{width:260px;height:260px}.carousel-track{padding-left:20px;padding-right:20px}.resume-heading{margin-bottom:50px;display:block}.resume-heading h2{margin-top:20px;font-size:clamp(4rem,20vw,7rem)}.experience-main{grid-template-columns:40px 1fr auto;gap:8px}.experience-main p{display:none}.experience-desc-inner p{margin-left:40px}.resume-foot{grid-template-columns:1fr;align-items:start;gap:30px;margin:60px 0 0}.resume-foot a{width:fit-content}.contact{grid-template-columns:1fr;gap:40px}.portrait-wrap{min-height:460px}.contact-copy{min-height:unset;padding:20px 0}.contact-copy h2{font-size:clamp(3.8rem,17vw,6rem)}footer{grid-template-columns:1fr 1fr;gap:20px;padding:28px 20px}footer span:nth-child(2){display:none}}@media (hover:none) and (pointer:coarse){html.scroll-locked,html.scroll-locked body{overscroll-behavior:none;touch-action:none;overflow:hidden}.hint-pointer{display:none}.hint-touch{display:inline}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}.splash{display:none}}
