.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  width: 100%;
  border-radius: 2.5rem;
  padding: 0.8rem;
  font-size: 1rem;
  font-weight: bold;
  transition: all 0.2s ease;
  cursor: pointer;
}
@media (min-width: 769px) {
  .btn {
    width: auto;
  }
}
.btn--primary {
  background: #D386A4;
  border: 2px solid #D386A4;
  color: #fff;
}
.btn--primary:hover {
  background: #cf7b9c;
  border-color: #cf7b9c;
}
.btn--secondary {
  background: transparent;
  border: 2px solid #D386A4;
  color: #D386A4;
}
.btn--secondary:hover {
  background: #D386A4;
  color: #fff;
}

#logo-banner {
  left: 50%;
  bottom: -3rem;
  filter: drop-shadow(5px 2px 27px #858585);
  transform: translateX(-50%);
  z-index: 1;
}
#logo-banner.reveal {
  transform: translate(-50%, 150px);
  animation-name: revealLogoBanner;
}

.bg-vichy {
  background-color: white;
  background-size: 150px 150px;
  background-image: linear-gradient(90deg, rgba(241, 227, 255, 0.5) 75px, transparent 75px), linear-gradient(rgba(241, 227, 255, 0.5) 75px, transparent 75px);
}

.bg-dots {
  background-image: radial-gradient(circle at center, white 0.25rem, transparent 0), radial-gradient(circle at center, white 0.25rem, transparent 0);
  background-size: 8rem 8rem, 8rem 8rem;
  background-position: 0 0, 4rem 4rem;
}

.bg-heart-dots {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256' viewBox='0 0 256 256'%3E%3Cpath fill='rgba(255, 255, 255, 0.7)' d='M128 140s-10-6-10-14a6 6 0 0 1 10-4a6 6 0 0 1 10 4c0 8-10 14-10 14z'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256' viewBox='0 0 256 256'%3E%3Cpath fill='rgba(255, 255, 255, 0.7)' d='M128 140s-10-6-10-14a6 6 0 0 1 10-4a6 6 0 0 1 10 4c0 8-10 14-10 14z'/%3E%3C/svg%3E");
  background-repeat: repeat, repeat;
  background-size: 14rem 14rem, 14rem 14rem;
  background-position: 0 0, 7rem 7rem;
}

.bottom-frill {
  -webkit-mask: radial-gradient(40px at 50% 100%, rgba(0, 0, 0, 0) 98%, red) 50%/64.75px 100%;
}

.wave-container {
  position: relative;
  height: 2rem;
  background: transparent;
  min-height: 1rem;
}
.wave-container::before {
  content: "";
  width: 100%;
  height: 2rem;
  position: absolute;
  bottom: -0.3%;
  left: 0;
  background-size: auto;
  background-repeat: repeat no-repeat;
  background-position: 50vw bottom;
  background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 1200 80' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M0 59L50 55C100 51 200 44 300 30C400 15 500 -6 600 1C700 8 800 44 900 59C1000 73 1100 66 1150 62L1200 59V80H1150C1100 80 1000 80 900 80C800 80 700 80 600 80C500 80 400 80 300 80C200 80 100 80 50 80H0V59Z' fill='%23F1E3FF'/></svg>");
  transform: translateY(1px);
}
@media (min-width: 1024px) {
  .wave-container::before {
    height: 6rem;
  }
}

.sparkle {
  display: inline-block;
  background-repeat: no-repeat;
  animation: floatSparkle 4s ease-in-out infinite;
}
.sparkle:nth-child(2) {
  animation-delay: 0.7s;
}
.sparkle:nth-child(3) {
  animation-delay: 1s;
}

.appear {
  opacity: 0;
  animation: revealItem 0.8s ease 0.2s forwards;
}

.reveal {
  opacity: 0;
  transform: translateY(150px);
  animation: revealItem 0.6s ease 0.2s forwards;
}

.heart-mask {
  background: white;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 29.6'%3E%3Cpath fill='black' d='M23.6,0c-3.4,0-6.4,2-7.6,5.1C14.8,2,11.8,0,8.4,0C3.8,0,0,3.8,0,8.4c0,9.4,16,21.2,16,21.2s16-11.8,16-21.2C32,3.8,28.2,0,23.6,0z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 29.6'%3E%3Cpath fill='black' d='M23.6,0c-3.4,0-6.4,2-7.6,5.1C14.8,2,11.8,0,8.4,0C3.8,0,0,3.8,0,8.4c0,9.4,16,21.2,16,21.2s16-11.8,16-21.2C32,3.8,28.2,0,23.6,0z'/%3E%3C/svg%3E") center/contain no-repeat;
}

@keyframes heartbeat116 {
  0%, 100% {
    width: 100%;
  }
  50% {
    width: 60%;
  }
}
@keyframes floatSparkle {
  0% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-4px) scale(1.05);
  }
  100% {
    transform: translateY(0) scale(1);
  }
}
@keyframes revealItem {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes revealLogoBanner {
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}
html {
  font-family: Raleway, sans-serif;
}
html body h1.secondary, html body h2.secondary, html body h3.secondary {
  font-family: Sacramento, sans-serif;
}
html body h2 {
  font-size: 3rem;
  line-height: 3rem;
}
@media (min-width: 1200px) {
  html body h2 {
    font-size: 4rem;
  }
}
html body dialog h2 {
  font-size: 1.5rem;
}
html body h3 {
  font-size: 2.8rem;
  line-height: 2.8rem;
}
@media (min-width: 1200px) {
  html body h3 {
    font-size: 3.3rem;
  }
}
html body > section a:not(.btn) {
  display: inline-block;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  transition: opacity 0.2s ease;
}
html body > section a:not(.btn):hover, html body > section a:not(.btn):visited {
  text-decoration: underline;
}
html body > section a:not(.btn):hover {
  opacity: 0.8;
}
html body header {
  transition: background 0.3s ease;
}
html body header .header__logo {
  transition: opacity 0.3s ease;
}
html body header .header__logo--name {
  opacity: 1;
  visibility: visible;
}
html body header .header__logo--draw {
  opacity: 0;
  position: absolute;
  inset: 0;
  left: 50%;
  transform: translateX(-50%);
  max-width: 60px;
}
@media (min-width: 1024px) {
  html body header .header__logo--draw {
    max-width: 80px;
    left: 0;
    transform: none;
    transform: translateY(-10%);
  }
}
html body header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0;
  transition: opacity 300ms ease;
  background: white;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1490196078));
}
html body header.is-scrolled::before {
  opacity: 1;
}
html body header.is-scrolled .header__logo--name {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
html body header.is-scrolled .header__logo--draw {
  opacity: 1;
}
html body header nav a {
  text-decoration: none;
  position: relative;
  overflow: hidden;
  margin: 0 20px;
  transition: text-shadow 0.3s ease;
}
html body header nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  height: 2px;
  background-color: #D386A4;
  width: 0;
  transition: width 0.3s ease;
}
html body header nav a:hover::after {
  width: 100%;
  animation: heartbeat116 1.5s ease-in-out 0.3s infinite;
}
html body header .header__burger {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.25rem;
  color: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
}
html body header .header__burger .icon-close {
  display: none;
}
html body header .header__burger.is-active .icon-open {
  display: none;
}
html body header .header__burger.is-active .icon-close {
  display: block;
}
html body header .header__menu {
  display: none;
}
@media (min-width: 1024px) {
  html body header .header__menu {
    display: block;
  }
}
html body header .header__menu.is-open {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: fixed;
  inset: 0;
  z-index: 100;
  background: white;
  animation: menuFadeIn 0.25s ease;
}
html body header .header__menu.is-open nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.5rem;
}
html body header .header__menu.is-open nav a {
  font-size: 2rem;
  margin: 0;
}
html body.menu-open {
  overflow: hidden;
}
html body.menu-open header .header__logo, html body.menu-open header button {
  z-index: 200;
}
@media (min-width: 1024px) {
  html body:not(.menu-open) header .header__burger {
    display: none;
  }
}
html body dialog {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease-out;
}
html body dialog:open {
  opacity: 1;
  visibility: visible;
}

@keyframes menuFadeIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/*# sourceMappingURL=layout-207b877e13.output.css.map */
