:root{
  --bg:#0e0c0b;
  --ink:#f4efe9;
  --muted:#a89f95;
  --gold:#c9a24b;
  --gold-soft:#e6cf95;
  --card:#181513;
  --radius:20px;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Manrope',system-ui,sans-serif;
  line-height:1.55;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* ---------- ambient background ---------- */
.grain{
  position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.aurora{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;filter:blur(60px)}
.blob{position:absolute;border-radius:50%;opacity:.5;mix-blend-mode:screen;animation:drift 24s var(--ease) infinite alternate}
.b1{width:46vw;height:46vw;left:-8vw;top:-6vw;background:radial-gradient(circle,#5c3b1e,transparent 65%)}
.b2{width:40vw;height:40vw;right:-6vw;top:18vh;background:radial-gradient(circle,#3a2f5c,transparent 65%);animation-delay:-8s}
.b3{width:52vw;height:52vw;left:24vw;bottom:-24vw;background:radial-gradient(circle,#7a5a2a,transparent 65%);animation-delay:-15s}
@keyframes drift{to{transform:translate3d(6vw,4vh,0) scale(1.15)}}

/* ---------- hero ---------- */
.hero{
  position:relative;z-index:2;
  min-height:100svh;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;padding:clamp(24px,6vw,80px);
}
.eyebrow{
  text-transform:uppercase;letter-spacing:.42em;font-size:.72rem;
  color:var(--gold-soft);font-weight:600;margin-bottom:1.4rem;padding-left:.42em;
}
.title{
  font-family:'Cormorant Garamond',serif;font-weight:500;
  font-size:clamp(3.4rem,13vw,9rem);line-height:.92;letter-spacing:.01em;
}
.title .line{display:block}
.title .amp{
  display:block;color:var(--gold);font-style:italic;font-weight:400;
  font-size:.5em;margin:.1em 0;
}
.lede{
  max-width:44ch;margin:1.8rem auto 0;color:var(--muted);
  font-size:clamp(.98rem,2.4vw,1.12rem);font-weight:300;
}
.date-strip{
  margin-top:1.6rem;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-soft);border-top:1px solid rgba(201,162,75,.28);
  border-bottom:1px solid rgba(201,162,75,.28);padding:.7rem 0;
}
.scroll-hint{
  margin-top:3rem;width:26px;height:44px;border:1.5px solid rgba(244,239,233,.35);
  border-radius:20px;display:flex;justify-content:center;padding-top:8px;
}
.scroll-hint span{width:4px;height:9px;border-radius:3px;background:var(--gold-soft);animation:wheel 1.6s var(--ease) infinite}
@keyframes wheel{0%{opacity:0;transform:translateY(-4px)}40%{opacity:1}100%{opacity:0;transform:translateY(12px)}}

/* ---------- gallery ---------- */
.gallery{position:relative;z-index:2;max-width:1200px;margin:0 auto;padding:clamp(40px,8vw,110px) clamp(20px,5vw,48px)}
.gallery-head{text-align:center;margin-bottom:clamp(32px,6vw,64px)}
.gallery-head h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(2rem,6vw,3.2rem)}
.gallery-head p{color:var(--muted);max-width:46ch;margin:.8rem auto 0;font-weight:300}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(18px,3vw,30px)}

.card{
  position:relative;display:block;border-radius:var(--radius);overflow:hidden;
  background:var(--card);border:1px solid rgba(255,255,255,.06);
  aspect-ratio:4/5;isolation:isolate;
  transition:transform .6s var(--ease),border-color .6s var(--ease),box-shadow .6s var(--ease);
  transform:translateY(24px);opacity:0;
}
.card.in{transform:none;opacity:1}
.card:hover{transform:translateY(-8px);border-color:rgba(201,162,75,.55);box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.card__img{position:absolute;inset:0}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .6s var(--ease);filter:saturate(.98) brightness(.96)}
.card:hover .card__img img{transform:scale(1.08);filter:saturate(1.08) brightness(1.02)}
.card__grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,12,11,0) 0%,rgba(14,12,11,.14) 42%,rgba(14,12,11,.82) 100%)}
.card__body{position:absolute;inset:auto 0 0 0;padding:clamp(18px,3vw,26px);z-index:2}
.card__num{
  position:absolute;top:18px;left:18px;font-family:'Cormorant Garamond',serif;
  font-size:1.05rem;letter-spacing:.1em;color:var(--gold-soft);
  border:1px solid rgba(201,162,75,.4);border-radius:50%;width:42px;height:42px;
  display:grid;place-items:center;backdrop-filter:blur(6px);background:rgba(0,0,0,.25);
}
.card__tag{
  display:inline-block;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-soft);margin-bottom:.6rem;
}
.card__title{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(1.5rem,3.6vw,2rem);line-height:1.05}
.card__desc{color:var(--muted);font-size:.9rem;font-weight:300;margin-top:.4rem;max-width:34ch}
.card__cta{
  margin-top:1rem;display:inline-flex;align-items:center;gap:.5rem;
  font-size:.8rem;letter-spacing:.08em;color:var(--ink);
  opacity:0;transform:translateX(-6px);transition:.5s var(--ease);
}
.card:hover .card__cta{opacity:1;transform:none}
.card__cta::after{content:"→";color:var(--gold)}

.foot{position:relative;z-index:2;text-align:center;padding:40px 24px 60px;color:var(--muted);font-size:.85rem;font-weight:300}
.foot .muted{margin-top:.4rem;opacity:.6;letter-spacing:.2em;text-transform:uppercase;font-size:.7rem}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
[data-reveal].in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  [data-reveal],.card{opacity:1;transform:none}
}
@media (max-width:560px){
  .grid{grid-template-columns:1fr}
  .card{aspect-ratio:16/13}
}
