/* ============================================================
   FontVault — Font Detail Page
   ============================================================ */

/* ── Page wrapper ── */
.fd-page { background: var(--white); min-height: 100vh; }

/* Shared eyebrow / mono label */
.fd-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; font-weight: 600; letter-spacing: 1.5px;
  color: var(--ink-muted);
}
.fd-eyebrow-row { display: flex; align-items: center; justify-content: space-between; }

.fd-section-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 48px; font-weight: 600;
  letter-spacing: -1.8px; line-height: 1.05; margin: 0;
}
.fd-section-sub {
  font-size: 16px; line-height: 1.5; color: var(--ink-muted);
  margin: 0; max-width: 760px;
}

/* ================================================================
   1. HERO
   ================================================================ */
.fd-hero {
  padding: 48px 80px 64px;
  max-width: 1440px; margin: 0 auto;
}

.fd-breadcrumb {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--ink-muted);
  margin-bottom: 32px;
}
.fd-breadcrumb svg { width: 12px; height: 12px; flex-shrink: 0; }
.fd-bc-active { color: var(--ink); font-weight: 600; }

.fd-hero-row {
  display: flex; gap: 40px;
  justify-content: space-between; align-items: flex-start;
}
.fd-hero-main {
  flex: 1; max-width: 740px;
  display: flex; flex-direction: column; gap: 14px;
}
.fd-hero-tags { display: flex; align-items: center; gap: 12px; }
.fd-hero-pill {
  background: var(--accent); padding: 4px 8px; border-radius: 4px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; font-weight: 700; letter-spacing: 1.4px;
}
.fd-hero-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; font-weight: 600; letter-spacing: 1.4px; color: var(--ink-muted);
}
.fd-hero-title {
  font-size: clamp(56px, 7.2vw, 104px);
  font-weight: 700; letter-spacing: -4px; line-height: 0.95; margin: 0;
}
.fd-hero-subtitle {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 18px; font-weight: 500; letter-spacing: -0.3px;
  color: var(--ink-muted); margin: 6px 0 0;
}
.fd-hero-sub {
  font-size: 17px; line-height: 1.55; letter-spacing: -0.1px; color: var(--ink-muted); margin: 0;
}
.fd-hero-actions { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.fd-hero-btn {
  height: 50px; border-radius: 999px; padding: 0 22px;
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 600; letter-spacing: -0.1px;
  white-space: nowrap; cursor: pointer;
}
.fd-hero-btn svg { width: 15px; height: 15px; flex-shrink: 0; }
.fd-hero-btn.accent { background: var(--accent); color: var(--ink); border: none; }
.fd-hero-btn.outline { background: var(--white); border: 1px solid var(--border); color: var(--ink); }
.fd-hero-btn.outline:hover { background: var(--bg-light); }

/* Sidebar */
.fd-hero-side {
  width: 340px; flex-shrink: 0;
  background: var(--white); border: 1px solid var(--border);
  border-radius: 14px; overflow: hidden; align-self: flex-start;
}
.fd-side-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px; border-bottom: 1px solid var(--border);
}
.fd-side-row:last-child { border-bottom: none; }
.fd-side-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; font-weight: 700; letter-spacing: 1.4px; color: var(--ink-muted);
}
.fd-side-value { font-size: 13px; font-weight: 500; letter-spacing: -0.1px; }

/* ================================================================
   2. SPECIMEN GRID
   ================================================================ */
.fd-specimen {
  padding: 64px 80px; max-width: 1440px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 28px;
}
/* Header */
.fd-sg-header { display: flex; align-items: flex-end; justify-content: space-between; }
.fd-sg-header-left { display: flex; flex-direction: column; gap: 14px; }
.fd-sg-eyebrow-row { display: flex; align-items: center; gap: 10px; font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 1.6px; color: var(--ink-muted); }
.fd-sg-accent-dash { color: var(--accent); }
.fd-sg-title { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 56px; font-weight: 700; letter-spacing: -2.2px; line-height: 1; }
.fd-sg-header-meta { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 500; letter-spacing: 0.4px; color: var(--ink-muted); }
/* Row 1: Aa hero + pangram */
.fd-sg-row1 { display: flex; gap: 20px; height: 420px; }
.fd-sg-aa-card {
  flex: 1; background: var(--bg-dark); color: var(--ink-inverse);
  border-radius: 20px; padding: 28px 32px;
  display: flex; flex-direction: column; justify-content: space-between; overflow: hidden;
}
.fd-sg-aa-head { display: flex; align-items: center; justify-content: space-between; }
.fd-sg-aa-head-text { display: flex; flex-direction: column; gap: 6px; }
.fd-sg-aa-lbl { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 1.6px; color: rgba(250,250,247,0.5); }
.fd-sg-aa-ttl { font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 600; letter-spacing: -0.3px; }
.fd-sg-aa-controls { display: flex; gap: 8px; }
.fd-sg-ctrl-btn { width: 36px; height: 36px; border-radius: 999px; background: rgba(255,255,255,0.06); display: flex; align-items: center; justify-content: center; color: var(--ink-inverse); cursor: pointer; transition: background 0.12s; }
.fd-sg-ctrl-btn:hover { background: rgba(255,255,255,0.14); }
.fd-sg-ctrl-btn:disabled { opacity: 0.3; cursor: not-allowed; }
.fd-sg-ctrl-btn svg { width: 14px; height: 14px; }
.fd-sg-aa-big { font-size: 220px; font-weight: 700; letter-spacing: -8px; line-height: 1; flex: 1; display: flex; align-items: center; justify-content: center; }
.fd-sg-aa-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.fd-sg-axis { display: inline-flex; align-items: center; gap: 8px; font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 500; letter-spacing: 0.8px; color: rgba(250,250,247,0.7); }
.fd-sg-axis svg { width: 14px; height: 14px; color: var(--accent); }
.fd-sg-weights-row { display: flex; gap: 8px; }
.fd-sg-weight-tile { width: 60px; height: 60px; border-radius: 10px; background: rgba(255,255,255,0.06); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; cursor: pointer; transition: background 0.12s; }
.fd-sg-weight-tile:hover { background: rgba(255,255,255,0.12); }
.fd-sg-weight-tile.active { background: rgba(255,255,255,0.18); outline: 1px solid rgba(255,255,255,0.3); }
.fd-sg-wt-a { font-size: 24px; color: var(--ink-inverse); }
.fd-sg-wt-num { font-family: 'JetBrains Mono', monospace; font-size: 8px; font-weight: 700; color: rgba(250,250,247,0.5); letter-spacing: 0.8px; }
.fd-sg-pangram { width: 380px; flex-shrink: 0; background: var(--bg-dark); color: var(--ink-inverse); border: 1px solid var(--border); border-radius: 20px; padding: 32px; display: flex; flex-direction: column; justify-content: space-between; }
.fd-sg-pangram-text { font-size: 32px; font-weight: 700; letter-spacing: -1px; line-height: 1.15; }
.fd-sg-pangram-tag { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 1.4px; color: var(--accent); }
/* Row 2 & 3: 3-card rows */
.fd-sg-row { display: flex; gap: 20px; height: 280px; }
.fd-sg-card {
  flex: 1; background: var(--bg-dark); color: var(--ink-inverse);
  border: 1px solid var(--border); border-radius: 20px; padding: 32px;
  display: flex; flex-direction: column; justify-content: center; gap: 12px;
}
.fd-sg-card.accent { background: var(--accent); color: var(--ink); border-color: transparent; }
.fd-sg-card.center { align-items: center; }
.fd-sg-card-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 1.6px; }
.fd-sg-card.dark .fd-sg-card-label { color: var(--accent); }
.fd-sg-card.accent .fd-sg-card-label { color: var(--ink); }
.fd-sg-display { font-weight: 700; letter-spacing: -0.4px; line-height: 1.15; }
.fd-sg-ut { font-weight: 700; letter-spacing: -1px; line-height: 1.1; font-size: 32px; }
.fd-sg-nums { font-size: 56px; font-weight: 700; letter-spacing: -2.2px; color: var(--ink); }
.fd-sg-symbols { font-size: 36px; font-weight: 700; letter-spacing: -1px; }
.fd-sg-symbols.sm { font-size: 28px; font-weight: 500; letter-spacing: -0.8px; color: rgba(250,250,247,0.5); }
.fd-sg-body-test { font-size: 15px; line-height: 1.5; letter-spacing: -0.1px; color: var(--ink); }
.fd-sg-body-meta { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 500; letter-spacing: 0.4px; color: var(--ink); }
.fd-sg-hamburge { font-size: 42px; font-weight: 700; letter-spacing: -1.4px; }

/* ================================================================
   3. TYPE TESTER
   ================================================================ */
.fd-tester {
  padding: 64px 80px; max-width: 1440px; margin: 0 auto;
  background: var(--bg-light);
  display: flex; flex-direction: column; gap: 24px;
}
.fd-tester-head { display: flex; flex-direction: column; gap: 12px; }
.fd-tester-canvas {
  background: var(--white); border: 1px solid var(--border);
  border-radius: 8px; padding: 72px 64px; min-height: 180px;
  display: flex; align-items: center;
}
.fd-tester-live {
  font-weight: 600; line-height: 1.05; outline: none;
  width: 100%; caret-color: var(--accent); word-break: break-word;
}
.fd-tester-live:empty::before { content: 'Type something…'; opacity: 0.3; pointer-events: none; }

.fd-tester-toolbar {
  background: var(--white); border: 1px solid var(--border);
  border-radius: 8px; padding: 20px 24px;
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
}
.fd-ctrl { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.fd-ctrl-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 1.4px; color: var(--ink-muted); white-space: nowrap; }
.fd-ctrl-val { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: var(--ink); white-space: nowrap; min-width: 36px; }
input[type=range].fd-range {
  -webkit-appearance: none; width: 120px; height: 4px;
  background: var(--border); border-radius: 999px; outline: none; cursor: pointer;
}
input[type=range].fd-range::-webkit-slider-thumb { -webkit-appearance: none; width: 14px; height: 14px; border-radius: 50%; background: var(--ink); cursor: pointer; }
input[type=range].fd-range::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: var(--ink); border: none; cursor: pointer; }
.fd-ctrl-sep { width: 1px; height: 20px; background: var(--border); flex-shrink: 0; }

/* Pill picker */
.fd-pill-pick {
  background: var(--white); border: 1px solid var(--border);
  padding: 7px 12px; border-radius: 999px;
  font-size: 12px; font-weight: 500; letter-spacing: -0.1px;
  display: inline-flex; align-items: center; gap: 6px;
  cursor: pointer; white-space: nowrap; position: relative;
}
.fd-pill-pick:hover { background: var(--bg-light); }
.fd-pick-dd {
  position: absolute; top: calc(100% + 6px); left: 0;
  background: var(--white); border: 1px solid var(--border);
  border-radius: 10px; padding: 4px; min-width: 140px; z-index: 100;
  box-shadow: 0 8px 24px rgba(14,14,12,0.10);
}
.fd-pick-item {
  display: block; width: 100%; text-align: left;
  padding: 8px 12px; border-radius: 6px; font-size: 13px; font-weight: 500; cursor: pointer;
}
.fd-pick-item:hover  { background: var(--bg-light); }
.fd-pick-item.active { background: var(--accent); }

/* ================================================================
   4. HOW IT READS
   ================================================================ */
.fd-reads {
  padding: 64px 80px; max-width: 1440px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 24px;
}
.fd-reads-grid { display: flex; flex-direction: column; border-top: 1px solid var(--border); }
.fd-reads-row { display: flex; align-items: center; gap: 32px; padding: 24px 0; border-bottom: 1px solid var(--border); }
.fd-reads-size { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--ink-muted); width: 100px; flex-shrink: 0; }
.fd-reads-sample { flex: 1; }
.fd-reads-cols { display: flex; gap: 64px; padding-top: 32px; }
.fd-reads-col { flex: 1; display: flex; flex-direction: column; gap: 14px; }
.fd-reads-col .fd-reads-col-label { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.5px; color: var(--ink-muted); }
.fd-reads-col p { margin: 0; color: var(--ink); }
.fd-reads-col.body p { font-size: 16px; line-height: 1.6; }
.fd-reads-col.caption p { font-size: 13px; line-height: 1.5; }

/* ================================================================
   5. ALL WEIGHTS
   ================================================================ */
.fd-weights {
  padding: 64px 80px; max-width: 1440px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 48px;
  background: var(--bg-light);
}
.fd-weights-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 56px; font-weight: 500; letter-spacing: -1.5px; line-height: 1.05; margin: 0;
}
.fd-weights-grid { display: flex; flex-direction: column; }
.fd-wt-row {
  display: grid; grid-template-columns: 200px 1fr 80px 40px;
  align-items: center; gap: 32px; padding: 28px 0; border-bottom: 1px solid var(--border);
}
.fd-wt-row:last-child { border-bottom: none; }
.fd-wt-name  { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600; letter-spacing: 0.5px; }
.fd-wt-sample { font-size: 32px; letter-spacing: -1px; }
.fd-wt-axis  { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--ink-muted); text-align: right; }
.fd-wt-dl {
  width: 36px; height: 36px; border-radius: 999px; flex-shrink: 0;
  background: var(--accent); border: none;
  display: flex; align-items: center; justify-content: center;
  color: var(--ink); transition: background 0.12s, opacity 0.12s;
}
.fd-wt-dl:hover { opacity: 0.85; }
.fd-wt-dl svg { width: 13px; height: 13px; flex-shrink: 0; }

/* ================================================================
   6. PAIRING
   ================================================================ */
.fd-pairing {
  padding: 64px 80px; max-width: 1440px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 24px;
}
.fd-pairing-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.fd-pair-cards { display: flex; gap: 16px; }
.fd-pair-card {
  flex: 1; background: var(--white); border: 1px solid var(--border);
  border-radius: 16px; padding: 24px;
  display: flex; flex-direction: column; justify-content: space-between; min-height: 380px;
}
.fd-pair-strip {
  display: flex; align-items: center; justify-content: space-between;
  font-family: 'JetBrains Mono', monospace; font-size: 10px;
  font-weight: 700; letter-spacing: 1.4px; color: var(--ink-muted);
}
.fd-pair-num { background: var(--accent); padding: 2px 6px; border-radius: 3px; color: var(--ink); }
.fd-pair-comp { display: flex; flex-direction: column; gap: 8px; }
.fd-pair-kicker { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 1.4px; color: var(--ink-muted); }
.fd-pair-headline { font-size: 28px; font-weight: 700; letter-spacing: -0.8px; line-height: 1.1; }
.fd-pair-body { font-size: 13px; line-height: 1.55; color: var(--ink-muted); }
.fd-pair-bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 14px; border-top: 1px solid var(--border); }
.fd-pair-names { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 1.4px; display: inline-flex; align-items: center; gap: 8px; }
.fd-pair-arrow { width: 32px; height: 32px; border-radius: 999px; background: var(--ink); color: var(--accent); display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; text-decoration: none; }

/* ================================================================
   7. LANGUAGES
   ================================================================ */
.fd-langs {
  padding: 64px 80px; max-width: 1440px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 24px;
}
.fd-langs-head { display: flex; align-items: center; justify-content: space-between; }
.fd-langs-stat { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 500; letter-spacing: 0.6px; color: var(--ink-muted); }
.fd-lang-chips { display: flex; gap: 10px; padding: 4px 0; flex-wrap: wrap; }
.fd-chip { padding: 9px 12px; border-radius: 999px; display: inline-flex; align-items: center; gap: 7px; font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 1px; }
.fd-chip.dark  { background: var(--ink); color: var(--ink-inverse); }
.fd-chip.light { background: var(--white); border: 1px solid var(--border); color: var(--ink); }
.fd-lang-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.fd-lang-card { background: var(--white); border: 1px solid var(--border); border-radius: 14px; padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.fd-lang-name   { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 1.4px; color: var(--ink-muted); }
.fd-lang-sample { font-size: 24px; font-weight: 500; letter-spacing: -0.5px; line-height: 1.3; }

/* ================================================================
   8. CHARACTER SET
   ================================================================ */
.fd-charset {
  padding: 64px 80px; max-width: 1440px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 24px;
  background: var(--bg-light);
}
.fd-charset-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.fd-charset-tabs { display: flex; gap: 8px; }
.fd-charset-tab {
  background: var(--white); border: 1px solid var(--border);
  border-radius: 999px; padding: 9px 16px;
  font-size: 12px; font-weight: 500; cursor: pointer;
}
.fd-charset-tab.active { background: var(--ink); color: var(--ink-inverse); border-color: var(--ink); }
.fd-glyph-grid { display: flex; flex-direction: column; gap: 6px; }
.fd-glyph-row { display: flex; gap: 6px; }
.fd-glyph {
  flex: 1; min-width: 0; height: 64px;
  background: var(--white); border: 1px solid var(--border); border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; cursor: pointer; transition: background 0.1s, transform 0.1s;
  position: relative;
}
.fd-glyph:hover { background: var(--bg-light); }
.fd-glyph.accent { background: var(--accent); border-color: transparent; }
.fd-glyph.copied { background: var(--bg-dark); color: var(--ink-inverse); transform: scale(1.05); }
.fd-charset-foot { display: flex; align-items: center; justify-content: space-between; padding-top: 8px; }
.fd-charset-count { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 1px; color: var(--ink-muted); }
.fd-charset-all {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--bg-dark); color: var(--ink-inverse);
  padding: 10px 16px; border-radius: 999px; font-size: 13px; font-weight: 600;
}

/* ================================================================
   9. IN CONTEXT
   ================================================================ */
.fd-ctx {
  padding: 64px 80px; max-width: 1440px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 24px;
}
.fd-ctx-hero {
  background: var(--bg-dark); color: var(--ink-inverse);
  border-radius: 18px; padding: 40px; display: flex; gap: 40px; min-height: 360px; align-items: center;
}
.fd-ctx-hero-text { flex: 1; display: flex; flex-direction: column; gap: 24px; justify-content: center; }
.fd-ctx-label { color: var(--accent); font-size: 14px; font-weight: 600; letter-spacing: 0.4px; }
.fd-ctx-h    { font-size: 48px; font-weight: 700; letter-spacing: -1.8px; line-height: 1.05; margin: 0; color: var(--ink-inverse); }
.fd-ctx-desc { font-size: 17px; line-height: 1.5; color: rgba(250,250,247,0.7); margin: 0; }
.fd-ctx-ctas { display: flex; gap: 12px; }
.fd-ctx-b1 { background: var(--accent); color: var(--ink); padding: 14px 24px; border-radius: 999px; font-size: 14px; font-weight: 600; }
.fd-ctx-b2 { color: var(--ink-inverse); border: 1px solid rgba(250,250,247,0.24); padding: 14px 24px; border-radius: 999px; font-size: 14px; font-weight: 600; }
.fd-stat-card {
  width: 260px; flex-shrink: 0;
  background: rgba(255,255,255,0.08); border: 1px solid rgba(250,250,247,0.14);
  border-radius: 14px; padding: 22px; display: flex; flex-direction: column; justify-content: space-between; gap: 16px;
}
.fd-stat-head { display: flex; align-items: center; justify-content: space-between; }
.fd-stat-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 1.4px; color: rgba(250,250,247,0.5); }
.fd-stat-delta  { background: var(--accent); color: var(--ink); border-radius: 999px; padding: 3px 8px; font-size: 10px; font-weight: 700; }
.fd-stat-num    { font-size: 48px; font-weight: 700; letter-spacing: -1.8px; line-height: 1; }
.fd-stat-cap    { font-size: 11px; color: rgba(250,250,247,0.5); }
.fd-stat-bars   { display: flex; align-items: flex-end; gap: 4px; height: 48px; }
.fd-stat-bars span { flex: 1; background: rgba(250,250,247,0.25); border-radius: 2px; }
.fd-stat-bars span.live { background: var(--accent); }
.fd-stat-foot  { display: flex; align-items: center; justify-content: space-between; padding-top: 10px; border-top: 1px solid rgba(250,250,247,0.08); }
.fd-stat-live  { color: var(--accent); font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 1.2px; }
.fd-stat-upd   { color: rgba(250,250,247,0.5); font-size: 10px; }
.fd-ctx-row { display: flex; gap: 24px; }
.fd-ctx-block { flex: 1; display: flex; flex-direction: column; gap: 10px; }
.fd-ctx-card-lbl { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; letter-spacing: 1.5px; color: var(--ink-muted); }
.fd-ctx-card { background: var(--white); border: 1px solid var(--border); border-radius: 14px; padding: 24px; height: 380px; display: flex; flex-direction: column; gap: 16px; justify-content: space-between; overflow: hidden; }
/* Dashboard */
.fd-dash-top  { display: flex; align-items: center; justify-content: space-between; }
.fd-dash-eye  { font-size: 13px; font-weight: 500; color: var(--ink-muted); }
.fd-dash-delta { background: rgba(22,163,74,0.1); padding: 3px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; color: #16A34A; }
.fd-dash-stat  { font-size: 40px; font-weight: 700; line-height: 1; }
.fd-mini-stats { display: flex; align-items: center; gap: 14px; }
.fd-mini-stat  { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.fd-mini-lbl   { font-size: 9px; font-weight: 700; letter-spacing: 1.2px; color: var(--ink-muted); }
.fd-mini-val   { display: flex; align-items: flex-end; gap: 6px; }
.fd-mini-val .n { font-size: 18px; font-weight: 700; }
.fd-mini-val .d { color: #16A34A; font-size: 11px; font-weight: 600; }
.fd-mini-div   { width: 1px; height: 32px; background: var(--border); }
.fd-bars       { display: flex; align-items: flex-end; gap: 8px; height: 80px; }
.fd-bars span  { flex: 1; background: var(--ink); border-radius: 3px; opacity: 0.8; }
.fd-day-lbl    { display: flex; gap: 8px; margin-top: 4px; }
.fd-day-lbl span { flex: 1; text-align: center; font-size: 9px; font-weight: 500; color: var(--ink-muted); }
/* Settings */
.fd-pref-head  { display: flex; align-items: center; justify-content: space-between; }
.fd-pref-title { font-size: 15px; font-weight: 600; }
.fd-saved-pill { background: rgba(22,163,74,0.08); border-radius: 999px; padding: 3px 8px; display: inline-flex; align-items: center; gap: 5px; font-size: 10px; font-weight: 600; color: #16A34A; }
.fd-saved-pill::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #16A34A; }
.fd-pref-list  { display: flex; flex-direction: column; }
.fd-pref-row   { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 14px; font-weight: 500; }
.fd-pref-row:last-child { border-bottom: none; }
.fd-toggle     { width: 38px; height: 22px; border-radius: 999px; padding: 3px; display: flex; align-items: center; }
.fd-toggle.on  { background: var(--ink); justify-content: flex-end; }
.fd-toggle.off { background: #E6E6E0; justify-content: flex-start; }
.fd-toggle .dot { width: 16px; height: 16px; border-radius: 50%; background: var(--white); }
/* Mobile */
.fd-mob-card  { padding: 0 !important; gap: 0 !important; }
.fd-mob-status { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px 2px; font-size: 12px; }
.fd-mob-status .t { font-weight: 700; }
.fd-mob-status .c { font-size: 11px; font-weight: 600; color: var(--ink-muted); }
.fd-mob-today  { display: flex; align-items: center; justify-content: space-between; padding: 6px 18px 10px; }
.fd-mob-today h4 { margin: 0; font-size: 20px; font-weight: 700; }
.fd-mob-av     { width: 28px; height: 28px; border-radius: 999px; background: var(--accent); display: grid; place-items: center; font-weight: 700; font-size: 11px; flex-shrink: 0; }
.fd-mob-hero   { margin: 0 18px 10px; height: 88px; border-radius: 12px; padding: 12px; display: flex; align-items: flex-end; background-image: linear-gradient(rgba(14,14,12,0.5), rgba(14,14,12,0.5)), url('https://images.unsplash.com/photo-1497215728101-856f4ea42174?w=600&h=300&fit=crop'); background-size: cover; background-position: center; color: var(--ink-inverse); font-size: 14px; font-weight: 700; }
.fd-mob-act    { display: flex; flex-direction: column; }
.fd-act-row    { display: flex; align-items: center; gap: 10px; padding: 10px 18px; border-top: 1px solid var(--border); }
.fd-act-av     { width: 32px; height: 32px; border-radius: 999px; background: var(--bg-light); display: grid; place-items: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.fd-act-col    { display: flex; flex-direction: column; gap: 1px; flex: 1; min-width: 0; }
.fd-act-nm     { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fd-act-sub    { font-size: 11px; color: var(--ink-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fd-mob-spacer { flex: 1; }
.fd-mob-tabs   { display: flex; align-items: center; justify-content: space-around; padding: 10px 18px; border-top: 1px solid var(--border); }
.fd-mob-tab    { display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: 9px; font-weight: 500; color: var(--ink-muted); }
.fd-mob-tab.a  { color: var(--ink); font-weight: 700; }
.fd-mob-tab svg { width: 16px; height: 16px; }

/* ================================================================
   10. DEVELOPER INSTALL
   ================================================================ */
.fd-install {
  padding: 64px 80px; max-width: 1440px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 24px;
}
.fd-install-top { display: flex; align-items: center; justify-content: space-between; }
.fd-install-help { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--border); border-radius: 999px; padding: 6px 12px; font-size: 12px; font-weight: 500; color: var(--ink-muted); text-decoration: none; }
.fd-install-title { font-family: 'Space Grotesk', sans-serif; font-size: 44px; font-weight: 500; letter-spacing: -1px; line-height: 1.1; margin: 0; }
.fd-install-sub   { font-size: 16px; color: var(--ink-muted); line-height: 1.5; margin: 0; }
.fd-install-tabs  { display: flex; gap: 8px; flex-wrap: wrap; }
.fd-install-tab {
  background: var(--white); border: 1px solid var(--border);
  border-radius: 999px; padding: 10px 16px;
  font-size: 12px; font-weight: 500; cursor: pointer;
}
.fd-install-tab.active { background: var(--ink); color: var(--ink-inverse); border-color: var(--ink); }
.fd-install-tab:hover:not(.active) { background: var(--bg-light); }
.fd-code-block { background: var(--bg-dark); color: var(--ink-inverse); border-radius: 14px; padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.fd-code-hd { display: flex; align-items: center; justify-content: space-between; }
.fd-code-fname { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: rgba(250,250,247,0.5); }
.fd-code-copy { background: rgba(255,255,255,0.1); padding: 6px 12px; border-radius: 8px; font-size: 11px; font-weight: 600; color: var(--ink-inverse); display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.fd-code-copy:hover { background: rgba(255,255,255,0.18); }
.fd-code-copy svg { width: 11px; height: 11px; }
.fd-code { font-family: 'JetBrains Mono', monospace; font-size: 13px; line-height: 1.75; color: rgba(250,250,247,0.85); white-space: pre-wrap; word-break: break-all; }
.fd-code .c { color: #7BC971; }
.fd-code .k { color: #A78BFA; }
.fd-code .s { color: #86E5C8; }
.fd-code .n { color: #F5C242; }
.fd-install-cards { display: flex; gap: 12px; flex-wrap: wrap; }
.fd-install-card  { flex: 1; min-width: 180px; background: var(--bg-light); border: 1px solid var(--border); border-radius: 12px; padding: 18px; display: flex; flex-direction: column; gap: 8px; }
.fd-install-card-lbl  { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 1.4px; color: var(--ink-muted); }
.fd-install-card-body { font-size: 13px; line-height: 1.5; }

/* ================================================================
   11. SIMILAR FONTS
   ================================================================ */
.fd-similar {
  padding: 64px 80px; max-width: 1440px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 32px;
}
.fd-similar-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.fd-similar-left { display: flex; flex-direction: column; gap: 14px; }
.fd-similar-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
/* Explore-style dark cards for similar fonts */
.font-card-x {
  background: var(--bg-dark); color: var(--ink-inverse);
  border-radius: 14px; padding: 28px; display: flex; flex-direction: column;
  justify-content: space-between; gap: 16px; height: 320px;
  text-decoration: none; transition: transform .15s, box-shadow .15s; overflow: hidden;
}
.font-card-x:hover { transform: translateY(-2px); box-shadow: 0 20px 40px -12px rgba(14,14,12,.5); }
.card-top { display: flex; justify-content: space-between; align-items: center; }
.card-ord { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600; letter-spacing: 1.4px; color: rgba(250,250,247,.5); }
.card-var { background: var(--accent); color: var(--ink); padding: 4px 8px; border-radius: 4px; font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 1.2px; }
.card-specimen { font-size: 64px; line-height: .95; letter-spacing: -2px; color: var(--ink-inverse); font-weight: 700; flex: 1; display: flex; align-items: center; }
.card-specimen.lg { font-size: 76px; }
.card-specimen.sm { font-size: 52px; }
.card-bot { display: flex; justify-content: space-between; align-items: flex-end; }
.card-name-x { font-size: 14px; font-weight: 600; color: var(--ink-inverse); }
.card-cat-x { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: rgba(250,250,247,.5); letter-spacing: 0.4px; margin-top: 3px; }
.card-dl { background: var(--accent); color: var(--ink); padding: 8px 14px; border-radius: 999px; font-size: 12px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; border: 0; cursor: pointer; white-space: nowrap; }

/* ================================================================
   12. RESOURCES
   ================================================================ */
.fd-resources {
  padding: 48px 80px 80px; max-width: 1440px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 24px;
}
.fd-res-row { display: flex; gap: 12px; flex-wrap: wrap; }
.fd-res-cell {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 18px; border-radius: 10px;
  background: var(--bg-light); border: 1px solid var(--border);
  font-size: 13px; font-weight: 500; color: var(--ink);
}
.fd-res-cell:hover { background: var(--border); }

/* Shared view-all link */
.fd-view-all { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; letter-spacing: 1px; color: var(--ink-muted); white-space: nowrap; }
.fd-view-all:hover { color: var(--ink); }

/* ================================================================
   COMPARISON VIEW
   ================================================================ */
.fd-compare-bar { position: sticky; top: 72px; z-index: 40; background: var(--ink); color: var(--ink-inverse); border-bottom: 1px solid rgba(255,255,255,0.1); }
.fd-compare-bar-inner { max-width: 1440px; margin: 0 auto; padding: 0 80px; height: 52px; display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 500; }
.fd-compare-bar-inner .material-symbols-rounded { font-size: 20px; color: var(--accent); }
.fd-exit-compare { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,0.1); padding: 6px 14px; border-radius: 8px; font-size: 13px; font-weight: 600; }
.fd-exit-compare:hover { background: rgba(255,255,255,0.18); }
.fd-compare-cols { max-width: 1440px; margin: 0 auto; padding: 0 80px; display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.fd-compare-col { padding: 48px 40px; border-right: 1px solid var(--border); }
.fd-compare-col:last-child { border-right: none; }
.fd-compare-col-hd { margin-bottom: 32px; }
.fdc-col-num { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; color: var(--ink-muted); margin-bottom: 8px; }
.fdc-font-name { font-size: 40px; font-weight: 700; letter-spacing: -1.5px; margin-bottom: 6px; }
.fdc-font-meta { font-size: 13px; color: var(--ink-muted); text-transform: capitalize; }
.fdc-ag-wrap { margin-bottom: 32px; }
.fdc-ag { font-size: 120px; font-weight: 700; letter-spacing: -5px; line-height: 1; display: block; }
.fdc-section { margin-bottom: 36px; }
.fdc-label { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; color: var(--ink-muted); margin-bottom: 14px; }
.fdc-size-row { display: flex; align-items: baseline; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--border); }
.fdc-size-lbl { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--ink-muted); width: 36px; flex-shrink: 0; }
.fdc-s48 { font-size: 48px; font-weight: 700; letter-spacing: -1.5px; line-height: 1.1; margin: 0; }
.fdc-s24 { font-size: 24px; font-weight: 600; letter-spacing: -0.6px; line-height: 1.2; margin: 0; }
.fdc-s16 { font-size: 16px; font-weight: 400; line-height: 1.5; margin: 0; }
.fdc-s12 { font-size: 12px; font-weight: 400; line-height: 1.5; color: var(--ink-muted); margin: 0; }
.fdc-body-card { background: var(--bg-light); border-radius: 10px; padding: 20px; margin: 24px 0; }
.fdc-body-text { font-size: 15px; line-height: 1.7; margin: 0; }
.fdc-weight-row { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--border); }
.fdc-wt-badge  { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 1.2px; color: var(--ink-muted); width: 150px; flex-shrink: 0; }
.fdc-wt-sample { font-size: 22px; }
.fdc-char-row  { font-size: 18px; letter-spacing: 0.05em; line-height: 2; }
/* Compare font picker */
.fd-compare-wrapper { position: relative; }
.fd-picker { position: absolute; top: calc(100% + 8px); right: 0; background: var(--white); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; width: 280px; z-index: 200; box-shadow: 0 8px 32px rgba(14,14,12,0.12); }
.fd-picker-search { display: block; width: 100%; padding: 12px 14px; border: none; border-bottom: 1px solid var(--border); font-size: 13px; background: var(--bg-light); outline: none; }
.fd-picker-list { max-height: 260px; overflow-y: auto; }
.fd-picker-item { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; width: 100%; text-align: left; cursor: pointer; font-size: 13px; font-weight: 500; }
.fd-picker-item:hover { background: var(--bg-light); }
.fd-picker-active { background: var(--accent); }
.fd-picker-cat { font-size: 11px; color: var(--ink-muted); text-transform: capitalize; }
.fd-picker-empty { padding: 16px 14px; font-size: 13px; color: var(--ink-muted); }

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 1100px) {
  .fd-hero, .fd-specimen, .fd-tester, .fd-reads,
  .fd-weights, .fd-pairing, .fd-langs, .fd-charset,
  .fd-ctx, .fd-install, .fd-similar, .fd-resources { padding-left: 40px; padding-right: 40px; }
  .fd-compare-bar-inner, .fd-compare-cols { padding-left: 40px; padding-right: 40px; }
  .fd-hero-title { font-size: 72px; }
  .fd-hero-side { width: 280px; }
  .fd-sg-pangram { width: 300px; }
  .fd-sg-aa-big { font-size: 160px; }
}
@media (max-width: 860px) {
  .fd-hero, .fd-specimen, .fd-tester, .fd-reads,
  .fd-weights, .fd-pairing, .fd-langs, .fd-charset,
  .fd-ctx, .fd-install, .fd-similar, .fd-resources { padding-left: 24px; padding-right: 24px; }
  .fd-compare-bar-inner, .fd-compare-cols { padding-left: 24px; padding-right: 24px; }
  .fd-hero-row { flex-direction: column; }
  .fd-hero-side { width: 100%; }
  .fd-hero-title { font-size: 52px; letter-spacing: -2px; }
  .fd-sg-row1 { flex-direction: column; height: auto; }
  .fd-sg-pangram { width: 100%; height: 200px; }
  .fd-sg-row { flex-direction: column; height: auto; }
  .fd-sg-card { min-height: 200px; }
  .fd-sg-aa-big { font-size: 100px; letter-spacing: -4px; }
  .fd-sg-title { font-size: 36px; }
  .fd-pair-cards { flex-direction: column; }
  .fd-lang-grid { grid-template-columns: repeat(2, 1fr); }
  .fd-similar-grid { grid-template-columns: repeat(2, 1fr); }
  .fd-ctx-hero { flex-direction: column; min-height: auto; }
  .fd-stat-card { width: 100%; }
  .fd-ctx-row { flex-direction: column; }
  .fd-ctx-card { height: auto; min-height: 280px; }
  .fd-tester-canvas { padding: 40px 24px; }
  .fd-wt-row { grid-template-columns: 160px 1fr 40px; }
  .fd-wt-axis { display: none; }
  .fd-compare-cols { grid-template-columns: 1fr; }
  .fd-compare-col { padding: 32px 0; }
  .fd-compare-col:not(:last-child) { border-right: none; border-bottom: 1px solid var(--border); }
}

