html { scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
body { overflow-x: hidden; }
body.menu-open { overflow: hidden; }

html.js main,
html.js footer {
  filter: blur(14px);
}
html.js body.is-ready main,
html.js body.is-ready footer {
  filter: blur(0);
  transition: filter 0.22s ease;
}
html.js body.is-leaving main,
html.js body.is-leaving footer {
  filter: blur(14px);
  pointer-events: none;
  transition: filter 0.16s ease;
}

.hero-shade {
  background:
    linear-gradient(105deg, rgba(24, 24, 27, 0.86) 0%, rgba(24, 24, 27, 0.48) 52%, rgba(42, 95, 168, 0.22) 100%),
    linear-gradient(to top, rgba(24, 24, 27, 0.7), transparent 42%);
}

.menu-fold {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.5s cubic-bezier(0.32, 0.72, 0, 1);
}
.menu-fold.is-open { grid-template-rows: 1fr; }
.menu-fold-inner { overflow: hidden; }
.menu-fold:not(.is-open) { pointer-events: none; }
.menu-fold a {
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.menu-fold.is-open a {
  opacity: 1;
  transform: none;
}
.menu-fold.is-open a:nth-child(1) { transition-delay: 0.08s; }
.menu-fold.is-open a:nth-child(2) { transition-delay: 0.14s; }
.menu-fold.is-open a:nth-child(3) { transition-delay: 0.2s; }
.menu-fold.is-open a:nth-child(4) { transition-delay: 0.26s; }
.menu-fold.is-open a:nth-child(5) { transition-delay: 0.32s; }

.burger-lines span {
  display: block;
  height: 1.8px;
  width: 18px;
  margin: 3.5px auto;
  background: currentColor;
  border-radius: 99px;
  transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1), opacity 0.2s ease;
}
.burger.is-open .burger-lines span:nth-child(1) { transform: translateY(5.3px) rotate(45deg); }
.burger.is-open .burger-lines span:nth-child(2) { opacity: 0; }
.burger.is-open .burger-lines span:nth-child(3) { transform: translateY(-5.3px) rotate(-45deg); }

.menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgba(12, 12, 14, 0.55);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}
.menu-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.is-in { opacity: 1; transform: none; }

.cookie-banner {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 70;
  padding: 1rem;
}
.cookie-panel {
  margin: 0 auto;
  max-width: 52rem;
  border-radius: 1.5rem;
  background: #18181b;
  color: #fafafa;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
  padding: 1.25rem 1.35rem 1.35rem;
}
.consent-switch {
  width: 2.75rem;
  height: 1.6rem;
  flex-shrink: 0;
  border-radius: 999px;
  background: #3f3f46;
  transition: background 0.2s ease;
}
.consent-switch::after {
  content: "";
  display: block;
  width: 1.15rem;
  height: 1.15rem;
  margin: 0.22rem;
  border-radius: 999px;
  background: #fff;
  transition: transform 0.2s ease;
}
.consent-switch[aria-checked="true"] {
  background: #78b0f8;
}
.consent-switch[aria-checked="true"]::after {
  transform: translateX(1.1rem);
}
.consent-switch:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.marquee-track {
  display: flex;
  align-items: center;
  width: max-content;
  gap: 1.75rem;
  animation: marquee 22s linear infinite;
}
@keyframes marquee {
  to { transform: translateX(-50%); }
}

.tap {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.absolute.inset-0 > picture {
  position: absolute;
  inset: 0;
  display: block;
}
.absolute.inset-0 > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.photo-fit {
  position: relative;
  overflow: hidden;
}
.photo-fit > img,
.photo-fit > picture,
.photo-fit > picture > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.photo-fit > :not(img):not(picture) {
  position: relative;
  z-index: 1;
}
.photo-fit > .absolute {
  position: absolute;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  html.js main,
  html.js footer,
  html.js body.is-ready main,
  html.js body.is-ready footer,
  html.js body.is-leaving main,
  html.js body.is-leaving footer {
    filter: none;
    transition: none;
    pointer-events: auto;
  }
  .menu-fold, .menu-fold a, .burger-lines span, .reveal, .marquee-track, .menu-overlay {
    transition: none;
    animation: none;
  }
  .reveal { opacity: 1; transform: none; }
}
