*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  --gold:#c9a96e;
  --gold-lt:#e8d5b0;
  --gold-dk:#8a6d3f;
  --cream:#f5f0e8;
  --muted:#7a7265;
  --bg:#0e0c09;
}

html,body{
  width:100%;height:100%;
  background:var(--bg);
  overflow:hidden;
  font-family:'Cormorant Garamond',serif;
  cursor:none;
}

/* ═══════════════════════════════
   SPLASH
═══════════════════════════════ */
#splash{
  position:fixed;inset:0;z-index:9999;
  background:var(--bg);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:22px;
  transition:opacity 0.9s ease;
}
#splash.gone{opacity:0;pointer-events:none;}
.sp-rule{width:140px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.sp-label{font-family:'Raleway',sans-serif;font-size:clamp(10px,1.2vw,14px);font-weight:300;letter-spacing:0.46em;text-transform:uppercase;color:var(--gold);}
.sp-name{font-family:'Cinzel',serif;font-size:clamp(28px,4vw,58px);font-weight:300;color:var(--cream);letter-spacing:0.1em;text-align:center;}
.sp-dates{font-family:'Raleway',sans-serif;font-size:clamp(11px,1.3vw,15px);font-weight:200;letter-spacing:0.42em;text-transform:uppercase;color:var(--gold);}
#start-btn{
  margin-top:10px;padding:13px 42px;
  border:1px solid var(--gold);background:transparent;
  color:var(--gold);font-family:'Raleway',sans-serif;
  font-size:12px;font-weight:300;letter-spacing:0.38em;text-transform:uppercase;
  cursor:pointer;transition:background 0.3s,color 0.3s;
}
#start-btn:hover{background:var(--gold);color:#080604;}
.sp-hint{font-family:'Raleway',sans-serif;font-size:11px;font-weight:200;letter-spacing:0.18em;color:#2a2620;}

/* ── CORNER CONTROLS (audio + theme, splash bottom-right) ── */
.sp-corner{position:absolute;bottom:24px;right:24px;display:flex;flex-direction:column;align-items:flex-end;gap:10px;}
.sp-audio-row{display:flex;gap:0;align-items:center;}
.sp-audio-btn{font-family:'Raleway',sans-serif;font-size:9px;font-weight:300;letter-spacing:0.28em;text-transform:uppercase;color:var(--muted);background:transparent;border:1px solid rgba(201,169,110,0.18);padding:5px 12px;cursor:pointer;transition:background 0.2s,color 0.2s,border-color 0.2s;}
.sp-audio-btn+.sp-audio-btn{border-left:none;}
.sp-audio-btn.on{background:rgba(201,169,110,0.1);color:var(--gold);border-color:rgba(201,169,110,0.45);}
.sp-audio-btn:hover{color:var(--gold);}
.sp-themes{display:flex;flex-direction:row;gap:6px;align-items:center;}
.sp-swatch{width:8px;height:8px;border-radius:50%;cursor:pointer;border:1.5px solid transparent;opacity:0.55;transition:transform 0.2s,border-color 0.2s,opacity 0.2s;}
.sp-swatch.on{border-color:rgba(255,255,255,0.7);transform:scale(1.3);opacity:1;}
.sp-swatch:hover{opacity:1;}

/* ═══════════════════════════════
   CHROME
═══════════════════════════════ */
#pbar-wrap{position:fixed;top:0;left:0;right:0;height:2px;z-index:50;}
#pbar{height:100%;width:0%;background:linear-gradient(90deg,var(--gold-dk),var(--gold));transition:width 0.3s linear;}

#chapter-label{
  position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:50;
  font-family:'Raleway',sans-serif;font-size:clamp(9px,1vw,12px);font-weight:300;
  letter-spacing:0.44em;text-transform:uppercase;color:rgba(201,169,110,0.55);
  opacity:0;transition:opacity 0.6s;pointer-events:none;
  white-space:nowrap;
}
#chapter-label.show{opacity:1;}

#dots{
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%);
  display:flex;gap:7px;z-index:50;
}
.dot{
  width:5px;height:5px;border-radius:50%;
  background:rgba(201,169,110,0.2);
  transition:background 0.35s,transform 0.35s;cursor:pointer;
}
.dot.on{background:var(--gold);transform:scale(1.4);}

#ctrls{position:fixed;right:22px;bottom:42px;display:flex;gap:9px;z-index:50;}
.cb{
  width:38px;height:38px;
  border:1px solid rgba(201,169,110,0.25);background:rgba(8,6,4,0.6);
  color:var(--gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:13px;transition:background 0.2s;
}
.cb:hover{background:rgba(201,169,110,0.15);}

#bbar{
  position:fixed;bottom:0;left:0;right:0;z-index:40;
  display:flex;align-items:center;justify-content:center;gap:16px;
  padding:8px 40px;
  background:linear-gradient(to top,rgba(8,6,4,0.88),transparent);
}
.bbt{font-family:'Raleway',sans-serif;font-size:clamp(8px,0.85vw,11px);font-weight:300;letter-spacing:0.3em;text-transform:uppercase;color:var(--muted);}
.bbd{width:3px;height:3px;border-radius:50%;background:var(--gold-dk);opacity:0.4;}

/* ═══════════════════════════════
   SLIDES
═══════════════════════════════ */
#show{width:100vw;height:100vh;position:relative;}
.slide{
  position:absolute;inset:0;
  opacity:0;transition:opacity 1.4s ease-in-out;
  z-index:1;
}
.slide.active{opacity:1;z-index:2;}

/* ── CORNER ORNAMENTS ── */
.co{position:absolute;width:50px;height:50px;border-color:var(--gold);border-style:solid;opacity:0.25;z-index:5;}
.co.tl{top:22px;left:22px;border-width:1px 0 0 1px;}
.co.tr{top:22px;right:22px;border-width:1px 1px 0 0;}
.co.bl{bottom:22px;left:22px;border-width:0 0 1px 1px;}
.co.br{bottom:22px;right:22px;border-width:0 1px 1px 0;}

/* ── TITLE CARD (chapter opener) ── */
.title-card{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  background:var(--bg);
}
.title-card .bg-tint{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  filter:brightness(0.18) sepia(40%);
  animation:kb 14s ease-in-out forwards;
}
@keyframes kb{from{transform:scale(1.08);}to{transform:scale(1.0);}}
.title-card .vig{
  position:absolute;inset:0;
  background:radial-gradient(ellipse at center,transparent 20%,rgba(8,6,4,0.82) 100%);
  z-index:1;
}
.tc-inner{
  position:relative;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;
  padding:40px;
}

/* ANIMATIONS for title cards */
.slide.active .an{animation:up 0.9s ease forwards;}
.slide.active .an:nth-child(1){animation-delay:0.25s;opacity:0;}
.slide.active .an:nth-child(2){animation-delay:0.45s;opacity:0;}
.slide.active .an:nth-child(3){animation-delay:0.62s;opacity:0;}
.slide.active .an:nth-child(4){animation-delay:0.78s;opacity:0;}
.slide.active .an:nth-child(5){animation-delay:0.92s;opacity:0;}
.slide.active .an:nth-child(6){animation-delay:1.05s;opacity:0;}
.slide.active .an:nth-child(7){animation-delay:1.16s;opacity:0;}
@keyframes up{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}

/* TYPE */
.t-chapter{font-family:'Raleway',sans-serif;font-size:clamp(10px,1.1vw,14px);font-weight:300;letter-spacing:0.5em;text-transform:uppercase;color:var(--gold);}
.t-name{font-family:'Cinzel',serif;font-size:clamp(36px,5vw,78px);font-weight:300;color:var(--cream);letter-spacing:0.1em;line-height:1.1;text-align:center;}
.t-dates{font-family:'Raleway',sans-serif;font-size:clamp(11px,1.3vw,16px);font-weight:200;letter-spacing:0.44em;text-transform:uppercase;color:var(--gold);text-align:center;}
.t-heading{font-family:'Cormorant Garamond',serif;font-size:clamp(32px,4vw,64px);font-weight:300;color:var(--cream);letter-spacing:0.05em;line-height:1.18;}
.t-heading em{font-style:italic;color:var(--gold-lt);}
.t-sub{font-family:'Cormorant Garamond',serif;font-size:clamp(16px,1.9vw,26px);font-style:italic;font-weight:300;color:#9a9288;line-height:1.7;text-align:center;max-width:600px;}
.t-quote{font-family:'Cormorant Garamond',serif;font-size:clamp(18px,2.2vw,32px);font-style:italic;font-weight:300;color:var(--gold-lt);line-height:1.65;text-align:center;}
.rule{width:140px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.rule-sm{width:70px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-dk),transparent);}
.xicon{color:var(--gold);font-size:clamp(20px,2.5vw,32px);opacity:0.7;}

/* ═══════════════════════════════
   PHOTO GRID SLIDES
═══════════════════════════════ */
.photo-slide{
  width:100%;height:100%;
  display:grid;
  gap:3px;
  background:var(--bg);
}
/* caption strip at bottom of photo slides */
.photo-slide .caption{
  position:absolute;bottom:48px;left:0;right:0;
  text-align:center;z-index:6;
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(14px,1.6vw,20px);
  font-style:italic;font-weight:300;
  color:rgba(245,240,232,0.5);
  letter-spacing:0.06em;
  pointer-events:none;
}

/* grid layouts */
.g-1{grid-template-columns:1fr;grid-template-rows:1fr;}
.g-2h{grid-template-columns:1fr 1fr;grid-template-rows:1fr;}
.g-2v{grid-template-columns:1fr;grid-template-rows:1fr 1fr;}
.g-3a{grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;}
.g-3b{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr;}
.g-4a{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;}
.g-4b{grid-template-columns:1.6fr 1fr;grid-template-rows:1fr 1fr;}
.g-4c{grid-template-columns:1fr 1fr 1fr 1fr;grid-template-rows:1fr;}

/* span helpers */
.span-2r{grid-row:span 2;}
.span-2c{grid-column:span 2;}

/* photo cell */
.pc{
  position:relative;
  overflow:hidden;
  background:#181410;
}
.pc img{
  width:100%;height:100%;
  object-fit:contain;
  display:block;
  filter:sepia(8%) brightness(0.88);
}

/* ── SOLO SLIDE (1 image + caption below) ── */
.solo-slide{
  width:100%;height:100%;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  background:var(--bg);
  padding:56px 60px 72px;
}
.solo-img{
  flex:1;min-height:0;width:100%;
  display:flex;align-items:center;justify-content:center;
}
.solo-img img{
  max-width:100%;max-height:100%;
  object-fit:contain;display:block;
  filter:sepia(8%) brightness(0.9);
}
.solo-cap{
  flex-shrink:0;
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(15px,1.8vw,24px);
  font-style:italic;font-weight:300;
  color:rgba(245,240,232,0.6);
  letter-spacing:0.06em;text-align:center;
  margin-top:18px;padding:0 60px;line-height:1.5;
}

/* ── STACKED PHOTO PAIR (slight tilt, vintage feel) ── */
.stack-slide{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  gap:36px;
  background:var(--bg);
  padding:52px;
}
.stack-photo{
  position:relative;
  width:44%;height:76%;
  overflow:hidden;
  box-shadow:0 14px 48px rgba(0,0,0,0.8);
  background:#100d08;
}
.stack-photo img{
  width:100%;height:100%;
  object-fit:contain;display:block;
  filter:sepia(12%) brightness(0.86);
}
.stack-photo:first-child{transform:rotate(-2deg) translateY(14px);}
.stack-photo:last-child {transform:rotate(1.8deg) translateY(-14px);}
.stack-photo .pcap{position:absolute;bottom:0;left:0;right:0;}
/* placeholder */
.pc .ph{
  position:absolute;inset:0;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:10px;
  color:rgba(201,169,110,0.28);
  font-family:'Raleway',sans-serif;
  font-size:11px;font-weight:300;
  letter-spacing:0.16em;text-transform:uppercase;text-align:center;
  padding:14px;
}
.pc .ph svg{opacity:0.35;flex-shrink:0;}

/* photo number label (inside placeholder) */
.pnum{
  position:absolute;bottom:8px;right:10px;
  font-family:'Raleway',sans-serif;
  font-size:10px;font-weight:300;
  letter-spacing:0.2em;color:rgba(201,169,110,0.35);
  pointer-events:none;z-index:4;
}

/* per-photo caption */
.pcap{
  position:absolute;bottom:0;left:0;right:0;
  padding:28px 14px 10px;
  background:linear-gradient(to top,rgba(8,6,4,0.78) 0%,transparent 100%);
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(11px,1.1vw,16px);
  font-style:italic;font-weight:300;
  color:rgba(245,240,232,0.72);
  letter-spacing:0.03em;
  line-height:1.4;
  text-align:center;
  z-index:3;
  pointer-events:none;
}

/* dark overlay on photo cells for readability */
.pc::after{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(to bottom,transparent 60%,rgba(8,6,4,0.35) 100%);
  z-index:2;pointer-events:none;
}
