/* ════════════════════════════════════════════════════════════════════════
   leaf.css — LEAF build-on (Layer 2b, opt in with zBrush: [page, leaf]).
   What makes a page a LEAF: a single-document editorial reading column
   (left-aligned prose) for terminal content nested inside a hub. Sits on top
   of page.css (the shared hero / section / heading vocabulary). Rules
   relocated verbatim from page.css — no value/selector changes.
   ════════════════════════════════════════════════════════════════════════ */

/* (The cinematic masthead that used to open this file was PROMOTED again —
   leaf.css → zC_Main.css as .zc-masthead / %masthead — once hubs adopted it
   too (zStack). It's canvas vocabulary now; no brush opt-in needed.) */

/* ── leaf — single-document editorial grammar (left-aligned reading column) ── */
.zc-lead {
    font-size:      clamp(1.2rem, 2.3vw, 1.55rem);
    line-height:    1.55;
    font-weight:    400;
    color:          var(--text-light);
    margin:         0 0 2.75rem;
    max-width:      64ch;
    letter-spacing: -0.01em;
}
/* ── thesis — the leaf's bottom-line paragraph, large gradient type, full
   width of the reading column. Simple on purpose (Gal, 2026-07-16). */
.zc-thesis {
    font-size:               clamp(1.6rem, 3.2vw, 2.3rem);
    font-weight:             750;
    line-height:             1.35;
    letter-spacing:          -0.025em;
    margin:                  0 0 3rem;
    background:              linear-gradient(135deg, #ffffff 0%, #c7d2fe 45%, #818cf8 100%);
    -webkit-background-clip: text;
    background-clip:         text;
    -webkit-text-fill-color: transparent;
    text-shadow:             0 0 70px rgba(129, 140, 248, 0.35);
}
/* inline code chips opt back OUT of the gradient clip (transparent fill would
   erase them) — they keep their own indigo chip ink */
.zc-thesis code { -webkit-text-fill-color: #c7d2fe; }
/* .zc-leaf p (below) restyles every paragraph — the thesis's own p must win */
.zc-leaf .zc-thesis p, .zc-thesis p {
    font:           inherit;
    color:          inherit;
    letter-spacing: inherit;
    max-width:      none;
    margin:         0;
}
.zc-scene {
    display:        block;
    font-size:      0.75rem;
    font-weight:    700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color:          #818cf8;
    margin:         0 0 0.7rem;
}
.zc-scene::before {
    content:        '';
    display:        inline-block;
    width:          1.7rem;
    height:         2px;
    margin-right:   0.6rem;
    vertical-align: middle;
    background:     linear-gradient(90deg, #818cf8, transparent);
}
.zc-leaf-title {
    font-size:      clamp(1.55rem, 3vw, 2.2rem);
    font-weight:    800;
    letter-spacing: -0.025em;
    line-height:    1.14;
    margin:         0 0 1.1rem;
    color:          var(--text-light);
}
.zc-leaf-title h1, .zc-leaf-title h2, .zc-leaf-title h3 {
    font: inherit; letter-spacing: inherit; color: inherit; margin: 0; line-height: inherit;
}
.zc-prose {
    color:       var(--text-gray);
    font-size:   1.125rem;   /* 18px — teaching prose, easy on the eyes (2026-07-16) */
    line-height: 1.65;
    max-width:   68ch;
    margin:      0 0 1.6rem;
}
.zc-prose code {
    font-family:   'SF Mono', 'Monaco', 'Courier New', monospace;
    font-size:     0.9em;
    color:         #c7d2fe;
    background:    rgba(124, 58, 237, 0.14);
    border:        1px solid rgba(124, 58, 237, 0.24);
    border-radius: 6px;
    padding:       0.08em 0.42em;
}
.zc-prose a {
    color:                  #a5b4fc;
    text-decoration:        underline;
    text-underline-offset:  2px;
    text-decoration-color:  rgba(165, 180, 252, 0.45);
}
.zc-prose a:hover { color: #c7d2fe; text-decoration-color: #c7d2fe; }

/* ── leaf wrapper — the editorial reading column (the workhorse) ─────────────
   Tag a content-heavy page ROOT with _zClass: zc-leaf and its descendant prose,
   headings, and lists style THEMSELVES — so an essay built from inline `zMD:`
   shorthand (which can't carry _zClass) needs zero per-block tagging. The
   explicit zc-lead / zc-leaf-title / zc-prose above remain for opt-in emphasis.
   Headings keep ONLY size/weight/rhythm here — never color — so a block's own
   `color:` (e.g. ERROR red vs INFO blue contrast) shows through untouched.    */
.zc-leaf {
    max-width: var(--zc-container-narrow);
    margin:    0 auto;
    padding:   var(--zc-section-y) var(--zc-section-x);
}
.zc-leaf > * + * { margin-top: 2.5rem; }   /* breathing room between sections */

.zc-leaf p {
    color:       var(--text-gray);
    font-size:   1.125rem;   /* 18px — teaching prose, easy on the eyes (2026-07-16) */
    line-height: 1.65;
    margin:      0 0 1.1rem;
    max-width:   68ch;
}
.zc-leaf p:last-child { margin-bottom: 0; }

/* size/weight/rhythm only — color comes from each heading's own color class */
.zc-leaf h1, .zc-leaf h2, .zc-leaf h3, .zc-leaf h4 {
    letter-spacing: -0.025em;
    line-height:    1.18;
    margin:         0 0 0.9rem;
}
.zc-leaf h1 { font-size: clamp(2rem, 5vw, 3rem);     font-weight: 800; }
.zc-leaf h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 800; }
.zc-leaf h3 { font-size: 1.3rem;                     font-weight: 700; }
.zc-leaf h4 { font-size: 1.08rem;                    font-weight: 700; }

.zc-leaf .zList    { color: var(--text-gray); font-size: 1.125rem; line-height: 1.65; margin: 0 0 1.2rem; padding-left: 1.4rem; }
.zc-leaf .zList li { margin: 0.35rem 0; }

.zc-leaf strong { color: var(--text-light); }   /* emphasis lifts above gray prose */
/* inline prose code only (zMD/zText → <p>, lists → <li>). Code inside bifrost
   components — zTerminal (<pre>), zTable (<td>) — is bifrost-owned, left default. */
.zc-leaf p code, .zc-leaf li code {
    font-family:   'SF Mono', 'Monaco', 'Courier New', monospace;
    font-size:     0.9em;
    color:         #c7d2fe;
    background:    rgba(124, 58, 237, 0.14);
    border:        1px solid rgba(124, 58, 237, 0.24);
    border-radius: 6px;
    padding:       0.08em 0.42em;
}
/* prose links only — :not(.zc-btn) so button-like zLinks keep their CTA ink.
   Also exclude bifrost-owned chrome links: navbar (.zNav-link / .zNavbar-brand /
   .zDropdown-item) and breadcrumb ancestors (a inside .zBreadcrumb). These render
   INSIDE .zc-leaf content, so this prose-link rule would otherwise clobber their
   SSOT ink/underline and make the chrome diverge from canonical zbase.
   (.zc-link-quiet joined the exclusions with the %leafNav rail — its muted
   wayfinding ink is page.css vocabulary, not prose.) */
.zc-leaf a:not(.zc-btn):not(.zc-link-quiet):not(.zNav-link):not(.zNavbar-brand):not(.zDropdown-item):not(.zBreadcrumb a)       { color: #a5b4fc; text-decoration: underline; text-underline-offset: 2px; }
.zc-leaf a:not(.zc-btn):not(.zc-link-quiet):not(.zNav-link):not(.zNavbar-brand):not(.zDropdown-item):not(.zBreadcrumb a):hover { color: #c7d2fe; }

/* ── leaf nav rail — PROMOTED to zC_Main.css (2026-07-16) ────────────────────
   The %leafNav wayfinding rail started leaf-only, but hubs ride it too
   (DisplayEvents chain nav) — hub pages don't load this brush, so the rail's
   grid lives on the global canvas now. No leaf-scoped rules remain here. */
