@font-face {
  font-family: Inter;
  src: url('../fonts/inter.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

.seasonal-page { --seasonal-header-height: 0px; }
html {
  scroll-behavior: smooth;
  scroll-snap-type: y mandatory;
}
html.has-section-scroll { scroll-snap-type: none; }
.seasonal-page .site-header { display: none !important; }
.seasonal-page .site-footer {
  position: relative;
  z-index: 5;
  scroll-snap-align: start;
}
.seasonal-page .site-footer__map { background: #0f1012 url('../img/site/map.webp') center / cover no-repeat; }
.seasonal-page .faq-modal { z-index: 40; }
.seasonal-page .skip-link { z-index: 50; }
.seasonal-story { position: relative; isolation: isolate; }
.seasonal-screen {
  position: sticky;
  top: 0;
  z-index: 1;
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  background: var(--bg);
  color: #fff;
  font-family: 'Inter Tight', Inter, Arial, sans-serif;
  box-sizing: border-box;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.seasonal-screen[data-screen="next"] { z-index: 2; }
.seasonal-screen[data-screen="winter"] { z-index: 3; }
.seasonal-screen[data-screen="final"] { z-index: 4; }
.seasonal-screen__clip {
  position: relative;
  width: 100%;
  min-height: inherit;
  display: grid;
  overflow: hidden;
}
.seasonal-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
}
.seasonal-photo img,
.seasonal-photo video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.seasonal-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 41.838%, rgb(0 0 0 / .8) 100%);
}
.seasonal-photo--winter::after { display: none; }
.seasonal-screen--winter {
  height: 100vh;
  height: 100svh;
}
.seasonal-screen--winter .seasonal-screen__clip {
  height: 100vh;
  height: 100svh;
  min-height: 100vh;
  min-height: 100svh;
  background: #131417;
  isolation: isolate;
}
.winter-scene-shade {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: #131417;
  opacity: 0;
  pointer-events: none;
}
.summer-slides {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.summer-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 0;
  transition: opacity 1.4s ease-in-out;
}
.summer-slide.is-previous { opacity: 1; z-index: 1; }
.summer-slide.is-active { opacity: 1; z-index: 2; }

/* Slider Controls: Progress Dots */

.slider-pagination {
  position: absolute;
  bottom: max(1rem, env(safe-area-inset-bottom));
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 0;
  z-index: 10;
  padding: 0 6px;
  background: rgba(19, 20, 23, 0.52);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(251, 251, 251, 0.14);
  border-radius: 50px;
}
.slider-dot {
  position: relative;
  width: 44px;
  height: 44px;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
}
.slider-dot::before {
  content: '';
  position: absolute;
  inset: 20px 6px;
  border-radius: 5px;
  background: rgba(251, 251, 251, 0.28);
  transition: background 0.3s ease;
}
.slider-dot:hover::before {
  background: rgba(251, 251, 251, 0.55);
}
.slider-dot.is-active::before {
  background: rgba(251, 251, 251, 0.35);
}
.slider-dot__progress {
  position: absolute;
  inset: 20px 6px;
  transform: scaleX(0);
  transform-origin: left;
  background: linear-gradient(90deg, #f99884, #ffc58e);
  border-radius: 5px;
}
.slider-dot.is-active .slider-dot__progress {
  animation: slide-progress-fill 7s linear infinite;
}
@keyframes slide-progress-fill {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
.is-slideshow-paused .slider-dot__progress {
  animation-play-state: paused;
}
.seasonal-screen__content {
  position: relative;
  min-height: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(1.5rem, 4vw, 3rem) clamp(1rem, 3vw, 2.5rem);
  box-sizing: border-box;
  text-align: center;
  z-index: 2;
}
.seasonal-screen--summer .seasonal-screen__content {
  padding-block: max(5rem, env(safe-area-inset-top), env(safe-area-inset-bottom));
}
.seasonal-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(1.5rem, 4vh, 2.5rem);
  width: min(878px, 100%);
  max-width: 100%;
}
.seasonal-title {
  width: min(878px, 100%);
  margin: 0;
  font: 500 clamp(2rem, 5vw, 3.75rem)/1.2 'Inter Tight', Inter, Arial, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.seasonal-lead {
  width: min(714px, 100%);
  max-width: 714px;
  margin: 0;
  font: 500 clamp(1.125rem, 1.8vw, 1.5rem)/1.3 'Inter Tight', Inter, Arial, sans-serif;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}
.seasonal-lead-line { width: min(714px, 100%); }
.seasonal-lead-line .seasonal-lead { width: 100%; }
.seasonal-screen--final .seasonal-lead {
  width: 100%;
  max-width: 100%;
  text-align: center;
}
.winter-reveal {
  position: absolute;
  z-index: 2;
  inset: 0;
  background: transparent;
  padding: max(1.5rem, env(safe-area-inset-top), env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left), env(safe-area-inset-right));
  box-sizing: border-box;
  text-align: center;
  pointer-events: none;
}
.winter-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(190px, 45vw, 258.68px);
  aspect-ratio: 258.68 / 130.56;
  margin: 0;
  opacity: 0;
}
.winter-logo img {
  position: absolute;
  display: block;
}
.winter-logo__roof {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 79.16%;
  height: 46.07%;
}
.winter-logo__sound {
  bottom: 0;
  left: 0;
  width: 100%;
  height: 45.31%;
}
.winter-season {
  position: absolute;
  top: 80%;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  text-align: center;
  font: 500 clamp(1.125rem, 3.6vw, 2.125rem)/1.2 'Inter Tight', Inter, Arial, sans-serif;
  letter-spacing: 0.04em;
  max-width: 100%;
  overflow-wrap: anywhere;
  opacity: 0;
}
.is-winter-playing .winter-scene-shade { animation: winter-fade-in 3s ease-in-out 3s both; }
.is-winter-playing .winter-logo { animation: winter-fade-in 1.8s ease 5.2s both; }
.is-winter-playing .winter-season { animation: winter-fade-in 1.8s ease 5.55s both; }
.is-winter-paused .winter-scene-shade,
.is-winter-paused .winter-logo,
.is-winter-paused .winter-season { animation-play-state: paused; }
@keyframes winter-fade-in { from { opacity: 0; } to { opacity: 1; } }
.seasonal-glow {
  position: absolute;
  width: 1307.08px;
  height: 1307.08px;
  pointer-events: none;
  transform: translate(-50%, -50%) rotate(-64.46deg);
}
.seasonal-glow img { display: block; max-width: none; }
.seasonal-glow--left { left: calc(50% - 61.893056vw); top: 19.620465%; }
.seasonal-glow--right { left: calc(50% + 56.1625vw); top: 112.411163%; }
.seasonal-telegram {
  padding: 16px 36px;
  font: 500 16px/1.2 'Inter Tight', Arial, sans-serif;
  background: linear-gradient(150.7594deg, #f99884 12.971%, #ffc58e 90.164%);
  color: var(--bg);
}
.seasonal-page a:focus-visible,
.seasonal-page button:focus-visible { outline: 2px solid var(--accent-b); outline-offset: 6px; }
.seasonal-page.is-menu-open { overflow: hidden; }
.is-figma-inspection .winter-reveal { transition: none; }

@media (max-width: 1100px) and (min-width: 1024px) {
  .seasonal-page .site-nav, .seasonal-page .site-nav__list { gap: 16px; }
  .seasonal-page .site-header__feedback { padding-inline: 16px; }
}
@media (max-width: 1023px) {
  .seasonal-title { font-size: clamp(32px, 6vw, 48px); }
  .seasonal-lead { font-size: 20px; max-width: 580px; }
  .seasonal-glow { transform: translate(-50%, -50%) rotate(-64.46deg) scale(.7); }
}

@media (max-width: 600px) {
  .seasonal-screen__content {
    padding: max(1.5rem, env(safe-area-inset-top), env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left), env(safe-area-inset-right));
  }
  .seasonal-copy {
    gap: 18px;
    width: 100%;
  }
  .seasonal-title {
    font-size: clamp(26px, 7.5vw, 34px);
    line-height: 1.15;
  }
  .seasonal-lead {
    font-size: 15px;
    line-height: 1.35;
    max-width: 320px;
  }
  .desktop-break { display: none; }
  .seasonal-photo img { object-position: 50% center; }
  .seasonal-screen--summer .seasonal-photo img { object-position: 48% center; }

  /* Glows on final block */
  .seasonal-glow {
    width: 550px;
    height: 550px;
    transform: translate(-50%, -50%) rotate(-64.46deg) scale(.45);
  }
  .seasonal-glow--left { left: -140px; top: 10%; }
  .seasonal-glow--right { left: calc(100% + 140px); top: 90%; }

  /* Telegram button */
  .seasonal-telegram {
    width: 100%;
    max-width: 320px;
    padding: 15px 20px;
    font-size: 15px;
    text-align: center;
    justify-content: center;
  }

}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; scroll-snap-type: none; }
  .summer-slide, .winter-reveal, .winter-scene-shade, .slider-dot::before { transition: none; }
  .slider-dot.is-active .slider-dot__progress { animation: none; transform: scaleX(1); }
  .seasonal-screen--winter { height: 100vh; height: 100svh; min-height: 100vh; min-height: 100svh; }
  .seasonal-screen--winter .seasonal-screen__clip { position: relative; height: 100vh; height: 100svh; min-height: 100vh; min-height: 100svh; }
  .winter-scene-shade, .winter-reveal, .winter-logo, .winter-season { animation: none; opacity: 1; }
}
@media print {
  .seasonal-page .site-header { position: relative; }
  .seasonal-screen { position: relative; }
  .seasonal-screen { min-height: 860px; }
  .seasonal-screen--winter { height: 860px; min-height: 860px; }
  .seasonal-screen--winter .seasonal-screen__clip { position: relative; height: 860px; min-height: 860px; }
  .winter-scene-shade, .winter-reveal, .winter-logo, .winter-season { animation: none; opacity: 1; }
}
