/* ============================================
   FRAMED BY TRAN — Master Stylesheet
   Background: Gallery Charcoal #121212
   Font: Cormorant Garamond (self-hosted WOFF2)
   ============================================ */

/* --- Font Faces --- */
@font-face {
  font-family: 'Cormorant Garamond';
  src: url('fonts/CormorantGaramond-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Cormorant Garamond';
  src: url('fonts/CormorantGaramond-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* --- Reset & Base --- */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  background-color: #121212;
  font-family: 'Cormorant Garamond', serif;
  color: #e0e0e0;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* --- Background Grain (behind photos, never overlaying) --- */
body::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  opacity: 0.025;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
}

/* --- Gallery Container --- */
.gallery {
  max-width: 700px;
  margin: 0 auto;
  padding-top: 8vh;
  padding-bottom: 0;
}

/* --- Typography --- */
.site-header {
  text-align: left;
  padding: 3.5vh 5vw;
  font-weight: 600;
  font-size: 5vw;
  letter-spacing: 0.15em;
  color: #e0e0e0;
  position: sticky;
  top: 0;
  z-index: 10;
  background: rgba(18, 18, 18, 0.80);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

@media (min-width: 600px) {
  .site-header {
    font-size: 28px;
  }
}

.chapter-title {
  text-align: center;
  text-transform: uppercase;
  margin-bottom: 8vh;
}

.chapter-label {
  font-weight: 600;
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 1vh;
}

.chapter-name {
  font-weight: 600;
  font-size: 1.2rem;
  letter-spacing: 0.05em;
  color: #f0f0f0;
}

/* --- Image Base --- */
.photo {
  display: block;
  height: auto;
  margin-bottom: 8vh;
}

/* --- Sizing & Alignment Classes --- */

/* Full-bleed: 100vw, touches edges */
.full-bleed {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

/* Align left: 5vw buffer from left */
.align-left {
  margin-left: 5vw;
  margin-right: auto;
}

/* Align right: 5vw buffer from right */
.align-right {
  margin-left: auto;
  margin-right: 5vw;
}

/* Align center */
.align-center {
  margin-left: auto;
  margin-right: auto;
}

/* Width classes */
.w-100 { width: 100%; }
.w-75 { width: 75%; }
.w-65 { width: 65%; }

/* On mobile (within 600px container), full-bleed breaks out */
@media (max-width: 600px) {
  .full-bleed {
    width: 100vw;
    margin-left: -50vw;
    position: relative;
    left: 50%;
  }

  .align-left {
    margin-left: 5vw;
  }

  .align-right {
    margin-right: 5vw;
  }
}

/* --- Desktop: contain full-bleed within gallery column --- */
@media (min-width: 601px) {
  .full-bleed {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  .align-left {
    margin-left: -20%;
  }

  .align-right {
    margin-right: -20%;
  }
}

/* --- Chapter Break Spacer --- */
.chapter-break {
  margin-bottom: 15vh;
}

/* --- Editorial Colophon --- */
.colophon {
  text-align: center;
  text-transform: uppercase;
  padding-bottom: 15vh;
}

.colophon-finial {
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.25);
  margin: 0 auto 8vh;
}

.colophon-label {
  font-weight: 600;
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 1vh;
}

.colophon-value {
  font-weight: 600;
  font-size: 1.2rem;
  letter-spacing: 0.05em;
  color: #f0f0f0;
}

.colophon-block + .colophon-block {
  margin-top: 4vh;
}

.colophon-value a {
  color: #f0f0f0;
  text-decoration: none;
  text-transform: lowercase;
}

.colophon-value a:hover {
  color: #ffffff;
}
