/* ==========================================================================
   SAMMES — Page-specific
   ========================================================================== */

/* --- Hero ---------------------------------------------------------------- */
.hero {
  position: relative;
  padding-top: var(--space-xl);
  padding-bottom: var(--space-lg);
  overflow: hidden;
}
.hero__top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-md);
  padding-bottom: var(--space-lg);
}
.hero__wordmark {
  position: relative;
  margin-inline: calc(var(--gutter) * -1);
  padding-inline: var(--gutter);
}
.hero__wordmark .wordmark {
  font-size: clamp(3.25rem, 20.5vw, 22rem);
  letter-spacing: -0.035em;
  line-height: 0.78;
  display: block;
  text-align: center;
  background: linear-gradient(
    180deg,
    var(--fg) 0%,
    var(--fg) 52%,
    color-mix(in srgb, var(--fg) 45%, var(--bg)) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hero__foot {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: var(--space-md);
  align-items: end;
  padding-top: var(--space-lg);
}
.hero__tagline {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: var(--fs-lead);
  line-height: 1.2;
  max-width: 16ch;
}
.hero__pitch {
  max-width: 40ch;
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: var(--muted);
  text-align: right;
  justify-self: end;
}
@media (max-width: 820px) {
  .hero__foot {
    grid-template-columns: 1fr;
    justify-items: start;
    text-align: left;
  }
  .hero__pitch { text-align: left; justify-self: start; }
  .hero__mark { order: -1; }
}

/* --- Image band (full-bleed accent band with art) ------------------------ */
.band {
  position: relative;
  display: grid;
  place-items: center;
  min-height: clamp(18rem, 42vw, 34rem);
  background: var(--accent);
  color: var(--on-accent);
  overflow: hidden;
}
.band__art {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  opacity: 0.95;
}
.band__art img,
.band__art svg {
  width: min(60%, 34rem);
  height: auto;
}
.band__meta {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: var(--space-md) var(--gutter);
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--space-md);
}
.band__label {
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: var(--tracking-micro);
  opacity: 0.85;
}

/* --- Manifesto ----------------------------------------------------------- */
.manifesto__label {
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: var(--tracking-micro);
  color: var(--muted);
}
.manifesto__body {
  position: relative;
}

/* --- Apps index ---------------------------------------------------------- */
.apps-grid {
  display: grid;
  gap: var(--space-sm);
}
@media (min-width: 900px) {
  .apps-grid { grid-template-columns: repeat(3, 1fr); }
}

/* --- App detail page hero ------------------------------------------------ */
.app-hero {
  position: relative;
  padding-block: var(--space-2xl) var(--space-xl);
  overflow: hidden;
}
.app-hero__index {
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.1em;
}
.app-hero__title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(3rem, 1rem + 14vw, 13rem);
  line-height: 0.82;
  letter-spacing: -0.035em;
  text-transform: uppercase;
  margin-block: var(--space-sm) var(--space-md);
}
.app-hero__lede {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: var(--fs-quote);
  line-height: 1.15;
  max-width: 24ch;
}

/* --- Brand guide page ---------------------------------------------------- */
.swatch {
  display: grid;
  gap: var(--space-xs);
}
.swatch__chip {
  aspect-ratio: 4 / 3;
  border: var(--rule) solid var(--line);
}
.swatch__meta {
  display: flex;
  justify-content: space-between;
  gap: var(--space-sm);
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: var(--tracking-micro);
}
.type-spec {
  display: grid;
  gap: var(--space-sm);
  padding-block: var(--space-md);
  border-top: var(--rule) solid var(--line);
}
.type-spec__sample--display {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(2rem, 1rem + 6vw, 6rem);
  line-height: 0.9;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}
.type-spec__sample--serif {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: clamp(1.25rem, 0.9rem + 2vw, 2.75rem);
  line-height: 1.15;
}
.type-spec__sample--mono {
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
}
.logo-tile {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 10;
  padding: var(--space-lg);
  border: var(--rule) solid var(--line);
}
.logo-tile--ink { background: var(--ink); color: var(--paper); }
.logo-tile--paper { background: var(--paper); color: var(--ink); }
.logo-tile--accent { background: var(--accent); color: var(--on-accent); }
.logo-tile__wm {
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: 0.18em;
  font-size: clamp(1.25rem, 0.8rem + 2.4vw, 3rem);
  text-transform: uppercase;
}

/* --- 404 ----------------------------------------------------------------- */
.notfound {
  min-height: 70svh;
  display: grid;
  place-content: center;
  text-align: center;
  gap: var(--space-md);
}
.notfound__code {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(5rem, 24vw, 20rem);
  line-height: 0.8;
  letter-spacing: -0.04em;
}
