/* =========================================================
   MARIE SPARKLE — HOME
   =========================================================

   Reference artboards:

   Desktop: 1536 × 864
   Tablet:  1536 × 1152
   Mobile:   708 × 1536

   Los SVG conservan el tamaño completo de sus respectivas
   mesas de trabajo y se superponen al fondo al 100%.

   ========================================================= */


/* =========================================================
   RESET
   ========================================================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

html {
  background-color: #10071f;
}

body {
  overflow: hidden;
  background-color: #10071f;

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  text-rendering: optimizeLegibility;
}

img {
  display: block;
}


/* =========================================================
   MAIN HOME CONTAINER
   ========================================================= */

.home {
  position: relative;

  width: 100%;
  height: 100vh;
  height: 100svh;

  overflow: hidden;
  isolation: isolate;

  background-color: #10071f;
}


/* =========================================================
   RESPONSIVE BACKGROUND
   ========================================================= */

.home__background {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  z-index: 0;
}

.home__background img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}


/* =========================================================
   CONTENT LAYERS
   ========================================================= */

.home__content {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  z-index: 1;

  overflow: hidden;
  pointer-events: none;
}


/*
   Cada SVG contiene el lienzo completo y la posición exacta
   del elemento. Por eso los tres deben cubrir toda la ventana.
*/

.home__marie,
.home__sparkle,
.home__slogan {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;

  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
}


/* =========================================================
   DESKTOP
   ========================================================= */

.home__content--desktop {
  display: block;
}

.home__content--tablet,
.home__content--mobile {
  display: none;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (min-width: 768px) and (max-width: 1199px) {

  .home__content--desktop,
  .home__content--mobile {
    display: none;
  }

  .home__content--tablet {
    display: block;
  }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 767px) {

  .home__content--desktop,
  .home__content--tablet {
    display: none;
  }

  .home__content--mobile {
    display: block;
  }

}


/* =========================================================
   ENTRANCE ANIMATIONS
   OPACITY ONLY — NO SIZE OR POSITION CHANGES
   ========================================================= */

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}


/* Initial state */

.home__background,
.home__marie,
.home__sparkle,
.home__slogan {
  opacity: 0;
}


/* Background */

.home__background {
  animation-name: fadeIn;
  animation-duration: 1.2s;
  animation-timing-function: ease-out;
  animation-delay: 0s;
  animation-fill-mode: forwards;
}


/* Marie */

.home__marie {
  animation-name: fadeIn;
  animation-duration: 0.9s;
  animation-timing-function: ease-out;
  animation-delay: 0.35s;
  animation-fill-mode: forwards;
}


/* Sparkle */

.home__sparkle {
  animation-name: fadeIn;
  animation-duration: 0.9s;
  animation-timing-function: ease-out;
  animation-delay: 0.7s;
  animation-fill-mode: forwards;
}


/* Luxury Home Care */

.home__slogan {
  animation-name: fadeIn;
  animation-duration: 0.9s;
  animation-timing-function: ease-out;
  animation-delay: 1.05s;
  animation-fill-mode: forwards;
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .home__background,
  .home__marie,
  .home__sparkle,
  .home__slogan {
    opacity: 1;
    animation: none;
  }

}