:root{--bg: #FAFAF7;--ink: #1A1A1A;--ink-soft: #2C2A26;--muted: #8A8780;--muted-strong: #5C5A55;--hairline: #E8E5DE;--placeholder: #EDEAE2;--serif: "Instrument Serif", "EB Garamond", Georgia, serif;--body: "EB Garamond", "Georgia", serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);color:var(--ink);font-family:var(--body);font-weight:400;font-size:20px;line-height:1.7;letter-spacing:.005em;text-rendering:optimizeLegibility}::selection{background:#1a1a1a;color:var(--bg)}.wrap{max-width:880px;margin:0 auto;padding:0 32px}.label{font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-strong);margin:0 0 64px;display:block;text-align:center}a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .16s ease,color .16s ease,opacity .16s ease}a:hover{border-bottom-color:currentColor}a:focus-visible{outline:2px solid var(--muted);outline-offset:3px;border-radius:2px}.arrow{display:inline-block;transform:translate(1px,-1px);font-size:.85em;color:var(--muted);transition:transform .2s cubic-bezier(.2,.7,.2,1),color .16s ease}a:hover .arrow{color:var(--ink);transform:translate(3px,-3px)}a:hover .arrow.right{transform:translate(4px)}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1)}.reveal.visible{opacity:1;transform:translateY(0)}.lang-switch{position:fixed;top:28px;right:32px;z-index:100;font-size:14px;color:var(--muted-strong);letter-spacing:.04em;display:flex;align-items:center;gap:4px}.lang-switch button{background:none;border:none;font:inherit;color:var(--muted);cursor:pointer;padding:2px 4px;transition:color .16s ease}.lang-switch button:hover{color:var(--ink)}.lang-switch button.active{color:var(--ink);font-weight:500}.lang-switch .sep{color:var(--hairline);-webkit-user-select:none;user-select:none}.hero{padding:120px 0 0;position:relative;animation:rise .9s cubic-bezier(.2,.7,.2,1) both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero-grid{display:block;text-align:center}.name{font-family:var(--serif);font-weight:400;font-size:clamp(54px,9vw,96px);line-height:1;letter-spacing:-.025em;margin:0 0 20px}.role{font-size:19px;color:var(--muted-strong);margin:0 0 36px}.role .dot{color:var(--muted);margin:0 10px}.bio{font-size:22px;line-height:1.8;color:var(--ink-soft);max-width:56ch;margin:0 auto 40px;text-align:center;text-wrap:pretty}.contact{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;font-size:16px;color:var(--ink-soft);margin-bottom:32px}.contact a{color:var(--ink-soft)}.contact .sep{color:var(--muted);-webkit-user-select:none;user-select:none}.cv-download{display:inline-flex;align-items:center;gap:6px;font-size:15px;letter-spacing:.02em;color:var(--ink);border:1px solid var(--ink);border-radius:999px;padding:12px 30px;transition:background .18s ease,color .18s ease}.cv-download:hover{background:var(--ink);color:var(--bg);border-bottom-color:var(--ink)}.skills{padding:180px 0 0}.skills-table{max-width:660px;margin:0 auto;display:flex;flex-direction:column}.skill-row{display:grid;grid-template-columns:180px 1fr;gap:28px;padding:20px 0;border-top:1px solid var(--hairline);font-size:19px;line-height:1.75;transition:background .2s ease;border-radius:4px;text-align:center}.skill-row:hover{background:#00000004}.skill-row:first-child{border-top:0}.skill-row dt{margin:0;color:var(--muted-strong);font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding-top:4px;text-align:center}.skill-row dd{margin:0;color:var(--ink-soft);text-align:center}.experience{padding:180px 0 0}.jobs{max-width:660px;margin:0 auto}.job{padding:52px 0;border-top:1px solid var(--hairline)}.job:first-child{border-top:0;padding-top:0}.job-title{font-family:var(--serif);font-weight:400;font-size:30px;letter-spacing:-.01em;margin:0 0 8px;text-align:center}.job-meta{font-size:15px;color:var(--muted);margin:0 0 20px;text-align:center}.job-meta .dot{margin:0 10px;color:var(--hairline)}.job-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;text-align:center}.job-points li{font-size:19px;line-height:1.75;color:var(--ink-soft);padding-left:0;position:relative;text-wrap:pretty}.education{padding:180px 0 0}.edu-items{max-width:660px;margin:0 auto}.edu-item{padding:40px 0;border-top:1px solid var(--hairline);text-align:center}.edu-item:first-child{border-top:0;padding-top:0}.edu-title{font-family:var(--serif);font-weight:400;font-size:26px;letter-spacing:-.01em;margin:0 0 8px}.edu-meta{font-size:15px;color:var(--muted);margin:0 0 12px}.edu-desc{font-size:18px;line-height:1.7;color:var(--ink-soft);margin:0}.work{padding:180px 0 0}.projects{display:flex;flex-direction:column}.project{padding:90px 0;border-top:1px solid var(--hairline);text-align:center;transition:background .2s ease,transform .2s ease,box-shadow .2s ease;border-radius:8px}.project:first-of-type{padding-top:8px;border-top:0}.project:last-of-type{padding-bottom:8px}.project:hover{background:#00000003;transform:translateY(-2px);box-shadow:0 4px 24px #0000000a}.project:nth-child(1){transition-delay:0ms}.project:nth-child(2){transition-delay:.1s}.project:nth-child(3){transition-delay:.2s}.project:nth-child(4){transition-delay:.3s}.project:nth-child(5){transition-delay:.4s}.skill-row:nth-child(1){transition-delay:0ms}.skill-row:nth-child(2){transition-delay:80ms}.skill-row:nth-child(3){transition-delay:.16s}.skill-row:nth-child(4){transition-delay:.24s}.project-name{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5.5vw,58px);line-height:1.05;letter-spacing:-.02em;margin:0 0 16px}.project-name a{border-bottom:1px solid transparent;padding-bottom:2px;transition:border-color .2s ease,color .2s ease,letter-spacing .2s ease}.project-name a:hover{border-bottom-color:var(--ink);letter-spacing:.01em}.project-meta{font-size:15px;color:var(--muted);margin:0 0 44px;text-align:center}.project-meta .dot{margin:0 10px;color:var(--hairline)}.project-points{list-style:none;margin:0 auto 40px;padding:0;max-width:62ch;text-align:center;display:flex;flex-direction:column;gap:20px}.project-points li{font-size:20px;line-height:1.75;color:var(--ink-soft);text-wrap:pretty;padding-left:0;position:relative}.stack{font-size:15px;color:var(--muted-strong);line-height:1.7;max-width:62ch;margin:0 auto 28px;text-align:center}.stack .dot{color:var(--muted);margin:0 8px}.project-links{display:flex;justify-content:center;gap:26px;font-size:15px;color:var(--ink-soft)}.project-links a{color:var(--ink-soft)}.also-note{margin:72px auto 0;max-width:60ch;font-size:15px;color:var(--muted-strong);text-align:center;line-height:1.7;padding-top:40px;border-top:1px solid var(--hairline)}.languages{padding:180px 0 0;text-align:center}.lang-list{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 40px;font-size:19px;color:var(--ink-soft);margin:0;padding:0;list-style:none}.lang-list .lvl{color:var(--muted)}.contact-section{padding:180px 0 0;text-align:center}.contact-headline{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.5vw,48px);line-height:1.15;letter-spacing:-.02em;margin:0 0 16px;white-space:pre-line;text-align:center}.contact-sub{font-size:18px;color:var(--muted-strong);margin:0 0 40px;text-align:center}.contact-cta{margin:0;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.scroll-top{position:fixed;bottom:32px;right:32px;z-index:100;width:44px;height:44px;border-radius:50%;border:1px solid var(--hairline);background:var(--bg);color:var(--muted-strong);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease,color .16s ease,border-color .16s ease}.scroll-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-top:hover{color:var(--ink);border-color:var(--ink)}.cursor{display:inline-block;color:var(--muted);animation:blink .7s step-end infinite;font-weight:300;margin-left:1px}@keyframes blink{50%{opacity:0}}footer{padding:140px 0 64px;margin-top:140px;border-top:1px solid var(--hairline);text-align:center}.foot-meta{padding-top:48px;font-size:14px;color:var(--muted);letter-spacing:.04em;margin:0 0 24px;text-align:center}.foot-meta .dot{margin:0 12px;color:var(--hairline)}.foot-links{display:flex;justify-content:center;gap:26px;font-size:14px;color:var(--muted-strong)}@media(max-width:720px){.wrap{padding:0 24px}.hero{padding-top:80px}.lang-switch{top:20px;right:24px}.name{font-size:48px}.skills,.experience,.education,.work,.languages,.contact-section{padding-top:100px}.skill-row{grid-template-columns:1fr;gap:8px}.project{padding:64px 0}.scroll-top{bottom:20px;right:20px;width:40px;height:40px;font-size:16px}footer{padding-top:96px;margin-top:80px}}@media(max-width:460px){.name{font-size:42px}.project-name{font-size:34px}}@media(max-width:320px){body{font-size:17px}.wrap{padding:0 16px}.name{font-size:36px}.role{font-size:16px}.bio{font-size:18px;line-height:1.7}.contact{font-size:14px;gap:8px 18px}.cv-download{font-size:13px;padding:10px 22px}.skills,.experience,.education,.work,.languages,.contact-section{padding-top:80px}.label{margin-bottom:40px}.skill-row{font-size:16px;padding:16px 0}.skill-row dt{font-size:11px}.job-title{font-size:24px}.job-points li{font-size:16px}.project-name{font-size:28px}.project-points li{font-size:17px}.project{padding:48px 0}.contact-headline{font-size:28px}.contact-sub{font-size:16px}.lang-list{font-size:16px;gap:8px 24px}.lang-switch{top:16px;right:16px;font-size:13px}footer{padding-top:72px;margin-top:60px}.foot-links{gap:16px;font-size:13px}}@media print{body{font-size:12pt;background:#fff}.lang-switch,.scroll-top,.cursor,.cv-download{display:none!important}.reveal{opacity:1!important;transform:none!important}a{border-bottom:none!important}a[href]:after{content:" (" attr(href) ")";font-size:.8em;color:#666}nav.contact a[href]:after,.foot-links a[href]:after{content:none}.hero{padding-top:0}.skills,.experience,.education,.work,.languages,.contact-section{padding-top:48px}footer{padding-top:24px;margin-top:24px}.project,.job{page-break-inside:avoid}}
