@font-face{font-family:"Instrument Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/instrument-serif-latin-ext-400-normal-C2je3j2s.woff2) format("woff2"),url(/build/assets/instrument-serif-latin-ext-400-normal-CFCUzsTy.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Instrument Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2) format("woff2"),url(/build/assets/instrument-serif-latin-400-normal-BVbkICAY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Instrument Serif";font-style:italic;font-display:swap;font-weight:400;src:url(/build/assets/instrument-serif-latin-ext-400-italic-C9HzH3YL.woff2) format("woff2"),url(/build/assets/instrument-serif-latin-ext-400-italic-D7-lnxEk.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Instrument Serif";font-style:italic;font-display:swap;font-weight:400;src:url(/build/assets/instrument-serif-latin-400-italic-DKMiL14s.woff2) format("woff2"),url(/build/assets/instrument-serif-latin-400-italic-u__WvvIK.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/build/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/build/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/build/assets/jetbrains-mono-cyrillic-ext-wght-normal-EocZY2iu.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/build/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/build/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/build/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/build/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/build/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg: #0d0c0b;--surface: #161412;--surface-2: #1e1b19;--line: rgba(255, 240, 225, .09);--line-strong: rgba(255, 240, 225, .2);--text: #f2ede7;--muted: #a8a098;--line-field: #6e6862;--faint: #8f877f;--accent: #f04a3e;--accent-soft: rgba(240, 74, 62, .12);--accent-ink: #160806;--font-display: "Instrument Serif", "Iowan Old Style", Georgia, serif;--font-sans: "Instrument Sans Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono Variable", ui-monospace, "Cascadia Code", Consolas, monospace;--radius: 10px;--gutter: clamp(20px, 5vw, 56px);--ease: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--surface-2) var(--bg);-webkit-text-size-adjust:100%}body{min-height:100vh;background:radial-gradient(1100px 560px at 88% -12%,rgba(240,74,62,.11),transparent 62%),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--font-sans);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}a{color:inherit}img{max-width:100%}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:8px;left:8px;z-index:200;padding:10px 16px;border-radius:6px;background:var(--accent);color:var(--accent-ink);font-size:.9rem;font-weight:600;text-decoration:none;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-nav{position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;gap:12px 24px;padding:14px var(--gutter);background:#0d0c0bb8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.site-brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:.95rem;letter-spacing:-.01em;text-decoration:none;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:26px;height:26px;border-radius:6px;background:var(--accent);color:var(--accent-ink);font-weight:800;font-size:.85rem;line-height:1}.site-links{display:flex;gap:2px}.site-link{position:relative;padding:8px 12px;border-radius:6px;font-size:.9rem;font-weight:500;text-decoration:none;color:var(--muted);transition:color .2s ease,background .2s ease}.site-link:hover{color:var(--text);background:#fff0e10f}.site-link.active{color:var(--text)}.site-link.active:after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;border-radius:2px;background:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border:1px solid transparent;border-radius:999px;background:var(--accent);color:var(--accent-ink);font:inherit;font-size:.95rem;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),background .2s ease,border-color .2s ease,color .2s ease}.btn:hover{background:#ff6257;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-ghost{background:transparent;border-color:var(--line-strong);color:var(--text)}.btn-ghost:hover{background:#fff0e10f;border-color:var(--text)}.footer-link{text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:4px;transition:color .2s ease,text-decoration-color .2s ease}.footer-link:hover{color:var(--text);text-decoration-color:var(--accent)}.eyebrow{font-family:var(--font-mono);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--accent)}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag{padding:5px 10px;border:1px solid var(--line);border-radius:6px;background:#fff0e108;color:var(--muted);font-family:var(--font-mono);font-size:.72rem;line-height:1.3;white-space:nowrap}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.btn,.site-link{transition:none}}@media (max-width: 480px){.site-link{padding:8px 9px}}.scroll-progress{position:fixed;top:0;left:0;height:2px;background:var(--accent);width:0%;z-index:1000}.cv-container{display:grid;grid-template-columns:340px minmax(0,1fr);min-height:100vh}.cv-sidebar{position:sticky;top:0;height:100vh;padding:44px 32px;overflow-y:auto;scrollbar-width:none;border-right:1px solid var(--line);background:#1614128c}.cv-sidebar::-webkit-scrollbar{display:none}.sidebar-content{display:flex;flex-direction:column;gap:36px}.name{font-family:var(--font-display);font-size:2.5rem;font-weight:400;line-height:1;letter-spacing:-.02em;margin-bottom:14px}.name a{text-decoration:none;transition:color .2s ease}.name a:hover{color:var(--accent)}.title{font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin-bottom:6px}.location{font-size:.9rem;color:var(--muted)}.email{margin-top:4px;font-size:.9rem;color:var(--muted)}.sidebar-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.sidebar-link{padding:7px 16px;border:1px solid var(--line-strong);border-radius:999px;font-size:.85rem;font-weight:500;text-decoration:none;transition:background .2s ease,border-color .2s ease}.sidebar-link:hover{background:#fff0e10f;border-color:var(--text)}.sidebar-download{border-color:#f04a3e73;color:var(--accent)}.sidebar-download:hover{border-color:var(--accent)}.sidebar-title{font-family:var(--font-mono);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--faint);margin-bottom:14px}.skills-grid{display:flex;flex-wrap:wrap;gap:6px}.skill-tag{padding:5px 10px;border:1px solid var(--line);border-radius:6px;background:#fff0e108;color:var(--text);font-size:.8rem;line-height:1.3;transition:border-color .2s ease}.skill-tag:hover{border-color:var(--line-strong)}.tech-stack{display:flex;flex-direction:column}.tech-item{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;align-items:baseline;padding:10px 0;border-top:1px solid var(--line)}.tech-item:last-child{border-bottom:1px solid var(--line)}.tech-label{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}.tech-item p{font-size:.88rem;color:var(--muted)}.cv-main{width:100%;max-width:880px;padding:72px var(--gutter) 48px}.cv-section{margin-bottom:76px}.section-title{display:flex;align-items:center;gap:16px;margin-bottom:28px;font-family:var(--font-mono);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--accent)}.section-title:after{content:"";flex:1;height:1px;background:var(--line)}.summary-content{display:flex;flex-direction:column;gap:18px}.summary-content p{color:var(--muted);line-height:1.75}.summary-content p:first-child{font-family:var(--font-display);font-size:clamp(1.4rem,2.3vw,1.75rem);line-height:1.32;letter-spacing:-.005em;color:var(--text);margin-bottom:6px}.experience-item{position:relative;padding:0 0 44px 30px;border-left:1px solid var(--line-strong)}.experience-item:last-child{padding-bottom:0}.experience-item:before{content:"";position:absolute;top:9px;left:-5px;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px var(--bg)}.exp-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 16px}.exp-title{font-family:var(--font-display);font-size:1.7rem;font-weight:400;line-height:1.15;letter-spacing:-.01em}.exp-company{font-weight:500;color:var(--text)}.exp-period{margin:6px 0 18px;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}.exp-highlights,.project-highlights{list-style:none;margin-bottom:18px}.exp-highlights li,.project-highlights li{position:relative;margin-bottom:9px;padding-left:20px;color:var(--muted);font-size:.96rem;line-height:1.6}.exp-highlights li:before,.project-highlights li:before{content:"";position:absolute;left:0;top:.8em;width:8px;height:1px;background:var(--accent)}.tech-used{font-family:var(--font-mono);font-size:.75rem;line-height:1.6;color:var(--faint)}.education-item h3{font-family:var(--font-display);font-size:1.7rem;font-weight:400;line-height:1.15;letter-spacing:-.01em;margin-bottom:6px}.degree{font-weight:500;margin-bottom:10px}.edu-details{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-bottom:10px}.edu-focus{color:var(--muted);font-size:.96rem}.personal-content{display:flex;flex-direction:column;gap:22px}.personal-content p{color:var(--muted);line-height:1.75}.interests{display:flex;flex-wrap:wrap;gap:8px}.interest-tag{padding:7px 14px;border:1px solid var(--line-strong);border-radius:999px;font-size:.85rem;line-height:1.3}.project-item{border-top:1px solid var(--line)}.project-item:last-of-type{border-bottom:1px solid var(--line)}.project-heading{font-size:1rem;font-weight:400}.project-header{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:20px 0;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none}.project-name{display:block;font-family:var(--font-display);font-size:1.5rem;line-height:1.2;letter-spacing:-.01em;transition:color .2s ease}.project-header:hover .project-name{color:var(--accent)}.project-subtitle{display:block;font-size:.88rem;color:var(--muted)}.expand-icon{flex:none;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line-strong);border-radius:50%;font-size:1.1rem;font-weight:400;line-height:1;color:var(--muted);transition:transform .35s var(--ease),border-color .2s ease,color .2s ease}.project-header:hover .expand-icon{border-color:var(--text);color:var(--text)}.project-item.expanded .expand-icon{border-color:var(--accent);color:var(--accent)}.project-details{max-height:0;overflow:hidden;visibility:hidden;transition:max-height .45s var(--ease),visibility 0s .45s}.project-item.expanded .project-details{max-height:800px;visibility:visible;transition:max-height .45s var(--ease),visibility 0s}.project-details>:last-child{margin-bottom:24px}.project-period{margin-bottom:16px;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}.achievement{font-size:.92rem;font-weight:500;color:var(--accent)}.projects-link{display:inline-block;margin-top:24px;font-weight:500;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:5px;transition:text-decoration-color .2s ease}.projects-link:hover{text-decoration-color:var(--accent)}.cv-footer{padding-top:24px;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in-section{animation:fadeIn .7s var(--ease) forwards;opacity:0}.fade-in-section:nth-child(1){animation-delay:.05s}.fade-in-section:nth-child(2){animation-delay:.15s}.fade-in-section:nth-child(3){animation-delay:.25s}.fade-in-section:nth-child(4){animation-delay:.35s}.fade-in-section:nth-child(5){animation-delay:.45s}@media (max-width: 1024px){.cv-container{grid-template-columns:280px minmax(0,1fr)}.cv-sidebar{padding:36px 24px}.cv-main{padding-top:56px}}@media (max-width: 768px){.cv-container{grid-template-columns:minmax(0,1fr)}.cv-sidebar{position:relative;height:auto;padding:36px var(--gutter);border-right:none;border-bottom:1px solid var(--line)}.sidebar-content{gap:28px}.cv-main{padding-top:44px}.cv-section{margin-bottom:56px}.exp-title,.education-item h3{font-size:1.45rem}}@media (prefers-reduced-motion: reduce){.fade-in-section{animation:none;opacity:1}.project-details,.expand-icon{transition:none}}@page{size:A4;margin:12mm 14mm 13mm}@media print{:root{color-scheme:light;--bg: #ffffff;--text: #141210;--muted: #3a3632;--faint: #6b655f;--accent: #c2291f;--line: #e2ddd7;--line-strong: #c9c2ba}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}html{background:#fff;font-size:9.4pt}body{min-height:0;background:#fff;line-height:1.5}.skip-link,.scroll-progress,.sidebar-nav,.expand-icon,.projects-link,.cv-footer{display:none}.cv-container{display:block;min-height:0}.cv-sidebar{position:static;height:auto;margin-bottom:16pt;padding:0 0 14pt;overflow:visible;border:none;border-bottom:1px solid var(--line-strong);background:none}.sidebar-content{display:grid;grid-template-columns:1fr 1.05fr 1.25fr;gap:20pt;align-items:start}.name{font-size:2.7rem;margin-bottom:8pt}.email .footer-link{text-decoration:none}.sidebar-title{margin-bottom:7pt}.skills-grid{gap:3pt}.skill-tag{padding:2pt 5pt;border-color:var(--line-strong);border-radius:3pt;background:none;font-size:.78rem;animation:none!important}.tech-item{grid-template-columns:46pt minmax(0,1fr);gap:8pt;padding:4pt 0}.tech-item p{font-size:.84rem;line-height:1.4}.cv-main{max-width:none;padding:0}.cv-section{margin-bottom:15pt}.section-title{margin-bottom:9pt;break-after:avoid}.fade-in-section{animation:none!important;opacity:1!important}.summary-content{gap:6pt}.summary-content p,.personal-content p{line-height:1.5}.summary-content p:first-child{margin-bottom:0;font-size:1.3rem;line-height:1.3}.experience-item{margin-left:4px;padding:0 0 13pt 16pt}.experience-item:before{top:6pt;left:-4px;width:7px;height:7px;box-shadow:0 0 0 3px #fff}.exp-title,.education-item h3{font-size:1.5rem}.exp-period{margin:2pt 0 7pt}.exp-highlights,.project-highlights{margin-bottom:6pt}.exp-highlights li,.project-highlights li{margin-bottom:2.5pt;padding-left:13pt;font-size:.95rem;line-height:1.42;break-inside:avoid}.exp-highlights li:before,.project-highlights li:before{width:6pt}.education-item h3,.degree,.edu-details{margin-bottom:3pt}.personal-content{gap:8pt}.interests{gap:4pt}.interest-tag{padding:2pt 8pt;font-size:.8rem}.project-item{padding:7pt 0 8pt;break-inside:avoid}.project-header{padding:0;cursor:auto}.project-title-section{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 9pt}.project-name{font-size:1.3rem}.project-subtitle{font-size:.85rem}.project-details{max-height:none;overflow:visible;visibility:visible}.project-details>:last-child{margin-bottom:0}.project-period{margin:1pt 0 5pt}.exp-header,.exp-period,.project-heading,.project-period{break-after:avoid}.education-item,.personal-content{break-inside:avoid}}
