:root{--color-bg:#fff;--color-bg-elevated:#fafafa;--color-bg-muted:#f4f4f5;--color-border:#e4e4e7;--color-border-strong:#d4d4d8;--color-text:#18181b;--color-text-muted:#52525b;--color-text-subtle:#71717a;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-bg:#2563eb14;--color-tag-bg:#f4f4f5;--color-tag-text:#3f3f46;--color-shadow:#0000000f;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:1.875rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--lh-tight:1.2;--lh-snug:1.4;--lh-normal:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--container-width:880px;--nav-height:64px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}[data-theme=dark]{--color-bg:#0a0a0b;--color-bg-elevated:#131316;--color-bg-muted:#1c1c20;--color-border:#27272a;--color-border-strong:#3f3f46;--color-text:#fafafa;--color-text-muted:#a1a1aa;--color-text-subtle:#71717a;--color-accent:#60a5fa;--color-accent-hover:#93c5fd;--color-accent-bg:#60a5fa1f;--color-tag-bg:#1f1f23;--color-tag-text:#d4d4d8;--color-shadow:#00000080}html{background:var(--color-bg);color:var(--color-text);transition:background-color var(--transition-base), color var(--transition-base)}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height);-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{min-height:100svh;font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}img,picture,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}ul,ol{list-style:none}input,button,textarea,select{font:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--color-text);line-height:var(--lh-tight);letter-spacing:-.02em;font-weight:600}h1{font-size:var(--fs-3xl);font-weight:700}@media (width<=768px){h1{font-size:var(--fs-2xl)}}h2{font-size:var(--fs-xl);margin-bottom:var(--space-4)}@media (width<=768px){h2{font-size:var(--fs-lg)}}h3{font-size:var(--fs-md);font-weight:600}h4{font-size:var(--fs-base);font-weight:600}p{line-height:var(--lh-normal);color:var(--color-text-muted)}a{color:var(--color-accent);transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}strong{color:var(--color-text);font-weight:600}small{font-size:var(--fs-sm);color:var(--color-text-subtle)}::selection{background:var(--color-accent-bg);color:var(--color-text)}.reveal{opacity:0;transition:opacity var(--transition-slow), transform var(--transition-slow);will-change:opacity, transform;transform:translateY(16px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media print{:root,[data-theme=dark]{--color-bg:#fff;--color-bg-elevated:#fff;--color-bg-muted:#fff;--color-border:#d4d4d8;--color-border-strong:#a1a1aa;--color-text:#000;--color-text-muted:#27272a;--color-text-subtle:#52525b;--color-accent:#1d4ed8;--color-accent-bg:transparent;--color-accent-hover:#1d4ed8;--color-tag-bg:transparent;--color-tag-text:#000;--color-shadow:transparent;--space-10:.5rem;--space-12:.5rem;--space-20:.25rem;--nav-height:0px;font-size:9.5pt}@page{size:A4;margin:0}html,body{color:#000!important;background:#fff!important;margin:0!important}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:10mm 12mm!important}body,#app{background:#fff!important}.no-print,nav.app-nav,.theme-toggle,.language-toggle,.print-button,.menu-toggle,.cv-footer{display:none!important}main.cv{padding-top:0!important;padding-bottom:0!important}.reveal{opacity:1!important;will-change:auto!important;transition:none!important;animation:none!important;transform:none!important}.container{max-width:none!important;padding-inline:0!important}header.cv-header{border-bottom:1pt solid #000!important;margin-bottom:6pt!important;padding-block:0 6pt!important}section.cv-section{break-inside:avoid;page-break-inside:avoid;border-bottom:.5pt solid #d4d4d8!important;padding-block:10pt!important}section.cv-section:last-child{border-bottom:none!important}h1{color:#000!important;font-size:18pt!important;line-height:1.1!important}h2{text-transform:uppercase;letter-spacing:.06em;color:#000!important;margin-bottom:4pt!important;font-size:11pt!important}h3{color:#000!important;font-size:10pt!important}h1,h2,h3{break-after:avoid;page-break-after:avoid}p{font-size:9.5pt!important;line-height:1.4!important}a{color:inherit!important;text-decoration:none!important}.skill-category,.project-card,.experience-item,.education-item,.course-item,.language-item{break-inside:avoid;page-break-inside:avoid}.section-title{margin-bottom:4pt!important}.section-title:after{background:#d4d4d8!important}}#app{min-height:100svh}.container{width:100%;max-width:var(--container-width);padding-inline:var(--space-6);margin:0 auto}@media (width<=768px){.container{padding-inline:var(--space-4)}}main.cv{padding-bottom:var(--space-20)}section.cv-section{scroll-margin-top:var(--nav-height);padding-block:var(--space-10);border-bottom:1px solid var(--color-border)}section.cv-section:last-child{border-bottom:none}@media (width<=768px){section.cv-section{padding-block:var(--space-8)}}.section-title{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);display:flex}.section-title:after{content:"";background:var(--color-border);flex:1;height:1px}[data-v-1853657f]:root{--color-bg:#fff;--color-bg-elevated:#fafafa;--color-bg-muted:#f4f4f5;--color-border:#e4e4e7;--color-border-strong:#d4d4d8;--color-text:#18181b;--color-text-muted:#52525b;--color-text-subtle:#71717a;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-bg:#2563eb14;--color-tag-bg:#f4f4f5;--color-tag-text:#3f3f46;--color-shadow:#0000000f;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:1.875rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--lh-tight:1.2;--lh-snug:1.4;--lh-normal:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--container-width:880px;--nav-height:64px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){[data-v-1853657f]:root{--lightningcss-light: ;--lightningcss-dark:initial}}.social-links[data-v-1853657f]{gap:var(--space-2);flex-wrap:wrap;display:flex}.social-links a[data-v-1853657f]{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-bg-muted);color:var(--color-text);font-size:var(--fs-sm);transition:background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);display:inline-flex}.social-links a[data-v-1853657f]:hover{background:var(--color-accent-bg);color:var(--color-accent);transform:translateY(-1px)}.social-links a svg[data-v-1853657f]{flex-shrink:0}@media (width<=768px){.social-links a span[data-v-1853657f]{display:none}.social-links a[data-v-1853657f]{justify-content:center;width:36px;height:36px;padding:0}}@media print{.social-links[data-v-1853657f]{flex-flow:wrap;gap:6pt 12pt;margin-top:4pt}.social-links a[data-v-1853657f]{gap:4pt;font-size:9.5pt;color:#000!important;background:0 0!important;width:auto!important;height:auto!important;padding:0!important;transform:none!important}.social-links a span[data-v-1853657f]{display:inline!important}.social-links a svg[data-v-1853657f]{width:10pt;height:10pt}}[data-v-3dcc91b2]:root{--color-bg:#fff;--color-bg-elevated:#fafafa;--color-bg-muted:#f4f4f5;--color-border:#e4e4e7;--color-border-strong:#d4d4d8;--color-text:#18181b;--color-text-muted:#52525b;--color-text-subtle:#71717a;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-bg:#2563eb14;--color-tag-bg:#f4f4f5;--color-tag-text:#3f3f46;--color-shadow:#0000000f;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:1.875rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--lh-tight:1.2;--lh-snug:1.4;--lh-normal:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--container-width:880px;--nav-height:64px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){[data-v-3dcc91b2]:root{--lightningcss-light: ;--lightningcss-dark:initial}}.cv-header[data-v-3dcc91b2]{padding-block:var(--space-10) var(--space-6);margin-top:50px}@media (width<=768px){.cv-header[data-v-3dcc91b2]{padding-block:var(--space-6) var(--space-4)}}.header-inner[data-v-3dcc91b2]{align-items:flex-start;gap:var(--space-6);display:flex}@media (width<=768px){.header-inner[data-v-3dcc91b2]{align-items:flex-start;gap:var(--space-4);flex-direction:column}}.photo-wrapper[data-v-3dcc91b2]{border-radius:var(--radius-full);background:var(--color-bg-muted);border:2px solid var(--color-border);flex-shrink:0;justify-content:center;align-items:center;width:112px;height:112px;display:inline-flex;position:relative;overflow:hidden}@media (width<=768px){.photo-wrapper[data-v-3dcc91b2]{width:96px;height:96px}}.photo-wrapper .photo[data-v-3dcc91b2]{object-fit:cover;object-position:center top;z-index:1;width:100%;height:100%;position:absolute;inset:0}.photo-wrapper .photo-fallback[data-v-3dcc91b2]{color:var(--color-text-muted);font-size:var(--fs-2xl);letter-spacing:.04em;font-weight:700}@media print{.cv-header[data-v-3dcc91b2]{margin-top:0!important;padding-block:0 6pt!important}.header-inner[data-v-3dcc91b2]{flex-direction:row!important;align-items:flex-start!important;gap:10pt!important}.photo-wrapper[data-v-3dcc91b2]{flex-shrink:0;border-width:.5pt!important;width:60pt!important;height:60pt!important}.photo-fallback[data-v-3dcc91b2]{font-size:16pt!important}.text[data-v-3dcc91b2]{flex:1;gap:1pt!important}.text h1[data-v-3dcc91b2]{font-size:18pt!important;line-height:1.1!important}.text .role[data-v-3dcc91b2]{color:#000!important;font-size:11pt!important}.text .meta[data-v-3dcc91b2]{margin-bottom:1pt!important;font-size:9pt!important}}.text[data-v-3dcc91b2]{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.text h1[data-v-3dcc91b2]{font-size:var(--fs-3xl);margin:0;line-height:1.15}@media (width<=768px){.text h1[data-v-3dcc91b2]{font-size:var(--fs-2xl)}}.text .role[data-v-3dcc91b2]{font-size:var(--fs-lg);color:var(--color-accent);margin:0;font-weight:500;line-height:1.3}.text .meta[data-v-3dcc91b2]{font-style:normal;font-size:var(--fs-sm);color:var(--color-text-subtle);margin-bottom:var(--space-2)}.language-toggle[data-v-b4ab3d66]{align-items:center;gap:var(--space-1);height:36px;padding-inline:var(--space-3);border-radius:var(--radius-md);font-size:var(--fs-sm);color:var(--color-text-muted);transition:background-color var(--transition-fast), color var(--transition-fast);font-weight:600;display:inline-flex}.language-toggle[data-v-b4ab3d66]:hover{background:var(--color-bg-muted)}.language-toggle .lang[data-v-b4ab3d66]{transition:color var(--transition-fast)}.language-toggle .lang.active[data-v-b4ab3d66]{color:var(--color-accent)}.language-toggle .divider[data-v-b4ab3d66]{color:var(--color-border-strong)}.print-button[data-v-e18998a8]{align-items:center;gap:var(--space-2);height:36px;padding-inline:var(--space-4);border-radius:var(--radius-md);background:var(--color-accent);color:#fff;font-size:var(--fs-sm);transition:background-color var(--transition-fast), transform var(--transition-fast);font-weight:600;display:inline-flex}.print-button[data-v-e18998a8]:hover{background:var(--color-accent-hover)}.print-button[data-v-e18998a8]:active{transform:translateY(1px)}.theme-toggle[data-v-7832de8a]{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-muted);transition:background-color var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.theme-toggle[data-v-7832de8a]:hover{background:var(--color-bg-muted);color:var(--color-text)}[data-v-c7ab1885]:root{--color-bg:#fff;--color-bg-elevated:#fafafa;--color-bg-muted:#f4f4f5;--color-border:#e4e4e7;--color-border-strong:#d4d4d8;--color-text:#18181b;--color-text-muted:#52525b;--color-text-subtle:#71717a;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-bg:#2563eb14;--color-tag-bg:#f4f4f5;--color-tag-text:#3f3f46;--color-shadow:#0000000f;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:1.875rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--lh-tight:1.2;--lh-snug:1.4;--lh-normal:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--container-width:880px;--nav-height:64px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){[data-v-c7ab1885]:root{--lightningcss-light: ;--lightningcss-dark:initial}}.app-nav[data-v-c7ab1885]{top:0;z-index:50;height:var(--nav-height);background:color-mix(in srgb, var(--color-bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--color-border);position:fixed;inset-inline:0}.nav-inner[data-v-c7ab1885]{width:100%;max-width:1200px;height:100%;padding-inline:var(--space-6);align-items:center;gap:var(--space-6);margin:0 auto;display:flex}@media (width<=768px){.nav-inner[data-v-c7ab1885]{padding-inline:var(--space-4);gap:var(--space-3)}}.brand[data-v-c7ab1885]{flex-shrink:0;align-items:center;display:inline-flex}.brand .brand-mark[data-v-c7ab1885]{border-radius:var(--radius-md);background:var(--color-accent);color:#fff;width:36px;height:36px;font-weight:700;font-size:var(--fs-sm);letter-spacing:.04em;transition:transform var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.brand:hover .brand-mark[data-v-c7ab1885]{transform:scale(1.05)}.nav-list[data-v-c7ab1885]{align-items:center;gap:var(--space-1);flex:1;display:flex}.nav-list a[data-v-c7ab1885]{height:36px;padding-inline:var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--fs-sm);white-space:nowrap;transition:background-color var(--transition-fast), color var(--transition-fast);align-items:center;font-weight:500;display:inline-flex}.nav-list a[data-v-c7ab1885]:hover{background:var(--color-bg-muted);color:var(--color-text)}.nav-list a.active[data-v-c7ab1885]{color:var(--color-accent);background:var(--color-accent-bg)}.nav-actions[data-v-c7ab1885]{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.menu-toggle[data-v-c7ab1885]{border-radius:var(--radius-md);flex-direction:column;justify-content:center;align-items:center;gap:4px;width:36px;height:36px;display:none}.menu-toggle span[data-v-c7ab1885]{background:var(--color-text);border-radius:1px;width:18px;height:2px;display:block}.menu-toggle[data-v-c7ab1885]:hover{background:var(--color-bg-muted)}@media (width<=1024px){.nav-list[data-v-c7ab1885]{top:var(--nav-height);padding:var(--space-3);background:var(--color-bg);border-bottom:1px solid var(--color-border);align-items:stretch;gap:var(--space-1);opacity:0;pointer-events:none;transition:transform var(--transition-base), opacity var(--transition-base);flex-direction:column;margin:0;position:absolute;inset-inline:0;transform:translateY(-8px)}.nav-list.open[data-v-c7ab1885]{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-list a[data-v-c7ab1885]{width:100%;height:40px;padding-inline:var(--space-4)}.menu-toggle[data-v-c7ab1885]{order:99;display:inline-flex}}@media (width<=768px){.nav-actions[data-v-c7ab1885] .print-button span{display:none}.nav-actions[data-v-c7ab1885] .print-button{justify-content:center;width:36px;padding-inline:0}}[data-v-5e7ecdf6]:root{--color-bg:#fff;--color-bg-elevated:#fafafa;--color-bg-muted:#f4f4f5;--color-border:#e4e4e7;--color-border-strong:#d4d4d8;--color-text:#18181b;--color-text-muted:#52525b;--color-text-subtle:#71717a;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-bg:#2563eb14;--color-tag-bg:#f4f4f5;--color-tag-text:#3f3f46;--color-shadow:#0000000f;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:1.875rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--lh-tight:1.2;--lh-snug:1.4;--lh-normal:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--container-width:880px;--nav-height:64px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){[data-v-5e7ecdf6]:root{--lightningcss-light: ;--lightningcss-dark:initial}}.timeline[data-v-5e7ecdf6]{gap:var(--space-4);flex-direction:column;display:flex}.course-item[data-v-5e7ecdf6]{gap:var(--space-5);grid-template-columns:140px 1fr;align-items:start;display:grid}@media (width<=768px){.course-item[data-v-5e7ecdf6]{gap:var(--space-1);grid-template-columns:1fr}}.course-item .period[data-v-5e7ecdf6]{font-size:var(--fs-sm);color:var(--color-text-subtle);font-variant-numeric:tabular-nums;padding-top:2px}.course-item h3[data-v-5e7ecdf6]{font-size:var(--fs-base);margin-bottom:var(--space-1)}.course-item .institution[data-v-5e7ecdf6]{color:var(--color-text-muted);font-size:var(--fs-sm)}[data-v-374b1157]:root{--color-bg:#fff;--color-bg-elevated:#fafafa;--color-bg-muted:#f4f4f5;--color-border:#e4e4e7;--color-border-strong:#d4d4d8;--color-text:#18181b;--color-text-muted:#52525b;--color-text-subtle:#71717a;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-bg:#2563eb14;--color-tag-bg:#f4f4f5;--color-tag-text:#3f3f46;--color-shadow:#0000000f;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:1.875rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--lh-tight:1.2;--lh-snug:1.4;--lh-normal:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--container-width:880px;--nav-height:64px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){[data-v-374b1157]:root{--lightningcss-light: ;--lightningcss-dark:initial}}.timeline[data-v-374b1157]{gap:var(--space-5);flex-direction:column;display:flex}.education-item[data-v-374b1157]{gap:var(--space-5);grid-template-columns:140px 1fr;align-items:start;display:grid}@media (width<=768px){.education-item[data-v-374b1157]{gap:var(--space-1);grid-template-columns:1fr}}.education-item .period[data-v-374b1157]{font-size:var(--fs-sm);color:var(--color-text-subtle);font-variant-numeric:tabular-nums;padding-top:2px}.education-item h3[data-v-374b1157]{font-size:var(--fs-base);margin-bottom:var(--space-1)}.education-item .institution[data-v-374b1157]{color:var(--color-text-muted);font-size:var(--fs-sm)}.education-item .details[data-v-374b1157]{color:var(--color-text-subtle);font-size:var(--fs-sm);margin-top:var(--space-1)}.empty[data-v-0d822521]{padding:var(--space-5) var(--space-6);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-muted);color:var(--color-text-subtle);font-size:var(--fs-sm)}.experience-list[data-v-0d822521]{gap:var(--space-6);flex-direction:column;display:flex}.experience-item header[data-v-0d822521]{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-1);flex-wrap:wrap;display:flex}.experience-item .period[data-v-0d822521]{font-size:var(--fs-sm);color:var(--color-text-subtle);white-space:nowrap}.experience-item .period .duration[data-v-0d822521]{color:var(--color-text-subtle)}.experience-item .company[data-v-0d822521]{color:var(--color-text-muted);margin-bottom:var(--space-2);font-size:var(--fs-sm)}.experience-item .highlights[data-v-0d822521]{margin-top:var(--space-2);padding-left:var(--space-5);list-style:outside}.experience-item .highlights li[data-v-0d822521]{color:var(--color-text-muted);font-size:var(--fs-sm);margin-bottom:var(--space-1)}[data-v-2512d419]:root{--color-bg:#fff;--color-bg-elevated:#fafafa;--color-bg-muted:#f4f4f5;--color-border:#e4e4e7;--color-border-strong:#d4d4d8;--color-text:#18181b;--color-text-muted:#52525b;--color-text-subtle:#71717a;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-bg:#2563eb14;--color-tag-bg:#f4f4f5;--color-tag-text:#3f3f46;--color-shadow:#0000000f;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:1.875rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--lh-tight:1.2;--lh-snug:1.4;--lh-normal:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--container-width:880px;--nav-height:64px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){[data-v-2512d419]:root{--lightningcss-light: ;--lightningcss-dark:initial}}.languages-list[data-v-2512d419]{gap:var(--space-3);flex-wrap:wrap;display:flex}.language-item[data-v-2512d419]{align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);display:inline-flex}.language-item .lang-name[data-v-2512d419]{color:var(--color-text);font-weight:600}.language-item .lang-level[data-v-2512d419]{font-size:var(--fs-sm);color:var(--color-text-subtle)}.summary[data-v-e45c2943]{font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--color-text-muted);max-width:70ch}[data-v-eb673190]:root{--color-bg:#fff;--color-bg-elevated:#fafafa;--color-bg-muted:#f4f4f5;--color-border:#e4e4e7;--color-border-strong:#d4d4d8;--color-text:#18181b;--color-text-muted:#52525b;--color-text-subtle:#71717a;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-bg:#2563eb14;--color-tag-bg:#f4f4f5;--color-tag-text:#3f3f46;--color-shadow:#0000000f;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:1.875rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--lh-tight:1.2;--lh-snug:1.4;--lh-normal:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--container-width:880px;--nav-height:64px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){[data-v-eb673190]:root{--lightningcss-light: ;--lightningcss-dark:initial}}.projects-grid[data-v-eb673190]{gap:var(--space-6);flex-direction:column;display:flex}.project-card[data-v-eb673190]{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-elevated);transition:border-color var(--transition-fast), transform var(--transition-fast)}.project-card[data-v-eb673190]:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.project-card header[data-v-eb673190]{margin-bottom:var(--space-2)}.project-card h3[data-v-eb673190]{font-size:var(--fs-md);color:var(--color-text)}.project-card h3 a[data-v-eb673190]{color:inherit}.project-card h3 a[data-v-eb673190]:hover{color:var(--color-accent)}.project-card p[data-v-eb673190]{margin-bottom:var(--space-4)}.tech-list[data-v-eb673190]{gap:var(--space-2);flex-wrap:wrap;display:flex}.tech-list li[data-v-eb673190]{padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-muted);color:var(--color-text-muted);font-size:var(--fs-xs);font-family:var(--font-mono)}@media print{.projects-grid[data-v-eb673190]{gap:6pt}.project-card[data-v-eb673190]{margin:0;padding:0;background:0 0!important;border:none!important}.project-card[data-v-eb673190]:hover{transform:none}.project-card header[data-v-eb673190]{margin-bottom:1pt}.project-card h3[data-v-eb673190]{font-size:10pt!important}.project-card p[data-v-eb673190]{margin-bottom:2pt}.tech-list[data-v-eb673190]{color:var(--color-text-subtle);gap:0;font-size:8.5pt;line-height:1.35;display:block}.tech-list li[data-v-eb673190]{font-family:inherit;font-size:inherit;border-radius:0;padding:0;display:inline;background:0 0!important;border:none!important}.tech-list li[data-v-eb673190]:not(:last-child):after{content:" · "}}[data-v-33db39c0]:root{--color-bg:#fff;--color-bg-elevated:#fafafa;--color-bg-muted:#f4f4f5;--color-border:#e4e4e7;--color-border-strong:#d4d4d8;--color-text:#18181b;--color-text-muted:#52525b;--color-text-subtle:#71717a;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-bg:#2563eb14;--color-tag-bg:#f4f4f5;--color-tag-text:#3f3f46;--color-shadow:#0000000f;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:1.875rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--lh-tight:1.2;--lh-snug:1.4;--lh-normal:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--container-width:880px;--nav-height:64px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){[data-v-33db39c0]:root{--lightningcss-light: ;--lightningcss-dark:initial}}.skills-grid[data-v-33db39c0]{gap:var(--space-6) var(--space-8);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=768px){.skills-grid[data-v-33db39c0]{gap:var(--space-5);grid-template-columns:1fr}}.skill-category h3[data-v-33db39c0]{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-subtle);margin-bottom:var(--space-3);font-weight:600}.skill-list[data-v-33db39c0]{gap:var(--space-2);flex-wrap:wrap;display:flex}.skill-tag[data-v-33db39c0]{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);background:var(--color-tag-bg);color:var(--color-tag-text);font-size:var(--fs-sm);border:1px solid #0000;display:inline-flex}.skill-tag .skill-name[data-v-33db39c0]{font-weight:500}.skill-tag .skill-level[data-v-33db39c0]{font-size:var(--fs-xs);color:var(--color-text-subtle)}.skill-tag.level-advanced[data-v-33db39c0]{border-color:var(--color-accent-bg)}.skill-tag.level-advanced .skill-level[data-v-33db39c0]{color:var(--color-accent)}@media print{.skills-grid[data-v-33db39c0]{grid-template-columns:repeat(2,1fr);gap:4pt 16pt}.skill-category h3[data-v-33db39c0]{margin-bottom:2pt;font-weight:400}.skill-list[data-v-33db39c0]{gap:0;font-size:9pt;line-height:1.35;display:block}.skill-tag[data-v-33db39c0]{font-size:inherit;border-radius:0;margin:0;padding:0;display:inline;background:0 0!important;border:none!important}.skill-tag[data-v-33db39c0]:not(:last-child):after{content:" · ";color:var(--color-text-subtle)}.skill-tag.level-advanced .skill-name[data-v-33db39c0]{font-weight:600}.skill-level[data-v-33db39c0]{display:none!important}}.cv-footer[data-v-3b953667]{padding-block:var(--space-8);border-top:1px solid var(--color-border);text-align:center;color:var(--color-text-subtle);font-size:var(--fs-sm)}
