/* ============================================================================
   hero.css — GLACIS aubergine artboard, scoped under .hero-stage
   The Compose view (and bracket halves, and final view) all render this block.
   Font choices are driven entirely by CSS variables set on .hero-stage so the
   app can swap stacks with a single setProperty().
   ========================================================================== */

.hero-stage {
  /* Brand tokens (aubergine) */
  --iris-0:#14101B; --iris-1:#18141F; --iris-1-5:#1B1623; --iris-2:#1E1724;
  --iris-3:#241B2C; --iris-4:#2C2135; --iris-5:#352741;
  --bone:#EDE3D0; --bone-strong:#F5ECD9; --bone-mute:#B5A9A0; --bone-dim:#958996;
  --cyan:#82C4D0; --violet:#C084FC; --violet-mid:#A78BFA; --amber:#E0AE7C;
  --brass:#B8935E; --brass-lift:#CFA973;
  --rule: rgba(237,227,208,0.10);
  --rule-warm: rgba(184,147,94,0.20);
  --pass:#94A381;

  /* Font slots (overridden by app.js) */
  --display: 'Tiempos Headline', Georgia, serif;
  --display-italic: 'Tiempos Headline', Georgia, serif;
  --sans: 'Söhne', system-ui, sans-serif;
  --mono: 'Söhne Mono', ui-monospace, monospace;
  --display-weight: 600;
  --display-italic-weight: 400;
  --sans-weight: 500;
  --body-weight: 400;
  --mono-weight: 400;

  /* Body text — editable in Compose. Defaults to Source Serif 4 (Google
     Fonts; not part of the Klim trial). */
  --body: 'Source Serif 4', Georgia, serif;

  position: relative;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 64px;
  padding: 56px 72px 80px;
  color: var(--bone);
  background:
    radial-gradient(ellipse 50% 16% at 14% 4%,   rgba(95,180,196,0.13)  0%, transparent 60%),
    radial-gradient(ellipse 42% 14% at 88% 10%,  rgba(192,132,252,0.14) 0%, transparent 62%),
    radial-gradient(ellipse 52% 16% at 14% 24%,  rgba(224,174,124,0.12) 0%, transparent 60%),
    radial-gradient(ellipse 52% 16% at 86% 40%,  rgba(167,139,250,0.19) 0%, transparent 62%),
    radial-gradient(ellipse 46% 16% at 22% 72%,  rgba(224,174,124,0.13) 0%, transparent 60%),
    radial-gradient(ellipse 100% 22% at 50% 106%, rgba(20,16,27,0.55) 0%, transparent 72%),
    linear-gradient(180deg, var(--iris-2) 0%, var(--iris-1-5) 42%, var(--iris-1) 100%);
  border-radius: 4px;
  overflow: hidden;
  /* Hairline edge for the artboard */
  box-shadow: 0 1px 0 var(--rule) inset, 0 0 0 1px rgba(0,0,0,0.4);
  /* Defensive font reset — descendants inherit the body face. */
  font-family: var(--body);
}

/* ── Masthead ─────────────────────────────────────────────────────────────── */

.hero-stage .masthead {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--rule);
}
/* Locked brand lockup — shield + wordmark. These are fixed brand assets
   that never change based on the font selection. */
.hero-stage .masthead .brand-lockup {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  flex-shrink: 0;
}
.hero-stage .masthead .logo-shield {
  height: 36px;
  width: auto;
  display: block;
  flex-shrink: 0;
}
.hero-stage .masthead .logo-wordmark {
  height: 28px;
  width: auto;
  display: block;
  flex-shrink: 0;
}
.hero-stage .masthead nav {
  display: flex; gap: 28px;
  margin-left: 16px;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 11.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bone-mute);
}
.hero-stage .masthead nav a { color: inherit; text-decoration: none; }
.hero-stage .masthead .cta-pill {
  margin-left: auto;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 11.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bone-strong);
  border: 1px solid var(--rule-warm);
  padding: 9px 16px;
  border-radius: 999px;
  background: rgba(207,169,115,0.04);
}

/* ── Left column ──────────────────────────────────────────────────────────── */

.hero-stage .left-col { display: flex; flex-direction: column; gap: 28px; }

.hero-stage .eyebrow {
  display: flex; align-items: center; gap: 14px;
  font-family: var(--display);
  font-weight: var(--display-weight);
  font-size: 11.5px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--cyan);
}
.hero-stage .eyebrow::before {
  content: ""; width: 36px; height: 1px;
  background: var(--cyan); opacity: 0.6;
}

.hero-stage h1 {
  font-family: var(--display);
  font-weight: var(--display-weight);
  font-size: clamp(56px, 5.6vw, 84px);
  line-height: 1.02;
  letter-spacing: -0.014em;
  margin: 0;
  color: var(--bone-strong);
}
.hero-stage h1 em {
  font-family: var(--display-italic);
  font-weight: var(--display-italic-weight);
  font-style: italic;
  color: var(--amber);
  letter-spacing: -0.005em;
}
/* The colorized period belongs to "alibi" visually, so it adopts the italic
   accent face (and its italic style) rather than the upright display. The
   distinct color is what made it a separate moment in the first place; it
   shouldn't double up by also being in a different font family. */
.hero-stage h1 .full-stop {
  font-family: var(--display-italic);
  font-style: italic;
  font-weight: var(--display-italic-weight);
  color: var(--brass-lift);
}

.hero-stage .lede {
  /* Body text — editable from the Compose picker (defaults to Source Serif 4). */
  font-family: var(--body);
  font-weight: var(--body-weight);
  font-size: 18.5px;
  line-height: 1.55;
  color: var(--bone);
  max-width: 56ch;
}
.hero-stage .lede em {
  font-style: italic;
  color: var(--bone-strong);
}

.hero-stage .cta-row { display: flex; gap: 12px; margin-top: 4px; }
.hero-stage .cta-row button {
  font-family: var(--display);
  font-weight: var(--display-weight);
  font-size: 11.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 999px;
  padding: 12px 22px;
}
.hero-stage .cta-row .primary {
  background: var(--bone-strong);
  color: var(--iris-1);
  border: 1px solid var(--bone-strong);
}
.hero-stage .cta-row .ghost {
  background: transparent;
  color: var(--bone);
  border: 1px solid var(--rule);
}

.hero-stage .caption {
  margin-top: 12px;
  font-family: var(--body);
  font-style: italic;
  font-size: 13px;
  color: var(--bone-dim);
  max-width: 44ch;
}

/* ── Right column — runtime receipt ──────────────────────────────────────── */

.hero-stage .receipt {
  align-self: end;
  background: linear-gradient(180deg, rgba(24,20,31,0.55) 0%, rgba(20,16,27,0.85) 100%);
  border: 1px solid var(--rule);
  border-radius: 4px;
  padding: 22px 24px 24px;
  font-family: var(--mono);
  font-weight: var(--mono-weight);
}
.hero-stage .receipt .receipt-header {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--amber);
  border-bottom: 1px solid var(--rule);
  padding-bottom: 10px;
  margin-bottom: 12px;
}
.hero-stage .receipt .receipt-header .meta { color: var(--bone-dim); font-size: 9.5px; }
.hero-stage .receipt ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.hero-stage .receipt li {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 12px;
  font-size: 11.5px;
  line-height: 1.4;
  color: var(--bone);
  padding-bottom: 10px;
  border-bottom: 1px dashed var(--rule);
}
.hero-stage .receipt li:last-child { border-bottom: 0; padding-bottom: 0; }
.hero-stage .receipt .ts { color: var(--bone-dim); }
.hero-stage .receipt .model { color: var(--cyan); }
.hero-stage .receipt .event { color: var(--bone-strong); }
.hero-stage .receipt .sealed {
  color: var(--pass);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: 1px solid rgba(148,163,129,0.35);
  padding: 2px 6px;
  border-radius: 2px;
  align-self: start;
}
.hero-stage .receipt .hash { color: var(--brass-lift); font-size: 10.5px; }
.hero-stage .receipt .prev { color: var(--bone-dim); font-size: 10px; }

/* Bracket half-scale modifier — used when two heroes appear side-by-side. */
.hero-stage.half {
  padding: 28px 36px 40px;
  gap: 36px;
}
.hero-stage.half h1 { font-size: clamp(36px, 3.4vw, 52px); }
.hero-stage.half .lede { font-size: 14.5px; max-width: 38ch; }
.hero-stage.half .masthead .logo-shield { height: 24px; }
.hero-stage.half .masthead .logo-wordmark { height: 18px; }
.hero-stage.half .masthead .brand-lockup { gap: 8px; }
.hero-stage.half .masthead nav { gap: 18px; font-size: 10px; }
.hero-stage.half .receipt { padding: 14px 16px 16px; }
.hero-stage.half .receipt li { font-size: 10px; grid-template-columns: 52px 1fr auto; }
