@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
[hidden]{display:none!important}
/* A shared shell, with a single-screen home and dedicated content routes. */
body{isolation:isolate}.cursor-glow{position:fixed;left:0;top:0;width:0;height:0;pointer-events:none;z-index:-1;opacity:0;transition:opacity .5s}.cursor-glow::before{content:"";position:absolute;left:-240px;top:-240px;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,rgba(183,239,123,.085),rgba(126,170,116,.025) 43%,transparent 70%)}.cursor-glow.visible{opacity:1}.header,main,footer{position:relative}.home-page{height:100svh;overflow:hidden;display:flex;flex-direction:column}.home-page .header{height:86px;flex:0 0 86px}.home-page main{flex:1;min-height:0;display:flex}.home-page .hero{display:flex;flex-direction:column;align-items:center;flex:1;min-height:0;width:100%;padding:12px 0 16px}.home-page .intro{padding-top:0;flex-shrink:0}.home-page .intro .eyebrow{margin-bottom:13px}.home-page h1{font-size:clamp(38px,4.3vw,62px);margin-bottom:10px}.home-page .subtitle{font-size:15px}.home-page .workspace{flex:1;min-height:0;height:auto;width:min(890px,100%);margin:10px auto 4px}.home-page .workspace-controls{flex-shrink:0}.home-page .scene-caption{margin-top:9px;flex-shrink:0}.home-page .home-footer{flex:0 0 49px;padding:11px 0;min-height:49px}.content-page .work-section{padding-top:65px;padding-bottom:65px}.content-page .about-section{margin-top:45px;padding-top:45px}.content-page .offscreen{padding-top:65px}.content-page footer{margin-top:60px}.offscreen-note{margin-top:80px;padding-top:35px;padding-bottom:45px;border-top:1px solid var(--line)}.offscreen-note>p:not(.eyebrow){font-size:24px;color:#a9b4a1;letter-spacing:-.6px;margin-bottom:25px}.about-page .contact-section{margin-top:80px;padding-top:80px}.home-page #scene{background:transparent}
@media(min-width:1500px){.home-page .hero{padding-top:20px;padding-bottom:22px}.home-page .workspace{max-height:560px}.home-page main{align-items:center}.home-page .hero{height:100%}}
@media(max-height:730px) and (min-width:601px){.home-page .header{height:68px;flex-basis:68px}.home-page h1{font-size:44px}.home-page .intro .eyebrow{font-size:8px;margin-bottom:8px}.home-page .subtitle{font-size:13px}.home-page .hero{padding-top:3px;padding-bottom:6px}.home-page .scene-caption{font-size:10px;margin-top:6px}.home-page .home-footer{min-height:41px;flex-basis:41px;padding:8px 0}}
@media(max-width:600px){.home-page .header{height:72px;flex-basis:72px}.home-page .hero{padding-top:18px;padding-bottom:12px}.home-page h1{font-size:42px}.home-page .subtitle{font-size:12px}.home-page .intro .eyebrow{font-size:7px;margin-bottom:16px}.home-page .workspace{margin-top:0;margin-bottom:0}.home-page .home-footer{display:flex;min-height:47px;flex-basis:47px;font-size:8px;gap:10px}.home-page footer>div{margin:0;gap:14px;font-size:8px}.home-page .scene-caption{font-size:9px}.content-page .work-section,.content-page .offscreen{padding-top:38px}.content-page .about-section{margin-top:15px;padding-top:30px}.content-page footer{margin-top:30px}.offscreen-note{margin-top:40px}.offscreen-note>p:not(.eyebrow){font-size:21px}}
@media(max-height:620px) and (max-width:600px){.home-page .header{height:58px;flex-basis:58px}.home-page .hero{padding-top:4px;padding-bottom:5px}.home-page h1{font-size:33px}.home-page .intro .eyebrow{margin-bottom:8px;font-size:6px}.home-page .subtitle{font-size:11px}.home-page .home-footer{min-height:37px;flex-basis:37px}.home-page .mode-switch button{padding:5px 13px}.home-page .scene-caption{margin-top:5px}}
@media(prefers-reduced-motion:reduce),(pointer:coarse){.cursor-glow{display:none}}
:root{--bg:#101111;--ink:#eeefec;--muted:#939793;--line:#2a2d2a;--green:#b7ef7b;--mono:'DM Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 'DM Sans',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:6px}::selection{background:var(--green);color:var(--bg)}.wrap{width:min(1100px,calc(100% - 100px));margin-inline:auto}.mono,.eyebrow{font-family:var(--mono)}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:400;color:var(--muted);margin:0 0 22px;display:flex;gap:10px;align-items:center}.header{height:106px;display:flex;align-items:center;justify-content:space-between}.monogram{display:flex;align-items:center;gap:14px}.monogram svg{width:35px;height:29px;fill:none;stroke:var(--green);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.monogram span{font-size:10px;color:#8d918d;letter-spacing:1px}nav{display:flex;border:1px solid #303330;border-radius:30px;padding:4px;gap:4px}nav a{padding:6px 23px;font-size:12px;color:#a5a9a5;border-radius:24px;transition:.2s}nav a:hover,nav a.active{background:#252825;color:#eee}.contact-top{font-size:12px}.contact-top span{color:var(--green);margin-left:18px}.intro{text-align:center;padding-top:55px}.intro .eyebrow{justify-content:center}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 12px #b7ef7b45;flex-shrink:0}h1{font-size:64px;font-weight:500;letter-spacing:-3.5px;line-height:1.16;margin:0 0 17px}h1>span{color:var(--green)}.subtitle{font-size:17px;color:#969b96;letter-spacing:-.3px;margin:0}.mobile-break{display:none}.workspace{width:min(890px,100%);height:430px;margin:5px auto -1px;position:relative}#scene{display:block;width:100%;height:100%;position:relative;z-index:1;touch-action:pan-y}.scene-fallback{position:absolute;inset:25px 15%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(ellipse,#b7ef7b09,transparent 70%);color:var(--muted)}.scene-fallback>span{color:var(--green);font-size:70px}.scene-fallback p{margin:4px}.scene-fallback .mono{font-size:12px}.workspace-controls{display:flex;align-items:center;justify-content:center;gap:12px}.mode-switch{display:flex;padding:4px;background:#181b18;border:1px solid #2b302a;border-radius:25px;gap:2px}.mode-switch button{border:0;background:none;border-radius:20px;color:var(--muted);padding:7px 17px;font-size:11px;transition:.2s}.mode-switch button span{margin-right:6px}.mode-switch button.selected{background:#30382a;color:var(--green)}.mode-switch button:hover{color:#fff}.motion{height:31px;width:31px;border:1px solid #303330;border-radius:50%;background:none;color:#999;font-size:12px}.scene-caption{text-align:center;color:#737a73;font-size:11px;margin:13px 0 0}.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:8px;color:#9a9e98;font-size:9px;letter-spacing:2px;margin:49px auto 0;width:max-content}.scroll-cue span{font-size:20px;line-height:1;color:var(--green)}.work-section{padding-top:110px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:40px}h2{font-size:42px;font-weight:450;line-height:1.2;letter-spacing:-1.7px;margin:0}h2 span{color:#858d83}.text-link{font-size:12px;border-bottom:1px solid #4d5748;padding-bottom:5px;width:max-content;display:inline-block}.text-link:hover{color:var(--green)}.projects{display:grid;grid-template-columns:1fr 1fr;gap:56px 30px}.project{min-width:0}.project-art{height:300px;border:1px solid #2d332d;border-radius:12px;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;transition:transform .35s,border-color .35s}.project:hover .project-art{transform:translateY(-4px);border-color:#56604e}.project-info{padding:22px 2px;display:flex;justify-content:space-between;gap:15px}.project-type{font-size:9px;letter-spacing:1.5px;color:#888e86;margin:0 0 9px}h3{font-size:22px;font-weight:500;letter-spacing:-.5px;margin:0 0 10px}.project-info p:not(.project-type){color:#939a90;font-size:13px;line-height:1.7;max-width:400px;margin:0 0 17px}.tags{display:flex;gap:7px;flex-wrap:wrap}.tags span{font-size:9px;color:#a2ab9d;border:1px solid #30372d;border-radius:4px;padding:3px 8px}.project-arrow{font-size:24px;color:var(--green)}.detail-link{background:none;border:0;border-bottom:1px solid #424b3d;padding:0 0 3px;font-size:11px;margin-top:18px;color:#c5cfc0}.art-web{background:#292d26}.mini-browser{width:82%;background:#dedcd1;border-radius:6px;transform:perspective(800px) rotateY(-8deg) rotateX(5deg);box-shadow:16px 25px 40px #0004;overflow:hidden}.mini-bar{height:25px;background:#222722;display:flex;align-items:center;gap:4px;padding:0 10px}.mini-bar i{display:block;width:5px;height:5px;border-radius:50%;background:#64705f}.mini-bar i:first-child{background:#ac8374}.mini-bar i:nth-child(2){background:#b6a672}.mini-bar i:nth-child(3){background:#7d9b74}.mini-bar span{font:8px var(--mono);color:#909b8b;margin:auto}.editorial{height:207px;position:relative;padding:20px 23px;color:#41412e}.editorial>span{font-size:7px;letter-spacing:2px}.editorial p{font:32px/1.15 Georgia,serif;margin:24px 0}.editorial em{font-weight:400}.editorial small{font-size:5px;letter-spacing:1.2px}.room{position:absolute;right:0;bottom:0;width:47%;height:82%;background:#c9c4b4}.arch{position:absolute;top:12px;left:22px;width:87px;height:130px;border-radius:55px 55px 0 0;background:linear-gradient(120deg,#a6aa93,#ddd5bd);box-shadow:inset 9px 0 10px #0002}.sofa{position:absolute;bottom:15px;right:5px;width:125px;height:43px;border-radius:15px 15px 5px 5px;background:#6d7460;box-shadow:0 8px 10px #0002}.vase{position:absolute;bottom:33px;left:7px;width:20px;height:38px;background:#9e7453;border-radius:4px 4px 10px 10px}.art-caption{position:absolute;bottom:14px;font-size:7px;letter-spacing:1px;color:#a9b1a0}.art-voice{background:radial-gradient(ellipse at 50% 100%,#29382f,#1a211e)}.voice-window{width:83%;text-align:center;border:1px solid #465147;background:#18201c;border-radius:10px;padding:21px 13px;box-shadow:0 20px 40px #0004}.voice-window>p{font-size:7px;letter-spacing:1px;color:#a0baa1;display:flex;justify-content:center;align-items:center;gap:8px;margin:0}.voice-window h4{font-size:18px;font-weight:400;margin:8px 0 20px;letter-spacing:-.3px}.waveform{height:67px;display:flex;align-items:center;justify-content:center;gap:3px}.waveform i{display:block;width:3px;border-radius:5px;background:#a2dcb3}.voice-route{display:flex;align-items:center;justify-content:center;gap:11px;font-size:8px;color:#b3c7b4}.voice-route span{border:1px solid #405143;border-radius:4px;padding:5px 11px}.voice-route b{font-weight:400;color:#6a906d}.voice-note{display:block;font-size:6px;letter-spacing:1px;color:#738d78;margin-top:20px}.art-scanner{background:#1c2427}.terminal{background:#101719;width:85%;border:1px solid #3b4b50;transform:perspective(800px) rotateY(5deg) rotateX(3deg);border-radius:7px;overflow:hidden;box-shadow:0 18px 35px #0004}.terminal .mini-bar{background:#273136}.terminal-body{padding:15px 18px;font-size:8px;color:#a1adb1}.terminal-body p{margin:0 0 9px}.terminal-body p>span,.scan-end{color:#b7ef7b}.terminal-body .muted{color:#657579;font-size:7px}.port-row{display:grid;grid-template-columns:1fr 1fr 1fr;margin-bottom:9px}.port-row:first-of-type{border-bottom:1px solid #334247;padding-bottom:7px;color:#7e979c}.port-row b{font-weight:400;color:#7fb8b5}.terminal-body .scan-end{margin-top:13px;margin-bottom:0}.cursor{margin-left:7px}.art-calorie{background:#29251f}.nutrition-window{width:87%;height:220px;background:#342f26;border:1px solid #554b39;border-radius:9px;display:flex;align-items:center;box-shadow:0 20px 35px #0003;padding:18px;gap:20px}.food-plate{width:140px;height:140px;flex-shrink:0;background:#e2dece;border:10px solid #c6c1ae;border-radius:50%;position:relative;transform:rotate(-15deg);box-shadow:4px 9px 16px #0003}.food{position:absolute;border-radius:50%}.rice{width:60px;height:72px;right:7px;top:13px;background:repeating-linear-gradient(55deg,#e8dfba 0 3px,#dcd2ae 4px 5px)}.greens{width:64px;height:50px;left:3px;bottom:7px;background:radial-gradient(circle at 10px 12px,#839148 8px,transparent 10px),radial-gradient(circle at 30px 17px,#5c773d 15px,transparent 17px),radial-gradient(circle at 40px 30px,#9ea95a 15px,#63783c 18px)}.salmon{width:58px;height:37px;top:13px;left:4px;border-radius:7px;background:repeating-linear-gradient(10deg,#bd805c 0 7px,#e0aa7d 8px 10px)}.nutrition-result .mono{font-size:6px;letter-spacing:1px;color:#b6ad94}.nutrition-result h4{font-size:17px;line-height:1.3;font-weight:400;margin:15px 0}.estimate{font-size:9px;color:#b4a990}.estimate>span{font-size:23px;color:#e2c794}.nutrition-result small{font-size:6px;color:#9b917b;display:block;margin-top:4px}.nutrition-bars{display:flex;gap:4px;margin-top:14px}.nutrition-bars i{height:4px;border-radius:3px;background:#b1b78c;width:45px}.nutrition-bars i:nth-child(2){background:#bd9672;width:30px}.nutrition-bars i:nth-child(3){background:#d0bb82;width:20px}.about-section{padding-top:120px;display:grid;grid-template-columns:1fr 1fr;gap:65px 90px;border-top:1px solid var(--line);margin-top:80px}.about-intro h2{font-size:44px;margin-bottom:25px}.about-intro>p:not(.eyebrow){color:#939a90;font-size:14px;margin:0 0 18px}.about-intro .text-link{margin-top:15px}.experience{padding-top:35px}.experience-row{border-bottom:1px solid var(--line);padding:0 0 25px;margin-bottom:25px}.experience-row>.mono{font-size:9px;color:#9fac96;letter-spacing:1px}.experience-row h3{font-size:18px;margin:10px 0 1px}.experience-row p{font-size:12px;color:#b3b9af;margin:0 0 10px}.experience-row small{font-size:12px;color:#798474;line-height:1.65;display:block}.toolbelt{grid-column:1/-1;padding:24px 0;display:flex;gap:40px;border-block:1px solid var(--line);align-items:center}.toolbelt>.mono{font-size:9px;color:#889280;white-space:nowrap;letter-spacing:1px}.toolbelt p{font-size:13px;line-height:2;margin:0;color:#b7bfb0}.toolbelt i{color:#46513f;font-style:normal;margin:0 10px}.offscreen{padding-top:120px}.offscreen h2{font-size:36px}.offscreen h2 span{color:var(--green)}.interests{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:45px}.interest-icon{display:block;color:#c2d6b4;font:26px var(--mono);height:50px}.interests h3{font-size:19px}.interests p{font-size:13px;color:#8a9583;max-width:270px}.contact-section{padding:130px 0 100px;margin-top:110px;border-top:1px solid var(--line)}.contact-section h2{font-size:78px;letter-spacing:-3px;line-height:1.07}.contact-section h2 em{font-family:Georgia,serif;font-weight:400;color:var(--green)}.email-link{display:flex;align-items:center;justify-content:space-between;font-size:20px;width:260px;margin-top:40px;padding-bottom:12px;border-bottom:1px solid #647258}.email-link span{color:var(--green);font-size:28px}.contact-email{color:#87947e;font-size:12px;margin-top:15px}footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:25px 0 35px;color:#7d8875;font-size:10px}footer p{font-size:10px}footer>div{display:flex;gap:20px}footer a:hover{color:var(--green)}dialog{background:#1a1f18;color:var(--ink);border:1px solid #4c5b42;border-radius:12px;padding:45px;width:min(550px,90%);max-height:85vh}dialog::backdrop{background:#000b;backdrop-filter:blur(7px)}dialog h2{font-size:30px;margin-bottom:25px}dialog>p:not(.eyebrow),dialog li{color:#a6b29e;font-size:14px}.dialog-close{position:absolute;top:9px;right:15px;background:none;border:0;color:#a6b29e;font-size:27px}.dialog-note{font-size:12px!important;border-top:1px solid #394331;padding-top:20px}.skip{position:fixed;left:20px;top:-100px;background:var(--green);color:#101111;padding:10px;z-index:10}.skip:focus{top:15px}
@media(min-width:1500px){.intro{padding-top:65px}.workspace{height:460px}.scroll-cue{margin-top:55px}}@media(max-width:900px){.wrap{width:calc(100% - 60px)}.monogram span{display:none}.projects{gap:35px 23px}.project-art{height:250px}.nutrition-window{gap:10px;padding:12px}.food-plate{width:100px;height:100px;border-width:7px}.food{transform:scale(.7);transform-origin:top left}.nutrition-result h4{font-size:15px}.nutrition-result .mono{font-size:5px}.about-section{gap:40px}.contact-section h2{font-size:65px}footer p{display:none}}@media(max-width:600px){.wrap{width:calc(100% - 40px)}.header{height:82px}.monogram svg{width:27px}nav{gap:0;padding:3px}nav a{padding:6px 13px;font-size:11px}.contact-top{font-size:0}.contact-top span{font-size:21px;margin:0}.intro{padding-top:42px}.intro .eyebrow{font-size:7px;letter-spacing:1.3px;margin-bottom:22px}h1{font-size:43px;letter-spacing:-2px}.subtitle{font-size:13px;line-height:1.8}.mobile-break{display:block}.workspace{height:330px;margin-top:-3px}.workspace-controls{margin-top:-5px}.mode-switch button{padding:7px 15px;font-size:10px}.scene-caption{font-size:10px}.scroll-cue{margin-top:37px;font-size:8px}.work-section{padding-top:75px}.section-heading{display:block;margin-bottom:28px}h2{font-size:34px}.section-heading .text-link{margin-top:25px}.projects{grid-template-columns:1fr;gap:25px}.project-art{height:285px}.project-info{padding-top:19px}.project-info h3{font-size:22px}.project-info p:not(.project-type){font-size:13px}.nutrition-window{height:210px;gap:20px;padding:20px}.food-plate{width:120px;height:120px}.food{transform:scale(.85)}.nutrition-result h4{font-size:17px}.nutrition-result .mono{font-size:6px}.about-section{padding-top:65px;margin-top:55px;grid-template-columns:1fr;gap:30px}.about-intro h2{font-size:38px}.experience{padding-top:15px}.toolbelt{display:block;padding:22px 0}.toolbelt p{margin-top:14px;font-size:12px}.toolbelt i{margin:0 6px}.offscreen{padding-top:75px}.offscreen h2{font-size:30px}.interests{grid-template-columns:1fr;gap:20px;margin-top:35px}.interests>div{display:grid;grid-template-columns:38px 1fr;column-gap:15px}.interest-icon{grid-row:1/3;font-size:23px}.interests h3{margin-top:3px;font-size:18px}.interests p{margin-top:0;max-width:none;grid-column:2}.contact-section{margin-top:65px;padding-top:65px;padding-bottom:65px}.contact-section .eyebrow{font-size:7px;letter-spacing:1px}.contact-section h2{font-size:58px;letter-spacing:-2px}footer{display:block}footer>div{margin-top:15px;gap:25px}dialog{padding:35px 25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.home-page .hero{justify-content:center}.home-page .workspace{flex:0 1 560px}

.home-page .hero{padding-bottom:12px}.home-page .workspace{margin-bottom:0}
