@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#f4f3ec;--ink:#22251e;--muted:#64675e;--line:#d5d8cb;--lime:#d5f268;--green:#244d3b}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #6d901a;outline-offset:5px}::selection{background:var(--lime)}.wrap{max-width:1240px;margin:auto;padding-left:48px;padding-right:48px}.nav{max-width:1440px;margin:auto;padding:27px 48px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.wordmark{font-size:13px;font-weight:800;letter-spacing:1px;white-space:nowrap}.wordmark span{color:#8b9382;padding:0 10px}.nav nav{display:flex;align-items:center;gap:30px;font-size:12px;font-weight:700}.nav-contact{border-bottom:1px solid;padding:7px 0}.hero{display:grid;grid-template-columns:1.45fr 1fr;gap:70px;padding-top:85px;padding-bottom:70px;align-items:center}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:800;display:flex;align-items:center;gap:9px}.dot{width:7px;height:7px;background:#60863e;border-radius:50%}h1{font-size:clamp(42px,5.1vw,70px);line-height:1.12;letter-spacing:-3.8px;font-weight:600;margin:31px 0}h1 .accent{background:var(--lime);padding:0 8px}p{margin:0 0 18px}.intro{font-size:17px;max-width:510px;color:#55594e}.actions{display:flex;align-items:center;gap:25px;margin:30px 0}.button{display:inline-flex;gap:30px;align-items:center;padding:15px 20px;font-size:12px;font-weight:700}.dark{background:var(--ink);color:white}.button:hover{background:var(--green)}.text-link{border-bottom:1px solid var(--ink);padding-bottom:5px;font-size:12px;font-weight:700}.hero-note{font-size:10px;color:var(--muted);margin-top:34px}.hero-visual{position:relative;padding-bottom:30px}.photo-frame{background:#e4e6db;position:relative;overflow:hidden;aspect-ratio:4/5}.photo-placeholder{position:absolute;inset:18px;border:1px solid #aab49e;display:flex;align-items:center;justify-content:center}.photo-cross{position:absolute;top:0;left:8px;color:#65725b;font-size:24px;font-weight:400}.photo-initials{font-size:90px;letter-spacing:-8px;line-height:1.1;font-weight:500;color:#b0bba3}.photo-caption{position:absolute;bottom:18px;left:18px;font-size:9px;letter-spacing:1.5px;font-weight:700}.photo-caption small{letter-spacing:0;font-size:10px;font-weight:400}.photo-frame img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.visual-stamp{position:absolute;right:-20px;bottom:0;background:var(--lime);padding:17px 22px;font-size:11px;line-height:1.6;letter-spacing:1px;transform:rotate(-5deg);font-weight:800;box-shadow:3px 5px 0 #22251e0a}.visual-stamp span{font-size:24px;float:right;padding-left:20px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);padding-top:25px;padding-bottom:35px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:25px}.metrics strong{font-size:45px;font-weight:500;letter-spacing:-2px}.metrics strong span{font-size:23px}.metrics p{font-size:11px;color:var(--muted);margin-bottom:0}.section{padding-top:92px;padding-bottom:85px}.section-head{display:grid;grid-template-columns:1.6fr 1fr;column-gap:80px;margin-bottom:40px}.section-head .eyebrow{grid-column:1/-1}h2{font-size:clamp(30px,3.3vw,43px);font-weight:500;letter-spacing:-1.8px;line-height:1.2;margin:13px 0 18px}.section-desc{align-self:end;color:var(--muted);font-size:13px;max-width:320px}.job{display:grid;grid-template-columns:230px 1fr;padding:32px 0;border-top:1px solid var(--line);gap:30px}.job-meta{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.7px}.badge{display:inline-block;background:var(--lime);padding:3px 8px;color:var(--ink);margin-bottom:13px}.job h3{font-size:24px;letter-spacing:-.6px;font-weight:600;line-height:1.2;margin:0 0 8px}.job h3 span{float:right;color:#9ca78c}.role{font-size:11px;color:var(--green);font-weight:700}.job p:not(.role),.job li{font-size:13px;color:var(--muted)}.job ul{padding-left:17px}.job li{margin-bottom:7px}.tags{display:flex;gap:8px;flex-wrap:wrap}.tags span{font-size:9px;padding:4px 9px;border:1px solid var(--line)}.research{background:var(--green);color:#f5f7ef;padding:85px 0}.research .eyebrow{color:#d3e1bd}.research h2{font-size:clamp(32px,3.6vw,48px)}.research .section-desc{color:#c3d1c4}.research-intro{display:grid;grid-template-columns:1fr 1fr;gap:45px;font-size:13px;color:#d4dfd3;margin-bottom:30px}.experiment{background:var(--paper);color:var(--ink);padding:23px 26px}.experiment-top{display:flex;justify-content:space-between;gap:10px}.experiment .eyebrow{color:var(--muted)}.figure-index{font-size:9px;letter-spacing:1px;color:var(--muted)}.figure-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 20px}.figure-tabs button{background:none;border:1px solid var(--line);padding:7px 10px;font-size:10px;cursor:pointer;color:var(--ink)}.figure-tabs button.active{background:var(--ink);border-color:var(--ink);color:white}figure{margin:0}figure a{display:flex;justify-content:center;background:white;min-height:240px}figure img{display:block;object-fit:contain;width:100%;height:330px;background:white}figcaption{font-size:10px;color:var(--muted);margin-top:14px}.research-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:35px}.research-facts span{font-size:9px;letter-spacing:1.5px;color:#c1d0bc}.research-facts h3{font-size:17px;letter-spacing:-.5px;font-weight:500;margin:8px 0}.research-facts p{font-size:11px;color:#cbd9cc}details{border-top:1px solid #64816c;margin-top:20px;padding-top:18px;font-size:12px}summary{cursor:pointer;list-style:none}summary span{float:right}details p{color:#cfdbcf;max-width:820px;margin-top:20px}.project-grid{display:grid;grid-template-columns:1fr 1fr;border-left:1px solid var(--line);border-top:1px solid var(--line)}.project{padding:30px 32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s}.project:hover{background:#e9eddf}.project-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:var(--muted)}.project-top span:last-child{font-size:21px;color:var(--ink)}.project h3{font-size:27px;line-height:1.25;letter-spacing:-1px;font-weight:500;margin:20px 0}.project p{font-size:12px;max-width:420px;color:var(--muted)}.repo{font-family:monospace;font-size:10px;color:var(--green)}.github-all{display:table;margin-top:28px}.about{display:grid;grid-template-columns:1.3fr 1fr;gap:100px;padding-top:40px}.about>div>p:not(.eyebrow){font-size:13px;color:var(--muted)}.about p a{border-bottom:1px solid}.about-note{display:grid;grid-template-columns:120px 1fr;gap:15px;border-top:1px solid var(--line);padding:16px 0 0}.about-note>span{font-size:9px;letter-spacing:1px;font-weight:700}.about-note p{font-size:11px}.second-photo{align-self:center;background:#e6e0d3}.second-photo .photo-initials{font-size:58px;letter-spacing:-3px;color:#c2b9a7}.skills{border-top:1px solid var(--line);padding-top:25px;padding-bottom:55px}.skills>p:last-child{font-size:18px;line-height:2}.skills span{color:#a3ae95;margin:0 12px}footer{background:var(--ink);color:var(--paper);padding:65px 0 25px}footer .eyebrow{color:#b8c7a9}footer h2{font-size:clamp(30px,4vw,53px);line-height:1.3}footer h2 a{color:var(--lime)}.footer-links{display:flex;gap:30px;font-size:11px;margin:32px 0 55px;flex-wrap:wrap}.footer-links a:hover{color:var(--lime)}.footer-bottom{border-top:1px solid #4c5044;padding-top:20px;font-size:9px;color:#b5bbae;display:flex;justify-content:space-between;gap:15px}@media(min-width:1500px){.hero{padding-top:110px;padding-bottom:100px}}@media(max-width:800px){.wrap{padding-left:25px;padding-right:25px}.nav{padding:20px 25px}.nav nav{gap:16px}.nav nav>a:not(.nav-contact){display:none}.hero{gap:30px;padding-top:50px;grid-template-columns:1.3fr 1fr}h1{letter-spacing:-2px;font-size:42px}.intro{font-size:14px}.actions{flex-wrap:wrap;gap:17px}.photo-initials{font-size:60px}.photo-caption{font-size:7px;left:8px}.visual-stamp{right:-7px;font-size:9px;padding:12px}.metrics{grid-template-columns:1fr 1fr;row-gap:20px}.metrics strong{font-size:38px}.section{padding-top:60px;padding-bottom:50px}.section-head{column-gap:30px}.job{grid-template-columns:165px 1fr;gap:20px}.about{gap:35px}.about-note{grid-template-columns:1fr;gap:5px}.research{padding:55px 0}.research-facts{gap:20px}.footer-links{gap:20px}}@media(max-width:540px){.hero{grid-template-columns:1fr;padding-bottom:45px}.hero-visual{max-width:300px;justify-self:center;width:100%;margin-top:0}.photo-frame{aspect-ratio:5/4}.hero-visual .photo-initials{font-size:85px}.hero-note{margin-top:22px}h1{font-size:47px;letter-spacing:-2.5px}.hero .eyebrow{font-size:8px}.section-head{grid-template-columns:1fr;margin-bottom:25px}.section-desc{max-width:none}.job{grid-template-columns:1fr;gap:7px}.job-meta{display:flex;gap:12px;align-items:baseline}.job-meta p{margin:0}.job h3{font-size:22px}.research-intro{grid-template-columns:1fr;gap:0}.experiment{padding:15px}.experiment-top .eyebrow{font-size:8px}.figure-index{font-size:8px;white-space:nowrap}.figure-tabs{gap:5px}.figure-tabs button{font-size:9px;padding:6px}figure img{height:210px}figure a{min-height:0}.research-facts{grid-template-columns:1fr;gap:5px}.research-facts p{max-width:330px}.project-grid{grid-template-columns:1fr}.project{padding:23px}.project h3{font-size:25px}.about{grid-template-columns:1fr}.second-photo{width:100%;max-width:350px;justify-self:center}.about-note{grid-template-columns:105px 1fr}.skills>p:last-child{font-size:15px}.skills span{margin:0 5px}.footer-bottom{flex-wrap:wrap}.nav .wordmark{font-size:10px}.nav-contact{font-size:10px}.wordmark span{padding:0 4px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Keep English headings and contact fields within narrow layouts. */
.hero h1{font-size:clamp(36px,4.2vw,58px);letter-spacing:-2.8px}.phone-contact{display:inline-flex;gap:7px;align-items:baseline}.phone-contact>span{display:inline-block;min-width:95px;border-bottom:1px solid #73796b}.footer-links a{overflow-wrap:anywhere}@media(max-width:540px){.hero h1{font-size:clamp(32px,8.6vw,46px);letter-spacing:-1.8px}.figure-tabs{align-items:stretch}}
