:root{--background:#101615;--foreground:#e8e6dd;--primary:#a9beb3;--muted-foreground:#a1aaa5;--accent:#cf8279;--border:#ffffff20;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:95px}body{background:var(--background);color:var(--foreground);font:15px/1.8 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:9;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.8' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}a:hover{color:#e69c91}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid #e69c91;outline-offset:6px}.skip-link{position:fixed;left:20px;top:-80px;z-index:100;background:#fff;color:#111;padding:8px}.skip-link:focus{top:10px}.site-header{max-width:1320px;margin:auto;height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;border-bottom:1px solid var(--border);position:relative;z-index:5}.wordmark{font:24px var(--serif);display:flex;gap:14px;align-items:center}.seal{font:16px var(--serif);background:#a6473f;color:#f3e3d4;padding:3px 6px;border:1px solid #d78e78}.site-header nav{display:flex;gap:32px;font-size:12px;color:#bbc2bc}.motion-toggle{border:1px solid var(--border);background:transparent;color:#bfc6c0;padding:8px 12px;font-size:10px;cursor:pointer}.motion-toggle span{margin-left:12px}.reading-progress{position:fixed;top:0;left:0;height:2px;background:#c36b60;z-index:20;width:0}.container{max-width:1120px;margin:auto}.profile-section{position:relative;overflow:hidden;padding:90px 48px 0}.hero-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;position:relative;z-index:1}.eyebrow{font:10px/1.5 monospace;letter-spacing:2.6px;color:#a9bab2;margin-bottom:28px}h1{font:clamp(64px,7.5vw,108px)/.98 var(--serif);font-weight:400;letter-spacing:-5px}h1>span:first-child{font-style:italic;color:#acb6ad;font-size:.65em}.name-dot{color:#c56c5f}.hero-statement{font:25px/1.4 var(--serif);margin-top:30px;color:#d8dcd2}.profile-title{font-size:12px;color:#a9b5ae;margin:18px 0 28px}.hero-cta{display:inline-flex;align-items:center;gap:42px;font-size:12px;border-bottom:1px solid #a6b6ad;padding:0 0 8px}.hero-cta span{font-size:21px}.portrait-column{display:flex;flex-direction:column;align-items:center;justify-content:center}.profile-avatar{width:242px;height:308px;padding:8px;border:1px solid #b9c6bb40;position:relative;transform:rotate(3deg)}.profile-avatar-inner{width:100%;height:100%;overflow:hidden}.profile-avatar img{width:100%;height:100%;object-fit:cover;transform:rotate(-3deg) scale(1.12)}.profile-icons{display:flex;gap:26px;margin-top:30px;font-size:17px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.research-summary{grid-column:1/-1;margin-top:45px;border-top:1px solid var(--border);padding:30px 0 45px;display:grid;grid-template-columns:1fr 2.3fr;gap:50px}.research-summary h4{font:21px var(--serif)}.research-summary h4 span{display:block;font:9px monospace;letter-spacing:2px;color:#82978b;margin-top:14px}.research-summary p{color:#aeb9b1;font-size:13px}.ink-landscape{position:absolute;inset:0;pointer-events:none;overflow:hidden}.moon{position:absolute;width:350px;height:350px;right:7%;top:55px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#aa5145,#78382f 60%,#3b2724 85%);opacity:.62;filter:blur(1px);mask-image:linear-gradient(#000 60%,transparent);animation:moon-drift 20s ease-in-out infinite alternate}.mountains{position:absolute;inset:auto 0 40px;width:100%;height:620px;opacity:.65;animation:mist-drift 18s ease-in-out infinite alternate}#ink-particles{width:100%;height:100%;position:absolute;inset:0}.section{padding:85px 48px;border-top:1px solid var(--border);position:relative}h2{font:48px/1.2 var(--serif);font-weight:400;margin-bottom:35px;letter-spacing:-1px;display:flex;align-items:center;gap:20px}h2:before{font:10px monospace;letter-spacing:1px;color:#c4786d;content:'01 /'}#experience h2:before{content:'02 /'}#projects h2:before{content:'03 /'}h3{font:28px/1.4 var(--serif);font-weight:400;margin:40px 0 25px}h4{font:22px/1.45 var(--serif);font-weight:400;margin-bottom:14px;color:#e3e7dd}.section-intro{color:#a2afa6;margin-top:-18px;margin-bottom:35px}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:40px}.card-grid .card{padding:28px;border:1px solid var(--border);background:#ffffff02}.card-grid .card h4:before{content:'↗';display:block;color:#b86e60;font:22px monospace;margin-bottom:20px}.card{padding:28px 0;border-bottom:1px solid var(--border);transition:border-color .3s,background .3s}.card p,.highlight-list{font-size:13px;color:#aab6ad}.card:hover{border-color:#8a9e8c80}.paper-link{display:inline-block;margin-top:18px;font:11px monospace;color:#c9d4c6;border-bottom:1px solid #7c8b7c;padding-bottom:4px}.paper-link:after{content:' ↗'}.publication-note{display:block;font-size:11px;color:#91a298;margin-top:15px}.bg-gradient-secondary{background:#131b18}.timeline{border-left:1px solid #58695c;margin:50px 0 0 5px}.timeline-item{padding:0 0 35px 40px;position:relative}.timeline-dot{position:absolute;top:10px;left:-4px;width:7px;height:7px;background:#bb7566;box-shadow:0 0 0 6px #131b18}.timeline-card{padding:0 0 28px;border-bottom:1px solid var(--border)}.badge{display:inline-block;font:10px/1.7 monospace;padding:4px 8px;margin:4px 4px 4px 0;border:1px solid #879e8138;color:#b9c9b3}.badge-primary{color:#e49b8c;border-color:#b76e6155}.highlight-list{list-style:none;margin:15px 0 0}.highlight-list li{padding-left:16px;position:relative;margin:7px 0}.highlight-list li:before{content:'–';position:absolute;left:0;color:#a87465}.footer{padding:65px 48px 20px;border-top:1px solid var(--border)}.footer>.container>p:first-child{font:38px/1.5 var(--serif)!important}.footer a{color:#bb8678}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--border);margin-top:60px;padding-top:20px;font:10px/1.8 monospace;color:#98a498}.reveal{transition:opacity .8s ease,transform .8s ease}.reveal.pending{opacity:0;transform:translateY(22px)}.motion-paused *{animation-play-state:paused!important}.motion-paused .reveal{transition:none}.motion-paused .reveal.pending{opacity:1;transform:none}@keyframes moon-drift{to{transform:translate(10px,12px)}}@keyframes mist-drift{to{transform:translate(-15px,12px) scale(1.025)}}@media(min-width:1500px){.profile-section{padding-top:110px}}@media(max-width:760px){.site-header{padding:0 22px;height:76px}.site-header nav{gap:16px}.site-header nav a:last-child{display:none}.wordmark{font-size:20px;gap:8px}.seal{font-size:12px}.motion-toggle{font-size:0;padding:8px}.motion-toggle span{font-size:13px;margin:0}.profile-section{padding:55px 24px 0}.hero-layout{grid-template-columns:1.2fr 1fr;gap:18px}h1{font-size:64px;letter-spacing:-3px}h1>span:first-child{display:block;font-size:36px;margin:9px 0}h1 br{display:none}.eyebrow{font-size:8px;letter-spacing:1px}.hero-statement{font-size:21px}.profile-title{font-size:11px}.profile-avatar{width:145px;height:205px}.portrait-column{justify-content:flex-start;padding-top:50px}.profile-icons{gap:20px;font-size:15px}.moon{width:260px;height:260px;right:-90px;top:75px}.research-summary{display:block;margin-top:35px;padding-top:25px}.research-summary h4{margin-bottom:22px}.research-summary h4 span{display:inline;margin-left:18px}.section{padding:55px 24px}.card-grid{grid-template-columns:1fr;gap:16px}h2{font-size:38px}h3{font-size:25px}.timeline-item{padding-left:24px}.footer{padding:45px 24px 20px}.footer>.container>p:first-child{font-size:27px!important}.footer-bottom{flex-wrap:wrap}.footer-bottom span{display:none}#projects .container>div[style*="grid"]{grid-template-columns:1fr!important;gap:0!important;margin:40px 0!important}}@media(max-width:380px){.profile-avatar{width:118px;height:176px}.site-header nav{gap:10px}h1{font-size:54px}.hero-cta{gap:16px}.eyebrow{max-width:160px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.pending{opacity:1;transform:none}}
/* Ivory paper, layered shanshui, and clear ink typography. */
:root{--background:#f5f3ed;--foreground:#242b28;--primary:#445e51;--muted-foreground:#58655d;--accent:#a34d41;--border:#263c2d26}
body{background:var(--background)}body:before{opacity:.045}.site-header{background:#f5f3edc9}.site-header nav,.motion-toggle{color:#4f5f54}.seal{color:#fff0dd}.eyebrow{color:#4e6557}h1>span:first-child{color:#5c6a60}.name-dot{color:#ae5143}.hero-statement{color:#35483a}.profile-title{color:#53675a}.hero-cta{border-color:#586f5c}.profile-avatar{border-color:#7e8f7760;background:#f7f3e9}.profile-icons{color:#354e3c}.research-summary{background:#f5f3edc9;backdrop-filter:blur(5px);padding:28px 24px 35px;margin-bottom:0}.research-summary h4 span{color:#64775f}.research-summary p{color:#445a49}.ink-landscape{background-image:url('assets/ink-landscape.png');background-size:cover;background-position:center 52%;mask-image:linear-gradient(#000 75%,transparent 100%)}.moon,.mountains{display:none}.ink-landscape:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f5f3edf0 0%,#f5f3edd0 26%,#f5f3ed30 59%,transparent 100%);pointer-events:none}.ink-landscape:before{content:'';position:absolute;inset:-8%;z-index:1;background:radial-gradient(ellipse at 65% 70%,#f7f5ed9c,transparent 48%),radial-gradient(ellipse at 30% 85%,#f7f5edb3,transparent 40%);animation:cloud-flow 24s ease-in-out infinite alternate;pointer-events:none}#ink-particles{z-index:2;opacity:.7}.bg-gradient-secondary{background:#eeeee6}h4{color:#293d30}.card p,.highlight-list{color:#4d6153}.card-grid .card{background:#ffffff4a}.paper-link{color:#425d48}.publication-note{color:#5c705e}.badge{border-color:#687e6145;color:#4b634c}.badge-primary{color:#9e483b;border-color:#a85b4666}.timeline-dot{box-shadow:0 0 0 6px #eeeee6}.footer{background:#e9ece3}.footer a{color:#945044}.footer-bottom{color:#596e59}.reveal.pending{transform:translateY(16px)}@keyframes cloud-flow{from{transform:translate(-2%,1%)}to{transform:translate(3%,-2%)}}@media(max-width:760px){.ink-landscape{background-position:60% center}.ink-landscape:after{background:linear-gradient(90deg,#f5f3edd9,#f5f3ed80 55%,#f5f3ed10)}.research-summary{padding:24px 16px}.hero-layout{gap:14px}}

.wordmark .seal{display:block;width:38px;height:40px;padding:0;border:0;background:transparent;transform:rotate(-5deg);flex-shrink:0}@media(max-width:760px){.wordmark .seal{width:30px;height:32px}}
/* Keep the seal legible even when an older theme stylesheet is cached. */
.wordmark .seal{width:42px;height:44px;background:transparent!important;border:0!important;padding:0!important;opacity:1;filter:none;transform:rotate(-3deg)}@media(max-width:760px){.wordmark .seal{width:34px;height:36px}}

/* A slow crane silhouette crosses the landscape behind the content. */
.crane-flock{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.crane{position:absolute;width:105px;height:70px;left:-160px;top:13%;opacity:0;animation:crane-crossing 38s linear infinite;filter:drop-shadow(0 1px 1px #ffffff65)}.crane-wing{transform-origin:78px 55px;animation:crane-wingbeat 2.6s ease-in-out infinite}.crane-wing.rear{animation-delay:-1.3s;opacity:.8}.crane-wing.front{animation-delay:-.2s}@keyframes crane-crossing{0%,8%{transform:translate(-5vw,20px) scale(.8);opacity:0}12%{opacity:.85}45%{transform:translate(62vw,-25px) scale(.9);opacity:.9}69%{transform:translate(calc(100vw + 180px),-5px) scale(.8);opacity:0}100%{transform:translate(calc(100vw + 180px),-5px);opacity:0}}@keyframes crane-wingbeat{0%,100%{transform:rotate(-8deg) scaleY(1)}50%{transform:rotate(13deg) scaleY(.4)}}@media(max-width:760px){.crane{width:75px;height:50px;top:6%}}@media(prefers-reduced-motion:reduce){.crane-flock{display:none}}
.crane{animation-delay:-10s}
/* Open, spacious sections; the content supplies the structure. */
.profile-section{padding-bottom:110px;min-height:690px}.section{padding:115px 48px;border-top:0}.section+.section{margin-top:24px}.section .container{max-width:1060px}.section-label{font:10px/1.5 monospace;letter-spacing:2.2px;color:#9f5141;margin-bottom:24px}h2{font-size:54px;line-height:1.08;margin-bottom:50px;letter-spacing:-1.8px}h2:before{display:none}.section-intro{margin-top:-24px;margin-bottom:54px;font:20px/1.5 var(--serif);color:#667165}.about-section{background:#fffdf7;padding-top:110px;padding-bottom:110px}.about-layout{display:grid;grid-template-columns:1fr 1.35fr;gap:110px;align-items:start}.about-layout h2{margin-bottom:0}.about-copy{font:18px/1.95 var(--serif);color:#47564b;padding-top:34px}.about-copy p{max-width:620px}.card,.card-grid .card,.timeline-card{border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;padding:0;transition:none}.card:hover{border-color:transparent;background:transparent;transform:none;box-shadow:none}.card-grid{gap:90px;margin:0}.card-grid .card h4:before{display:none}.card-grid h4{font-size:29px;margin-bottom:22px}.card p,.highlight-list{font-size:14px;line-height:1.9}.publications-section{background:#eeeee7}.publications-section .card{padding:38px 0;border-top:1px solid #53634f35;max-width:880px;margin-left:auto}.publications-section .card:last-child{padding-bottom:0}.publications-section h4{font-size:25px;max-width:800px}.paper-link{margin-top:15px;font-family:inherit;font-size:12px;border:0;text-decoration:underline;text-underline-offset:5px}.badge{border:0;padding:0;background:transparent;border-radius:0;font:11px/1.8 monospace;color:#6b7668;margin:0 20px 10px 0;box-shadow:none}.bg-gradient-secondary{background:transparent}.timeline{border:0;margin:65px 0 0 0}.timeline-dot{display:none}.timeline-item{padding:0 0 0 0;margin:0 0 65px}.timeline-item:last-child{margin-bottom:0}.timeline-card{border-top:1px solid #53634f35;padding-top:28px}.timeline-card>div{gap:30px}.timeline-card h4{font-size:27px;margin-bottom:8px}.timeline-card .highlight-list{max-width:710px}.highlight-list li:before{content:'—';color:#84927d}.highlight-list li{padding-left:22px}.education-section{background:#eeeee7}.education-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:100px}.education-layout h3{margin:0 0 36px;font-size:34px}.education-layout .card{padding:26px 0;border-top:1px solid #53634f35;margin-bottom:25px}.education-layout h4{font-size:23px}.footer{padding-top:90px;background:#f5f3ed}.footer>.container>p:first-child{font-size:42px!important}.card-grid .highlight-list{margin-top:25px}@media(max-width:760px){.profile-section{min-height:0;padding-bottom:70px}.section{padding:70px 24px}.section+.section{margin-top:0}h2{font-size:42px;margin-bottom:35px}.section-label{margin-bottom:18px}.about-layout,.education-layout{grid-template-columns:1fr;gap:30px}.about-copy{padding-top:0;font-size:17px}.card-grid{gap:42px}.section-intro{margin-top:-12px;margin-bottom:38px;font-size:18px}.publications-section .card{padding:30px 0}.publications-section h4{font-size:23px}.timeline{margin-top:40px}.timeline-item{margin-bottom:48px}.timeline-card h4{font-size:24px}.education-layout h3{font-size:30px;margin-bottom:24px}.footer>.container>p:first-child{font-size:30px!important}}
/* Brush-textured crane settles on the upper edge of the photograph. */
.crane-flock{z-index:3}.crane{left:0;top:0;width:120px;height:80px;filter:none;animation:crane-landing 34s linear infinite;animation-delay:-2s;transform-origin:center}.crane-brush{opacity:.92}.crane-wing.front{animation:crane-fold-front 34s ease-in-out infinite;animation-delay:-2s}.crane-wing.rear{animation:crane-fold-rear 34s ease-in-out infinite;animation-delay:-2s}.crane-legs{animation:crane-flight-legs 34s linear infinite;animation-delay:-2s}.crane-standing-legs{opacity:0;animation:crane-perch-legs 34s linear infinite;animation-delay:-2s}@keyframes crane-landing{0%{transform:translate(-150px,30px) rotate(-5deg);opacity:0}5%{opacity:.9}30%{transform:translate(calc(var(--crane-land-x) - 130px),calc(var(--crane-land-y) - 75px)) rotate(3deg);opacity:.95}41%{transform:translate(var(--crane-land-x),calc(var(--crane-land-y) - 7px)) rotate(-3deg)}45%,68%{transform:translate(var(--crane-land-x),var(--crane-land-y)) rotate(0);opacity:.95}73%{transform:translate(calc(var(--crane-land-x) + 30px),calc(var(--crane-land-y) - 50px)) rotate(-8deg)}90%{transform:translate(calc(100vw + 160px),-100px) rotate(-5deg);opacity:.8}94%,100%{transform:translate(calc(100vw + 160px),-120px);opacity:0}}@keyframes crane-fold-front{0%,10%,20%,30%{transform:rotate(-10deg) scaleY(1)}5%,15%,25%,35%{transform:rotate(18deg) scaleY(.3)}41%{transform:rotate(-15deg) scaleY(1)}46%,68%{transform:rotate(55deg) scale(.66,.38)}73%,83%,93%{transform:rotate(-10deg) scaleY(1)}78%,88%,98%{transform:rotate(18deg) scaleY(.3)}}@keyframes crane-fold-rear{0%,10%,20%,30%{transform:rotate(12deg) scaleY(.4)}5%,15%,25%,35%,41%{transform:rotate(-10deg) scaleY(1)}46%,68%{transform:rotate(35deg) scale(.6,.3)}73%,83%,93%{transform:rotate(15deg) scaleY(.4)}78%,88%,98%{transform:rotate(-10deg) scaleY(1)}}@keyframes crane-flight-legs{0%,37%{opacity:1}42%,70%{opacity:0}76%,100%{opacity:1}}@keyframes crane-perch-legs{0%,37%{opacity:0}42%,70%{opacity:1}76%,100%{opacity:0}}@media(max-width:760px){.crane{width:92px;height:61.33px}}

.crane-art{width:150px;height:150px;object-fit:contain;filter:none;mix-blend-mode:multiply}@media(max-width:760px){.crane-art{width:110px;height:110px}}

/* Soft translucent mist drifts across the mountain valleys. */
.mist-layer{position:absolute;inset:20% -18% -8%;pointer-events:none;z-index:1;will-change:transform;filter:blur(15px)}.mist-distant{background:radial-gradient(ellipse 44% 9% at 62% 43%,#faf8eff0,transparent 76%),radial-gradient(ellipse 34% 7% at 35% 62%,#f9f6ecd9,transparent 80%),radial-gradient(ellipse 37% 8% at 80% 76%,#f8f5e9c4,transparent 80%);opacity:.48;animation:mist-distant-drift 38s ease-in-out infinite alternate}.mist-near{background:radial-gradient(ellipse 46% 9% at 49% 77%,#fffdf4ed,transparent 78%),radial-gradient(ellipse 35% 6% at 78% 56%,#fffaf0d1,transparent 82%);opacity:.32;animation:mist-near-drift 29s ease-in-out infinite alternate}@keyframes mist-distant-drift{from{transform:translate(-3%,1%) scale(1)}to{transform:translate(4%,-2%) scale(1.04)}}@keyframes mist-near-drift{from{transform:translate(4%,2%) scale(1.03)}to{transform:translate(-4%,-1%) scale(1)}}@media(prefers-reduced-motion:reduce){.mist-layer{animation:none;will-change:auto}}
/* The crane glides along one consistent heading, without rigid wing flipping. */
.crane-art{animation-timing-function:linear;transform-origin:50% 60%}
@keyframes crane-landing{0%{transform:translate(-170px,35px);opacity:0}6%{opacity:.9}25%{transform:translate(calc(var(--crane-land-x) - 170px),calc(var(--crane-land-y) - 42px)) rotate(-3deg);opacity:.95}37%{transform:translate(calc(var(--crane-land-x) - 24px),calc(var(--crane-land-y) - 10px)) rotate(1deg)}46%,68%{transform:translate(var(--crane-land-x),var(--crane-land-y));opacity:.95}76%{transform:translate(calc(var(--crane-land-x) + 80px),calc(var(--crane-land-y) - 40px)) rotate(-4deg)}92%{transform:translate(calc(100vw + 170px),-25px) rotate(-2deg);opacity:.9}96%,100%{transform:translate(calc(100vw + 170px),-25px);opacity:0}}

.crane-art{width:150px;height:100px}@media(max-width:760px){.crane-art{width:110px;height:73.33px}}

.ink-heading{display:flex;align-items:flex-start;gap:16px}.ink-heading>span{min-width:0}.section-ink-icon{display:block;width:38px;height:38px;flex:0 0 38px;color:#52604c;overflow:visible;margin-top:6px}h3 .section-ink-icon{width:31px;height:31px;flex-basis:31px;margin-top:4px}h4 .section-ink-icon{width:28px;height:28px;flex-basis:28px;margin-top:2px}h4.ink-heading{gap:13px}.about-layout h2.ink-heading{gap:18px}@media(max-width:760px){.section-ink-icon{width:32px;height:32px;flex-basis:32px;margin-top:4px}h4 .section-ink-icon{width:25px;height:25px;flex-basis:25px}.ink-heading{gap:13px}}

.section-label-with-icon{display:flex;align-items:center;gap:14px}.section-label-with-icon .section-ink-icon{width:30px;height:30px;flex-basis:30px;margin:0}
/* Barely visible paper grain and scattered fibers, without affecting contrast. */
body:before{opacity:.105;background-image:url('assets/paper-grain.svg');background-size:240px 240px;background-repeat:repeat;mix-blend-mode:multiply}
