*,: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;position:relative}.availability-dot{background:#55bc56;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse}.eyebrow,.contact-kicker,.resume-heading>span,.resume-downloads-label{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:clamp(48px,11vh,100px) 12vw clamp(20px,8.8vh,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,min(7.2vw,12.5vh),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;flex-direction:column;padding:20px 0;display:flex;position:absolute;inset:0}.project-card:focus-visible{outline:2px solid var(--accent-global);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;flex:1;place-items:center;min-height:0;display:grid;position:relative;container-type:size}.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));font-size:clamp(5rem,min(13vw,38cqh),13rem);font-weight:700;line-height:.75;transition:transform .5s,text-shadow 50ms linear,opacity .3s}.project-card:hover .project-title,.project-card:focus .project-title{text-shadow:none;opacity:.5;transform:scale(1.04)}.project-object-mover{z-index:4;pointer-events:none;position:relative}.project-object-wrap{--rx:-8deg;--ry:12deg;width:min(clamp(210px,35vw,500px),90cqh);height:min(clamp(210px,35vw,500px),90cqh);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:48px 0 -24px;-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%);container-type:size}.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:100cqh}.c-img-portrait{aspect-ratio:9/16;object-fit:cover;background:#222;border-radius:4px;height:100cqh}.c-text{color:#aaa9a3;text-align:justify;text-justify:inter-word;-webkit-hyphens:auto;hyphens:auto;background:#ffffff06;border:1px solid #ffffff1a;border-radius:4px;flex-direction:column;justify-content:space-between;gap:28px;width:clamp(340px,104cqh,560px);height:100cqh;padding:clamp(28px,7.3cqh,44px);font-size:clamp(15px,3.5cqh,21px);line-height:1.7;display:flex;overflow:hidden}.c-text h4{font-family:var(--font-title);color:var(--ink);letter-spacing:-.05em;text-align:left;margin:0;font-size:clamp(26px,6.3cqh,42px);font-weight:500;line-height:1.05}.c-text p{margin:0}.c-video{color:#fff;background:#111;place-items:center;font-size:30px;display:grid}.c-video-frame{background:#000;position:relative;overflow:hidden}.c-video-frame iframe{pointer-events:none;border:0;width:100%;height:100%;position:absolute;inset:0}.c-video-shield{cursor:pointer;color:#fff;background:50%/cover no-repeat;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.c-video-shield:focus-visible{outline:2px solid var(--accent-global);outline-offset:-4px}.c-video-shield:before,.c-video-shield:after{content:"";transition:opacity .3s,transform .3s;position:absolute;top:50%;left:50%}.c-video-shield:after{-webkit-backdrop-filter:blur(6px);background:#15151273;border:1px solid #ffffffb3;border-radius:50%;width:72px;height:72px;margin:-36px 0 0 -36px}.c-video-shield:before{z-index:1;border:10px solid #0000;border-left:17px solid #fff;border-right-width:0;margin:-10px 0 0 -6px}.c-video-shield:hover:after{transform:scale(1.08)}.c-video-shield[data-playing=true]:before,.c-video-shield[data-playing=true]:after{opacity:0}.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;transition:color .25s;display:flex}.resume-foot a:hover{color:var(--accent-global)}.resume-downloads{flex-direction:column;align-items:flex-start;gap:22px;display:flex}.resume-downloads-links{flex-wrap:wrap;gap:14px 36px;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)}.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;position:relative}.email-link svg{width:25px}.copy-note{white-space:nowrap;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-global);font-size:10px;font-weight:600;position:absolute;top:calc(100% + 12px);left:0}.availability .copy-note{top:calc(100% + 8px);left:auto;right:0}.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{padding:12px 0 0}.project-carousel{top:30px;bottom:-8px}.c-text{gap:20px;width:min(420px,86vw);padding:24px;font-size:15px;line-height:1.65}.c-text h4{font-size:26px}.project-meta{grid-template-columns:55px 1fr auto}.project-title{font-size:clamp(4rem,21vw,7rem)}.project-object-wrap{width:min(260px,90cqh);height:min(260px,90cqh)}.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 (width<=800px) and (height<=560px){.c-text{gap:12px;padding:16px}.c-text h4{font-size:20px}}@media (width<=800px) and (height<=700px){.c-text{gap:16px;padding:20px;font-size:14px;line-height:1.55}.c-text h4{font-size:24px}}@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}}
