:root {
  --rose: #e98ba7;
  --rose-dark: #c76886;
  --pink-soft: #fdebf1;
  --cream: #fffaf7;
  --ink: #2d2427;
  --muted: #75686c;
  --line: rgba(199, 104, 134, .22);
  --shadow: 0 24px 60px rgba(120, 67, 83, .16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, system-ui, sans-serif;
  color: var(--ink);
  background: linear-gradient(180deg, #fff 0%, var(--cream) 65%, #fff3f7 100%);
  overflow-x: hidden;
}
body.locked { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }


.intro {
  position: fixed; inset: 0; z-index: 1000;
  display: grid; place-content: center; text-align: center;
  background: radial-gradient(circle at center, #fff 0%, #fdebf1 62%, #f5cad7 100%);
  overflow: hidden;
  transition: opacity .85s ease, visibility .85s ease, filter .85s ease;
}
.intro.hidden { opacity: 0; visibility: hidden; pointer-events: none; filter: blur(6px); }
.intro-center { position: relative; min-width: min(760px, 90vw); padding: 40px 20px; }
.intro-name {
  font: 400 clamp(4rem, 12vw, 9rem)/1 Parisienne, cursive;
  color: var(--rose-dark);
  display: flex; justify-content: center; gap: .01em;
}
.intro-name span {
  opacity: 0; transform: translateY(28px) scale(.92); filter: blur(6px);
  animation: introLetter .55s forwards cubic-bezier(.2,.8,.2,1);
  text-shadow: 0 10px 35px rgba(199,104,134,.16);
}
.intro-name span:nth-child(1){animation-delay:.15s}.intro-name span:nth-child(2){animation-delay:.27s}.intro-name span:nth-child(3){animation-delay:.39s}.intro-name span:nth-child(4){animation-delay:.51s}.intro-name span:nth-child(5){animation-delay:.63s}.intro-name span:nth-child(6){animation-delay:.75s}.intro-name span:nth-child(7){animation-delay:.87s}.intro-name span:nth-child(8){animation-delay:.99s}
.intro-flower { font-size: 2rem; color: var(--rose); opacity: 0; animation: bloom .8s .05s forwards; }
.intro-line { width: 0; height: 1px; margin: 20px auto 0; background: linear-gradient(90deg,transparent,var(--rose),transparent); animation: lineGrow 1s 1.05s forwards; }
.intro-butterfly { position:absolute; font-size:2rem; opacity:0; filter:drop-shadow(0 8px 14px rgba(201,104,134,.25)); }
.intro-butterfly-left { left: 18%; top: 34%; animation: introFlyLeft 2.2s .65s ease-in-out forwards; }
.intro-butterfly-right { right: 18%; top: 54%; animation: introFlyRight 2.2s .78s ease-in-out forwards; }
.intro-petals { position:absolute; inset:0; pointer-events:none; }
.intro-petals span { position:absolute; font-size:clamp(1rem,2vw,1.8rem); opacity:0; color:#f5a9bf; }
.intro-petals-left span:nth-child(1){left:5%;top:18%;animation:petalGatherLeft 2.7s .05s forwards}
.intro-petals-left span:nth-child(2){left:13%;top:42%;animation:petalGatherLeft 2.8s .18s forwards}
.intro-petals-left span:nth-child(3){left:7%;top:69%;animation:petalGatherLeft 2.65s .28s forwards}
.intro-petals-left span:nth-child(4){left:22%;top:12%;animation:petalGatherLeft 2.75s .36s forwards}
.intro-petals-left span:nth-child(5){left:19%;top:78%;animation:petalGatherLeft 2.8s .46s forwards}
.intro-petals-right span:nth-child(1){right:6%;top:20%;animation:petalGatherRight 2.75s .08s forwards}
.intro-petals-right span:nth-child(2){right:14%;top:45%;animation:petalGatherRight 2.7s .2s forwards}
.intro-petals-right span:nth-child(3){right:8%;top:70%;animation:petalGatherRight 2.85s .31s forwards}
.intro-petals-right span:nth-child(4){right:23%;top:14%;animation:petalGatherRight 2.7s .4s forwards}
.intro-petals-right span:nth-child(5){right:20%;top:80%;animation:petalGatherRight 2.8s .5s forwards}
.intro.wind .intro-petals-left span { animation: windLeft .9s ease-in forwards !important; }
.intro.wind .intro-petals-right span { animation: windRight .9s ease-in forwards !important; }
.intro.wind .intro-center { animation: centerReveal .8s ease forwards; }
@keyframes introLetter { to { opacity:1; transform:none; filter:blur(0); } }
@keyframes bloom { to { opacity:1; transform:rotate(180deg) scale(1.08); } }
@keyframes lineGrow { to { width:220px; } }
@keyframes introFlyLeft { 0%{opacity:0;transform:translate(-90px,40px) rotate(-18deg)} 35%{opacity:.95} 100%{opacity:.9;transform:translate(70px,-28px) rotate(12deg)} }
@keyframes introFlyRight { 0%{opacity:0;transform:translate(90px,-30px) rotate(16deg)} 35%{opacity:.95} 100%{opacity:.9;transform:translate(-70px,24px) rotate(-10deg)} }
@keyframes petalGatherLeft { 0%{opacity:0;transform:translate(-30px,-10px) rotate(0)} 30%{opacity:.9} 75%{opacity:.9;transform:translate(80px,20px) rotate(220deg)} 100%{opacity:.8;transform:translate(130px,10px) rotate(300deg)} }
@keyframes petalGatherRight { 0%{opacity:0;transform:translate(30px,10px) rotate(0)} 30%{opacity:.9} 75%{opacity:.9;transform:translate(-80px,-15px) rotate(-220deg)} 100%{opacity:.8;transform:translate(-130px,-8px) rotate(-300deg)} }
@keyframes windLeft { to { opacity:0; transform:translate(-55vw,-12vh) rotate(-720deg) scale(.6); } }
@keyframes windRight { to { opacity:0; transform:translate(55vw,12vh) rotate(720deg) scale(.6); } }
@keyframes centerReveal { to { opacity:0; transform:scale(1.04); filter:blur(5px); } }

.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  height: 78px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 clamp(20px, 5vw, 72px);
  background: rgba(255,255,255,.76); backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255,255,255,.55);
}
.brand { font: 400 2.1rem Parisienne, cursive; color: var(--rose-dark); }
.brand span { font-family: Inter, sans-serif; font-size: 1rem; margin-left: 6px; }
.nav-links { display: flex; gap: 34px; font-size: .84rem; text-transform: uppercase; letter-spacing: .12em; }
.nav-links a { position: relative; padding: 10px 0; }
.nav-links a::after { content:""; position:absolute; left:0; bottom:4px; width:0; height:1px; background:var(--rose-dark); transition:.25s; }
.nav-links a:hover::after { width:100%; }
.menu-toggle { display:none; border:0; background:transparent; font-size:1.5rem; }

.hero { min-height: 100vh; position: relative; display:grid; align-items:center; overflow:hidden; }
.hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 38%; transform:scale(1.02); animation:heroBreath 10s ease-in-out infinite alternate; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg, rgba(255,250,247,.98) 0%, rgba(255,246,249,.88) 35%, rgba(255,255,255,.12) 70%, rgba(255,255,255,.02) 100%); }
@keyframes heroBreath { to { transform:scale(1.055) translate3d(0,-6px,0); } }
.hero-content { position:relative; z-index:2; width:min(610px, 84vw); margin-left:clamp(25px, 8vw, 150px); padding-top:80px; }
.eyebrow { text-transform:uppercase; letter-spacing:.24em; font-size:.78rem; color:var(--rose-dark); font-weight:600; }
.hero h1 { margin:.1em 0 .05em; font:400 clamp(5rem, 11vw, 10rem)/.86 Parisienne,cursive; color:var(--rose-dark); }
.hero-text { font:500 clamp(1.35rem, 2.2vw, 2rem)/1.35 "Cormorant Garamond",serif; max-width:520px; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:30px; }
.btn { padding:15px 22px; border-radius:999px; font-size:.83rem; letter-spacing:.04em; transition:.25s; }
.btn-primary { background:var(--rose); color:white; box-shadow:0 14px 28px rgba(233,139,167,.32); }
.btn-secondary { border:1px solid var(--rose); color:var(--rose-dark); background:rgba(255,255,255,.68); }
.btn:hover { transform:translateY(-3px); }
.scroll-hint { position:absolute; z-index:3; bottom:26px; left:50%; font-size:2.2rem; color:var(--rose-dark); animation:bounce 1.8s infinite; }
@keyframes bounce { 50% { transform:translateY(7px); } }
.flower-corner { position:absolute; z-index:2; color:rgba(233,139,167,.55); font-size:clamp(4rem,8vw,8rem); }
.flower-top { left:-20px; top:80px; transform:rotate(-20deg); }
.flower-bottom { right:4vw; bottom:6vh; transform:rotate(18deg); }

.butterfly { position:fixed; z-index:20; pointer-events:none; font-size:2rem; filter:drop-shadow(0 8px 12px rgba(201,104,134,.25)); opacity:.75; }
.butterfly-one { left:7vw; top:25vh; animation:flyOne 16s ease-in-out infinite; }
.butterfly-two { right:5vw; top:58vh; animation:flyTwo 19s ease-in-out infinite; }
@keyframes flyOne { 0%,100%{transform:translate(0,0) rotate(-8deg)} 50%{transform:translate(55px,-45px) rotate(10deg)} }
@keyframes flyTwo { 0%,100%{transform:translate(0,0) scale(.8)} 50%{transform:translate(-70px,35px) scale(1)} }

.section { padding:clamp(70px,9vw,130px) clamp(20px,5vw,80px); }
.section-heading { text-align:center; margin-bottom:45px; }
.section-heading span { color:var(--rose-dark); text-transform:uppercase; letter-spacing:.22em; font-size:.75rem; }
.section-heading h2 { margin:8px 0; font:600 clamp(2.8rem,5vw,4.7rem)/1 "Cormorant Garamond",serif; }
.section-heading p { color:var(--muted); }
.gallery-section { background:linear-gradient(180deg,#fff 0%,#fff7fa 100%); }
.gallery-grid { max-width:1280px; margin:auto; display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:230px; gap:16px; }
.gallery-card { border:0; padding:0; border-radius:22px; overflow:hidden; cursor:pointer; background:#f7dbe5; box-shadow:0 10px 28px rgba(90,55,66,.10); position:relative; }
.gallery-card.tall { grid-row:span 2; }
.gallery-card.wide { grid-column:span 2; }
.gallery-card img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease, filter .55s ease; }
.gallery-card::after { content:"Voir"; position:absolute; inset:auto 14px 14px auto; padding:8px 12px; border-radius:999px; background:rgba(255,255,255,.86); color:var(--rose-dark); font-size:.75rem; opacity:0; transform:translateY(8px); transition:.3s; }
.gallery-card:hover img { transform:scale(1.055); filter:saturate(1.06); }
.gallery-card:hover::after { opacity:1; transform:none; }

.about-section { display:grid; grid-template-columns:1.5fr 1fr; gap:24px; max-width:1280px; margin:auto; }
.about-card,.model-card { border:1px solid var(--line); border-radius:26px; padding:clamp(28px,4vw,56px); background:rgba(255,255,255,.82); box-shadow:var(--shadow); }
.about-card { display:grid; grid-template-columns:auto 1fr; gap:24px; align-items:center; }
.about-icon { width:82px; height:82px; display:grid; place-items:center; border-radius:50%; background:var(--pink-soft); font-size:2rem; }
.about-card h2,.model-card h3 { font:600 clamp(2rem,3vw,3.2rem)/1.05 "Cormorant Garamond",serif; margin:8px 0 14px; }
.about-card p,.model-card p { color:var(--muted); line-height:1.8; }
.model-card { text-align:center; background:linear-gradient(145deg,#fff,#fdebf1); }
.model-card > span { font-size:2rem; color:var(--rose-dark); }

.social-section { background:#fff7fa; }
.social-cards { max-width:760px; margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.social-card { padding:24px 28px; border:1px solid var(--line); border-radius:18px; background:white; display:flex; justify-content:space-between; align-items:center; transition:.25s; }
.social-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.social-card strong { color:var(--rose-dark); }
.social-card span { color:var(--muted); }
footer { min-height:90px; display:flex; justify-content:space-between; align-items:center; padding:0 clamp(20px,5vw,80px); border-top:1px solid var(--line); color:var(--muted); font-size:.85rem; }

.lightbox { position:fixed; inset:0; z-index:200; display:none; place-items:center; background:rgba(36,24,28,.88); backdrop-filter:blur(10px); }
.lightbox.open { display:grid; animation:fadeIn .25s ease; }
@keyframes fadeIn { from{opacity:0} }
.lightbox-image { max-width:min(88vw,1000px); max-height:86vh; border-radius:24px; box-shadow:0 32px 90px rgba(0,0,0,.5); object-fit:contain; position:relative; z-index:2; }
.lightbox-close,.lightbox-prev,.lightbox-next { position:absolute; z-index:3; border:0; background:rgba(255,255,255,.9); color:var(--rose-dark); width:48px; height:48px; border-radius:50%; cursor:pointer; font-size:2rem; display:grid; place-items:center; }
.lightbox-close { top:24px; right:24px; }
.lightbox-prev { left:24px; top:50%; }
.lightbox-next { right:24px; top:50%; }
.petal-layer { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:4; }
.petal { position:absolute; top:-30px; color:#ffc2d5; font-size:18px; animation:petalFall var(--duration) linear forwards; opacity:.9; }
@keyframes petalFall { to { transform:translate3d(var(--drift),110vh,0) rotate(540deg); opacity:.15; } }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 900px) {
  .menu-toggle { display:block; }
  .nav-links { position:absolute; top:78px; left:0; right:0; display:none; flex-direction:column; gap:0; padding:18px 25px; background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); }
  .nav-links.open { display:flex; }
  .hero-overlay { background:linear-gradient(180deg,rgba(255,255,255,.35),rgba(255,247,250,.95) 62%,#fff 100%); }
  .hero { align-items:end; }
  .hero-content { margin:0 auto; padding:120px 24px 90px; text-align:center; }
  .hero-actions { justify-content:center; }
  .hero-image { object-position:64% center; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:240px; }
  .about-section { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
  .site-header { height:68px; }
  .nav-links { top:68px; }
  .hero h1 { font-size:5.2rem; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:190px; gap:10px; }
  .gallery-card.wide { grid-column:span 2; }
  .about-card { grid-template-columns:1fr; text-align:center; }
  .about-icon { margin:auto; }
  .social-cards { grid-template-columns:1fr; }
  .social-card { align-items:flex-start; flex-direction:column; gap:8px; }
  .lightbox-prev,.lightbox-next { top:auto; bottom:22px; }
  footer { flex-direction:column; justify-content:center; gap:8px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
}
