/* Police pour tout le site */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap');

:root {
  --container: 1200px;
  --side-padding: 6vw;
}

body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  font-family: "Space Grotesk", sans-serif;
  background: #fff;
  color: #111;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
}

:root {
  --container: 1200px;
  --side-padding: 6vw;
}
:host, :root {
  --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
}
:host, :root {
  --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
}
:host, :root {
  --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";
}

.cursor {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: black;
  position: fixed;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: transform 0.1s ease;
}

/* Style du header */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(5px);
  z-index: 9999;
  transform: none !important;
  border-bottom: 1px solid #eee;
  padding: 1.5vw 0vw;
    transition: transform 0.4s ease, background 0.4s ease;
  animation: headerIn 0.8s ease forwards;
}
/* 
@keyframes headerIn {
 from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.site-header.hide {
  transform: translateY(-100%);
}*/

.header-content {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--side-padding);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.site-title {
  width: 100%;
  margin: 0;
  font-family: "Space Grotesk", sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  color: #000;
  letter-spacing: 7px;
  transition: letter-spacing 0.4s ease;
}

.site-title:hover {
  letter-spacing: 10px;
}

.site-title a {
  color: inherit;
  text-decoration: none;
}

/* Menu hamburger (masqué par défaut sur desktop) */
.hamburger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
  z-index: 1001;
}

.hamburger span {
  display: block;
  width: 25px;
  height: 3px;
  background: #000;
  margin: 5px 0;
  transition: all 0.3s ease;
}

/* Navigation sur desktop */
  .header-nav {
  display: flex;
  align-items: center;
  gap: 100px;
  justify-content: space-evenly;
  width: 75%;
}

.nav-link {
  font-family: 'Sora', sans-serif;
  color: #000;
  text-decoration: none;
  font-weight: 500;
    position: relative;
  transition: color 0.3s ease;
  letter-spacing: 6px;
}

.nav-link:hover {
  color: #666;
}

.nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0%;
  height: 1px;
  background: black;
  transition: width 0.3s ease;
}

.nav-link:hover::after {
  width: 100%;
}

.social-icons a {
  color: #000;
  font-size: 1.2rem;
  transition: color 0.3s;
  padding: 5px;
}

.social-icons a:hover {
  color: #666;
}

/* Styles pour mobile */
@media (max-width: 768px) {
  .header-content {
    padding: 0 10px;
  }

  /* Affiche le menu hamburger */
  .hamburger {
    display: block;
  }

  /* Masque la navigation par défaut */
  .header-nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 40%;
    max-width: 300px;
    height: 100vh;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(5px);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 80px 20px 20px;
    gap: 20px;
    transition: right 0.3s ease;
    z-index: 1000;
    box-shadow: -5px 0 10px rgba(0, 0, 0, 0.1);
  }

  /* Affiche le menu quand la classe "active" est ajoutée */
  .header-nav.active {
    right: 0;
  }

  /* Style des liens en mobile */
  .nav-link {
    font-size: 1.5rem;
    letter-spacing: 2px;
  }

  /* Style des icônes sociales en mobile */
  .social-icons {
    display: flex;
    gap: 15px;
    margin-top: 30px;
  }

  .social-icons a {
    font-size: 1.5rem;
  }

  /* Animation du menu hamburger */
  .hamburger.active span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
  }

  .hamburger.active span:nth-child(2) {
    opacity: 0;
  }

  .hamburger.active span:nth-child(3) {
    transform: rotate(-45deg) translate(7px, -6px);
  }
  }

/* GALERIE GRID */

.header-nav,
.index .gallery,
.page {
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--side-padding);
  padding-right: var(--side-padding);
}

/* =========================
   INDEX GRID
========================= */
.index .gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6vw;
  margin-top: 100px;
}

/* =========================
   ITEMS (IMPORTANT: JS CONTROLLED)
========================= */
.index .item {
  position: relative;
  will-change: transform;
  transition: box-shadow 0.4s ease;
  opacity: 1;
}

/* =========================
   IMAGES
========================= */
.index .item img {
  width: 100%;
  display: block;
  will-change: transform;
  box-shadow: 0 20px 50px rgba(0,0,0,0.12);
  border-radius: 4px;
  transition: transform 0.4s ease, filter 0.4s ease;
}

/* =========================
   HOVER IMAGE (SAFE)
========================= */
.index .item:hover img {
  transform: scale(1.05);
  filter: brightness(0.9);
}

/* =========================
   OVERLAY EFFECT
========================= */
.index .item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(255,255,255,0.15), transparent);
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
}

.index .item:hover::after {
  opacity: 1;
}

/* =========================
   PAGE GRID
========================= */
.page .gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6vw;
  padding: 0;
}

/* =========================
   GLOBAL IMAGE HOVER (OPTIONAL CLEANUP)
   -> IMPORTANT: no transform conflict with JS
========================= */
/*
.item:hover img {
  transform: scale(1.05);
  box-shadow: 0 25px 50px rgba(0,0,0,0.25);
}
*/

/* =========================
   3D CONTEXT (OPTIONAL)
========================= */
.index .gallery {
  transform-style: preserve-3d;
}
/* -------Page-----------


/* PAGE EMERGE CENTRE */

@keyframes pageReveal{

0%{
opacity:0;
transform:scale(.92);
}

100%{
opacity:1;
transform:scale(1);
}
}

/* STRUCTURE */

.page {
  max-width: var(--container);
  margin: 0 auto;
  padding: 10vh var(--side-padding);
}

/* HEADER */

.header-inner{
max-width:1200px;
margin:auto;
padding:40px;
display:flex;
justify-content:space-around;
align-items:center;
}

.name{
letter-spacing:3px;
font-size:14px;
font-weight:500;
}

.home{
text-decoration:none;
color:black;
letter-spacing:3px;
font-size:14px;
}

/* HERO */

.hero img{
width:100%;
display:block;
margin-bottom: 30px;
}


/*----------PAGE----------*/
/* INTRO */

.intro{
display:grid;
grid-template-columns:1fr 1fr;
gap:40px;
margin: 40px 0px;
}


.intro-left h1{
margin:0;
font-size:28px;
font-weight:500;
line-height: 1.2;
}

.intro-left h2{
margin:0;
font-weight:300;
font-size:16px;
}

.intro-right{
  display:none;
  height: 0px;
}

.intro-right p{
font-size:14px;
line-height:1.6;
max-width:420px;
}

/* GALERIE */
.gallery{
display:grid;
grid-template-columns:1fr 1fr;
gap:40px;
margin-top: 50px;
}

.gallery img{
width:100%;
display:block;
transition:transform .7s cubic-bezier(.25,.8,.25,1);
}

.HOMO {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 50px;
}

.item {
/*  padding: 20px;*/
  border-radius: 8px;
  text-align: center;
}
/*
.left{
  margin-left: 30px;
}

.left40{
  margin-left: 40px;
}

.left50{
  margin-left: 50px;
}*/

.size50{
  width: 50%;
  display: block;
  margin-bottom: 30px;}

.site{
  display: block;
    color: black;
}  

.black{
  color: black;
} 

/* HOVER */

.gallery img:hover{
transform:scale(1.04);
}

/* ANIMATION APPARITION */

.reveal {
  opacity: 0;
  transform: translateY(50px);
  filter: blur(6px);
  transition: all 1s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/*----------BIO----------*/
.bio-intro{
display:grid;
grid-template-columns:200px 1fr;
gap:40px;
margin:60px 0;
align-items:start;
}

.bio-photo img{
display:block;
}

.bio-text{
font-size: 3em;
  line-height: 1;
  color: black;
  width: 100%;
  margin: 0px 20px;
}

.bio-text a{
  color: black;
}

.bio-photo{
  margin-top: 50px;
}

.bio-experiences{
margin: 80px 0px;
}

.bio-experiences h2{
font-size:18px;
margin-bottom:20px;
}

.bio-experiences ul{
list-style:none;
padding:0;
margin:0;
}

.bio-experiences li{
margin-bottom:12px;
font-size:14px;
}

.bio-experiences a{
text-decoration:none;
border-bottom:1px solid black;
color:black;
}

/*----------MOBILE----------*/

@media(max-width:800px){

html, body {
  max-width: 100%;
  overflow-x: hidden;
}

body, html, .page {
  overflow: visible;
  height: auto;
}


.site-header {
  padding: 15px 0;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
  }

.header-content {
  padding: 0 var(--side-padding);
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
}

.header-nav {
position: fixed;
inset: 0;
width: 100%;
height: 100vh;

backdrop-filter: blur(18px);

display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 25px;

transform: translateY(-100%);
opacity: 0;
transition: all 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
z-index: 999;

background: radial-gradient(
  circle at top,
  rgba(255,255,255,0.95),
  rgba(245,245,245,0.9)
);
box-sizing: border-box;
}

.header-nav.active {
  transform: translateY(0);
  opacity: 1;
}

.header-nav.active .nav-link:nth-child(1) { transition-delay: 0.1s; }
.header-nav.active .nav-link:nth-child(2) { transition-delay: 0.2s; }
.header-nav.active .nav-link:nth-child(3) { transition-delay: 0.3s; }
.header-nav.active .nav-link:nth-child(4) { transition-delay: 0.4s; }

.nav-link {
  font-size: 2rem;
  letter-spacing: 3px;
  font-weight: 500;
  position: relative;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.4s ease;
  text-align: center;
}

.header-nav.active .nav-link {
  opacity: 1;
  transform: translateY(0);
}

.nav-link::after {
  display: none;
}

.hamburger span {
  width: 28px;
  height: 2px;
  background: #000;
  margin: 6px 0;
  transition: all 0.4s ease;
}

.bio-intro{
grid-template-columns:1fr;
}

.bio-photo{
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  text-align: center;
}

.bio-photo img {
  display: block;
  width: 250px;
  margin-left: auto;
  margin-right: auto;
}

.bio-text{
font-size: 2.2em;
line-height: 1;
color: black;
width: 100%;
margin: 0;
}

.page {
  padding: 90px 20px;
}

.header-inner{
padding:20px;
}

.intro{
grid-template-columns:1fr;
}

.social-icons a {
  padding: 0px;
}

/* GALERIE MOBILE 1 COLONNE */

.fixed-name a {
  font-size: 7vw;
}

.index .gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4vw;
  padding: 20px;
  margin-top: 65px;
  overflow: visible;
  min-height: auto;
}

.index .item {
  margin-top: 20px;
}

.gallery .item img.mobile-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

.gallery .item img {
  opacity: 0;
  transform: translateY(15px);
}

.page .gallery {
  display: grid;
  grid-template-columns: 1fr;
  column-gap: 6vw;
  padding: 0;
}

.left,
.left40,
.left50 {
  margin-left: 10px;
}

.HOMO {
  display: grid;
  grid-template-columns: 1fr;
}
}