The new index.html is a 3-act scroll-driven storytelling intro:
Act 1 (Tarmac at sunset)
Sunset gradient sky, mountain silhouettes, hangar, runway with
centerline lights. Inline SVG cargo plane (MVA-branded gold tail)
sits on the ground while box emojis cycle up a loading ramp.
Act 2 (Take-off at dusk)
Dusk sky, two parallax cloud layers and distant mountains. The
plane translates diagonally up-and-right with a slight tilt and
a glowing contrail, sized down progressively.
Act 3 (Arrival at night)
Deep navy night sky with twinkling stars, a glowing moon, and
the Madagascar coastline silhouette. A small plane fades in
descending toward the island, then a centered CTA block reveals:
"Bienvenue à bord" with the gold "Accéder au site" button that
routes to accueil.html (the real homepage).
Implementation:
- Pure CSS layered scenes; no library
- Scroll progress driven by a single CSS custom property --scroll
(0→1) updated via rAF, layers transform off it
- Mouse-move parallax on layers via --mx/--my (skipped on touch)
- Inline SVG plane reused across the 3 scenes
- All text is i18n-driven with a new `intro` section in FR/EN/MG
Architecture changes:
- index.html → new parallax intro
- accueil.html → former index.html content (full homepage)
- All nav/logo/footer links updated index.html → accueil.html across
the 8 existing pages
- Mobile-nav on accueil.html now also includes Service Commande
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
707 lines
21 KiB
CSS
707 lines
21 KiB
CSS
/* =========================================================================
|
|
PARALLAX INTRO PAGE — MVA Global Fret
|
|
Scroll-driven storytelling: tarmac → décollage → arrivée à Madagascar
|
|
========================================================================= */
|
|
|
|
:root {
|
|
--navy: #1a1a3e;
|
|
--navy-deep: #0d0d24;
|
|
--navy-light: #2a2a5e;
|
|
--gold: #c5a55a;
|
|
--gold-light: #e0c98a;
|
|
--white: #ffffff;
|
|
--scroll: 0;
|
|
--mx: 0;
|
|
--my: 0;
|
|
}
|
|
|
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
|
|
html, body {
|
|
scroll-behavior: smooth;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.parallax-body {
|
|
font-family: 'Inter', sans-serif;
|
|
color: var(--white);
|
|
background: var(--navy-deep);
|
|
}
|
|
|
|
/* ── HEADER MINIMAL ─────────────────────────────────────────────────────── */
|
|
.parallax-header {
|
|
position: fixed;
|
|
top: 0; left: 0; right: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 18px 36px;
|
|
z-index: 100;
|
|
background: linear-gradient(to bottom, rgba(13,13,36,0.55), transparent);
|
|
backdrop-filter: blur(6px);
|
|
-webkit-backdrop-filter: blur(6px);
|
|
}
|
|
|
|
.parallax-logo {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
text-decoration: none;
|
|
color: var(--white);
|
|
font-family: 'Poppins', sans-serif;
|
|
font-weight: 700;
|
|
letter-spacing: 1px;
|
|
font-size: 0.95rem;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.parallax-logo img {
|
|
height: 44px;
|
|
width: auto;
|
|
filter: drop-shadow(0 4px 8px rgba(0,0,0,0.35));
|
|
}
|
|
|
|
.parallax-header-right {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 18px;
|
|
}
|
|
|
|
.lang-switcher {
|
|
display: inline-flex;
|
|
background: rgba(255,255,255,0.08);
|
|
border: 1px solid rgba(255,255,255,0.15);
|
|
border-radius: 50px;
|
|
padding: 4px;
|
|
backdrop-filter: blur(8px);
|
|
}
|
|
.lang-switcher button {
|
|
background: transparent;
|
|
border: none;
|
|
color: rgba(255,255,255,0.6);
|
|
padding: 5px 12px;
|
|
cursor: pointer;
|
|
border-radius: 50px;
|
|
font-weight: 600;
|
|
font-size: 0.78rem;
|
|
font-family: inherit;
|
|
transition: all 0.2s;
|
|
}
|
|
.lang-switcher button.active {
|
|
background: var(--gold);
|
|
color: var(--navy);
|
|
}
|
|
.lang-switcher button:hover:not(.active) { color: var(--white); }
|
|
|
|
.parallax-skip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 9px 18px;
|
|
border: 1px solid rgba(255,255,255,0.25);
|
|
border-radius: 50px;
|
|
color: var(--white);
|
|
text-decoration: none;
|
|
font-size: 0.85rem;
|
|
font-weight: 500;
|
|
transition: all 0.25s ease;
|
|
backdrop-filter: blur(8px);
|
|
background: rgba(255,255,255,0.05);
|
|
}
|
|
.parallax-skip:hover {
|
|
background: var(--gold);
|
|
color: var(--navy);
|
|
border-color: var(--gold);
|
|
transform: translateX(2px);
|
|
}
|
|
.parallax-skip i { transition: transform 0.25s; font-size: 0.75rem; }
|
|
.parallax-skip:hover i { transform: translateX(3px); }
|
|
|
|
/* ── SCÈNES PARALLAX ─────────────────────────────────────────────────────── */
|
|
.parallax-scene {
|
|
position: relative;
|
|
width: 100%;
|
|
height: 100vh;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.layer {
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
will-change: transform;
|
|
}
|
|
|
|
/* ──────────────────────────────────────────────────────────────────────────
|
|
SCÈNE 1 — TARMAC (avion qui se charge au coucher de soleil)
|
|
────────────────────────────────────────────────────────────────────────── */
|
|
.scene-tarmac {
|
|
background: linear-gradient(to bottom,
|
|
#1a1a3e 0%,
|
|
#2d2350 25%,
|
|
#6b3050 50%,
|
|
#c47a3f 75%,
|
|
#f4b669 95%,
|
|
#f9d28a 100%);
|
|
}
|
|
|
|
.scene-tarmac .sky {
|
|
background: radial-gradient(ellipse at 50% 90%, rgba(255, 200, 120, 0.4), transparent 60%);
|
|
transform: translateY(calc(var(--scroll) * -50vh));
|
|
}
|
|
|
|
.scene-tarmac .sun {
|
|
position: absolute;
|
|
bottom: 18%;
|
|
left: 50%;
|
|
transform: translateX(-50%) translateY(calc(var(--scroll) * -120vh));
|
|
width: 240px;
|
|
height: 240px;
|
|
background: radial-gradient(circle, #ffe9b6 0%, #ffb874 35%, transparent 70%);
|
|
border-radius: 50%;
|
|
filter: blur(10px);
|
|
}
|
|
|
|
.scene-tarmac .stars { display: none; }
|
|
|
|
.scene-tarmac .mountains {
|
|
bottom: 18%;
|
|
height: 30%;
|
|
background:
|
|
linear-gradient(to right,
|
|
transparent 0%, transparent 5%,
|
|
#2d2350 5%, #2d2350 14%,
|
|
transparent 14%, transparent 18%,
|
|
#1f1839 18%, #1f1839 32%,
|
|
transparent 32%, transparent 38%,
|
|
#2d2350 38%, #2d2350 55%,
|
|
transparent 55%, transparent 60%,
|
|
#1f1839 60%, #1f1839 78%,
|
|
transparent 78%, transparent 82%,
|
|
#2d2350 82%, #2d2350 100%);
|
|
-webkit-mask: linear-gradient(135deg, transparent 30%, black 30%, black 70%, transparent 70%);
|
|
mask: linear-gradient(135deg, transparent 30%, black 30%, black 70%, transparent 70%);
|
|
/* simpler approach with SVG mountain silhouette */
|
|
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 200' preserveAspectRatio='none'><path d='M0,200 L0,140 L80,80 L150,120 L220,60 L300,110 L380,70 L470,130 L550,90 L640,40 L730,100 L820,70 L900,130 L990,80 L1080,110 L1200,60 L1200,200 Z' fill='%231a1230' opacity='0.85'/></svg>");
|
|
background-size: cover;
|
|
background-repeat: no-repeat;
|
|
background-position: bottom;
|
|
transform: translate(calc(var(--mx) * -8px), calc(var(--scroll) * -25vh));
|
|
}
|
|
|
|
.scene-tarmac .hangar {
|
|
bottom: 17%;
|
|
left: -5%;
|
|
width: 30%;
|
|
height: 18%;
|
|
background: linear-gradient(180deg, #14102a 0%, #0a081c 100%);
|
|
-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100' preserveAspectRatio='none'><path d='M0,100 L0,30 Q0,15 15,15 L80,15 L100,5 L120,15 L185,15 Q200,15 200,30 L200,100 Z' fill='black'/></svg>") no-repeat;
|
|
-webkit-mask-size: 100% 100%;
|
|
mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100' preserveAspectRatio='none'><path d='M0,100 L0,30 Q0,15 15,15 L80,15 L100,5 L120,15 L185,15 Q200,15 200,30 L200,100 Z' fill='black'/></svg>") no-repeat;
|
|
mask-size: 100% 100%;
|
|
transform: translate(calc(var(--mx) * -15px), calc(var(--scroll) * -40vh));
|
|
}
|
|
|
|
.scene-tarmac .tarmac {
|
|
bottom: 0;
|
|
height: 18%;
|
|
background: linear-gradient(to bottom,
|
|
rgba(40, 30, 60, 0.4) 0%,
|
|
rgba(20, 15, 30, 0.85) 50%,
|
|
rgba(10, 8, 18, 1) 100%);
|
|
border-top: 1px solid rgba(197, 165, 90, 0.2);
|
|
transform: translateY(calc(var(--scroll) * 20vh));
|
|
}
|
|
.scene-tarmac .tarmac::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 30%;
|
|
left: 0; right: 0;
|
|
height: 2px;
|
|
background: repeating-linear-gradient(to right,
|
|
transparent 0, transparent 30px,
|
|
rgba(255, 220, 150, 0.5) 30px, rgba(255, 220, 150, 0.5) 60px);
|
|
}
|
|
|
|
/* ── PLANE STAGES (3 versions, une par scène) ───────────────────────────── */
|
|
.plane-stage {
|
|
position: absolute;
|
|
pointer-events: none;
|
|
will-change: transform;
|
|
}
|
|
|
|
.plane {
|
|
width: 100%;
|
|
height: auto;
|
|
display: block;
|
|
filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.45));
|
|
}
|
|
|
|
/* Avion scène 1 : au sol, immobile */
|
|
.plane-loading {
|
|
bottom: 14%;
|
|
left: 50%;
|
|
transform: translateX(-50%) translateY(calc(var(--scroll) * 30vh));
|
|
width: min(640px, 75vw);
|
|
z-index: 5;
|
|
}
|
|
|
|
/* Rampe de chargement */
|
|
.ramp {
|
|
position: absolute;
|
|
bottom: 8%;
|
|
left: calc(50% - 280px);
|
|
width: 90px;
|
|
height: 8px;
|
|
background: linear-gradient(90deg, #5a4520, #8a6a30);
|
|
transform: rotate(-18deg);
|
|
transform-origin: right;
|
|
border-radius: 4px;
|
|
box-shadow: 0 4px 12px rgba(0,0,0,0.4);
|
|
z-index: 4;
|
|
transform: translateY(calc(var(--scroll) * 30vh)) rotate(-18deg);
|
|
}
|
|
|
|
/* Boîtes qui montent dans l'avion (animation) */
|
|
.box {
|
|
position: absolute;
|
|
bottom: 6%;
|
|
font-size: 28px;
|
|
z-index: 6;
|
|
animation: loadBox 4s ease-in-out infinite;
|
|
filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5));
|
|
transform: translateY(calc(var(--scroll) * 30vh));
|
|
}
|
|
.box-1 { left: calc(50% - 320px); animation-delay: 0s; }
|
|
.box-2 { left: calc(50% - 320px); animation-delay: 1.3s; }
|
|
.box-3 { left: calc(50% - 320px); animation-delay: 2.6s; }
|
|
|
|
@keyframes loadBox {
|
|
0% { transform: translate(0, calc(var(--scroll, 0) * 30vh)) scale(1); opacity: 0; }
|
|
10% { opacity: 1; }
|
|
60% { transform: translate(140px, calc(-30px + var(--scroll, 0) * 30vh)) scale(0.95); opacity: 1; }
|
|
90% { transform: translate(170px, calc(-20px + var(--scroll, 0) * 30vh)) scale(0.7); opacity: 0; }
|
|
100% { transform: translate(170px, calc(-20px + var(--scroll, 0) * 30vh)) scale(0.7); opacity: 0; }
|
|
}
|
|
|
|
.ground-boxes {
|
|
position: absolute;
|
|
bottom: 2%;
|
|
left: calc(50% - 350px);
|
|
display: flex;
|
|
gap: 6px;
|
|
z-index: 4;
|
|
transform: translateY(calc(var(--scroll) * 30vh));
|
|
}
|
|
.ground-box {
|
|
width: 28px; height: 28px;
|
|
background: linear-gradient(135deg, #c5a55a, #8a6a30);
|
|
border: 1px solid #5a4520;
|
|
border-radius: 3px;
|
|
box-shadow: 0 4px 8px rgba(0,0,0,0.5);
|
|
}
|
|
.gb-1 { transform: translateY(0); }
|
|
.gb-2 { transform: translateY(-2px); }
|
|
.gb-3 { transform: translateY(-1px); }
|
|
|
|
/* ── TEXTE HERO (scène 1) ────────────────────────────────────────────────── */
|
|
.scene-text {
|
|
position: absolute;
|
|
z-index: 10;
|
|
text-align: center;
|
|
width: 100%;
|
|
padding: 0 20px;
|
|
}
|
|
|
|
.scene-text--hero {
|
|
top: 22%;
|
|
left: 0;
|
|
right: 0;
|
|
opacity: calc(1 - var(--scroll) * 3);
|
|
transform: translateY(calc(var(--scroll) * -30vh));
|
|
}
|
|
|
|
.hero-pretitle {
|
|
font-family: 'Poppins', sans-serif;
|
|
font-weight: 500;
|
|
letter-spacing: 6px;
|
|
text-transform: uppercase;
|
|
color: var(--gold);
|
|
font-size: 0.85rem;
|
|
margin-bottom: 14px;
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.hero-title {
|
|
font-family: 'Poppins', sans-serif;
|
|
font-size: clamp(2.2rem, 6vw, 4.5rem);
|
|
font-weight: 800;
|
|
letter-spacing: -1px;
|
|
line-height: 1;
|
|
background: linear-gradient(135deg, #fff 0%, #c5a55a 50%, #fff 100%);
|
|
-webkit-background-clip: text;
|
|
background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
color: transparent;
|
|
text-shadow: 0 6px 30px rgba(0,0,0,0.5);
|
|
}
|
|
|
|
.hero-line {
|
|
width: 80px;
|
|
height: 3px;
|
|
background: var(--gold);
|
|
margin: 22px auto;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.hero-subtitle {
|
|
font-size: clamp(1rem, 2vw, 1.3rem);
|
|
font-weight: 300;
|
|
color: rgba(255, 255, 255, 0.88);
|
|
letter-spacing: 0.5px;
|
|
text-shadow: 0 2px 12px rgba(0,0,0,0.5);
|
|
}
|
|
|
|
.scroll-indicator {
|
|
position: absolute;
|
|
bottom: 30px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
z-index: 10;
|
|
text-align: center;
|
|
color: rgba(255, 255, 255, 0.7);
|
|
font-size: 0.75rem;
|
|
letter-spacing: 2px;
|
|
text-transform: uppercase;
|
|
opacity: calc(1 - var(--scroll) * 4);
|
|
}
|
|
.scroll-mouse {
|
|
width: 22px;
|
|
height: 36px;
|
|
border: 2px solid rgba(255, 255, 255, 0.6);
|
|
border-radius: 12px;
|
|
margin: 10px auto 0;
|
|
position: relative;
|
|
}
|
|
.scroll-mouse span {
|
|
display: block;
|
|
width: 4px;
|
|
height: 8px;
|
|
background: var(--gold);
|
|
border-radius: 2px;
|
|
position: absolute;
|
|
top: 6px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
animation: scrollDown 1.8s ease-in-out infinite;
|
|
}
|
|
@keyframes scrollDown {
|
|
0%, 20% { opacity: 0; transform: translate(-50%, 0); }
|
|
50% { opacity: 1; transform: translate(-50%, 6px); }
|
|
100% { opacity: 0; transform: translate(-50%, 14px); }
|
|
}
|
|
|
|
/* ──────────────────────────────────────────────────────────────────────────
|
|
SCÈNE 2 — DÉCOLLAGE
|
|
────────────────────────────────────────────────────────────────────────── */
|
|
.scene-takeoff {
|
|
background: linear-gradient(to bottom,
|
|
#2a2058 0%,
|
|
#5a3470 35%,
|
|
#b06850 70%,
|
|
#f0a060 100%);
|
|
}
|
|
|
|
.scene-takeoff .sky-2 {
|
|
background: radial-gradient(ellipse at 50% 60%, rgba(240, 160, 100, 0.5), transparent 70%);
|
|
}
|
|
|
|
.scene-takeoff .clouds-far,
|
|
.scene-takeoff .clouds-mid {
|
|
background-repeat: no-repeat;
|
|
background-size: cover;
|
|
}
|
|
.scene-takeoff .clouds-far {
|
|
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 400' preserveAspectRatio='none'><g fill='%23fff' opacity='0.18'><ellipse cx='150' cy='90' rx='90' ry='28'/><ellipse cx='400' cy='160' rx='110' ry='32'/><ellipse cx='700' cy='100' rx='80' ry='26'/><ellipse cx='950' cy='200' rx='130' ry='34'/><ellipse cx='1100' cy='90' rx='80' ry='24'/></g></svg>");
|
|
transform: translate(calc(var(--scroll) * -20vw), calc(var(--mx) * 5px));
|
|
}
|
|
.scene-takeoff .clouds-mid {
|
|
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 400' preserveAspectRatio='none'><g fill='%23fff' opacity='0.4'><ellipse cx='100' cy='220' rx='130' ry='40'/><ellipse cx='550' cy='280' rx='160' ry='48'/><ellipse cx='950' cy='250' rx='140' ry='42'/></g></svg>");
|
|
transform: translate(calc(var(--scroll) * -40vw + 100vw), calc(var(--mx) * 12px));
|
|
}
|
|
|
|
.scene-takeoff .mountains-2 {
|
|
bottom: 0;
|
|
height: 25%;
|
|
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 200' preserveAspectRatio='none'><path d='M0,200 L0,160 L100,100 L200,140 L320,80 L450,140 L580,90 L720,150 L850,100 L980,150 L1100,80 L1200,130 L1200,200 Z' fill='%231a1230' opacity='0.9'/></svg>");
|
|
background-size: cover;
|
|
background-position: bottom;
|
|
background-repeat: no-repeat;
|
|
transform: translate(calc(var(--mx) * -10px), calc(var(--scroll) * 15vh));
|
|
}
|
|
|
|
/* Avion scène 2 : monte en diagonale et grandit/avance */
|
|
.plane-takeoff {
|
|
bottom: 30%;
|
|
left: 50%;
|
|
width: min(580px, 70vw);
|
|
z-index: 5;
|
|
/* progress in scene = (scroll - 0.33) / 0.34 */
|
|
transform: translateX(calc(-50% + (var(--scroll) - 0.5) * 60vw))
|
|
translateY(calc((var(--scroll) - 0.5) * -40vh))
|
|
rotate(calc((var(--scroll) - 0.33) * -10deg));
|
|
}
|
|
|
|
.contrail {
|
|
position: absolute;
|
|
top: 50%;
|
|
right: 90%;
|
|
width: 200px;
|
|
height: 6px;
|
|
background: linear-gradient(to left, rgba(255,255,255,0.85), transparent);
|
|
border-radius: 3px;
|
|
filter: blur(2px);
|
|
transform: translateY(-3px);
|
|
}
|
|
|
|
.scene-text--takeoff {
|
|
top: 18%;
|
|
left: 50%;
|
|
transform: translate(-50%, calc(-20vh + var(--scroll) * 40vh));
|
|
text-align: center;
|
|
max-width: 600px;
|
|
padding: 0 20px;
|
|
}
|
|
|
|
.step-marker {
|
|
font-family: 'Poppins', sans-serif;
|
|
font-weight: 800;
|
|
font-size: 4.5rem;
|
|
background: linear-gradient(135deg, var(--gold), var(--gold-light));
|
|
-webkit-background-clip: text;
|
|
background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
line-height: 1;
|
|
opacity: 0.85;
|
|
}
|
|
|
|
.scene-text--takeoff h2 {
|
|
font-family: 'Poppins', sans-serif;
|
|
font-size: clamp(2rem, 5vw, 3.2rem);
|
|
font-weight: 700;
|
|
margin-top: 8px;
|
|
letter-spacing: -0.5px;
|
|
text-shadow: 0 4px 20px rgba(0,0,0,0.4);
|
|
}
|
|
|
|
.scene-text--takeoff p {
|
|
margin-top: 14px;
|
|
font-size: 1.15rem;
|
|
color: rgba(255, 255, 255, 0.85);
|
|
font-weight: 300;
|
|
}
|
|
|
|
/* ──────────────────────────────────────────────────────────────────────────
|
|
SCÈNE 3 — ARRIVÉE (nuit étoilée + Madagascar)
|
|
────────────────────────────────────────────────────────────────────────── */
|
|
.scene-arrival {
|
|
background: linear-gradient(to bottom,
|
|
#050518 0%,
|
|
#0d0d2a 40%,
|
|
#1a1a3e 80%,
|
|
#1f2050 100%);
|
|
height: 110vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.scene-arrival .night-sky {
|
|
background: radial-gradient(ellipse at 70% 30%, rgba(60, 60, 120, 0.3), transparent 70%);
|
|
}
|
|
|
|
.scene-arrival .night-stars {
|
|
background-image:
|
|
radial-gradient(2px 2px at 20% 18%, #fff 50%, transparent 100%),
|
|
radial-gradient(1px 1px at 35% 42%, #fff 50%, transparent 100%),
|
|
radial-gradient(2px 2px at 60% 22%, #fff 50%, transparent 100%),
|
|
radial-gradient(1.5px 1.5px at 80% 35%, #fff 50%, transparent 100%),
|
|
radial-gradient(1px 1px at 50% 65%, #fff 50%, transparent 100%),
|
|
radial-gradient(1.5px 1.5px at 12% 70%, #fff 50%, transparent 100%),
|
|
radial-gradient(1px 1px at 90% 80%, #fff 50%, transparent 100%),
|
|
radial-gradient(2px 2px at 25% 85%, #c5a55a 50%, transparent 100%),
|
|
radial-gradient(1px 1px at 78% 12%, #fff 50%, transparent 100%);
|
|
animation: twinkle 4s ease-in-out infinite alternate;
|
|
transform: translate(calc(var(--mx) * -6px), calc(var(--my) * -4px));
|
|
}
|
|
@keyframes twinkle {
|
|
0% { opacity: 0.7; }
|
|
100% { opacity: 1; }
|
|
}
|
|
|
|
.scene-arrival .moon {
|
|
position: absolute;
|
|
top: 12%;
|
|
right: 12%;
|
|
width: 110px;
|
|
height: 110px;
|
|
background: radial-gradient(circle at 35% 35%, #fff 0%, #f4e4b4 40%, #c5a55a 100%);
|
|
border-radius: 50%;
|
|
box-shadow: 0 0 60px rgba(244, 228, 180, 0.6), 0 0 120px rgba(197, 165, 90, 0.3);
|
|
transform: translate(calc(var(--mx) * -10px), calc(var(--my) * -6px));
|
|
}
|
|
|
|
.scene-arrival .madagascar-silhouette {
|
|
bottom: 0;
|
|
left: 0;
|
|
height: 35%;
|
|
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 250' preserveAspectRatio='none'><path d='M0,250 L0,180 Q40,160 80,165 Q140,170 200,150 Q260,130 320,140 Q380,150 440,125 Q500,100 580,115 Q640,130 700,110 Q780,90 860,120 Q940,150 1020,135 Q1100,120 1200,150 L1200,250 Z' fill='%230a0820'/></svg>");
|
|
background-size: cover;
|
|
background-position: bottom;
|
|
background-repeat: no-repeat;
|
|
transform: translateY(calc((1 - var(--scroll)) * 20vh));
|
|
}
|
|
|
|
/* Petit avion en approche */
|
|
.plane-arrival {
|
|
position: absolute;
|
|
top: 22%;
|
|
left: 30%;
|
|
width: min(280px, 32vw);
|
|
z-index: 5;
|
|
transform: translate(calc((var(--scroll) - 0.66) * 100vw), calc((1 - var(--scroll)) * -10vh))
|
|
rotate(8deg);
|
|
opacity: calc((var(--scroll) - 0.55) * 3);
|
|
}
|
|
|
|
.plane-small { opacity: 0.95; }
|
|
|
|
/* CTA bloc final */
|
|
.parallax-cta-block {
|
|
position: relative;
|
|
z-index: 10;
|
|
text-align: center;
|
|
max-width: 720px;
|
|
padding: 0 30px;
|
|
opacity: calc((var(--scroll) - 0.7) * 4);
|
|
transform: translateY(calc((1 - var(--scroll)) * 50px));
|
|
transition: opacity 0.5s, transform 0.5s;
|
|
}
|
|
|
|
.cta-pretitle {
|
|
font-family: 'Poppins', sans-serif;
|
|
font-weight: 500;
|
|
letter-spacing: 8px;
|
|
text-transform: uppercase;
|
|
color: var(--gold);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.cta-title {
|
|
font-family: 'Poppins', sans-serif;
|
|
font-size: clamp(2.4rem, 6vw, 4rem);
|
|
font-weight: 800;
|
|
letter-spacing: -1px;
|
|
background: linear-gradient(135deg, #fff 0%, #c5a55a 60%, #fff 100%);
|
|
-webkit-background-clip: text;
|
|
background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.cta-subtitle {
|
|
margin-top: 18px;
|
|
font-size: 1.1rem;
|
|
color: rgba(255, 255, 255, 0.85);
|
|
font-weight: 300;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.parallax-cta-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
margin-top: 36px;
|
|
padding: 18px 42px;
|
|
background: linear-gradient(135deg, var(--gold), var(--gold-light));
|
|
color: var(--navy);
|
|
text-decoration: none;
|
|
border-radius: 50px;
|
|
font-family: 'Poppins', sans-serif;
|
|
font-weight: 700;
|
|
font-size: 1.05rem;
|
|
letter-spacing: 0.5px;
|
|
box-shadow: 0 12px 35px rgba(197, 165, 90, 0.45),
|
|
0 0 0 0 rgba(197, 165, 90, 0.5);
|
|
transition: all 0.3s ease;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
.parallax-cta-btn::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0; left: -100%;
|
|
width: 100%; height: 100%;
|
|
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
|
|
transition: left 0.6s;
|
|
}
|
|
.parallax-cta-btn:hover {
|
|
transform: translateY(-4px);
|
|
box-shadow: 0 18px 45px rgba(197, 165, 90, 0.6),
|
|
0 0 0 8px rgba(197, 165, 90, 0.15);
|
|
}
|
|
.parallax-cta-btn:hover::before { left: 100%; }
|
|
.parallax-cta-btn i {
|
|
transition: transform 0.3s;
|
|
font-size: 0.95rem;
|
|
}
|
|
.parallax-cta-btn:hover i { transform: translateX(6px); }
|
|
|
|
.cta-meta {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 32px;
|
|
margin-top: 36px;
|
|
flex-wrap: wrap;
|
|
color: rgba(255, 255, 255, 0.65);
|
|
font-size: 0.85rem;
|
|
}
|
|
.cta-meta span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
.cta-meta i {
|
|
color: var(--gold);
|
|
}
|
|
|
|
/* ── RESPONSIVE ─────────────────────────────────────────────────────────── */
|
|
@media (max-width: 768px) {
|
|
.parallax-header { padding: 14px 18px; }
|
|
.parallax-logo span { display: none; }
|
|
.parallax-logo img { height: 38px; }
|
|
.parallax-skip { padding: 7px 14px; font-size: 0.78rem; }
|
|
.lang-switcher button { padding: 4px 8px; font-size: 0.72rem; }
|
|
.parallax-header-right { gap: 10px; }
|
|
|
|
.plane-loading,
|
|
.plane-takeoff { width: 100vw; }
|
|
|
|
.ramp,
|
|
.box,
|
|
.ground-boxes { display: none; }
|
|
|
|
.scroll-indicator span { font-size: 0.7rem; }
|
|
.cta-meta { gap: 18px; font-size: 0.78rem; }
|
|
.parallax-cta-btn { padding: 14px 28px; font-size: 0.95rem; }
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.box,
|
|
.scroll-mouse span,
|
|
.night-stars { animation: none; }
|
|
html { scroll-behavior: auto; }
|
|
}
|