/* ---- hero ---- */

.hero {
  position: relative;
  height: 100svh;
  min-height: 90vh;
  overflow: hidden;
}

.hero > img {
  position: absolute;
  inset: 0;
  height: 100%;
  object-fit: cover;
  translate: 0 var(--py, 0px);
}

.motion .hero > img {
  scale: 1.08;
  transition: scale 1800ms var(--ease-out);
}

.motion.is-loaded .hero > img {
  scale: 1;
}

/* Letters rise out of a mask, one after another */
.hero-word {
  clip-path: inset(-30% -5% -0.04em -5%);
}

.motion .hero-word span {
  display: inline-block;
  translate: 0 115%;
  transition: translate 1100ms var(--ease-out) calc(200ms + var(--i) * 60ms);
}

.motion .hero-line,
.motion .hero-cta {
  opacity: 0;
  translate: 0 12px;
  transition:
    opacity 800ms ease-out 700ms,
    translate 800ms var(--ease-out) 700ms;
}

.motion .hero-cta {
  transition-delay: 820ms;
}

.motion.is-loaded .hero-word span,
.motion.is-loaded .hero-line,
.motion.is-loaded .hero-cta {
  opacity: 1;
  translate: 0 0;
}

.hero-copy {
  position: absolute;
  left: var(--gutter);
  right: var(--gutter);
  bottom: var(--gutter);
  display: grid;
  gap: 20px;
  justify-items: start;
}

.hero-copy h1 {
  font-size: clamp(96px, 19vw, 300px);
  line-height: 0.8;
  margin-left: -0.04em;
}

/* ---- lookbook ---- */

.lookbook {
  padding: clamp(64px, 10vw, 140px) 0 clamp(64px, 8vw, 120px);
}

.lookbook-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 var(--gutter) 16px;
  border-bottom: 1px solid var(--rule);
}

.lookbook-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
}

.lookbook-model {
  position: relative;
  aspect-ratio: 3 / 4;
  align-self: start;
  position: sticky;
  top: 0;
}

.lookbook-title {
  color: var(--bg);
  position: absolute;
  top: var(--gutter);
  left: var(--gutter);
  display: grid;
  gap: 24px;
  pointer-events: none;
}

.lookbook-grid[data-tone='dark'] .lookbook-title {
  color: var(--ink);
}

.lookbook-grid[data-align='right'] .lookbook-title {
  left: auto;
  right: var(--gutter);
  justify-items: end;
  text-align: right;
}

.look-tabs {
  display: flex;
  gap: 6px;
}

.look-shop {
  pointer-events: auto;
  width: max-content;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
}

.look-shop:hover {
  opacity: 0.7;
}

.lookbook-title h2 {
  font-size: clamp(56px, 7vw, 112px);
}

.lookbook-title .mono {
  padding-top: 16px;
  border-top: 1px solid currentColor;
  width: max-content;
}

.pieces {
  border-left: 1px solid var(--rule);
  padding: 0 var(--gutter);
}

.piece {
  display: grid;
  grid-template-columns: minmax(0, 45%) minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  padding: 28px 0;
  border-bottom: 1px solid var(--rule);
}

.piece-media {
  aspect-ratio: 4 / 5;
}

.piece-text {
  display: grid;
  gap: 12px;
}

.piece-num {
  display: flex;
  align-items: center;
  gap: 12px;
}

.piece-num::after {
  content: '';
  width: 24px;
  height: 1px;
  background: var(--ink);
}

.piece h3 {
  font-size: clamp(22px, 2vw, 30px);
}

.palette {
  padding: 28px 0 0;
}

.palette ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 16px;
}

.palette li {
  display: grid;
  gap: 8px;
}

.palette span[aria-hidden] {
  aspect-ratio: 1;
  border: 1px solid var(--rule);
}

@media (max-width: 860px) {
  .lookbook-grid {
    grid-template-columns: 1fr;
  }

  .lookbook-model {
    position: relative;
  }

  .pieces {
    border-left: 0;
  }
}
