@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)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?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)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?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)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?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)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?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)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_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)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 Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)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 Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)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 Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)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 Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@font-face{font-family:Michroma;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ac41ccbdfd25c928-s.0j9pqkz3er-71.woff2?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)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:Michroma;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fe83cf2ab39e9c57-s.p.2qpii4b6jmzj9.woff2?dpl=dpl_2NKhT6RXbtahLcCKtMWqKE7vhsbF)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:Michroma Fallback;src:local(Arial);ascent-override:81.64%;descent-override:18.76%;line-gap-override:0.0%;size-adjust:141.62%}.michroma_b9eeaa69-module__I8TjCW__className{font-family:Michroma,Michroma Fallback;font-style:normal;font-weight:400}.michroma_b9eeaa69-module__I8TjCW__variable{--font-michroma:"Michroma", "Michroma Fallback"}
*{box-sizing:border-box;margin:0;padding:0}html,body{color:#cfc4b0;height:100%;font-family:var(--font-geist-mono), ui-monospace, Menlo, monospace;background:#0c0b0a;overflow:hidden}.stage{width:100vw;height:100dvh;display:flex;position:relative}.hero-name{z-index:10;font-family:var(--font-michroma), sans-serif;color:#d8d8d8;font-size:clamp(24px,2.55vw,44px);font-weight:400;text-decoration:none;position:absolute;top:14px;left:28px}.hero-nav{z-index:10;font-family:var(--font-michroma), sans-serif;color:#d8d8d8;gap:.55em;font-size:clamp(16px,1.88vw,33px);display:flex;position:absolute;top:23px;right:35px}.hero-nav a{color:inherit;text-decoration:none}.hero-nav a[aria-current=page]{font-weight:700}@media (max-width:760px){.hero-name,.hero-nav{font-size:13px;top:18px}}.content-layer{z-index:5;transition:opacity .22s;position:absolute;inset:0}.content-layer.leaving{opacity:0}.page{scrollbar-width:none;height:100%;animation:.45s both page-in;overflow-y:auto}.page::-webkit-scrollbar{display:none}.page:not(.work-page){-webkit-mask-image:linear-gradient(#0000 70px,#000 145px);mask-image:linear-gradient(#0000 70px,#000 145px)}.page-inner{max-width:900px;margin-inline:auto;padding:130px clamp(28px,10vw,160px) 72px}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.page h2{font-family:var(--font-michroma), sans-serif;color:#d8d8d8;margin-bottom:28px;font-size:clamp(20px,1.8vw,30px);font-weight:400}.about-photo{float:right;object-fit:cover;margin:0 0 16px 24px;display:block}.page p{color:#a3a3a3;max-width:700px;margin-bottom:16px;font-size:14px;line-height:1.7}.page h4{font-family:var(--font-michroma), sans-serif;color:#d8d8d8;font-size:clamp(14px,1.1vw,18px);font-weight:400}.page h4 a{color:inherit;text-decoration:none}.about-links{justify-content:space-between;width:100%;max-width:700px;display:flex}.resume-row{align-items:center;gap:8px;display:flex}.copy-resume-btn{color:#7c7c7c;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;padding:3px;transition:color .15s,border-color .15s;display:flex;position:relative;top:3px}button.copy-resume-btn:hover{color:#d8d8d8;background:0 0;border-color:#6a6a6a}.copy-resume-btn svg{flex-shrink:0}@media (max-width:760px){.page:not(.work-page){-webkit-mask-image:linear-gradient(#0000 65px,#000 130px calc(100% - 44px),#0000 calc(100% - 12px));mask-image:linear-gradient(#0000 65px,#000 130px calc(100% - 44px),#0000 calc(100% - 12px))}.copy-resume-btn{position:relative;top:5px}.copy-resume-btn svg{width:12.75px;height:12.75px}}.dune-wrap{flex:1;min-width:0;height:100%;position:relative}.dune-wrap canvas{width:100%;height:100%;display:block}.scanlines{pointer-events:none;opacity:0;background:repeating-linear-gradient(#0000 0 2px,#0000008c 3px,#0000 4px);position:absolute;inset:0}.vignette{pointer-events:none;opacity:0;background:radial-gradient(at 40% 45%,#0000 45%,#000000d9 100%);position:absolute;inset:0}.tuner{background:#12100d;border-left:1px solid #2a251e;flex-direction:column;flex-shrink:0;width:340px;height:100%;font-size:12px;display:flex}.tuner-head{justify-content:space-between;align-items:baseline;padding:14px 14px 8px;display:flex}.tuner-head h1{letter-spacing:.08em;color:#e8d9bb;font-size:14px;font-weight:600}.stats{color:#6f6455;font-size:10px}.transport{flex-wrap:wrap;gap:6px;padding:0 14px 10px;display:flex}.transport button{white-space:nowrap;flex:auto}button,select,input[type=text],input[type=number]{color:#d8cbb2;background:#1d1913;border:1px solid #332c22;border-radius:4px;padding:5px 8px;font-family:inherit;font-size:11px}button{cursor:pointer}button:hover{background:#2a2418;border-color:#4a3f2e}button.mini{padding:3px 8px}.tabs{border-top:1px solid #2a251e;border-bottom:1px solid #2a251e;margin-top:4px;display:flex}.tab{color:#7c7060;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:8px 2px}.tab:hover{color:#cfc4b0;background:#1a1712}.tab.active{color:#f0dfba;background:#171410;border-bottom-color:#d8d8d8}.controls{flex-direction:column;flex:1;gap:9px;padding:12px 14px 24px;display:flex;overflow-y:auto}.controls::-webkit-scrollbar{width:8px}.controls::-webkit-scrollbar-thumb{background:#2e281f;border-radius:4px}.row{align-items:center;gap:8px;padding:0 14px;display:flex}.controls .row{padding:0}.row-label{color:#a3947c;cursor:default;flex-shrink:0;width:108px;font-size:11px}.row input[type=range]{accent-color:#d8d8d8;flex:1;min-width:0;height:14px}.row input[type=text],.row input[type=number]{flex:1;min-width:0}.row input[type=color]{cursor:pointer;background:0 0;border:1px solid #332c22;border-radius:4px;width:42px;height:24px;padding:0}.row select{flex:1;min-width:0}.val{text-align:right;color:#6f6455;font-variant-numeric:tabular-nums;flex-shrink:0;width:52px;font-size:10px}.theme-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.theme-card{cursor:pointer;text-align:left;border:1px solid #332c22;border-radius:6px;align-items:center;gap:8px;padding:9px 10px;display:flex}.theme-card:hover{filter:brightness(1.2);border-color:#4a3f2e}.theme-card.active{border-color:#d8d8d8;box-shadow:0 0 0 1px #d8d8d8}.swatches{flex-shrink:0;gap:3px;display:flex}.swatches i{border-radius:50%;width:10px;height:10px;display:block}.theme-name{letter-spacing:.03em;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.section-label{color:#6f6455;text-transform:uppercase;letter-spacing:.09em;border-top:1px solid #2a251e;margin-top:8px;padding-top:10px;font-size:9px}.hue-slider{appearance:none;background:linear-gradient(90deg,#e05252,#e0c452,#7ee052,#52e0c4,#5285e0,#b052e0,#e05252);border-radius:5px;height:10px!important}.hue-slider::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border:2px solid #12100d;border-radius:50%;width:14px;height:14px}@media (max-width:760px){.stage{flex-direction:column}.tuner{border-top:1px solid #2a251e;border-left:none;width:100%;height:45%}}.work-page{display:flex;position:relative;overflow:hidden}.work-sidebar{scrollbar-width:none;flex:0 0 250px;height:100%;padding:130px 20px 40px 28px;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 70px,#000 145px);mask-image:linear-gradient(#0000 70px,#000 145px)}.work-sidebar::-webkit-scrollbar{display:none}.work-sidebar ul{list-style:none}.work-nav-btn{text-align:left;width:100%;font-family:var(--font-geist-mono), ui-monospace, monospace;color:#6e6e6e;background:0 0;border:none;border-radius:0;padding:11px 0;font-size:14px;display:block}.work-nav-btn:hover{color:#a3a3a3;background:0 0}.work-nav-btn.active{color:#d1d1d1}.work-scroller{scroll-snap-type:x mandatory;scrollbar-width:none;flex:1;min-width:0;height:100%;transition:opacity .22s;display:flex;overflow:auto hidden}.work-scroller.switching{opacity:0}.work-scroller::-webkit-scrollbar{display:none}.work-column{scroll-snap-align:start;scrollbar-width:none;flex:0 0 100%;width:100%;height:100%;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 70px,#000 145px);mask-image:linear-gradient(#0000 70px,#000 145px)}.work-column::-webkit-scrollbar{display:none}.work-column-inner{max-width:900px;margin-inline:auto;padding:130px clamp(28px,6vw,90px) 72px}.work-para{color:#a3a3a3;max-width:700px;margin-bottom:16px;font-size:14px;line-height:1.75}.work-para--bold{color:#cfc4b0;font-weight:700}.work-para a{color:#d8d8d8;text-underline-offset:2px;-webkit-text-decoration:underline #d8d8d866;text-decoration:underline #d8d8d866;transition:color .15s,text-decoration-color .15s}.work-para a:hover{color:#fff;text-decoration-color:#ffffffb3}.work-media{flex-direction:column;gap:22px;margin-top:30px;display:flex}.work-figure{width:100%;margin:0;display:block}.work-figure--tall{max-width:320px}.work-figure-btn{text-align:left;cursor:zoom-in;background:0 0;border:1px solid #2a251e;border-radius:6px;width:100%;padding:0;display:block;overflow:hidden}.work-figure-btn:hover{background:0 0;border-color:#4a4336}.work-figure img{width:100%;height:auto;display:block}.work-figure-caption{color:#7a7264;text-align:center;margin-top:8px;font-size:12px}.work-media--mosaic{columns:3;column-gap:10px;display:block}.work-media--mosaic .work-figure{break-inside:avoid;margin-bottom:10px}.work-figure--group{width:100%}.work-media--row5{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.work-media--row5 .work-figure{margin:0}@media (max-width:760px){.work-media--row5{gap:6px}}.work-figure video{width:100%;height:auto;display:block}@media (max-width:760px){.work-media--mosaic{columns:2;column-gap:8px}.work-media--mosaic .work-figure{margin-bottom:8px}}.work-video-facade,.work-video-frame{aspect-ratio:16/9;background:#0a0908;border:1px solid #2a251e;border-radius:6px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.work-video-facade{cursor:pointer;text-align:left}.work-video-facade img{object-fit:cover;filter:brightness(.85);width:100%;height:100%;transition:filter .25s;display:block}.work-video-facade:hover{background:#0a0908;border-color:#4a4336}.work-video-facade:hover img{filter:brightness()}.work-video-play{color:#d8d8d8;font-family:var(--font-geist-mono), ui-monospace, monospace;white-space:nowrap;font-size:22px;transition:color .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.work-video-facade:hover .work-video-play{color:#fff}.work-video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.work-tabbar{display:none}.work-lightbox{z-index:50;cursor:zoom-out;background:#060504ed;justify-content:center;align-items:center;padding:40px;animation:.2s both page-in;display:flex;position:fixed;inset:0}.work-lightbox img{object-fit:contain;cursor:default;width:auto;max-width:100%;height:auto;max-height:100%}.work-lightbox-caption{text-align:center;color:#b8b0a2;cursor:default;font-size:13px;position:absolute;bottom:24px;left:0;right:0}.work-lightbox-close{color:#d8d8d8;cursor:pointer;background:0 0;border:none;border-radius:0;padding:2px 12px;font-size:34px;line-height:1;position:absolute;top:14px;right:20px}.work-lightbox-close:hover{color:#fff;background:0 0}@media (max-width:760px){.work-sidebar{display:none}.work-column{-webkit-mask-image:linear-gradient(#0000 95px,#000 130px calc(100% - 44px),#0000 calc(100% - 12px));mask-image:linear-gradient(#0000 95px,#000 130px calc(100% - 44px),#0000 calc(100% - 12px))}.work-column-inner{padding:130px clamp(22px,7vw,48px) 80px}.work-tabbar{top:calc(58px + env(safe-area-inset-top));z-index:8;pointer-events:none;padding:14px 0;display:block;position:absolute;left:0;right:0;overflow:hidden}.work-tab-track{will-change:transform;gap:52px;width:max-content;display:flex}.work-tab{pointer-events:auto;font-family:var(--font-geist-mono), ui-monospace, monospace;color:#d1d1d1;white-space:nowrap;background:0 0;border:none;border-radius:0;padding:0;font-size:13px}.work-tab:hover{background:0 0}.work-page.single-project .work-column{-webkit-mask-image:linear-gradient(#0000 60px,#000 130px);mask-image:linear-gradient(#0000 60px,#000 130px)}.work-page.single-project .work-column-inner{padding-bottom:72px}}
