/* brand-cipher.css — Plano B layer L7 (cipher font wordmark)
 *
 * Two usage patterns, pick per surface:
 *
 *   1) Pseudo-element pattern (preferred for hero / above-the-fold):
 *      <span class="bm" aria-label=""></span>
 *      - Source HTML has ZERO text. Scrapers see <span class="bm"></span>.
 *      - Brand glyphs are injected by ::before content.
 *      - aria-label is intentionally empty ("—" em-dash or just blank);
 *        screen readers do not announce the brand. Add visually-hidden
 *        accessible name on the parent if a11y matters on that surface.
 *
 *   2) Inline PUA pattern (for nav, footer, anywhere selection matters):
 *      <span class="pua-brand">™</span>
 *      - Source HTML contains PUA codepoints. Scrapers that strip the font
 *        and read textContent see only U+E000…U+E009™ — no brand word.
 *      - Text is selectable, screen readers read PUA codepoints as nothing
 *        (most engines) or as garbage (some). Prefer pattern 1 if a11y is
 *        a concern.
 *
 * Cache: serve with `Cache-Control: public, max-age=31536000, immutable`.
 * Hash the filename if you ever rotate the cipher (e.g. brand-cipher.<hash>.woff2).
 */

@font-face {
  font-family: 'BrandCipher';
  src: url('/b-aa9df8/brand-cipher.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: block; /* MUST be 'block' — we cannot fall back to a system font
                          or the user sees PUA tofu before BrandCipher loads.
                          'block' gives a short invisible period, then renders. */
  unicode-range: U+E000-E009, U+2122;
}

/* Pattern 1: pseudo-element — zero source text */
.bm::before {
  font-family: 'BrandCipher', 'Inter', system-ui, sans-serif;
  content: '\E000\E001\E002\E003\E004\E005\E006\E007\E008\E009\2122';
  /* font-feature-settings prevents any GSUB liga/calt from re-merging
     PUA pairs into anything weird. (We dropped GSUB in build but be defensive.) */
  font-feature-settings: 'liga' 0, 'calt' 0, 'dlig' 0, 'rlig' 0;
  font-variant-ligatures: none;
  letter-spacing: 0;
}

/* Pattern 2: inline PUA wrapper */
.pua-brand {
  font-family: 'BrandCipher', 'Inter', system-ui, sans-serif;
  font-feature-settings: 'liga' 0, 'calt' 0, 'dlig' 0, 'rlig' 0;
  font-variant-ligatures: none;
  /* user-select: text by default — selection copies the PUA chars, which is
     fine: anyone pasting them into Google search gets nothing. */
}

/* Optional: tonal size variants — the cipher font has no italic / no other
   weights since we subsetted aggressively. Style with size/color only. */
.bm--hero::before,
.pua-brand--hero {
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
}

.bm--nav::before,
.pua-brand--nav {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.bm--footer::before,
.pua-brand--footer {
  font-size: 0.875rem;
  font-weight: 700;
  opacity: 0.7;
}
