:root{--color-primary: #1a3a5c;--color-accent: #2e6da4;--color-accent-light: #d6e8f7;--color-text: #222222;--color-text-muted: #5a5a5a;--color-border: #d0d8e4;--color-bg: #f4f7fb;--color-sidebar-bg: #1a3a5c;--color-sidebar-text: #e8eef6;--color-sidebar-muted:#a8bdd4;--color-white: #ffffff;--color-skill-primary:#2e6da4;--color-selection: #ffeb3b;--font-family: "Helvetica Neue", Helvetica, "Segoe UI", system-ui, -apple-system, sans-serif;--font-size-base: 1rem;--font-size-sm: .85rem;--font-size-xs: .75rem;--font-size-lg: 1.15rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--line-height: 1.6;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--sidebar-width: 420px;--border-radius: 4px;--timeline-dot: 10px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height);color:var(--color-text);background-color:var(--color-bg)}::selection{color:var(--color-selection);background-color:var(--color-primary)}ul,ol{list-style:none}a{color:inherit;text-decoration:none}address{font-style:normal}.cv{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;max-width:1100px;margin:0 auto;box-shadow:0 0 40px #0000001f;position:relative}.lang-switch{position:absolute;top:var(--space-md);right:var(--space-md);z-index:10;background:transparent;border:1.5px solid rgba(255,255,255,.4);color:var(--color-white);font-family:var(--font-family);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.08em;padding:.25rem .6rem;border-radius:var(--border-radius);cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.lang-switch:hover{background-color:#ffffff26;border-color:#fffc}@media (min-width: 651px){.lang-switch{background-color:var(--color-accent);border-color:var(--color-accent)}.lang-switch:hover{background-color:var(--color-primary);border-color:var(--color-primary)}}.cv__sidebar{background-color:var(--color-sidebar-bg);color:var(--color-sidebar-text);padding:var(--space-xl) var(--space-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl) var(--space-md);align-content:start}.cv__sidebar .profile,.cv__sidebar .contact{grid-column:1 / -1}.cv__main{background-color:var(--color-white);padding:var(--space-xl) var(--space-2xl);display:flex;flex-direction:column;gap:var(--space-2xl)}.profile__name{font-size:var(--font-size-lg);font-weight:700;color:var(--color-white);line-height:1.3;margin-bottom:var(--space-xs)}.profile__nationality{font-size:var(--font-size-sm);color:var(--color-sidebar-muted);line-height:1.5}.contact__heading{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-sidebar-muted);margin-bottom:var(--space-sm);border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:var(--space-xs)}.contact__list{display:flex;flex-direction:column;gap:var(--space-sm)}.contact__item{font-size:var(--font-size-sm);line-height:1.5}.contact__label{display:block;font-size:var(--font-size-xs);color:var(--color-sidebar-muted);margin-bottom:var(--space-xs)}.contact__link{color:var(--color-accent-light);word-break:break-all}.contact__link:hover{text-decoration:underline;color:var(--color-white)}.skill-group__heading{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-sidebar-muted);margin-bottom:var(--space-sm);border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:var(--space-xs);transition:opacity .3s ease}.skill-group__heading--dimmed{opacity:.1}.skill-group__heading--visible{opacity:.7}.skill-group__list{display:flex;flex-direction:column;gap:var(--space-xs)}.skill-group__item{font-size:var(--font-size-sm);color:var(--color-sidebar-muted);padding-left:var(--space-md);position:relative;cursor:pointer;transition:opacity .3s ease,background-color .2s ease,color .2s ease,border-radius .2s ease}.skill-group__item:before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background-color:var(--color-sidebar-muted)}.skill-group__item--primary{color:var(--color-white);font-weight:500}.skill-group__item--primary:before{background-color:var(--color-accent)}.skill-group__item:hover{opacity:1;background-color:var(--color-accent);color:var(--color-white);border-radius:3px}.skill-group__item--highlighted{opacity:1;color:var(--color-white);background-color:#2e6da459;border-radius:3px}.skill-group__item--dimmed{opacity:.1}.cv-section__heading{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary);padding-bottom:var(--space-sm);margin-bottom:var(--space-lg);border-bottom:2px solid var(--color-accent-light);position:relative}.cv-section__heading:after{content:"";position:absolute;left:0;bottom:-2px;width:50px;height:2px;background-color:var(--color-accent)}.timeline{display:flex;flex-direction:column;gap:0;border-left:2px solid var(--color-border);margin-left:calc(var(--timeline-dot) / 2 + 7rem);padding-left:var(--space-lg);position:relative}.timeline__item{position:relative;padding-bottom:var(--space-lg);display:grid;grid-template-columns:1fr}.timeline__item:before{content:"";position:absolute;left:calc(-1 * var(--space-lg) - 1px - var(--timeline-dot) / 2);top:.45em;width:var(--timeline-dot);height:var(--timeline-dot);border-radius:50%;background-color:var(--color-accent);border:2px solid var(--color-white);box-shadow:0 0 0 2px var(--color-border);transition:box-shadow .2s ease}@keyframes timeline-dot-pulse{0%{box-shadow:0 0 0 2px var(--color-border),0 0 #2e6da480}70%{box-shadow:0 0 0 2px var(--color-border),0 0 0 8px #2e6da400}to{box-shadow:0 0 0 2px var(--color-border),0 0 #2e6da400}}.timeline__item:has(.timeline__content:hover):before{animation:timeline-dot-pulse 1s ease-out infinite}.timeline__item:last-child{padding-bottom:0}.timeline__period{font-size:var(--font-size-xs);font-weight:600;color:var(--color-accent);letter-spacing:.03em;text-transform:uppercase;position:absolute;left:calc(-1 * var(--space-lg) - 7rem - 2px);width:6.5rem;text-align:right;top:.15em;line-height:1.4}.timeline__content{display:flex;flex-direction:column;gap:var(--space-xs);cursor:pointer;transition:opacity .3s ease,background-color .2s ease,box-shadow .2s ease,border-radius .2s ease}.timeline__title{font-size:var(--font-size-base);font-weight:600;color:var(--color-text)}.timeline__org{font-size:var(--font-size-sm);color:var(--color-text-muted)}.timeline__content--highlighted{opacity:1;background-color:var(--color-accent-light);border-radius:var(--border-radius);box-shadow:0 0 0 5px var(--color-accent-light)}.timeline__content--dimmed{opacity:.1}.references{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-md)}.reference{background-color:var(--color-bg);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--border-radius);padding:var(--space-md)}.reference__title{font-size:var(--font-size-base);font-weight:600;color:var(--color-primary);margin-bottom:var(--space-xs)}.reference__link{color:var(--color-accent)}.reference__link:hover{text-decoration:underline}.reference__desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.5}.cv-footer{margin-top:auto;padding-top:var(--space-lg);border-top:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-md)}.cv-footer__location{font-size:var(--font-size-sm);color:var(--color-text-muted)}.cv-footer__signature{font-size:var(--font-size-sm);font-weight:600;color:var(--color-primary)}@media (max-width: 900px){:root{--sidebar-width: 240px}.cv__sidebar{grid-template-columns:1fr}.cv__main{padding:var(--space-lg) var(--space-xl)}.timeline{margin-left:calc(var(--timeline-dot) / 2 + 6rem)}.timeline__period{left:calc(-1 * var(--space-lg) - 6rem - 2px);width:5.5rem}}@media (max-width: 650px){.cv{grid-template-columns:1fr}.cv__sidebar{padding:var(--space-lg)}.cv__main{padding:var(--space-lg);gap:var(--space-xl)}.timeline{margin-left:var(--space-lg)}.timeline__period{position:static;width:auto;text-align:left;margin-bottom:var(--space-xs)}.references{grid-template-columns:1fr}.cv-footer{flex-direction:column;align-items:flex-start}}
