/* Brilliance Labs type system: Canela (display), Graphik (text), IBM Plex Mono (data).
   Canela and Graphik are licensed from Commercial Type (license 2609-PHQTYS) for brilliancelabs.org only.
   Font files live in /fonts and are loaded by /fonts/fonts.css. */
:root {
  --display: 'Canela Web', 'Canela', Georgia, serif;
  --serif:   'Canela Web', 'Canela', Georgia, serif;
  --body:    'Graphik Web', 'Graphik', system-ui, -apple-system, sans-serif;
  --mono:    'IBM Plex Mono', ui-monospace, Menlo, monospace;
}
body { font-feature-settings: "kern"; }

/* Site-wide: everything that used Bebas Neue is now Canela in sentence case */
.about-label,
.anchor-content h3,
.apply-track-name,
.apply-track-num,
.area-card h3,
.article-body h2,
.article-body h3,
.article-header h1,
.article-not-found h1,
.benefit-card h3,
.board-card h3,
.board-photo-placeholder,
.brilliance-card-label .card-num,
.brilliance-card-label h3,
.btc-tax-note h3,
.btc-tax-note h4,
.card-title,
.communal-card h4,
.community-card h3,
.community-item h3,
.connect-block h3,
.consult-deliverables h3,
.consult-price,
.consulting-card h3,
.credential-card h3,
.credential-card h4,
.cta-band h2,
.cta-band-headline,
.cta-band-title,
.default-card h3,
.engagement-step h3,
.faq-question,
.faq-section h2,
.fedi-step-num,
.form-page-title,
.form-section-title,
.framework-anchor-title,
.fy-feature-stats strong,
.fy-feature-title,
.give-tab,
.give-title,
.glance-num,
.grant-card h3,
.grant-history-title,
.guide-body h2,
.guide-cta h2,
.guide-hero h1,
.guide-title,
.hero-key .k,
.hero-title,
.impact-banner-stats strong,
.impact-banner-title,
.impact-item h3,
.impact-item h4,
.impact-num,
.init-name,
.init-num,
.lab-feature-title,
.lab-location,
.lab-title,
.loop-card .level,
.marquee-track span,
.mobile-nav-overlay a,
.nav-brand .nb-text,
.nf-links a strong,
.nf-title,
.page-hero-title,
.pain-card h3,
.pain-card-label,
.panel-head h3,
.phase-label,
.phase-number,
.phase-step-dot,
.pilot-deliverables-title,
.pilot-price,
.portal-tag,
.post-card h3,
.principle-card h3,
.privacy-body h2,
.privacy-title,
.proof-card figcaption strong,
.proof-title,
.qa-phone,
.qc .num,
.related-card h3,
.related-posts h2,
.research-spotlight-title,
.resource-card h3,
.review-item h4,
.round-focus-title,
.sch-day,
.schedule-time,
.section-display,
.section-head .section-title,
.section-title,
.service-card h3,
.signup-band-title,
.site-footer .footer-logo,
.spotlight-stat-num,
.stat-num,
.step-chip .num,
.step-content h3,
.step-number,
.step-title,
.stream-card h3,
.tab-btn .tab-num,
.team-card h3,
.team-photo-placeholder,
.tension .pair-label,
.tension .pair-title,
.thanks-title,
.whitepaper-cover-title,
.whitepaper-text h2,
.why-card h3,
body.microsite h1,
body.microsite h2,
body.microsite h3,
body.microsite h4,
footer .footer-brand .fb-text,
[style*="var(--display)"] {
  text-transform: none !important; letter-spacing: -0.015em !important; font-weight: 400; line-height: 1.08;
}

/* Homepage refinements */
/* Headlines: Canela in sentence case (Bebas Neue relied on all caps) */
.hero-title, .give-title, .section-display, .section-head .section-title, .signup-band-title,
.about-label, .proof-title, .impact-banner-title, .init-name, .lab-title, .lab-feature-title,
.card-title, .proof-card figcaption strong, .mobile-nav-overlay a {
  text-transform: none; letter-spacing: -0.018em; font-weight: 400;
}
/* Hero: heavier weight, tight two-line stack, ember italic (orange bar removed Oct 2026) */
.hero-title { font-size: clamp(64px, min(10.5vw, 14.5vh), 150px); line-height: 0.96; font-weight: 500; letter-spacing: -0.03em; }
.hero-title .hero-line { padding-bottom: 0.04em; }
/* Room for descenders (the g in Ignited) inside the reveal mask, without changing the layout */
.hero-title .hero-line:nth-child(2) { padding-bottom: 0.28em; margin-bottom: -0.24em; }
.hero-title .hero-line:nth-child(2) .hero-line-inner { font-style: italic; font-weight: 400; color: #B86808; } /* deep ember: 3.7:1 on cream, passes for large text */
.give-title { font-size: clamp(48px, 8vw, 108px); line-height: 1.0; font-weight: 300; letter-spacing: -0.03em; }
.section-display { font-size: clamp(44px, 6.2vw, 86px); line-height: 1.0; letter-spacing: -0.025em; }
.section-head .section-title { line-height: 1.02; }
.about-label { font-size: clamp(34px, 4.4vw, 54px); line-height: 1.02; }
.proof-title { font-size: clamp(36px, 4.4vw, 62px); line-height: 1.04; }
.impact-banner-title { font-size: clamp(26px, 3vw, 40px); line-height: 1.08; }
.init-name { font-size: clamp(26px, 2.8vw, 42px); line-height: 1.04; }
.lab-title { font-size: 23px; line-height: 1.2; }
.lab-feature-title { font-size: 32px; line-height: 1.1; }
.proof-card figcaption strong { font-size: 21px; line-height: 1.15; }
.mobile-nav-overlay a { font-size: 30px; }

/* Mission statement: Canela italic in place of Cormorant Garamond */
.about-body p.about-mission { font-style: italic; font-weight: 300; letter-spacing: -0.005em; }

/* Data: IBM Plex Mono for initiative numbers, stats, dates and fine print */
.init-num { font-family: var(--mono) !important; font-size: 12.5px !important; letter-spacing: 0.08em !important; text-transform: none !important; }

.hero-corner, .give-methods { font-family: var(--mono); letter-spacing: 0.04em; }

/* Body copy, round 2: Graphik Regular instead of Light, slightly darker gray */
.about-body p, .about-closing, .impact-banner-sub, .lab-excerpt, .lab-feature-text, .give-quote,
.section-head .section-lede, .signup-band-text, .site-footer .footer-tagline { font-weight: 400; }
.about-body p, .lab-excerpt, .section-head .section-lede, .signup-band-text, .hero-subtext { color: rgba(13,13,13,0.76); }

/* ===== Fix pass 1 (Fable audit) ===== */
/* Inner-page heroes: clear the fixed nav, tighter serif stack, room for descenders */
.page-hero { padding-top: calc(var(--nav-h, 93px) + 56px); }
.page-hero-title { font-size: clamp(52px, 8.2vw, 124px); line-height: 1.0; letter-spacing: -0.022em; }
.page-hero-title .hero-line { padding-bottom: 0.07em; margin-bottom: -0.05em; }

/* Section titles and initiative names: no hard breaks, balanced wrapping, sized for Canela */
.section-title, h2.section-title { font-size: clamp(30px, 4.2vw, 56px); line-height: 1.05; text-wrap: balance; }
.init-name { text-wrap: balance; }

/* Homepage stats row: two columns on phones so it never overflows */
@media (max-width: 600px) {
  .impact-banner-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; }
  .impact-banner-stats strong { font-size: clamp(28px, 8vw, 34px) !important; }
}

/* Small Canela becomes Plex Mono labels (Canela hairlines disappear below ~18px) */
.brilliance-card-label .card-num, .pain-card-label, .portal-tag, .phase-step-dot, .apply-track-num {
  font-family: var(--mono) !important; font-size: 11.5px !important; font-weight: 500 !important;
  letter-spacing: 0.1em !important; text-transform: uppercase !important; line-height: 1.3;
}
.marquee-track span { font-family: var(--body) !important; font-weight: 500 !important; text-transform: uppercase !important; letter-spacing: 0.18em !important; font-size: 12px !important; }
.give-tab { font-family: var(--body) !important; font-weight: 500 !important; font-size: 13px !important; text-transform: uppercase !important; letter-spacing: 0.12em !important; }
.btc-tax-note h3, .btc-tax-note h4 { font-family: var(--body) !important; font-weight: 600 !important; font-size: 16px !important; letter-spacing: 0 !important; }
/* Small card titles stay Canela but at a size where it holds up */
.principle-card h3, .why-card h3, .engagement-step h3, .consult-deliverables h3 { font-size: 21px; line-height: 1.15; }
.service-card h3 { font-size: 19px; line-height: 1.15; }
/* Canela italic quotes: a notch larger for text sizes */
.testimonial-quote, .labs-note, .italic-accent { font-size: 19px; line-height: 1.5; }

/* Plex Mono rule: amounts, stats, step numbers, dates, BL notation */
/* Numbers, option D: display money and stats (24px+) in Canela; step numbers, notation, dates and small data in Plex Mono */
.stat-num, .spotlight-stat-num, .fy-feature-stats strong, .impact-banner-stats strong, .pilot-price, .consult-price {
  font-family: var(--display) !important; font-weight: 400 !important; letter-spacing: -0.015em !important; font-variant-numeric: lining-nums;
}
.stat-num { font-size: 44px !important; } .spotlight-stat-num { font-size: 34px !important; } .fy-feature-stats strong { font-size: 34px !important; }
.impact-banner-stats strong { font-size: 36px !important; line-height: 1 !important; }
.pilot-price, .consult-price { font-size: 56px !important; letter-spacing: -0.02em !important; }
.impact-num, .phase-number { font-family: var(--mono) !important; font-weight: 500; letter-spacing: -0.02em !important; font-size: 32px !important; }
table td, table th { font-variant-numeric: tabular-nums; }
@media (max-width: 600px) { .impact-banner-stats strong { font-size: clamp(28px, 8vw, 34px) !important; } .pilot-price, .consult-price { font-size: 46px !important; } .stat-num { font-size: 38px !important; } }
time, .lab-date, .post-date, .article-date, .related-date { font-family: var(--mono); font-size: 0.86em; letter-spacing: 0.02em; }

/* One tracking scale for uppercase Graphik: labels .18em, buttons .12em */
[class*="eyebrow"], .section-aside, .init-tag, .lab-type, .area-card-tag, .impact-banner-eyebrow { letter-spacing: 0.18em !important; }
.btn, .nav-cta, .give-cta { letter-spacing: 0.12em !important; }
.section-eyebrow { text-transform: uppercase; font-size: 12px; font-weight: 500; }

/* Chips hug their text */
.init-tag { align-self: flex-start; width: auto; }

/* Homepage lede: two-line sans needs air */
.hero-lede { line-height: 1.22; }

/* ===== Fix pass 2 (Fable re-audit) ===== */
/* Inner heroes: the last line of a multi-line headline is the ember italic accent, like "Ignited" on the homepage */
.page-hero-title .hero-line:last-child:not(:first-child) .hero-line-inner { font-style: italic; color: #E8860F; }
.page-hero-title .hero-line:last-child:not(:first-child) { padding-bottom: 0.22em; margin-bottom: -0.2em; }
.page-hero-title { font-size: clamp(58px, 8.2vw, 124px); }

/* Second hero line needs its entrance animation on pages that only defined the first */
.page-hero-title .hero-line:nth-child(2) .hero-line-inner { animation: slideUp 0.85s cubic-bezier(0.16,1,0.3,1) 0.7s forwards; }
@media (prefers-reduced-motion: reduce) { .page-hero-title .hero-line-inner { animation: none !important; opacity: 1 !important; transform: none !important; } }

/* Summit */
h1 .italic-accent, h2 .italic-accent, h3 .italic-accent { font-size: inherit !important; line-height: inherit !important; }
body.microsite .hero h1 { font-size: clamp(46px, 6vw, 76px); text-wrap: balance; max-width: 14ch; }
.schedule-item, .schedule-break { grid-template-columns: 170px 1fr !important; }
.schedule-time { white-space: nowrap; }
.schedule-time { font-family: var(--mono) !important; font-size: 13px !important; letter-spacing: 0.02em !important; line-height: 1.5; }
body.microsite .hero-overline { font-size: 12px !important; font-weight: 500 !important; }
body.microsite .btn { font-size: 13px; text-transform: uppercase; letter-spacing: 0.12em !important; }

/* Footer headings stay tracked caps */
.site-footer .footer-h { font-family: var(--body) !important; text-transform: uppercase !important; letter-spacing: 0.18em !important; font-weight: 500 !important; font-size: 12px !important; }

/* Eyebrows: one size and weight everywhere */
.section-eyebrow { font-size: 12px !important; font-weight: 500 !important; }

/* Remaining tracking onto the two tokens */
.init-highlight-tag, .stat-label, .filter-row-label, .trust-card-label, .community-card-tag, .hero-overline,
.section-label, .spotlight-stat-label, .hero-video-toggle-label { letter-spacing: 0.18em !important; }
.round-btn, .site-nav .nav-links a { letter-spacing: 0.12em !important; }

/* Mobile hierarchy on About: section titles never smaller than card headings */
.section-title, h2.section-title { font-size: clamp(34px, 4.2vw, 56px); }
.brilliance-card-label h3 { font-size: clamp(26px, 3.4vw, 44px); line-height: 1.05; }

/* ===== Initiative colors: one light, many colors =====
   Bitcoin orange only for the Bitcoin family (TGFB, Bitcoin for Missions).
   Fill = bars, hover rule, chip border; ink = BL number, chip text, hover title (all ink >= 5:1 on cream). */
.init-card[href="https://tgfb.com"],          #tgfb                 { --card-fill: #E8860F; --card-ink: #9A5700; }
.init-card[href="/frontier-finance"],         #frontier-finance     { --card-fill: #1E3A6E; --card-ink: #1E3A6E; }
.init-card[href="/portland-grants"],          #portland-grants      { --card-fill: #13874A; --card-ink: #0F703E; }
.init-card[href="/bitcoin-for-missions"],     #bitcoin-for-missions { --card-fill: #E8860F; --card-ink: #9A5700; }
.init-card[href="/think-tank"],               #think-tank           { --card-fill: #6A4BC4; --card-ink: #5A3DB0; }
.init-card[href="/ignite-ai-consulting"],     #ai-consulting        { --card-fill: #00BFE8; --card-ink: #006A8E; }
.bar-tgfb      { background: #E8860F !important; }
.bar-frontier  { background: #1E3A6E !important; }
.bar-portland  { background: #13874A !important; }
.bar-bfm       { background: linear-gradient(90deg, #E8860F 0 60%, #1A1714 60% 100%) !important; }
.bar-thinktank { background: linear-gradient(90deg, #6A4BC4 0 60%, #D4A853 60% 100%) !important; }  /* violet ground, honey light */
.bar-ignite    { background: linear-gradient(90deg, #00BFE8 0 60%, #006A8E 60% 100%) !important; }
.init-accent-bar { width: 44px !important; }
/* Chips and numbers carry the initiative color too */
.init-card .init-tag, .init-full .init-tag { color: var(--card-ink); border-color: color-mix(in srgb, var(--card-fill) 45%, transparent); }
.init-full .init-highlight-tag { border-color: color-mix(in srgb, var(--card-fill) 45%, transparent); }
.init-card:hover, .init-full:hover { background: color-mix(in srgb, var(--card-fill) 5%, var(--bg-card, #EFECE5)); }

/* ===== Think Tank color pair: deep violet ground + honey accent =====
   (Frontier Finance keeps its navy ground + gold accent.) Scoped to the Think Tank page. */
body.accent-honey { --tt-ground: #1E1433; --tt-ground-2: #2A1D47; }
body.accent-honey .page-hero { background: var(--tt-ground); }
body.accent-honey .page-hero::before {
  background: linear-gradient(to right, var(--tt-ground) 0%, var(--tt-ground) 15%, rgba(30,20,51,0.78) 30%, rgba(30,20,51,0.34) 50%, rgba(30,20,51,0.08) 70%, transparent 85%);
}
body.accent-honey .cta-band { background: linear-gradient(160deg, var(--tt-ground) 0%, var(--tt-ground-2) 100%); }
body.accent-honey .page-hero-title .hero-line:last-child:not(:first-child) .hero-line-inner { color: #D4A853; }
/* Hero accent word takes each initiative's light (pair rule) */
body.accent-gold .page-hero-title .hero-line:last-child:not(:first-child) .hero-line-inner { color: #CC8526; }   /* Frontier Finance: gold on navy, 5.7:1 */
/* Portland Grants pair: evergreen ground + fir green light (replaces the old seafoam #6FCF97) */
body.accent-green { --green-on-dark: #2EA864; --focus-on-dark: #45B876; }
body.accent-green .page-hero-title .hero-line:last-child:not(:first-child) .hero-line-inner { color: #2EA864; }
body.accent-green .page-hero::before { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(to right, rgba(10,30,22,0.86) 0%, rgba(10,30,22,0.64) 40%, rgba(13,13,13,0.18) 75%, transparent 100%); }
body.accent-green .cta-band-eyebrow { color: #45B876; }            /* 12px on the evergreen band: 4.85:1 */
body.accent-green .cta-band-btn:not(.cta-band-btn--ghost) { color: #0D0D0D; }   /* black on fir: 6.4:1; the ghost button keeps cream */
/* Round Ten card and hero round pill join the evergreen pair */
body.accent-green .round-focus--current .round-focus-inner { border-top-color: #2EA864; }
body.accent-green .round-focus--current .round-focus-eyebrow { color: #2EA864; }
body.accent-green .round-btn--primary { background: #2EA864; color: #0D0D0D; }
body.accent-green .round-btn--primary:hover { background: #45B876; }
body.accent-green .round-focus-contact a, body.accent-green .round-focus-body a { color: #45B876; border-bottom-color: rgba(69,184,118,0.4); }
body.accent-green .round-live-dot { background: #2EA864; animation-name: roundPulseGreen; }
@keyframes roundPulseGreen { 0% { box-shadow: 0 0 0 0 rgba(46,168,100,0.55); } 70% { box-shadow: 0 0 0 10px rgba(46,168,100,0); } 100% { box-shadow: 0 0 0 0 rgba(46,168,100,0); } }
body.accent-green .hero-round-pill { border-color: rgba(46,168,100,0.65); }
body.accent-green .hero-round-pill:hover { border-color: #2EA864; }

/* ===== AI Framework + Ministry Build Lab (body.microsite) ===== */
/* Small italic lines: Canela needs 19px+, otherwise Graphik italic */
.glance-test, .qc .q, .scripture-inline .q, footer .footer-brand .fb-tag { font-size: 19px !important; line-height: 1.4; }
.communal-card .scripture-inline .q, footer .credit { font-family: var(--body) !important; font-size: 15px !important; }
body.microsite em { font-family: inherit; }      /* inline emphasis follows its text (inline styles still win) */
body.microsite svg text { font-family: var(--body) !important; }   /* diagram labels: Graphik, never Canela caps */
.nav-brand .nb-text { font-size: 19px !important; }
/* Small numbers become Plex Mono labels */
.qc .num, body.microsite span.num { font-family: var(--mono) !important; font-size: 12px !important; font-weight: 500; letter-spacing: 0.08em !important; }

/* ===== Licensed-font tidy-ups ===== */
.cta-band-emphasis, .guide-body h3, .related-grid .rel-title { font-weight: 500 !important; }   /* no Canela Semibold */
.hero-title .hero-line:nth-child(2) .hero-line-inner { font-weight: 500; }                      /* "Ignited" in Medium Italic, matching "Brilliance" */

/* Preview badge */

/* ===== Hero height (Oct 2026) =====
   Page heroes used min-height: 85-100vh with the content near the top, so tall windows and phones
   showed a big empty band under the buttons. Cap the minimum on desktop; on phones and tablets
   the hero is as tall as its content. */
.page-hero { min-height: min(90vh, 760px) !important; min-height: min(90dvh, 760px) !important; }
@media (max-width: 900px) { .page-hero { min-height: 0 !important; } }

/* ===== Top menu (Oct 2026) =====
   Between 900 and ~1060px the five links squeezed between the logo and Give Now and wrapped
   ("From the Lab" on three lines). Links never wrap; spacing tightens on medium windows; the
   hamburger menu takes over below 1000px instead of 900px (js/site.js closes it above 1000px). */
.site-nav .nav-links a, .site-nav .nav-dropdown-toggle, .site-nav .nav-dropdown-btn { white-space: nowrap; }
@media (max-width: 1200px) { .site-nav .nav-links { gap: clamp(22px, 2.6vw, 38px); } }
@media (max-width: 1000px) {
  :root { --nav-h: 71px; }
  .site-nav { padding: 13px var(--gutter); gap: 16px; }
  .site-nav.scrolled { padding-top: 13px; padding-bottom: 13px; }
  .site-nav .nav-links { display: none; }
  .site-nav .nav-logo img { height: 28px; }
  .site-nav .nav-hamburger { display: flex; order: 2; }
  .site-nav .nav-cta { order: 1; margin-left: auto; min-height: 36px; padding: 8px 16px; font-size: 12px; }
}
