:root{--ink:#16201c;--paper:#f3f0e9;--acid:#d8ff3e;--orange:#ff7b40;--line:rgba(22,32,28,.19)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,"Noto Sans SC",sans-serif}.grain{position:fixed;z-index:5;inset:0;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E")}.nav{height:82px;position:absolute;z-index:10;top:0;width:100%;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px;font-weight:700;letter-spacing:.08em}.logo{font:500 18px "DM Mono",monospace;color:inherit;text-decoration:none;letter-spacing:-.08em}.logo span{color:var(--orange)}nav{display:flex;gap:28px}nav a,.nav-cta{color:inherit;text-decoration:none}.nav-cta{border-bottom:1px solid currentColor;padding-bottom:4px}.hero{min-height:100svh;display:grid;grid-template-columns:1.1fr .8fr .12fr;padding:132px 4.5vw 46px;gap:3vw;overflow:hidden}.hero-copy{align-self:center}.eyebrow,.section-index{font:500 11px "DM Mono",monospace;letter-spacing:.1em;margin:0}.hero h1{font-size:clamp(3.8rem,7.1vw,7.6rem);line-height:.9;letter-spacing:-.08em;margin:23px 0 32px}.hero h1 i,h2 em{font-family:Georgia,"Noto Serif SC",serif;font-weight:400}.hero-description{line-height:1.7;font-size:14px;margin:0}.scroll-link{color:inherit;text-decoration:none;display:flex;align-items:center;gap:17px;margin-top:58px;font-size:12px;font-weight:700}.scroll-link b{display:grid;place-items:center;border:1px solid var(--ink);border-radius:50%;width:31px;height:31px;font-size:18px}.hero-portrait{align-self:end;height:min(68vh,680px);position:relative;overflow:hidden;background:#d7d8cc}.hero-portrait img{height:100%;width:100%;object-fit:cover;object-position:center top;filter:saturate(.75) contrast(1.05)}.portrait-stamp{z-index:1;position:absolute;top:20px;left:20px;border-radius:50%;width:90px;aspect-ratio:1;display:grid;place-items:center;text-align:center;background:var(--acid);font:500 9px/1.3 "DM Mono";transform:rotate(-11deg)}.hero-side{align-self:end;margin:0;writing-mode:vertical-rl;font:500 10px "DM Mono";letter-spacing:.1em}.section{padding:140px 8vw}.intro{background:var(--ink);color:#f7f5ee}.intro-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:10vw;margin-top:72px}.intro h2,.works h2,.credentials h2{font-size:clamp(3rem,5.1vw,5.6rem);letter-spacing:-.075em;line-height:.95;margin:0}.intro-text{font-size:16px;line-height:1.9;max-width:510px}.intro-text p:first-child{margin-top:0}.tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:34px}.tags span{border:1px solid rgba(255,255,255,.45);padding:8px 12px;border-radius:100px;font-size:12px}.avatar-stage{height:920px;min-height:100svh;background:#d8ff3e;position:relative;overflow:hidden;padding:52px 8vw}.avatar-stage .section-index{position:absolute;top:53px;left:8vw}.avatar-copy{position:absolute;z-index:2;top:26%;left:12%;font:500 clamp(1.55rem,3vw,3.3rem)/.95 "DM Mono";letter-spacing:-.1em}.avatar-copy i{font-family:Georgia,serif;font-weight:400}.avatar-wrap{position:absolute;height:75%;bottom:-2px;left:50%;transform:translateX(-50%);width:min(37vw,480px);z-index:1}.avatar-glow{position:absolute;inset:15% -25% 0;border-radius:50%;background:var(--orange);filter:blur(5px);opacity:.85}.avatar{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;mix-blend-mode:multiply;filter:contrast(1.1) saturate(.8);clip-path:ellipse(48% 54% at 50% 53%);transition:transform .9s cubic-bezier(.2,.8,.2,1)}.avatar-stage:hover .avatar{transform:scale(1.04) translateY(-8px)}.orbit{border:1px solid rgba(22,32,28,.35);position:absolute;border-radius:50%;left:50%;top:54%;transform:translate(-50%,-50%)}.orbit-a{width:75vw;aspect-ratio:1}.orbit-b{width:46vw;aspect-ratio:1}.bubble{position:absolute;z-index:3;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--ink);text-decoration:none;font-size:clamp(16px,1.5vw,24px);font-weight:700;line-height:1.1;box-shadow:0 8px 20px rgba(22,32,28,.12);transition:transform .25s}.bubble:hover{transform:scale(1.12) rotate(-5deg)}.bubble small{font:500 9px "DM Mono";margin-top:5px}.bubble-1{width:125px;aspect-ratio:1;background:#f7f5ee;top:21%;left:55%}.bubble-2{width:111px;aspect-ratio:1;background:var(--orange);top:43%;right:13%}.bubble-3{width:145px;aspect-ratio:1;background:#fff;bottom:13%;right:25%}.bubble-4{width:109px;aspect-ratio:1;background:#b0b3ff;bottom:14%;left:22%}.bubble-5{width:119px;aspect-ratio:1;background:#fa99bf;top:44%;left:19%}.avatar-note{position:absolute;bottom:37px;right:8vw;margin:0;font:500 10px "DM Mono"}.works{padding-top:155px}.works-heading{display:grid;grid-template-columns:1fr 1.3fr .7fr;align-items:end;padding-bottom:80px;border-bottom:1px solid var(--line)}.works-heading p:last-child{font-size:14px;line-height:1.8;margin:0}.work-block{display:grid;grid-template-columns:72px 1fr 3.6fr;gap:22px;padding:90px 0;border-bottom:1px solid var(--line)}.work-number{font:500 12px "DM Mono"}.work-title p{margin:0 0 7px;font:500 10px "DM Mono";letter-spacing:.1em}.work-title h3{font-size:34px;letter-spacing:-.06em;margin:0}.work-title span{font:500 9px "DM Mono";display:block;margin-top:15px}.media-grid{display:grid;gap:15px}.video-grid{grid-template-columns:repeat(2,1fr)}.three{grid-template-columns:repeat(3,1fr)}figure{margin:0}video,img{display:block;width:100%;background:#252b28}video{aspect-ratio:9/16;object-fit:cover}figcaption{font-size:11px;line-height:1.6;margin-top:11px}.photo-grid{grid-template-columns:1.25fr 1fr 1fr}.photo-grid figure:first-child{grid-row:span 2}.photo-grid img{height:260px;object-fit:cover}.photo-grid figure:first-child img{height:100%}.feature-video{display:grid;grid-template-columns:1.12fr .88fr;gap:34px;align-items:center}.feature-video video{aspect-ratio:16/10}.feature-video h4{font-size:clamp(24px,2.5vw,42px);line-height:1.05;letter-spacing:-.07em;margin:16px 0}.feature-video div>p:last-child{font-size:13px;line-height:1.8}.credentials{background:var(--orange);padding-top:90px}.credentials-main{display:grid;grid-template-columns:1.1fr .9fr;gap:10vw;margin-top:65px}.credentials-main>div>p{font-size:15px;line-height:1.8;max-width:420px;margin:28px 0}.contact-mail{display:inline-flex;gap:36px;align-items:center;text-decoration:none;color:inherit;border-bottom:1px solid currentColor;padding-bottom:11px;font:500 12px "DM Mono"}.contact-mail b{font-size:22px}.docs{border-top:1px solid rgba(22,32,28,.5)}.docs a{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;color:inherit;text-decoration:none;padding:24px 0;border-bottom:1px solid rgba(22,32,28,.5);transition:padding .2s}.docs a:hover{padding-left:10px}.docs span,.docs i{font:500 10px "DM Mono"}.docs strong{font-size:16px}.docs i{font-style:normal}footer{padding:23px 4.5vw;background:var(--ink);color:#f7f5ee;display:flex;justify-content:space-between;font:500 10px "DM Mono";letter-spacing:.06em}footer a{color:inherit;text-decoration:none}
@media(max-width:760px){.nav{height:64px;padding:0 5vw}.nav nav{display:none}.nav-cta{font-size:10px}.hero{grid-template-columns:1fr;min-height:820px;padding:105px 6vw 35px}.hero h1{font-size:17vw}.hero-portrait{height:350px;width:62%;justify-self:end;margin-top:-18px}.hero-side{display:none}.intro,.works,.credentials{padding:85px 6vw}.intro-layout,.credentials-main{grid-template-columns:1fr;gap:38px;margin-top:48px}.avatar-stage{height:710px;padding:30px 6vw}.avatar-stage .section-index{top:32px;left:6vw}.avatar-copy{top:13%;left:8%;font-size:25px}.avatar-wrap{height:63%;width:65vw;bottom:1px}.orbit-a{width:130vw}.orbit-b{width:84vw}.bubble{font-size:15px}.bubble-1{width:92px;top:28%;left:61%}.bubble-2{width:89px;top:46%;right:5%}.bubble-3{width:100px;bottom:9%;right:10%}.bubble-4{width:83px;bottom:13%;left:7%}.bubble-5{width:86px;top:48%;left:4%}.avatar-note{bottom:17px;right:6vw}.works-heading{display:block;padding-bottom:48px}.works-heading h2{margin:27px 0}.work-block{display:grid;grid-template-columns:34px 1fr;padding:58px 0;gap:10px}.media-grid,.feature-video{grid-column:1/-1;margin-top:25px}.video-grid,.three{grid-template-columns:1fr 1fr}.three figure:last-child{display:none}.photo-grid{grid-template-columns:1fr 1fr}.photo-grid figure:first-child{grid-row:auto;grid-column:span 2}.photo-grid figure:first-child img{height:330px}.feature-video{grid-template-columns:1fr;gap:22px}.feature-video video{aspect-ratio:16/11}.credentials-main{margin-top:48px}footer{padding:20px 6vw;gap:12px;flex-wrap:wrap;font-size:9px}.portrait-stamp{width:70px;font-size:7px;top:12px;left:12px}}

/* The avatar comes alive as its section enters the viewport. */
.avatar-stage .avatar-wrap{opacity:0;transform:translateX(-50%) translateY(90px) scale(.82) rotateY(18deg);transition:opacity .7s ease,transform 1.1s cubic-bezier(.16,1,.3,1)}
.avatar-stage .bubble{opacity:0;transition:opacity .5s ease,transform .6s cubic-bezier(.16,1,.3,1)}
.avatar-stage.in-view .avatar-wrap{opacity:1;transform:translateX(-50%) translateY(0) scale(1) rotateY(0)}
.avatar-stage.in-view .bubble{opacity:1}.avatar-stage.in-view .bubble-1{transition-delay:.25s}.avatar-stage.in-view .bubble-2{transition-delay:.36s}.avatar-stage.in-view .bubble-3{transition-delay:.47s}.avatar-stage.in-view .bubble-4{transition-delay:.58s}.avatar-stage.in-view .bubble-5{transition-delay:.69s}
.avatar-stage.in-view .orbit{animation:orbit-breathe 6s ease-in-out infinite}.avatar-stage.in-view .orbit-b{animation-delay:-2s}@keyframes orbit-breathe{50%{transform:translate(-50%,-50%) scale(1.035)}}

/* Digital fashion-avatar treatment, inspired by an editorial 3D character landing page. */
.avatar-stage{background:#ededeb;color:#10120f}.avatar-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 57%,rgba(197,255,61,.32),transparent 23%),linear-gradient(90deg,transparent 49.92%,rgba(16,18,15,.12) 50%,transparent 50.08%)}.avatar-wordmark{position:absolute;z-index:0;top:24%;left:50%;transform:translateX(-50%);font-size:clamp(5rem,13vw,14rem);font-weight:800;line-height:.71;letter-spacing:-.12em;text-align:center;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(16,18,15,.8)}.avatar-stage .avatar-wrap{z-index:2;width:min(42vw,540px);height:83%;bottom:-4px}.avatar-stage .avatar-glow{inset:19% -31% 0;background:radial-gradient(ellipse at 50% 32%,#e7ff84 0 12%,#abb2ff 35%,transparent 70%);filter:blur(13px);opacity:.9}.avatar-stage .avatar{clip-path:ellipse(39% 55% at 50% 52%);mix-blend-mode:normal;filter:grayscale(.35) contrast(1.08) saturate(.82);object-position:center 10%;mask-image:linear-gradient(to bottom,#000 84%,transparent 100%)}.avatar-stage .bubble{z-index:4;border:1px solid #10120f;box-shadow:none}.avatar-stage .section-index,.avatar-stage .avatar-copy,.avatar-note{z-index:4}.avatar-stage .orbit{z-index:1;border-color:rgba(16,18,15,.25)}
@media(max-width:760px){.avatar-wordmark{top:25%;font-size:23vw}.avatar-stage .avatar-wrap{width:86vw;height:68%;bottom:-1px}.avatar-stage .avatar{clip-path:ellipse(46% 55% at 50% 52%)}}

/* Quiet depth, fluid transitions, and a responsive avatar space. */
html{scroll-padding-top:36px}body{background:#f4f3ef}.nav{backdrop-filter:blur(12px);transition:background .35s ease,transform .35s ease}.hero-portrait{box-shadow:0 30px 70px rgba(13,18,16,.12);transform:translateY(0);animation:hero-settle 1.15s cubic-bezier(.16,1,.3,1) both}.hero-portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.35),transparent 28%,transparent 75%,rgba(0,0,0,.14));mix-blend-mode:soft-light;pointer-events:none}.hero-portrait img{object-position:58% 58%;filter:saturate(.68) contrast(1.04)}.hero-copy{animation:hero-settle .9s .08s cubic-bezier(.16,1,.3,1) both}@keyframes hero-settle{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.intro-layout,.work-block{transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}.intro-layout:not(.in-view),.work-block:not(.in-view){opacity:.2;transform:translateY(28px)}.intro-layout.in-view,.work-block.in-view{opacity:1;transform:none}.work-block:hover .work-title h3{letter-spacing:-.025em}.work-block video,.work-block figure img{transition:transform .65s cubic-bezier(.16,1,.3,1),filter .65s ease}.work-block figure:hover video,.work-block figure:hover img{transform:scale(1.018);filter:contrast(1.05)}
#coursework video{aspect-ratio:16/9;object-fit:cover}#coursework .video-grid{gap:20px}#coursework figure{overflow:hidden}#coursework figcaption{padding:0 2px}#ai-model video,#internship video{aspect-ratio:9/16;max-height:570px;justify-self:start}#ai-model .feature-video,#internship .feature-video{grid-template-columns:minmax(230px,.72fr) 1fr;max-width:860px}.feature-video video{border:1px solid rgba(22,32,28,.15);box-shadow:10px 14px 0 rgba(22,32,28,.08)}
.avatar-stage{--avatar-x:0px;--avatar-y:0px;--avatar-rx:0deg;--avatar-ry:0deg;--orbit-x:0px;--orbit-y:0px;--word-x:0px;perspective:1200px;isolation:isolate;background:radial-gradient(circle at 50% 56%,#f9fbf3 0 11%,#eaebe7 45%,#dedfda 100%)}.avatar-stage:before{content:"";position:absolute;z-index:0;width:68vw;height:68vw;left:50%;top:52%;border:1px solid rgba(16,18,15,.12);border-radius:50%;transform:translate(-50%,-50%) rotateX(64deg);box-shadow:0 0 0 9vw rgba(255,255,255,.12),0 0 0 18vw rgba(255,255,255,.08)}.avatar-wordmark{transform:translateX(calc(-50% + var(--word-x)));transition:transform .55s cubic-bezier(.2,.8,.2,1)}.avatar-stage .avatar-wrap{transform:translateX(calc(-50% + var(--avatar-x))) translateY(calc(90px + var(--avatar-y))) scale(.82) rotateX(var(--avatar-rx)) rotateY(calc(18deg + var(--avatar-ry)));transform-style:preserve-3d;will-change:transform;transition:opacity .7s ease,transform .65s cubic-bezier(.16,1,.3,1)}.avatar-stage.in-view .avatar-wrap{transform:translateX(calc(-50% + var(--avatar-x))) translateY(var(--avatar-y)) scale(1) rotateX(var(--avatar-rx)) rotateY(var(--avatar-ry))}.avatar-stage .avatar{transform:translateZ(22px);box-shadow:0 30px 42px rgba(0,0,0,.18)}.avatar-frame{position:absolute;z-index:3;inset:8% 13% 4%;border:1px solid rgba(255,255,255,.72);clip-path:ellipse(40% 53% at 50% 52%);transform:translateZ(35px);pointer-events:none}.avatar-stage .orbit{transform:translate(calc(-50% + var(--orbit-x)),calc(-50% + var(--orbit-y)));transition:transform .7s cubic-bezier(.2,.8,.2,1)}.avatar-stage.in-view .orbit{animation:none}.avatar-stage.in-view .orbit-a{transform:translate(calc(-50% + var(--orbit-x)),calc(-50% + var(--orbit-y))) rotate(9deg)}.avatar-stage.in-view .orbit-b{transform:translate(calc(-50% + var(--orbit-x)),calc(-50% + var(--orbit-y))) rotate(-8deg)}.avatar-stage .bubble{backdrop-filter:blur(8px);animation:float 5s ease-in-out infinite}.avatar-stage .bubble-2{animation-delay:-1.4s}.avatar-stage .bubble-3{animation-delay:-2.6s}.avatar-stage .bubble-4{animation-delay:-3.7s}.avatar-stage .bubble-5{animation-delay:-.7s}@keyframes float{50%{margin-top:-10px}}.avatar-stage .bubble:hover{transform:scale(1.1) rotate(-4deg);background:var(--acid)}
@media(max-width:760px){.hero-portrait img{object-position:56% center}.intro-layout:not(.in-view),.work-block:not(.in-view){opacity:1;transform:none}#coursework .video-grid{grid-template-columns:1fr}#coursework .three figure:last-child{display:block}#ai-model .feature-video,#internship .feature-video{grid-template-columns:1fr;max-width:none}#ai-model video,#internship video{width:min(100%,290px)}.avatar-stage:before{width:125vw;height:125vw}.avatar-stage .avatar-wrap{transform:translateX(calc(-50% + var(--avatar-x))) translateY(calc(90px + var(--avatar-y))) scale(.82) rotateX(var(--avatar-rx)) rotateY(calc(18deg + var(--avatar-ry)))}.avatar-stage.in-view .avatar-wrap{transform:translateX(calc(-50% + var(--avatar-x))) translateY(var(--avatar-y)) scale(1) rotateX(var(--avatar-rx)) rotateY(var(--avatar-ry))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Cursor-following pupils: the figure stays composed while the gaze responds. */
.avatar-stage{--pupil-x:0px;--pupil-y:0px}.avatar-eyes{position:absolute;z-index:5;inset:0;clip-path:ellipse(39% 55% at 50% 52%);pointer-events:none}.avatar-eye{position:absolute;top:37.2%;width:5.8%;aspect-ratio:1;border-radius:50%;background:rgba(13,15,14,.68);box-shadow:0 0 0 1px rgba(255,255,255,.22),0 1px 5px rgba(0,0,0,.25);overflow:hidden}.avatar-eye:first-child{left:34.5%}.avatar-eye:nth-child(2){right:34.5%}.avatar-eye i{display:block;width:100%;height:100%;border-radius:inherit;background:radial-gradient(circle at 37% 32%,rgba(255,255,255,.86) 0 10%,transparent 12%);transform:translate(var(--pupil-x),var(--pupil-y));transition:transform .16s ease-out}.avatar-stage .avatar-wrap{transform:translateX(-50%) translateY(90px) scale(.82);transition:opacity .7s ease,transform 1.1s cubic-bezier(.16,1,.3,1)}.avatar-stage.in-view .avatar-wrap{transform:translateX(-50%) translateY(0) scale(1)}.avatar-stage .avatar{transform:translateZ(0)}.avatar-stage .orbit,.avatar-stage.in-view .orbit-a,.avatar-stage.in-view .orbit-b{transform:translate(-50%,-50%);transition:transform .7s cubic-bezier(.2,.8,.2,1)}.avatar-wordmark{transform:translateX(-50%)}
@media(max-width:760px){.avatar-eyes{clip-path:ellipse(46% 55% at 50% 52%)}.avatar-stage .avatar-wrap{transform:translateX(-50%) translateY(90px) scale(.82)}.avatar-stage.in-view .avatar-wrap{transform:translateX(-50%) translateY(0) scale(1)}}

/* Full supplied avatar image, with the gaze calibrated to its original 16:9 canvas. */
.avatar-stage .whole-avatar{width:min(78vw,1240px);height:auto;aspect-ratio:16/9;bottom:28px}.whole-avatar .avatar-glow{inset:17% 27% 5%;opacity:.22}.whole-avatar .avatar{clip-path:none;mask-image:none;object-fit:contain;object-position:center;filter:none;box-shadow:none}.whole-avatar .avatar-eyes{clip-path:none}.whole-avatar .avatar-eye{top:31.2%;width:1.7%;background:rgba(14,11,9,.92);box-shadow:0 0 0 1px rgba(213,157,94,.75),0 1px 4px rgba(0,0,0,.35)}.whole-avatar .avatar-eye:first-child{left:45.2%}.whole-avatar .avatar-eye:nth-child(2){right:45.2%}.whole-avatar .avatar-eye i{background:radial-gradient(circle at 37% 32%,rgba(255,255,255,.95) 0 14%,transparent 16%)}
@media(max-width:760px){.avatar-stage .whole-avatar{width:132vw;bottom:70px}.whole-avatar .avatar-eye{width:1.9%}}

/* Restore a subtle whole-character parallax after removing the eye-follow effect. */
.avatar-stage .whole-avatar{transform:translateX(calc(-50% + var(--avatar-x,0px))) translateY(calc(90px + var(--avatar-y,0px))) scale(.82) rotateX(var(--avatar-rx,0deg)) rotateY(calc(8deg + var(--avatar-ry,0deg)));transform-style:preserve-3d;will-change:transform;transition:opacity .7s ease,transform .62s cubic-bezier(.16,1,.3,1)}.avatar-stage.in-view .whole-avatar{transform:translateX(calc(-50% + var(--avatar-x,0px))) translateY(var(--avatar-y,0px)) scale(1) rotateX(var(--avatar-rx,0deg)) rotateY(var(--avatar-ry,0deg))}.whole-avatar .avatar{transform:translateZ(16px)}
.whole-avatar .avatar{background:transparent}
@media(max-width:760px){.avatar-stage .whole-avatar{transform:translateX(calc(-50% + var(--avatar-x,0px))) translateY(calc(90px + var(--avatar-y,0px))) scale(.82) rotateX(var(--avatar-rx,0deg)) rotateY(calc(8deg + var(--avatar-ry,0deg)))}.avatar-stage.in-view .whole-avatar{transform:translateX(calc(-50% + var(--avatar-x,0px))) translateY(var(--avatar-y,0px)) scale(1) rotateX(var(--avatar-rx,0deg)) rotateY(var(--avatar-ry,0deg))}}

/* Refined portfolio palette: deep green, warm cream and restrained umber. */
:root{--ink:#18352d;--paper:#f1eadc;--acid:#b8bd82;--orange:#9a6b4c;--line:rgba(24,53,45,.2)}body{background:linear-gradient(120deg,#f2ecdf 0%,#e6dbc7 52%,#efe7d9 100%);color:var(--ink)}.grain{opacity:.07}.logo span{color:#9a6b4c}.hero{background:radial-gradient(circle at 87% 78%,rgba(154,107,76,.17),transparent 33%),linear-gradient(130deg,#f4eee2,#e5dbc9)}.hero-portrait{background:#cabda8;box-shadow:0 30px 70px rgba(46,35,26,.19)}.portrait-stamp{background:#d0c29b;color:#18352d}.intro{position:relative;overflow:hidden;background:linear-gradient(120deg,#12372e,#1d4b3e 55%,#254d40)}.intro:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 88% 48%,rgba(202,174,125,.2),transparent 25%)}.intro .section-index,.intro-layout{position:relative;z-index:1}.intro-layout{grid-template-columns:1.05fr .9fr .62fr;gap:5vw;align-items:center}.intro .accent,.hero .accent,.credentials .accent{font-family:inherit;font-style:normal;color:#cdb482}.intro h2,.works h2,.credentials h2{font-family:inherit}.about-photo{height:390px;align-self:end;overflow:hidden;position:relative}.about-photo:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,#1d4b3e 0%,transparent 48%),linear-gradient(0deg,#1d4b3e 0%,transparent 45%)}.about-photo img{height:100%;width:100%;object-fit:cover;filter:saturate(.63) contrast(1.05)}.tags span{border-color:rgba(219,205,175,.48);color:#f1eadc}.avatar-stage{background:radial-gradient(circle at 50% 44%,#ede4d4 0%,#d8c7ad 45%,#b49a79 120%);color:#18352d}.avatar-stage:after{background:radial-gradient(circle at 50% 55%,rgba(241,234,220,.56),transparent 25%),linear-gradient(90deg,transparent 49.92%,rgba(24,53,45,.1) 50%,transparent 50.08%)}.avatar-wordmark{color:transparent;-webkit-text-stroke:1px rgba(24,53,45,.62)}.avatar-stage .avatar-glow{background:radial-gradient(ellipse at 50% 32%,rgba(230,215,181,.85),#9a6b4c 42%,transparent 70%)}.avatar-stage .bubble-1,.avatar-stage .bubble-3{background:#f1eadc}.avatar-stage .bubble-2,.avatar-stage .bubble-5{background:#9a6b4c;color:#f8f0e3}.avatar-stage .bubble-4{background:#315d50;color:#f8f0e3}.avatar-stage .bubble{border-color:rgba(24,53,45,.6)}.avatar-stage .bubble:hover{background:#d5c7a3;color:#18352d}.works{background:linear-gradient(180deg,rgba(244,238,226,.72),rgba(226,213,194,.76))}.work-title h3{color:#23463a}.work-block:hover .work-title h3{color:#9a6b4c}.work-block video{background:#18352d}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.internship-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:680px}.internship-grid video{aspect-ratio:9/16}.credentials{position:relative;overflow:hidden;background:linear-gradient(135deg,#d3c1a3 0%,#a37859 100%);padding-top:270px}.credentials .section-index,.credentials-main{position:relative;z-index:1}.photo-marquee{position:absolute;top:0;left:0;width:100%;height:205px;overflow:hidden;background:#18352d}.photo-marquee>div{height:100%;display:flex;gap:10px;width:max-content;animation:marquee 32s linear infinite}.photo-marquee img{width:205px;height:205px;object-fit:cover;filter:saturate(.62) contrast(1.04);opacity:.82}@keyframes marquee{to{transform:translateX(-53%)}}.contact-mail{font-size:11px}.docs{border-color:rgba(24,53,45,.55)}.docs a{border-color:rgba(24,53,45,.55)}footer{background:#18352d}
@media(max-width:760px){.intro-layout{grid-template-columns:1fr;gap:31px}.about-photo{height:330px;width:70%;justify-self:end}.credentials{padding-top:238px}.photo-marquee{height:164px}.photo-marquee img{height:164px;width:164px}.three,.internship-grid{grid-template-columns:1fr}.intro .accent,.hero .accent,.credentials .accent{display:inline-block}.avatar-stage .bubble-2,.avatar-stage .bubble-5{color:#f8f0e3}}

/* Deeper hero and a photographic About background that resolves into solid green for copy. */
.hero{position:relative;background:radial-gradient(circle at 87% 85%,rgba(178,132,91,.38),transparent 30%),linear-gradient(135deg,#0d2d25 0%,#1a4034 48%,#7c5941 130%);color:#f3eddf}.hero:after{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(8,31,25,.28),transparent 52%)}.hero-copy,.hero-portrait,.hero-side{position:relative;z-index:1}.hero .scroll-link{color:#f3eddf}.hero .scroll-link b{border-color:#f3eddf}.hero .eyebrow{color:#d8c8aa}.hero-portrait{box-shadow:0 30px 70px rgba(0,0,0,.25)}
.nav{color:#f3eddf;border-color:rgba(243,237,223,.24)}
.intro{background:#153a30}.intro-layout{position:static;grid-template-columns:1.08fr .92fr}.intro .about-photo{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block}.intro .about-photo:before{background:linear-gradient(90deg,#153a30 0%,rgba(21,58,48,.98) 33%,rgba(21,58,48,.61) 55%,rgba(21,58,48,.08) 100%),linear-gradient(0deg,rgba(21,58,48,.48),transparent 45%)}.intro .about-photo img{width:100%;height:100%;object-position:72% 48%;filter:saturate(.52) brightness(.76) contrast(1.08)}.intro .section-index,.intro-layout{z-index:2}.intro .intro-text{max-width:530px}.intro .accent{color:#d8c19a}
.internship-link{grid-column:1/-1;justify-self:start;display:inline-flex;gap:27px;align-items:center;margin-top:16px;padding-bottom:9px;border-bottom:1px solid currentColor;color:#18352d;text-decoration:none;font:500 11px "DM Mono",monospace;letter-spacing:.04em}.internship-link b{font-size:20px}.credentials .accent{color:inherit}
.embedded-video{display:block;width:100%;aspect-ratio:9/16;border:0;background:#18352d}
@media(max-width:760px){.hero{background:linear-gradient(145deg,#0d2d25,#20463a 60%,#806048)}.intro-layout{grid-template-columns:1fr}.intro .about-photo{width:100%;height:100%;opacity:.9}.intro .about-photo img{object-position:68% center}.intro .about-photo:before{background:linear-gradient(90deg,#153a30 0%,rgba(21,58,48,.94) 45%,rgba(21,58,48,.34) 100%)}.intro .intro-text{max-width:100%}}

/* Maintain strong legibility over the About photograph. */
.intro-layout h2,.intro-layout .intro-text{position:relative;z-index:3;text-shadow:0 2px 18px rgba(0,0,0,.32)}.intro-layout .intro-text{padding:25px 28px 27px;background:linear-gradient(100deg,rgba(12,48,39,.9),rgba(16,60,48,.72));border-left:1px solid rgba(216,193,154,.5);backdrop-filter:blur(3px)}.intro-layout .tags{margin-top:25px}.intro-layout .tags span{background:rgba(16,57,46,.58)}
@media(max-width:760px){.intro-layout .intro-text{padding:20px;background:rgba(12,48,39,.82)}}

/* Keep the About copy clear on the solid-green side without covering the portrait. */
.intro .about-photo:before{background:linear-gradient(90deg,#153a30 0%,rgba(21,58,48,.98) 39%,rgba(21,58,48,.48) 54%,rgba(21,58,48,0) 70%),linear-gradient(0deg,rgba(21,58,48,.42),transparent 45%)}.intro .about-photo img{object-position:77% 48%}.intro-layout .intro-text{padding:0;background:none;border:0;backdrop-filter:none}
