/* ORBINTU homepage typography experiment (tools_orbintu/home_type_v2.py, switch site_config.HOME_TYPOGRAPHY_V2).
   Everything is scoped to body.ob-type-v2, which only the homepage gets, and only while the switch is on.
   Loaded after type/orbitu-type.css (the supplied kit, unchanged). */

/* ── A/B: pixel display statements (canvas inside the existing <h1>/<h2>; accessible text lives in the element) ── */
.ob-type-v2 .ob-pxh { align-self: stretch; width: 100%; filter: none; }           /* the kit canvas carries its own 3px shadow */
.ob-type-v2 div:has(> .ob-pxh), .ob-type-v2 div:has(> div > .ob-pxh) { align-self: stretch; }   /* hero: centred flex column */
.ob-type-v2 orbitu-pixel-heading { display: block; }                               /* custom elements are inline by default; the kit CSS assumes a block */
.ob-type-v2 .ob-pxh .orbitu-pixel-heading { width: 100%; max-width: 1000px; }
.ob-type-v2 .ob-pxh--left .orbitu-pixel-heading { margin: 0; }
/* before the element upgrades (or if JS is off) the heading reads as ordinary text in the display face */
.ob-type-v2 orbitu-pixel-heading:not(:defined) { display: block; font-family: "Pixelify Sans", ui-monospace, monospace; line-height: 1.05; }
.ob-type-v2 .orbitu-pixel-fallback { display: block; font-family: "Pixelify Sans", ui-monospace, monospace; line-height: 1.05; }

/* ── B: the other section statements stay real DOM text, in the kit's display face (not pixelated) ── */
.ob-type-v2 main h2.type-heading-lg:not(.ob-pxh) { font-family: "Libre Caslon Display", Georgia, serif; font-weight: 400; letter-spacing: -.01em; text-wrap: balance; }

/* ── D: short supporting statements (≤ 170 chars, marked .ob-v2-copy by the build) → Pixelify Sans; longer leads and all card/body copy keep the existing face ── */
.ob-type-v2 main p.type-body-xl-alt.ob-v2-copy { font-family: "Pixelify Sans", ui-monospace, monospace; font-weight: 400; line-height: 1.25; letter-spacing: 0; }

/* ── hero text treatment from the combined package (reference-site/index.html .kicker / .lead / .pixel-title) ── */
.ob-type-v2 .ob-v2-kicker { margin: 0 0 4px; color: #ff5a0a; font-family: "Pixelify Sans", ui-monospace, monospace; font-size: var(--type-body-s); line-height: 1; letter-spacing: .16em; text-transform: uppercase; text-align: center; }
.ob-type-v2 main p.ob-v2-lead { max-width: 850px; color: #cbc5bd; font-size: clamp(18px, 2vw, 26px); line-height: 1.22; }
.ob-type-v2 h1.ob-pxh .orbitu-pixel-heading canvas { filter: drop-shadow(4px 4px 0 rgba(255, 255, 255, .15)); }
@media (max-width: 520px) { .ob-type-v2 .ob-v2-kicker { font-size: var(--type-label); letter-spacing: .1em; text-wrap: balance; line-height: 1.5; } .ob-type-v2 main p.ob-v2-lead { font-size: 18px; } }

/* ── FULL mode (body.ob-type-full): the package's text texture top to bottom ──
   every statement heading is a pixel heading (home_type_v2.FULL_EXTRA); everything else on the homepage reads in
   Pixelify Sans, as on the package page — set through the existing font variables, so sizes/layout/colours stay put. */
body.ob-type-full { --font-body: "Pixelify Sans", ui-monospace, monospace; --font-body-alt: "Pixelify Sans", ui-monospace, monospace;
  --font-caption: "Pixelify Sans", ui-monospace, monospace; --font-mono: "Pixelify Sans", ui-monospace, monospace; --ob-font: "Pixelify Sans", ui-monospace, monospace; }
body.ob-type-full, body.ob-type-full main, body.ob-type-full footer, body.ob-type-full header, body.ob-type-full .ob-dock,
body.ob-type-full .ob-pxh { font-family: "Pixelify Sans", ui-monospace, monospace; }   /* .ob-pxh: the heading's hidden DOM text; its visible form is the Caslon canvas */
body.ob-type-full main p.ob-v2-copy:not(.ob-v2-lead) { line-height: 1.25; }
