/* ==========================================================================
   TYPOGRAPHY
   Approved hierarchy (Phase 6.3F; hero name revised to Inter in Phase
   8.5A.2, weight refined in Phase 8.5B — see the "Brand identity roles"
   rule below):
     Inter        — every role, including the large hero identity
                    (KOSTAS GALIMITAKIS, now Medium/500) and every
                    functional/informational role: project credits,
                    metadata, captions, body copy, navigation, buttons,
                    services, contact information, footer, and all
                    textual instances of "redarq.studio" /
                    "Kostas Galimitakis".
     Ogg Text     — no longer used anywhere in the shipped page; its
                    @font-face declarations and the `--font-brand` token
                    remain available but unreferenced (Phase 8.5A.2 was
                    scoped to the hero name only, not to removing Ogg).
     Native SVG   — the official Redarq symbol/wordmark; never re-typeset
                    as live text in either font.
   ========================================================================== */

/* PRODUCTION FONTS — self-hosted. See the "Brand identity roles" rule
   below for the single selector Ogg Text applies to. */
@font-face {
  font-family: "Ogg Text";
  src: url("../assets/fonts/ogg/OggText-Book.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Ogg Text";
  src: url("../assets/fonts/ogg/OggText-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Ogg Text";
  src: url("../assets/fonts/ogg/OggText-BookItalic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("../assets/fonts/inter/Inter-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("../assets/fonts/inter/Inter-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("../assets/fonts/inter/Inter-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* Phase 8.9 — Plus Jakarta Sans Medium/500, self-hosted, scoped to the
   hero name only (see the `.hero__name` font-family override below).
   Genuine static Medium source file (not the variable-font instance in
   the supplied package, and not synthesized from another weight):
   OS/2.usWeightClass 500, name-table records confirm "Plus Jakarta Sans
   Medium". Converted to WOFF2 for production delivery, same
   font-display strategy as every other self-hosted family in this file
   (swap) — no technical reason to diverge for this one weight. Inter
   is untouched and remains in use everywhere else on the site. */
@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("../assets/fonts/plus-jakarta-sans/PlusJakartaSans-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

.font-editorial { font-family: var(--font-interface); }
.font-interface { font-family: var(--font-interface); }
.font-brand { font-family: var(--font-brand); }

/* ---- Editorial roles --------------------------------------------------- */

.type-display-xl {
  font-family: var(--font-interface);
  font-weight: 500;
  font-size: var(--type-display-xl);
  line-height: 0.98;
  letter-spacing: -0.01em;
}

.type-display {
  font-family: var(--font-interface);
  font-weight: 500;
  font-size: var(--type-display);
  line-height: 1.05;
  letter-spacing: -0.01em;
}

.type-h1 {
  font-family: var(--font-interface);
  font-weight: 450;
  font-size: var(--type-h1);
  line-height: 1.1;
}

.type-h2 {
  font-family: var(--font-interface);
  font-weight: 450;
  font-size: var(--type-h2);
  line-height: 1.1;
}

.type-h3 {
  font-family: var(--font-interface);
  font-weight: 400;
  font-size: var(--type-h3);
  line-height: 1.2;
}

.type-editorial-statement {
  font-family: var(--font-interface);
  font-weight: 400;
  font-style: italic;
  font-size: var(--type-editorial-statement);
  line-height: 1.4;
}

.type-body-lg {
  font-family: var(--font-interface);
  font-weight: 400;
  font-size: var(--type-body-lg);
  line-height: 1.5;
}

/* ---- Interface roles ---------------------------------------------------*/

.type-body {
  font-family: var(--font-interface);
  font-weight: 400;
  font-size: var(--type-body);
  line-height: 1.5;
}

.type-metadata {
  font-family: var(--font-interface);
  font-weight: 500;
  font-size: var(--type-metadata);
  line-height: 1.3;
  letter-spacing: 0.01em;
}

.type-metadata-label {
  font-family: var(--font-interface);
  font-weight: 500;
  font-size: var(--type-micro);
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
}

.type-interface {
  font-family: var(--font-interface);
  font-weight: 500;
  font-size: var(--type-interface);
  line-height: 1.3;
}

.type-button {
  font-family: var(--font-interface);
  font-weight: 600;
  font-size: var(--type-button);
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.type-eyebrow {
  font-family: var(--font-interface);
  font-weight: 600;
  font-size: var(--type-eyebrow);
  line-height: 1.2;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
}

.type-micro {
  font-family: var(--font-interface);
  font-weight: 500;
  font-size: var(--type-micro);
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
}

/* ---- Brand identity roles ------------------------------------------------
   Phase 8.5A.2: the large hero name (KOSTAS GALIMITAKIS) — previously the
   one selector Ogg Text was reserved for (Phase 6.3F) — now renders in
   Inter instead, per an explicit approved revision. This is a
   font-family substitution only: `.type-display-xl` (the h1's other
   class, above) already supplies this element's font-size, line-height,
   letter-spacing and a font-weight of its own; `.hero__name` still wins
   the cascade for family and weight (same specificity, declared later),
   so only the family value below changed — every other typographic
   parameter is untouched. Ogg Text's @font-face declarations, the
   `--font-brand` token and the unused `.font-brand` utility class are
   left in place (no font files were touched); nothing in the shipped
   markup references them any longer, but removing them was out of scope
   for this change. Every small/functional occurrence of "redarq.studio"
   or "Kostas Galimitakis" (project credits, hero eyebrow metadata,
   footer, work-end labels) was already Inter and is unaffected; the
   official wordmark stays the supplied SVG asset and is never
   re-typeset as live text in either font.

   Phase 8.9: the hero name now renders in the self-hosted Plus Jakarta
   Sans (Medium/500, see the @font-face block up top) instead of Inter,
   per an explicit approved revision scoped to this one selector only —
   edited in place rather than adding a second, later-cascading rule,
   consistent with how the font-weight change below was handled in
   Phase 8.5B. `var(--font-interface)` (Inter) remains the value used
   everywhere else on the site; only this one selector's family value
   changed. A literal `sans-serif` generic keeps a sane system fallback
   before the webfont loads or if it fails to load, matching the
   approved target declaration exactly. */
.hero__name {
  font-family: "Plus Jakarta Sans", sans-serif;
}

/* Text-column discipline: editorial copy never runs wider than ~65ch,
   even at Full grid width (Phase 4 §03). */
.text-column {
  max-width: 34rem;
}

/* ==========================================================================
   PHASE 6.3F — TYPOGRAPHY RENDERING CORRECTION / PRE-RC1
   (Weight revised in Phase 8.5B §A1 — see note below the original text.)
   6.3E kept Ogg Text on the small project-credit lines and tried to fix the
   resulting wobbly/uneven/over-sharpened rendering at that size with a
   package of font-smoothing/text-rendering/font-synthesis hints. That did
   not solve the problem satisfactorily (Ogg Text's hinting simply isn't
   built for ~11-18px UI sizes in Chrome/Windows). The real fix is
   selector-specific, not another rendering hack: small/functional
   occurrences of the studio and founder name are no longer set in Ogg at
   all — they use Inter (via `.project-credits__name`'s existing
   `.type-interface` base and the other selectors' own interface/metadata
   type roles), which was already correct and unaffected by this defect.
   Ogg Text applied to exactly one selector — the large hero name — where
   400/Book (not 500/Medium, which at the time read uneven/over-dark in
   Ogg specifically) had been confirmed clean; no font-smoothing,
   text-rendering or font-synthesis overrides are applied anywhere.

   Phase 8.5B §A1: the hero name now renders in Inter (Phase 8.5A.2), a
   different family with its own, independently-confirmed-clean metrics
   at weight 500 — the 6.3F finding above was about Ogg's rendering
   specifically and doesn't carry over. Bumped one step stronger per an
   explicit approved revision: three self-hosted Inter weights are
   bundled (see the @font-face block up top) — Regular/400 (the previous
   value), Medium/500, and SemiBold/600 — and Medium/500 is the next
   available weight above Regular, exactly the brief's own example
   ("Inter Regular → Inter Medium"), not a jump to SemiBold or Bold.
   Confirmed real, not synthetic: Chromium's Font Loading API resolves
   this to `Inter-Medium.woff2`, already declared at `font-weight: 500`
   in this file's @font-face block — no faux-bold synthesis occurs. This
   is the one existing selector that already controlled the hero name's
   weight (edited in place rather than adding a second, later-cascading
   rule, per the brief's own "avoid duplicating rules" instruction).

   Phase 8.9: the value itself is unchanged — Plus Jakarta Sans Medium
   (see the font-family change above) is also weight 500, and the
   supplied family includes a genuine static Medium source file, so no
   change was needed here. Confirmed real, not synthetic, via the Font
   Loading API: this now resolves to `PlusJakartaSans-Medium.woff2`
   (declared at `font-weight: 500` in this file's @font-face block)
   rather than `Inter-Medium.woff2` — see the QA note in
   CHANGELOG_V1.6.md for the measured confirmation. */
.hero__name {
  font-weight: 500;
}

/* redarq.studio is a literal brand string and must never inherit an
   uppercase transform from eyebrow / metadata utility styles, regardless
   of which typeface renders it. */
[data-bind="brand.name"],
[data-bind="workEnd.label"],
.project__end-label,
.footer__brand,
[data-bind="footer.copyright"] {
  text-transform: none;
}
