/* Locally hosted OFL fonts; sources and subset workflow: docs/FONTS.md. */
@font-face{font-family:"Gomaas Inter Web";src:url("assets/fonts/inter-latin.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap;}
@font-face{font-family:"Gomaas Montserrat Web";src:url("assets/fonts/montserrat-latin.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap;}
@font-face{font-family:"Gomaas Mono Web";src:url("assets/fonts/jetbrains-mono-latin.woff2") format("woff2");font-style:normal;font-weight:100 800;font-display:swap;}
@font-face{font-family:"Gomaas Han Web";src:url("assets/fonts/han-sc.woff2") format("woff2");font-style:normal;font-weight:250 900;font-display:swap;}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{margin:0;background:#fffafa;color:#18181b;font-family:"Gomaas Inter Web","Gomaas Han Web",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:5px}a:focus-visible{outline:2px solid #18181b;outline-offset:6px}a:hover{color:#000}.wrap{max-width:768px;padding:0 24px;margin:0 auto}header{padding-top:24px!important}nav{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 32px}nav a{display:inline-flex;align-items:center;white-space:nowrap;min-height:44px;font-size:13px;color:#626269;text-decoration:none}nav a:hover,.handle:hover{text-decoration:underline}.hero{padding-top:116px;padding-bottom:48px}.avatar{width:80px;height:80px;border-radius:50%;display:grid;place-items:center;background:#eae4e2;font-size:30px;font-weight:500;margin-bottom:32px}h1{font-size:clamp(32px,4.8vw,54px);line-height:1.25;letter-spacing:-.055em;margin:0 0 16px;font-weight:700}.handle{font-size:18px;color:#6c6668;text-decoration:none}.motto{font-family:"Gomaas Mono Web","Gomaas Han Web",ui-monospace,SFMono-Regular,Consolas,monospace;font-size:22px;letter-spacing:-.5px;margin:28px 0 14px}.intro{color:#696368;font-size:15px;letter-spacing:.035em;margin:0}.section{padding-top:58px;padding-bottom:12px}h2{font-size:23px;line-height:1.4;margin:0 0 36px;font-weight:600;letter-spacing:-.04em}.label{display:block;font-family:"Gomaas Mono Web","Gomaas Han Web",ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;letter-spacing:.03em;color:#777179;font-weight:400;margin-top:9px}.entry{border-top:1px solid #e4dfe1;padding:28px 0 32px}.entry-heading{display:flex;gap:12px;justify-content:space-between;align-items:baseline}h3{font-size:19px;line-height:1.5;font-weight:500;margin:0;letter-spacing:-.025em}h3 span{margin-left:5px}.date{font-family:"Gomaas Mono Web","Gomaas Han Web",ui-monospace,SFMono-Regular,Consolas,monospace;color:#777179;font-size:11px;white-space:nowrap}.entry p,.about p{color:#625d64;font-size:14px;line-height:1.95;letter-spacing:.025em;margin:14px 0}.entry .role{font-size:12px;color:#817780;margin-top:5px;margin-bottom:20px}.text-link{display:inline-block;font-family:"Gomaas Mono Web","Gomaas Han Web",ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;margin-top:8px;padding:8px 0}.about{margin-top:42px;background:#f6f3f4;padding:64px 0}.about p{font-size:15px;line-height:2;margin:0 0 20px}.education{margin:34px 0}.education p{font-size:13px;margin:0}.education .school{color:#222;font-weight:500}.button{display:inline-flex;align-items:center;gap:28px;background:#202023;color:#fff!important;text-decoration:none;border-radius:5px;padding:14px 20px;font-size:13px}.button:hover{background:#414145}footer{padding-top:48px!important;padding-bottom:36px!important}.footer-inner{border-top:1px solid #e4dfe1;padding-top:26px;display:flex;flex-wrap:wrap;align-items:center;gap:24px;font-size:11px;color:#756d74}.domain{font-family:"Gomaas Mono Web","Gomaas Han Web",ui-monospace,SFMono-Regular,Consolas,monospace}.skip{position:fixed;left:16px;top:-80px;padding:12px;background:#fff;z-index:2}.skip:focus{top:12px}@media(max-width:600px){nav{gap:4px 22px}nav a{font-size:12px}.hero{padding-top:72px;padding-bottom:32px}.avatar{width:64px;height:64px;font-size:25px;margin-bottom:28px}.section{padding-top:42px}.entry-heading{display:block}.entry-heading .date{display:block;margin-top:7px}h3{font-size:18px}.about{padding:48px 0}.footer-inner{gap:14px}.wrap{padding-left:24px;padding-right:24px}h2{font-size:21px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

img.avatar{object-fit:cover;object-position:center 28%}.about .contact-phone{margin:20px 0 0;font-size:14px}

.background{padding-top:24px;padding-bottom:8px}.background-title{font-size:14px;letter-spacing:0;color:#625d64;margin:0 0 22px}.background-title .label{margin-top:5px}.employer{display:inline-flex;align-items:center;gap:20px;text-decoration:none}.employer img{width:64px;height:64px;object-fit:contain}.employer strong{font-size:17px;font-weight:500}.employer-role{display:block;margin-top:7px;font-size:12px;color:#777179}.direction-copy{border-top:1px solid #e4dfe1;padding-top:14px}.direction-copy p{font-size:14px;line-height:1.95;color:#625d64;letter-spacing:.025em;margin:14px 0}.learning{margin-top:28px;padding-left:18px;border-left:2px solid #d7d0d4}.learning h3{font-size:15px}.learning p{margin:8px 0 0}.motto{line-height:1.5}

.resume-page{padding-top:32px;padding-bottom:48px}.resume-page h1{font-size:32px;margin:28px 0 12px;letter-spacing:0}.resume-caption{font-size:14px;color:#625d64}.resume-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin:24px 0}.resume-preview{display:block;width:100%;height:auto;border:1px solid #e4dfe1;background:#fff}.resume-preview p{padding:24px;line-height:1.8}@media(max-width:480px){.footer-inner{flex-wrap:wrap;row-gap:18px}.resume-actions{gap:12px}}

.contact-phone a,.footer-inner .location{white-space:nowrap}

.language-switch{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;color:#777179;font-size:12px}.language-switch[hidden]{display:none}.language-switch button{border:0;background:transparent;font:inherit;color:inherit;min-height:44px;padding:8px;cursor:pointer}.language-switch button[aria-pressed="true"]{color:#18181b;text-decoration:underline;text-underline-offset:5px}.language-switch button:focus-visible{outline:2px solid #18181b;outline-offset:2px}html[lang="en"] .label{display:none}html[lang="en"] .footer-inner .location{white-space:normal}html[lang="en"] .entry-heading h3{overflow-wrap:anywhere}.resume-language-note{font-size:12px;line-height:1.7;color:#777179}

/* Keep the reference’s heading/body/monospace hierarchy in both languages. */
h1,h2,h3{font-family:"Gomaas Montserrat Web","Gomaas Han Web",sans-serif}

.footer-socials{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-left:auto}.footer-socials a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;text-decoration:none}.footer-socials a:hover{text-decoration:underline}@media(max-width:600px){.footer-socials{flex-basis:100%;margin-left:0}}

.contact-details{margin-top:24px}.contact-details summary{width:fit-content;cursor:pointer;list-style:none}.contact-details summary::-webkit-details-marker{display:none}.contact-details summary:focus-visible,.contact-actions button:focus-visible{outline:2px solid #18181b;outline-offset:5px}.contact-panel{padding-top:22px}.about .contact-number{margin:0 0 12px;font-size:14px}.contact-number span:last-child{white-space:nowrap;user-select:text}.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px}.contact-actions a,.contact-actions button{display:inline-flex;align-items:center;min-height:44px;font:inherit;font-size:13px;color:#625d64;text-decoration:underline;text-underline-offset:5px}.contact-actions button{border:0;padding:0;background:transparent;cursor:pointer}.contact-actions button[hidden],.contact-feedback [hidden]{display:none}.contact-feedback{font-size:12px;line-height:1.7;color:#625d64}.contact-feedback span{display:block;margin-top:8px}

/* Match the reference's compact, gently waving desktop greeting. */
.greeting-wave{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:8px;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:32px;line-height:1;letter-spacing:0;vertical-align:middle;animation:greeting-wave 2s linear infinite}
@keyframes greeting-wave{0%,100%{transform:rotate(0deg)}20%,60%{transform:rotate(-10deg)}40%,80%{transform:rotate(10deg)}}
@media(max-width:767px){.greeting-wave{display:none}}

.footer-meta{display:flex;flex-wrap:wrap;gap:12px 24px;width:100%;align-items:center}
.footer-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;width:100%}
.footer-actions .language-switch{justify-content:flex-start;margin-top:0}
.footer-actions .language-switch button:first-child{padding-left:0}
@media(max-width:600px){.footer-actions .footer-socials{flex-basis:auto;margin-left:0}}
.footer-inner{row-gap:6px}

.employer-name{text-decoration:none}.employer-name:hover,.employer-name:focus-visible{text-decoration:underline;text-underline-offset:5px}
