:root{--ink:#111;--muted:#626262;--paper:#fff;--line:#dedede;--soft:#f6f6f4;--font:Inter,Arial,Helvetica,sans-serif;--space:clamp(80px,10vw,150px);--width:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:6px}::selection{background:var(--ink);color:white}img{max-width:100%;display:block}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.container{width:min(var(--width),calc(100% - 96px));margin-inline:auto}.skip-link{position:fixed;top:10px;left:10px;transform:translateY(-200%);background:#111;color:#fff;padding:12px;z-index:20}.skip-link:focus{transform:none}.header{background:rgba(255,255,255,.97);position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line)}.header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:28px}.wordmark{font-size:19px;font-weight:800;letter-spacing:-.7px;white-space:nowrap}.wordmark span{font-weight:400}.nav{display:flex;align-items:center;gap:23px;font-size:12px}.nav a{position:relative}.nav a:not(.button):after{content:'';position:absolute;bottom:-6px;left:0;width:0;height:1px;background:var(--ink);transition:width .2s}.nav a:hover:after{width:100%}.menu-toggle{display:none;background:none;border:1px solid var(--line);padding:8px 12px}.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;border:1px solid var(--ink);padding:13px 20px;font-size:13px;font-weight:600;transition:background .2s,color .2s,transform .2s}.button:hover{background:var(--ink);color:white;transform:translateY(-2px)}.button.primary{background:var(--ink);color:white}.button.primary:hover{background:#333}.button.small{padding:9px 13px;font-size:11px}.hero{padding-top:clamp(48px,6vw,88px)}.hero-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:60px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:10px;margin:0 0 24px}.eyebrow:before{content:'';width:6px;height:6px;background:var(--ink);border-radius:50%}h1{font-size:clamp(65px,8.6vw,132px);letter-spacing:-.075em;line-height:.99;margin:0 0 30px;font-weight:750}h1 span{display:block}.hero-role{font-size:clamp(12px,1.15vw,16px);font-weight:600;margin:0 0 18px}.hero-intro{font-size:14px;color:var(--muted);max-width:460px;line-height:1.85;margin:0 0 28px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.socials{display:flex;align-items:center;gap:22px;margin-top:30px}.socials a,.social-placeholder{display:inline-flex;align-items:center;gap:7px;font-size:11px}.socials a:hover{opacity:.55}.social-placeholder{color:var(--muted);cursor:default}.social-line{height:1px;width:90px;background:var(--ink);margin-left:6px}.portrait{margin:0;position:relative;padding:0 0 18px 18px}.portrait:before{content:'';position:absolute;inset:22px 20px 0 0;border:1px solid var(--ink);z-index:-1}.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;background:var(--soft)}.portrait figcaption{margin-top:15px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.7px;text-transform:uppercase}.hero-bottom{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:40px 0 22px;margin-top:36px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase}.hero-bottom a{display:flex;gap:12px;align-items:center}.hero-bottom svg{width:14px;height:14px}.section{padding-block:var(--space);border-bottom:1px solid var(--line)}.section-heading{text-align:center;margin-bottom:64px}.section-number{font-size:10px;letter-spacing:2px;color:var(--muted);margin:0 0 12px}.section-heading h2{font-size:clamp(54px,8.5vw,116px);letter-spacing:-.065em;line-height:1.05;margin:0 0 16px;font-weight:700}.section-heading>p:last-child{font-size:14px;margin:0;color:var(--muted)}.about-copy{max-width:880px;margin:auto;font-size:clamp(18px,2vw,25px);line-height:1.85;letter-spacing:-.35px}.about-copy p{margin:0 0 26px}.about-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin:48px auto 0;max-width:880px;padding-top:28px;border-top:1px solid var(--line)}.about-facts span{display:block;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.about-facts strong{font-size:15px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project{border:1px solid var(--line);padding:32px;display:flex;flex-direction:column;transition:border-color .2s}.project:hover{border-color:var(--ink)}.project-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.project-index{font-size:11px;color:var(--muted);letter-spacing:1px}.project-symbol{width:38px;height:38px}.project h3{font-size:25px;letter-spacing:-1px;line-height:1.2;margin:0 0 10px}.project-subtitle{font-size:11px;letter-spacing:.8px;text-transform:uppercase;margin:0 0 18px;color:var(--muted)}.project-description{font-size:14px;color:var(--muted);margin:0 0 24px}.tags{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:0}.tags li{border:1px solid var(--line);border-radius:30px;padding:3px 11px;font-size:10px}.project .tags{margin-top:auto}.project-links{border-top:1px solid var(--line);padding-top:18px;margin-top:26px;display:flex;gap:24px;font-size:11px;color:var(--muted)}.pending{font-size:11px;color:var(--muted)}.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:46px 60px;max-width:1060px;margin:auto}.skill-group h3{font-size:17px;letter-spacing:-.4px;margin:0 0 20px}.skill-group ul{list-style:none;padding:0;margin:0}.skill-group li{font-size:14px;margin:10px 0;display:flex;gap:11px}.skill-group li:before{content:'▷';font-size:14px;color:var(--ink)}.timeline{max-width:850px;margin:auto;border-left:1px solid var(--line);padding-left:40px}.timeline-item{position:relative;padding:0 0 48px}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:'';position:absolute;left:-48px;top:8px;width:13px;height:13px;border:2px solid var(--ink);border-radius:50%;background:white;box-shadow:0 0 0 4px white}.timeline-item h3{font-size:24px;line-height:1.3;letter-spacing:-.7px;margin:7px 0}.date{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.institution{font-size:16px;margin:10px 0}.timeline-item>p:last-child{font-size:14px;color:var(--muted)}.achievement-list{max-width:940px;margin:auto}.achievement{display:grid;grid-template-columns:45px 1fr auto;gap:22px;border-top:1px solid var(--line);padding:26px 0;align-items:start}.achievement h3{font-size:18px;margin:0 0 5px;letter-spacing:-.4px}.achievement p{font-size:14px;color:var(--muted);margin:0}.achievement>span{font-size:11px;color:var(--muted)}.contact{text-align:center}.contact .section-heading{margin-bottom:35px}.contact-email{font-size:clamp(17px,3.3vw,44px);letter-spacing:-.04em;border-bottom:1px solid var(--ink);padding-bottom:9px;overflow-wrap:anywhere}.contact-location{color:var(--muted);font-size:13px;margin-top:30px}.contact .socials{justify-content:center}.resume-note{max-width:650px;margin:38px auto 0;font-size:12px;color:var(--muted)}.footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:28px;font-size:10px;color:var(--muted)}.footer .socials{margin:0;gap:16px}.footer .socials svg{width:16px;height:16px}
@media(min-width:1600px){:root{--width:1400px}.hero-grid{gap:120px}}
@media(max-width:1100px){.container{width:calc(100% - 64px)}.nav{gap:14px;font-size:11px}.header-inner{gap:16px}.wordmark{font-size:16px}.hero-grid{gap:35px}.skill-grid{gap:36px}.hero-actions .button{padding:12px 14px}}
@media(max-width:850px){.header-inner{min-height:70px}.menu-toggle{display:block}.nav{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:12px 24px 24px;border-bottom:1px solid var(--line);background:white}.js .nav{display:none;position:absolute;top:100%;left:0;right:0}.js .nav.is-open{display:flex}.nav a{padding:12px;font-size:14px}.nav .button{margin-top:10px}.header-inner{flex-wrap:wrap}html:not(.js) .nav{width:100%}html:not(.js) .menu-toggle{display:none}.hero-grid{grid-template-columns:1.15fr 1fr;gap:25px}h1{font-size:clamp(60px,9vw,85px)}.hero-role{font-size:11px}.hero-intro{font-size:13px}.hero-actions .button{font-size:11px}.portrait figcaption{font-size:8px;letter-spacing:.5px}.project{padding:25px}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading{margin-bottom:44px}}
@media(max-width:600px){.container{width:calc(100% - 40px)}.hero{padding-top:38px}.hero-grid{grid-template-columns:1fr;gap:45px}h1{font-size:clamp(68px,16vw,94px)}.eyebrow{font-size:9px}.hero-role{font-size:12px}.hero-intro{font-size:14px}.hero-actions .button{font-size:12px}.portrait{width:85%;max-width:360px;justify-self:center}.hero-bottom{margin-top:15px;font-size:8px;letter-spacing:1px}.section-heading h2{font-size:clamp(43px,12vw,72px)}.section-heading>p:last-child{font-size:13px}.about-facts{grid-template-columns:1fr;gap:20px}.project-grid{grid-template-columns:1fr}.skill-grid{gap:30px 20px}.skill-group h3{font-size:15px}.skill-group li{font-size:12px}.timeline{padding-left:28px;margin-left:7px}.timeline-item:before{left:-36px}.timeline-item h3{font-size:21px}.institution{font-size:14px}.achievement{grid-template-columns:24px 1fr;gap:12px}.achievement>.date{grid-column:2}.achievement h3{font-size:16px}.footer{flex-direction:column;text-align:center;gap:14px}.contact-email{font-size:clamp(16px,4.6vw,26px)}}
.portrait img{height:auto}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
