@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Inter:wght@300;400;500&display=swap');

:root { color-scheme: dark; --ink:#f3f0e9; --muted:#aaa69d; --bg:#111; --line:#35332f; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--bg); }
body { margin:0; background:var(--bg); color:var(--ink); font-family:Inter,Arial,sans-serif; font-weight:300; }
.hero { min-height:100svh; position:relative; display:grid; align-items:end; overflow:hidden; }
.hero__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 32%; filter:contrast(1.04); }
.hero__veil { position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,5,5,.83) 0%,rgba(5,5,5,.36) 52%,rgba(5,5,5,.05) 100%),linear-gradient(0deg,rgba(5,5,5,.62),transparent 52%); }
.hero__content { position:relative; z-index:1; width:min(1200px,calc(100% - 48px)); margin:0 auto; padding:0 0 9vh; }
.eyebrow,.section-number { margin:0 0 22px; font-size:.76rem; letter-spacing:.24em; text-transform:uppercase; color:#d1ccc1; }
h1,h2,.signature { font-family:"Cormorant Garamond",Georgia,serif; font-weight:400; }
h1 { margin:0; font-size:clamp(4.7rem,12vw,10.5rem); line-height:.73; letter-spacing:-.055em; }
.dates { margin:38px 0 45px; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; }
.discover { color:var(--ink); font-size:.78rem; letter-spacing:.13em; text-transform:uppercase; text-decoration:none; border-bottom:1px solid #aaa; padding-bottom:9px; }
.discover span { margin-left:14px; }
main { width:min(1280px,calc(100% - 48px)); margin:0 auto; padding:130px 0 150px; }
.intro { display:grid; grid-template-columns:1fr 3fr; padding-bottom:70px; border-bottom:1px solid var(--line); margin-bottom:44px; }
.intro h2 { font-size:clamp(3.4rem,7vw,7rem); line-height:.9; letter-spacing:-.04em; margin:0 0 25px; }
.intro p:not(.section-number) { color:var(--muted); max-width:540px; line-height:1.8; margin:0; font-size:1rem; }
.gallery { columns:3; column-gap:18px; }
.memory-chapter { margin:0 0 5rem; }
.memory-chapter h3 { color:rgba(255,255,255,.62); font-size:.78rem; font-weight:500; letter-spacing:.18em; margin:0 0 1.4rem; text-transform:uppercase; }
.photo { width:100%; display:block; border:0; padding:0; margin:0 0 18px; overflow:hidden; background:#222; cursor:zoom-in; break-inside:avoid; }
.photo img { width:100%; height:auto; display:block; transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .4s; }
.photo:hover img { transform:scale(1.025); opacity:.9; }
.featured-memory { margin:clamp(70px,10vw,140px) 0; padding:clamp(18px,3vw,42px); border:1px solid var(--line); }
.photo--feature { margin:0; background:#090909; }
.photo--feature img { max-height:82vh; object-fit:contain; }
.films { display:grid; grid-template-columns:1fr 3fr; gap:0; margin:2rem auto 8rem; padding-top:2rem; border-top:1px solid var(--line); }
.films h2 { font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(2.7rem,5vw,5rem); font-weight:400; line-height:.95; margin:0 0 2.5rem; }
.films__grid { align-items:start; display:flex; flex-wrap:wrap; gap:1.5rem; }
.films video { background:#070707; border:1px solid rgba(255,255,255,.12); display:block; height:auto; max-width:320px; width:100%; }
.message-section { border-top:1px solid var(--line); padding:120px 24px; }
.message-section__inner { width:min(1100px,100%); margin:0 auto; display:grid; grid-template-columns:1fr 3fr; }
.message-panel { max-width:720px; }
.message-panel h2 { margin:0 0 55px; font-size:clamp(3.3rem,7vw,6.5rem); line-height:.9; letter-spacing:-.04em; }
.form-field { margin-bottom:34px; }
.form-field label { display:block; margin-bottom:10px; color:var(--muted); font-size:.73rem; letter-spacing:.2em; text-transform:uppercase; }
.form-field input,.form-field textarea { width:100%; border:0; border-bottom:1px solid #5b5852; border-radius:0; padding:12px 0 15px; background:transparent; color:var(--ink); font:400 1rem/1.6 Inter,Arial,sans-serif; resize:vertical; }
.form-field input:focus,.form-field textarea:focus { outline:0; border-color:var(--ink); }
.send-button { margin-top:10px; border:1px solid #77736b; padding:17px 21px; background:transparent; color:var(--ink); font:500 .76rem/1 Inter,Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; }
.send-button span { margin-left:18px; }
.send-button:hover { background:var(--ink); color:var(--bg); }
.form-trap { position:absolute!important; left:-9999px!important; opacity:0!important; }
footer { border-top:1px solid var(--line); padding:80px 24px 90px; text-align:center; color:var(--muted); }
footer>p:first-child { text-transform:uppercase; letter-spacing:.25em; font-size:.68rem; }
.signature { color:var(--ink); font-size:clamp(2.8rem,6vw,5.5rem); margin:10px 0 0; }
.lightbox { width:100vw; height:100vh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:rgba(5,5,5,.96); color:white; }
.lightbox[open] { display:grid; grid-template-columns:80px 1fr 80px; align-items:center; }
.lightbox::backdrop { background:#050505; }
.lightbox figure { margin:30px; height:calc(100vh - 60px); display:flex; flex-direction:column; align-items:center; justify-content:center; }
.lightbox figure img { max-width:100%; max-height:100%; object-fit:contain; }
.lightbox__close,.lightbox__nav { position:relative; border:0; background:none; color:white; cursor:pointer; font-family:Arial,sans-serif; font-weight:200; }
.lightbox__close { position:absolute; z-index:10; top:12px; right:14px; width:56px; height:56px; padding:0; font-size:2.2rem; line-height:1; }
.lightbox__nav { z-index:1; font-size:3.2rem; height:100%; }
button:focus-visible,a:focus-visible { outline:2px solid white; outline-offset:4px; }
@media (max-width:760px) {
  .hero__content,main { width:calc(100% - 30px); }
  .hero__content { padding-bottom:8vh; }
  .hero__image { object-position:62% center; }
  h1 { font-size:clamp(4rem,22vw,7rem); line-height:.78; }
  .dates { margin:30px 0 38px; font-size:.68rem; }
  main { padding:90px 0; }
  .intro { grid-template-columns:1fr; padding-bottom:45px; }
  .section-number { margin-bottom:18px; }
  .gallery { columns:1; column-gap:0; }
  .photo { margin-bottom:10px; }
  .featured-memory { margin:65px 0; padding:8px; }
  .memory-chapter { margin-bottom:3.5rem; }
  .films { display:block; margin-bottom:5rem; padding-top:3rem; }
  .films .section-number { margin-bottom:1.25rem; }
  .films__grid { justify-content:center; }
  .message-section { padding:80px 15px; }
  .message-section__inner { grid-template-columns:1fr; }
  .message-panel h2 { margin-bottom:42px; }
  .lightbox[open] { grid-template-columns:45px 1fr 45px; }
  .lightbox figure { margin:15px 0; }
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}.photo img{transition:none} }
.thanks-page { min-height:100svh; display:grid; place-items:center; padding:30px; }
.thanks-card { width:min(720px,100%); padding:0; text-align:center; }
.thanks-card h1 { font-size:clamp(5rem,16vw,10rem); line-height:.8; margin:0 0 40px; }
.thanks-card>p:not(.eyebrow) { margin:0 0 45px; color:var(--muted); font-size:1rem; }

/* Mise en valeur du portrait de Pierre et Ata */
.featured-memory__figure { margin:0; }
.featured-memory__figure figcaption {
  margin-top:18px;
  color:#d1ccc1;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(1.5rem,3vw,2.35rem);
  font-style:italic;
  letter-spacing:.01em;
  text-align:center;
}
.featured-memory .photo--feature img {
  width:100%;
  max-height:88vh;
  object-fit:contain;
}
@media (max-width:760px) {
  .hero__image { object-position:50% center; }
  .featured-memory__figure figcaption { margin-top:12px; }
}
