/* Original site/landing geometry retained. Local study additions only. */
@font-face{font-family:'Geist Pixel';src:url('fonts/GeistPixel-VF.woff2') format('woff2')}body{padding-top:100px}.navbar{background:#fff}.nav{display:flex;align-items:center;justify-content:space-between;padding-block:26px}.signature{font-family:'Awesome Serif Italic',serif;font-size:34px;line-height:1}.nav__links{display:flex;gap:32px}.nav__links a{font-size:16px}.nav button{border:0;background:#eee;width:44px;height:44px;border-radius:50%;font-size:12px;cursor:pointer}.hero__lede{font-size:32px;line-height:1.4}.hero__name{font-size:min(240px,18.3vw);margin-top:35px;padding-bottom:10px}.hero__name .char{display:inline-block;font-variation-settings:'ELSH' var(--elsh,1);will-change:font-variation-settings;min-width:.02em}.hero__meta{list-style:none;padding:0}.pillars{border-block:1px solid var(--line)}.pillar__icon{font:36px 'Geist Pixel';flex:0 0 56px}.pillar__body{line-height:1.65}.section-head{display:flex;align-items:baseline;justify-content:space-between;padding-block:65px 35px}.section-head>span{font:11px monospace}.study-work{display:grid;grid-template-columns:38% 56%;gap:6%;padding-block:70px 100px;border-bottom:1px solid var(--line)}.work-copy>span{font:11px monospace}.work-copy h3{font-size:46px;line-height:1.1;font-weight:400;letter-spacing:-.035em;margin:28px 0}.work-copy>p{font-size:18px;line-height:1.65;color:var(--muted);max-width:420px}.work-copy dl{font-size:13px;line-height:1.65;margin:35px 0}.work-copy dt{color:#777;font-size:11px;margin-top:18px}.work-copy dd{margin:5px 0}.work-copy>a{font-size:14px;border-bottom:1px solid;padding-bottom:4px}.work-media{display:block;aspect-ratio:1;overflow:hidden;background:#eee;align-self:center}.work-media img{width:100%;height:100%;object-fit:contain;transition:transform .8s cubic-bezier(.2,.8,.2,1)}.work-media:hover img{transform:scale(1.035)}.unseen-work .work-media{aspect-ratio:1.2;padding:15px}.studio{padding-bottom:100px}.studio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.studio-grid img{width:100%;height:300px;object-fit:cover}.studio-grid h3{font-size:24px;margin:22px 0 12px;font-weight:400}.studio-grid p{color:#777;line-height:1.6}.gadget-slot{background:#eee;padding:25px;min-height:400px}.gadget-slot>span{font:11px monospace}.gadget-slot h3{font:46px 'Geist Pixel',monospace;line-height:1.2}.about{padding-bottom:60px}.about__grid{gap:40px}.about__body{margin-top:100px;font-size:20px;line-height:1.65}.about__body p+p{margin-top:0}.about__photo{background:#e9e9e9;isolation:isolate;cursor:crosshair}.portrait-placeholder{height:100%;min-height:400px;padding:30px;display:flex;flex-direction:column;justify-content:space-between}.portrait-placeholder>span:first-child{font:11px monospace}.portrait-mark{font:150px 'Geist Pixel';letter-spacing:-.1em;line-height:1}.portrait-mark>span{font:50px 'Awesome Serif Italic';vertical-align:top;letter-spacing:0}.portrait-placeholder small{font-size:11px;color:#777;line-height:1.6}.about__photo canvas{position:absolute;inset:0;width:100%;height:100%;display:none}.portrait-select{position:absolute;right:15px;bottom:15px;background:#ffffffdf;border:0;padding:10px;font-size:12px;z-index:2;cursor:pointer}.photo-controls{padding-top:35px;display:flex;gap:22px;align-items:center;flex-wrap:wrap;font-size:11px;color:#777}.photo-controls>span:first-child{font-family:monospace;color:#111}.photo-controls button{background:none;border:0;border-bottom:1px solid #777;padding:0;font:inherit;color:#111;cursor:pointer}.contact{padding-block:100px}.contact .display{font-size:clamp(52px,8vw,125px);line-height:1.05;max-width:1000px}.contact p{font-size:20px;color:#777;line-height:1.65;margin:40px 0}.contact-links{display:flex;gap:40px;font-size:14px}.contact-links a{border-bottom:1px solid;padding-bottom:7px}.footer{display:flex;justify-content:space-between;padding-block:35px;font-size:11px;gap:20px;flex-wrap:wrap}.about-trail{position:fixed;inset:0;z-index:60;pointer-events:none;overflow:hidden}.about-trail img{position:absolute;width:170px;height:226px;object-fit:cover;will-change:transform,opacity}.study-badge{position:fixed;bottom:8px;right:12px;z-index:110;font:9px monospace;color:#888;background:#fff9;padding:4px}.reveal-title{transform-origin:left bottom}.about input{display:none}@media(max-width:767px){body{padding-top:70px}.navbar .nav{padding:12px 20px}.nav__links{gap:15px}.nav__links a{font-size:11px}.nav__links a:nth-child(4),.nav__links a:nth-child(5){display:none}.signature{font-size:27px}.hero{padding-top:50px;padding-bottom:50px}.hero__lede{font-size:25px}.hero__meta{font-size:9px;gap:10px;justify-content:flex-start;flex-wrap:wrap;margin-top:55px}.hero__name{font-size:17vw}.pillars__grid{display:block}.pillar{padding:25px 0}.pillar+.pillar:before{display:none}.section-head{padding-top:45px}.section-head .display{font-size:40px}.section-head>span{font-size:9px}.study-work{grid-template-columns:1fr;gap:30px;padding-block:40px}.work-copy h3{font-size:36px}.work-copy p{font-size:16px}.work-media{grid-row:1}.studio-grid{grid-template-columns:1fr}.studio-grid img{height:350px}.about__body{margin-top:35px;font-size:18px}.about__photo{aspect-ratio:1.2;min-height:300px}.portrait-placeholder{min-height:300px}.photo-controls{gap:15px}.contact{padding-block:65px}.contact p{font-size:18px}.contact-links{gap:25px}.footer{font-size:9px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.about-trail{display:none}}

#about,#works,#studio,#contact{scroll-margin-top:160px}
/* Review 02: Jithin geometry, Dan type roles; warm-white candidate. */
@font-face{font-family:'Geist Mono';src:url('fonts/GeistMono-VF.woff') format('woff');font-weight:100 900;font-display:swap}
:root{--bg:#faf9f6;--study-paper:#faf9f6}
body,.navbar{background:var(--study-paper)}
body,button,input,.hero__lede,.nav__links a,.pillar__body,.about__body,.work-copy,.studio-grid p,.contact p,.contact-links,.footer,.photo-controls{font-family:'Geist Mono','PingFang SC',monospace}
.display,.work-copy h3,.studio-grid h3,.pillar__title,.signature{font-family:'Geist Pixel','PingFang SC',monospace;font-weight:400;font-style:normal;letter-spacing:-.035em}
.signature{font-size:28px}.display{font-variation-settings:'ELSH' 1}.hero__lede{font-size:28px;line-height:1.55}.pillar__title{font-size:22px;line-height:1.35}.pillar__body{font-size:14px}.about__body{font-size:18px;line-height:1.8}.nav__links a{font-size:13px}
.pillars{border:0}.pillar+.pillar::before{display:none}.hero{border-bottom:0}
.pixel-pointer{position:fixed;left:0;top:0;width:9px;height:9px;background:#fff;mix-blend-mode:difference;pointer-events:none;z-index:10000;opacity:0;transform:translate(-50%,-50%);transition:width .12s,height .12s,opacity .12s}
.pixel-pointer.active{width:18px;height:18px}
@media(hover:hover) and (pointer:fine){html,body,body *{cursor:none!important}.pixel-pointer.visible{opacity:1}input[type=file]{cursor:auto!important}}
@media(hover:none),(pointer:coarse){.pixel-pointer{display:none}}
@media(max-width:767px){.hero__lede{font-size:22px}.pillar__title{font-size:21px}.about__body{font-size:16px}}

.hero__name-row{border:0!important}

.hero::after,.pillars::after{display:none}
/* Review 03: independent capability boxes and pixel typewriter intro. */
.pillars__grid{gap:24px}.pillar{display:flex;flex-direction:column;gap:20px;border:1px solid #e8e6e1;border-radius:8px;padding:24px;background:#ffffff70;transition:border-color .25s}.pillar:hover{border-color:#aaa69c}.pillar__title{font-size:18px;font-weight:400;line-height:1.5;letter-spacing:0;margin-bottom:12px}.pillar__body{font-size:14px;line-height:1.65}.pillar__icon--tile{background:none;border-radius:0;width:32px;height:32px;flex:auto;display:block}.pillar__icon svg{width:28px;height:28px;fill:currentColor;shape-rendering:crispEdges}
.hero__lede{font-family:'Geist Pixel','PingFang SC',monospace;font-size:24px;line-height:1.6;position:relative;font-weight:400}.typing-reserve{visibility:hidden}.typing-live{position:absolute;inset:0;display:block}.typing-caret{display:inline-block;width:.55em;height:1.1em;background:currentColor;vertical-align:text-bottom;margin-left:2px}.typing-done .typing-caret{animation:caret 1s steps(1) 3 forwards}@keyframes caret{50%{opacity:0}100%{opacity:0}}
@media(max-width:767px){.pillars__grid{display:flex;gap:18px}.pillar{padding:24px}.hero__lede{font-size:22px}}
/* Review 04: Dan actually uses static Geist Pixel Square, not variable ELSH. */
@font-face{font-family:'Dan Pixel Square';src:url('fonts/GeistPixel-Square.woff2') format('woff2');font-weight:400;font-display:swap}
.pillar__title{font-family:'Dan Pixel Square','PingFang SC',monospace;font-size:18px;font-weight:600;line-height:28px;letter-spacing:normal}
.hero__lede{font-family:'Dan Pixel Square','PingFang SC',monospace;font-size:20px;font-weight:400;line-height:1.625;letter-spacing:normal}
/* Review 05: subordinate gray metadata; Dan's observed navigation metrics. */
.hero__meta{color:#78756e;font-family:'Geist Mono','PingFang SC',monospace;font-size:11px;font-weight:400;letter-spacing:1.1px}
.hero__meta li{color:inherit}.nav__links a{font-family:'Geist Mono','PingFang SC',monospace;font-size:12px;font-weight:400;letter-spacing:1.2px;text-transform:uppercase;color:#1a1a1a}
@media(max-width:767px){.nav__links a{font-size:10px;letter-spacing:.7px}.hero__meta{font-size:9px;letter-spacing:.7px}}
/* Review 06: Dan role hierarchy; independent name/melt intentionally preserved. */
:root{--dan-ink:#1a1a1a;--dan-muted:#94918a;--dan-80:rgb(26 26 26 / .8);--dan-70:rgb(26 26 26 / .7);--dan-60:rgb(26 26 26 / .6);--dan-50:rgb(26 26 26 / .5);--dan-40:rgb(26 26 26 / .4)}
body{color:var(--dan-ink)}
.hero__lede{color:var(--dan-80)}
.hero__meta{color:var(--dan-60);font-size:11px;line-height:16.5px;letter-spacing:2.2px}
.hero__meta li:nth-child(even){color:var(--dan-40)}
.section-head .display,.about .display{font-family:'Geist Mono','PingFang SC',monospace;font-size:clamp(42px,5.625vw,72px);font-weight:700;line-height:1;letter-spacing:normal;font-style:normal}
.section-head>span,.work-copy>span,.gadget-slot>span{font-family:'Geist Mono','PingFang SC',monospace;font-size:10px;line-height:15px;letter-spacing:1.5px;color:var(--dan-50);font-weight:400}
.work-copy h3{font-family:'Dan Pixel Square','PingFang SC',monospace;font-size:30px;line-height:36px;font-weight:700;letter-spacing:normal;color:var(--dan-ink)}
.work-copy>p,.studio-grid p{font-family:'Geist Mono','PingFang SC',monospace;font-size:14px;line-height:22.75px;color:var(--dan-70)}
.work-copy dl{font-family:'Geist Mono','PingFang SC',monospace;font-size:14px;line-height:20px}.work-copy dt{font-size:10px;line-height:15px;letter-spacing:1.5px;text-transform:uppercase;color:var(--dan-50)}.work-copy dd{color:var(--dan-muted)}
.work-copy>a,.contact-links{font-family:'Geist Mono','PingFang SC',monospace;font-size:12px;line-height:16px;letter-spacing:1.2px;color:var(--dan-ink)}
.pillar__title{color:var(--dan-ink)}.pillar__body{color:var(--dan-70)}
.studio-grid h3,.gadget-slot h3{font-family:'Dan Pixel Square','PingFang SC',monospace;font-size:18px;line-height:28px;font-weight:600;letter-spacing:normal;color:var(--dan-ink)}
.about__body{font-family:'Geist Mono','PingFang SC',monospace;font-size:20px;line-height:32.5px;color:var(--dan-80)}.about__body p:first-child{color:var(--dan-ink)}.about__body p+p{margin-top:24px}
.contact .display{font-family:'Dan Pixel Square','PingFang SC',monospace;font-size:30px;line-height:48.75px;font-weight:400;letter-spacing:normal;color:var(--dan-80)}
.contact p{font-family:'Geist Mono','PingFang SC',monospace;font-size:14px;line-height:22.75px;color:var(--dan-40);max-width:580px;margin:24px 0 32px}
.contact-links{color:var(--dan-70)}.photo-controls{color:var(--dan-50)}.photo-controls>span:first-child{color:var(--dan-60)}.footer{font-family:'Geist Mono','PingFang SC',monospace;font-size:12px;line-height:16px;color:var(--dan-40)}.footer a{color:var(--dan-50);letter-spacing:.6px}
@media(max-width:767px){.hero__meta{font-size:9px;letter-spacing:1px}.section-head{gap:20px;align-items:flex-start}.section-head .display,.about .display{font-size:40px}.section-head>span{max-width:110px}.about__body{font-size:18px;line-height:29.25px}.work-copy h3{font-size:26px;line-height:32px}.contact .display{font-size:26px;line-height:42px}}

.nav-spacer{width:44px;flex:0 0 44px}@media(max-width:767px){.nav-spacer{display:none}}
/* Review 07: approved Chinese families; English and name motion unchanged. */
@font-face{font-family:'Sarasa UI SC';src:url('fonts/SarasaUI-SC-Regular.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:'Sarasa UI SC';src:url('fonts/SarasaUI-SC-Bold.woff2') format('woff2');font-weight:700;font-display:swap}@font-face{font-family:'Fusion zh';src:url('fonts/Fusion-zh-Hans.woff2') format('woff2');font-weight:400;font-display:swap}
html[lang=zh-CN] body,html[lang=zh-CN] button,html[lang=zh-CN] .nav__links a,html[lang=zh-CN] .pillar__body,html[lang=zh-CN] .work-copy,html[lang=zh-CN] .work-copy p,html[lang=zh-CN] .work-copy dl,html[lang=zh-CN] .work-copy>a,html[lang=zh-CN] .studio-grid p,html[lang=zh-CN] .about__body,html[lang=zh-CN] .contact p,html[lang=zh-CN] .contact-links,html[lang=zh-CN] .footer,html[lang=zh-CN] .photo-controls{font-family:'Geist Mono','Sarasa UI SC',sans-serif}
html[lang=zh-CN] .section-head .display,html[lang=zh-CN] .about .display{font-family:'Geist Mono','Sarasa UI SC',sans-serif;font-weight:700}
html[lang=zh-CN] .hero__lede,html[lang=zh-CN] .pillar__title,html[lang=zh-CN] .work-copy h3,html[lang=zh-CN] .studio-grid h3,html[lang=zh-CN] .gadget-slot h3,html[lang=zh-CN] .contact .display{font-family:'Dan Pixel Square','Fusion zh',sans-serif;font-weight:400}
html[lang=zh-CN] .hero__lede{font-size:24px;line-height:1.6}html[lang=zh-CN] .pillar__title,html[lang=zh-CN] .studio-grid h3,html[lang=zh-CN] .gadget-slot h3{font-size:24px;line-height:1.5}
html[lang=zh-CN] .nav__links a{letter-spacing:.06em}html[lang=zh-CN] .hero__meta{font-family:'Geist Mono','Sarasa UI SC',sans-serif;letter-spacing:.04em}html[lang=zh-CN] .section-head>span,html[lang=zh-CN] .work-copy>span,html[lang=zh-CN] .gadget-slot>span{font-family:'Geist Mono','Sarasa UI SC',sans-serif;letter-spacing:.04em}
@media(max-width:767px){html[lang=zh-CN] .hero__lede{font-size:24px}html[lang=zh-CN] .nav__links a{font-size:12px}}
/* Review 08: same icon slots, numbered in dark brick red; no layout changes. */
.pillar__icon--tile{font-family:'Geist Mono',monospace;font-size:12px;font-weight:400;line-height:16px;letter-spacing:.06em;color:#843f35}
