/* Self-hosted type (scripts/fonts.mjs). SIL Open Font License 1.1 — see docs/THIRD-PARTY-NOTICES.md. */
/* DM Sans 400 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 400 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 450 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 450;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-450-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 450 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 450;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-450-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 500 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-500-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 500 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-500-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 550 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 550;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-550-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 550 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 550;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-550-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 600 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-600-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 600 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-600-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 650 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 650;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-650-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 650 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 650;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-650-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* DM Sans 700 normal · latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-700-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* DM Sans 700 normal · latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-700-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Libre Baskerville 400 italic · latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-400-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Libre Baskerville 400 italic · latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-400-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Libre Baskerville 400 normal · latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Libre Baskerville 400 normal · latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Libre Baskerville 700 normal · latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-700-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Libre Baskerville 700 normal · latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/libre-baskerville-700-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Sans Coptic 400 normal · coptic */
@font-face {
  font-family: 'Noto Sans Coptic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/noto-sans-coptic-400-normal-coptic.woff2) format('woff2');
  unicode-range: U+0300-0302, U+0304-0305, U+0307-0308, U+0311, U+0323, U+033F, U+035E, U+0361, U+0374-0375, U+03E2-03EF, U+1DCD, U+2010, U+2053, U+2056, U+2058-2059, U+25CC, U+2C80-2CFF, U+2E17, U+2E33-2E34, U+FE24-FE26, U+102E0-102FB;
}
/* Noto Sans Coptic 400 normal · latin-ext */
@font-face {
  font-family: 'Noto Sans Coptic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/noto-sans-coptic-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Sans Coptic 400 normal · latin */
@font-face {
  font-family: 'Noto Sans Coptic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/noto-sans-coptic-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Serif 400 italic · cyrillic-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* Noto Serif 400 italic · cyrillic */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Noto Serif 400 italic · greek-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* Noto Serif 400 italic · greek */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* Noto Serif 400 italic · math */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-math.woff2) format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* Noto Serif 400 italic · vietnamese */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Noto Serif 400 italic · latin-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Serif 400 italic · latin */
@font-face {
  font-family: 'Noto Serif';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Serif 400 normal · cyrillic-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* Noto Serif 400 normal · cyrillic */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Noto Serif 400 normal · greek-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* Noto Serif 400 normal · greek */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* Noto Serif 400 normal · math */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-math.woff2) format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* Noto Serif 400 normal · vietnamese */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Noto Serif 400 normal · latin-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Serif 400 normal · latin */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Serif 700 normal · cyrillic-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* Noto Serif 700 normal · cyrillic */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Noto Serif 700 normal · greek-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* Noto Serif 700 normal · greek */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* Noto Serif 700 normal · math */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-math.woff2) format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* Noto Serif 700 normal · vietnamese */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Noto Serif 700 normal · latin-ext */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Serif 700 normal · latin */
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-700-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Serif Hebrew 400 normal · hebrew */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-400-normal-hebrew.woff2) format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* Noto Serif Hebrew 400 normal · latin-ext */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Serif Hebrew 400 normal · latin */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Serif Hebrew 700 normal · hebrew */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-700-normal-hebrew.woff2) format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* Noto Serif Hebrew 700 normal · latin-ext */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-700-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Noto Serif Hebrew 700 normal · latin */
@font-face {
  font-family: 'Noto Serif Hebrew';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/noto-serif-hebrew-700-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Preferences applied by src/access.js as attributes and classes on <html>, shared by the public site and the
   workspace (marketing.css and app.css both import this). Every effect goes through the semantic tokens where one
   exists, so a theme or a typeface is set once here and inherited everywhere. */

/* ── Typefaces offered by the panel (SIL OFL 1.1; licence texts beside the files in public/assets/fonts/). Loaded
   only when chosen: a face is fetched the first time a rule uses it. */
@font-face{font-family:'Atkinson Hyperlegible Next';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/atkinson-hyperlegible-next-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible Next';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/atkinson-hyperlegible-next-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible Next';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/atkinson-hyperlegible-next-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible Next';font-style:italic;font-weight:700;font-display:swap;src:url(/assets/fonts/atkinson-hyperlegible-next-latin-700-italic.woff2) format('woff2')}
@font-face{font-family:'OpenDyslexic';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/opendyslexic-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'OpenDyslexic';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/opendyslexic-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'OpenDyslexic';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/opendyslexic-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'OpenDyslexic';font-style:italic;font-weight:700;font-display:swap;src:url(/assets/fonts/opendyslexic-latin-700-italic.woff2) format('woff2')}

/* ── Text size: one scale for site and workspace (app.css sets html{font-size:calc(16px * var(--ui-scale))}). */
html{font-size:calc(100% * var(--ui-scale,1))}

/* ── Reading spacing. Comfortable = WCAG 1.4.12; wide goes further. Original-language text keeps its own spacing. */
html[data-spacing] body{line-height:1.6}
html[data-spacing=comfortable] body{letter-spacing:.12em;word-spacing:.16em}
html[data-spacing=wide] body{letter-spacing:.18em;word-spacing:.32em;line-height:1.85}
html[data-spacing] main p,html[data-spacing] .verse,html[data-spacing] .dict-text p,html[data-spacing] .legal-body p{margin-block-end:2em}
html[data-spacing] .verses{line-height:2.1}html[data-spacing=wide] .verses{line-height:2.4}
html[data-spacing] [lang=he],html[data-spacing] [lang=grc],html[data-spacing] [lang=cop],html[data-spacing] .script-hebrew,html[data-spacing] .script-greek,html[data-spacing] .script-coptic,html[data-spacing] [lang=he] *,html[data-spacing] [lang=grc] *,html[data-spacing] [lang=cop] *{letter-spacing:0;word-spacing:normal}

/* ── Typeface: the semantic families swap; Hebrew, Greek and Coptic keep their Noto faces. */
html[data-typeface=system]{--ws-font-family-reading:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--ws-font-family-ui:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
html[data-typeface=hyperlegible]{--ws-font-family-reading:'Atkinson Hyperlegible Next',system-ui,sans-serif;--ws-font-family-ui:'Atkinson Hyperlegible Next',system-ui,sans-serif}
html[data-typeface=dyslexic]{--ws-font-family-reading:'OpenDyslexic',system-ui,sans-serif;--ws-font-family-ui:'OpenDyslexic',system-ui,sans-serif}
html[data-typeface=dyslexic] body{line-height:1.7}

/* ── Shorter lines: passages and long text capped near seventy characters, left-aligned. */
html.line-length .verses,html.line-length .dict-text,html.line-length .legal-body,html.line-length .guide-body,html.line-length main p,html.line-length .lede,html.line-length .ws-feature-body{max-width:70ch;text-align:left}

/* ── Theme. Light is the token file. Dark and high contrast override the semantic tokens plus the few surfaces
   that were drawn with literal colours. */
html[data-theme=dark]{color-scheme:dark;
  --ws-semantic-surface-canvas:#15171e;--ws-semantic-surface-panel:#1d2029;--ws-semantic-surface-inverse:#1e2747;--ws-semantic-surface-subtle:#272b38;
  --ws-semantic-text-primary:#ebe6dc;--ws-semantic-text-secondary:#b6afa3;--ws-semantic-text-tertiary:#a39b8d;--ws-semantic-text-inverse:#f4f1eb;--ws-semantic-text-link:#b9c6f2;--ws-semantic-text-accent:#e2ab5a;
  --ws-semantic-border-default:#3d4252;--ws-semantic-border-subtle:#2e3341;--ws-semantic-border-focus:#9db6ff;
  --ws-semantic-action-primary:#4a5b97;--ws-semantic-action-primary-hover:#5a6cab;--ws-semantic-action-accent:#976019;--ws-semantic-action-accent-hover:#b0742a;--ws-semantic-text-on-action:#fff;
  --ws-color-brand-indigo:#b9c6f2;--ws-color-brand-ochre:#e2ab5a;--ws-color-brand-terracotta:#e0866a;--ws-color-brand-espresso:#d9c2b0;--ws-color-brand-bone:#1d2029;
  --ws-color-neutral-0:#15171e;--ws-color-neutral-50:#1d2029;--ws-color-neutral-100:#232733;--ws-color-neutral-200:#2e3341;--ws-color-neutral-300:#3d4252;--ws-color-neutral-400:#7e8494;--ws-color-neutral-500:#a39b8d;--ws-color-neutral-600:#b6afa3;--ws-color-neutral-700:#c9c2b6;--ws-color-neutral-800:#dcd6cb;--ws-color-neutral-900:#ebe6dc;
  --ws-color-feedback-success-subtle:#233324;--ws-color-feedback-warning-subtle:#3a2f16;--ws-color-feedback-danger-subtle:#3d2320;--ws-color-feedback-info-subtle:#1e2c3d;--ws-color-feedback-success:#8fc985;--ws-color-feedback-warning:#e2ab5a;--ws-color-feedback-danger:#f0917f;--ws-color-feedback-info:#8fb6e8;
  --atlas-sea:#1a2230;--atlas-land:#2a2e3a;--atlas-coast:#4e5868;--bone:#1d2029}
html[data-theme=dark] .header{background:#1d2029f2}
html[data-theme=dark] .panel{background:#ffffff05}
html[data-theme=dark] .btn.primary,html[data-theme=dark] .btn.gold,html[data-theme=dark] #toast{color:#fff}
html[data-theme=dark] .btn.primary{background:var(--ws-semantic-action-primary);border-color:var(--ws-semantic-action-primary)}
html[data-theme=dark] .btn.gold{background:var(--ws-semantic-action-accent);border-color:var(--ws-semantic-action-accent)}
html[data-theme=dark] #toast{background:var(--ws-semantic-action-primary)}
html[data-theme=dark] img.feature-shot,html[data-theme=dark] .feature-shot img,html[data-theme=dark] .help-shot img,html[data-theme=dark] .help-figure img{opacity:.92}
html[data-theme=dark] .button,html[data-theme=dark] .site-header .button{color:#fff}
html[data-theme=dark] .brand{color:var(--ws-semantic-text-primary)}
html[data-theme=dark] .field input,html[data-theme=dark] .field select,html[data-theme=dark] .field textarea,html[data-theme=dark] input.text,html[data-theme=dark] select.text,html[data-theme=dark] textarea.text,html[data-theme=dark] .search-box input,html[data-theme=dark] .ws-select-button{background-color:var(--ws-semantic-surface-subtle);border-color:var(--ws-semantic-border-default);color:var(--ws-semantic-text-primary)}
html[data-theme=dark]{--ws-component-carousel-indigo:#0F273C;--ws-component-carousel-espresso:#3B2A20}
html[data-theme=dark] mark,html[data-theme=dark] .note-card .selected-text,html[data-theme=dark] .highlight-swatch,html[data-theme=dark] [data-highlight]{color:#242735}
/* The landing hero keeps its own palette: a photograph under light type, whatever the theme. */
html[data-theme=dark] .hero-reveal{--ws-semantic-text-inverse:#f4f1eb;--paper:#faf8f4;--ink:#242735;--navy:#1e2747;--line:#e1ddd6;--muted:#665f57;--canvas:#f7f4ef;--ws-semantic-border-subtle:#E8E2D9;--ws-semantic-border-default:#D3CABE;--ws-semantic-text-secondary:#665F57;--ws-semantic-surface-subtle:#E8E2D9;--ws-semantic-surface-panel:#FAF8F4;--ws-semantic-text-primary:#242735}
html[data-theme=dark] .hero-reveal mark{background:#f8ebd0}
html[data-theme=dark] mark.kwic-n{color:var(--ws-semantic-text-primary)}
html[data-theme=dark] .chip{background:var(--ws-semantic-surface-subtle);color:var(--ws-semantic-text-primary)}
/* Where a light stylesheet fills with the brand indigo, ochre, espresso or terracotta — colours that are lifted for text
   in the dark palette — the fill goes back to an action colour that holds white type. */
html[data-theme=dark] .filter-option.active,html[data-theme=dark] .tab.active,html[data-theme=dark] .wizard-step.active b,html[data-theme=dark] .wizard-step.done b,html[data-theme=dark] .ref-chip.active,html[data-theme=dark] .dict-rail .ref-chip.active,html[data-theme=dark] .ws-menu--grid .ws-menu-option[aria-selected=true],html[data-theme=dark] .letter-row a[aria-current="page"],html[data-theme=dark] .round-icon,html[data-theme=dark] .segmented button.active,html[data-theme=dark] .avatar,html[data-theme=dark] .type-option.active{background:var(--ws-semantic-action-primary);border-color:var(--ws-semantic-action-primary);color:#fff}
html[data-theme=dark] .week-strip i,html[data-theme=dark] .book-bar i,html[data-theme=dark] .path-bar i,html[data-theme=dark] .progress-bar i,html[data-theme=dark] .ws-feature-pickers button span i{background:var(--ws-semantic-action-primary)}
html[data-theme=dark] .btn.danger{background:#a34a2f;border-color:#a34a2f;color:#fff}
html[data-theme=dark] .icon-btn:hover,html[data-theme=dark] .resume-card:hover,html[data-theme=dark] .concept-row:hover,html[data-theme=dark] .note-marker:hover{background:var(--ws-semantic-surface-subtle)}
html[data-theme=dark] .btn:hover{background:var(--ws-semantic-surface-subtle)}
html[data-theme=dark] .verse.target .verse-text,html[data-theme=dark] .guide-verses .verse.target,html[data-theme=dark] .verses.highlight-mode .verse:hover .verse-text,html[data-theme=dark] .verse-text a.w:hover,html[data-theme=dark] .claim.placeholder,html[data-theme=dark] .verses.side-by-side .verse-row.target{background:#3a3220}
html[data-theme=dark] mark.diff{background:#3a3220;color:inherit}
html[data-theme=dark] .chip.link-type.quotation,html[data-theme=dark] .chip.link-type.context,html[data-theme=dark] .chip.access.public-domain,html[data-theme=dark] .chip.access.open-access,html[data-theme=dark] .chip.access.ingested,html[data-theme=dark] .bar{background:var(--ws-semantic-surface-subtle);color:var(--ws-semantic-text-primary)}
html[data-theme=dark] .concept-card p{color:var(--ws-semantic-text-secondary)}
html[data-theme=dark] .filter-option.active span,html[data-theme=dark] .filter-option.active small,html[data-theme=dark] .type-option.active small,html[data-theme=dark] .segmented button.active span{color:#fff;opacity:1}
html[data-theme=dark] .notice{background:#2e2a1f;color:#e6d6bd}
html[data-theme=dark] .link-btn,html[data-theme=dark] .signin-legal a,html[data-theme=dark] .legal a,html[data-theme=dark] .lib-source a,html[data-theme=dark] .pillar-nav a,html[data-theme=dark] .lib-notes summary,html[data-theme=dark] .about-numbers b,html[data-theme=dark] .support-actions .button.secondary{color:var(--ws-semantic-text-link)}
html[data-theme=dark] .tab.active span,html[data-theme=dark] .filter-option.active span{opacity:1!important}
html[data-theme=dark] .ds-subnav button.active{background:var(--ws-semantic-action-primary);border-color:var(--ws-semantic-action-primary)}
html[data-theme=dark] .ds-note{background:#2e2a1f}
html[data-theme=dark] .ds-spec h3{color:var(--ws-semantic-text-secondary)}
html[data-theme=dark] a.button,html[data-theme=dark] .signin-card .button,html[data-theme=dark] .signin-preview .button{color:#fff}
html[data-theme=dark] .ds-banner{color:#f4f1eb}html[data-theme=dark] .ds-banner h2{color:#f4f1eb}
html[data-theme=dark] .signin-card input,html[data-theme=dark] .signin-card .field input{background:var(--ws-semantic-surface-subtle);color:var(--ws-semantic-text-primary);border-color:var(--ws-semantic-border-default)}
html[data-theme=dark] [data-evidence=inscription] .chip.evidence{background:#3a2f22;color:#e9d5c0}html[data-theme=dark] [data-evidence=tradition] .chip.evidence{background:#3d2320;color:#f0b8a8}html[data-theme=dark] [data-evidence=textual] .chip.evidence{background:#1e2c3d;color:#c9d6f0}
html[data-theme=dark] .atlas-region path{fill:#d9b98a;fill-opacity:.09}html[data-theme=dark] .atlas-region text{fill:#d9b98a}html[data-theme=dark] .atlas-roads path{stroke:#c9a67a}html[data-theme=dark] .atlas-names text{fill:#d9c2a4}html[data-theme=dark] .atlas-tools .icon-btn,html[data-theme=dark] .atlas-layers>summary,html[data-theme=dark] .atlas-layers-body{background:var(--ws-semantic-surface-panel)}
html[data-theme=dark] .graph-main{background:radial-gradient(ellipse at center,#232733 0%,var(--canvas) 70%)}
html[data-theme=dark] .graph-legend{background:#1d2029ed}
html[data-theme=dark] .ds-nav{background:#1a1d26}
html[data-theme=contrast] .ds-nav{background:#fff}

html[data-theme=contrast]{color-scheme:light;
  --ws-semantic-surface-canvas:#fff;--ws-semantic-surface-panel:#fff;--ws-semantic-surface-inverse:#000;--ws-semantic-surface-subtle:#fff;
  --ws-semantic-text-primary:#000;--ws-semantic-text-secondary:#000;--ws-semantic-text-tertiary:#000;--ws-semantic-text-inverse:#fff;--ws-semantic-text-link:#0000d6;--ws-semantic-text-accent:#000;
  --ws-semantic-border-default:#000;--ws-semantic-border-subtle:#000;--ws-semantic-border-focus:#000;
  --ws-semantic-action-primary:#000;--ws-semantic-action-primary-hover:#222;--ws-semantic-text-on-action:#fff;--ws-semantic-action-accent:#000;--ws-semantic-action-accent-hover:#222;
  --ws-color-brand-indigo:#000;--ws-color-brand-ochre:#000;--ws-color-brand-terracotta:#000;--ws-color-brand-espresso:#000;--ws-color-brand-bone:#fff;
  --ws-color-neutral-50:#fff;--ws-color-neutral-100:#fff;--ws-color-neutral-200:#fff;--ws-color-neutral-300:#000;--ws-color-neutral-400:#000;--ws-color-neutral-500:#000;--ws-color-neutral-600:#000;--ws-color-neutral-700:#000;
  --ws-color-feedback-success-subtle:#fff;--ws-color-feedback-warning-subtle:#fff;--ws-color-feedback-danger-subtle:#fff;--ws-color-feedback-info-subtle:#fff;--ws-color-feedback-success:#000;--ws-color-feedback-warning:#000;--ws-color-feedback-danger:#000;--ws-color-feedback-info:#000;
  --atlas-sea:#fff;--atlas-land:#fff;--atlas-coast:#000;--bone:#fff}
html[data-theme=contrast] body{background:#fff;color:#000}
html[data-theme=contrast] a{color:#0000d6;text-decoration:underline}
html[data-theme=contrast] .header{background:#fff}
html[data-theme=contrast] .panel,html[data-theme=contrast] .card,html[data-theme=contrast] .signin-card,html[data-theme=contrast] .site-header,html[data-theme=contrast] .site-footer{background:#fff;border-color:#000}
html[data-theme=contrast] .btn,html[data-theme=contrast] .button{border-color:#000}
html[data-theme=contrast] .btn.primary,html[data-theme=contrast] .btn.gold,html[data-theme=contrast] .button,html[data-theme=contrast] #toast{background:#000;color:#fff;border-color:#000}
html[data-theme=contrast] .eyebrow,html[data-theme=contrast] .lede,html[data-theme=contrast] .pillar-lede,html[data-theme=contrast] .meta,html[data-theme=contrast] .feature-shot figcaption,html[data-theme=contrast] .signin-legal{color:#000}
html[data-theme=contrast] .feature-shot img{border-color:#000}
html[data-theme=contrast] .hero-reveal a,html[data-theme=contrast] .hero-reveal{color:#fff}html[data-theme=contrast] .hero-reveal .button{background:#fff;color:#000}
html[data-theme=contrast] .sidebar{background:#000;color:#fff}
html[data-theme=contrast] .sidebar a,html[data-theme=contrast] .sidebar button,html[data-theme=contrast] .nav-link{color:#fff}
html[data-theme=contrast] .skip-link{color:#fff}
html[data-theme=contrast] .nav-link.active{background:#fff;color:#000;border-left-color:#000}
html[data-theme=contrast] .nav-link.active .icon{color:#000}
html[data-theme=contrast] .field input,html[data-theme=contrast] .field select,html[data-theme=contrast] .field textarea,html[data-theme=contrast] input.text,html[data-theme=contrast] .ws-select-button{background:#fff;border-color:#000;color:#000}
/* Windows High Contrast and other forced palettes: let the system colours through, and keep an outline where a
   box-shadow ring would vanish. */
@media (forced-colors:active){:focus-visible{outline:3px solid transparent}.btn,.button,.access-switch{forced-color-adjust:none;border:1px solid ButtonText}}

/* ── Links, focus, header. */
html.underline-text-links main a,html.underline-text-links .panel a,html.underline-text-links .legal-body a{text-decoration:underline}
html.focus-ring :focus-visible{outline:3px solid var(--ws-semantic-surface-canvas)!important;outline-offset:0!important;box-shadow:0 0 0 3px var(--ws-semantic-surface-canvas),0 0 0 7px var(--ws-semantic-text-primary)!important}
html.plain-header .site-header,html.plain-header .header,html.plain-header .guide-tabs,html.plain-header .resource-panel,html.plain-header .guide-rail,html.plain-header .hint.showing,html.plain-header .dict-rail,html.plain-header .hero-copy{position:static}
html.plain-header .header{left:auto;right:auto;margin-left:100px}
@media(max-width:980px){html.plain-header .header{margin-left:75px}}
@media(max-width:700px){html.plain-header .header{margin-left:0}}
html.plain-header .app-main{padding-top:0}
/* Spacing never widens the navigation rail or the search field: their labels are fixed-width and would clip. */
html[data-spacing] .sidebar,html[data-spacing] .global-search,html[data-spacing] .site-header nav{letter-spacing:0;word-spacing:normal}
html.plain-header .resource-panel{max-height:none}

/* ── Line focus overlay (src/access.js › updateLineFocus): a clear band with a shaded spread; never hit-testable. */
.line-focus{position:fixed;left:0;right:0;top:var(--lf-y,40dvh);height:var(--lf-h,0);pointer-events:none;z-index:24;box-shadow:0 0 0 200vmax color-mix(in srgb,var(--ws-semantic-surface-canvas) 78%,transparent);transition:top .08s linear}
html[data-theme=dark] .line-focus{box-shadow:0 0 0 200vmax color-mix(in srgb,#000 70%,transparent)}

/* ── The panel and the form (also rendered inline on the workspace's Settings page). */
#accessibility-settings{max-width:38rem;width:calc(100% - 2rem);max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow:auto;border:1px solid var(--ws-semantic-border-default);border-radius:12px;padding:1.25rem 1.5rem 1.5rem;background:var(--ws-semantic-surface-panel);color:var(--ws-semantic-text-primary);font-family:var(--ws-font-family-ui)}
#accessibility-settings::backdrop{background:rgba(27,27,34,.5)}
#accessibility-settings .access-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .5rem}
#accessibility-settings h2{margin:0;font-family:var(--ws-font-family-reading);font-weight:500;font-size:1.375rem}
#accessibility-settings .dialog-close{background:none;border:1px solid var(--ws-semantic-border-default);border-radius:8px;padding:.45rem .8rem;font:inherit;color:inherit;cursor:pointer;min-height:44px}
.access-lede,.access-more{margin:.25rem 0 1rem;font-size:.9375rem;line-height:1.5;color:var(--ws-semantic-text-secondary)}
.access-more{margin-top:1rem}.access-more a{color:var(--ws-semantic-text-link)}
.access-form{display:grid;gap:1rem}
.access-group{border:1px solid var(--ws-semantic-border-subtle);border-radius:10px;padding:.25rem 1rem .75rem;margin:0;min-width:0}
.access-group legend{font-weight:600;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ws-semantic-text-secondary);padding:0 .35rem}
.access-row{display:grid;gap:.5rem;padding:.75rem 0;border-top:1px solid var(--ws-semantic-border-subtle)}
.access-group .access-row:first-of-type{border-top:0}
.access-text{display:grid;gap:.15rem;min-width:0}
.access-name{font-weight:600;font-size:.9375rem}
.access-text small{font-size:.8125rem;line-height:1.45;color:var(--ws-semantic-text-secondary)}
.access-seg{display:flex;flex-wrap:wrap;gap:.4rem}
.access-opt{position:relative;display:inline-flex}
.access-opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.access-opt span{display:inline-flex;align-items:center;min-height:40px;padding:.35rem .85rem;border:1px solid var(--ws-semantic-border-default);border-radius:999px;font-size:.875rem;font-weight:500;cursor:pointer;color:var(--ws-semantic-text-primary);background:var(--ws-semantic-surface-panel)}
.access-opt input:checked+span{background:var(--ws-semantic-action-primary);border-color:var(--ws-semantic-action-primary);color:var(--ws-semantic-text-on-action)}
.access-opt input:focus-visible+span{outline:3px solid var(--ws-semantic-border-focus);outline-offset:2px}
.access-toggle{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:.8rem;align-items:start;position:relative}
.access-toggle input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.access-toggle label{display:contents;cursor:pointer}
.access-toggle small{grid-column:2;font-size:.8125rem;line-height:1.45;color:var(--ws-semantic-text-secondary)}
.access-switch{display:inline-block;width:44px;height:26px;border-radius:999px;background:var(--ws-semantic-border-default);position:relative;margin-top:.1rem;transition:background .15s;cursor:pointer}
.access-switch::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px #0003}
.access-toggle input:checked+label .access-switch{background:var(--ws-semantic-action-primary)}
.access-toggle input:checked+label .access-switch::after{transform:translateX(18px)}
.access-toggle input:focus-visible+label .access-switch{outline:3px solid var(--ws-semantic-border-focus);outline-offset:2px}
.access-toggle .access-name{padding-top:.2rem}
.page-motion-reduced .access-switch,.page-motion-reduced .access-switch::after,.page-motion-reduced .line-focus{transition:none}
.access-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:.25rem 0 0}
.access-actions button{font:inherit;min-height:44px;padding:.6rem 1rem;border-radius:8px;border:1px solid var(--ws-semantic-action-primary);background:var(--ws-semantic-action-primary);color:var(--ws-semantic-text-on-action);cursor:pointer}
.access-actions .access-reset{background:none;color:var(--ws-semantic-text-link)}
@media (max-width:520px){#accessibility-settings{padding:1rem;width:calc(100% - 1rem)}.access-group{padding-inline:.75rem}}

:root{--canvas:var(--ws-semantic-surface-canvas);--paper:var(--ws-semantic-surface-panel);--ink:var(--ws-semantic-text-primary);--muted:var(--ws-semantic-text-secondary);--navy:var(--ws-semantic-action-primary);--line:var(--ws-semantic-border-subtle);--serif:var(--ws-font-family-reading);--sans:var(--ws-font-family-ui);--accent:var(--ws-semantic-text-accent)}
*{box-sizing:border-box}html{scroll-padding-top:7rem}/* In landscape a phone keeps a strip down each side for the camera housing and the rounded corners, and
   `viewport-fit=cover` hands the page the whole display, so the page has to hold back from them itself.
   The padding goes on the body rather than on `.wrap`/`.nav-wrap`, because those are centred: narrowing a
   centred box does not move it, and the insets are not reliably symmetric — on a 844px landscape screen
   with 59px on the left alone, `.nav-wrap` still began at 32px and the mark sat 27px inside the strip.
   Padding the body makes `100%` mean the reachable width, and everything centred inside is then safe.
   Named here as well as in app.css because the two are never loaded together: an app page has the shell's
   stylesheet, a site page has this one. Named rather than called inline so a check can drive them. */
:root{--sai-l:env(safe-area-inset-left,0px);--sai-r:env(safe-area-inset-right,0px);--sai-b:env(safe-area-inset-bottom,0px)}
body{padding-inline:var(--sai-l) var(--sai-r)}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.7}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:1.22}h1{font-size:clamp(2.7rem,4.3vw,4.25rem);margin-bottom:1.5rem}h2{font-size:clamp(2rem,3vw,3rem);margin-bottom:1.5rem}h3{font-size:1.125rem;line-height:1.45}p{max-width:65ch}a{color:inherit;text-underline-offset:.25em}button{font:inherit;color:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--ws-semantic-border-focus);outline-offset:5px}img{max-width:100%;height:auto;display:block}[hidden]{display:none!important}.icon{width:1.25rem;height:1.25rem;flex:0 0 1.25rem;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;overflow:visible;vertical-align:middle}.icon *{vector-effect:non-scaling-stroke}[data-icon]{display:inline-flex;align-items:center;flex-shrink:0}.wrap{width:min(1240px,calc(100% - 6rem));margin-inline:auto}.section{padding-block:6.5rem}.eyebrow{display:flex;align-items:center;gap:.65rem;color:var(--accent);font-size:.875rem;font-weight:500;margin-bottom:1.5rem}.lead{font-size:1.125rem;color:var(--muted);line-height:1.8}.button{display:inline-flex;justify-content:center;align-items:center;gap:.9rem;min-height:50px;padding:.8rem 1.35rem;background:var(--navy);color:var(--ws-semantic-text-on-action);border:1px solid var(--navy);border-radius:6px;text-decoration:none;font-weight:500;line-height:1.5}.button:hover{background:var(--ws-semantic-action-primary-hover)}.quiet-link,.light-link{display:inline-flex;gap:.75rem;align-items:center;min-height:44px;text-decoration:none;font-weight:500}.quiet-link:hover,.light-link:hover{text-decoration:underline}.actions{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap}.skip-link{position:absolute;top:-100px;left:1rem;background:var(--paper);padding:1rem;z-index:100}.skip-link:focus{top:1rem}.site-header{background:var(--canvas);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.nav-wrap{width:min(1360px,calc(100% - 4rem));min-height:92px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.brand{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;font-size:1.625rem;font-weight:700;letter-spacing:-.05em}.brand img{width:32px;height:46px;object-fit:contain}#site-nav{display:flex;align-items:center;gap:2rem}#site-nav>a:not(.button){font-size:.9rem;text-decoration:none;min-height:44px;display:flex;align-items:center}#site-nav>a:hover{text-decoration:underline}.button.compact{min-height:44px;font-size:.875rem}.menu-toggle{min-height:44px;min-width:44px;align-items:center;gap:.75rem;background:none;border:1px solid var(--line);border-radius:5px;padding:.4rem .75rem;color:var(--ink);font:inherit;font-size:.9375rem;-webkit-appearance:none;appearance:none;cursor:pointer}.menu-toggle:focus-visible{outline:2px solid var(--navy);outline-offset:2px}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:5rem;align-items:center;padding-block:6rem 5rem}.hero-copy{padding-bottom:2rem}.hero-copy .lead{max-width:40ch;margin-bottom:2rem}.reassurance{color:var(--muted);font-size:.8125rem;margin:1rem 0 0}.reading-composition{position:relative;padding:0 0 2.5rem 1rem;min-width:0}.reading-preview{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:5px;box-shadow:0 18px 45px #3b2a2010;overflow:hidden}.page-edge{position:absolute;inset:12px -12px 52px 32px;border:1px solid var(--line);background:var(--paper);border-radius:5px;transform:rotate(2deg)}.preview-top{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--line);font-size:.75rem}.preview-top>span:first-child{display:flex;align-items:center;gap:.65rem}.edition{color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:.1rem .5rem}.preview-heading{padding:1.75rem 2rem .75rem}.book-label{font-size:.75rem;color:var(--muted)}.preview-heading h2{font-size:1.8rem;letter-spacing:-.03em;margin:.65rem 0}.editorial-label{font-size:.7rem;color:var(--muted)}.preview-verses{padding:0 2rem 1rem;font-family:var(--serif);font-size:.85rem;line-height:1.9}.preview-verses p{position:relative;padding-left:1.5rem;margin-bottom:.9rem}.preview-verses sup{position:absolute;left:0;top:.15rem;font-family:var(--sans);color:var(--muted);font-size:.65rem}.preview-verses mark{background:var(--ws-color-feedback-warning-subtle);color:inherit;padding:.18rem 0;box-decoration-break:clone}.preview-footer{border-top:1px solid var(--line);padding:1rem 1.5rem;font-size:.75rem;display:flex;gap:.7rem;align-items:center;text-decoration:none}.preview-footer .icon:last-child{margin-left:auto}.margin-note{position:absolute;bottom:0;right:0;display:flex;gap:.9rem;align-items:center;background:var(--navy);color:var(--ws-semantic-text-inverse);padding:1rem 1.3rem;border-radius:5px;font-size:.75rem;line-height:1.6;box-shadow:0 8px 20px #1e274714}.margin-note .icon{color:var(--ws-color-brand-ochre)}.invitation{padding:2rem 0;border-block:1px solid var(--line);display:flex;justify-content:space-between;gap:1.5rem;align-items:center;font-size:.875rem}.invitation p{margin:0;color:var(--muted)}.invitation>div{display:flex;gap:2rem;flex-wrap:wrap}.section-intro{display:grid;grid-template-columns:1fr .8fr;gap:5rem;align-items:center;margin-bottom:2.5rem}.section-intro>p,.section-intro>div>p:not(.eyebrow){color:var(--muted)}.section-intro .eyebrow{margin-bottom:1rem}.workflow-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);gap:1.5rem}.workflow-tabs button{display:grid;grid-template-columns:2rem 1fr;text-align:left;gap:.15rem .5rem;background:none;color:var(--muted);border:0;border-bottom:3px solid transparent;padding:1.15rem .7rem 1.5rem;min-width:0}.workflow-tabs button>span{grid-row:span 2;font-size:.8rem;padding-top:.2rem}.workflow-tabs strong{font-size:1.05rem;font-weight:500;color:var(--ink)}.workflow-tabs small{font-size:.8rem}.workflow-tabs button[aria-pressed=true]{border-color:var(--navy);background:var(--paper);color:var(--ink)}.workflow-preview{margin-top:1.5rem;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--paper)}.workflow-caption{padding:1.5rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;font-size:.875rem;border-bottom:1px solid var(--line)}.workflow-caption p{margin:0;max-width:65ch;color:var(--muted)}.workflow-caption>a{flex-shrink:0}.preview-label{font-size:.75rem;text-align:center;padding:.65rem 1rem;border-top:1px solid var(--line);color:var(--muted)}.library-section{background:var(--paper);border-block:1px solid var(--line)}.library-shelf{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2.2rem;margin-top:3rem;align-items:start}.library-shelf a{text-decoration:none;min-width:0}.library-shelf a:hover .ws-cover{transform:translateY(-4px)}.library-shelf .ws-cover{transition:transform .2s}.library-shelf .ws-cover-title{font-size:clamp(1rem,9cqw,1.45rem)}.library-shelf .ws-cover-imprint{font-size:.625rem}.library-shelf .ws-cover-edition{font-size:.7rem}.shelf-meta{display:block;margin-top:1.25rem}.shelf-meta strong{display:block;font-size:.875rem}.shelf-meta small{font-size:.75rem;color:var(--muted);display:block;margin-top:.3rem}.library-note{margin:2.5rem 0 0;font-size:.75rem;color:var(--muted);max-width:85ch}.principles{display:grid;grid-template-columns:1fr 1fr;gap:6rem}.principles .lead{max-width:35ch}.principle-list article{display:flex;align-items:flex-start;gap:1.2rem;padding-block:1.75rem;border-bottom:1px solid var(--line)}.principle-list article:first-child{padding-top:0}.principle-list article>.icon{margin-top:.3rem;color:var(--accent)}.principle-list h3{margin-bottom:.5rem}.principle-list p{font-size:.9375rem;color:var(--muted);margin:0}.mission{background:var(--navy);color:var(--ws-semantic-text-inverse)}.mission-grid{display:grid;grid-template-columns:.65fr 1.35fr;gap:5rem;align-items:center}.mission-mark{display:grid;justify-items:center}.mission-mark img{width:155px;height:205px;object-fit:contain}.mission-mark p{font-family:var(--serif);font-size:.85rem;margin-top:2rem}.mission .eyebrow{color:var(--ws-color-brand-bone)}.mission-grid>div:last-child>p:not(.eyebrow){max-width:60ch;font-size:1rem}.light-link{margin-top:.5rem}.support{display:grid;grid-template-columns:1fr 1fr;gap:7rem;align-items:center}.support>div:first-child>p:not(.eyebrow){color:var(--muted)}.support-panel{padding:2.5rem;background:var(--paper);border:1px solid var(--line);border-radius:8px}.support-panel>.icon{width:2rem;height:2rem;color:var(--accent);margin-bottom:1.5rem}.support-panel p{font-size:.9375rem;color:var(--muted)}.support-panel small{display:block;font-size:.75rem;color:var(--muted);margin-top:1.5rem}.faq{display:grid;grid-template-columns:.65fr 1.35fr;gap:5rem;border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line);padding:1.1rem 0}.faq-list summary{cursor:pointer;min-height:44px;align-content:center;font-weight:500;padding-right:1rem}.faq-list details p{font-size:.9375rem;color:var(--muted);margin:.75rem 0 1rem}.faq-list details a{font-size:.875rem;display:inline-block;min-height:44px}.closing{padding:4rem 0 5rem;text-align:center;display:flex;align-items:center;flex-direction:column;border-top:1px solid var(--line)}.closing img{margin-bottom:1.5rem;object-fit:contain}.closing h2{font-size:clamp(2rem,4vw,3.5rem)}.closing p{font-size:.875rem;color:var(--muted);margin:1rem 0 0}.site-footer{border-top:1px solid var(--line);padding:3rem 0 2rem}.footer-cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:2.5rem}.footer-brand .brand{font-size:1.25rem;font-weight:600;letter-spacing:-.044em}.footer-brand .brand img{width:26px;height:33px}.footer-brand p{font-size:.75rem;color:var(--muted);margin:.85rem 0 0;max-width:34ch}.footer-col{display:flex;flex-direction:column}.footer-col h2{font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:.35rem 0 .35rem}.footer-col a{font-size:.8rem;min-height:44px;display:flex;align-items:center;text-decoration:none}.footer-col a:hover{text-decoration:underline}.footer-col a[aria-current=page]{font-weight:600;text-decoration:underline}.footer-meta{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 2rem}.footer-meta nav{display:flex;flex-wrap:wrap;gap:0 1.5rem;align-items:center}.footer-meta a,.footer-meta .accessibility-open{font-size:.75rem;min-height:44px;display:inline-flex;align-items:center;text-decoration:none;background:none;border:0;padding:0}.footer-meta a:hover,.footer-meta .accessibility-open:hover{text-decoration:underline}.site-footer small{font-size:.75rem;color:var(--muted)}@media(min-width:701px) and (max-width:1000px){.footer-cols{grid-template-columns:1fr 1fr;gap:1.5rem 2.5rem}}dialog{width:min(560px,calc(100% - 2rem));max-height:85dvh;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:2rem;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#1e274788}dialog h2{font-size:1.75rem;margin-right:2rem}dialog p{font-size:.9375rem}.dialog-close{float:right;border:0;min-height:44px;min-width:44px;background:transparent;color:inherit}
@media(max-width:1100px){.hero{gap:2.5rem;padding-block:4rem}.hero h1{font-size:3rem}.wrap{width:calc(100% - 4rem)}#site-nav{gap:1.3rem}.section-intro,.principles,.support{gap:3rem}.library-shelf{gap:1.5rem}.mission-grid{gap:3rem}.preview-verses{padding-inline:1.35rem}.preview-heading{padding-inline:1.35rem}.preview-footer{padding-inline:1rem}}
@media(max-width:850px){.hero{grid-template-columns:1fr;max-width:650px;gap:1.5rem}.hero-copy{padding-bottom:0}.hero h1{font-size:3.3rem}.hero-copy .lead{max-width:48ch}.reading-composition{max-width:560px;width:100%;margin-top:1rem}.section-intro{grid-template-columns:1fr;gap:.5rem}.section-intro>p{max-width:60ch}.section{padding-block:4.5rem}.invitation{align-items:flex-start;flex-direction:column}.invitation>div{gap:1.25rem}.library-shelf{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}.principles,.support,.faq{grid-template-columns:1fr;gap:2.5rem}.principles .lead{max-width:55ch}.mission-grid{grid-template-columns:.4fr 1fr;gap:2rem}.mission-mark img{width:110px;height:150px}.mission-mark p{text-align:center}.workflow-caption{flex-direction:column;gap:.5rem;align-items:flex-start}.workflow-tabs{gap:.25rem}.workflow-tabs button{display:flex;flex-direction:column;padding:.9rem .6rem}.workflow-tabs small{display:none}.nav-wrap{flex-wrap:wrap;padding-block:.7rem;min-height:76px}#site-nav{gap:1rem}#site-nav>a:not(.button){font-size:.8rem}.brand{font-size:1.4rem}.brand img{width:27px;height:38px}}
@media(max-width:700px){.wrap{width:calc(100% - 2.5rem)}.nav-wrap{width:calc(100% - 2.5rem)}.menu-toggle:not([hidden]){display:flex}#site-nav{width:100%;flex-direction:column;align-items:stretch;padding:1rem 0;gap:.5rem}#site-nav>a:not(.button){font-size:1rem}#site-nav .button{margin-top:.5rem}.hero{padding-block:3rem 3rem}.hero h1{font-size:2.65rem;letter-spacing:-.045em}.hero .eyebrow{font-size:.75rem;margin-bottom:1rem}.hero .lead{font-size:1rem}.actions{gap:.6rem 1.3rem}.actions .quiet-link{font-size:.875rem}.reading-composition{padding-left:0;padding-bottom:2.8rem}.page-edge{inset:12px -5px 52px 15px}.preview-heading h2{font-size:1.65rem}.preview-verses{font-size:.8125rem}.preview-top{padding:1rem}.preview-footer{font-size:.7rem}.preview-footer .icon{width:1rem;height:1rem;flex-basis:1rem}.margin-note{font-size:.7rem}.invitation{font-size:.8rem}.invitation>div{gap:.5rem 1rem}.section{padding-block:3.5rem}.section-intro{margin-bottom:1.5rem}.workflow-tabs strong{font-size:.875rem;line-height:1.4}.workflow-caption{padding:1.25rem;font-size:.8125rem}.library-shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem 1.25rem}.library-shelf>a:last-child{grid-column:auto}.shelf-meta strong{font-size:.8125rem}.shelf-meta small{font-size:.7rem}.mission-grid{grid-template-columns:1fr;gap:2rem}.mission-mark{display:none}.support-panel{padding:1.5rem}.footer-cols{grid-template-columns:1fr;gap:1.25rem}.footer-meta{margin-top:1.75rem;flex-direction:column;align-items:flex-start;gap:.25rem}.footer-meta nav{gap:0 1.25rem}.closing{padding-block:3.5rem}.faq h2 br{display:none}.faq-list summary{font-size:.9375rem}.site-header:has(#site-nav:not([hidden])){max-height:100dvh;overflow:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.site-header,.actions,.menu-toggle,dialog{display:none}.section{padding-block:2rem}.mission{background:white;color:var(--ink)}.mission-mark{display:none}}
/* Public-site showcase: existing Wellspring materials surround the real study tools. */
.hero-landscape{background:linear-gradient(90deg,var(--canvas) 0%,var(--canvas) 42%,transparent 78%),url('/assets/editorial/carousel-read.jpg') right center/65% auto no-repeat;background-color:var(--canvas)}
.hero{padding-block:4.5rem}.hero-copy{padding-bottom:0}.reading-composition{padding-bottom:0}.reading-preview{box-shadow:0 24px 60px #1e27472b}.page-edge{bottom:65px}.margin-note{position:static;display:block;margin:1.2rem 0 0;padding:.4rem .7rem;background:var(--paper);color:var(--muted);box-shadow:none;border-radius:0;text-align:center;font-size:.8125rem}.invitation{padding-block:1.5rem}
.product-theater{background:var(--navy);color:var(--ws-semantic-text-inverse)}.product-theater .eyebrow,.product-theater .section-intro>p{color:var(--ws-semantic-text-inverse)}.product-theater .workflow{padding-block:5rem}.workflow-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;border:0}.workflow-tabs button{border:1px solid #ffffff40;border-radius:5px;color:var(--ws-semantic-text-inverse);padding:1rem;grid-template-columns:1.75rem 1fr;min-height:92px}.workflow-tabs strong{color:inherit}.workflow-tabs button[aria-pressed=true]{background:var(--paper);color:var(--ink);border-color:var(--paper)}.workflow-tabs button:hover:not([aria-pressed=true]){background:#ffffff12}.workflow-tabs button>span{grid-row:span 2}.workflow-preview{color:var(--ink);box-shadow:0 22px 60px #0003;margin-top:2rem}.library-section{background:var(--canvas)}.library-families{display:flex;gap:.65rem;flex-wrap:wrap}.library-families span{font-size:.8125rem;padding:.45rem .9rem;background:var(--paper);border:1px solid var(--line);border-radius:4px}.library-shelf{margin-top:2rem}.teaching-section{background:var(--paper);border-block:1px solid var(--line)}.teaching-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}.teaching-art{align-self:stretch;display:flex;flex-direction:column;min-width:0;background:var(--navy);color:var(--ws-semantic-text-inverse);border-radius:8px;overflow:hidden}.teaching-art img{width:100%;height:100%;min-height:330px;object-fit:cover}.teaching-art>span{font-family:var(--serif);font-size:1.1rem;line-height:1.7;padding:1.5rem 2rem}.teaching-grid h2{font-size:clamp(2rem,2.7vw,2.8rem)}.teaching-grid p{color:var(--muted)}.teaching-list{padding-left:1.2rem;margin:1.5rem 0 2rem}.teaching-list li{padding:.35rem 0}.teaching-note{font-size:.8125rem;margin-top:1rem}.included{background:var(--ws-color-feedback-warning-subtle)}.included-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 2.5rem}.included-grid a{display:grid;grid-template-columns:1.5rem 1fr;gap:.6rem 1rem;text-decoration:none;border-top:1px solid var(--line);padding:1.75rem 0;min-width:0}.included-grid a>.icon{color:var(--accent);margin-top:.25rem}.included-grid strong{font-size:1rem}.included-grid a>span:last-child{grid-column:2;font-size:.9375rem;color:var(--muted)}.included-grid a:hover strong{text-decoration:underline}.included-note{max-width:95ch;color:var(--muted);font-size:.8125rem;margin:1.5rem 0 0}
@media(max-width:1100px){.hero-landscape{background-size:80% auto}.teaching-grid{gap:2.5rem}.included-grid{gap:0 1.5rem}.workflow-caption{flex-wrap:wrap}}
@media(max-width:850px){.hero-landscape{background:var(--canvas)}.reading-composition{padding:1.5rem;background:url('/assets/editorial/carousel-read.jpg') center/cover;border-radius:7px}.page-edge{display:none}.teaching-grid{grid-template-columns:1fr}.teaching-art{max-height:420px}.teaching-art img{min-height:0;max-height:320px}.included-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-tabs button{display:grid;grid-template-columns:1.5rem 1fr;min-height:82px;padding:.8rem}.workflow-tabs button>span{grid-row:auto}.workflow-tabs small{display:none}}
@media(max-width:600px){.hero{padding-block:3rem}.reading-composition{padding:1rem}.margin-note{font-size:.75rem;padding:.75rem;margin:.75rem 0 0}.workflow-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-tabs strong{font-size:.875rem}.product-theater .workflow{padding-block:3.5rem}.included-grid{grid-template-columns:1fr}.included-grid a{padding:1.25rem 0}.teaching-art>span{padding:1.2rem}.library-families span{font-size:.75rem}.teaching-grid h2 br{display:none}}
.workflow-tabs button>.icon{grid-column:1;grid-row:1 / span 2;margin-top:.2rem}.workflow-tabs button>strong,.workflow-tabs button>small{grid-column:2}

/* A connected editorial example; numbered steps represent the actual study order. */
.study-journey{background:var(--paper);border-block:1px solid var(--line)}
.journey-steps{list-style:none;padding:0;margin:2.5rem 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
.journey-steps>li{min-width:0;border-top:2px solid var(--line);padding-top:1.25rem;display:flex;flex-direction:column}
.journey-number{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--navy);color:var(--ws-semantic-text-inverse);margin-bottom:1rem}
.journey-steps h3{margin-bottom:.5rem}.journey-steps>li>p{font-size:.9375rem;color:var(--muted)}
.journey-sample{margin-top:auto;padding:1.25rem;background:var(--canvas);border-left:2px solid var(--accent);min-height:13rem}
.journey-sample blockquote{margin:.75rem 0 0;font-family:var(--serif);font-size:1rem;line-height:1.8}
.journey-sample p{margin:.75rem 0 0;font-size:.9375rem}.journey-sample small{display:block;margin-top:.75rem;color:var(--muted);font-size:.8125rem}
.journey-footer{display:flex;justify-content:space-between;align-items:center;gap:2rem}.journey-footer p{margin:0}.journey-footer p+p{font-size:.9375rem;color:var(--muted);margin-top:.5rem}.journey-footer .button{flex-shrink:0}
.journey-disclaimer{font-size:.75rem;color:var(--muted);margin:1.5rem 0 0;max-width:90ch}
@media(max-width:1100px){.journey-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-sample{min-height:10rem}}
@media(max-width:600px){.journey-steps{grid-template-columns:1fr;gap:1.75rem}.journey-sample{min-height:0}.journey-footer{flex-direction:column;align-items:flex-start}}

/* Preview is a static viewport, never a nested scrolling surface. */
.workflow-preview picture{display:block;width:100%;aspect-ratio:16/9;overflow:clip}
.workflow-preview picture img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.preview-label{display:flex;align-items:center;justify-content:space-between;gap:.5rem 1rem;flex-wrap:wrap;text-align:left}
.preview-label a{display:inline-flex;align-items:center;min-height:44px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){.workflow-preview picture{aspect-ratio:4/5}}

/* Readable product illustrations: flow with the document, never scroll internally. */
.workflow-demo{display:grid;grid-template-columns:1.35fr 1fr;background:var(--canvas)}
.demo-main{padding:clamp(1.5rem,4vw,3.5rem);min-width:0}.demo-main h3{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:400;line-height:1.35;margin:0 0 1.75rem}
.demo-label{font-size:.8125rem;color:var(--muted);margin-bottom:1rem}.demo-main blockquote,.demo-reading{font-family:var(--serif);font-size:1.125rem;line-height:1.9;margin:0 0 1.5rem}
.demo-side{padding:clamp(1.5rem,3vw,3rem);background:var(--paper);border-left:1px solid var(--line);min-width:0}.demo-side h4{font-size:1.125rem;margin:0 0 1rem}.demo-side p{color:var(--muted)}.demo-side small{color:var(--muted);font-size:.8125rem;display:block;margin-top:1rem}
.demo-side a{display:block;padding:1.1rem 0;border-top:1px solid var(--line);text-decoration:none}.demo-side a:hover strong{text-decoration:underline}.demo-side a span{display:block;font-size:.875rem;color:var(--muted);margin-top:.35rem}
.demo-side details{border-block:1px solid var(--line);padding:.5rem 0}.demo-side summary{min-height:44px;align-content:center;cursor:pointer}.demo-side blockquote{margin:1rem 0;font-family:var(--serif);font-size:1rem;line-height:1.8}
.demo-citation{border-left:3px solid var(--accent);padding-left:1.25rem}.demo-citation blockquote{font-size:1rem}.demo-citation mark{background:var(--ws-color-feedback-warning-subtle);color:var(--ink)}.demo-outline{padding-left:1.5rem}.demo-outline li{padding:.7rem 0;border-bottom:1px solid var(--line)}.demo-transliteration{font-family:var(--sans);font-size:1.25rem;color:var(--muted);margin-inline-start:1rem}
.demo-concept{padding:1rem 1.5rem;border-radius:8px;background:var(--navy);color:var(--ws-semantic-text-inverse);font-size:1.25rem}.demo-branches{list-style:none;padding-left:1.5rem;border-left:2px solid var(--line);margin:0 0 0 1.5rem}.demo-branches li{padding:1.2rem 0 0}.demo-branches a{display:block;padding:1rem;border:1px solid var(--line);background:var(--paper);text-decoration:none}.demo-branches a:hover{text-decoration:underline}.demo-branches span{display:block;color:var(--muted);font-size:.875rem;margin-top:.35rem}.demo-geography img{width:100%;height:260px;object-fit:contain}
@media(max-width:700px){.workflow-demo{grid-template-columns:1fr}.demo-side{border-left:0;border-top:1px solid var(--line)}.demo-geography img{height:220px}}

/* Motion scenes: only artwork moves; reading text and normal scrolling stay stable. */
.hero-landscape{position:relative;isolation:isolate;overflow:clip;background:var(--canvas)}
.hero-landscape::before{content:"";position:absolute;inset:-32px 0;z-index:-1;background:linear-gradient(90deg,var(--canvas) 0%,var(--canvas) 42%,transparent 78%),url('/assets/editorial/carousel-read.jpg') right center/65% auto no-repeat;transform:translateY(var(--hero-drift,0px));pointer-events:none}
.library-shelf>a{transform:translateY(var(--shelf-drift,0px))}
.journey-steps{position:relative;--study-progress:1;padding-top:1.5rem}
.journey-steps::before,.journey-steps::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--line);pointer-events:none}
.journey-steps::after{background:var(--accent);transform:scaleX(var(--study-progress));transform-origin:left;transition:transform .12s linear}
.journey-number{transition:background .3s,box-shadow .3s}.study-reached .journey-number{box-shadow:0 0 0 5px var(--ws-color-feedback-warning-subtle)}
.support-panel .support-future{font-size:.875rem;margin:1rem 0 0;padding-top:1rem;border-top:1px solid var(--line)}
@media(max-width:850px){.hero-landscape::before{display:none}}
@media(max-width:600px){.journey-steps{padding-top:0;padding-left:1.25rem}.journey-steps::before,.journey-steps::after{top:0;bottom:0;left:0;right:auto;width:2px;height:auto}.journey-steps::after{transform:scaleY(var(--study-progress));transform-origin:top}}
@media(prefers-reduced-motion:reduce){.hero-landscape::before,.library-shelf>a{transform:none!important}.journey-steps::after{transform:none!important}.journey-number{transition:none}}
/* Visible depth: generous image overscan prevents gaps while the layer travels. */
.hero-landscape::before{inset:-190px 0;background-size:cover,75% auto;transform:translate3d(0,var(--hero-drift,0px),0)}
.reading-composition{transform:translate3d(0,var(--reading-drift,0px),0)}
.library-shelf{padding-block:2rem}
.journey-steps::before,.journey-steps::after{height:4px;border-radius:2px}
@media(max-width:850px){.hero-landscape::before{display:block;opacity:.14;background-size:cover,auto 100%;background-position:center;inset:-100px 0}.reading-composition{background-position:center calc(50% + var(--hero-drift,0px))}}
@media(max-width:600px){.journey-steps::before,.journey-steps::after{height:auto;width:4px}.library-shelf{padding-block:1rem}}
@media(prefers-reduced-motion:reduce){.reading-composition{transform:none!important}.reading-composition{background-position:center}.hero-landscape::before{transform:none!important}}

/* Source and streams: independent illustration, light, brand and reading layers. */
.hero-reveal{background:var(--navy);color:var(--ws-semantic-text-inverse);overflow:clip;position:relative;isolation:isolate}
.hero-reveal::before{display:none}
.hero-art-layer{position:absolute;inset:-100px 0 -160px;z-index:-2;background:url('/assets/editorial/source-streams-hero.jpg') 72% center/cover no-repeat;transform:translate3d(0,var(--art-shift,0px),0) scale(var(--art-scale,1));transform-origin:75% center;pointer-events:none}
.hero-light-layer{position:absolute;inset:-100px 0;z-index:-1;background:linear-gradient(90deg,var(--navy) 0%,#1e2747ee 26%,#1e2747a6 48%,#1e274722 80%),radial-gradient(ellipse at 80% 75%,#c48a2c33,transparent 50%);transform:translateY(var(--light-shift,0px));pointer-events:none}
.hero-reveal .hero{align-items:start;padding-block:4rem 6rem;gap:5rem}
.hero-signature{width:56px;height:74px;object-fit:contain;margin-bottom:1.25rem}
.hero-reveal .hero-copy .eyebrow,.hero-reveal .hero-copy .lead,.hero-reveal .reassurance{color:var(--ws-semantic-text-inverse)}
.hero-reveal .hero-copy .button{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.hero-reveal .hero-copy .button:hover{background:var(--canvas)}
.hero-reveal .reading-composition{margin-top:11rem;background:none;transform:translate3d(0,calc(var(--reading-drift,0px) * 2),0);color:var(--ink)}
.hero-reveal .reading-preview{box-shadow:0 24px 70px #0005}
.hero-reveal .margin-note{background:transparent;color:var(--ws-semantic-text-inverse)}
.hero-reveal .page-edge{display:none}
@media(max-width:1100px){.hero-reveal .hero{gap:2.5rem}.hero-reveal .reading-composition{margin-top:8rem}}
@media(max-width:850px){.hero-reveal .hero{gap:3rem}.hero-reveal .reading-composition{margin-top:0;padding:0}.hero-art-layer{background-position:65% center}.hero-light-layer{background:linear-gradient(180deg,var(--navy) 0%,#1e2747e6 35%,#1e274766 72%,var(--navy) 100%)}.hero-reveal .hero{padding-block:3rem 4rem}.hero-signature{width:44px;height:58px}}
@media(prefers-reduced-motion:reduce){.hero-art-layer,.hero-light-layer,.hero-reveal .reading-composition{transform:none!important}}

/* Landscape of understanding — art and shimmer share one cover-sized coordinate space. */
.hero-art-layer{inset:-90px 0 -180px;background-image:url('/assets/editorial/understanding-landscape.jpg');background-position:center;z-index:-3;transform-origin:center}
.river-glimmer{width:100%;height:100%;position:absolute;inset:0;opacity:.45;animation:river-flow 12s linear infinite}
@keyframes river-flow{from{stroke-dashoffset:0}to{stroke-dashoffset:-317}}
.hero-foreground-layer{position:absolute;inset:-30px -4% -100px;z-index:-1;background:url('/assets/editorial/understanding-foreground.png') center bottom/cover no-repeat;pointer-events:none;transform:translate3d(0,var(--foreground-shift,0px),0) scale(1.06)}
.hero-light-layer{z-index:-2;background:linear-gradient(90deg,#111d35ed 0%,#111d35d9 30%,#111d3570 55%,#111d3510 85%);transform:none}
.hero-reveal .hero{padding-block:5rem 5rem;gap:4rem}
.hero-reveal .reading-composition{margin-top:24rem}
.motion-toggle{display:inline-flex;align-items:center;min-height:44px;padding:.5rem .85rem;background:#111d35b3;border:1px solid #f4f1eb66;border-radius:6px;color:var(--ws-semantic-text-inverse);font:inherit;font-size:.8125rem;cursor:pointer}
.motion-toggle[hidden]{display:none}.motion-toggle:hover{background:var(--navy)}
.hero-landscape[data-motion-paused="true"] .river-glimmer,.hero-landscape[data-visible="false"] .river-glimmer{animation-play-state:paused}
@media(max-width:1100px){.hero-reveal .hero{gap:2rem}.hero-reveal .reading-composition{margin-top:22rem}}
@media(max-width:850px){.hero-reveal .hero{padding-block:3rem;gap:8rem}.hero-reveal .reading-composition{margin-top:0}.hero-art-layer{background-position:center}.hero-light-layer{background:linear-gradient(180deg,#111d35ed 0%,#111d35b3 40%,#111d3533 65%,#111d35b3 100%)}.hero-foreground-layer{opacity:.7}.river-glimmer{display:none}}
@media(prefers-reduced-motion:reduce){.river-glimmer{animation:none;display:none}.hero-foreground-layer{transform:none}.motion-toggle{display:none}}

/* Longer native-scroll landscape scene; only decoration is sticky. */
.hero-scene{position:absolute;inset:0;z-index:-1;overflow:clip;pointer-events:none}
.hero-reveal::after{content:"";position:absolute;inset:auto 0 0;height:9rem;background:linear-gradient(transparent,var(--navy));pointer-events:none;z-index:-1}
.mission{position:relative;isolation:isolate;overflow:clip}
.mission-streams{position:absolute;inset:-100px 0;width:100%;height:calc(100% + 200px);color:var(--ws-color-brand-ochre-gold,var(--accent));opacity:.2;z-index:-1;pointer-events:none;transform:translate3d(0,var(--stream-drift,0px),0)}
@media(min-width:851px) and (prefers-reduced-motion:no-preference){
 .hero-scene{position:sticky;top:0;height:100svh;margin-bottom:-100svh;inset:auto;top:0;overflow:clip}
 .hero-reveal .hero{min-height:155svh;padding-bottom:14rem}
 .hero-reveal .reading-composition{margin-top:30rem}
 .hero-art-layer{inset:-100px 0 -220px}
}
@media(prefers-reduced-motion:reduce){.mission-streams{transform:none}}
/* Scroll-driven study stack, with explicit selection available on every device. */
/* The hero deck: three cards, one height (the current card's, interpolated during a hand-over), positions driven per frame
   by the same scroll progress as the landscape. Cards beneath peek above the top edge; nothing ever shows below it. */
.hero-stack{display:block;position:relative;isolation:isolate;padding-top:22px;height:calc(var(--stack-h,0px) + 22px);clip-path:inset(0 -120px -160px -120px)}
.hero-card{position:absolute;left:0;right:0;top:22px;height:var(--stack-h,auto);overflow:hidden;transform-origin:50% 0;transform:translate3d(0,var(--card-y,0px),0) scale(var(--card-s,1));opacity:var(--card-o,1);z-index:var(--card-z,1);pointer-events:none;will-change:transform,opacity}
.hero-card.is-current{pointer-events:auto}
/* A card's height is measured text, so until the web type has arrived the measurement is the fallback's — about
   24px short on the Scripture card — and a stack committed to it clips its own last line. While the measurement is
   still provisional the current card stays in flow and the stack takes its natural height, so nothing is ever cut
   off; the measured numbers take over once the type is final (src/marketing-motion.js). */
.hero-stack[data-measuring]{height:auto}
.hero-stack[data-measuring] .hero-card.is-current{position:relative;top:0;height:auto}
.hero-stack:not([data-stack]){height:auto;padding-top:0}.hero-stack:not([data-stack]) .hero-card{position:static;height:auto}.hero-stack:not([data-stack]) .hero-card:not(:first-child){display:none}
.hero-map,.hero-outline{padding:1.5rem 2rem 2rem}.hero-map-root{display:block;text-align:center;background:var(--navy);color:var(--ws-semantic-text-inverse);border-radius:50%;width:8rem;padding:2.5rem 0;margin:0 auto 1.5rem}
.hero-map-branches{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;border-top:2px solid var(--line);padding-top:1rem}.hero-map-branches>span{border:1px solid var(--line);padding:.7rem;text-align:center;border-radius:8px}.hero-map small,.hero-outline span{display:block;color:var(--muted);font-size:.8125rem}.hero-map p{font-size:.875rem;margin:1.5rem 0 0}.hero-outline li{margin-bottom:1.1rem}.hero-outline ol{padding-left:1.25rem}.hero-study-note{border-left:3px solid var(--accent);padding-left:1rem}.hero-outline small{color:var(--muted)}
.accessibility-open{background:none;color:inherit;border:0;min-height:44px;padding:.4rem;font-size:.875rem;text-decoration:underline}.accessibility-option{display:flex;align-items:center;gap:.75rem;min-height:44px;font-weight:600}.accessibility-option input{width:1.25rem;height:1.25rem}#accessibility-settings{max-width:34rem}#accessibility-settings .dialog-close{position:static;float:right}#reset-accessibility{min-height:44px;padding:.5rem 1rem}.underline-text-links a:not(.button){text-decoration:underline!important}
.page-motion-reduced .hero-scene{position:absolute;inset:0;height:auto;margin:0}.page-motion-reduced .hero-reveal .hero{min-height:0;padding-bottom:5rem}.page-motion-reduced .river-glimmer{animation:none;display:none}
@media(min-width:851px) and (prefers-reduced-motion:no-preference){.hero-reveal .hero{min-height:240svh;align-items:start}.hero-reveal .reading-composition{position:sticky;top:7rem;margin-top:12rem;transform:none;padding-left:0}.hero-copy{position:sticky;top:8rem}.page-motion-reduced .hero-copy,.page-motion-reduced .reading-composition{position:relative;top:auto}}
@media(max-width:850px){.hero-map,.hero-outline{padding:1.25rem}.hero-map-branches{grid-template-columns:1fr}.hero-map-root{border-radius:8px;width:auto;padding:1rem}}

.page-motion-reduced .journey-number,.page-motion-reduced .journey-steps::after{transition:none}
@media(min-width:701px) and (max-width:1200px) and (pointer:fine){.nav-wrap{flex-wrap:wrap;padding-block:.7rem;gap:.5rem}#site-nav{flex-wrap:wrap;gap:.5rem 1rem;width:100%}.site-header .brand{font-size:1.3rem}}
@media(max-height:799px) and (min-width:851px){.hero-reveal .hero{min-height:155svh}.hero-reveal .reading-composition,.hero-copy{position:relative;top:auto}}

.compact-concept-map{height:28rem;position:relative;margin:.5rem 1rem 1.5rem}.compact-map-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.compact-map-center{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:8rem;height:8rem;border-radius:50%;border:3px solid var(--paper);outline:1px solid var(--navy);background:var(--navy);color:var(--ws-semantic-text-inverse);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.35rem;text-align:center;box-shadow:0 4px 12px #0002}.compact-map-center small{font-size:.6875rem}.compact-map-branch{position:absolute;left:var(--branch-x);top:var(--branch-y);transform:translate(-50%,-50%);width:9rem;text-align:center}.compact-map-hub{background:var(--branch-color);color:var(--ws-semantic-text-inverse);border-radius:50%;width:6.5rem;height:6.5rem;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;border:3px solid var(--paper);outline:1px solid var(--branch-color);padding:.7rem}.compact-map-hub strong{font-size:.75rem;line-height:1.3}.compact-map-source{display:block;margin-top:1rem;position:relative;border:1px solid var(--branch-color);border-radius:15px;background:var(--paper);padding:.25rem .45rem;font-size:.6875rem;line-height:1.4}.compact-map-source small{display:block}.compact-map-source::before{content:'';position:absolute;left:50%;top:-1rem;width:1px;height:1rem;background:var(--branch-color);opacity:.8}.compact-map-caption{padding:0 1.5rem;font-size:.8125rem;color:var(--muted)}
@media(max-width:600px){.compact-concept-map{height:31rem;margin-inline:.5rem}.compact-map-branch{width:7.2rem}.compact-map-hub{width:6.5rem;height:6.5rem}.compact-map-center{width:7.5rem;height:7.5rem}}

.mission-links{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin:1.25rem 0 0}

/* Below the sticky scene the deck is swipeable: the stack and its cards animate on the reader's change, never the scroll's. */
.hero-dots{display:none;justify-content:center;gap:4px;margin:8px 0 0}.hero-dots button{width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;position:relative}.hero-dots button::after{content:'';position:absolute;inset:9px;border-radius:50%;background:#f4f1eb66}.hero-dots button[aria-pressed=true]::after{background:#f4f1eb}.hero-dots button:focus-visible{outline:2px solid #f4f1eb;outline-offset:3px}
.deck-swipe .hero-dots{display:flex}.deck-swipe .hero-stack{touch-action:pan-y;transition:height .5s cubic-bezier(.16,1,.3,1)}.deck-swipe .hero-card{transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .35s}.deck-swipe .hero-stack:focus-visible{outline:2px solid #f4f1eb;outline-offset:6px;border-radius:8px}
.page-motion-reduced .deck-swipe .hero-stack,.page-motion-reduced .deck-swipe .hero-card{transition:none}
@media(prefers-reduced-motion:reduce){.deck-swipe .hero-stack,.deck-swipe .hero-card{transition:none}}

/* Phone rules (docs/PHONE-PASS.md › systemic): 44px controls, a 12px text floor, 16px inputs, the safe area. */
@media(max-width:700px){
  .button,.menu-toggle,#site-nav a,.site-footer a,.text-link,.accessibility-open,.google-btn,.signin-form input,.signin-form .button,.link-btn,.access-switch{min-height:44px}
  #site-nav a,.site-footer a,.text-link,.link-btn{display:inline-flex;align-items:center}
  small,.meta,.lib-rights{font-size:0.8125rem}.eyebrow,.editorial-label,.book-label{font-size:12px}
  input,select,textarea{font-size:16px}
  body{padding-bottom:env(safe-area-inset-bottom,0px)}
}

/* A finger on a wide screen. Width alone cannot tell an iPad from a narrow laptop window, so the things a finger
   needs — the Menu button instead of six small links, and a 44px floor under everything tappable — follow
   (pointer:coarse). Layout density stays on width, so an iPad in landscape keeps the two-column hero it has room
   for (docs/COMPETITIVE-TEARDOWN.md, F2; docs/OPEN-READING-PLAN.md § C3). */
@media (max-width:700px), (pointer:coarse) and (max-width:1200px){
  .menu-toggle:not([hidden]){display:flex}
  #site-nav{width:100%;flex-direction:column;align-items:stretch;padding:1rem 0;gap:.5rem}
  #site-nav>a:not(.button){font-size:1rem}
  #site-nav .button{margin-top:.5rem}
  /* The nav is a full-width column once the Menu button exists, and it needs a line of its own to be one. Forcing
     nowrap here (0.78.0, to stop six small links wrapping in the closed state) left it as a shrunken flex item
     beside the brand: on an iPad in portrait the open menu stood in a narrow stack halfway down the header, with
     the brand floating at its middle. Closed, the nav is hidden and there is nothing to wrap. */
  .nav-wrap{flex-wrap:wrap;align-items:center}
  /* An open menu on a short screen scrolls rather than pushing the page down under it. */
  .site-header:has(#site-nav:not([hidden])){max-height:100dvh;overflow:auto}
  .button,.menu-toggle,#site-nav a,.site-footer a,.text-link,.accessibility-open,.google-btn,.signin-form input,.signin-form .button,.link-btn,.access-switch{min-height:44px}
}
