*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; overflow: hidden; }
body {
  background: #0d0f14;
  color: #e8e0d0;
  font-family: 'Cormorant Garamond', serif;
}

.page { display: none; position: fixed; inset: 0; overflow-y: auto; }
.page.active { display: block; }
#home { overflow: hidden; }

.nav-trigger {
  position: fixed; top: 30px; right: 36px; z-index: 300;
  background: none; border: none; cursor: pointer;
  display: flex; flex-direction: column; gap: 5px; padding: 8px;
}
.nav-trigger span {
  display: block; width: 24px; height: 1px; background: #e8e0d0; transition: all 0.35s;
}
.nav-trigger.open span:nth-child(1) { transform: rotate(45deg) translate(4px, 4px); }
.nav-trigger.open span:nth-child(2) { opacity: 0; }
.nav-trigger.open span:nth-child(3) { transform: rotate(-45deg) translate(4px, -4px); }

.nav-overlay {
  position: fixed; inset: 0; background: rgba(13,15,20,0.97); z-index: 200;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity 0.4s;
}
.nav-overlay.open { opacity: 1; pointer-events: all; }
.nav-links {
  display: flex; flex-direction: column; align-items: center; gap: 0;
  width: min(520px, 90vw);
}
.nav-links a {
  font-family: 'Cinzel', serif;
  font-size: clamp(24px, 4.5vw, 48px); font-weight: 400;
  color: #e8e0d0; text-decoration: none;
  padding: 14px 0; letter-spacing: 0.08em;
  border-bottom: 1px solid rgba(201,168,76,0.1);
  width: 100%; text-align: center; transition: color 0.3s;
}
.nav-links a:last-child { border-bottom: none; }
.nav-links a:hover { color: #c9a84c; }
.nav-footer {
  margin-top: 48px;
  font-family: 'Montserrat', sans-serif;
  font-size: 9px; letter-spacing: 0.25em; text-transform: uppercase;
  color: rgba(201,168,76,0.3); text-align: center;
}

.site-logo {
  position: fixed; top: 26px; left: 32px; z-index: 300; cursor: pointer; line-height: 1;
}
.logo-icon {
  height: 84px; width: auto; display: block; transition: opacity 0.3s;
}
.logo-icon:hover { opacity: 0.8; }

.email-icon {
  position: fixed; bottom: 32px; right: 36px; z-index: 300;
  color: rgba(232,224,208,0.35); text-decoration: none; transition: color 0.3s;
}
.email-icon:hover { color: #c9a84c; }
.email-icon svg {
  width: 20px; height: 20px; fill: none;
  stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
}

/* HOME */
#home { height: 100vh; position: relative; }
.hero-img {
  position: absolute; inset: 0;
  background-image: url('images/hero-silhouette.jpg');
  background-size: cover; background-position: center 15%;
  filter: grayscale(100%) contrast(1.1);
}
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, rgba(13,15,20,0.88) 0%, rgba(13,15,20,0.55) 45%, rgba(13,15,20,0.1) 100%);
}
.hero-content {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 0 60px 64px; max-width: 680px;
}
.hero-name {
  font-family: 'Cinzel', serif;
  font-size: clamp(32px, 5.5vw, 72px); font-weight: 400;
  line-height: 1.0; letter-spacing: 0.05em; color: #e8e0d0;
}
.hero-rule { width: 40px; height: 1px; background: #c9a84c; margin: 22px 0; }
.hero-quote {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(15px, 2vw, 22px); font-weight: 300; font-style: italic;
  color: rgba(232,224,208,0.7); line-height: 1.55; margin-bottom: 8px; min-height: 3em;
  transition: opacity 0.8s;
}
.hero-attr {
  font-family: 'Montserrat', sans-serif; font-size: 9px;
  letter-spacing: 0.22em; text-transform: uppercase; color: #c9a84c;
}

/* ABOUT */
#about { min-height: 100vh; padding: 100px 0 80px; background: #0d0f14; }
.about-inner {
  max-width: 1060px; margin: 0 auto; padding: 0 60px;
  display: grid; grid-template-columns: 1fr 340px; gap: 72px; align-items: start;
}
.about-eyebrow {
  font-family: 'Montserrat', sans-serif; font-size: 9px; letter-spacing: 0.25em;
  text-transform: uppercase; color: #c9a84c; margin-bottom: 24px;
}
.about-headline {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(30px, 3.2vw, 46px); font-weight: 300; line-height: 1.15;
  color: #e8e0d0; margin-bottom: 36px;
}
.about-headline em { font-style: italic; color: rgba(232,224,208,0.65); }
.about-body p {
  font-size: 17px; line-height: 1.9; font-weight: 300;
  color: rgba(232,224,208,0.62); margin-bottom: 20px;
}
.about-body p:last-child { margin-bottom: 0; }

/* Rotating photo panel */
.about-photos {
  position: sticky; top: 100px;
}
.photo-stack {
  position: relative; width: 100%; aspect-ratio: 3/4;
}
.photo-stack img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center top;
  filter: grayscale(15%);
  opacity: 0; transition: opacity 1.2s ease-in-out;
}
.photo-stack img.active { opacity: 1; }

.about-quotes {
  max-width: 1060px; margin: 64px auto 0; padding: 48px 60px 0;
  border-top: 1px solid rgba(201,168,76,0.12);
  display: grid; grid-template-columns: repeat(3,1fr); gap: 40px;
}
.aq-text {
  font-family: 'Cormorant Garamond', serif; font-size: 18px;
  font-style: italic; font-weight: 300;
  color: rgba(232,224,208,0.65); line-height: 1.6; margin-bottom: 14px;
}
.aq-attr {
  font-family: 'Montserrat', sans-serif; font-size: 9px;
  letter-spacing: 0.18em; text-transform: uppercase; color: #c9a84c;
}

.about-contact {
  max-width: 1060px; margin: 56px auto 0; padding: 32px 60px;
  border-top: 1px solid rgba(201,168,76,0.08);
  display: flex; align-items: center; gap: 16px;
}
.about-contact-label {
  font-family: 'Montserrat', sans-serif; font-size: 9px; letter-spacing: 0.2em;
  text-transform: uppercase; color: rgba(232,224,208,0.25);
}
.about-contact a {
  color: rgba(232,224,208,0.3); text-decoration: none; transition: color 0.3s;
}
.about-contact a:hover { color: #c9a84c; }
.about-contact svg {
  width: 18px; height: 18px; fill: none; stroke: currentColor;
  stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
}

.page-footer {
  text-align: center; padding: 40px 60px;
  font-family: 'Montserrat', sans-serif; font-size: 9px;
  letter-spacing: 0.15em; text-transform: uppercase; color: rgba(232,224,208,0.15);
}

@media (max-width: 768px) {
  .hero-content { padding: 0 28px 48px; }
  .about-inner { grid-template-columns: 1fr; gap: 40px; padding: 0 28px; }
  .about-photos { position: static; }
  .about-quotes { grid-template-columns: 1fr; padding: 40px 28px 0; }
  .about-contact { padding: 28px; }
  .email-icon { bottom: 24px; right: 24px; }
}