/* Self-hosted Libre Baskerville, SIL OFL. A consistent book face for the ship's ledger. */
@font-face{font-family:'Libre Baskerville';src:url('/fonts/libre-baskerville.ttf') format('truetype');font-weight:400 700;font-style:normal;font-display:swap}
/* EB Garamond: a readable Renaissance antiqua for a Caribbean captain's desk.
   Self-hosted variable fonts, SIL Open Font License 1.1. See fonts/eb-garamond-SOURCE.txt. */
@font-face {
  font-family: 'EB Garamond';
  src: url('/fonts/eb-garamond-variable.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  font-feature-settings: 'lnum' 1, 'tnum' 1;
}
@font-face {
  font-family: 'EB Garamond';
  src: url('/fonts/eb-garamond-italic-variable.woff2') format('woff2');
  font-style: italic;
  font-weight: 400 800;
  font-display: swap;
  font-feature-settings: 'lnum' 1, 'tnum' 1;
}
@font-face {
  font-family: 'Pirata One';
  src: url('/fonts/pirata-one.ttf') format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
:root {
  --font-body: 'Libre Baskerville', Georgia, serif;
  --font-display: 'Libre Baskerville', Georgia, serif;
  --title: var(--font-display);
  --font-body-size: 17px;
  font-family: var(--font-body);
  font-size: var(--font-body-size);
  font-synthesis: none;
}
body {
  font-family: var(--font-body);
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: 'lnum' 1, 'tnum' 1;
  font-kerning: normal;
}
button, input, select, textarea {
  font-family: var(--font-body);
  font-variant-numeric: lining-nums tabular-nums;
}
:root body :is(button, input, select, textarea) {
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: 'lnum' 1, 'tnum' 1;
}
h1, h2, h3 { font-family: var(--font-display); }
code, kbd, samp, pre { font-family: var(--font-body); font-variant-numeric: lining-nums tabular-nums; }
:root body :is(.level, .resource strong, .header-ship strong, .fleet-time strong, .ranking-rank, .ranking-score-value, .standing-position strong, .standing-score strong, .plan-count-seal strong, time) {
  font-family: var(--font-body);
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: 'lnum' 1, 'tnum' 1;
}
/* Compact desktop text; the separate mobile scale remains below. */
@media (min-width: 951px) {
  :root body .sidebar #navigation .nav-item { font-size: 16px; }
  :root body .topbar :is(.resource small, .resource .rate, .resource-label, .ship-label, .garrison-label, .inventory-section-label, .captain-kicker, .captain-rank, .current-island small) { font-size: 12px; line-height: 1.25; }
  :root body #header-status :is(strong, small) { font-size: 12px; line-height: 1.25; }
  :root body #workspace form label,
  :root body #modal label { font-size: 14px; }
  :root body #workspace form :is(input, select, textarea),
  :root body #modal :is(input, select, textarea) { font-size: 15px; }
  :root body #workspace .primary { font-size: 16px; }
  :root body #workspace :is(.account-page p, .help-card p, .help-card li, .report > p, .brotherhood-page p, .tavern-page .chat-message p) { font-size: 15px; }
  :root body #workspace :is(.account-page small, .account-email-caption, .account-email-badge, .account-email-form-note, .account-email-delivery, .ranking-crew, .fleet-time > small, .plan-building-target, .plan-paid) { font-size: 13px; }
  :root body #workspace .plan-building-info .costs { font-size: 15px; }
  :root body .my-islands button { font-size: 15px; }
  :root body .my-islands small, :root body .legal-links { font-size: 12px; }
  :root body .entry-panel :is(label, .entry-lead, .button) { font-size: 17px; }
  :root body .entry-panel input:not([type='checkbox']) { font-size: 18px; min-height: 48px; }
  :root body :is(.entry-footnote, .form-links .link-button, .hero-promises, .world-status) { font-size: 14px; }
  :root body .site-nav { font-size: 16px; }
}
@media (max-width: 950px) {
  :root { --font-body-size: 18px; }
  button, input:not([type='checkbox']):not([type='radio']):not([type='hidden']), select { min-height: 48px; }
}
