/* Spirit Broods typography system.
   Active families: Instrument Sans for product/interface and Newsreader for deep reading.
   Variable WOFF2 files are self-hosted from pinned OFL packages during the build. */

@font-face{
  font-family:"Instrument Sans";
  src:url("/assets/fonts/instrument-sans-latin-wght-normal.woff2") format("woff2");
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
}
@font-face{
  font-family:"Newsreader";
  src:url("/assets/fonts/newsreader-latin-standard-normal.woff2") format("woff2");
  font-style:normal;
  font-weight:200 800;
  font-display:swap;
}
@font-face{
  font-family:"Newsreader";
  src:url("/assets/fonts/newsreader-latin-standard-italic.woff2") format("woff2");
  font-style:italic;
  font-weight:200 800;
  font-display:swap;
}

:root{
  --font-ui:"Instrument Sans";
  --font-reading:"Newsreader";
  --font-editorial:var(--font-reading);

  --font-weight-regular:400;
  --font-weight-medium:500;
  --font-weight-semibold:600;

  --type-label:10px;
  --type-meta:11px;
  --type-nav:13px;
  --type-button:12px;
  --type-ui-small:12px;
  --type-body:15px;
  --type-card-title:clamp(16px,1.45vw,21px);
  --type-section-title:clamp(22px,1.9vw,28px);
  --type-page-title:clamp(28px,2.8vw,36px);
  --type-display:clamp(32px,3.2vw,42px);
  --type-reading:clamp(17px,1.15vw,19px);
  --type-reading-lead:clamp(18px,1.3vw,20px);
  --type-quote:clamp(20px,1.9vw,28px);

  --line-ui:1.45;
  --line-body:1.62;
  --line-reading:1.76;
  --line-reading-relaxed:1.9;

  --tracking-label:.09em;
  --tracking-meta:.02em;
  --tracking-heading:-.018em;
  --tracking-display:-.026em;

  --reading-width:68ch;

  --sans:var(--font-ui);
  --serif:var(--font-reading);
}

html,body,button,input,select,textarea{
  font-family:var(--font-ui);
}
body{
  font-size:var(--type-body);
  line-height:var(--line-body);
  font-weight:var(--font-weight-regular);
  letter-spacing:0;
}
button,input,select,textarea{font-weight:var(--font-weight-regular)}
strong{font-weight:var(--font-weight-semibold)}

h1,h2,h3,h4,h5,h6{
  font-family:var(--font-ui);
  font-weight:var(--font-weight-semibold);
  letter-spacing:var(--tracking-heading);
}
h1{font-size:var(--type-page-title);line-height:1.08}
h2{font-size:var(--type-section-title);line-height:1.16}
h3{font-size:var(--type-card-title);line-height:1.28}

/* Product navigation and controls */
.nav-label,.eyebrow,.admin-eyebrow,.admin-field label,.platform-field label,
.platform-private,.search-assist small,.related-content-grid small,
.collection-member-copy small,.portrait-tag,.feature-kicker{
  font-size:var(--type-label)!important;
  font-weight:var(--font-weight-medium)!important;
  letter-spacing:var(--tracking-label)!important;
  line-height:1.35!important;
}
.nav-links a,.nav-secondary nav a,.location-label,.platform-tabs a,
.mobile-app-nav a,.admin-nav a{
  font-family:var(--font-ui)!important;
  font-size:var(--type-nav)!important;
  font-weight:var(--font-weight-medium)!important;
  letter-spacing:0!important;
  line-height:1.3!important;
}
.nav-secondary nav a{font-size:12px!important}
.mobile-app-nav a{font-size:10px!important}

.button,.quiet-button,.platform-button,.platform-button-secondary,.save-control,
.account-control,.admin-button,.chip,.reset-filters,.share-menu button,.share-menu a,
.collection-picker button,.subscribe-button{
  font-family:var(--font-ui)!important;
  font-size:var(--type-button)!important;
  font-weight:var(--font-weight-medium)!important;
  letter-spacing:0!important;
}
.quiet-button,.save-control,.chip,.reset-filters{font-size:11px!important}
.platform-button,.platform-button-secondary,.account-control{font-weight:var(--font-weight-medium)!important}
.global-search,.global-search input,.search-launch input,.search-field input,.filter-select,
.platform-search-form input,.platform-field input,.platform-field textarea,.platform-field select,
.admin-input,.admin-select,.admin-textarea{
  font-family:var(--font-ui)!important;
  font-size:13px!important;
  font-weight:var(--font-weight-regular)!important;
  letter-spacing:0!important;
}
.meta,.platform-muted,.platform-status,.results-count,.reading-meta,
.quote-attribution .meta,.admin-muted,.admin-status{
  font-family:var(--font-ui)!important;
  font-size:var(--type-meta)!important;
  letter-spacing:var(--tracking-meta)!important;
  line-height:1.55!important;
}

/* Homepage and discovery */
.library-intro h1{
  font-family:var(--font-ui)!important;
  font-size:var(--type-display)!important;
  line-height:1.04!important;
  letter-spacing:var(--tracking-display)!important;
  font-weight:var(--font-weight-semibold)!important;
  max-width:760px;
}
.library-intro p:not(.eyebrow){font-size:14px!important;line-height:1.65!important}
.featured-copy h2{
  font-size:clamp(27px,2.4vw,36px)!important;
  line-height:1.12!important;
  letter-spacing:-.022em!important;
  font-weight:var(--font-weight-medium)!important;
}
.path-spotlight h2{font-size:clamp(24px,2vw,30px)!important;letter-spacing:-.018em!important}
.article-card h2,.witness-info h3,.topic-tile h3,.resource-row h2,.search-result h2,
.path-card h2,.recommendation-card h3,.related-content-grid h3{
  font-family:var(--font-ui)!important;
  font-weight:var(--font-weight-medium)!important;
  letter-spacing:-.014em!important;
}
.article-card h2{font-size:clamp(18px,1.55vw,22px)!important;line-height:1.27!important}
.witness-info h3{font-size:clamp(18px,1.6vw,22px)!important;line-height:1.2!important}
.topic-tile h3{font-size:18px!important}
.path-card h2{font-size:clamp(22px,2vw,29px)!important;line-height:1.18!important}
.search-result h2{font-size:18px!important;line-height:1.3!important}
.resource-row h2{font-size:20px!important}

/* General page hierarchy */
.page-heading h1{
  font-size:var(--type-page-title)!important;
  line-height:1.08!important;
  letter-spacing:var(--tracking-heading)!important;
  font-weight:var(--font-weight-semibold)!important;
}
.page-description,.dek{
  max-width:680px!important;
  font-size:15px!important;
  line-height:1.65!important;
}
.section-head h2{
  font-size:var(--type-section-title)!important;
  line-height:1.16!important;
  letter-spacing:-.016em!important;
}
.breadcrumbs{font-size:11px!important}

/* Member product surfaces */
.platform-hero h1{
  font-family:var(--font-ui)!important;
  max-width:720px!important;
  font-size:var(--type-page-title)!important;
  line-height:1.08!important;
  letter-spacing:var(--tracking-heading)!important;
  font-weight:var(--font-weight-semibold)!important;
}
.platform-hero p:last-child{font-size:14px!important;line-height:1.65!important}
.platform-card h2,.today-section h2,.notification-center-head h2,.related-content-head h2{
  font-family:var(--font-ui)!important;
  font-size:clamp(18px,1.5vw,21px)!important;
  font-weight:var(--font-weight-medium)!important;
  letter-spacing:-.012em!important;
  line-height:1.22!important;
}
.platform-card h3,.notification-copy h3,.recommendation-card h3{
  font-size:15px!important;
  font-weight:var(--font-weight-medium)!important;
  letter-spacing:-.006em!important;
}
.platform-card p,.notification-copy p,.plan-day p{line-height:1.58!important}
.platform-stat{
  font-family:var(--font-ui)!important;
  font-size:32px!important;
  line-height:1!important;
  font-weight:var(--font-weight-medium)!important;
  letter-spacing:-.025em!important;
}
.notification-item.is-unread .notification-copy h3{font-weight:var(--font-weight-semibold)!important}
.testimony-card h2{
  font-family:var(--font-reading)!important;
  font-size:clamp(22px,1.9vw,28px)!important;
  font-weight:var(--font-weight-regular)!important;
  line-height:1.28!important;
  letter-spacing:-.01em!important;
}

/* Reading and editorial */
.read-masthead h1{
  font-family:var(--font-ui)!important;
  font-size:clamp(30px,3vw,38px)!important;
  line-height:1.06!important;
  letter-spacing:-.022em!important;
  font-weight:var(--font-weight-semibold)!important;
}
.reader-page .prose,.prose{
  font-family:var(--font-reading)!important;
  font-optical-sizing:auto;
  font-size:var(--type-reading)!important;
  line-height:var(--line-reading)!important;
  max-width:var(--reading-width)!important;
  font-weight:var(--font-weight-regular)!important;
  letter-spacing:0!important;
}
.prose p+p{margin-top:1.05em!important}
.prose .lead{
  font-family:var(--font-reading)!important;
  font-size:var(--type-reading-lead)!important;
  line-height:1.72!important;
}
.prose h2,.prose h3,.prose h4,.prose .source-list,.prose .button,
.timeline,.reflection h3{
  font-family:var(--font-ui)!important;
}
.prose h2{
  font-size:clamp(21px,1.8vw,25px)!important;
  font-weight:var(--font-weight-semibold)!important;
  letter-spacing:-.014em!important;
  line-height:1.24!important;
}
.prose h3{
  font-size:18px!important;
  font-weight:var(--font-weight-semibold)!important;
  letter-spacing:-.01em!important;
  line-height:1.3!important;
}
.prose .source-list{font-size:12px!important;line-height:1.72!important}
.reflection{font-family:var(--font-reading)!important;font-size:16px!important;line-height:1.72!important}
.reflection p{font-size:16px!important;line-height:1.72!important}

/* Quotations: editorial text, product interface around it */
.quote-card blockquote,.quote-feature blockquote,.step-panel blockquote,.translated-quote{
  font-family:var(--font-reading)!important;
  font-optical-sizing:auto;
  font-weight:var(--font-weight-regular)!important;
  font-size:var(--type-quote)!important;
  line-height:1.52!important;
  letter-spacing:-.008em!important;
}
.quote-attribution,.quote-actions,.quote-card details,.source-detail{
  font-family:var(--font-ui)!important;
}
.quote-attribution .author{font-weight:var(--font-weight-medium)!important}

/* Bible reading remains editorial; controls remain product UI */
.bible-chapter h1{
  font-family:var(--font-ui)!important;
  font-size:clamp(28px,3vw,38px)!important;
  line-height:1.1!important;
  letter-spacing:-.018em!important;
}
.bible-verses p{
  font-family:var(--font-reading)!important;
  font-optical-sizing:auto;
  font-size:var(--type-reading)!important;
  line-height:1.76!important;
}
.bible-verses sup,.bible-controls label,.bible-controls select{font-family:var(--font-ui)!important}

/* Admin is a product surface, not editorial */
body.admin-page{
  font-family:var(--font-ui)!important;
  font-size:14px;
  line-height:1.55;
}
.admin-top h1{
  font-family:var(--font-ui)!important;
  font-size:clamp(30px,3vw,40px)!important;
  line-height:1.08!important;
  font-weight:var(--font-weight-semibold)!important;
  letter-spacing:var(--tracking-heading)!important;
}
.admin-stat{
  font-family:var(--font-ui)!important;
  font-size:30px!important;
  font-weight:var(--font-weight-medium)!important;
  letter-spacing:-.02em!important;
}
.admin-card h2{font-size:18px!important;font-weight:var(--font-weight-medium)!important}
.admin-table th{font-weight:var(--font-weight-medium)!important;letter-spacing:.08em!important}

/* Installed app: same typography, slightly tighter application chrome */
@media (display-mode:standalone){
  .app-bar{height:72px}
  .platform-wrap{padding-top:34px}
  .platform-hero h1,.page-heading h1{letter-spacing:-.016em!important}
  .mobile-app-nav a{font-weight:var(--font-weight-medium)!important}
}

/* Phone-specific hierarchy: compact product chrome, comfortable reading */
@media(max-width:720px){
  :root{
    --type-body:14px;
    --type-card-title:18px;
    --type-section-title:22px;
    --type-page-title:clamp(26px,7.8vw,31px);
    --type-display:clamp(28px,8.2vw,32px);
    --type-reading:17px;
    --type-reading-lead:18px;
    --type-quote:clamp(20px,6vw,24px);
    --reading-width:100%;
  }
  .library-intro h1{
    font-size:var(--type-display)!important;
    line-height:1.08!important;
    letter-spacing:-.02em!important;
  }
  .page-heading h1,.platform-hero h1{
    font-size:var(--type-page-title)!important;
    line-height:1.1!important;
  }
  .read-masthead h1,.read-masthead.has-portrait h1{
    font-size:clamp(26px,8vw,31px)!important;
    line-height:1.08!important;
    letter-spacing:-.018em!important;
  }
  .section-head h2{font-size:22px!important}
  .page-description,.dek{font-size:14px!important;line-height:1.62!important}
  .article-card h2,.witness-info h3,.home-witness-grid h3{font-size:18px!important}
  .path-card h2{font-size:22px!important}
  .quote-card blockquote,.quote-feature blockquote,.step-panel blockquote{font-size:21px!important}
  .reader-page .prose,.prose{font-size:17px!important;line-height:1.78!important}
  .prose .lead{font-size:18px!important}
  .platform-hero p:last-child{font-size:14px!important}
  .platform-tabs a{font-size:11px!important}
  .mobile-app-nav a{font-size:9px!important}
}
@media(max-width:390px){
  .mobile-app-nav a{font-size:10px!important}
}

/* Member reading preferences still override the default editorial scale. */
html[data-reading-text="small"] .reader-page .prose{font-size:16px!important}
html[data-reading-text="default"] .reader-page .prose{font-size:var(--type-reading)!important}
html[data-reading-text="large"] .reader-page .prose{font-size:20px!important}
html[data-reading-text="xlarge"] .reader-page .prose{font-size:22px!important}
html[data-reading-spacing="compact"] .reader-page .prose{line-height:1.58!important}
html[data-reading-spacing="default"] .reader-page .prose{line-height:var(--line-reading)!important}
html[data-reading-spacing="relaxed"] .reader-page .prose{line-height:1.94!important}
html[data-reading-width="narrow"] .reader-page .prose{max-width:58ch!important}
html[data-reading-width="default"] .reader-page .prose{max-width:var(--reading-width)!important}
html[data-reading-width="wide"] .reader-page .prose{max-width:78ch!important}
