/* ════════════════════════════════════════════════════════════════════════
   site.css — THE PUBLIC SITE (5e, Drew approved 2026-09-26).
   One stylesheet for every public page: the homepage, thanks, terms, privacy,
   pricing, the comparison pages and the marketplace chrome. It began as the
   approved homepage's own CSS (design-reference/approved-5e/homepage.html)
   and every other page was brought to it, so the site speaks one grammar:
   light only, Inter for words and Montserrat for headings, pill buttons,
   rounded cards on hairlines, sentence case, the wordmark black over an
   accent rule.
   ONE FILE, LINKED, ON PURPOSE. The pages used to be self-contained by
   COPYING a stylesheet into each, and that is exactly how they drifted: the
   homepage moved to 5e and eleven pages stayed where they were. A linked
   sheet cannot drift from itself. The pages still load no app CSS and no app
   JavaScript, and none of this is precached.
   ════════════════════════════════════════════════════════════════════════ */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/inter-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/inter-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/inter-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/inter-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/inter-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/inter-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/inter-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/inter-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/inter-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/inter-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/inter-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/inter-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/inter-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/inter-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/inter-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/inter-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/css/fonts/inter-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/css/fonts/inter-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/css/fonts/inter-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/css/fonts/inter-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/css/fonts/inter-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/montserrat-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/montserrat-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/css/fonts/montserrat-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/css/fonts/montserrat-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/montserrat-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/montserrat-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/montserrat-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/montserrat-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/montserrat-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/montserrat-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/css/fonts/montserrat-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;
}
:root{--disp:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;--body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;--paper:#F7F8F6;--card:#FFFFFF;--ink:#101518;--dim:#4E5961;--line:#DFE3E1;--act:#0E7490;--acth:#0B5E74;--mark:#0EDFF1;--soft:#EAF4F5;--tint:#EEF1EF;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-weight:400;font-size:17px;line-height:1.55;font-family:var(--body);padding:0 20px}
.w{max-width:1200px;margin:0 auto}
h1,h2,h3{font-family:var(--disp);letter-spacing:-.02em;text-wrap:balance;margin:0}
h1{font-weight:800;font-size:clamp(2.6rem,6vw,4.4rem);line-height:1.02}
h2{font-weight:800;font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.08}
h3{font-weight:700;font-size:1.2rem}
p{margin:0}
a{color:inherit}
nav{display:flex;align-items:center;gap:26px;padding:20px 0}
nav .logo{display:block;padding-bottom:8px;border-bottom:3px solid var(--act)} nav .logo img{height:36px;display:block} nav .sp{flex:1} nav a{text-decoration:none;font-size:15px;font-weight:500;color:var(--dim)}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:14px 24px;font-weight:600;font-size:16px;text-decoration:none;border:1.5px solid transparent;min-height:48px}
.btn.p{background:var(--act);color:#fff} .btn.g{border-color:#C8D0D3;color:var(--ink)} .btn.dk{background:var(--ink);color:#fff;padding:10px 18px;min-height:40px;font-size:15px}
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;padding:48px 0 24px}
.hero .sub{font-size:20px;color:var(--dim);max-width:34ch;margin:22px 0 28px}
.btns{display:flex;gap:12px;flex-wrap:wrap}
.facts-lead{margin-top:30px;font-weight:600;font-size:15px;color:var(--ink)}
.facts{display:flex;flex-direction:column;gap:8px;margin-top:10px;color:var(--dim);font-size:15px}
.facts span::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--mark);margin-right:8px;vertical-align:middle}
.ph{margin:0;display:flex;flex-direction:column;container-type:inline-size}
/* the bezel is a share of the phone's width, so a small phone gets a thin frame */
.bz{border-radius:13.5cqw;padding:2.6cqw;background:#0f1417;box-shadow:0 8px 18px rgba(16,24,32,.12),0 2px 5px rgba(16,24,32,.08)}
.bz img{display:block;width:100%;border-radius:11cqw}
.ph figcaption{font-weight:600;font-size:12px;line-height:1;font-family:var(--body);letter-spacing:.09em;text-transform:uppercase;color:var(--dim);margin-top:14px;text-align:center}
.stage{display:flex;gap:24px;justify-content:center;align-items:flex-start}
.stage .ph{width:calc(50% - 12px);max-width:280px}
.stage .b{margin-top:64px}
.team{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:22px 26px;margin:28px 0 0}
.team p{color:var(--dim)} .team .find{display:flex;align-items:center;justify-content:space-between;gap:16px;border-left:1px solid var(--line);padding-left:24px}
.team .find .btn{flex:none;white-space:nowrap}
.team .find b{display:block;font-family:var(--disp)}
section{padding:96px 0 0}
.eyebrow{font-weight:600;font-size:13px;line-height:1;font-family:var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--act);margin-bottom:14px}
.lead{max-width:62ch;color:var(--dim);font-size:18px;margin-top:16px}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:36px}
.step{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px}
.step i{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--soft);color:var(--act);font-weight:700;font-size:15px;line-height:1;font-family:var(--disp);font-style:normal;margin-bottom:14px}
.step p{color:var(--dim);margin-top:8px;font-size:16px}
.feat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:56px;align-items:center;padding:88px 0 0}
.feat.flip .copy{order:2}
.feat .copy p{color:var(--dim);margin-top:16px;max-width:52ch}
.feat ul{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:12px}
.feat li{position:relative;padding-left:28px;font-size:16px}
.feat li::before{content:'';position:absolute;left:0;top:.55em;width:14px;height:2px;background:var(--act)}
.vis{display:flex;gap:28px;justify-content:center;align-items:flex-start}
.vis .ph{width:250px;flex:none}

.vis.n3{gap:18px}.vis.n3 .ph{width:31%;max-width:190px;flex:0 1 auto}
/* Six phones, three by two: the six looks under "Your brand". */
.vis.n6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 14px;max-width:560px;margin:0 auto;width:100%}.vis.n6 .ph{width:auto;max-width:none}.vis.n6 .ph figcaption{line-height:1.3;margin-top:10px}
.tbl{overflow-x:auto;margin-top:36px;border:1px solid var(--line);border-radius:20px;background:var(--card)}
table{border-collapse:collapse;width:100%;min-width:720px;font-size:15px}
th,td{text-align:left;vertical-align:top;padding:14px 18px;border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:0}
thead th{font-family:var(--disp);font-size:15px;background:var(--paper)}
td:first-child{font-weight:600;width:26%}
td.us{background:var(--soft)}
.note{font-size:14px;color:var(--dim);margin-top:14px;max-width:80ch}
.tiers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:36px}
.tier{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px;display:flex;flex-direction:column}
.tier small{color:var(--dim);font-size:14px}
.tier .n{font-family:var(--disp);font-weight:800;font-size:40px;letter-spacing:-.02em;margin:18px 0 0}
.tier .n s{font-size:18px;color:var(--dim);font-weight:600;margin-left:6px}
.tier .n span{font-size:16px;font-weight:600}
.tier .f{font-size:13px;color:var(--act);font-weight:600;margin-top:4px}
.tier ul{list-style:none;padding:0;margin:18px 0 22px;display:grid;gap:9px;font-size:15px;flex:1;align-content:start}
.tier li::before{content:'✓';color:var(--act);font-weight:700;margin-right:8px}
.tier .btn{width:100%}
/* A pricing button is a form that posts the plan to checkout (self-serve
   signup, 2026-09-26). The form must not change the card's layout, the
   button must read exactly like the link it replaced, and the bot trap sits
   off-canvas like the early-access one (never display:none). */
.tier-go{margin:0}
button.btn{font-family:inherit;cursor:pointer}
.tier-go .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.tiers-note a{color:var(--act)}
.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:48px;align-items:start}
.story p{color:var(--dim);margin-top:14px;font-size:18px}
.faq{max-width:none}
details{border-bottom:1px solid var(--line);padding:18px 0}
summary{cursor:pointer;font-weight:600;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::after{content:'+';color:var(--act);font-weight:700}
details[open] summary::after{content:'–'}
details p{color:var(--dim);margin-top:10px}
.ea{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:40px;margin-top:0}
.ea p{color:var(--dim);margin-top:16px}
.ea form{display:grid;gap:12px}
.ea label{font-size:14px;color:var(--dim);display:grid;gap:6px}
.ea input,.ea select,.ea textarea{font:inherit;border-radius:12px;border:1.5px solid var(--line);background:var(--paper);color:var(--ink);padding:12px 14px}
footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--dim);font-size:14px;padding:48px 0 56px}
@media (max-width:900px){
  .hero,.feat,.story,.ea,.team{grid-template-columns:minmax(0,1fr)}
  .feat.flip .copy{order:0}
  .stage .b{margin-top:40px}
  .steps,.tiers{grid-template-columns:minmax(0,1fr)}
  .vis{gap:12px}.vis .ph{width:calc(50% - 6px);max-width:220px;flex:0 1 auto}.vis.n1 .ph{width:62%}.vis.n3{gap:8px}.vis.n3 .ph{width:32%}.vis.n6{gap:18px 8px}.vis.n6 .ph{width:auto;max-width:none}
  .team .find{border-left:0;padding-left:0}
  nav a:not(.btn):not(.logo):not(.signin){display:none}  /* the wordmark stays: it is the way home; Sign in stays: it is the way into the app */
  nav .logo img{height:22px} nav{gap:12px}
  nav a{white-space:nowrap} nav .btn.dk{padding:9px 14px;font-size:14px} nav a.signin{padding-block:11px}  /* logo, Sign in and the trial button on one line at 360px */
}

/* ── what the live markup needs (5e; the approved page drew these as mocks) ── */
nav .logo img{width:auto}
.wrap{max-width:none}
img{max-width:100%;height:auto}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--act);outline-offset:3px}
.btn-primary{background:var(--act);color:#fff}.btn-primary:hover{background:var(--acth)}
.btn-ghost{border-color:#C8D0D3;color:var(--ink);background:var(--card)}.btn-ghost:hover{border-color:var(--ink)}
.btn.p:hover{background:var(--acth)} .btn.g:hover{border-color:var(--ink)}
/* compare: the live table carries a price line under each column head and names the competitors */
.tbl table th,.tbl table td{text-align:left;vertical-align:top;padding:14px 18px;border-bottom:1px solid var(--line)}
.tbl thead th{font-family:var(--disp);font-size:15px;background:var(--paper);line-height:1.35}
.tbl thead th span{display:block;font-family:var(--body);font-size:13px;margin-top:4px}
.tbl tbody th{font-weight:600;width:26%}
.tbl tbody tr:last-child th,.tbl tbody tr:last-child td{border-bottom:0}
.tbl .rc{background:var(--soft)}
/* pricing: the live card markup (gen-seo and the price tests read these classes) */
.tier .for{color:var(--dim);font-size:14px;margin-top:2px}
.tier .price{margin:18px 0 0}
.tier .now{font-family:var(--disp);font-weight:800;font-size:40px;letter-spacing:-.02em}
.tier .per{font-size:16px;font-weight:600}
.tier .price s{font-size:18px;color:var(--dim);font-weight:600;margin-left:6px}
.tier .tag{display:block;font-size:13px;color:var(--act);font-weight:600;margin-top:4px}
/* FAQ: full width (Drew, round four) */
.qa{margin-top:20px}
details p+p{margin-top:8px}
/* early access: the real form, in the approved light card */
.ea .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.ea form{position:relative}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.form-grid .full{grid-column:1/-1}
.form-grid label{font-size:14px;color:var(--dim);display:block;margin-bottom:6px}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;font:inherit;border-radius:12px;border:1.5px solid var(--line);background:var(--paper);color:var(--ink);padding:12px 14px}
/* footer */
.foot-in{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;width:100%}
footer{display:block}
footer a{color:inherit}
@media (max-width:900px){.form-grid{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ════════════════════════════════════════════════════════════════════════
   INNER PAGES — thanks, terms, privacy, pricing, the comparison pages.
   Same tokens, same nav and footer (tools/site-chrome.js), and one reading
   column. Nothing here re-colours or re-sizes the homepage: every rule is
   scoped to a class only inner pages carry.
   ════════════════════════════════════════════════════════════════════════ */
.page-head{max-width:760px;padding:40px 0 8px}
.page-head h1{font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.04}
.page-head .lead{max-width:62ch}

/* ── A legal document: summary card, contents card, numbered sections.
   The WORDS are the legal text and are never touched by a restyle (the
   edition hash in legal/versions.json covers the words, not the file). The
   conspicuous passages are typed in capitals in the text itself, so they
   stay conspicuous whatever this sheet says. */
.doc{max-width:760px;padding-bottom:32px}
.doc .meta{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.doc .meta>div{display:flex;gap:6px;align-items:baseline;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:14px;color:var(--dim)}
.doc .meta b{color:var(--ink);font-weight:600}
.doc .summary,.doc .toc{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:22px 26px;margin-top:22px}
.doc .lbl{display:block;font-weight:600;font-size:13px;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--act);margin-bottom:12px}
.doc .summary .note{font-size:14px;color:var(--dim);margin:0 0 12px}
.doc .summary ul{margin:0;padding-left:20px;display:grid;gap:8px}
.doc .toc ol{margin:0;padding-left:24px;columns:2;column-gap:36px}
.doc .toc li{break-inside:avoid;padding:3px 0}
.doc .toc a{color:var(--ink);text-decoration:none}
.doc .toc a:hover{color:var(--act);text-decoration:underline}
.doc h2{display:flex;gap:14px;align-items:baseline;font-size:1.45rem;line-height:1.2;margin:52px 0 12px;scroll-margin-top:24px}
.doc h2 .num{flex:none;min-width:26px;font-family:var(--body);font-weight:600;font-size:14px;letter-spacing:.04em;color:var(--act)}
.doc h3{font-size:1.1rem;margin:26px 0 6px}
.doc p,.doc li,.doc dd{line-height:1.65}
.doc p{margin:12px 0 0}
.doc ul,.doc ol{padding-left:22px}
.doc li+li{margin-top:6px}
.doc a{color:var(--act)}
.doc dl.defs dt{font-weight:700;margin-top:16px}
.doc dl.defs dd{margin:4px 0 0}
.doc strong.caps{font-weight:700}
/* A flag is a whole soft card, never a left bar on a rounded box (a radius
   on a single border edge curves the line). Amber for a caution, the accent
   wash for the key point. */
.doc .flag{background:#FFF8EC;border:1px solid #F0DDB5;border-radius:14px;padding:16px 18px;margin:16px 0}
.doc .flag.key{background:var(--soft);border-color:#CDE4E8}
.doc .flag b{display:block;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#8A5A0F;margin-bottom:6px}
.doc .flag.key b{color:var(--act)}

/* ── Thanks: one light card, centred. */
.thanks{max-width:560px;margin:56px auto 72px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:44px 36px;text-align:center}
.thanks h1{font-size:clamp(2rem,4.5vw,2.8rem)}
.thanks p{color:var(--dim);margin:14px auto 0;max-width:40ch}
.thanks .btn{margin-top:26px}
.thanks p a{color:var(--act)}
.welcome-err{display:none}
.welcome-err:target{display:block}
.welcome-err:target ~ .welcome-ok{display:none}

@media (max-width:900px){
  .doc .toc ol{columns:1}
  .doc h2{font-size:1.25rem}
  .thanks{padding:32px 22px;margin-top:32px}
}

/* ── Comparison and pricing pages (tools/gen-compare.js). One reading
   column; the tables sit in the homepage's rounded table card. */
.cmp{max-width:900px;padding-bottom:40px}
.cmp .page-head h1{font-size:clamp(2rem,4.5vw,3rem)}
.cmp-def{font-size:1.1rem;line-height:1.6;max-width:64ch;margin:14px 0 0;color:var(--ink)}
.cmp .page-head .lead{margin-top:14px}
.cmp-tbl{margin-top:28px}
.cmp-tbl table{min-width:0;font-size:15px}
.cmp-tbl thead th{font-size:15px}
.cmp-tbl td:first-child{width:22%;font-weight:600}
.cmp-section{padding:44px 0 0}
.cmp-section h2{font-size:1.5rem;margin:0 0 12px}
.cmp-section p,.cmp-section li{line-height:1.65;max-width:68ch}
.cmp-section ul{padding-left:20px}
.cmp-section li+li{margin-top:8px}
.cmp-src{font-size:14px;color:var(--dim);max-width:68ch;margin-top:12px}
.cmp-src a,.cmp-section a:not(.btn){color:var(--act)}
.cmp-cta{display:flex;flex-wrap:wrap;gap:12px;padding:44px 0 8px}
.cmp-updated{font-size:14px;color:var(--dim);margin-top:24px;max-width:68ch}
/* Four cards in a 900px column squeeze the button onto two lines; two by
   two gives each card the homepage card's room. */
.cmp .tiers{margin-top:28px;grid-template-columns:repeat(2,minmax(0,1fr))}
.cmp .tier .btn{margin-top:20px}
@media (max-width:640px){.cmp .tiers{grid-template-columns:minmax(0,1fr)}}
.cmp-draft{position:sticky;top:0;z-index:9;background:#7a3b00;color:#fff;text-align:center;font:600 13px/1 var(--body);padding:9px;letter-spacing:.04em}
/* A six-row, three-column table cannot fit a phone: each row becomes a
   block and each cell names its column, so the page never scrolls sideways. */
@media (max-width:640px){
  .cmp-tbl{border:0;background:none;border-radius:0}
  .cmp-tbl thead{display:none}
  .cmp-tbl table,.cmp-tbl tbody,.cmp-tbl tr,.cmp-tbl td{display:block;width:100%}
  .cmp-tbl tr{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-bottom:12px}
  /* (0,2,2): the homepage's .tbl table td is that strong, and a weaker rule
     leaves each card carrying the desktop cell borders and padding. */
  .tbl.cmp-tbl table td,.tbl.cmp-tbl tbody tr:last-child td{border:0;padding:6px 0}
  .cmp-tbl td:first-child{width:auto;font-family:var(--disp);font-size:1.05rem}
  .cmp-tbl td[data-col]::before{content:attr(data-col);display:block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--act);margin-bottom:2px}
}
