
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2J.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0Z.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2Z.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1p.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2p.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;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1Z.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2J.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0Z.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2Z.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1p.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2p.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;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1Z.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2J.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0Z.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2Z.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1p.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2p.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;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter_v20_UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1Z.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;
}
/* latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/librebaskerville_v24_kmKWZrc3Hgbbcjq75U4usly.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;
}
/* latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/librebaskerville_v24_kmKWZrc3Hgbbcjq75U4usly.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;
}
/* latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/librebaskerville_v24_kmKnZrc3Hgbbcjq75U4usly.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;
}
/* latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/librebaskerville_v24_kmKnZrc3Hgbbcjq75U4usly.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;
}
/* latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/librebaskerville_v24_kmKnZrc3Hgbbcjq75U4usly.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;
}
/* latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/librebaskerville_v24_kmKnZrc3Hgbbcjq75U4usly.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFH2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFH2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFH2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFH2_tTDB4M7_auWDN0ahZJW1g.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;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFH2_tTDB4M7_auWDN0ahZJW1g.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;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFH2_tTDB4M7_auWDN0ahZJW1g.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.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;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.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;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.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;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.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;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.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;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.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;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/sourceserif4_v14_vEFI2_tTDB4M7_auWDN0ahZJW1g.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;
}


*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg: #faf8f5;
  --surface: #ffffff;
  --surface-alt: #f3f0eb;
  --border: #e8e2d9;
  --border-light: #efe9e0;
  --text: #2c2418;
  --text-muted: #7a7060;
  --text-dim: #756c5e; /* WCAG AA 5.30:1 on #faf8f5 — bumped from #a09888 (was 2.70:1) */
  --accent: #ae4c25; /* WCAG AA 5.13:1 on #faf8f5 — bumped from #c0582e (was 4.24:1) for body link contrast */
  --accent-hover: #c0582e; /* original brand orange now reserved for hover */
  --accent-dim: rgba(192, 88, 46, 0.08);
  --green: #2d7a4f;
  --green-dim: rgba(45, 122, 79, 0.08);
  --red: #b83a2a;
  --yellow: #8a6508; /* WCAG AA 5.32:1 on cream — bumped from #b8860b (was 3.07:1) for verdict badge text */
  --star: #d4a017;
  --max-w: 1120px;
  --max-w-reading: 720px;
}

html { scroll-behavior: smooth; }
body {
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 17px;
  line-height: 1.85;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

a { color: var(--accent); text-decoration: none; transition: color .15s; }
a:hover { color: var(--accent-hover); }

img { max-width: 100%; display: block; }

/* ── TYPOGRAPHY ─────── */
h1, h2, h3, h4 { font-family: 'Libre Baskerville', Georgia, serif; font-weight: 700; line-height: 1.3; color: var(--text); }
h1 { font-size: 2.2rem; margin-bottom: .5em; }
h2 { font-size: 1.5rem; margin-bottom: .4em; }
h3 { font-size: 1.2rem; margin-bottom: .3em; }

p { margin-bottom: 1.2em; }
p:last-child { margin-bottom: 0; }

/* ── LAYOUT ─────── */
.container { max-width: var(--max-w); margin: 0 auto; padding: 0 24px; }
.reading { max-width: var(--max-w-reading); }

/* ── HEADER ─────── */
.site-header {
  border-bottom: 1px solid var(--border);
  padding: 20px 0;
  background: var(--surface);
}
.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
}
.logo {
  font-family: 'Libre Baskerville', serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--text);
  text-decoration: none;
  letter-spacing: -0.02em;
}
.logo span { color: var(--text-dim); font-weight: 400; }
nav { display: flex; gap: 28px; flex-wrap: wrap; }
nav a {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-muted);
  text-decoration: none;
  letter-spacing: 0.01em;
}
nav a:hover { color: var(--accent); }

/* ── HERO ─────── */
.hero {
  padding: 64px 0 48px;
  text-align: center;
}
.hero h1 {
  font-size: 2.4rem;
  max-width: 700px;
  margin: 0 auto .3em;
}
.hero .subtitle {
  font-size: 1.05rem;
  color: var(--text-muted);
  max-width: 600px;
  margin: 0 auto 1.5em;
  line-height: 1.7;
}
.hero .featured {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--accent);
  background: var(--accent-dim);
  padding: 10px 20px;
  border-radius: 6px;
}
.hero .featured:hover { background: rgba(192, 88, 46, 0.14); }

/* ── SECTION ─────── */
.section { padding: 48px 0; }
.section-title {
  font-size: 1.5rem;
  margin-bottom: 8px;
}
.section-desc {
  color: var(--text-muted);
  font-size: 0.95rem;
  margin-bottom: 32px;
  max-width: 600px;
}
.section + .section { border-top: 1px solid var(--border-light); }

/* ── CARDS GRID ─────── */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 20px;
}
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 24px;
  transition: border-color .2s, box-shadow .2s;
}
.card:hover {
  border-color: var(--accent);
  box-shadow: 0 2px 12px rgba(192,88,46,.08);
}
.card h3 { font-size: 1.1rem; margin-bottom: 4px; }
.card h3 a { color: var(--text); }
.card h3 a:hover { color: var(--accent); }
.card .author { font-family: 'Inter', sans-serif; font-size: 13px; color: var(--text-muted); margin-bottom: 8px; }
.card .rating-line { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.card .one-line { color: var(--text-muted); font-size: 0.92rem; line-height: 1.6; margin-bottom: 12px; }
.card .card-footer { display: flex; align-items: center; justify-content: space-between; }
.card .read-link {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--accent);
}

/* ── TAGS / BADGES ─────── */
.tag {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 500;
  padding: 3px 8px;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.tag-cat {
  background: var(--surface-alt);
  color: var(--text-muted);
}
.verdict-badge {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.verdict-essential { background: var(--green-dim); color: var(--green); }
.verdict-recommended { background: rgba(45, 122, 79, 0.06); color: #3a8f60; }
.verdict-mixed { background: rgba(184, 134, 11, 0.08); color: var(--yellow); }
.verdict-skip { background: rgba(184, 58, 42, 0.08); color: var(--red); }

/* ── STARS ─────── */
.stars { color: var(--star); font-size: 1rem; letter-spacing: 1px; }
/* Proper half-star: dim base glyph to the empty colour, overlay a left-clipped
   gold glyph so the rating reads as a true half rather than a faded whole star. */
.star-half {
  position: relative;
  display: inline-block;
  color: var(--border);
}
.star-half::before {
  content: "\2605";
  position: absolute;
  left: 0;
  top: 0;
  width: 50%;
  overflow: hidden;
  color: var(--star);
  pointer-events: none;
}
.star-empty { color: var(--border); }
.rating-num { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; color: var(--text); }

/* ── LIST PAGE ─────── */
.list-hero { padding: 56px 0 40px; border-bottom: 1px solid var(--border-light); }
.list-hero h1 { margin-bottom: 4px; }
.list-hero .subtitle-badge {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--accent);
  margin-bottom: 12px;
  display: inline-block;
}
.list-hero p { color: var(--text-muted); max-width: 640px; font-size: 0.97rem; }

.ranked-list { padding: 32px 0; }
.ranked-item {
  display: flex;
  gap: 20px;
  padding: 28px 0;
  border-bottom: 1px solid var(--border-light);
  align-items: flex-start;
}
.ranked-item:last-child { border-bottom: none; }
.rank-num {
  font-family: 'Libre Baskerville', serif;
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--border);
  min-width: 48px;
  text-align: center;
  line-height: 1.2;
  padding-top: 4px;
}
.ranked-content { flex: 1; }
.ranked-content h3 { font-size: 1.15rem; margin-bottom: 2px; }
.ranked-content h3 a { color: var(--text); }
.ranked-content h3 a:hover { color: var(--accent); }
.ranked-meta {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.ranked-content .excerpt { color: var(--text-muted); font-size: 0.93rem; line-height: 1.7; }

/* ── REVIEW PAGE ─────── */
.review-header { padding: 56px 0 32px; }
.review-header h1 { margin-bottom: 4px; }
.review-author {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: var(--text-muted);
  margin-bottom: 16px;
}
.review-meta-row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.meta-pill {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--text-muted);
  background: var(--surface-alt);
  padding: 5px 12px;
  border-radius: 4px;
}
.review-layout {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 48px;
  padding-bottom: 64px;
}
.review-body h2 {
  font-size: 1.3rem;
  margin-top: 2em;
  margin-bottom: .6em;
  padding-top: .8em;
  border-top: 1px solid var(--border-light);
}
.review-body h2:first-child { margin-top: 0; border-top: none; padding-top: 0; }
.review-body ul, .review-body ol { margin: 0 0 1.2em 1.4em; }
.review-body li { margin-bottom: .4em; }

.sidebar-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 24px;
  position: sticky;
  top: 24px;
}
.sidebar-card h4 {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-dim);
  margin-bottom: 16px;
}
.sidebar-row {
  display: flex;
  justify-content: space-between;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border-light);
}
.sidebar-row:last-child { border-bottom: none; }
.sidebar-row .label { color: var(--text-muted); }
.sidebar-row .value { font-weight: 500; }

.sidebar-links { margin-top: 24px; }
.sidebar-links h4 { margin-bottom: 12px; }
.sidebar-links a {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  padding: 6px 0;
  color: var(--accent);
}

.buy-btn {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  padding: 10px 20px;
  background: var(--accent);
  color: #fff;
  border-radius: 6px;
  margin-top: 16px;
  transition: background .15s;
}
.buy-btn:hover { background: var(--accent-hover); color: #fff; }

/* ── CATEGORIES GRID ─────── */
.cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}
.cat-link {
  display: block;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 16px 20px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
  transition: border-color .15s, color .15s;
}
.cat-link:hover { border-color: var(--accent); color: var(--accent); }

/* ── NEWSLETTER ─────── */
.newsletter {
  background: var(--surface-alt);
  border-radius: 8px;
  padding: 48px;
  text-align: center;
  margin: 48px 0;
}
.newsletter h2 { margin-bottom: 8px; }
.newsletter p { color: var(--text-muted); margin-bottom: 24px; max-width: 480px; margin-left: auto; margin-right: auto; }
.email-form { display: flex; gap: 8px; max-width: 400px; margin: 0 auto; }
.email-form input {
  flex: 1;
  padding: 12px 16px;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  background: var(--surface);
  color: var(--text);
}
.email-form input:focus { outline: none; border-color: var(--accent); }
.email-form button {
  padding: 12px 24px;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s;
}
.email-form button:hover { background: var(--accent-hover); }

/* ── FREE BADGE ─────── */
.badge-free {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 3px;
  background: var(--green-dim);
  color: var(--green);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-left: 6px;
  vertical-align: middle;
}

/* ── FREE RESOURCES STRIP ─────── */
.free-strip {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 20px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.free-strip p {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--text-muted);
  margin: 0;
}
.free-strip a {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--accent);
  white-space: nowrap;
}

/* ── FOOTER ─────── */
.site-footer {
  border-top: 1px solid var(--border);
  padding: 40px 0;
  margin-top: 48px;
}
.footer-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}
.footer-inner p {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--text-dim);
}
.footer-links { display: flex; gap: 20px; }
.footer-links a {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--text-dim);
}
.footer-links a:hover { color: var(--accent); }

/* ── ABOUT PAGE ─────── */
.about-content { padding: 56px 0 64px; }
.about-content h1 { margin-bottom: 24px; }
.about-content h2 { margin-top: 2em; margin-bottom: .5em; font-size: 1.3rem; }

/* ── CATEGORY PAGE ─────── */
.cat-hero { padding: 56px 0 32px; }
.cat-hero h1 { margin-bottom: 4px; }
.cat-hero p { color: var(--text-muted); font-size: 0.97rem; }

/* ── BOOK SPINE (visual anchor for cards / ranked items / review headers) ───────
   A small printed-spine motif in the TBR cream/burnt-orange/serif palette. No
   image assets: the spine is drawn in CSS so every reviewed title gets a tactile
   left-hand anchor. data-tone (1-6) gives each book a subtly different warm tint
   so a grid of spines reads like a shelf rather than a stamped repeat. */
.tbr-spine {
  /* Bound-book spine drawn entirely in CSS. --cloth-* = the dyed binding
     cloth (a warm two-stop gradient), --gilt = the stamped foil bands +
     embossed initials, --page-edge = the cream page-block showing down the
     fore-edge. data-tone (1-6) varies the cloth so a shelf of spines reads
     as a real collection, never a stamped repeat (anti-fingerprint). */
  --cloth-hi: #5a3324;
  --cloth-lo: #3c2016;
  --gilt: #d8b878;
  --gilt-soft: #c9a85f;
  --page-edge: #efe6d2;
  --emboss-dark: rgba(20, 10, 4, .55);
  --emboss-light: rgba(255, 232, 188, .42);
  position: relative;
  flex: 0 0 auto;
  width: 64px;
  height: 96px;
  border-radius: 2px 4px 4px 2px;
  /* layered: page-block edge (right), inner bevels (top/left sheen + base
     shade), then the cloth body gradient underneath everything */
  background:
    linear-gradient(90deg, transparent 0 calc(100% - 7px), rgba(0,0,0,.18) calc(100% - 7px), var(--page-edge) calc(100% - 6px) calc(100% - 1.5px), rgba(0,0,0,.22) calc(100% - 1px) 100%),
    linear-gradient(180deg, rgba(255,255,255,.16) 0, rgba(255,255,255,0) 14px),
    linear-gradient(90deg, rgba(255,255,255,.14) 0, rgba(255,255,255,0) 6px),
    linear-gradient(160deg, var(--cloth-hi) 0%, var(--cloth-lo) 78%, #2c1810 100%);
  border: 1px solid rgba(20, 10, 4, .55);
  border-left: 3px solid rgba(0, 0, 0, .42);
  box-shadow:
    2px 4px 9px rgba(44, 30, 18, .34),
    1px 2px 4px rgba(44, 30, 18, .22),
    inset 0 1px 0 rgba(255, 240, 210, .14),
    inset 1px 0 0 rgba(255, 240, 210, .10),
    inset -7px 0 9px -7px rgba(0, 0, 0, .45);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  font-family: 'Libre Baskerville', Georgia, serif;
  color: var(--gilt);
  text-align: center;
  user-select: none;
}
.tbr-spine::before { /* gilt head band */
  content: "";
  position: absolute;
  top: 6px; left: 5px; right: 9px;
  height: 3px;
  background: linear-gradient(180deg, var(--gilt) 0, var(--gilt-soft) 100%);
  box-shadow: 0 1px 0 rgba(0,0,0,.35), 0 -1px 0 rgba(255,240,200,.25);
  border-radius: 1px;
}
.tbr-spine::after { /* gilt foot band */
  content: "";
  position: absolute;
  bottom: 16px; left: 5px; right: 9px;
  height: 2px;
  background: linear-gradient(180deg, var(--gilt) 0, var(--gilt-soft) 100%);
  box-shadow: 0 1px 0 rgba(0,0,0,.35), 0 -1px 0 rgba(255,240,200,.22);
  border-radius: 1px;
}
.tbr-spine .tbr-spine-mono {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1;
  margin-top: 2px;
  margin-right: 4px; /* nudge off the page-edge so initials sit on the cloth */
  letter-spacing: -0.01em;
  color: var(--gilt);
  /* embossed/stamped foil: dark cut below + warm highlight above */
  text-shadow:
    0 1px 0 var(--emboss-dark),
    0 -1px 0 var(--emboss-light),
    0 0 4px rgba(216, 184, 120, .30);
}
.tbr-spine .tbr-spine-foot {
  position: absolute;
  bottom: 4px; left: 0; right: 4px;
  font-family: 'Inter', sans-serif;
  font-size: 7px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gilt-soft);
  text-shadow: 0 1px 0 var(--emboss-dark);
}
/* Richer, book-like cloth tints — each a distinct dyed binding, still warm
   and within the cream/burnt-orange family. */
.tbr-spine[data-tone="2"] { --cloth-hi: #4a4030; --cloth-lo: #2e2618; --page-edge: #ece3cf; }
.tbr-spine[data-tone="3"] { --cloth-hi: #6b4422; --cloth-lo: #472a13; --gilt: #dcbd7e; --page-edge: #f1e9d6; }
.tbr-spine[data-tone="4"] { --cloth-hi: #3a4636; --cloth-lo: #232c20; --gilt: #cdb070; --page-edge: #e9e2cd; }
.tbr-spine[data-tone="5"] { --cloth-hi: #4f2e2a; --cloth-lo: #321a17; --gilt: #d6b478; --page-edge: #f0e7d3; }
.tbr-spine[data-tone="6"] { --cloth-hi: #3c3a4a; --cloth-lo: #24222e; --gilt: #cbb486; --page-edge: #ece5d4; }

/* Spine inside an Editor's-Picks / category card: align with the heading row */
.card .tbr-spine-wrap { float: left; margin: 2px 16px 8px 0; }
.card .tbr-spine { width: 52px; height: 78px; }
.card .tbr-spine .tbr-spine-mono { font-size: 1.25rem; }
.card .tbr-spine::before { top: 5px; height: 2px; }
.card .tbr-spine::after { bottom: 14px; height: 2px; }

/* Spine inside a ranked-of list row (floated; meta + excerpt wrap beside it) */
.ranked-content .tbr-spine-wrap { float: left; margin: 2px 18px 6px 0; }
.ranked-content .tbr-spine { width: 56px; height: 84px; }
.ranked-content .tbr-spine .tbr-spine-mono { font-size: 1.3rem; }
.ranked-content::after { content: ""; display: block; clear: both; }

/* Spine in the review header (floated so the headline copy wraps beside it) */
.review-header .tbr-spine-wrap { float: left; margin: 4px 24px 12px 0; }
.review-header .tbr-spine { width: 72px; height: 108px; }
.review-header .tbr-spine .tbr-spine-mono { font-size: 1.7rem; }
.review-header .tbr-spine::before { top: 8px; height: 3px; }
.review-header .tbr-spine::after { bottom: 19px; height: 3px; }
.review-header .tbr-spine .tbr-spine-foot { bottom: 6px; font-size: 8px; }
.review-header .buy-btn { clear: left; }

/* ── BEST-OF HUB CARD PREVIEW (top titles inside each hub card) ─────── */
.tbr-hub-preview {
  list-style: none;
  margin: 12px 0 0;
  padding: 14px 0 0;
  border-top: 1px solid var(--border-light);
  counter-reset: hubrank;
}
.tbr-hub-preview li {
  counter-increment: hubrank;
  position: relative;
  padding: 4px 0 4px 26px;
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--text-muted);
}
.tbr-hub-preview li::before {
  content: counter(hubrank);
  position: absolute;
  left: 0;
  top: 4px;
  font-family: 'Libre Baskerville', Georgia, serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--accent);
}
.tbr-hub-preview li .tbr-hub-title { color: var(--text); font-weight: 600; }

/* ── RESPONSIVE ─────── */
@media (max-width: 768px) {
  .hero h1 { font-size: 1.8rem; }
  .review-layout { grid-template-columns: 1fr; }
  .sidebar-card { position: static; }
  .email-form { flex-direction: column; }
  .card-grid { grid-template-columns: 1fr; }
  nav { gap: 16px; }
  .newsletter { padding: 32px 20px; }
  .ranked-item { flex-direction: column; gap: 8px; }
  .rank-num { min-width: auto; font-size: 1.3rem; }
  .review-header .tbr-spine-wrap { margin: 2px 18px 10px 0; }
  .review-header .tbr-spine { width: 60px; height: 90px; }
  .review-header .tbr-spine .tbr-spine-mono { font-size: 1.4rem; }
  .review-header .tbr-spine::before { top: 6px; height: 3px; }
  .review-header .tbr-spine::after { bottom: 16px; height: 2px; }
  .review-header .tbr-spine .tbr-spine-foot { bottom: 4px; font-size: 7px; }
}
