/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ad99a4c1cf58.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/4f12a1a0ae41.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/e3000ed81c87.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/a3b94a5a967d.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/52ea38a7d8d6.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/ad99a4c1cf58.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/4f12a1a0ae41.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/e3000ed81c87.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/a3b94a5a967d.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/52ea38a7d8d6.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/c18dbd11ca5b.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ac78c6c2ff98.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/8a92de9f3770.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/a9e49ee5f58f.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/74db058fe06d.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/c18dbd11ca5b.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/ac78c6c2ff98.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/8a92de9f3770.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/a9e49ee5f58f.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/74db058fe06d.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/c18dbd11ca5b.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/ac78c6c2ff98.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/8a92de9f3770.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/a9e49ee5f58f.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/74db058fe06d.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/c18dbd11ca5b.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/ac78c6c2ff98.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/8a92de9f3770.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/a9e49ee5f58f.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/74db058fe06d.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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("fonts/dced7149525e.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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("fonts/7de3c5b4c5e7.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("fonts/7af61c95c207.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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("fonts/6cd1f63be011.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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("fonts/8462a12a7c78.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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("fonts/a5a4517fcbf1.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;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/4f8405520dc8.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: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/fe6ea7dc48cb.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: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/3f2b7e2b2ef8.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;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/4f8405520dc8.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: 'Newsreader';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/fe6ea7dc48cb.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: 'Newsreader';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/3f2b7e2b2ef8.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;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/9b967522bc5a.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: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/d30ef885441c.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: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/e599ceb478c4.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;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/9b967522bc5a.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: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/d30ef885441c.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: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/e599ceb478c4.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;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/9b967522bc5a.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: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/d30ef885441c.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: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/e599ceb478c4.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;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/9b967522bc5a.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: 'Newsreader';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/d30ef885441c.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: 'Newsreader';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/e599ceb478c4.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: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/4e8fa4bb2d0f.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: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/0309594de5e1.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: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/4e8fa4bb2d0f.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: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/0309594de5e1.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: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/4e8fa4bb2d0f.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: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/0309594de5e1.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;
}


  @font-face { font-family: 'ET Book'; font-style: normal; font-weight: 400; src: url("fonts/a0e7e6f48348.woff") format('woff'); font-display: swap; }
  #wos-root { --bg:#FCFBF7; --fg:#060606; --faded:#5B5F66; --border:#E6E3DC; --tileborder:#CFCABD; --accent:#E34234; --hover:#F4F1EA; --imgline:var(--fg); }
  #wos-root [data-tile] { text-decoration:none; }
  #wos-root [data-tile] [data-dot] { opacity:0; transition:opacity 0.18s ease; }
  #wos-root [data-tile] [data-label] { transition:transform 0.18s ease; }
  #wos-root [data-tile]:hover { background:var(--hover); }
  #wos-root [data-tile]:hover [data-dot] { opacity:1; }
  #wos-root [data-tile]:hover [data-label] { transform:translateX(17px); }
  #wos-root[data-theme="alt"] { --bg:#000000; --fg:#FFFFFF; --faded:rgba(255,255,255,0.56); --border:rgba(255,255,255,0.14); --tileborder:rgba(255,255,255,0.24); --accent:#E34234; --hover:rgba(255,255,255,0.06); --imgline:rgba(255,255,255,0.32); }
  /* Safety net: a re-render can momentarily drop #wos-root's data-theme (it is
     restored in componentDidUpdate). Keying the dark tokens off the never-rebuilt
     <html data-theme="alt"> as well means the surface never flashes back to paper. */
  html[data-theme="alt"] #wos-root { --bg:#000000; --fg:#FFFFFF; --faded:rgba(255,255,255,0.56); --border:rgba(255,255,255,0.14); --tileborder:rgba(255,255,255,0.24); --accent:#E34234; --hover:rgba(255,255,255,0.06); --imgline:rgba(255,255,255,0.32); }
  /* DEFAULT: image frames = black in light, muted #41463F in dark; nav tiles = stronger both modes */
  /* tweak: 'prev' = faint hairline on BOTH nav tiles and image-card frames */
  #wos-root[data-tilestroke="prev"] { --tileborder:var(--border); --imgline:var(--border); }
  /* tweak: 'white' = original glaring-white dark image frames (reference) */
  #wos-root[data-theme="alt"][data-tilestroke="white"] { --imgline:var(--fg); }

  /* Kill only the mobile browser's tap-flash (the blue/grey sheen). Real links
     keep their native long-press menu — we no longer suppress touch-callout. */
  * { -webkit-tap-highlight-color: transparent; }

  /* ===== card links (semantic "stretched link") =====
     A card's title is a real <a class="cardlink">; its ::after overlay covers
     the whole .wos-card so a click/tap anywhere navigates to the article. The
     nested category chip (.catlink) sits above the overlay so it stays its own
     link (→ topic). Title reddens on hover (real pointers) and press/hold
     (touch, via :active, which clears on release) to nudge the tap. */
  .wos-card { position: relative; }
  .cardlink { color: inherit; text-decoration: none; transition: color 0.2s; }
  .cardlink::after { content: ""; position: absolute; inset: 0; z-index: 1; }
  .catlink { position: relative; z-index: 2; color: inherit; text-decoration: none; }
  @media (hover: hover) { .cardlink:hover { color: var(--accent); } }
  .cardlink:active { color: var(--accent); }

  /* Search result rows are whole-row real links (.wos-hit). Hover/press cue. */
  .wos-hit { transition: background 0.18s; }
  .wos-hit [data-title] { transition: color 0.18s; }
  @media (hover: hover) { .wos-hit:hover { background: var(--hover); } .wos-hit:hover [data-title] { color: var(--accent); } }
  .wos-hit:active [data-title] { color: var(--accent); }

  /* ===== menu button icon (CSS bars, morphs to X) =====
     A 4-bar hamburger: bars 1 & 4 are the full top/bottom lines; bars 2 & 3 are
     two overlapping SHORT bars stacked at the centre, so at rest they read as a
     single 70%-width middle line. On open, the top/bottom fade inward and the
     two middle bars scissor into an X — the X forms *inside* the hamburger
     footprint, where the middle line was (cf. worksinprogress.co). */
  .wos-ham { display:inline-block; position:relative; width:20px; height:14px; }
  .wos-ham i {
    position:absolute; height:1.7px; background:currentColor; border-radius:2px;
    transition:transform .32s cubic-bezier(.2,.72,.28,1), opacity .2s ease, width .28s ease;
  }
  .wos-ham i:nth-child(1) { top:1px; left:0; width:100%; }
  .wos-ham i:nth-child(4) { bottom:1px; left:0; width:100%; }
  .wos-ham i:nth-child(2),
  .wos-ham i:nth-child(3) { top:50%; left:50%; width:70%; transform:translate(-50%,-50%) rotate(0deg); }
  [data-menubtn][data-open] .wos-ham i:nth-child(1) { opacity:0; transform:translateY(4px); }
  [data-menubtn][data-open] .wos-ham i:nth-child(4) { opacity:0; transform:translateY(-4px); }
  [data-menubtn][data-open] .wos-ham i:nth-child(2) { width:100%; transform:translate(-50%,-50%) rotate(45deg); }
  [data-menubtn][data-open] .wos-ham i:nth-child(3) { width:100%; transform:translate(-50%,-50%) rotate(-45deg); }

  /* ===== device viewport preview ===== */
  [data-stage] { display: contents; }
  [data-stage][data-vp="phone"], [data-stage][data-vp="tablet"], [data-stage][data-vp="tablet-ls"] {
    display: block; min-height: 100vh; box-sizing: border-box;
    background: repeating-linear-gradient(45deg,#26282b,#26282b 2px,#222427 2px,#222427 14px);
    padding: 44px 16px; overflow-x: auto;
  }
  [data-stage][data-vp="phone"] [data-frame] {
    width: 393px; height: 852px; margin: 0 auto; background: #0a0a0a;
    border-radius: 56px; padding: 13px; box-sizing: border-box;
    box-shadow: 0 50px 90px -20px rgba(0,0,0,0.65), 0 0 0 2px #2c2c2e, inset 0 0 0 2px #000;
    position: relative;
  }
  [data-stage][data-vp="tablet"] [data-frame] {
    width: 834px; max-width: 100%; height: 1112px; margin: 0 auto; background: #0a0a0a;
    border-radius: 34px; padding: 16px; box-sizing: border-box;
    box-shadow: 0 50px 90px -20px rgba(0,0,0,0.65), 0 0 0 2px #2c2c2e, inset 0 0 0 2px #000;
    position: relative;
  }
  [data-stage][data-vp="tablet-ls"] [data-frame] {
    width: 1112px; max-width: 100%; height: 834px; margin: 0 auto; background: #0a0a0a;
    border-radius: 34px; padding: 16px; box-sizing: border-box;
    box-shadow: 0 50px 90px -20px rgba(0,0,0,0.65), 0 0 0 2px #2c2c2e, inset 0 0 0 2px #000;
    position: relative;
  }
  [data-stage][data-vp="phone"] [data-frame]::before {
    content: ""; position: absolute; top: 13px; left: 50%; transform: translateX(-50%);
    width: 124px; height: 33px; background: #000; border-radius: 0 0 20px 20px; z-index: 50;
  }
  [data-stage][data-vp="phone"] [data-scroll] { border-radius: 44px; }
  [data-stage][data-vp="tablet"] [data-scroll] { border-radius: 20px; }
  [data-stage][data-vp="tablet-ls"] [data-scroll] { border-radius: 20px; }
  [data-stage][data-vp="phone"] [data-scroll], [data-stage][data-vp="tablet"] [data-scroll], [data-stage][data-vp="tablet-ls"] [data-scroll] {
    width: 100%; height: 100%; overflow-y: auto; overflow-x: hidden;
    -webkit-overflow-scrolling: touch; background: var(--bg); position: relative;
    /* establish containing block so [data-menu]'s position:fixed resolves to the
       device screen (and is clipped to its rounded corners), not the window */
    transform: translateZ(0);
  }
  [data-stage][data-vp="phone"] #wos-root, [data-stage][data-vp="tablet"] #wos-root, [data-stage][data-vp="tablet-ls"] #wos-root { min-height: 100%; }

  /* condensed (scrolled) masthead height: compact on phone/tablet, a taller
     ~83px bar on desktop so the sticky header matches the reader's. */
  header#masthead.mast-condensed { padding-top: 14px !important; padding-bottom: 14px !important; }
  [data-vp="desktop"] header#masthead.mast-condensed { padding-top: 24px !important; padding-bottom: 24px !important; }

  /* ---- PHONE: single-column architecture ---- */
  /* ---- PHONE masthead: static single-line lockup ----
     Globe on the left, wordmark centred to the viewport, menu button on the
     right — one fixed layout, no scroll morph (the .mast-condensed selectors
     carry identical values so scrolling changes nothing). Only the single-line
     lockup is used on phone (the stacked variant is hidden). Globe + wordmark stay
     inside the home link, so either navigates home. Everything is positioned
     within the sticky header (its positioning context); desktop/tablet and the
     reader keep the shared lockup untouched. */
  [data-vp="phone"] header#masthead [data-mast="stacked"] { display: none !important; }
  [data-vp="phone"] header#masthead [data-mast="single"] { display: block !important; gap: 0 !important; }
  [data-vp="phone"] header#masthead,
  [data-vp="phone"] header#masthead.mast-condensed {
    padding: 0 !important;
    min-height: 66px;
    /* full-bleed: break out of the 8px body margin so the bottom divider runs
       edge to edge. Globe/hamburger offsets below are measured from the real
       screen edge to compensate. */
    margin-left: -8px !important; margin-right: -8px !important;
  }

  /* globe: left, vertically centred, padded off the edge */
  [data-vp="phone"] header#masthead #g-single,
  [data-vp="phone"] header#masthead.mast-condensed #g-single {
    position: absolute !important; margin: 0 !important;
    width: 50px !important; height: 50px !important;
    left: 8px; top: 50%; transform: translateY(-50%);
  }

  /* wordmark: centred to the viewport, vertically centred */
  [data-vp="phone"] header#masthead [data-mast="single"] > span:last-child,
  [data-vp="phone"] header#masthead.mast-condensed [data-mast="single"] > span:last-child {
    position: absolute !important;
    left: 0; right: 0; text-align: center;
    font-size: 29px !important; line-height: 1 !important; white-space: nowrap;
    top: 50%; transform: translateY(-50%);
  }

  /* menu button: right, dropped so the bottom line of the icon sits on the
     wordmark's baseline (bottom-aligned with the wordmark, measured). */
  [data-vp="phone"] header#masthead > span,
  [data-vp="phone"] header#masthead.mast-condensed > span {
    position: absolute !important; right: 20px;
    top: 50%; transform: translateY(calc(-50% + 4px));
  }

  /* ---- DESKTOP / TABLET masthead: single-line centred lockup (matches the phone
     header). The tall stacked hero is removed at every non-phone width; the header
     is one fixed centred bar — globe left, wordmark centred, menu right — with no
     scroll morph (the .mast-condensed selectors carry identical values). */
  [data-vp="desktop"] header#masthead [data-mast="stacked"],
  [data-vp="tablet"] header#masthead [data-mast="stacked"],
  [data-vp="tablet-ls"] header#masthead [data-mast="stacked"] { display: none !important; }
  [data-vp="desktop"] header#masthead [data-mast="single"],
  [data-vp="tablet"] header#masthead [data-mast="single"],
  [data-vp="tablet-ls"] header#masthead [data-mast="single"] { display: inline-flex !important; align-items: center; gap: 22px !important; }
  /* stable, non-morphing bar height in both scroll states */
  [data-vp="desktop"] header#masthead,
  [data-vp="desktop"] header#masthead.mast-condensed,
  [data-vp="tablet"] header#masthead,
  [data-vp="tablet"] header#masthead.mast-condensed,
  [data-vp="tablet-ls"] header#masthead,
  [data-vp="tablet-ls"] header#masthead.mast-condensed {
    padding-top: 8px !important; padding-bottom: 8px !important; min-height: 0;
    /* adopt the phone header's edge treatment: full-bleed (break out of the body's
       8px margin so the divider runs edge to edge) with the globe hugging the left
       and the menu the right, instead of inset to the 1100px content column. */
    /* Globe + menu align to the CONTENT gutter. The header is full-bleed
       (margin:-8px breaks out of the body's 8px margin so the divider reaches the
       edge), so its padding must be the content gutter + 8px to land the globe and
       menu at the same x as the sections below. Keep this = (section gutter + 8). */
    padding-left: 48px !important; padding-right: 48px !important;
    margin-left: -8px !important; margin-right: -8px !important;
  }
  /* globe: left, vertically centred. 72px globe + 8px padding keeps the bar at the
     same ~88px height as the 60px-globe/14px-padding version it replaces. */
  [data-vp="desktop"] header#masthead #g-single,
  [data-vp="tablet"] header#masthead #g-single,
  [data-vp="tablet-ls"] header#masthead #g-single {
    width: 72px !important; height: 72px !important; margin: 0 !important;
  }
  /* wordmark: next to the globe as a left-aligned lockup (no divider; the flex gap
     on [data-mast="single"] sets the space between globe and wordmark). */
  [data-vp="desktop"] header#masthead [data-mast="single"] > span:last-child,
  [data-vp="tablet"] header#masthead [data-mast="single"] > span:last-child,
  [data-vp="tablet-ls"] header#masthead [data-mast="single"] > span:last-child {
    position: static !important;
    padding: 0 !important;
    font-size: 45px !important; line-height: 1 !important; white-space: nowrap;
    text-align: left !important;
  }
  /* menu button: bigger icon, still shorter than the globe so the bar height is
     unaffected (scale keeps it out of layout flow) */
  [data-vp="desktop"] header#masthead .wos-ham,
  [data-vp="tablet"] header#masthead .wos-ham,
  [data-vp="tablet-ls"] header#masthead .wos-ham {
    transform: scale(1.4); transform-origin: center;
  }

  /* ===== Desktop top-nav + unfolding header search =====
     Nav (Search/About/Archive/Newsletter) shows only on non-phone; the hamburger
     stays. Clicking Search adds .hdr-search-open to the header: the nav collapses
     (max-width -> 0) and the search bar unfolds (max-width 0 -> open) in its place.
     Both hidden on phone (mobile keeps the hamburger only). */
  [data-topnav], [data-hdr-searchbar] { display: none; }
  [data-vp="desktop"] header#masthead [data-topnav],
  [data-vp="tablet"] header#masthead [data-topnav],
  [data-vp="tablet-ls"] header#masthead [data-topnav] {
    display: flex; max-width: 600px; opacity: 1; overflow: hidden;
    transition: max-width .38s cubic-bezier(.16,1,.3,1), opacity .2s ease;
  }
  [data-vp="desktop"] header#masthead [data-hdr-searchbar],
  [data-vp="tablet"] header#masthead [data-hdr-searchbar],
  [data-vp="tablet-ls"] header#masthead [data-hdr-searchbar] {
    display: flex; max-width: 0; opacity: 0; overflow: hidden; pointer-events: none;
    transition: max-width .38s cubic-bezier(.16,1,.3,1), opacity .25s ease;
  }
  [data-vp="desktop"] header#masthead.hdr-search-open [data-topnav],
  [data-vp="tablet"] header#masthead.hdr-search-open [data-topnav],
  [data-vp="tablet-ls"] header#masthead.hdr-search-open [data-topnav] {
    max-width: 0; opacity: 0; pointer-events: none;
  }
  [data-vp="desktop"] header#masthead.hdr-search-open [data-hdr-searchbar],
  [data-vp="tablet"] header#masthead.hdr-search-open [data-hdr-searchbar],
  [data-vp="tablet-ls"] header#masthead.hdr-search-open [data-hdr-searchbar] {
    max-width: 340px; opacity: 1; pointer-events: auto;
  }
  @media (hover: hover) {
    [data-vp="desktop"] header#masthead .topnav-link:not(.topnav-off):hover,
    [data-vp="tablet"] header#masthead .topnav-link:not(.topnav-off):hover,
    [data-vp="tablet-ls"] header#masthead .topnav-link:not(.topnav-off):hover,
    header#masthead [data-hdr-search-close]:hover { color: var(--accent); }
  }

  /* ---- Full-width body: adopt the phone gutters (8px) for the rest of the page,
     not just the header. Drop the 1100px content column so sections and the footer
     run edge to edge like the masthead. Only the horizontal padding + max-width
     change; each section keeps its own vertical padding. Text blocks are already
     capped at their own max-width, so measures stay readable. */
  [data-vp="desktop"] section,
  [data-vp="tablet"] section,
  [data-vp="tablet-ls"] section {
    max-width: none !important;
    padding-left: 40px !important; padding-right: 40px !important;
  }
  [data-vp="desktop"] [data-fbar], [data-vp="desktop"] [data-fbot],
  [data-vp="tablet"] [data-fbar], [data-vp="tablet"] [data-fbot],
  [data-vp="tablet-ls"] [data-fbar], [data-vp="tablet-ls"] [data-fbot] {
    padding-left: 40px !important; padding-right: 40px !important;
  }
  /* Cap the whole body (masthead + content, all inside #wos-root) at 1600px and
     centre it. Below 1600 the app runs full-width with the 8px gutters above;
     past 1600 it becomes a centred column. The fixed menu overlay is position:fixed
     so it escapes this cap and still covers the viewport. */
  [data-vp="desktop"] #wos-root,
  [data-vp="tablet"] #wos-root,
  [data-vp="tablet-ls"] #wos-root {
    max-width: 1600px !important;
    margin-inline: auto !important;
  }

  [data-vp="phone"] main { grid-template-columns: 1fr !important; padding: 6px 8px !important; gap: 14px !important; }
  [data-vp="phone"] section { padding: 20px 8px 48px !important; }
  /* featured (structural: only featured uses article) -> stacked */
  [data-vp="phone"] main > article, [data-vp="phone"] section > article { grid-template-columns: 1fr !important; margin-bottom: 24px !important; }
  [data-vp="phone"] main > article > div:first-child, [data-vp="phone"] section > article > div:first-child { min-height: 208px !important; border-right: none !important; border-bottom: 1px solid var(--fg) !important; }
  [data-vp="phone"] main > article > div:last-child, [data-vp="phone"] section > article > div:last-child { padding: 24px 0 0 !important; }
  [data-vp="phone"] main > article > div:last-child > div:not([style*="border-top"]), [data-vp="phone"] main > article > div:last-child > h2, [data-vp="phone"] main > article > div:last-child > p, [data-vp="phone"] section > article > div:last-child > div:not([style*="border-top"]), [data-vp="phone"] section > article > div:last-child > h2, [data-vp="phone"] section > article > div:last-child > p { padding-left: 22px !important; padding-right: 22px !important; }
  [data-vp="phone"] main > article > div:last-child > div:last-child, [data-vp="phone"] section > article > div:last-child > div:last-child { padding-bottom: 28px !important; padding-top: 18px !important; }
  [data-vp="phone"] main > article h2, [data-vp="phone"] section > article h2 { font-size: 2rem !important; }
  [data-vp="phone"] main > article p, [data-vp="phone"] section > article p { font-size: 1.06rem !important; }
  /* drop the "Featured" eyebrow on phones so the headline+meta sit higher (meta visible without scrolling) */
  [data-vp="phone"] [data-feat-label] { display: none !important; }
  /* current-grid two-up cards: ease body padding + let meta wrap so it doesn't clip the corners */
  [data-vp="phone"] main > div > div:last-child { padding-left: 0 !important; padding-right: 0 !important; }
  [data-vp="phone"] main > div > div:last-child > div { padding-left: 16px !important; padding-right: 16px !important; }
  [data-vp="phone"] main > div > div:last-child > div:last-child { white-space: normal !important; }
  /* A + E rows -> stacked */
  [data-vp="phone"] [data-r="a"], [data-vp="phone"] [data-r="e"] { grid-template-columns: 1fr !important; gap: 14px !important; padding: 22px 2px !important; }
  [data-vp="phone"] [data-r="e"] h3 { font-size: 1.85rem !important; }
  /* B compact rows -> MOBILE: fully stacked column beside the image (topic, title, sub, meta) */
  [data-vp="phone"] [data-r="b"] { grid-template-columns: 80px 1fr !important; column-gap: 16px !important; row-gap: 0 !important; align-items: start !important; padding: 20px 2px !important; }
  [data-vp="phone"] [data-r="b"] > div:first-child { width: 80px !important; height: 80px !important; grid-column: 1 !important; grid-row: 1 / span 4 !important; }
  [data-vp="phone"] [data-r="b"] > div:nth-child(2), [data-vp="phone"] [data-r="b"] > div:nth-child(3) { display: contents !important; }
  [data-vp="phone"] [data-r="b"] > div:nth-child(2) > *, [data-vp="phone"] [data-r="b"] > div:nth-child(3) > * { grid-column: 2 !important; text-align: left !important; white-space: normal !important; min-width: 0 !important; }
  [data-vp="phone"] [data-r="b"] > div:nth-child(3) > div:first-child { order: 1 !important; margin: 0 0 6px !important; }
  [data-vp="phone"] [data-r="b"] h3 { order: 2 !important; display: -webkit-box !important; -webkit-box-orient: vertical !important; -webkit-line-clamp: 3 !important; overflow: hidden !important; text-overflow: clip !important; max-height: calc(1.1em * 3) !important; height: auto !important; margin: 0 0 6px !important; }
  [data-vp="phone"] [data-r="b"] p { order: 3 !important; display: -webkit-box !important; -webkit-box-orient: vertical !important; -webkit-line-clamp: 5 !important; overflow: hidden !important; max-height: calc(1.35em * 5) !important; height: auto !important; margin: 0 0 8px !important; }
  [data-vp="phone"] [data-r="b"] > div:nth-child(3) > div:last-child { order: 4 !important; }
  /* B compact rows -> iPad: keep two-column desktop structure, top-align so title stays level with the image, wrap title (2-line slot) + 3-line subtitle slot */
  [data-vp="tablet"] [data-r="b"] { align-items: start !important; }
  [data-vp="tablet"] [data-r="b"] h3 { white-space: normal !important; display: -webkit-box !important; -webkit-box-orient: vertical !important; -webkit-line-clamp: 2 !important; overflow: hidden !important; text-overflow: clip !important; max-height: calc(1.1em * 2) !important; height: auto !important; }
  [data-vp="tablet"] [data-r="b"] p { display: -webkit-box !important; -webkit-box-orient: vertical !important; -webkit-line-clamp: 3 !important; overflow: hidden !important; height: calc(1.35em * 3) !important; white-space: normal !important; }
  /* C index list -> number + title, drop trailing meta, untruncate */
  [data-vp="phone"] [data-r="c"] { grid-template-columns: 26px 1fr !important; gap: 12px !important; align-items: start !important; }
  [data-vp="phone"] [data-r="c"] > span:last-child { display: none !important; }
  [data-vp="phone"] [data-r="c"] h3 { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }
  /* search results page rows */
  [data-vp="phone"] [data-r="srow"] { grid-template-columns: 64px 1fr !important; gap: 4px 14px !important; align-items: start !important; padding: 20px 2px !important; }
  [data-vp="phone"] [data-r="srow"] > div:first-child { width: 64px !important; height: 64px !important; grid-row: 1 / span 3 !important; }
  [data-vp="phone"] [data-r="srow"] > span:last-child { grid-column: 2 !important; margin-top: 8px !important; padding-top: 0 !important; }
  [data-vp="phone"] [data-r="srow"] h3 { font-size: 1.45rem !important; }
  [data-vp="phone"] [data-r="srow"] p { -webkit-line-clamp: 3 !important; }
  [data-vp="tablet"] [data-r="srow"] { gap: 22px !important; }
  /* D two-up cards -> single column */
  [data-vp="phone"] [data-rw="d"] { grid-template-columns: 1fr !important; }
  /* footer / subscribe */
  @keyframes footerRingSpin { to { transform: rotate(360deg); } }
  /* MCF stamp invert. Split by input type so touch doesn't leave it stuck
     inverted: :hover only for real pointers (clears normally), :active for
     touch (drops on release). The sigil snaps (no transition). */
  @media (hover: hover) {
    .mcf-mini:hover { background: var(--fg) !important; color: var(--bg) !important; }
    .mcf-mini:hover [data-sigil] { background: var(--bg) !important; }
  }
  .mcf-mini:active { background: var(--fg) !important; color: var(--bg) !important; }
  .mcf-mini:active [data-sigil] { background: var(--bg) !important; }
  [data-vp="phone"] [data-fbar] { padding: 30px 8px !important; gap: 22px !important; }
  [data-vp="phone"] [data-fring] { display: none !important; }
  [data-vp="phone"] [data-subrow] { flex-direction: column !important; }
  [data-vp="phone"] [data-subrow] button { width: 100% !important; justify-content: center !important; }
  /* New footer bar: globe left, credits right at every width; only the globe
     size (128 static -> 84 spinning) and padding change on phones. */
  /* Taller bar so the globe + credits drop to the bottom (back-to-top stays up
     top via space-between); globe bottom-aligns with the credits. */
  [data-vp="phone"] [data-fbot] { padding: 34px 24px 40px !important; flex-wrap: nowrap !important; gap: 16px !important; min-height: 150px !important; }
  [data-vp="phone"] #g-foot-d { display: none !important; }
  [data-vp="phone"] #g-foot-m { display: inline-flex !important; align-self: flex-end !important; margin-left: -12px !important; margin-bottom: 12px !important; }
  /* drop the back-to-top down so it sits just below the globe's top; translateY
     (not margin) so the globe + credits don't reflow — they stay put. */
  [data-vp="phone"] [data-fbotr] > span[role="button"] { width: 28px !important; height: 28px !important; margin-top: 0 !important; transform: translateY(48px) !important; }
  /* bottom-align the credits with the globe (match the globe's 12px margin-bottom;
     back-to-top stays put at the top of the column) */
  [data-vp="phone"] [data-fcopy] { margin-bottom: 12px !important; }
  [data-vp="phone"] [data-flogo] { font-size: 27px !important; }
  /* menu overlay: clamp big nav type to frame width, single-column topics */
  [data-vp="phone"] [data-menu] { padding-left: 22px !important; padding-right: 22px !important; padding-bottom: 30px !important; }
  [data-vp="phone"] [data-menu] nav button, [data-vp="phone"] [data-menu] nav > a { font-size: 2.5rem !important; }
  [data-vp="phone"] [data-menu] [data-panel] > div { grid-template-columns: 1fr !important; gap: 12px !important; }
  [data-vp="phone"] [data-menu] [data-panel] [data-label] { font-size: 1.15rem !important; }

  /* ---- TABLET: trims for 834px ---- */
  [data-vp="tablet"] header#masthead { padding-left: 24px !important; padding-right: 24px !important; }
  [data-vp="tablet"] main { padding: 24px !important; }
  [data-vp="tablet"] section { padding-left: 24px !important; padding-right: 24px !important; }
  [data-vp="tablet"] [data-r="e"] { grid-template-columns: 300px 1fr !important; gap: 32px !important; }
  [data-vp="tablet"] [data-fbar] { gap: 28px !important; padding-left: 24px !important; padding-right: 24px !important; }
  [data-vp="tablet"] [data-fbot] { padding-left: 24px !important; padding-right: 24px !important; }
  [data-vp="tablet"] [data-menu] nav button, [data-vp="tablet"] [data-menu] nav > a { font-size: 3.4rem !important; }
  /* tablet featured -> stacked, full-width landscape image */
  [data-vp="tablet"] main > article, [data-vp="tablet"] section > article { grid-template-columns: 1fr !important; }
  [data-vp="tablet"] main > article > div:first-child, [data-vp="tablet"] section > article > div:first-child { min-height: 0 !important; aspect-ratio: 16/9 !important; border-right: none !important; border-bottom: 1px solid var(--fg) !important; }
  [data-vp="tablet"] main > article > div:last-child, [data-vp="tablet"] section > article > div:last-child { padding: 40px 0 0 !important; }
  [data-vp="tablet"] main > article > div:last-child > div:not([style*="border-top"]), [data-vp="tablet"] main > article > div:last-child > h2, [data-vp="tablet"] main > article > div:last-child > p, [data-vp="tablet"] section > article > div:last-child > div:not([style*="border-top"]), [data-vp="tablet"] section > article > div:last-child > h2, [data-vp="tablet"] section > article > div:last-child > p { padding-left: 44px !important; padding-right: 44px !important; }
  [data-vp="tablet"] main > article > div:last-child > div:last-child, [data-vp="tablet"] section > article > div:last-child > div:last-child { padding-bottom: 40px !important; }
  /* tablet: keep orbit ring beside subscribe, just smaller */
  [data-vp="tablet"] [data-fring] { flex: 0 0 auto !important; min-width: 0 !important; align-self: flex-start !important; margin-top: 4px !important; }
  [data-vp="tablet"] [data-fring] #ring-art { width: 178px !important; height: 178px !important; }

  /* ---- current-grid card clamps per viewport (current grid = main > div; featured = article, excluded) ----
     narrower tablet/phone cards wrap more lines before the clamp, so raise the clamp AND the
     band's slot min-height to match (sized for the worst-case 2.5rem title so bands never overflow
     and the divider/meta lines stay aligned across a row). Desktop keeps its inline 2/3 clamps. */
  [data-vp="phone"]  main > div > div:last-child h2,
  [data-vp="tablet"] main > div > div:last-child h2 { -webkit-line-clamp: 3 !important; }
  [data-vp="phone"]  main > div > div:last-child > div:first-child,
  [data-vp="tablet"] main > div > div:last-child > div:first-child { min-height: 138px !important; }
  [data-vp="phone"]  main > div > div:last-child p,
  [data-vp="tablet"] main > div > div:last-child p { -webkit-line-clamp: 4 !important; }
  [data-vp="phone"]  main > div > div:last-child > div:nth-child(3),
  [data-vp="tablet"] main > div > div:last-child > div:nth-child(3) { min-height: 138px !important; padding-top: 16px !important; padding-bottom: 16px !important; }
  /* tablet meta: trim card body padding + nudge font down so the meta line always fits on one line */
  [data-vp="tablet"] main > div > div:last-child > div:last-child { padding-left: 22px !important; padding-right: 22px !important; font-size: 16px !important; white-space: normal !important; }
  /* ---- topic page header: stack name over description on smaller viewports ---- */
  [data-vp="phone"] [data-tophead], [data-vp="tablet"] [data-tophead] { flex-direction: column !important; gap: 16px !important; padding-bottom: 22px !important; }
  [data-vp="phone"] [data-tophead-rule], [data-vp="tablet"] [data-tophead-rule] { display: none !important; }
  [data-vp="phone"] [data-tophead] p, [data-vp="tablet"] [data-tophead] p { max-width: none !important; margin-top: 0 !important; }
  [data-vp="phone"] [data-tophead] h1 { font-size: 3rem !important; }
  [data-vp="phone"] [data-tophead] p { font-size: 1.18rem !important; }
  /* dark mode: keep the page root pure black behind #wos-root (overscroll, scrollbars) */
  html[data-theme="alt"], html[data-theme="alt"] body { background: #000000; }
  /* ===== live deploy: real-width responsive, no device bezel, no faux URL bar ===== */
  [data-stage], [data-frame], [data-scroll] { display: contents !important; }
  [data-stage] [data-frame]::before { display: none !important; }
  #wos-root > div[aria-hidden="true"]:first-child { display: none !important; }

/* Shrink the Built-by chip on phones so the "Built by" label never wraps. */
[data-vp="phone"] a[href*="marscodefactory"] { font-size: 8px !important; letter-spacing: 0.05em !important; padding: 4px 7px !important; gap: 5px !important; white-space: nowrap !important; }
[data-vp="phone"] a[href*="marscodefactory"] > span { width: 6px !important; height: 6px !important; }
