@charset "UTF-8";
.theme-toggle {
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(1rem, 3vw, 1.2rem);
  font-weight: normal;
  height: clamp(2.5rem, 6vw, 3rem);
  line-height: 1;
  width: clamp(2.5rem, 6vw, 3rem);
  text-decoration: none;
  transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out, border-color 0.3s ease-in-out;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  position: fixed;
  cursor: pointer;
  z-index: 1050;
  font-family: "Proba Pro W01", "Helvetica Neue", "Helvetica", sans-serif;
  top: clamp(1rem, 4vw, 2rem);
  right: clamp(1rem, 4vw, 2rem);
  background: #000000;
  color: #ffffff;
  border: 2px solid #000000;
}
.theme-toggle:hover, .theme-toggle:active {
  background: #ffffff;
  color: #000000;
  border-color: #000000;
  outline: none;
  transition: none;
}
.theme-toggle:focus {
  outline: none;
}
.dark-theme .theme-toggle {
  background: #ffffff;
  color: #000000;
  border-color: #ffffff;
}
.dark-theme .theme-toggle:hover, .dark-theme .theme-toggle:active {
  background: #000000;
  color: #ffffff;
  border-color: #ffffff;
  outline: none;
  transition: none;
}
.dark-theme .theme-toggle:focus {
  outline: none;
}
.theme-toggle .theme-toggle-icon {
  transition: transform 0.3s ease-in-out;
  display: block;
  line-height: 1;
  color: inherit;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.dark-theme .theme-toggle .theme-toggle-icon {
  transform: rotate(180deg);
}

.logo {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: calc( * );
  font-weight: 100;
  letter-spacing: calc( * -0.05);
  line-height: 1;
  text-decoration: none;
  transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out, border-color 0.3s ease-in-out;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  position: relative;
  font-family: "Proba Pro W01", "Helvetica Neue", "Helvetica", sans-serif;
  background: #000000;
  color: #ffffff;
  border: 1px solid #000000;
}
@media (min-width: 768px) {
  .logo {
    border-width: 2px;
  }
}
.logo:hover, .logo:active, .logo:focus {
  background: #ffffff;
  color: #000000;
  border-color: #000000;
  outline: none;
}
.logo:hover a,
.logo:hover a:hover,
.logo:hover a:active,
.logo:hover a:focus,
.logo:hover a:visited,
.logo:hover em,
.logo:hover span,
.logo:hover strong,
.logo:hover i,
.logo:hover b, .logo:active a,
.logo:active a:hover,
.logo:active a:active,
.logo:active a:focus,
.logo:active a:visited,
.logo:active em,
.logo:active span,
.logo:active strong,
.logo:active i,
.logo:active b, .logo:focus a,
.logo:focus a:hover,
.logo:focus a:active,
.logo:focus a:focus,
.logo:focus a:visited,
.logo:focus em,
.logo:focus span,
.logo:focus strong,
.logo:focus i,
.logo:focus b {
  color: #000000;
  background: transparent;
}
.dark-theme .logo {
  background: #ffffff;
  color: #000000;
  border-color: #ffffff;
}
.dark-theme .logo:hover, .dark-theme .logo:active, .dark-theme .logo:focus {
  background: #000000;
  color: #ffffff;
  border-color: #ffffff;
  outline: none;
}
.dark-theme .logo:hover a,
.dark-theme .logo:hover a:hover,
.dark-theme .logo:hover a:active,
.dark-theme .logo:hover a:focus,
.dark-theme .logo:hover a:visited,
.dark-theme .logo:hover em,
.dark-theme .logo:hover span,
.dark-theme .logo:hover strong,
.dark-theme .logo:hover i,
.dark-theme .logo:hover b, .dark-theme .logo:active a,
.dark-theme .logo:active a:hover,
.dark-theme .logo:active a:active,
.dark-theme .logo:active a:focus,
.dark-theme .logo:active a:visited,
.dark-theme .logo:active em,
.dark-theme .logo:active span,
.dark-theme .logo:active strong,
.dark-theme .logo:active i,
.dark-theme .logo:active b, .dark-theme .logo:focus a,
.dark-theme .logo:focus a:hover,
.dark-theme .logo:focus a:active,
.dark-theme .logo:focus a:focus,
.dark-theme .logo:focus a:visited,
.dark-theme .logo:focus em,
.dark-theme .logo:focus span,
.dark-theme .logo:focus strong,
.dark-theme .logo:focus i,
.dark-theme .logo:focus b {
  color: #ffffff;
  background: transparent;
}
.dark-theme .logo a,
.dark-theme .logo a:visited,
.dark-theme .logo a:hover,
.dark-theme .logo a:active,
.dark-theme .logo a:focus,
.dark-theme .logo em,
.dark-theme .logo span,
.dark-theme .logo strong,
.dark-theme .logo i,
.dark-theme .logo b {
  color: #000000;
  background: transparent;
}
.logo a,
.logo a:visited,
.logo a:hover,
.logo a:active,
.logo a:focus {
  color: inherit;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  outline: none;
  background: transparent;
  border: none;
  z-index: 1;
}
.logo em,
.logo span,
.logo strong,
.logo i,
.logo b {
  display: block;
  line-height: 1;
  font-weight: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  text-align: center;
  width: 100%;
  transform: translate(-0.08em, -0.05em);
  font-family: inherit;
  position: relative;
  z-index: 2;
  background: transparent;
  border: none;
  outline: none;
}

.logo-main {
  border-radius: clamp(4rem, 12vw, 8rem);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: calc(clamp(4rem, 12vw, 8rem) * 0.6);
  font-weight: 100;
  height: clamp(4rem, 12vw, 8rem);
  letter-spacing: calc(clamp(4rem, 12vw, 8rem) * -0.05);
  line-height: 1;
  width: clamp(4rem, 12vw, 8rem);
  text-decoration: none;
  transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out, border-color 0.3s ease-in-out;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  position: relative;
  font-family: "Proba Pro W01", "Helvetica Neue", "Helvetica", sans-serif;
  background: #000000;
  color: #ffffff;
  border: 1px solid #000000;
}
@media (min-width: 768px) {
  .logo-main {
    border-width: 2px;
  }
}
.logo-main:hover, .logo-main:active, .logo-main:focus {
  background: #ffffff;
  color: #000000;
  border-color: #000000;
  outline: none;
}
.logo-main:hover a,
.logo-main:hover a:hover,
.logo-main:hover a:active,
.logo-main:hover a:focus,
.logo-main:hover a:visited,
.logo-main:hover em,
.logo-main:hover span,
.logo-main:hover strong,
.logo-main:hover i,
.logo-main:hover b, .logo-main:active a,
.logo-main:active a:hover,
.logo-main:active a:active,
.logo-main:active a:focus,
.logo-main:active a:visited,
.logo-main:active em,
.logo-main:active span,
.logo-main:active strong,
.logo-main:active i,
.logo-main:active b, .logo-main:focus a,
.logo-main:focus a:hover,
.logo-main:focus a:active,
.logo-main:focus a:focus,
.logo-main:focus a:visited,
.logo-main:focus em,
.logo-main:focus span,
.logo-main:focus strong,
.logo-main:focus i,
.logo-main:focus b {
  color: #000000;
  background: transparent;
}
.dark-theme .logo-main {
  background: #ffffff;
  color: #000000;
  border-color: #ffffff;
}
.dark-theme .logo-main:hover, .dark-theme .logo-main:active, .dark-theme .logo-main:focus {
  background: #000000;
  color: #ffffff;
  border-color: #ffffff;
  outline: none;
}
.dark-theme .logo-main:hover a,
.dark-theme .logo-main:hover a:hover,
.dark-theme .logo-main:hover a:active,
.dark-theme .logo-main:hover a:focus,
.dark-theme .logo-main:hover a:visited,
.dark-theme .logo-main:hover em,
.dark-theme .logo-main:hover span,
.dark-theme .logo-main:hover strong,
.dark-theme .logo-main:hover i,
.dark-theme .logo-main:hover b, .dark-theme .logo-main:active a,
.dark-theme .logo-main:active a:hover,
.dark-theme .logo-main:active a:active,
.dark-theme .logo-main:active a:focus,
.dark-theme .logo-main:active a:visited,
.dark-theme .logo-main:active em,
.dark-theme .logo-main:active span,
.dark-theme .logo-main:active strong,
.dark-theme .logo-main:active i,
.dark-theme .logo-main:active b, .dark-theme .logo-main:focus a,
.dark-theme .logo-main:focus a:hover,
.dark-theme .logo-main:focus a:active,
.dark-theme .logo-main:focus a:focus,
.dark-theme .logo-main:focus a:visited,
.dark-theme .logo-main:focus em,
.dark-theme .logo-main:focus span,
.dark-theme .logo-main:focus strong,
.dark-theme .logo-main:focus i,
.dark-theme .logo-main:focus b {
  color: #ffffff;
  background: transparent;
}
.dark-theme .logo-main a,
.dark-theme .logo-main a:visited,
.dark-theme .logo-main a:hover,
.dark-theme .logo-main a:active,
.dark-theme .logo-main a:focus,
.dark-theme .logo-main em,
.dark-theme .logo-main span,
.dark-theme .logo-main strong,
.dark-theme .logo-main i,
.dark-theme .logo-main b {
  color: #000000;
  background: transparent;
}
.logo-main a,
.logo-main a:visited,
.logo-main a:hover,
.logo-main a:active,
.logo-main a:focus {
  color: inherit;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  outline: none;
  background: transparent;
  border: none;
  z-index: 1;
}
.logo-main em,
.logo-main span,
.logo-main strong,
.logo-main i,
.logo-main b {
  display: block;
  line-height: 1;
  font-weight: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  text-align: center;
  width: 100%;
  transform: translate(-0.08em, -0.05em);
  font-family: inherit;
  position: relative;
  z-index: 2;
  background: transparent;
  border: none;
  outline: none;
}

.logo-small {
  border-radius: clamp(2rem, 6vw, 3rem);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: calc(clamp(2rem, 6vw, 3rem) * 0.6);
  font-weight: 100;
  height: clamp(2rem, 6vw, 3rem);
  letter-spacing: calc(clamp(2rem, 6vw, 3rem) * -0.05);
  line-height: 1;
  width: clamp(2rem, 6vw, 3rem);
  text-decoration: none;
  transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out, border-color 0.3s ease-in-out;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  position: relative;
  font-family: "Proba Pro W01", "Helvetica Neue", "Helvetica", sans-serif;
  background: #000000;
  color: #ffffff;
  border: 1px solid #000000;
}
.logo-small:hover, .logo-small:active, .logo-small:focus {
  background: #ffffff;
  color: #000000;
  border-color: #000000;
  outline: none;
}
.logo-small:hover a,
.logo-small:hover a:hover,
.logo-small:hover a:active,
.logo-small:hover a:focus,
.logo-small:hover a:visited,
.logo-small:hover em,
.logo-small:hover span,
.logo-small:hover strong,
.logo-small:hover i,
.logo-small:hover b, .logo-small:active a,
.logo-small:active a:hover,
.logo-small:active a:active,
.logo-small:active a:focus,
.logo-small:active a:visited,
.logo-small:active em,
.logo-small:active span,
.logo-small:active strong,
.logo-small:active i,
.logo-small:active b, .logo-small:focus a,
.logo-small:focus a:hover,
.logo-small:focus a:active,
.logo-small:focus a:focus,
.logo-small:focus a:visited,
.logo-small:focus em,
.logo-small:focus span,
.logo-small:focus strong,
.logo-small:focus i,
.logo-small:focus b {
  color: #000000;
  background: transparent;
}
.dark-theme .logo-small {
  background: #ffffff;
  color: #000000;
  border-color: #ffffff;
}
.dark-theme .logo-small:hover, .dark-theme .logo-small:active, .dark-theme .logo-small:focus {
  background: #000000;
  color: #ffffff;
  border-color: #ffffff;
  outline: none;
}
.dark-theme .logo-small:hover a,
.dark-theme .logo-small:hover a:hover,
.dark-theme .logo-small:hover a:active,
.dark-theme .logo-small:hover a:focus,
.dark-theme .logo-small:hover a:visited,
.dark-theme .logo-small:hover em,
.dark-theme .logo-small:hover span,
.dark-theme .logo-small:hover strong,
.dark-theme .logo-small:hover i,
.dark-theme .logo-small:hover b, .dark-theme .logo-small:active a,
.dark-theme .logo-small:active a:hover,
.dark-theme .logo-small:active a:active,
.dark-theme .logo-small:active a:focus,
.dark-theme .logo-small:active a:visited,
.dark-theme .logo-small:active em,
.dark-theme .logo-small:active span,
.dark-theme .logo-small:active strong,
.dark-theme .logo-small:active i,
.dark-theme .logo-small:active b, .dark-theme .logo-small:focus a,
.dark-theme .logo-small:focus a:hover,
.dark-theme .logo-small:focus a:active,
.dark-theme .logo-small:focus a:focus,
.dark-theme .logo-small:focus a:visited,
.dark-theme .logo-small:focus em,
.dark-theme .logo-small:focus span,
.dark-theme .logo-small:focus strong,
.dark-theme .logo-small:focus i,
.dark-theme .logo-small:focus b {
  color: #ffffff;
  background: transparent;
}
.dark-theme .logo-small a,
.dark-theme .logo-small a:visited,
.dark-theme .logo-small a:hover,
.dark-theme .logo-small a:active,
.dark-theme .logo-small a:focus,
.dark-theme .logo-small em,
.dark-theme .logo-small span,
.dark-theme .logo-small strong,
.dark-theme .logo-small i,
.dark-theme .logo-small b {
  color: #000000;
  background: transparent;
}
.logo-small a,
.logo-small a:visited,
.logo-small a:hover,
.logo-small a:active,
.logo-small a:focus {
  color: inherit;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  outline: none;
  background: transparent;
  border: none;
  z-index: 1;
}
.logo-small em,
.logo-small span,
.logo-small strong,
.logo-small i,
.logo-small b {
  display: block;
  line-height: 1;
  font-weight: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  text-align: center;
  width: 100%;
  transform: translate(-0.08em, -0.05em);
  font-family: inherit;
  position: relative;
  z-index: 2;
  background: transparent;
  border: none;
  outline: none;
}

/* Global box-sizing fix to prevent width calculation issues */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Prevent text overflow by allowing proper word breaking */
p,
li,
span,
div,
td {
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
}

/* Specifically target experience content for aggressive word breaking */
.experience p,
.experience li,
#experiences li,
#experiences p {
  word-wrap: break-word;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
  max-width: 100%;
}

.no-decoration {
  text-decoration: none;
}

.theme-toggle-cv {
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(0.8rem, 2vw, 1rem);
  font-weight: normal;
  height: clamp(2rem, 4vw, 2.5rem);
  line-height: 1;
  width: clamp(2rem, 4vw, 2.5rem);
  text-decoration: none;
  transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out, border-color 0.3s ease-in-out;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  position: static;
  cursor: pointer;
  z-index: 1050;
  font-family: "Proba Pro W01", "Helvetica Neue", "Helvetica", sans-serif;
  background: #000000;
  color: #ffffff;
  border: 2px solid #000000;
  margin-left: 1rem;
  display: inline-flex;
  vertical-align: middle;
}
.theme-toggle-cv:hover, .theme-toggle-cv:active {
  background: #ffffff;
  color: #000000;
  border-color: #000000;
  outline: none;
  transition: none;
}
.theme-toggle-cv:focus {
  outline: none;
}
.dark-theme .theme-toggle-cv {
  background: #ffffff;
  color: #000000;
  border-color: #ffffff;
}
.dark-theme .theme-toggle-cv:hover, .dark-theme .theme-toggle-cv:active {
  background: #000000;
  color: #ffffff;
  border-color: #ffffff;
  outline: none;
  transition: none;
}
.dark-theme .theme-toggle-cv:focus {
  outline: none;
}
@media print {
  .theme-toggle-cv {
    display: none;
  }
}
.theme-toggle-cv .theme-toggle-icon {
  transition: transform 0.3s ease-in-out;
  display: block;
  line-height: 1;
  color: inherit;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.dark-theme .theme-toggle-cv .theme-toggle-icon {
  transform: rotate(180deg);
}

body {
  max-width: none;
  margin: 0;
  padding: 0;
  --back-to-top-size: 2.4rem;
  --back-to-top-bottom-offset: 1.5rem;
  padding-bottom: calc(var(--back-to-top-size) + var(--back-to-top-bottom-offset) + 0.75rem);
}
@media (max-width: 960px) {
  body {
    margin: 0;
  }
}
@media print {
  body {
    padding-bottom: 0;
  }
}
body .container {
  padding: 1rem 1.5rem;
}
body .container::after {
  content: "";
  display: block;
  height: calc(var(--back-to-top-size) + var(--back-to-top-bottom-offset) + 0.75rem);
}
@media print {
  body .container::after {
    display: none;
  }
}
body header {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  box-sizing: border-box;
}
body nav#download {
  margin-bottom: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  margin-left: 0;
  z-index: 100;
  background-color: inherit;
  backdrop-filter: blur(10px);
  box-sizing: border-box;
  padding: 1rem 1.5rem;
  transition: background-color 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}
body nav#download.scrolled {
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.1);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.dark-theme body nav#download.scrolled {
  box-shadow: 0 1px 7px rgba(0, 0, 0, 0.38);
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}
@media (max-width: 768px) {
  body nav#download {
    padding: 1rem;
  }
}
body nav#download a:not(.logo),
body nav#download #print-button {
  padding: 0.75rem 1.5rem;
  background: #000;
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
  border: 1px solid #000000;
  transition: all 0.3s ease;
  font-size: 1rem;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
body nav#download a:not(.logo) .button-icon,
body nav#download #print-button .button-icon {
  width: 1.2em;
  height: 1.2em;
  flex-shrink: 0;
}
body nav#download a:not(.logo):hover,
body nav#download #print-button:hover {
  background: #ffffff;
  color: #000000;
  border-color: #000000;
}
.dark-theme body nav#download a:not(.logo),
.dark-theme body nav#download #print-button {
  background: #ffffff;
  color: #000000;
  border-color: #ffffff;
}
.dark-theme body nav#download a:not(.logo):hover,
.dark-theme body nav#download #print-button:hover {
  background: #000000;
  color: #ffffff;
  border-color: #ffffff;
}
body section {
  margin-bottom: 0;
}
body section h2 {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
body #experiences section {
  margin-bottom: 2rem;
}
body #experiences section h2 {
  margin-bottom: 1rem;
  padding-bottom: 0;
  border-bottom: none;
}
body .experience {
  padding: 1.5rem;
  margin-bottom: 2rem;
  transition: none;
}
body .experience:hover {
  transform: none;
  background-color: transparent;
  background: transparent;
  opacity: 1;
}
body .experience h3 {
  font-weight: 600;
  margin-bottom: 0.5rem;
}
body .experience h4 {
  opacity: 0.8;
  font-weight: 400;
  font-size: 0.95em;
  margin-bottom: 0.75rem;
}
body .experience ul {
  margin-top: 0.75rem;
}
body .experience ul li {
  margin-bottom: 0.5rem;
  line-height: 1.6;
}
body .intro {
  padding: 0;
  margin-bottom: 1em;
}
body .intro ul.contact li:not(:first-child)::before {
  content: " •  ";
}
@media (max-width: 768px) {
  body .intro .left-column,
  body .intro .right-column {
    float: none;
    width: 100%;
    text-align: left;
    margin-bottom: 1rem;
  }
}
@media (max-width: 768px) {
  body .intro .right-column {
    margin-bottom: 0;
  }
}
body footer {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: none;
  text-align: center;
  color: #666;
  transition: color 0.3s ease-in-out;
}
.dark-theme body footer {
  color: #999;
}
body #back-to-top {
  position: fixed;
  left: 50%;
  bottom: var(--back-to-top-bottom-offset);
  transform: translateX(-50%) translateY(0.5rem);
  width: var(--back-to-top-size);
  height: var(--back-to-top-size);
  border: 1px solid rgba(0, 0, 0, 0.35);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.8);
  color: rgba(0, 0, 0, 0.75);
  font-size: 1.1rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease, background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  z-index: 120;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
}
body #back-to-top.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
body #back-to-top:hover {
  background: #000;
  color: #fff;
  border-color: #000;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}
.dark-theme body #back-to-top {
  background: rgba(0, 0, 0, 0.72);
  color: rgba(255, 255, 255, 0.9);
  border-color: rgba(255, 255, 255, 0.45);
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.35);
}
.dark-theme body #back-to-top:hover {
  background: #fff;
  color: #000;
  border-color: #fff;
}
@media print {
  body #back-to-top {
    display: none;
  }
}
