﻿/* ══ CORE DESIGN TOKENS ══ */
:root {
  --bg:#050505; --surface:#0d0d0d; --surface2:#121212;
  --text:#f5f5f5; --muted:#9f9f9f; --muted2:#707070;
  --accent:#e8d3a5; --sans:'Inter',sans-serif;
  --serif:'Cormorant Garamond',serif; --mono:'IBM Plex Mono',monospace;
}

/* NAV / PLATFORM BAR */
.pf-search-bar { height: 52px; border-bottom: 2px solid rgba(255,255,255,.12); }
.pf-cmd-tabs { display: flex; align-items: stretch; flex: 1; overflow: hidden; }
.pf-ctab { padding: 0 22px; font-size: .65rem; letter-spacing: .14em; font-weight: 500; }
.pf-user-btn { font-size: .65rem; letter-spacing: .14em; padding: 0 20px; }

/* HERO */
.pf-comps-hero-title { font-size: clamp(2.4rem, 4vw, 4rem); font-weight: 400; line-height: .95; letter-spacing: -.04em; }
.pf-comps-hero-eyebrow { font-size: .65rem; letter-spacing: .26em; }
.hero-title { font-size: clamp(3.8rem, 7.5vw, 8rem); line-height: 1.02; letter-spacing: -.04em; font-weight: 400; }
.hero-sub { font-size: 1.05rem; font-weight: 300; line-height: 2; letter-spacing: .01em; }

/* MANIFESTO / PHILOSOPHY */
.manifesto-copy h2 { font-size: clamp(2.8rem, 4.5vw, 4.6rem); line-height: .92; letter-spacing: -.04em; font-weight: 400; margin-bottom: 3rem; }
.manifesto-copy p { font-size: 1.05rem; line-height: 2; font-weight: 300; margin-bottom: 1.8rem; }
.manifesto-aside { font-size: 1.3rem; line-height: 1.7; font-style: italic; }
.philosophy-copy h2 { font-size: clamp(2.8rem, 4.5vw, 4.6rem); line-height: .92; letter-spacing: -.04em; }
.philosophy-copy p { font-size: 1.05rem; line-height: 2; font-weight: 300; margin-bottom: 1.7rem; }

/* PULL QUOTE */
.pull-quote blockquote { font-size: clamp(3rem, 5.5vw, 5.6rem); line-height: 1.03; letter-spacing: -.05em; font-weight: 300; }
.pull-quote cite { font-size: 1.2rem; letter-spacing: .18em; }

/* LAB / VIDEO SECTION */
.lab-body h2 { font-size: clamp(2.6rem, 4vw, 4rem); line-height: .95; letter-spacing: -.04em; }
.lab-body p { line-height: 2; font-weight: 300; margin-bottom: 2.5rem; }
.lab-principle { font-size: 1rem; line-height: 1.7; }

/* BUTTONS */
.btn { padding: 0.5rem 3rem; font-size: .65rem; letter-spacing: .2em; border: 1px solid rgba(255,255,255,.16); }
.link-line { font-size: .65rem; letter-spacing: .18em; }
.linkedin-btn { font-size: .65rem; letter-spacing: .16em; padding: .55rem 1.1rem; }

/* VAULT / LIBRARY CARDS */
.vault-featured-title { font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.1; letter-spacing: -.04em; }
.vault-featured-desc { font-size: .95rem; line-height: 1.85; }
.vault-featured-badge { font-size: .65rem; letter-spacing: .18em; padding: .35rem .9rem; }
.vault-featured-kpi { font-size: .65rem; letter-spacing: .1em; padding: .3rem .8rem; }
.thesis-card h3 { font-size: 1.1rem; line-height: 1.4; }
.thesis-content p { font-size: .88rem; line-height: 1.65; }
.thesis-tag { font-size: .62rem; letter-spacing: .16em; }
.thesis-card-date,.thesis-card-read { font-size: .65rem; }
.thesis-card-type-badge { font-size: .6rem; letter-spacing: .14em; padding: .2rem .6rem; }

/* FEED STRIP */
.ic-feed-eyebrow { font-size: .65rem; letter-spacing: .22em; }
.ic-feed-title { font-size: 1.3rem; line-height: 1.25; letter-spacing: -.025em; }
.ic-feed-meta { font-size: .65rem; letter-spacing: .08em; }
.ic-feed-arrow { font-size: .65rem; letter-spacing: .12em; }

/* ANALYSTS */
.analyst-name { font-size: 2rem; }
.analyst-bio { font-size: .92rem; line-height: 1.9; }
.analysts h2 { font-size: clamp(2.8rem, 4.5vw, 4.6rem); letter-spacing: -.03em; }

/* SUBSTACK / CTA */
.substack h2 { font-size: clamp(2.8rem, 4.5vw, 4.6rem); line-height: 1.05; letter-spacing: -.04em; }

/* PLATFORM: PANEL SYSTEM */
.pf-ph-title { font-size: 7.5px; letter-spacing: .2em; }
.pf-tbl td { font-size: 9px; }
.pf-tbl th { font-size: 7.5px; }

/* KPI / METRIC NUMBERS (TEARSHEET) */
.pf-ts-id-price,.pf-ts-id-name { font-size: 24px; font-weight: 800; letter-spacing: .06em; }
.pf-ts-id-change { font-size: 12px; font-weight: 700; }
.pf-dp-val { font-size: 11px; font-weight: 500; }
.pf-accord-val { font-size: 11px; font-weight: 500; }
.pf-sens-cell { font-size: 14px; }
.pf-grade { font-size: 28px; }
.pf-mod-guid-val { font-size: 14px; font-weight: 700; }

/* DATA LABELS (INLINE) */
.pf-cr-label,.pf-ry-label,.pf-earn-co,.pf-news-source,.pf-ts-nh-source { font-size: 7.5px; }
.pf-cr-val,.pf-ry-val,.pf-earn-est,.pf-earn-tk { font-size: 9px; }
.pf-earn-date,.pf-cr-chg,.pf-earn-impl,.pf-earn-timing { font-size: 7.5px; }
.pf-news-hl,.pf-ts-nh-hl { font-size: 9px; line-height: 1.5; }
.pf-news-ts,.pf-ts-nh-ts { font-size: 7.5px; }

/* DATA SELECTION DRAWER */
.pf-ds-hdr-label { font-size: .72rem; font-weight: 600; letter-spacing: .02em; }
.pf-ds-cat-btn { font-size: .7rem; font-weight: 500; }
.pf-ds-chip { font-size: .68rem; letter-spacing: .01em; padding: 4px 9px; }
.pf-ds-sel-chip { font-size: .65rem; font-weight: 500; }

/* COMPS SECTION */
.pf-comps-metric-name { font-size: 1.55rem; letter-spacing: -.025em; }
.pf-comps-metric-unit { font-size: .65rem; letter-spacing: .18em; }
.pf-comps-stmt-tab { font-size: .75rem; letter-spacing: .06em; padding: 0 22px; }
.pf-comps-scale-btn { font-size: .65rem; letter-spacing: .12em; padding: 4px 12px; }
.pf-comps-chip-tk { font-size: .65rem; letter-spacing: .08em; }

/* VAULT FILTER / SEARCH */
.vault-search-input { font-size: .82rem; letter-spacing: .02em; padding: .55rem 1rem .55rem 2.4rem; }
.vault-featured-type { font-size: .65rem; letter-spacing: .18em; }

/* RAIL / PRESET STEPS */
.pf-rail-title { font-size: .65rem; letter-spacing: .2em; }
.pf-rail-subtitle { font-size: .85rem; }

/* FINANCIAL TABLES */
.pf-fin-tbl th { font-size: 7.5px; letter-spacing: .1em; padding: 5px 10px; }
.pf-fin-tbl td { font-size: 9px; padding: 4px 10px; }
.pf-fin-section-row td { font-size: 7.5px; letter-spacing: .1em; }

/* RATIOS / DUPONT */
.pf-dp-label { font-size: 7.5px; letter-spacing: .1em; }
.pf-accord-name { font-size: 9px; font-weight: 500; }

/* SCREENER TABLE */
.pf-scr-tbl thead th { font-size: .65rem; letter-spacing: .12em; }
.pf-scr-tbl tbody td { font-size: .72rem; }

/* EYEBROW LABELS */
.eyebrow { font-size: .62rem; letter-spacing: .22em; }
.pf-comps-section-header { font-size: .65rem; letter-spacing: .28em; }

