*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #f7f7f7;--fg: #111111;--fg-muted: #5c5c5c;--fg-faint: #aaaaaa;--border: #e2e2e2;--surface: #efefef;--surface-hover: #e8e8e8;--font-sans: "DM Sans", ui-sans-serif, system-ui, sans-serif;--font-serif: "Crimson Pro", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--sp-24: 96px;--max-content: 640px}[data-theme=dark]{--bg: #0a0a0a;--fg: #ebebeb;--fg-muted: #888888;--fg-faint: #555555;--border: #1e1e1e;--surface: #161616;--surface-hover: #1c1c1c}html{-webkit-text-size-adjust:100%;background-color:var(--bg)}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:16px;line-height:1.6;min-height:100dvh;display:flex;flex-direction:column;align-items:center;-webkit-font-smoothing:antialiased;transition:background-color .25s ease,color .25s ease}a{text-decoration:none;color:inherit}.cv-wrapper{width:100%;max-width:var(--max-content);padding:var(--sp-24) var(--sp-6) var(--sp-20);display:flex;flex-direction:column;gap:var(--sp-24)}.cv-header{display:flex;align-items:flex-start;gap:var(--sp-5)}.cv-avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;flex-shrink:0}.cv-avatar--fallback{width:72px;height:72px;border-radius:50%;background:var(--surface);border:1px solid var(--border);flex-shrink:0}.cv-header-info{flex:1;display:flex;flex-direction:column;gap:2px}.cv-name{font-family:var(--font-serif);font-size:clamp(2rem,5vw,2.8rem);font-weight:400;line-height:1.05;letter-spacing:-.02em}.cv-role{font-size:.9rem;color:var(--fg-muted);margin-top:var(--sp-3)}.cv-location{font-size:.75rem;color:var(--fg-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;margin-top:var(--sp-3)}.cv-lang-switch{font-size:.7rem;color:var(--fg-faint);text-decoration:none;flex-shrink:0;align-self:flex-start;margin-top:6px;letter-spacing:.05em;transition:opacity .2s ease}.cv-lang-switch:hover{opacity:.5}.cv-bio{font-size:.9rem;color:var(--fg-muted);line-height:1.7;max-width:460px}.cv-contact{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.cv-contact-links{display:flex;flex-wrap:wrap;gap:0 var(--sp-6);row-gap:var(--sp-3)}.cv-contact-link{font-size:.82rem;color:var(--fg-muted);transition:opacity .2s ease}.cv-contact-link:hover{opacity:.5}.cv-download-btn{display:inline-flex;align-items:center;min-height:48px;padding:0 var(--sp-5);font-family:var(--font-serif);font-size:1.05rem;font-weight:400;color:var(--bg);background:var(--fg);letter-spacing:-.01em;transition:opacity .2s ease}.cv-download-btn:hover{opacity:.82}.cv-section{display:flex;flex-direction:column}.cv-section-label{font-family:var(--font-mono);font-size:.65rem;font-weight:400;text-transform:uppercase;letter-spacing:.3em;color:var(--fg-faint);margin-bottom:1.5rem}.cv-section-content{display:flex;flex-direction:column;margin-top:0}.cv-entry{padding:var(--sp-8) 0}.cv-entry+.cv-entry{border-top:1px solid var(--border)}.cv-entry-header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-2)}.cv-entry-role{font-family:var(--font-serif);font-size:clamp(1rem,2.5vw,1.2rem);font-weight:400;line-height:1.2;letter-spacing:-.01em}.cv-entry-company{font-size:.85rem;color:var(--fg-muted);margin-top:var(--sp-1)}.cv-entry-date{font-size:.65rem;color:var(--fg-faint);white-space:nowrap;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.cv-entry-description{font-size:.85rem;color:var(--fg-muted);line-height:1.7;max-width:480px;margin-top:var(--sp-4)}.cv-skills-list{display:flex;flex-direction:column;gap:var(--sp-5)}.cv-skills-group-title{font-family:var(--font-mono);font-size:.65rem;font-weight:400;text-transform:uppercase;letter-spacing:.15em;color:var(--fg-faint);margin-bottom:var(--sp-2)}.cv-skills-items{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4)}.cv-skills-tag{font-size:.85rem;color:var(--fg-muted);transition:opacity .2s ease}.cv-skills-tag:hover{opacity:.5}.cv-divider{height:1px;background:var(--border);border:none;margin:0}
