/* =========================================================
   NAMI — HOMEPAGE / CONTINUOUS GALLERY WALL
   Load shared.css before this file.
   ========================================================= */

body.home-page {
  margin: 0;
  background: #000;
  color: #fff;
  overflow-x: hidden;
}

/* ---------- Video environment ---------- */

.video-stage {
  position: fixed;
  inset: 0;
  z-index: 0;

  display: flex;
  align-items: stretch;
  justify-content: center;

  overflow: hidden;
  background: #000;
}

.video-panel {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  height: 100dvh;

  overflow: hidden;
  background: #000;
}

.video-panel video {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  display: block;
  object-fit: cover;

  background: #000;
  pointer-events: none;
}

/* A restrained darkening toward the text column only. */
.page-shade {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;

  background: linear-gradient(
    90deg,
    rgba(0,0,0,.02) 0%,
    rgba(0,0,0,.05) 46%,
    rgba(0,0,0,.25) 67%,
    rgba(0,0,0,.55) 100%
  );
}

/* Homepage header remains over the moving image. */
.home-page .site-header {
  position: fixed;
  left: 0;
  right: 0;
}

.home-page main {
  position: relative;
  z-index: 2;
}

/* ---------- Opening screen ---------- */

.hero {
  position: relative;
  min-height: 100dvh;
}

.intro {
  position: absolute;
  inset: 62px 0 0;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  padding: 30px;
  text-align: center;
  pointer-events: none;

  animation: namiIntroFade 2.2s ease 4.4s forwards;
}

.intro-logo {
  width: min(320px, 52vw);
  max-height: 46dvh;
  object-fit: contain;

  filter: drop-shadow(0 2px 18px rgba(0,0,0,.45));
}

.intro-title {
  margin-top: 20px;

  font-size: 20px;
  letter-spacing: .5em;
  text-indent: .5em;
}

.intro-credit {
  margin-top: 9px;

  font-size: 14px;
  letter-spacing: .05em;

  text-shadow: 0 1px 8px #000;
}

@keyframes namiIntroFade {
  to {
    opacity: 0;
    visibility: hidden;
  }
}

.scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 26px;
  z-index: 3;

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;

  transform: translateX(-50%);

  color: #fff;
  text-decoration: none;
  text-transform: uppercase;

  font-size: 10px;
  letter-spacing: .2em;

  text-shadow: 0 1px 8px #000;
}

.scroll-line {
  display: block;
  width: 1px;
  height: 34px;
  background: currentColor;
}

/* =========================================================
   CONTINUOUS RIGHT-HAND GALLERY WALL
   One uninterrupted translucent column, with no section cards.
   ========================================================= */

.content-rail.gallery-wall {
  width: min(560px, 43vw);
  margin-left: auto;
  padding: 0 28px 88px;

  background: rgba(0,0,0,.70);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* Sections now flow naturally rather than occupying full screens. */
.gallery-wall .content-section {
  min-height: 0;
  margin: 0;
  padding: 96px 42px;

  display: block;

  background: transparent;
  border: 0;
  border-top: 1px solid rgba(255,255,255,.23);
}

.gallery-wall .content-section:first-child {
  padding-top: 112px;
  border-top: 0;
}

.gallery-wall .content-section:last-child {
  padding-bottom: 112px;
}

.section-kicker {
  margin: 0 0 15px;

  color: rgba(255,255,255,.66);

  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.gallery-wall .content-section h1,
.gallery-wall .content-section h2 {
  margin: 0 0 26px;

  font-weight: 400;
  line-height: 1.12;
}

.gallery-wall .content-section h1 {
  font-size: clamp(38px, 5vw, 66px);
  letter-spacing: .08em;
}

.gallery-wall .content-section h2 {
  font-size: clamp(28px, 3.2vw, 44px);
}

.gallery-wall .content-section p {
  margin: 0 0 1.3em;

  font-size: 16px;
  line-height: 1.8;
  letter-spacing: .015em;
}

.gallery-wall .information-callout,
.gallery-wall .contact-section {
  min-height: 0;
}

/* ---------- Sound button ---------- */

.sound-button {
  position: fixed;
  right: 20px;
  bottom: max(20px, env(safe-area-inset-bottom));
  z-index: 1500;

  width: 46px;
  height: 46px;

  padding: 0;
  margin: 0;
  border: 0;

  background: transparent;

  appearance: none;
  -webkit-appearance: none;

  cursor: pointer;
  opacity: 1;
}

.sound-button img {
  width: 100%;
  height: 100%;

  display: block;
  object-fit: contain;
  pointer-events: none;

  filter: drop-shadow(0 1px 5px rgba(0,0,0,.8));
}

/* Footer must remain above the fixed video layer. */
.home-page .site-footer {
  position: relative;
  z-index: 4;
}

/* ---------- Portrait / mobile ---------- */

@media (orientation: portrait) {
  .video-stage {
    display: block;
  }

  .video-panel {
    width: 100vw;
    height: 100dvh;
  }

  .video-panel:not(:first-child) {
    display: none;
  }

  .page-shade {
    background: linear-gradient(
      180deg,
      rgba(0,0,0,.03) 0%,
      rgba(0,0,0,.08) 44%,
      rgba(0,0,0,.54) 100%
    );
  }
}

@media (max-width: 980px) {
  .content-rail.gallery-wall {
    width: min(580px, 64vw);
  }
}

@media (max-width: 760px) {
  .intro {
    inset: 58px 0 0;
  }

  .intro-logo {
    width: min(300px, 66vw);
  }

  /*
    On phones, preserve a generous uninterrupted video view after
    the opening screen, then begin the single continuous text wall.
  */
  .content-rail.gallery-wall {
    width: calc(100% - 28px);
    margin: 64dvh 14px 0;
    padding: 0;

    background: rgba(0,0,0,.84);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
  }

  .gallery-wall .content-section,
  .gallery-wall .content-section:first-child,
  .gallery-wall .content-section:last-child {
    padding: 54px 25px;
  }

  .gallery-wall .content-section p {
    font-size: 15px;
  }

  .sound-button {
    right: 15px;
    width: 42px;
    height: 42px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .intro {
    animation-duration: .01ms;
    animation-delay: 2s;
  }
}
