*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #fbf7f0;--color-surface: #ffffff;--color-accent: #1a56db;--color-accent-light: #e8f0fe;--color-text: #1c1c1e;--color-muted: #6b7280;--color-border: #e5e7eb;--color-tag-bg: #f3f4f6;--color-tag-text: #374151;--radius: 0px;--font: "Google Sans Flex", system-ui, sans-serif}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);font-size:15px;line-height:1.7;letter-spacing:-.01em;font-variation-settings:"opsz" 14,"wght" 400;-webkit-font-smoothing:antialiased}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.page{max-width:980px;margin:3rem auto;padding:0 1.5rem;position:relative}.lang-switch{position:absolute;top:1rem;right:1.5rem;font-size:.72rem;font-weight:600;letter-spacing:.08em;color:var(--color-muted);text-decoration:none;border:1px solid var(--color-border);padding:.2rem .55rem;border-radius:4px}.lang-switch:hover{color:var(--color-accent);border-color:var(--color-accent);text-decoration:none}.header{background:var(--color-surface);border-radius:var(--radius);padding:2.75rem 3rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;margin-bottom:2rem;border-left:4px solid var(--color-accent);box-shadow:0 1px 3px #0000000f}.name{font-size:2.25rem;font-weight:700;font-variation-settings:"opsz" 36,"wght" 700;letter-spacing:-.03em;line-height:1.1;color:var(--color-text)}.title{font-size:1rem;color:var(--color-accent);font-weight:500;font-variation-settings:"opsz" 14,"wght" 500;letter-spacing:.01em;margin-top:.3rem}.header-contact{display:flex;flex-direction:column;gap:.5rem;text-align:right}.contact-item{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;color:var(--color-muted);font-size:.85rem}.contact-item svg{width:14px;height:14px;flex-shrink:0;color:var(--color-accent)}.contact-item a{color:var(--color-muted)}.contact-item a:hover{color:var(--color-accent)}.main{display:grid;grid-template-columns:1fr 290px;gap:2rem;align-items:start}.section{background:var(--color-surface);border-radius:var(--radius);padding:2.25rem 2.5rem;margin-bottom:2rem;box-shadow:0 1px 3px #0000000f}.section:last-child{margin-bottom:0}.section-title{font-size:.68rem;font-weight:600;font-variation-settings:"opsz" 10,"wght" 600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin-bottom:1.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.timeline{display:flex;flex-direction:column;gap:2.5rem}.timeline-item{display:grid;grid-template-columns:100px 1fr;gap:1.25rem}.timeline-meta{padding-top:2px}.period{font-size:.75rem;color:var(--color-muted);font-weight:500;white-space:nowrap}.job-header{margin-bottom:1rem}.job-title{font-size:.95rem;font-weight:600;font-variation-settings:"opsz" 14,"wght" 600;letter-spacing:-.01em;color:var(--color-text)}.job-company{font-size:.85rem;font-variation-settings:"opsz" 12,"wght" 400;color:var(--color-muted);margin-top:.15rem;display:block}.job-location{color:var(--color-muted)}.projects{list-style:none;display:flex;flex-direction:column;gap:1.1rem}.project{padding-left:1rem;border-left:2px solid var(--color-border);margin-bottom:1rem}.project-desc{font-size:.85rem;font-variation-settings:"opsz" 12,"wght" 380;line-height:1.65;color:var(--color-text);display:block;margin-bottom:.5rem}.stack{display:flex;flex-wrap:wrap;gap:.35rem}.tag{display:inline-block;padding:.15rem .55rem;background:var(--color-tag-bg);color:var(--color-tag-text);border-radius:4px;font-size:.72rem;font-weight:500;border:1px solid var(--color-border)}.tag--primary{background:var(--color-accent-light);color:var(--color-accent);border-color:#c3d8fd}.sidebar .section{padding:2rem}.skills-group{margin-bottom:1.5rem}.skills-group:last-child{margin-bottom:0}.skills-label{font-size:.75rem;font-weight:600;color:var(--color-muted);margin-bottom:.65rem}.skills-tags{display:flex;flex-wrap:wrap;gap:.45rem}.edu-list{display:flex;flex-direction:column;gap:1.5rem}.edu-item{display:grid;grid-template-columns:58px 1fr;gap:.85rem}.edu-degree{font-size:.85rem;font-weight:600;color:var(--color-text)}.edu-spec,.edu-institution{font-size:.78rem;color:var(--color-muted);margin-top:.1rem}.portfolio-list{list-style:none;display:flex;flex-direction:column;gap:1.25rem}.portfolio-item{display:flex;flex-direction:column;gap:.3rem}.portfolio-name{font-size:.82rem;font-weight:700;color:var(--color-text)}.portfolio-link{font-size:.75rem;color:var(--color-accent);word-break:break-all;display:block}.portfolio-urls{display:flex;flex-direction:column;gap:.15rem}.badge-item{display:flex;align-items:flex-start;gap:1rem}.badge-logo{width:48px;height:48px;flex-shrink:0;border-radius:50%}.badge-content{display:flex;flex-direction:column;gap:.25rem}.badge-title{font-size:.85rem;font-weight:600;font-variation-settings:"opsz" 14,"wght" 600;color:var(--color-text)}.badge-desc{font-size:.78rem;color:var(--color-muted);line-height:1.5}@media print{body{background:#fff;font-size:12px}.page{margin:0;max-width:100%}.header,.section{box-shadow:none;border:1px solid #e5e7eb}}@media(max-width:720px){.header{flex-direction:column;align-items:flex-start}.header-contact{text-align:left;align-items:flex-start}.contact-item{justify-content:flex-start}.main{grid-template-columns:1fr}#experiences{order:2}#mentions{order:3}.sidebar{order:1}.timeline-item{grid-template-columns:1fr;gap:.25rem}}
