:root {
  color-scheme: light;
}

body {
  overflow-x: hidden;
}

[hidden] {
  display: none !important;
}

.no-js [data-extra-publication] {
  display: list-item !important;
}

.no-js [data-show-publications] {
  display: none !important;
}

.no-js [data-extra-role] {
  display: list-item !important;
}

.no-js [data-show-roles] {
  display: none !important;
}

.icon {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.menu-icon {
  width: 1.5rem;
  height: 1.5rem;
}

.site-header.menu-open {
  border-radius: 1.5rem;
}

.language-switcher {
  position: fixed;
  top: 5rem;
  right: 1rem;
  z-index: 60;
  display: flex;
  align-items: center;
  gap: 0.15rem;
  padding: 0.3rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 9999px;
  background: #fff;
  box-shadow: rgba(14, 63, 126, 0.06) 0 0 0 1px,
    rgba(42, 51, 70, 0.08) 0 6px 18px -8px;
}

.language-switcher a {
  min-width: 1.8rem;
  padding: 0.25rem 0.2rem;
  color: var(--muted-foreground);
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.12em;
  text-align: center;
  transition: color 180ms ease, opacity 180ms ease;
}

.language-switcher a:hover {
  color: var(--foreground);
}

.language-switcher a[aria-current="page"] {
  color: var(--foreground);
  font-weight: 700;
}

.language-switcher span {
  color: var(--border);
  font-size: 0.75rem;
}

.desktop-nav,
.desktop-actions {
  display: none;
}

.hero-stage,
.hero-side,
.hero-center,
.hero-copy,
.hero-overlay {
  will-change: transform, width, opacity;
}

.hero-side {
  width: 0;
  gap: 0;
  opacity: 0;
}

.hero-side-left {
  transform: translateX(-100%) translateY(0);
}

.hero-side-right {
  transform: translateX(100%) translateY(0);
}

.hero-center {
  width: 100%;
  height: 100%;
  flex: 0 0 auto;
}

.hero-media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.blog-media {
  aspect-ratio: 3 / 2;
}

.lecture-banner-container {
  width: 100%;
  padding: 3rem 1.5rem;
}

#publications li h3 {
  font-size: 1.125rem;
}

#publications li > a > span {
  color: var(--foreground);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
}

.company-logos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: 3.5rem !important;
  overflow: hidden;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--border);
}

.company-logo-item {
  display: flex;
  height: 6rem;
  min-width: 0;
  align-items: center;
  justify-content: center;
  padding: 1.25rem 0.875rem;
  background: var(--background);
}

.company-logo {
  display: block;
  width: 100%;
  max-width: 6.75rem;
  height: 2rem;
  object-fit: contain;
  opacity: 0.62;
  filter: grayscale(1) brightness(0);
}

.publication-enter,
.role-enter {
  animation: publication-enter 420ms ease-out both;
}

@keyframes publication-enter {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 1023px) {
  .no-js [data-menu-button] {
    display: none !important;
  }

  .no-js [data-mobile-menu] {
    display: block !important;
  }

  .site-header.menu-open {
    border-radius: 1.5rem;
  }

  .site-brand {
    max-width: calc(100% - 3rem);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

@media (min-width: 640px) {
  .lecture-banner-container {
    padding: 4rem 2rem;
  }

  .company-logos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .about-copy-column {
    padding-top: 8rem;
  }

  .desktop-nav,
  .desktop-actions {
    display: flex;
  }

  .mobile-menu-button,
  .mobile-navigation {
    display: none !important;
  }

  .company-logos {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .language-switcher {
    top: 1rem;
    right: 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .animate-bounce,
  .publication-enter,
  .role-enter {
    animation: none !important;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
