- {/* Slides */}
+ <>
+ {/* Mobile: stacked slides, no hero images, no transitions */}
+
{SLIDES.map((slide, i) => (
-
-
+
+
+
{t(slide.titleKey)}
+
{t(slide.descKey)}
+
))}
-
- {/* Floating heading — slides between left/right via flex-grow spacers (ease-out) */}
-
-
-
- {t("teaser.carousel.heading")}
- LAN
- {t("teaser.carousel.headingSuffix")}
-
-
-
-
- {/* Progress bar — 3 segments */}
-
- {SLIDES.map((_, i) => {
- // Each segment: 0 = empty, 1 = full
- const segmentStart = i / SLIDES.length;
- const segmentEnd = (i + 1) / SLIDES.length;
- const segmentProgress = Math.max(
- 0,
- Math.min(1, (scrollProgress - segmentStart) / (segmentEnd - segmentStart))
- );
-
- return (
-
- );
- })}
-
-
+
+ {/* Desktop: scroll-based carousel with transitions */}
+
+
+ {/* Slides */}
+ {SLIDES.map((slide, i) => (
+
+
+
+ ))}
+
+ {/* Floating heading — slides between left/right via flex-grow spacers (ease-out) */}
+
+
+
+ {t("teaser.carousel.heading")}
+ LAN
+ {t("teaser.carousel.headingSuffix")}
+
+
+
+
+ {/* Progress bar — 3 segments */}
+
+ {SLIDES.map((_, i) => {
+ // Each segment: 0 = empty, 1 = full
+ const segmentStart = i / SLIDES.length;
+ const segmentEnd = (i + 1) / SLIDES.length;
+ const segmentProgress = Math.max(
+ 0,
+ Math.min(1, (scrollProgress - segmentStart) / (segmentEnd - segmentStart))
+ );
+
+ return (
+
+ );
+ })}
+
+
+
+ >
);
}
diff --git a/src/components/teaser/EndSection.tsx b/src/components/teaser/EndSection.tsx
index 266b857..b700f63 100644
--- a/src/components/teaser/EndSection.tsx
+++ b/src/components/teaser/EndSection.tsx
@@ -46,24 +46,24 @@ export default function EndSection() {
return (
-
+
{/* Tickets side */}
-
+
-
+
{/* Ticket stats */}
-
+
{/* CTA */}
-
+
{t("teaser.tickets.cta")}
@@ -74,27 +74,26 @@ export default function EndSection() {
- {/* Separator — vertical on desktop, horizontal on stacked */}
-
-
+ {/* Separator */}
+
{/* Sponsors side */}
-
+
-
+
{/* Sponsor stats */}
-
-
-
+
+
+
{/* CTA */}
-
+
{t("teaser.sponsors.cta")}
diff --git a/src/components/teaser/Footer.tsx b/src/components/teaser/Footer.tsx
index f19a05b..fcebfba 100644
--- a/src/components/teaser/Footer.tsx
+++ b/src/components/teaser/Footer.tsx
@@ -16,7 +16,7 @@ export default function Footer() {
const t = useTranslations();
return (
-