/* Styleframes — cinematic heroes + expandable grids (multi-project) */

.page-styleframes .siteMain {
  max-width: none;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.styleframesShell {
  width: 100%;
  margin: 0 auto;
  padding-top: clamp(0.35rem, 1.2vw, 0.75rem);
}

.styleframesProject + .styleframesProject {
  margin-top: clamp(2.75rem, 6vw, 5.25rem);
}

/* ----- Cinematic hero (full bleed, layered scrims, left content column) ----- */

.styleframesHero {
  --hero-min-h: clamp(400px, 68vh, 720px);
  --hero-gutter: var(--harmonia-edge-gutter, clamp(14px, 2vw, 28px));
  /* Extra inset so copy aligns with a deliberate column, not the raw viewport edge */
  --hero-copy-inset: clamp(1.1rem, 3.4vw, 2.65rem);
  position: relative;
  width: calc(100% + 2 * var(--hero-gutter));
  margin-left: calc(-1 * var(--hero-gutter));
  margin-right: calc(-1 * var(--hero-gutter));
  min-height: var(--hero-min-h);
  margin-bottom: clamp(1rem, 2.5vw, 1.65rem);
  overflow: hidden;
  background: #030303;
}

.styleframesHero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.styleframesHero__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* ABOLITION — bright logotype right of copy */
.styleframesHero[data-project="abolition"] .styleframesHero__img {
  object-position: 76% 48%;
}

/* ONE SMALL STEP — keep baked-in title / bright regolith off the left column */
.styleframesHero[data-project="one-small-step"] .styleframesHero__img {
  object-position: 64% 50%;
}

/* Seattle graphical — pull central graphic / bright halftone highlights off the left copy column */
.styleframesHero[data-project="seattle-graphical"] .styleframesHero__img {
  object-position: 58% 48%;
}

.styleframesHero__scrim {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* Global darken — artwork stays legible as atmosphere */
.styleframesHero__scrim--global {
  z-index: 1;
  background: rgba(0, 0, 0, 0.74);
}

/* Strong read slab on the left — title-case composition, not a floating centered card */
.styleframesHero__scrim--left {
  z-index: 2;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.98) 0%,
    rgba(0, 0, 0, 0.94) 14%,
    rgba(0, 0, 0, 0.86) 26%,
    rgba(0, 0, 0, 0.68) 40%,
    rgba(0, 0, 0, 0.38) 56%,
    rgba(0, 0, 0, 0.1) 74%,
    transparent 94%
  );
}

.styleframesHero__inner {
  position: relative;
  z-index: 3;
  box-sizing: border-box;
  min-height: var(--hero-min-h);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  /* Slightly below optical center: center-left column, not vertically centered in the hero */
  padding-top: clamp(6.5rem, 28vh, 13.5rem);
  padding-bottom: clamp(2.25rem, 5vh, 3.75rem);
  padding-left: calc(var(--hero-gutter) + var(--hero-copy-inset));
  padding-right: var(--hero-gutter);
}

.styleframesHero__header {
  max-width: min(432px, 100%);
  margin: 0;
  padding: 0;
  text-align: left;
  align-self: flex-start;
}

.styleframesHero__title {
  margin: 0;
  font-family: "Inter", system-ui, sans-serif;
  /* vw helps long titles (e.g. ONE SMALL STEP) stay on one line within the narrow column */
  font-size: clamp(2rem, 4.2vw + 1.15rem, 4.05rem);
  font-weight: 900;
  letter-spacing: -0.045em;
  line-height: 0.98;
  color: #fff;
  text-shadow: 0 2px 32px rgba(0, 0, 0, 0.55), 0 1px 0 rgba(0, 0, 0, 0.2);
  white-space: nowrap;
}

.styleframesHero__range {
  margin: 0.35rem 0 0;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.25;
  color: rgba(255, 255, 255, 0.55);
}

.styleframesHero__title + .styleframesHero__graf {
  margin-top: clamp(1.55rem, 3.6vw, 2.35rem);
}

.styleframesHero__range + .styleframesHero__graf {
  margin-top: clamp(1.1rem, 2.6vw, 1.65rem);
}

.styleframesHero__graf {
  margin: 0;
  font-family: "Inter", system-ui, sans-serif;
  font-size: clamp(0.88rem, 1.05vw, 1rem);
  font-weight: 400;
  line-height: 1.78;
  letter-spacing: 0.012em;
  color: rgba(255, 255, 255, 0.78);
  text-shadow: 0 1px 20px rgba(0, 0, 0, 0.5);
}

.styleframesHero__graf + .styleframesHero__graf {
  margin-top: 1.05rem;
}

.styleframesHero__meta {
  margin: clamp(1.35rem, 2.8vw, 1.75rem) 0 0;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 0.61rem;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.36);
}

.styleframesProject .harmoniaSetControl {
  margin-top: 0;
}

/* Styleframes grid thumbs */
.styleframesFrameGrid .harmoniaArtworkBtn {
  aspect-ratio: 16 / 9;
}

.styleframesFrameGrid .harmoniaArtworkBtn img {
  object-fit: cover;
}

@media (max-width: 900px) {
  .styleframesHero[data-project="abolition"] .styleframesHero__img {
    object-position: 70% 42%;
  }

  .styleframesHero[data-project="one-small-step"] .styleframesHero__img {
    object-position: 56% 42%;
  }

  .styleframesHero[data-project="seattle-graphical"] .styleframesHero__img {
    object-position: 52% 40%;
  }

  .styleframesHero__scrim--global {
    background: rgba(0, 0, 0, 0.78);
  }

  .styleframesHero__scrim--left {
    background: linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.98) 0%,
      rgba(0, 0, 0, 0.93) 24%,
      rgba(0, 0, 0, 0.78) 44%,
      rgba(0, 0, 0, 0.42) 64%,
      rgba(0, 0, 0, 0.12) 84%,
      transparent 100%
    );
  }
}

@media (max-width: 720px) {
  .styleframesHero {
    --hero-min-h: clamp(300px, 72vh, 560px);
  }

  .styleframesHero__inner {
    align-items: flex-start;
    justify-content: flex-start;
    padding-top: clamp(4.75rem, 22vh, 8.5rem);
    padding-bottom: clamp(1.5rem, 5vw, 2.25rem);
    padding-left: calc(var(--hero-gutter) + clamp(0.65rem, 2.5vw, 1.35rem));
    padding-right: var(--hero-gutter);
  }

  .styleframesHero[data-project="abolition"] .styleframesHero__img {
    object-position: 55% 22%;
  }

  .styleframesHero[data-project="one-small-step"] .styleframesHero__img {
    object-position: 48% 26%;
  }

  .styleframesHero[data-project="seattle-graphical"] .styleframesHero__img {
    object-position: 45% 30%;
  }

  .styleframesHero__scrim--global {
    background: rgba(0, 0, 0, 0.8);
  }

  .styleframesHero__scrim--left {
    background: linear-gradient(
      165deg,
      rgba(0, 0, 0, 0.88) 0%,
      rgba(0, 0, 0, 0.55) 38%,
      rgba(0, 0, 0, 0.22) 55%,
      rgba(0, 0, 0, 0.9) 78%,
      rgba(0, 0, 0, 0.97) 100%
    );
  }

  .styleframesHero__header {
    max-width: min(100%, 26rem);
  }

  .styleframesHero__title {
    font-size: clamp(1.35rem, 5.5vw + 0.85rem, 2.65rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    white-space: nowrap;
  }

  .styleframesHero__graf {
    font-size: 0.92rem;
    line-height: 1.7;
  }

  .styleframesHero__title + .styleframesHero__graf {
    margin-top: clamp(1.1rem, 4vw, 1.5rem);
  }

  .styleframesHero__graf + .styleframesHero__graf {
    margin-top: 0.9rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .styleframesHero__img {
    object-position: center center;
  }
}
