/* 섹션 공통 */
section, footer {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.section-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 120px 120px;
}
.section-header {
  text-align: center;
  margin-bottom: 64px;
}

/* Overlay */
.overlay {
  position: fixed; inset: 0;
  background: var(--bg-base);
  z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; /* JS가 제어 */
}
.overlay__inner {
  display: flex; flex-direction: column; align-items: center; gap: 24px;
}
.overlay__reels {
  display: flex; gap: 4px; height: 80px; overflow: hidden;
}
.reel-col {
  width: 48px; overflow: hidden;
}
.reel__strip {
  display: flex; flex-direction: column;
  font-family: var(--font-display);
  font-size: 72px; font-weight: 700; line-height: 1;
  color: var(--t-primary);
}
.reel__strip span { height: 80px; display: flex; align-items: center; justify-content: center; }
.overlay__progress-track {
  width: 240px; height: 2px;
  background: rgba(255,255,255,0.1);
  border-radius: 1px;
}
.overlay__progress-bar {
  height: 100%; width: 0%;
  background: var(--c-hero);
  border-radius: 1px;
  transition: width 0.1s linear;
}

/* Navbar */
.hero__navbar {
  position: absolute; top: 0; left: 0; right: 0;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 64px; height: 72px;
  z-index: 100;
}

/* How Cards */
.how__cards {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}

/* Gallery Grid */
.gallery__grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
  height: 420px;
}

/* Constellation Grid */
.const__grid { display: flex; flex-direction: column; gap: 12px; }
.const__row  { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; height: 320px; }

/* CTA */
#cta {
  min-height: 500px;
  display: flex; align-items: center; justify-content: center;
}
.cta__content {
  position: relative; z-index: 10;
  display: flex; flex-direction: column; align-items: center;
  gap: 24px; text-align: center;
  padding: 0 120px;
}

/* Footer */
#footer {
  padding: 48px 120px;
  display: flex; flex-direction: column; gap: 24px;
}
.footer__top, .footer__bottom {
  display: flex; justify-content: space-between; align-items: center;
}
.footer__links { display: flex; gap: 32px; }
