:root{color-scheme:light;--bg:#f5f6f8;--surface:#fff;--text:#1d2733;--text-muted:#5b6776;--border:#e3e7ec;--accent:#0a7f95;--accent-soft:#e2f3f6;--sidebar-bg:#1f2d3a;--sidebar-text:#d7dee6;--sidebar-muted:#8fa0b1;--sidebar-tag:#2b3d4e}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.6}a{color:var(--accent)}ul,ol{margin:0;padding:0;list-style:none}.skip-link{position:absolute;left:-9999px}.skip-link:focus{z-index:10;background:var(--surface);border-radius:10px;padding:8px 12px;top:16px;left:16px}.layout{grid-template-columns:340px minmax(0,1fr);min-height:100vh;display:grid}@media (width<=900px){.layout{grid-template-columns:minmax(0,1fr)}}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text)}.sidebar__inner{max-height:100vh;padding:40px 32px;position:sticky;top:0;overflow-y:auto}@media (width<=900px){.sidebar__inner{max-height:none;padding:32px 16px;position:static}}.sidebar a{color:var(--sidebar-text);text-decoration:none}.sidebar a:hover{color:#fff;text-decoration:underline}.profile__name{color:#fff;margin:0;font-size:26px;line-height:1.2}.profile__role{margin:6px 0 0;font-size:17px}.profile__stack{color:var(--sidebar-muted);margin:4px 0 0;font-size:14px}.nav{margin-top:28px}.nav ul{flex-wrap:wrap;gap:8px;display:flex}.nav a{border:1px solid var(--sidebar-tag);border-radius:999px;padding:6px 12px;font-size:14px;display:block}.nav a:hover,.nav a.is-active{background:var(--sidebar-tag);text-decoration:none}.side-block{margin-top:32px}.side-block__title{color:var(--sidebar-muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font-size:12px;font-weight:600}.side-block__subtitle{margin:16px 0 8px;font-size:13px;font-weight:600}.contact{gap:10px;font-size:14px;display:grid}.contact li{align-items:center;gap:10px;min-width:0;display:flex}.contact a,.contact span{overflow-wrap:anywhere}.icon{fill:currentColor;opacity:.8;flex:none;width:18px;height:18px}.tags{flex-wrap:wrap;gap:6px;display:flex}.tags li{background:var(--sidebar-tag);border-radius:999px;padding:3px 10px;font-size:13px}.langs{gap:8px;font-size:14px;display:grid}.langs li{justify-content:space-between;gap:12px;display:flex}.langs__level{color:var(--sidebar-muted)}.main{width:100%;max-width:876px;padding:48px}@media (width<=900px){.main{padding:32px 16px}}.section{margin-bottom:56px}.section__title{margin:0 0 24px;font-size:24px;line-height:1.2}.section__title:after{content:"";background:var(--accent);border-radius:2px;width:40px;height:3px;margin-top:10px;display:block}.section p{margin:0 0 16px}.lead{font-size:19px;line-height:1.55}.highlights{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:28px 0;display:grid}.highlights li{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:16px}.highlights__value{color:var(--accent);font-size:26px;font-weight:700;line-height:1.2;display:block}.highlights__label{color:var(--text-muted);font-size:14px}@media (width<=520px){.highlights{grid-template-columns:minmax(0,1fr)}}.actions{flex-wrap:wrap;gap:12px;display:flex}.button{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:999px;padding:10px 20px;font-size:15px;font-weight:600;text-decoration:none;display:inline-block}.button:hover{filter:brightness(1.1)}.button--ghost{color:var(--accent);background:0 0}.timeline{padding-left:28px;position:relative}.timeline:before{content:"";background:var(--border);width:2px;position:absolute;top:8px;bottom:8px;left:6px}.job{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin-bottom:20px;padding:20px 24px;position:relative}.job:before{content:"";border:3px solid var(--bg);background:var(--text-muted);border-radius:50%;width:14px;height:14px;position:absolute;top:26px;left:-28px}.job--current:before{background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.job__header{margin-bottom:10px}.job__company{margin:0;font-size:19px;line-height:1.3}.job__role{font-weight:500;margin:2px 0 0!important}.job__meta{color:var(--text-muted);font-size:14px;margin:2px 0 0!important}.job p{margin-bottom:8px}.job__tasks{margin:0 0 12px;padding-left:18px;list-style:outside}.job__tasks li{margin-bottom:4px}.job__tasks li::marker{color:var(--accent)}.job__stack{flex-wrap:wrap;gap:6px;display:flex}.job__stack li{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:500}@media (width<=520px){.job{padding:16px}}.education{gap:16px;display:grid}.degree{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;gap:16px;padding:20px 24px;display:flex}.degree__logo{object-fit:contain;background:#fff;border-radius:8px;flex:none;width:112px;height:56px;padding:6px}.degree__title{margin:0;font-size:17px;line-height:1.35}.degree__school,.degree__meta{margin:2px 0 0!important}.degree__meta{color:var(--text-muted);font-size:14px}@media (width<=520px){.degree{flex-direction:column;align-items:flex-start;padding:16px}}.footer{border-top:1px solid var(--border);color:var(--text-muted);padding-top:24px;font-size:14px}.footer p{margin:0}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{box-shadow:0 0 0 4px var(--accent-soft)}50%{box-shadow:0 0 0 9px var(--accent-soft)}}@media (prefers-reduced-motion:no-preference){.sidebar__inner>*,#perfil>*{animation:.7s cubic-bezier(.22,1,.36,1) both fade-up}.sidebar__inner>:first-child{animation-delay:70ms}#perfil>:first-child{animation-delay:.23s}.sidebar__inner>:nth-child(2){animation-delay:.14s}#perfil>:nth-child(2){animation-delay:.31s}.sidebar__inner>:nth-child(3){animation-delay:.21s}#perfil>:nth-child(3){animation-delay:.39s}.sidebar__inner>:nth-child(4){animation-delay:.28s}#perfil>:nth-child(4){animation-delay:.47s}.sidebar__inner>:nth-child(5){animation-delay:.35s}#perfil>:nth-child(5){animation-delay:.55s}.sidebar__inner>:nth-child(6){animation-delay:.42s}#perfil>:nth-child(6){animation-delay:.63s}.js .reveal{opacity:0;transition:opacity .7s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s), transform .7s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s), box-shadow .25s ease, border-color .25s ease;transform:translateY(24px)}.js .reveal.is-visible{opacity:1;transform:none}.js .job.reveal:before{transition:transform .5s cubic-bezier(.22,1,.36,1) .25s;transform:scale(0)}.js .job.reveal.is-visible:before{transform:scale(1)}.job--current:before{animation:2.4s ease-in-out infinite pulse}.job.is-visible:hover,.degree.is-visible:hover,.highlights li.is-visible:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));transform:translateY(-3px);box-shadow:0 10px 28px -12px #102a4340}.button{transition:transform .2s,box-shadow .2s,filter .2s}.button:hover{box-shadow:0 8px 20px -10px var(--accent);transform:translateY(-2px)}.tags li,.job__stack li{transition:transform .2s,background-color .2s}.tags li:hover,.job__stack li:hover{transform:translateY(-2px)}.nav a{transition:background-color .25s}}.timeline:after{content:"";background:var(--accent);width:2px;transform:scaleY(var(--progress,0));transform-origin:top;position:absolute;top:8px;bottom:8px;left:6px}@media (prefers-reduced-motion:reduce){.timeline:after{display:none}}@media print{@page{margin:12mm}:root{--bg:#fff;--surface:#fff;--text:#1d2733;--text-muted:#5b6776;--border:#d5dbe1;--accent:#0a7f95;--accent-soft:#e2f3f6}body{print-color-adjust:exact;font-size:11pt}.layout{display:block}.sidebar{color:var(--text);background:0 0}.sidebar__inner{max-height:none;padding:0 0 12px;position:static}.sidebar a,.profile__name{color:var(--text)}.nav,.actions,.skip-link,.footer{display:none}.side-block{margin-top:14px}.tags li{background:var(--accent-soft);color:var(--text)}.main{max-width:none;padding:0}.section{margin-bottom:20px}.timeline{padding-left:0}.timeline:before,.timeline:after,.job:before{display:none}*,:before,:after{transition:none!important;animation:none!important}.reveal{opacity:1!important;transform:none!important}.job,.degree{break-inside:avoid;margin-bottom:10px;padding:10px 14px}}