:root{--ink:#111214;--ink2:#22252a;--paper:#eee9df;--mist:#aeb8c3;--steel:#7f8d9c;--clay:#b96f52;--line:rgba(238,233,223,.19);--pad:clamp(20px,3.2vw,52px);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--ink)}body{background:var(--ink);color:var(--paper);font-family:Manrope,"PingFang SC",sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}
.noise{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;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='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.cursor-halo{position:fixed;z-index:0;width:460px;height:460px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(174,184,195,.12),transparent 67%);transform:translate(-50%,-50%)}.scroll-progress{position:fixed;inset:0 0 auto;height:3px;z-index:110}.scroll-progress i{display:block;width:100%;height:100%;background:var(--clay);transform:scaleX(0);transform-origin:left}
.topbar{position:fixed;z-index:80;inset:0 0 auto;height:76px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--pad);mix-blend-mode:difference;color:#fff}.monogram{font-size:20px;font-weight:800;letter-spacing:-.06em;width:42px}.topbar nav{display:flex;gap:clamp(24px,4vw,64px);text-transform:uppercase;font:500 11px/1 DM Mono,monospace;letter-spacing:.1em}.topbar nav a{position:relative}.topbar nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:currentColor;transition:right .35s var(--ease)}.topbar nav a:hover:after{right:0}.top-contact{justify-self:end;font:500 11px/1 DM Mono,monospace;letter-spacing:.08em;border:1px solid rgba(255,255,255,.45);padding:12px 16px;border-radius:999px}
.hero{min-height:100svh;position:relative;overflow:hidden;padding:104px var(--pad) 26px;display:grid;grid-template-rows:auto 1fr auto;background:linear-gradient(135deg,#0e0f11,#17191d 65%,#111214);isolation:isolate}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.9%,rgba(255,255,255,.055) 50%,transparent 50.1%)}.hero-copy{position:relative;z-index:5}.eyebrow,.section-label{font:500 11px/1.2 DM Mono,monospace;letter-spacing:.12em;text-transform:uppercase}.hero-copy h1{margin-top:18px;line-height:.79;letter-spacing:-.075em;text-transform:uppercase;white-space:nowrap}.hero-copy h1 span{display:block;color:var(--mist);font-size:clamp(55px,8.2vw,134px);font-weight:800}.hero-copy h1 strong{display:block;font-size:clamp(86px,14.7vw,240px);font-weight:800;color:var(--paper)}
.hero-sentence{position:absolute;z-index:8;left:var(--pad);bottom:96px;display:flex;align-items:end;gap:30px}.hero-sentence p{max-width:370px;font:600 clamp(18px,2vw,30px)/1.35 "Noto Serif SC",serif}.round-cta{width:86px;height:86px;border-radius:50%;border:1px solid rgba(238,233,223,.38);display:grid;place-items:center;position:relative;background:rgba(238,233,223,.05);backdrop-filter:blur(12px);transition:background .3s}.round-cta:hover{background:var(--clay)}.round-cta span{font:500 9px/1.2 DM Mono,monospace;letter-spacing:.1em}.round-cta b{position:absolute;right:17px;bottom:13px;font-weight:400}
.portrait-stage{position:absolute;z-index:4;width:min(53vw,770px);height:82%;left:50%;bottom:0;transform:translateX(-50%);transform-style:preserve-3d}.portrait-stage img{position:absolute;z-index:3;height:100%;width:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 28px 40px rgba(0,0,0,.34));transform:translate3d(var(--px,0),var(--py,0),0);transition:transform .12s linear}.portrait-aura{position:absolute;z-index:1;width:64%;aspect-ratio:1;left:18%;top:25%;border-radius:50%;background:linear-gradient(135deg,rgba(174,184,195,.33),rgba(185,111,82,.18));box-shadow:0 0 100px rgba(174,184,195,.09);transform:translate3d(calc(var(--px,0)*-.35),calc(var(--py,0)*-.35),0)}.portrait-aura:before,.portrait-aura:after{content:"";position:absolute;inset:-23px;border:1px solid rgba(238,233,223,.17);border-radius:50%}.portrait-aura:after{inset:-50px;border-style:dashed;animation:spin 28s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.portrait-word{position:absolute;z-index:2;top:58%;left:50%;transform:translate(-50%,-50%);font-size:clamp(72px,10vw,162px);font-weight:800;letter-spacing:-.07em;white-space:nowrap;color:var(--steel);opacity:.66}.portrait-line{position:absolute;z-index:4;left:50%;bottom:4%;width:1px;height:17%;background:linear-gradient(transparent,var(--paper));opacity:.5}.hero-meta{grid-row:3;z-index:9;display:flex;justify-content:space-between;padding-top:17px;border-top:1px solid var(--line);font:400 10px/1 DM Mono,monospace;letter-spacing:.1em}
.enter{opacity:0;transform:translateY(34px);animation:enter 1s var(--ease) forwards}.hero-sentence.enter{animation-delay:.38s}.hero-meta.enter{animation-delay:.56s}@keyframes enter{to{opacity:1;transform:none}}
.statement{min-height:100svh;background:var(--paper);color:var(--ink);padding:110px var(--pad) 70px;display:flex;flex-direction:column;justify-content:space-between}.section-label{display:flex;gap:18px;align-items:center}.section-label span{color:var(--clay)}.statement-text{margin:12vh auto 10vh;width:min(100%,1180px);font:600 clamp(38px,6.2vw,94px)/1.1 "Noto Serif SC",serif;letter-spacing:-.045em}.statement-text span{color:var(--clay)}.statement-foot{display:grid;grid-template-columns:1fr 1.6fr;gap:6vw;align-items:end;border-top:1px solid rgba(17,18,20,.22);padding-top:28px}.statement-foot>p{max-width:470px;font-size:clamp(15px,1.4vw,20px);line-height:1.75;color:#4b4d50}.fact-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.fact-strip div{border-left:1px solid rgba(17,18,20,.24);padding-left:18px;display:flex;flex-direction:column}.fact-strip b{font-size:clamp(34px,4.3vw,68px);letter-spacing:-.06em}.fact-strip span{font:500 10px DM Mono,monospace;letter-spacing:.08em;margin-top:7px}
.work{background:var(--ink2);padding:110px var(--pad) 150px;position:relative}.work-heading{display:grid;grid-template-columns:1fr 1.6fr .8fr;gap:30px;align-items:end;margin-bottom:90px}.work-heading h2{font-size:clamp(56px,8vw,126px);line-height:.86;letter-spacing:-.07em;text-transform:uppercase}.work-heading h2 em{font-family:"Noto Serif SC",serif;font-weight:600;color:var(--clay);text-transform:none}.work-heading>p{color:#aeb2b8;font-size:14px;line-height:1.7;max-width:300px}.project-stack{max-width:1240px;margin:auto}
.project-card{--card:#bcc6d0;position:sticky;top:92px;min-height:72vh;margin-bottom:68px;border-radius:28px;overflow:hidden;background:var(--card);color:var(--ink);border:1px solid rgba(255,255,255,.15);box-shadow:0 -20px 60px rgba(0,0,0,.24);transform-origin:center top}.project-card:nth-child(2){--card:#d5cec2}.project-card:nth-child(3){--card:#c4876f}.project-card:nth-child(4){--card:#adb4b8}.project-card:nth-child(5){--card:#ded8ce}.card-top{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;border-bottom:1px solid rgba(17,18,20,.18);font:500 10px DM Mono,monospace;letter-spacing:.1em}.card-body{min-height:calc(72vh - 66px);display:grid;grid-template-columns:.9fr 1.3fr}.card-index{padding:30px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid rgba(17,18,20,.18)}.card-index b{font-size:clamp(90px,15vw,240px);line-height:.75;letter-spacing:-.09em;opacity:.88}.card-index p{font:500 11px DM Mono,monospace;letter-spacing:.08em}.card-content{padding:clamp(30px,5vw,72px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.card-content:after{content:"";position:absolute;width:290px;height:290px;right:-80px;top:-100px;border:1px solid rgba(17,18,20,.22);border-radius:50%;box-shadow:0 0 0 38px rgba(255,255,255,.07),0 0 0 76px rgba(255,255,255,.04);transform:translate(var(--cx,0),var(--cy,0));transition:transform .15s}.card-content h3{position:relative;z-index:1;font:700 clamp(36px,5.6vw,84px)/.96 "Noto Serif SC",serif;letter-spacing:-.05em;max-width:850px}.card-content .insight{position:relative;z-index:1;max-width:690px;font-size:clamp(15px,1.4vw,20px);line-height:1.75;margin:34px 0}.card-bottom{position:relative;z-index:1;display:flex;align-items:end;justify-content:space-between;gap:20px}.card-tags{display:flex;flex-wrap:wrap;gap:8px}.card-tags span{border:1px solid rgba(17,18,20,.28);border-radius:999px;padding:8px 11px;font:500 9px DM Mono,monospace;letter-spacing:.07em}.card-proof{max-width:360px;text-align:right;font:600 13px/1.5 DM Mono,monospace}
.method{background:var(--paper);color:var(--ink);padding:110px 0 130px;overflow:hidden}.method>.section-label{padding:0 var(--pad)}.method-marquee{margin:80px 0 55px;border-block:1px solid rgba(17,18,20,.2);overflow:hidden;padding:13px 0}.method-marquee div{width:max-content;font-size:clamp(38px,5.5vw,84px);font-weight:800;letter-spacing:-.04em;animation:marquee 26s linear infinite}@keyframes marquee{to{transform:translateX(-50%)}}.method-list{padding:0 var(--pad)}.method-row{display:grid;grid-template-columns:90px 1fr 1fr;gap:30px;padding:34px 0;border-bottom:1px solid rgba(17,18,20,.2);align-items:start;transition:padding .4s var(--ease),background .4s}.method-row:hover{padding-left:22px;background:rgba(185,111,82,.08)}.method-row b{font:500 11px DM Mono,monospace;color:var(--clay)}.method-row h3{font:600 clamp(25px,3vw,46px) "Noto Serif SC",serif}.method-row p{max-width:540px;color:#595c60;line-height:1.7}
.experience{background:var(--mist);color:var(--ink);padding:110px var(--pad)}.experience-head{display:grid;grid-template-columns:1fr 2fr;gap:30px;margin-bottom:90px}.experience-head h2{font:600 clamp(44px,6.5vw,98px)/1.02 "Noto Serif SC",serif;letter-spacing:-.05em}.timeline-row{display:grid;grid-template-columns:180px 1.1fr .8fr;gap:30px;padding:29px 0;border-top:1px solid rgba(17,18,20,.27);align-items:baseline;transition:transform .4s var(--ease)}.timeline-row:hover{transform:translateX(12px)}.timeline-row time{font:500 10px DM Mono,monospace;letter-spacing:.06em}.timeline-row h3{font-size:clamp(24px,3vw,45px);letter-spacing:-.05em}.timeline-row p{color:#3e4247;line-height:1.6;font-size:13px}.education{margin-top:100px;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.edu-card{border:1px solid rgba(17,18,20,.28);border-radius:18px;padding:28px;min-height:190px;display:flex;flex-direction:column;justify-content:space-between}.edu-card small{font:500 10px DM Mono,monospace;letter-spacing:.1em}.edu-card h3{font:600 clamp(24px,2.5vw,38px) "Noto Serif SC",serif}.edu-card p{font-size:13px;line-height:1.6}
.contact{min-height:100svh;background:var(--ink);padding:110px var(--pad) 28px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.contact .section-label{position:absolute;left:var(--pad);top:110px}.contact h2{position:relative;z-index:2;font-size:clamp(58px,10vw,158px);line-height:.9;letter-spacing:-.075em;text-transform:uppercase}.contact h2 em{color:var(--clay);font-family:"Noto Serif SC",serif;text-transform:none}.contact-role{position:relative;z-index:2;margin:38px 0 28px;line-height:1.8;color:#d9d7d2}.contact-button{position:relative;z-index:2;border:1px solid rgba(238,233,223,.4);padding:17px 25px;border-radius:999px;font:500 10px DM Mono,monospace;letter-spacing:.1em}.contact-button:hover{background:var(--paper);color:var(--ink)}.contact-orbit{position:absolute;width:min(62vw,800px);aspect-ratio:1;border:1px solid rgba(238,233,223,.12);border-radius:50%;animation:spin 34s linear infinite}.contact-orbit:after{content:"";position:absolute;inset:12%;border:1px dashed rgba(185,111,82,.34);border-radius:50%}.contact-orbit span{position:absolute;left:50%;top:-8px;font:500 9px DM Mono,monospace;letter-spacing:.12em;background:var(--ink);padding:0 10px;white-space:nowrap}.contact footer{position:absolute;bottom:26px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;font:400 9px DM Mono,monospace;letter-spacing:.1em}
.contact-role{margin-bottom:20px}.contact-details{position:relative;z-index:2;display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:0 0 28px}.contact-details a{border:1px solid rgba(238,233,223,.3);border-radius:999px;padding:11px 14px;font:500 10px DM Mono,monospace;letter-spacing:.07em;transition:background .25s,color .25s}.contact-details a:hover{background:var(--paper);color:var(--ink)}.reveal{opacity:0;transform:translateY(38px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal.in-view{opacity:1;transform:none}
@media(max-width:800px){.topbar{grid-template-columns:1fr auto;height:64px}.topbar nav{display:none}.top-contact{font-size:9px;padding:10px 12px}.hero{padding-top:90px;min-height:820px}.hero-copy h1 span{font-size:14vw}.hero-copy h1 strong{font-size:21vw}.portrait-stage{width:88vw;height:59%;left:55%;bottom:35px}.portrait-word{font-size:17vw;top:57%}.hero-sentence{left:20px;right:20px;top:250px;bottom:auto;align-items:center;justify-content:space-between}.hero-sentence p{font-size:14px;line-height:1.55;max-width:210px}.round-cta{width:62px;height:62px;flex:none}.hero-meta span:nth-child(2){display:none}.statement{padding-top:90px}.statement-text{margin:14vh 0 10vh;font-size:10.5vw}.statement-foot{grid-template-columns:1fr}.fact-strip{margin-top:30px}.fact-strip span{font-size:8px}.work{padding-top:90px}.work-heading{grid-template-columns:1fr;margin-bottom:55px}.work-heading h2{font-size:17vw}.project-card{top:75px;min-height:76vh}.card-body{grid-template-columns:1fr;min-height:calc(76vh - 64px)}.card-index{border-right:0;border-bottom:1px solid rgba(17,18,20,.18);padding:20px;flex-direction:row;align-items:end}.card-index b{font-size:26vw}.card-content{padding:28px}.card-content h3{font-size:9.5vw}.card-bottom{align-items:start;flex-direction:column}.card-proof{text-align:left}.method-row{grid-template-columns:45px 1fr}.method-row p{grid-column:2}.experience-head{grid-template-columns:1fr}.timeline-row{grid-template-columns:1fr}.timeline-row h3{font-size:8vw}.education{grid-template-columns:1fr}.contact h2{font-size:17vw}.contact-orbit{width:115vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.enter,.reveal{opacity:1;transform:none;animation:none;transition:none}.method-marquee div,.portrait-aura:after,.contact-orbit{animation:none}.portrait-stage img{transition:none}}
