:root {
  color-scheme: dark;
  --black: #000000;
  --ivory: #f1eee7;
  --gold: #d2a74d;
  --muted: #9c998f;
}

* { box-sizing: border-box; }

html, body { margin: 0; min-height: 100%; background: var(--black); }

body { color: var(--ivory); font-family: "Montserrat", Arial, sans-serif; overflow-x: hidden; }

.hero {
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0, 58fr) minmax(28rem, 42fr);
  overflow: hidden;
  background: #000;
}

.portrait { position: relative; min-height: 100svh; overflow: hidden; background: #0a140b; }

.portrait::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -2rem;
  background: url("vine-valor-lookbook.jpg") center / cover no-repeat;
  filter: blur(18px) brightness(.54) saturate(.8);
  transform: scale(1.08);
}

.portrait > img {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  filter: saturate(.92) contrast(1.05);
}

.portrait-shade {
  position: absolute;
  z-index: 2;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.06) 55%, rgba(0,0,0,.5) 100%), linear-gradient(0deg, rgba(0,0,0,.48), transparent 30%);
}

.issue, .lookbook {
  position: absolute;
  z-index: 3;
  font-size: .7rem;
  letter-spacing: .24em;
  font-weight: 600;
}

.issue { top: 2.1rem; left: 2.3rem; }
.lookbook { left: 2.3rem; bottom: 2.2rem; }

.launch {
  position: relative;
  min-height: 100svh;
  display: grid;
  grid-template-rows: auto 1fr auto;
  padding: clamp(1.5rem, 3.2vw, 4rem);
  background: #000000;
  border-left: 1px solid rgba(210,167,77,.26);
}

.grain { position: absolute; inset: 0; opacity: .17; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E"); }

.brand { position: relative; z-index: 1; display: flex; justify-content: center; }
.brand img { display: block; width: min(13rem, 41vw); height: auto; }

.launch-copy { position: relative; z-index: 1; align-self: center; padding: 2rem 0; }

.eyebrow { margin: 0 0 1.1rem; color: var(--gold); font-size: .72rem; font-weight: 600; letter-spacing: .24em; }

h1 {
  margin: 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(4.4rem, 8vw, 8.4rem);
  line-height: .76;
  letter-spacing: -.055em;
}

h1 span { display: block; color: transparent; -webkit-text-stroke: 1px rgba(241,238,231,.68); font-style: italic; }

.statement {
  margin: clamp(2rem, 5vh, 4rem) 0 0;
  max-width: 30rem;
  font-family: "Cormorant Garamond", Georgia, serif;
  color: var(--muted);
  font-size: clamp(1.4rem, 2.15vw, 2rem);
  line-height: 1.16;
}

footer { position: relative; z-index: 1; display: flex; justify-content: space-between; color: #77746c; font-size: .64rem; letter-spacing: .22em; }

@media (max-width: 850px) {
  .hero { grid-template-columns: 1fr; grid-template-rows: 58svh auto; min-height: 100svh; overflow: visible; }
  .portrait { min-height: 58svh; }
  .portrait > img { object-fit: cover; object-position: center; }
  .portrait-shade { background: linear-gradient(0deg, #000000 0%, transparent 28%), linear-gradient(90deg, rgba(0,0,0,.05), rgba(0,0,0,.18)); }
  .issue { top: 1.3rem; left: 1.25rem; }
  .lookbook { left: 1.25rem; bottom: 1.4rem; }
  .launch {
    min-height: auto;
    padding: 1.35rem 1.25rem calc(2rem + env(safe-area-inset-bottom));
    border-left: 0;
    border-top: 1px solid rgba(210,167,77,.23);
    grid-template-rows: auto auto auto;
    row-gap: 1.1rem;
  }
  .brand { position: relative; justify-content: center; }
  .brand img { width: 6.6rem; }
  .launch-copy { padding: 0; text-align: center; }
  .eyebrow {
    margin: 0 auto 1.35rem;
    max-width: 21rem;
    font-size: .66rem;
    line-height: 1.7;
    letter-spacing: .18em;
  }
  h1 { font-size: clamp(4rem, 20vw, 5.8rem); line-height: .8; }
  .statement { margin: 1.8rem auto 0; font-size: 1.35rem; }
  footer { padding-top: .4rem; font-size: .58rem; letter-spacing: .18em; }
}

@media (max-width: 390px) {
  .portrait { min-height: 56svh; }
  .hero { grid-template-rows: 56svh auto; }
  .launch { padding-inline: 1rem; }
  .brand img { width: 6rem; }
  h1 { font-size: clamp(3.75rem, 19vw, 5rem); }
}

@media (max-height: 700px) and (min-width: 851px) {
  .brand img { width: 9rem; }
  h1 { font-size: clamp(4rem, 7vw, 6.5rem); }
  .statement { margin-top: 1.5rem; }
}

@media (prefers-reduced-motion: no-preference) {
  .portrait > img { animation: reveal 1.2s cubic-bezier(.2,.7,.2,1) both; }
  .launch-copy { animation: rise .9s .18s ease-out both; }
  @keyframes reveal { from { opacity: 0; transform: scale(1.025); } to { opacity: 1; transform: scale(1); } }
  @keyframes rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
}
