@font-face {
  font-family: "Symphony Pro";
  src: url("typo/symphony-pro-regular.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "Sanchez";
  src: url("typo/Sanchez-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "Sanchez";
  src: url("typo/Sanchez-Italic.ttf") format("truetype");
  font-weight: normal;
  font-style: italic;
}

/* ── Reset & Base ── */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
  background-color: #9db9c3;
  font-family: "Sanchez", serif;
  color: #301c0d;
  overflow: hidden;
  scrollbar-gutter: stable;
}

/* ── Icône maison ── */
.home-link {
  position: fixed;
  top: 50px;
  right: 50px;
  z-index: 10;
  transition: opacity 0.3s ease;
  text-decoration: none;
  opacity: 0.8;
}

.home-link:hover {
  opacity: 0.5;
}

.home-icon {
  height: 25px;
  display: block;
}

/* ── Variables grille ── */
:root {
  --marge: 50px;
  --gutter: 20px;
  --col: calc((100vw - var(--marge) * 2 - var(--gutter) * 11) / 12);
}

/* ── Page Container ── */
.page {
  width: 100%;
  height: 100vh;
  position: relative;
  overflow: hidden;
}

.description a {
  color: #301c0d;
  text-decoration: underline;
}

.description {
  position: absolute;
  bottom: var(--marge);
  left: var(--marge);
  width: calc(var(--col) * 6 + var(--gutter) * 4);
  font-family: "Sanchez", serif;
  font-weight: normal;
  font-size: 17px;
  line-height: 1.15;
  color: #301c0d;
  text-align: left;
  z-index: 3;
  font-synthesis: none;
}

/* ── Grande photo (haut droite) ── */
.portrait-grand {
  position: absolute;
  bottom: 50px;
  right: calc(var(--marge) + var(--col) * 1 + var(--gutter) * 1);
  width: 35vw;
  height: auto;
}

/* ── Petite photo (superposée devant, centre-bas) ── */
.portrait-petit {
  position: absolute;
  bottom: 15px;
  left: 75%; /* légèrement décalé à gauche de la grande photo */
  transform: translateX(-80%);
  height: 100vh;
  width: auto;
  z-index: 2; /* devant la grande photo */
}

/* ── Animations ── */
@keyframes fadeUp {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeLeft {
  0% {
    opacity: 0;
    transform: translateX(50px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

/* ── Responsive (Mobile) ── */
@media (max-width: 900px) {
  .content-wrapper {
    flex-direction: column;
    gap: 40px;
    text-align: center;
  }

  .description {
    max-width: 100%;
    text-align: center;
    padding-right: 0;
  }

  .portrait {
    max-width: 300px;
  }

  .page {
    padding: 60px 20px;
  }
}
