feat: iOS hero video extends under notch with safe area support
All checks were successful
build-website / build (push) Successful in 1m36s

- Video now uses fixed positioning on mobile to fill entire viewport
- Hero content respects safe-area-inset on all sides (top, left, right, bottom)
- Navigation bar includes safe area padding to stay below notch
- Removed padding-top from hero-voyage to allow video under notch
- Maintains smooth scroll transitions and navbar background changes

This allows the hero video to create an immersive edge-to-edge experience
on iOS devices while keeping all interactive elements accessible.
This commit is contained in:
2025-09-21 13:14:22 +02:00
parent 3b921f4609
commit b97be94e2f

View File

@@ -225,14 +225,14 @@ html {
background: rgba(255, 255, 255, 0);
backdrop-filter: blur(0);
transition: var(--transition-slow);
padding: var(--space-md) 0;
padding: calc(var(--space-md) + env(safe-area-inset-top, 0)) 0 var(--space-md) 0;
}
.voyage-nav.scrolled {
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
padding: var(--space-sm) 0;
padding: calc(var(--space-sm) + env(safe-area-inset-top, 0)) 0 var(--space-sm) 0;
}
.nav-container {
@@ -1686,18 +1686,31 @@ html {
min-height: 100vh;
min-height: -webkit-fill-available;
min-height: 100dvh;
/* Extend into safe areas */
padding-top: env(safe-area-inset-top);
/* Video will extend under notch - no padding-top here */
padding-bottom: env(safe-area-inset-bottom);
overflow-x: hidden !important;
max-width: 100vw !important;
}
/* Make video container fixed on mobile to fill entire viewport including notch */
.hero-video-container {
position: fixed !important;
inset: 0;
width: 100vw;
height: 100vh;
height: -webkit-fill-available;
height: 100dvh;
z-index: 0;
pointer-events: none;
}
.hero-content {
/* Adjust padding to account for safe areas */
/* Adjust padding to account for safe areas on all sides */
padding: clamp(1rem, 4vw, 2rem);
padding-top: max(env(safe-area-inset-top), clamp(1rem, 4vw, 2rem));
padding-bottom: max(env(safe-area-inset-bottom), clamp(1rem, 4vw, 2rem));
padding-top: max(env(safe-area-inset-top, 0), clamp(2rem, 4vw, 3rem));
padding-bottom: max(env(safe-area-inset-bottom, 0), clamp(1rem, 4vw, 2rem));
padding-left: max(env(safe-area-inset-left, 0), clamp(1rem, 3vw, 2rem));
padding-right: max(env(safe-area-inset-right, 0), clamp(1rem, 3vw, 2rem));
overflow-x: hidden;
width: 100%;
display: flex;
@@ -1707,6 +1720,8 @@ html {
min-height: 100vh;
min-height: -webkit-fill-available;
min-height: 100dvh;
position: relative;
z-index: 10; /* Ensure content is above video */
}
/* Responsive logo */