:root{--sky:#8ed7f6;--deep:#063d5d}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--deep);font-family:Arial,Helvetica,sans-serif}.boot{position:fixed;inset:0;overflow:hidden;background:var(--sky);color:#fff}.sky{position:absolute;inset:-12%;background:url('../intro-new/ciel.png') center/cover no-repeat;transform:scale(1.03);animation:cameraDive 5.8s cubic-bezier(.42,0,.26,1) forwards}.cloud-haze{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,.12),transparent 55%,rgba(2,54,86,.06));pointer-events:none}.reunion-title{position:absolute;z-index:3;left:50%;top:30%;width:min(1240px,96vw);height:min(60vh,640px);object-fit:contain;transform:translate(-50%,-50%) scale(1.16);filter:drop-shadow(0 12px 26px rgba(0,0,0,.24));animation:titleExit 4.2s ease forwards}.bird{position:absolute;z-index:4;top:33%;left:-28vw;width:clamp(220px,21vw,360px);height:auto;filter:drop-shadow(0 12px 14px rgba(0,0,0,.2));animation:birdCurve 3.65s cubic-bezier(.2,.65,.18,1) .48s forwards}.sea-transition{position:absolute;z-index:4;inset:0;background:linear-gradient(to bottom,rgba(80,190,230,0) 0%,rgba(40,146,190,.08) 28%,rgba(7,82,122,.28) 57%,rgba(3,42,69,.9) 100%);opacity:0;animation:seaBlend 2.45s ease 3.45s forwards;pointer-events:none}.boot:after{content:"";position:absolute;z-index:4;inset:-5%;background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(102,205,238,.12) 38%,rgba(4,68,103,.58) 78%,rgba(2,42,68,.84));transform:translateY(102%);filter:blur(0);animation:waterCurtain 2.55s cubic-bezier(.28,.72,.22,1) 3.25s forwards;pointer-events:none}.meet-slogan{position:absolute;z-index:7;left:50%;top:58%;width:min(760px,70vw);max-height:44vh;object-fit:contain;opacity:0;transform:translate(-50%,-195%) perspective(900px) rotateX(-88deg) rotateZ(-10deg) scale(.62);transform-origin:center center;filter:drop-shadow(0 18px 30px rgba(0,0,0,.28));animation:meetDrop 1.7s cubic-bezier(.18,.82,.22,1) 4.15s forwards}.boot.exit{animation:exitFade 1.15s ease forwards}@keyframes birdCurve{0%{transform:translate3d(0,14vh,0) rotate(-14deg) scale(.86)}28%{transform:translate3d(42vw,-9vh,0) rotate(6deg) scale(1.08)}61%{transform:translate3d(88vw,-1vh,0) rotate(-4deg) scale(1.03)}100%{transform:translate3d(148vw,12vh,0) rotate(9deg) scale(.9)}}@keyframes titleExit{0%,66%{opacity:1;transform:translate(-50%,-50%) scale(1.16)}100%{opacity:0;transform:translate(-50%,-64%) scale(1.02)}}@keyframes cameraDive{0%,55%{transform:scale(1.03) translateY(0)}100%{transform:scale(1.58) translateY(-22%)}}@keyframes seaBlend{to{opacity:1}}@keyframes waterCurtain{to{transform:translateY(0)}}@keyframes meetDrop{0%{opacity:0;transform:translate(-50%,-200%) perspective(900px) rotateX(-88deg) rotateZ(-12deg) scale(.58)}42%{opacity:1;transform:translate(-50%,-48%) perspective(900px) rotateX(16deg) rotateZ(2deg) scale(1.06)}63%{transform:translate(-50%,-50%) perspective(900px) rotateX(0) rotateZ(0) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-34%) scale(1.04)}}@keyframes exitFade{to{opacity:0;visibility:hidden}}@media(max-width:700px){.reunion-title{top:31%;width:100vw;height:52vh}.bird{top:36%;width:220px}.meet-slogan{top:60%;width:86vw}}@media(prefers-reduced-motion:reduce){.sky,.bird,.reunion-title,.sea-transition,.boot:after,.meet-slogan{animation:none}.bird{left:72%;top:28%}.sea-transition{opacity:.3}.meet-slogan{opacity:1;transform:translate(-50%,-50%)}}

/* V10 — fondu sur le véritable décor marin */
.ocean-intro{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.sky{z-index:1;animation:skyToOcean 6.9s ease-in-out forwards}
.cloud-haze{z-index:2;animation:hazeOut 6.5s ease-in forwards}
.reunion-title{top:48%;left:50%;width:min(1340px,98vw);height:min(75vh,720px);animation:titleExitV10 5.35s ease-in-out forwards}
.sea-transition,.boot:after{display:none!important}
.meet-slogan{top:53%;width:min(1050px,91vw);max-height:63vh;animation:meetCartoon 3.5s cubic-bezier(.19,.86,.28,1) 3.8s forwards}
@keyframes skyToOcean{0%,30%{opacity:1;transform:scale(1.03)}83%,100%{opacity:0;transform:scale(1.27) rotate(-1deg)}}
@keyframes hazeOut{0%,50%{opacity:1}100%{opacity:0}}
@keyframes titleExitV10{0%,65%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-58%) scale(1.12)}}
@keyframes meetCartoon{0%{opacity:0;transform:translate(-50%,-180%) rotate(-19deg) scale(.25)}25%{opacity:1;transform:translate(-50%,-52%) rotate(11deg) scale(1.22)}40%{transform:translate(-50%,-50%) rotate(-7deg) scale(.95)}55%{transform:translate(-50%,-50%) rotate(4deg) scale(1.1)}72%,92%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1.07)}100%{opacity:0;transform:translate(-50%,-45%) scale(1.18)}}
@media(prefers-reduced-motion:reduce){.sky{opacity:0}.cloud-haze{opacity:0}.meet-slogan{animation:none;opacity:1;transform:translate(-50%,-50%)}}

/* V11 : descente céleste, immersion progressive, slogan après disparition de l’île. */
.boot{background:#063d5d}
.ocean-intro{z-index:0}
.sky{z-index:1;animation:descentSky 9.2s cubic-bezier(.32,.05,.25,1) forwards;transform-origin:center 58%;will-change:opacity,transform}
.cloud-haze{z-index:2;animation:cloudDescent 9s ease-in-out forwards}
.reunion-title{z-index:3;top:48%;animation:islandDeparture 5.7s ease-in-out forwards}
.bird{z-index:4;animation:birdCurve 3.75s cubic-bezier(.2,.65,.18,1) .45s forwards}
.sea-transition{display:block!important;z-index:4;background:linear-gradient(180deg,transparent 0%,rgba(91,188,220,.22) 22%,rgba(9,105,154,.58) 60%,rgba(1,39,76,.92) 100%);opacity:0;animation:waterDescent 5.4s ease-in-out 3.45s forwards}
.boot:after{display:none!important}
.meet-slogan{z-index:7;top:53%;width:min(1080px,92vw);animation:sloganCartoon 3.8s cubic-bezier(.2,.8,.2,1) 6.05s both}
@keyframes descentSky{0%,30%{opacity:1;transform:translateY(0) scale(1.03)}57%{opacity:1;transform:translateY(-9%) scale(1.25)}80%{opacity:.86;transform:translateY(-24%) scale(1.7)}100%{opacity:0;transform:translateY(-32%) scale(1.9)}}
@keyframes cloudDescent{0%,52%{opacity:1}83%{opacity:.5}100%{opacity:0}}
@keyframes islandDeparture{0%,62%{opacity:1;transform:translate(-50%,-50%) scale(1)}82%{opacity:.65;transform:translate(-50%,-65%) scale(1.13)}100%{opacity:0;transform:translate(-50%,-76%) scale(1.22)}}
@keyframes waterDescent{0%{opacity:0;transform:translateY(70%)}38%{opacity:.9;transform:translateY(8%)}64%{opacity:.8;transform:translateY(0)}100%{opacity:0;transform:translateY(-7%)}}
@keyframes sloganCartoon{0%{opacity:0;transform:translate(-50%,-175%) rotate(-16deg) scale(.35)}20%{opacity:1;transform:translate(-50%,-52%) rotate(12deg) scale(1.18)}38%{transform:translate(-50%,-50%) rotate(-7deg) scale(.94)}53%{transform:translate(-50%,-50%) rotate(4deg) scale(1.08)}68%{opacity:1;transform:translate(-50%,-50%) rotate(-2deg) scale(1.04)}83%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1.08)}100%{opacity:0;transform:translate(-50%,-50%) rotate(2deg) scale(1.15)}}
@media(prefers-reduced-motion:reduce){.sky,.cloud-haze,.sea-transition{animation:none;opacity:0}.reunion-title,.bird{animation:none;opacity:0}.meet-slogan{animation:none;opacity:1;transform:translate(-50%,-50%)}}

/* V12 : l'application tourne déjà sous l'intro : une unique dissolution, sans rechargement vidéo. */
.boot{z-index:2}
.boot.exit{animation:lagondexDissolve 1.35s ease-in-out both;pointer-events:none}
@keyframes lagondexDissolve{0%{opacity:1}100%{opacity:0;visibility:hidden}}
/* Ne jamais révéler une couche bleu opaque pendant la sortie. */


/* V13 — rotation en profondeur et révélation progressive des poissons pendant le titre. */
.meet-slogan{animation:sloganDepthV13 3.75s cubic-bezier(.2,.8,.2,1) 6.05s both!important;transform-style:preserve-3d;backface-visibility:visible}
@keyframes sloganDepthV13{
0%{opacity:0;transform:translate(-50%,-50%) perspective(1000px) translateZ(-1200px) rotateY(-360deg) rotateZ(-35deg) scale(.35)}
22%{opacity:1;transform:translate(-50%,-50%) perspective(1000px) translateZ(90px) rotateY(-80deg) rotateZ(20deg) scale(1.1)}
36%{transform:translate(-50%,-50%) perspective(1000px) translateZ(0) rotateY(15deg) rotateZ(-12deg) scale(1.19)}
49%{transform:translate(-50%,-50%) perspective(1000px) rotateY(-7deg) rotateZ(7deg) scale(.97)}
62%{opacity:1;transform:translate(-50%,-50%) perspective(1000px) rotateY(2deg) rotateZ(-4deg) scale(1.09)}
77%{opacity:1;transform:translate(-50%,-50%) rotateZ(1deg) scale(1.04)}
87%{opacity:1;transform:translate(-50%,-50%) rotateZ(0) scale(1.06)}
100%{opacity:0;transform:translate(-50%,-50%) translateZ(60px) scale(1.12)}
}
/* L'interface et ses poissons sont déjà actifs derrière le voile. */
.boot{animation:revealFishV13 10.15s linear both;pointer-events:auto}
@keyframes revealFishV13{0%,76%{opacity:1}94%{opacity:.16}100%{opacity:0;visibility:hidden}}
.boot.exit{animation:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}
@media(prefers-reduced-motion:reduce){.meet-slogan{animation:none!important;opacity:1;transform:translate(-50%,-50%)}.boot{animation:none;opacity:1}}

/* V14 : descente continue, rotation lisible, pause en face avant, disparition tardive. */
.sky{animation:descentSkyV14 9.2s cubic-bezier(.35,.05,.25,1) forwards!important}
@keyframes descentSkyV14{0%,29%{opacity:1;transform:translateY(0) scale(1.03)}56%{opacity:1;transform:translateY(-10%) scale(1.28)}80%{opacity:.85;transform:translateY(-24%) scale(1.7)}100%{opacity:0;transform:translateY(-32%) scale(1.9)}}
.meet-slogan{animation:sloganV14 4.65s ease-out 6.05s both!important;backface-visibility:hidden;will-change:transform,opacity}
@keyframes sloganV14{
  0%{opacity:0;transform:translate(-50%,-50%) perspective(1100px) translateZ(-560px) rotateY(-95deg) rotateZ(-12deg) scale(.55)}
  18%{opacity:1;transform:translate(-50%,-50%) perspective(1100px) translateZ(-130px) rotateY(0) rotateZ(9deg) scale(.95)}
  32%{transform:translate(-50%,-50%) perspective(1100px) translateZ(65px) rotateZ(-7deg) scale(1.12)}
  44%{transform:translate(-50%,-50%) rotateZ(5deg) scale(1.01)}
  57%{transform:translate(-50%,-50%) rotateZ(-2deg) scale(1.07)}
  69%,91%{opacity:1;transform:translate(-50%,-50%) rotateZ(0) scale(1.05)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.09)}
}
.boot{animation:revealFishV14 11s linear both!important}
@keyframes revealFishV14{0%,77%{opacity:1}96%{opacity:.1}100%{opacity:0;visibility:hidden}}
.boot.exit{animation:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}

/* V15 : ascension régulière de l'île sans arrêt, et couche marine sans ligne de coupe. */
.sky{inset:-30%!important;background-size:cover!important;animation:descentSkyV15 9.25s cubic-bezier(.3,.1,.35,1) forwards!important;backface-visibility:hidden}
.reunion-title{animation:islandV15 6.5s linear forwards!important;will-change:transform,opacity}
.sea-transition{inset:-8%!important;background:linear-gradient(180deg,rgba(3,55,91,0) 0%,rgba(8,99,148,.10) 35%,rgba(5,69,111,.46) 68%,rgba(2,41,73,.7) 100%)!important;animation:waterV15 5.2s ease-in-out 3.3s both!important;will-change:opacity}
.meet-slogan{animation:sloganV15 4.9s cubic-bezier(.25,.8,.28,1) 6.05s both!important}
.boot{animation:revealFishV15 11.4s ease-in-out both!important}
@keyframes descentSkyV15{0%{opacity:1;transform:translate3d(0,0,0) scale(1.05)}45%{opacity:1;transform:translate3d(0,-8%,0) scale(1.33)}70%{opacity:.94;transform:translate3d(0,-20%,0) scale(1.62)}100%{opacity:0;transform:translate3d(0,-34%,0) scale(1.96)}}
@keyframes islandV15{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-70%) scale(1.06)}80%{opacity:1;transform:translate(-50%,-103%) scale(1.12)}100%{opacity:0;transform:translate(-50%,-132%) scale(1.16)}}
@keyframes waterV15{0%{opacity:0}48%{opacity:.75}100%{opacity:0}}
@keyframes sloganV15{0%{opacity:0;transform:translate(-50%,-50%) perspective(1100px) translateZ(-420px) rotateY(-65deg) scale(.62)}18%{opacity:1;transform:translate(-50%,-50%) perspective(1100px) rotateY(0) rotateZ(8deg) scale(1.10)}34%{transform:translate(-50%,-50%) rotate(-5deg) scale(.97)}52%{transform:translate(-50%,-50%) rotate(3deg) scale(1.07)}67%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1.05)}83%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.07)}}
@keyframes revealFishV15{0%,72%{opacity:1}96%{opacity:.06}100%{opacity:0;visibility:hidden}}

/* V17 — accélération de la plongée : l'île monte et se dissout progressivement. */
.reunion-title{animation:islandDiveV17 5.6s cubic-bezier(.42,.04,.68,.95) both!important}
.sky{animation:skyDiveV17 9.25s cubic-bezier(.28,.07,.28,1) forwards!important}
@keyframes islandDiveV17{0%,22%{opacity:1;transform:translate(-50%,-50%) scale(1)}48%{opacity:.86;transform:translate(-50%,-78%) scale(1.09)}72%{opacity:.37;transform:translate(-50%,-118%) scale(1.18)}100%{opacity:0;transform:translate(-50%,-167%) scale(1.27)}}
@keyframes skyDiveV17{0%,20%{opacity:1;transform:translate3d(0,0,0) scale(1.05)}48%{opacity:.94;transform:translate3d(0,-15%,0) scale(1.47)}72%{opacity:.7;transform:translate3d(0,-28%,0) scale(1.95)}100%{opacity:0;transform:translate3d(0,-48%,0) scale(2.45)}}
.meet-slogan{animation:sloganV17 4.5s ease-out 6.05s both!important}
@keyframes sloganV17{0%{opacity:0;transform:translate(-50%,-50%) perspective(1100px) translateZ(-420px) rotateY(-65deg) scale(.62)}18%{opacity:1;transform:translate(-50%,-50%) rotate(8deg) scale(1.1)}35%{transform:translate(-50%,-50%) rotate(-5deg) scale(.97)}55%{opacity:1;transform:translate(-50%,-50%) rotate(3deg) scale(1.06)}72%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.05)}}
@media(prefers-reduced-motion:reduce){.reunion-title,.sky,.meet-slogan{animation:none!important}}

/* V18 : conserver le ciel pendant la véritable plongée, puis un fondu marin progressif. */
.sky{animation:skyDiveV18 9.25s cubic-bezier(.25,.1,.24,1) forwards!important}
.reunion-title{animation:islandDiveV18 5.9s cubic-bezier(.4,.08,.52,.94) both!important}
@keyframes skyDiveV18{0%,32%{opacity:1;transform:translate3d(0,0,0) scale(1.05)}55%{opacity:1;transform:translate3d(0,-12%,0) scale(1.32)}76%{opacity:1;transform:translate3d(0,-32%,0) scale(1.95)}91%{opacity:.55;transform:translate3d(0,-44%,0) scale(2.34)}100%{opacity:0;transform:translate3d(0,-52%,0) scale(2.5)}}
@keyframes islandDiveV18{0%,23%{opacity:1;transform:translate(-50%,-50%) scale(1)}52%{opacity:1;transform:translate(-50%,-80%) scale(1.07)}76%{opacity:.65;transform:translate(-50%,-125%) scale(1.14)}100%{opacity:0;transform:translate(-50%,-170%) scale(1.2)}}

/* V20: contraste progressif ciel clair / profondeur marine pour sentir la plongée. */
.sea-transition{background:linear-gradient(180deg,rgba(90,202,239,0) 0%,rgba(19,146,199,.17) 35%,rgba(0,88,146,.56) 75%,rgba(1,30,82,.8) 100%)!important;animation:waterDescentV20 8.4s ease-in-out 1.1s both!important;pointer-events:none}
@keyframes waterDescentV20{0%,17%{opacity:0}40%{opacity:.24}65%{opacity:.76}82%{opacity:.96}100%{opacity:0}}

/* V21 — profondeur bleue renforcée uniquement durant la chute. */
.sea-transition{background:linear-gradient(180deg,rgba(6,65,116,.08) 0%,rgba(5,70,130,.40) 28%,rgba(1,35,100,.78) 67%,rgba(0,17,59,.92) 100%)!important}
@keyframes waterDescentV20{0%,17%{opacity:0}40%{opacity:.42}65%{opacity:.95}82%{opacity:1}100%{opacity:0}}

/* V34 : sensation de chute légèrement accrue, même durée d'introduction. */
@keyframes skyDiveV18{0%,32%{opacity:1;transform:translate3d(0,0,0) scale(1.05)}55%{opacity:1;transform:translate3d(0,-17%,0) scale(1.42)}76%{opacity:1;transform:translate3d(0,-42%,0) scale(2.1)}91%{opacity:.55;transform:translate3d(0,-57%,0) scale(2.64)}100%{opacity:0;transform:translate3d(0,-66%,0) scale(2.85)}}

/* V35 : descente régulière sur le calque GPU, sans saut brutal d'échelle. */
.sky{backface-visibility:hidden;transform-origin:center center;will-change:transform,opacity;animation-timing-function:cubic-bezier(.38,.03,.18,1)!important}
.reunion-title{backface-visibility:hidden;will-change:transform,opacity;animation-timing-function:cubic-bezier(.38,.03,.22,1)!important}
@keyframes skyDiveV18{0%,30%{opacity:1;transform:translate3d(0,0,0) scale(1.05)}55%{opacity:1;transform:translate3d(0,-14%,0) scale(1.38)}76%{opacity:1;transform:translate3d(0,-36%,0) scale(1.98)}91%{opacity:.55;transform:translate3d(0,-53%,0) scale(2.43)}100%{opacity:0;transform:translate3d(0,-62%,0) scale(2.65)}}

/* V45 — travelling cinématographique : le ciel s'éloigne dans un seul mouvement
   continu, La Réunion reste solidaire de la caméra, puis l'océan se révèle.
   Le passage du paille-en-queue et l'animation finale du slogan sont conservés. */
.sky{
  transform-origin:50% 52%!important;
  animation:lagondexSkyFilm 8.0s linear both!important;
  will-change:transform,opacity;
}
.reunion-title{
  transform-origin:center center;
  animation:lagondexIslandFilm 7.1s linear both!important;
  will-change:transform,opacity;
}
.sea-transition{
  animation:lagondexWaterFilm 7.8s linear both!important;
  will-change:opacity;
}
/* Plusieurs positions alignées sur une courbe de progression sans changement
   brusque de vitesse. La mise à l'échelle crée la sensation de plongée ;
   le fondu final révèle directement la vidéo océanique déjà en lecture. */
@keyframes lagondexSkyFilm{
  0%,24%{opacity:1;transform:translate3d(0,0,0) scale(1.05)}
  36%{opacity:1;transform:translate3d(0,-3%,0) scale(1.13)}
  50%{opacity:1;transform:translate3d(0,-11%,0) scale(1.38)}
  64%{opacity:1;transform:translate3d(0,-23%,0) scale(1.76)}
  78%{opacity:.95;transform:translate3d(0,-39%,0) scale(2.22)}
  92%{opacity:0;transform:translate3d(0,-56%,0) scale(2.66)}
  100%{opacity:0;transform:translate3d(0,-65%,0) scale(2.85)}
}
@keyframes lagondexIslandFilm{
  0%,25%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1)}
  40%{opacity:1;transform:translate3d(-50%,-55%,0) scale(1.035)}
  55%{opacity:1;transform:translate3d(-50%,-70%,0) scale(1.10)}
  70%{opacity:.94;transform:translate3d(-50%,-98%,0) scale(1.20)}
  86%{opacity:.36;transform:translate3d(-50%,-137%,0) scale(1.32)}
  100%{opacity:0;transform:translate3d(-50%,-174%,0) scale(1.44)}
}
@keyframes lagondexWaterFilm{
  0%,32%{opacity:0}
  48%{opacity:.16}
  64%{opacity:.54}
  78%{opacity:.75}
  92%,100%{opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .sky,.reunion-title,.sea-transition{animation:none!important;opacity:0!important}
}

/* V46 — chute franche : 2,8 s de mise en place, puis accélération
   vers les profondeurs (environ 3 s). Ciel et île suivent le même mouvement. */
.sky{
  animation:lagondexFastDive 6.12s linear both!important;
  transform-origin:50% 53%!important;
}
.reunion-title{
  animation:lagondexFastIsland 6.12s linear both!important;
}
/* Colorimétrie continue du bleu du ciel au bleu profond, sans écran opaque. */
.sea-transition{
  z-index:4;
  inset:0!important;
  background:linear-gradient(180deg,rgba(104,203,240,.05) 0%,rgba(19,130,188,.36) 34%,rgba(2,58,120,.84) 72%,rgba(0,18,62,.98) 100%)!important;
  animation:lagondexFastWater 6.25s linear both!important;
}
/* Éviter l'ancien rideau qui faisait remonter une seconde couche. */
.boot::after{animation:none!important;opacity:0!important}
.cloud-haze{animation:lagondexFastHaze 5.85s linear both!important}
@keyframes lagondexFastDive{
  0%,43%{opacity:1;transform:translate3d(0,0,0) scale(1.05)}
  51%{opacity:1;transform:translate3d(0,-7%,0) scale(1.27)}
  63%{opacity:1;transform:translate3d(0,-25%,0) scale(1.85)}
  76%{opacity:1;transform:translate3d(0,-54%,0) scale(2.75)}
  87%{opacity:.74;transform:translate3d(0,-85%,0) scale(3.75)}
  100%{opacity:0;transform:translate3d(0,-110%,0) scale(4.55)}
}
@keyframes lagondexFastIsland{
  0%,43%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1)}
  51%{opacity:1;transform:translate3d(-50%,-60%,0) scale(1.04)}
  63%{opacity:1;transform:translate3d(-50%,-86%,0) scale(1.13)}
  76%{opacity:.87;transform:translate3d(-50%,-132%,0) scale(1.28)}
  87%{opacity:.36;transform:translate3d(-50%,-184%,0) scale(1.47)}
  100%{opacity:0;transform:translate3d(-50%,-225%,0) scale(1.62)}
}
@keyframes lagondexFastWater{
  0%,43%{opacity:0}
  54%{opacity:.15}
  69%{opacity:.48}
  82%{opacity:.9}
  91%{opacity:.62}
  100%{opacity:0}
}
@keyframes lagondexFastHaze{0%,42%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){
  .sky,.reunion-title,.sea-transition,.cloud-haze{animation:none!important;opacity:0!important}
}
