/* ─── typography ─────────────────────────────────────────────────────────
   Display face is Humane — the same ultra-condensed face the app registers
   at launch (App/Fonts, BrandFont.swift). It is only ever set large and
   all-caps. Body is Switzer; mono microtype is Martian Mono.
   ───────────────────────────────────────────────────────────────────────── */

@font-face {
  font-family: "Humane";
  src: url("../fonts/Humane-Light.ttf") format("truetype");
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: "Humane";
  src: url("../fonts/Humane-Medium.ttf") format("truetype");
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Humane";
  src: url("../fonts/Humane-Bold.ttf") format("truetype");
  font-weight: 700;
  font-display: swap;
}

/* ── display scale ──
   Humane's extreme condensation means viewport-relative sizes run much
   larger than they would on a normal grotesk. These are tuned so the
   wordmark bleeds edge to edge at every width. */

/* Humane's glyphs advance at roughly 0.21em, so eight letters need ~52vw to
   span the measure. The wordmark is set to fill edge to edge at every width —
   the small residual slack is taken up by space-between. */
.d-hero {
  font-family: var(--display);
  font-weight: 700;
  text-transform: uppercase;
  line-height: 0.74;
  font-size: 52vw;
  letter-spacing: 0;
}

.d-1 {
  font-family: var(--display);
  font-weight: 700;
  text-transform: uppercase;
  line-height: 0.76;
  font-size: clamp(4.5rem, 15vw, 17rem);
}

.d-2 {
  font-family: var(--display);
  font-weight: 700;
  text-transform: uppercase;
  line-height: 0.8;
  font-size: clamp(3.5rem, 9vw, 9rem);
}

.d-3 {
  font-family: var(--display);
  font-weight: 500;
  text-transform: uppercase;
  line-height: 0.86;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
}

/* ── body ── */
.lede {
  font-size: clamp(1.05rem, 1.55vw, 1.4rem);
  line-height: 1.45;
  color: var(--bone);
  max-width: 34ch;
  text-wrap: pretty;
}

.copy {
  color: var(--dim);
  max-width: 46ch;
  text-wrap: pretty;
}

.copy strong {
  color: var(--bone);
  font-weight: 500;
}

/* The definitional footer format — reserved for brand moments only
   (docs/design.md: "MINTAGE (n.) — the number struck"). */
.defn {
  font-family: var(--mono);
  font-size: clamp(0.6rem, 0.85vw, 0.75rem);
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--dim);
}

.defn b {
  color: var(--bone);
  font-weight: 500;
}

/* An abbreviation inside an all-caps display line stays lowercase — "(n.)"
   is a dictionary mark, not a shout. */
.lower {
  text-transform: none;
}

/* Small print that is still prose: mono is for labels, not paragraphs. */
.fine {
  font-size: 0.8rem;
  line-height: 1.65;
  color: var(--dimmer);
}
