@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;550;600;650;700&display=swap');
:root{color-scheme:dark;--bg:#0a0a09;--panel:#111110;--text:#f2f2ed;--muted:#9c9c95;--line:#292925;--accent:#ff9f2e;--button:#171715;--shadow:#0008}
:root[data-theme=light]{color-scheme:light;--bg:#f6f6f3;--panel:#fff;--text:#191a17;--muted:#64665e;--line:#dcded4;--accent:#ad5900;--button:#eeeee7;--shadow:#3332}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation}button,a,input{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent)}button{border:0}img{display:block;max-width:100%;width:100%;height:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.15;letter-spacing:-.04em;font-weight:600}::selection{background:#ff9f2e;color:#111}.skip{position:fixed;left:20px;top:-100px;background:var(--accent);color:var(--bg);padding:12px;z-index:200}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.site-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:0 32px;height:76px;background:var(--bg);border-bottom:1px solid var(--line)}.brand{font-size:16px;font-weight:650;letter-spacing:4px;white-space:nowrap}.brand>span:first-child{font-weight:400}.brand-dot{color:var(--accent);letter-spacing:0}.site-header nav{display:flex;gap:29px;align-items:center}.site-header nav a{font-size:12px;letter-spacing:.035em;text-transform:uppercase;color:var(--muted);padding:8px 0;position:relative}.site-header nav a:hover,.site-header nav a.current{color:var(--text)}.site-header nav a.current:after{content:'';width:16px;height:2px;background:var(--accent);position:absolute;bottom:0;left:0}#theme-toggle{background:none;border:1px solid var(--line);border-radius:50%;width:35px;height:35px;font-size:22px;line-height:1}#menu-toggle{display:none;background:var(--button);font-size:14px;border:1px solid var(--line);padding:8px 12px;border-radius:6px}main{max-width:1600px;margin:auto}.hero{display:grid;grid-template-columns:1fr 1.05fr;gap:50px;align-items:center;min-height:680px;padding:65px 5% 70px}.hero-art{position:relative;min-width:0;height:510px;isolation:isolate}.hero-art:before,.hero-art:after{content:'';position:absolute;width:15px;height:15px;border-color:var(--line);border-style:solid;pointer-events:none}.hero-art:before{left:0;top:0;border-width:1px 0 0 1px}.hero-art:after{bottom:0;right:0;border-width:0 1px 1px 0}#particle-globe{position:absolute;width:100%;height:100%;inset:0;z-index:-1}.hero-art-label{position:absolute;top:14px;left:20px;right:20px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.2px;color:var(--muted)}.scene-count{color:var(--accent)}.floating-work{position:absolute;inset:23% 10% 23%;transition:transform .5s;transform-style:preserve-3d}.hero-screen{width:100%;height:100%;padding:0;border-radius:10px;overflow:hidden;position:relative;background:#101010;border:1px solid #ffffff35;box-shadow:0 20px 70px var(--shadow);text-align:left}.hero-screen>img{filter:brightness(.8);transition:filter .4s,transform .6s}.hero-screen:hover>img{filter:brightness(1);transform:scale(1.035)}.hero-play{position:absolute;top:43%;left:50%;transform:translate(-50%,-50%);border:1px solid #fff8;background:#0006;color:white;display:grid;place-items:center;width:50px;height:50px;border-radius:50%;padding-left:3px;font-size:14px}.hero-image-caption{position:absolute;bottom:0;left:0;width:100%;padding:34px 20px 18px;background:linear-gradient(transparent,#000c);color:#fff;display:grid;grid-template-columns:1fr auto;gap:4px 10px}.hero-image-caption>span:first-child{grid-column:1/-1;color:#ffb559;font-size:10px;letter-spacing:1px}.hero-image-caption strong{font-size:19px;line-height:1.25;font-weight:550}.hero-image-caption>span:last-child{font-size:12px;align-self:end}.art-controls{position:absolute;bottom:19px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:center;gap:12px}.stage-picks{display:flex;gap:4px}.stage-picks button{background:none;border:1px solid transparent;color:var(--muted);width:34px;height:34px;font-size:12px;border-radius:6px}.stage-picks button.active{border-color:var(--line);color:var(--text);background:var(--button)}.stage-picks button:hover{color:var(--accent)}.motion-toggle{font-size:12px;color:var(--muted);background:none;padding:8px}.eyebrow{font-size:12px;line-height:1.5;font-weight:550;letter-spacing:1.2px;color:var(--accent);text-transform:uppercase}h1{font-size:clamp(42px,4.3vw,70px);margin:15px 0 22px;letter-spacing:-.055em}h1>span{color:var(--accent)}.hero-lead{font-size:22px;font-weight:450;letter-spacing:-.02em;margin-bottom:16px}.hero-copy{color:var(--muted);max-width:650px;margin:0 0 16px;font-size:16px;line-height:1.8}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:27px}.primary-button,.outline-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:7px;padding:11px 18px;font-size:14px;line-height:1.4;transition:background .2s,border-color .2s}.primary-button{background:#ff9f2e;color:#171009;border:1px solid #ff9f2e}.primary-button:hover{background:#ffb85d}.outline-button{border:1px solid var(--line);background:transparent}.outline-button:hover{border-color:var(--muted);background:var(--button)}.portfolio-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;margin:0 5% 60px}.portfolio-stats>div{position:relative;padding:20px 22px 24px;border:1px solid var(--line);border-radius:2px}.portfolio-stats>div>span{display:block;color:var(--muted);font-size:11px;letter-spacing:.8px}.portfolio-stats strong{display:block;font-size:47px;font-weight:550;line-height:1.3;letter-spacing:-2px;margin-top:9px}.section{padding:56px 5% 75px;scroll-margin-top:20px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:29px}.section h2{font-size:36px;margin-top:9px}.section-head>p{color:var(--muted);font-size:14px;max-width:390px}.text-link{border-bottom:1px solid var(--line);font-size:14px;display:inline-block;line-height:1.8}.text-link:hover{border-color:var(--accent);color:var(--accent)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:25px}.filters button{font-size:14px;background:none;color:var(--muted);padding:8px 14px;border:1px solid var(--line);border-radius:6px}.filters button span{font-size:12px;margin-left:7px;opacity:.7}.filters button.active{color:var(--text);background:var(--button);border-color:var(--muted)}.filters button:hover{color:var(--accent)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.project{overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:13px;transition:border-color .25s,transform .3s;min-width:0}.project:hover{border-color:#6e6b5d;transform:translateY(-3px)}.project[hidden]{display:none}.project-image{display:block;position:relative;width:100%;aspect-ratio:16/9;background:#070909;padding:0;border:0;overflow:hidden}.project-image img{transition:transform .65s,filter .4s;filter:brightness(.92)}.project-image:hover img{transform:scale(1.025);filter:brightness(1.08)}.project-num,.duration{position:absolute;top:15px;z-index:1;font-size:12px;border:1px solid #ffffff35;background:#0009;border-radius:4px;color:#fff;padding:3px 8px;line-height:1.5}.project-num{left:15px}.duration{right:15px}.project-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:46px;height:46px;border:1px solid #ffffff90;border-radius:50%;background:#0005;color:#fff;font-size:15px;padding-left:3px;opacity:0;transition:opacity .25s}.project-image:hover .project-play,.project-image:focus-visible .project-play{opacity:1}.project-meta{display:flex;align-items:start;justify-content:space-between;gap:18px;padding:21px 23px 22px}.project-meta p{font-size:10px;line-height:1.5;letter-spacing:1.1px;color:var(--accent);margin-bottom:8px}.project h3{font-size:24px;font-weight:500;line-height:1.3}.small-play{background:none;color:var(--muted);padding:4px 0;border-bottom:1px solid var(--line);font-size:14px;white-space:nowrap}.small-play:hover{color:var(--accent)}.project-description{padding:0 23px 24px;color:var(--muted);font-size:14px;margin-top:-8px}.unreal-section,.blender-section,.metahuman-section,.about-section{border-top:1px solid var(--line)}.unreal-section .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.unreal-section h3,.blender-section h3,.metahuman-section h3{font-size:20px}.unreal-section .project-meta{display:block;padding:18px 20px}.unreal-section .small-play{margin-top:12px}.unreal-section .project-image img{object-fit:contain}.blender-section .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.blender-section .project-meta{display:block}.blender-section .small-play{margin-top:12px}.image-reference img{object-fit:contain}.about-section{display:grid;grid-template-columns:1fr 1fr;gap:80px}.about-section h2{font-size:43px;line-height:1.2}.about-copy>p{font-size:17px;line-height:1.8;margin-bottom:19px}.about-copy>p+p{font-size:16px;color:var(--muted)}.skills{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0}.skills span{font-size:12px;background:var(--button);border:1px solid var(--line);padding:5px 11px;border-radius:5px;color:var(--muted)}.contact-section{border-top:1px solid var(--line);padding-top:70px;padding-bottom:85px}.contact-section h2{font-size:clamp(40px,5vw,72px);margin-top:18px;line-height:1.1}.contact-section h2 span{color:var(--accent)}.contact-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px}.contact-bottom p{color:var(--muted)}footer{border-top:1px solid var(--line);padding:26px 5%;display:flex;justify-content:space-between;gap:20px;max-width:1600px;margin:auto;color:var(--muted);font-size:12px}footer>span:nth-child(2){font-size:10px;letter-spacing:1px}footer a:hover{color:var(--accent)}dialog{width:min(1100px,94vw);max-height:94vh;overflow:auto;padding:24px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:13px;box-shadow:0 35px 130px #000b}dialog::backdrop{background:#020303e6;backdrop-filter:blur(8px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.dialog-top h2{font-size:30px;margin-top:6px}.dialog-top .eyebrow{font-size:11px}.close-dialog{font-size:14px;background:var(--button);border:1px solid var(--line);padding:8px 14px;border-radius:6px}.close-dialog span{font-size:22px;vertical-align:middle;margin-left:8px}#film-video{width:100%;display:block;aspect-ratio:16/9;max-height:66vh;background:#000}.dialog-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:17px;font-size:14px;color:var(--muted)}.dialog-bottom a{color:var(--accent);text-decoration:underline}#video-error{color:#ff9f2e;margin-top:18px;font-size:14px}.motion-off *, .motion-off *:before,.motion-off *:after{transition:none!important;animation:none!important}
@media(min-width:1600px){.hero{gap:80px}.hero-art{height:580px}.site-header{padding-left:max(32px,calc((100vw - 1500px)/2));padding-right:max(32px,calc((100vw - 1500px)/2))}}
@media(max-width:1100px){.site-header{padding:0 24px}.site-header nav{gap:18px}.site-header nav a{font-size:11px}.hero{gap:30px;padding-top:45px;min-height:620px}.hero-art{height:450px}.hero-copy{font-size:15px}h1{font-size:49px}.hero-lead{font-size:20px}.portfolio-stats{gap:16px}.portfolio-stats>div{padding:17px}.portfolio-stats>div>span{font-size:10px}.unreal-section .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blender-section .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid{gap:24px}.about-section{gap:40px}}
@media(max-width:760px){html{scroll-padding-top:90px}.site-header{height:65px;padding:0 6%;gap:14px}.brand{margin-right:auto}#menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:65px;left:0;right:0;padding:20px 6%;background:var(--panel);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:10px 24px;box-shadow:0 15px 20px var(--shadow)}.site-header nav.is-open{display:grid}.site-header nav a{font-size:14px;padding:10px 0}.hero{display:flex;flex-direction:column-reverse;gap:24px;padding:48px 6% 34px;min-height:0}.hero-intro{width:100%}h1{font-size:clamp(42px,8vw,58px);margin:14px 0 18px}.hero-lead{font-size:20px}.hero-copy{font-size:16px}.hero-art{width:100%;max-width:570px;height:400px;flex:none}.hero-art-label{font-size:10px}.floating-work{inset:21% 11% 21%}.hero-screen{border-radius:9px}.hero-actions{margin-top:22px}.portfolio-stats{margin:0 6% 25px;grid-template-columns:1fr 1fr;gap:15px}.portfolio-stats>div>span{font-size:10px}.portfolio-stats strong{font-size:40px}.section{padding:42px 6% 58px}.section-head{display:block;margin-bottom:23px}.section h2{font-size:31px}.section-head>p{margin-top:14px;font-size:14px}.eyebrow{font-size:11px}.project-grid,.unreal-section .project-grid,.blender-section .project-grid{grid-template-columns:1fr;gap:25px}.project-meta,.unreal-section .project-meta,.blender-section .project-meta{display:flex;padding:18px 20px;align-items:start}.unreal-section .small-play,.blender-section .small-play{margin-top:0}.project h3{font-size:22px}.project-meta p{font-size:10px}.project-description{padding:0 20px 22px;font-size:14px}.project-play{opacity:1}.filters button{padding:8px 11px;font-size:14px}.about-section{grid-template-columns:1fr;gap:25px}.about-section h2{font-size:36px}.contact-section h2{font-size:42px}.contact-bottom{display:block}.contact-bottom .primary-button{margin-top:22px}footer{padding:25px 6%;flex-wrap:wrap}footer>span:nth-child(2){display:none}.dialog-top h2{font-size:25px}dialog{padding:16px}.dialog-bottom{font-size:13px}}
@media(max-width:380px){.hero-art{height:345px}.hero-image-caption strong{font-size:16px}.hero-image-caption{padding:28px 14px 12px}.hero-image-caption>span:first-child{font-size:9px}.project-meta{gap:12px}.small-play{font-size:13px}.hero-actions{gap:8px}.hero-actions a{padding:10px 14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Readable navigation and controls across screen sizes. */
.site-header nav a,.motion-toggle,.stage-picks button{font-size:14px}.hero-art-label,.portfolio-stats>div>span,.eyebrow,.project-meta p,.hero-image-caption>span:first-child{font-size:12px}.hero-art-label{letter-spacing:.5px}.hero-image-caption>span:first-child{letter-spacing:.7px}.hero-image-caption strong{max-width:100%;overflow-wrap:anywhere}@media(min-width:761px) and (max-width:1100px){.site-header nav{gap:14px}.site-header nav a{font-size:12px}.site-header{gap:14px}}@media(max-width:760px){.hero-art-label{font-size:10px}.hero-image-caption>span:first-child{font-size:10px}.portfolio-stats>div>span{font-size:12px;line-height:1.5}}

/* Portrait replaces the hero's project carousel; the film galleries stay intact. */
.portrait-hero{height:560px}.floating-work.portrait-wrap{inset:0;display:flex;align-items:center;justify-content:center;padding:40px 0 60px;pointer-events:none}.hero-portrait{width:auto;height:100%;max-width:78%;object-fit:contain;border-radius:15px;border:1px solid var(--line);box-shadow:0 20px 65px var(--shadow)}.portrait-controls{justify-content:flex-end}.portrait-hero .hero-art-label{left:18px;right:18px}@media(min-width:1600px){.portrait-hero{height:610px}}@media(max-width:1100px){.portrait-hero{height:500px}}@media(max-width:760px){.portrait-hero{height:480px}.floating-work.portrait-wrap{padding:38px 0 55px}}@media(max-width:380px){.portrait-hero{height:420px}}

/* Professional history and resume. */
.experience-section{border-top:1px solid var(--line)}.career-timeline{border-top:1px solid var(--line)}.career-entry{display:grid;grid-template-columns:220px minmax(0,1fr);gap:35px;padding:32px 0;border-bottom:1px solid var(--line)}.career-date{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:14px;color:var(--muted)}.current-role{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line);padding:3px 9px;border-radius:4px}.career-body h3{font-size:24px;line-height:1.35;max-width:730px}.career-company{color:var(--accent);margin-top:7px;font-size:16px}.career-detail{font-size:14px;color:var(--muted);margin-top:5px}.career-detail:empty{display:none}.career-body ul{padding-left:18px;margin:15px 0 0;color:var(--muted);font-size:15px;max-width:800px}.career-body li+li{margin-top:7px}.education-block{margin-top:42px}.education-block>h3{font-size:25px;margin-bottom:20px}.education-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.education-card{padding:24px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.education-card h4{font-size:19px;line-height:1.4;margin:13px 0 8px;font-weight:500}.education-card>p:not(.eyebrow){font-size:14px;color:var(--muted)}
@media(max-width:1100px){.site-header nav{gap:14px}.site-header nav a{font-size:12px}.education-grid{grid-template-columns:1fr}.career-entry{grid-template-columns:180px minmax(0,1fr);gap:25px}}
@media(max-width:760px){.career-entry{grid-template-columns:1fr;gap:13px;padding:25px 0}.career-date{flex-direction:row;flex-wrap:wrap;align-items:center}.career-body h3{font-size:22px}.experience-section .section-head>.primary-button{margin-top:20px}.education-card{padding:20px}.site-header nav a{font-size:14px}}

/* Direct contact details. */
.contact-intro{color:var(--muted);margin-top:24px;max-width:650px}.contact-details{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;margin-top:30px}.contact-card{display:flex;flex-direction:column;gap:12px;padding:25px;border:1px solid var(--line);border-radius:10px;background:var(--panel);min-width:0}.contact-card:hover{border-color:var(--accent)}.contact-card>span{font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:1px}.contact-card strong{font-size:clamp(17px,2vw,26px);font-weight:500;line-height:1.4;overflow-wrap:anywhere}.contact-card small{font-size:13px;color:var(--muted)}@media(max-width:760px){.contact-details{grid-template-columns:1fr}.contact-card{padding:21px}.contact-bottom .outline-button{margin-top:20px}}

/* Keep the resume available in the sticky navigation. */
.site-header nav .nav-resume{color:var(--accent);border:1px solid var(--line);border-radius:6px;padding:8px 12px;white-space:nowrap}.site-header nav{gap:20px}
@media(min-width:761px) and (max-width:1100px){.site-header nav{gap:10px}.site-header nav a{font-size:11px}.site-header nav .nav-resume{padding:8px}.site-header{gap:12px;padding:0 18px}}
@media(max-width:980px){.site-header{height:65px;padding:0 6%;gap:14px}.brand{margin-right:auto}#menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:65px;left:0;right:0;padding:20px 6%;background:var(--panel);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:10px 24px;box-shadow:0 15px 20px var(--shadow)}.site-header nav.is-open{display:grid}.site-header nav a{font-size:14px;padding:10px 0}.site-header nav .nav-resume{padding:10px 12px}}

/* Project context and credits */
.role-label{color:var(--accent);font-size:14px;font-weight:600;margin:14px 0}.project-credit{padding:0 24px 24px;color:var(--accent);font-size:13px}.film-description{color:var(--muted);max-width:75ch;margin:0 0 16px;font-size:15px}.film-credit{color:var(--accent);margin:0 0 18px;font-size:14px}.project-description{overflow-wrap:anywhere}@media(max-width:760px){.project-credit{padding:0 20px 22px}}
