/* self-hosted fonts (Saira Condensed, Archivo, JetBrains Mono) — replaces Google Fonts CDN for GDPR compliance */
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxKsv4RnUPU.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: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxKsv4RnUPU.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: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxKsv4Rn.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: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxKsv4RnUPU.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: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxKsv4RnUPU.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: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxKsv4Rn.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: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxKsv4RnUPU.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: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxKsv4RnUPU.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: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxKsv4Rn.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: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxKsv4RnUPU.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: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxKsv4RnUPU.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: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxKsv4Rn.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: 400;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwgknk-6nFg.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: 400;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwgknk-6nFg.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: 400;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwgknk-6nFg.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: 400;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwgknk-6nFg.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: 400;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwgknk-6nFg.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: 400;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.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: 500;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwgknk-6nFg.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: 500;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwgknk-6nFg.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: 500;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwgknk-6nFg.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: 500;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwgknk-6nFg.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: 500;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwgknk-6nFg.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: 500;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.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: 700;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwgknk-6nFg.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: 700;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwgknk-6nFg.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: 700;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwgknk-6nFg.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: 700;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwgknk-6nFg.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: 700;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwgknk-6nFg.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: 700;
  font-display: swap;
  src: url(/assets/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnUchQ-K2fhC61HpnY.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnUchQ-a2fhC61HpnY.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnUchQ962fhC61Hg.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnfc9Q-K2fhC61HpnY.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnfc9Q-a2fhC61HpnY.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnfc9Q962fhC61Hg.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnGc5Q-K2fhC61HpnY.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnGc5Q-a2fhC61HpnY.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnGc5Q962fhC61Hg.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnBc1Q-K2fhC61HpnY.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnBc1Q-a2fhC61HpnY.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: 'Saira Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnBc1Q962fhC61Hg.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;
}

/* ============================================================
   augg.io — site-wide design system, "THE SCAN" (pointcloud R2·06)
   Palette: near-black base, hot-pink LiDAR accents (#FF29C3)
   Shared by every page; the homepage adds its 3D stage CSS inline.
   ============================================================ */
:root{
  --bg:#070309;
  --bg-2:#0D0714;
  --cyan:#FF29C3;
  --lime:#FF7AD9;
  --ink:#F2F2F6;
  --muted:#8C99A2;
  --muted-dim:#8A949C;
  --line:rgba(255,41,195,.20);
  --line-soft:rgba(255,255,255,.08);
  --panel:rgba(13,7,20,.55);
  --panel-solid:rgba(13,7,20,.82);
  --display:'Saira Condensed', 'Arial Narrow', sans-serif;
  --mono:'JetBrains Mono', ui-monospace, monospace;
  --body:'Archivo', system-ui, sans-serif;
  --maxw:1280px;
  --pad:clamp(20px,5vw,64px);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}

/* ---- ambient background layers (subpages use a light 2D point field) ---- */
.scene-fallback{
  position:fixed; inset:0; z-index:0;
  background:radial-gradient(120% 90% at 50% 40%, rgba(255,41,195,.06), rgba(7,3,9,0) 55%), #070309;
}
#scene,#ambient{position:fixed; inset:0; z-index:1; display:block; width:100%; height:100%}
.veil{
  position:fixed; inset:0; z-index:2; pointer-events:none;
  background:
    radial-gradient(120% 80% at 50% 0%, transparent 40%, rgba(7,3,9,.55) 100%),
    linear-gradient(180deg, rgba(7,3,9,.35) 0%, transparent 22%, transparent 70%, rgba(7,3,9,.62) 100%);
}
.grain{
  position:fixed; inset:0; z-index:3; pointer-events:none; opacity:.05; mix-blend-mode:screen;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

main, footer{position:relative; z-index:5}

/* ---------- typography helpers ---------- */
.label{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--cyan); font-weight:500;
}
.label-dim{color:var(--muted)}
.mono{font-family:var(--mono)}
h1,h2,h3{font-family:var(--display); font-weight:800; line-height:.94; letter-spacing:-.005em; text-transform:uppercase}
.dotio{color:var(--cyan)}

.container{max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad)}

/* ---------- bracket / measurement corners ---------- */
.bracket{position:relative}
.bracket::before,.bracket::after{
  content:""; position:absolute; width:15px; height:15px; pointer-events:none;
  border-color:var(--line);
}
.bracket::before{top:-1px; left:-1px; border-top:1px solid var(--cyan); border-left:1px solid var(--cyan); opacity:.6}
.bracket::after{bottom:-1px; right:-1px; border-bottom:1px solid var(--cyan); border-right:1px solid var(--cyan); opacity:.6}

.panel{
  background:var(--panel);
  backdrop-filter:blur(16px) saturate(125%);
  -webkit-backdrop-filter:blur(16px) saturate(125%);
  border:1px solid var(--line-soft);
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:var(--display); font-weight:700; font-size:1.02rem; letter-spacing:.04em; text-transform:uppercase;
  padding:.82em 1.5em; cursor:pointer; text-decoration:none; border:1px solid transparent;
  transition:transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s, background .22s, color .22s, border-color .22s;
  clip-path:polygon(0 0, calc(100% - 11px) 0, 100% 11px, 100% 100%, 11px 100%, 0 calc(100% - 11px));
}
.btn-primary{background:var(--cyan); color:#070309; box-shadow:0 0 0 rgba(255,122,217,0)}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 10px 34px rgba(255,122,217,.28)}
.btn-ghost{background:rgba(255,41,195,.04); color:var(--ink); border:1px solid var(--line)}
.btn-ghost:hover{transform:translateY(-2px); border-color:var(--cyan); background:rgba(255,41,195,.10); box-shadow:inset 0 0 22px rgba(255,41,195,.12)}
.btn-sm{font-size:.86rem; padding:.6em 1.05em}
.btn .arr{font-family:var(--mono); font-weight:400}

a{color:var(--cyan)}
:focus-visible{outline:2px solid var(--cyan); outline-offset:3px; border-radius:1px}

/* ============================================================
   SKIP LINK — visually hidden off-screen until keyboard-focused;
   z-index sits above the fixed nav (z-index:50) so it's never covered.
   ============================================================ */
.skip{
  position:absolute; top:-1px; left:-1px; width:1px; height:1px; overflow:hidden;
  padding:0; margin:-1px; white-space:nowrap; clip:rect(0 0 0 0); clip-path:inset(50%);
  border:0; z-index:100;
  background:var(--cyan); color:#070309;
  font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.04em;
}
.skip:focus{
  position:fixed; top:1rem; left:1rem; width:auto; height:auto; overflow:visible;
  padding:.7em 1.2em; margin:0; white-space:normal; clip:auto; clip-path:none;
  text-decoration:none; outline:2px solid #070309; outline-offset:2px;
}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.95rem var(--pad);
  transition:background .3s, border-color .3s, padding .3s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(7,3,9,.74);
  backdrop-filter:blur(18px) saturate(130%);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  border-bottom:1px solid var(--line);
  padding-top:.7rem; padding-bottom:.7rem;
}
.brand{font-family:var(--display); font-weight:800; font-size:1.5rem; letter-spacing:.01em; color:var(--ink); text-decoration:none; text-transform:lowercase; display:flex; align-items:center; gap:.5rem}
.brand-logo{display:inline-block;vertical-align:middle;width:116px;height:25px;background-color:currentColor;-webkit-mask:url("/assets/augg-wordmark.svg") no-repeat left center;-webkit-mask-size:contain;mask:url("/assets/augg-wordmark.svg") no-repeat left center;mask-size:contain}
.brand .brand-logo{filter:drop-shadow(0 0 10px rgba(255,41,195,.25))}
.nav-links{display:flex; align-items:center; gap:1.7rem; list-style:none}
.nav-links a{
  font-family:var(--mono); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); text-decoration:none; transition:color .2s; position:relative; padding:.2rem 0;
}
.nav-links a:hover{color:var(--ink)}
.nav-links a::after{content:""; position:absolute; left:0; bottom:-3px; height:1px; width:0; background:var(--cyan); transition:width .25s}
.nav-links a:hover::after{width:100%}
.nav-links a[aria-current="page"]{color:var(--ink)}
.nav-links a[aria-current="page"]::after{width:100%}
.nav-right{display:flex; align-items:center; gap:1rem}
.nav-discord{font-family:var(--mono); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); text-decoration:none}
.nav-discord:hover{color:var(--cyan)}
.nav-toggle{display:none; background:none; border:1px solid var(--line); color:var(--ink); width:42px; height:38px; cursor:pointer; align-items:center; justify-content:center}
.nav-toggle span{display:block; width:18px; height:1.5px; background:var(--ink); position:relative}
.nav-toggle span::before,.nav-toggle span::after{content:""; position:absolute; left:0; width:18px; height:1.5px; background:var(--ink)}
.nav-toggle span::before{top:-6px}.nav-toggle span::after{top:6px}

@media (max-width:1000px){
  .nav-links{display:none}
  .nav-discord{display:none}
  .nav-toggle{display:flex}
  .nav.open .mobile-menu{display:flex}
  .mobile-menu{
    display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:.2rem;
    padding:1rem var(--pad) 1.4rem; background:rgba(7,3,9,.96); border-bottom:1px solid var(--line);
    backdrop-filter:blur(18px);
  }
  .mobile-menu a{font-family:var(--mono); font-size:.95rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink); text-decoration:none; padding:.7rem 0; border-bottom:1px solid var(--line-soft)}
}
@media (min-width:1001px){.mobile-menu{display:none}}

/* ============================================================
   SECTION chrome
   ============================================================ */
section{padding-block:clamp(4.5rem,10vw,8.5rem)}
.sec-head{margin-bottom:3rem; max-width:760px}
.sec-head .label{display:inline-flex; align-items:center; gap:.6rem; margin-bottom:1rem}
.sec-head .label::before{content:""; width:26px; height:1px; background:var(--cyan)}
.sec-head h2{font-size:clamp(2rem,5vw,3.9rem)}
.sec-head .lead{margin-top:1rem; color:var(--muted); font-size:1.05rem; max-width:620px}

/* reveal on scroll — hidden state requires JS (added via inline <script> in <head>);
   without JS, .reveal elements keep their normal in-flow visibility */
.js .reveal{opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1)}
.js .reveal.in{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1; transform:none; transition:none}}

/* ============================================================
   CRED strip + chips
   ============================================================ */
.cred{padding-block:clamp(2.5rem,5vw,4rem)}
.cred-row{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft)}
.cred-item{background:rgba(13,7,20,.6); backdrop-filter:blur(10px); padding:1.5rem 1.4rem; display:flex; flex-direction:column; gap:.5rem; position:relative; transition:background .25s}
.cred-item:hover{background:rgba(255,41,195,.05)}
.cred-item .n{font-family:var(--display); font-weight:800; font-size:1.9rem; color:var(--ink); line-height:1}
.cred-item .n.cy{color:var(--cyan)}
.cred-item .d{font-family:var(--mono); font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); line-height:1.5}
.cred-item .idx{position:absolute; top:.7rem; right:.8rem; font-family:var(--mono); font-size:.6rem; color:var(--muted-dim)}
.chips{display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.4rem}
.chip{font-family:var(--mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); padding:.4rem .8rem; border:1px solid var(--line-soft); background:rgba(13,7,20,.4)}
.chip b{color:var(--cyan); font-weight:500}
@media (max-width:760px){.cred-row{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   PILLARS — "captured anchors" cards
   ============================================================ */
.pillars-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem}
.anchor{
  position:relative; padding:1.8rem 1.8rem 1.7rem; display:flex; flex-direction:column; min-height:330px;
  background:var(--panel); backdrop-filter:blur(16px) saturate(125%); border:1px solid var(--line-soft);
  overflow:hidden; transition:transform .3s cubic-bezier(.2,.8,.2,1), border-color .3s, box-shadow .3s;
}
.anchor::before{
  content:""; position:absolute; top:0; left:0; width:100%; height:2px;
  background:linear-gradient(90deg, var(--ac), transparent 70%); opacity:.9;
}
.anchor:hover{transform:translateY(-6px); border-color:rgba(255,41,195,.32); box-shadow:0 24px 60px rgba(0,0,0,.45)}
.anchor .top{display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:1.4rem}
.anchor .idtag{font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; color:var(--ac); border:1px solid var(--line); padding:.3rem .55rem; display:inline-flex; gap:.45rem; align-items:center}
.anchor .idtag .pin{width:5px; height:5px; background:var(--ac); border-radius:50%; box-shadow:0 0 8px var(--ac)}
.anchor .pnum{font-family:var(--display); font-weight:800; font-size:2.4rem; color:rgba(255,255,255,.07); line-height:.8}
.anchor .plabel{font-family:var(--mono); font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ac); margin-bottom:.5rem}
.anchor h3{font-size:clamp(1.5rem,2.6vw,2.1rem); color:var(--ink); margin-bottom:.8rem}
.anchor p{color:var(--muted); font-size:.96rem; line-height:1.55; margin-bottom:.5rem}
.anchor p b{color:#C7D0D4; font-weight:600}
.anchor .kw{display:flex; flex-wrap:wrap; gap:.4rem; margin:1rem 0 1.3rem}
.anchor .kw span{font-family:var(--mono); font-size:.62rem; letter-spacing:.05em; text-transform:uppercase; color:var(--muted-dim); border:1px solid var(--line-soft); padding:.22rem .5rem}
.anchor .acts{margin-top:auto; display:flex; flex-wrap:wrap; gap:.6rem; align-items:center}
.anchor .alink{font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:.95rem; letter-spacing:.03em; color:var(--ac); text-decoration:none; display:inline-flex; align-items:center; gap:.4rem; transition:gap .2s}
.anchor .alink:hover{gap:.7rem}
.anchor .alink::after{content:"→"; font-family:var(--mono)}
.anchor .alink.sec{color:var(--muted)}
@media (max-width:760px){.pillars-grid{grid-template-columns:1fr}}

/* ============================================================
   STEPS
   ============================================================ */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; position:relative}
.step{position:relative; padding:1.8rem 1.6rem; background:var(--panel); backdrop-filter:blur(14px); border:1px solid var(--line-soft)}
.step .num{font-family:var(--mono); font-size:.78rem; color:var(--lime); letter-spacing:.1em; margin-bottom:1.1rem; display:flex; align-items:center; gap:.7rem}
.step .num::before{content:""; width:34px; height:34px; border:1px solid var(--line); display:flex; flex:none}
.step .num .nn{position:absolute; margin-left:.6rem; font-family:var(--display); font-weight:800; font-size:1.05rem; color:var(--lime)}
.step h3{font-size:1.45rem; color:var(--ink); margin-bottom:.6rem}
.step p{color:var(--muted); font-size:.95rem}
.step .conn{position:absolute; top:50%; right:-1.4rem; width:1.4rem; height:1px; background:var(--line); z-index:1}
.step:last-child .conn{display:none}
@media (max-width:760px){.steps{grid-template-columns:1fr} .step .conn{display:none}}

/* ============================================================
   PRICING tiers
   ============================================================ */
.price-tag{margin-bottom:2.4rem; max-width:640px}
.price-tag p, .price-tag h1{font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:clamp(1.4rem,3vw,2.2rem); color:var(--ink); line-height:1.05}
.price-tag p .hl, .price-tag h1 .hl{color:var(--lime)}
.tiers{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem}
.tier{position:relative; padding:2rem 1.9rem; background:var(--panel-solid); backdrop-filter:blur(16px); border:1px solid var(--line-soft); display:flex; flex-direction:column}
.tier.feature{border-color:var(--line); box-shadow:0 0 0 1px rgba(255,41,195,.12), 0 30px 70px rgba(0,0,0,.4)}
.tier .ribbon{position:absolute; top:-1px; right:-1px; font-family:var(--mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:#070309; background:var(--cyan); padding:.3rem .7rem}
.tier .tname{font-family:var(--mono); font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:.8rem}
.tier .price{font-family:var(--display); font-weight:800; font-size:3.2rem; color:var(--ink); line-height:.9; margin-bottom:.4rem; display:flex; align-items:baseline; gap:.5rem}
.tier .price .cur{font-size:1rem; color:var(--muted); font-weight:600; letter-spacing:.1em; font-family:var(--mono); text-transform:uppercase}
.tier.feature .price{color:var(--lime)}
.tier .pdesc{color:var(--muted); font-size:.92rem; margin-bottom:1.4rem; min-height:2.4em}
.tier ul{list-style:none; display:flex; flex-direction:column; gap:.7rem; margin-bottom:1.6rem}
.tier li{display:flex; gap:.7rem; font-size:.95rem; color:#C2CCD0; line-height:1.4}
.tier li::before{content:"+"; font-family:var(--mono); color:var(--cyan); flex:none; font-weight:700}
.tier.feature li::before{color:var(--lime)}
.tier .btn{margin-top:auto; justify-content:center}
.fineprint{margin-top:1rem; font-family:var(--mono); font-size:.66rem; line-height:1.6; color:var(--muted-dim); letter-spacing:.02em}
@media (max-width:760px){.tiers{grid-template-columns:1fr}}

/* ============================================================
   FINAL CTA
   ============================================================ */
.finalcta{text-align:center}
.finalcta .wrap{position:relative; padding:clamp(3rem,8vw,6rem) var(--pad); background:linear-gradient(180deg, rgba(13,7,20,.4), rgba(13,7,20,.7)); border:1px solid var(--line); overflow:hidden}
.finalcta .wrap::before{content:""; position:absolute; inset:0; background:radial-gradient(60% 120% at 50% 0%, rgba(255,41,195,.10), transparent 60%); pointer-events:none}
.finalcta h2{font-size:clamp(2.2rem,6vw,5rem); position:relative}
.finalcta h2 .em{color:var(--lime)}
.finalcta p{color:var(--muted); margin:1.1rem auto 2rem; max-width:520px; position:relative}
.finalcta .ctas{display:flex; flex-wrap:wrap; gap:.9rem; justify-content:center; position:relative}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:rgba(7,3,9,.92); border-top:1px solid var(--line); padding-block:clamp(3rem,6vw,4.5rem); position:relative; z-index:5}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:2.5rem}
.footer .fbrand{font-family:var(--display); font-weight:800; font-size:1.7rem; text-transform:lowercase; margin-bottom:.8rem; display:inline-flex; gap:.4rem; align-items:center}
.footer .fmission{color:var(--muted); font-size:.92rem; max-width:280px}
.footer .fsoc{display:flex; gap:1rem; margin-top:1.3rem; flex-wrap:wrap}
.footer .fsoc a{font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); text-decoration:none}
.footer .fsoc a:hover{color:var(--cyan)}
.footer .fcol .flabel{font-family:var(--mono); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted-dim); margin-bottom:1.1rem; font-weight:500}
.footer .fcol ul{list-style:none; display:flex; flex-direction:column; gap:.7rem}
.footer .fcol a{color:#AEB8BE; text-decoration:none; font-size:.92rem}
.footer .fcol a:hover{color:var(--cyan)}
.footer-legal{margin-top:3rem; padding-top:1.6rem; border-top:1px solid var(--line-soft); display:flex; flex-wrap:wrap; gap:.5rem 2rem; justify-content:space-between; align-items:center}
.footer-legal p{font-family:var(--mono); font-size:.68rem; color:var(--muted-dim); letter-spacing:.02em; line-height:1.6}
.footer-legal .tip{color:var(--muted)}
@media (max-width:880px){.footer-grid{grid-template-columns:1fr 1fr} .footer .fbrand-col{grid-column:1/-1}}
@media (max-width:480px){.footer-grid{grid-template-columns:1fr}}

/* ============================================================
   SUBPAGE chrome — compact page hero
   ============================================================ */
.page-hero{padding-top:clamp(9rem,16vw,12rem); padding-bottom:clamp(2rem,4vw,3.5rem)}
.page-hero .crumb{font-family:var(--mono); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); display:inline-flex; align-items:center; gap:.6rem; margin-bottom:1.2rem}
.page-hero .crumb a{color:var(--muted); text-decoration:none}
.page-hero .crumb a:hover{color:var(--cyan)}
.page-hero .crumb .sep{color:var(--muted-dim)}
.page-hero .crumb .here{color:var(--cyan)}
.page-hero h1, .page-hero h2{font-size:clamp(2.6rem,7vw,5.6rem); max-width:14em; text-shadow:0 4px 60px rgba(0,0,0,.65)}
.page-hero h1 .em{color:var(--cyan)}
.page-hero .sub{max-width:620px; margin-top:1.4rem; font-size:clamp(1rem,1.4vw,1.15rem); color:#C3CDD2; line-height:1.55}
.page-hero .meta-row{display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:1.6rem; font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted)}
.page-hero .meta-row b{color:var(--cyan); font-weight:500}

/* ============================================================
   CARD GRIDS — blog index / store index
   ============================================================ */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem}
.cards.two{grid-template-columns:repeat(2,1fr)}
.card{
  position:relative; display:flex; flex-direction:column; text-decoration:none; overflow:hidden;
  background:var(--panel); backdrop-filter:blur(16px) saturate(125%); border:1px solid var(--line-soft);
  transition:transform .3s cubic-bezier(.2,.8,.2,1), border-color .3s, box-shadow .3s;
}
.card:hover{transform:translateY(-6px); border-color:rgba(255,41,195,.32); box-shadow:0 24px 60px rgba(0,0,0,.45)}
.card .thumb{aspect-ratio:16/9; overflow:hidden; border-bottom:1px solid var(--line-soft); background:#0D0714; position:relative}
.card .thumb img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05); transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.card:hover .thumb img{transform:scale(1.04)}
.card .thumb::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(7,3,9,.55)); pointer-events:none}
.card .cbody{padding:1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap:.6rem; flex:1}
.card .ck{font-family:var(--mono); font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--cyan)}
.card h3{font-size:1.35rem; color:var(--ink); line-height:1.02}
.card p{color:var(--muted); font-size:.92rem; line-height:1.5}
.card .cta{margin-top:auto; padding-top:.8rem; font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:.9rem; letter-spacing:.03em; color:var(--cyan); display:inline-flex; align-items:center; gap:.4rem; transition:gap .2s}
.card:hover .cta{gap:.7rem}
.card .cta::after{content:"→"; font-family:var(--mono)}
@media (max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:660px){.cards,.cards.two{grid-template-columns:1fr}}

/* ============================================================
   ARTICLE — blog posts / legal prose
   ============================================================ */
.article{max-width:760px; margin:0 auto; padding-bottom:clamp(4rem,8vw,7rem)}
.article-hero-img{margin:0 0 2.4rem; border:1px solid var(--line-soft); overflow:hidden}
.article-hero-img img{width:100%; height:auto; display:block}
.prose{font-size:1.04rem; line-height:1.75; color:#C9CFD6}
.prose h2{font-size:clamp(1.6rem,3.4vw,2.4rem); color:var(--ink); margin:2.6rem 0 1rem}
.prose h3{font-size:clamp(1.25rem,2.6vw,1.7rem); color:var(--ink); margin:2.2rem 0 .8rem}
.prose h4{font-family:var(--mono); font-size:.85rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cyan); margin:2rem 0 .7rem}
.prose p{margin:0 0 1.1rem}
.prose b,.prose strong{color:var(--ink); font-weight:600}
.prose a{color:var(--cyan); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(255,41,195,.4)}
.prose a:hover{text-decoration-color:var(--cyan)}
.prose ul,.prose ol{margin:0 0 1.2rem; padding-left:1.3rem; display:flex; flex-direction:column; gap:.45rem}
.prose li::marker{color:var(--cyan); font-family:var(--mono)}
.prose img{max-width:100%; height:auto; display:block; margin:1.8rem auto; border:1px solid var(--line-soft)}
.prose blockquote{border-left:2px solid var(--cyan); padding:.4rem 0 .4rem 1.2rem; margin:1.6rem 0; color:var(--muted); font-style:italic}
.prose code{font-family:var(--mono); font-size:.88em; background:rgba(255,41,195,.08); border:1px solid var(--line-soft); padding:.1em .35em; color:#FFD9F3}
.prose pre{background:var(--panel-solid); border:1px solid var(--line-soft); padding:1.1rem 1.2rem; overflow-x:auto; margin:0 0 1.4rem}
.prose pre code{background:none; border:none; padding:0; color:#D9C9D6; font-size:.85rem; line-height:1.6}
.prose hr{border:none; height:1px; background:var(--line-soft); margin:2.4rem 0}
.prose table{width:100%; border-collapse:collapse; margin:0 0 1.4rem; font-size:.92rem}
.prose th,.prose td{border:1px solid var(--line-soft); padding:.6rem .8rem; text-align:left}
.prose th{font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--cyan); background:rgba(13,7,20,.6)}

/* article footer nav */
.article-nav{display:flex; justify-content:space-between; gap:1rem; margin-top:3rem; padding-top:1.6rem; border-top:1px solid var(--line-soft)}
.article-nav a{font-family:var(--mono); font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); text-decoration:none}
.article-nav a:hover{color:var(--cyan)}
@media (max-width:760px){.article-nav{flex-direction:column; align-items:flex-start; gap:.7rem}}

/* ============================================================
   YOUTUBE FACADE — click-to-load thumbnail (no runtime 3rd-party
   request; image is self-hosted, click navigates out to YouTube)
   ============================================================ */
.yt-facade{display:block; margin:1.8rem 0; text-decoration:none}
.yt-media{display:block; position:relative; aspect-ratio:16/9; border:1px solid var(--line-soft); overflow:hidden; background:#0D0714}
.yt-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block}
.yt-play{position:absolute; inset:0; margin:auto; width:64px; height:64px; border-radius:50%; background:rgba(7,3,9,.55); border:1px solid var(--line-soft); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; transition:background .2s, border-color .2s}
.yt-play::before{content:""; margin-left:4px; border-style:solid; border-width:10px 0 10px 16px; border-color:transparent transparent transparent var(--cyan)}
.yt-facade:hover .yt-play{background:rgba(255,41,195,.2); border-color:var(--cyan)}
.yt-cap{display:block; margin-top:.6rem; font-family:var(--mono); font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted)}
.yt-facade:hover .yt-cap{color:var(--cyan)}

/* ============================================================
   PRODUCT detail (store item)
   ============================================================ */
.product-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:2.5rem; align-items:start}
.product-media{border:1px solid var(--line-soft); overflow:hidden; position:sticky; top:96px}
.product-media img{width:100%; display:block}
.product-body h1{font-size:clamp(2rem,4.5vw,3.4rem)}
.product-body .ptag{font-family:var(--mono); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--cyan); margin-bottom:1rem; display:inline-block}
.product-body .desc{margin-top:1.2rem; color:#C9CFD6; line-height:1.7}
.product-body .desc p{margin-bottom:1rem}
.product-body .ctas{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.8rem}
@media (max-width:880px){.product-grid{grid-template-columns:1fr} .product-media{position:static}}

/* ============================================================
   FORMS — talk to our team
   ============================================================ */
.form-panel{max-width:640px; padding:2rem 1.9rem; background:var(--panel-solid); backdrop-filter:blur(16px); border:1px solid var(--line-soft)}
.field{display:flex; flex-direction:column; gap:.45rem; margin-bottom:1.2rem}
.field label{font-family:var(--mono); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted)}
.field input,.field textarea,.field select{
  background:rgba(7,3,9,.6); border:1px solid var(--line-soft); color:var(--ink);
  font-family:var(--body); font-size:.98rem; padding:.75em .9em; outline:none; transition:border-color .2s;
}
.field input:focus,.field textarea:focus{border-color:var(--cyan)}
.field textarea{min-height:130px; resize:vertical}

/* App Store badge */
.appstore-badge{display:inline-block; margin-top:.4rem}
.appstore-badge img{height:48px; display:block}

/* Funding logos */
.funding-logos{display:flex;gap:1.25rem;align-items:center;margin:0 0 .6rem;flex-wrap:wrap}
.funding-logos img{height:auto;width:auto;max-height:34px;opacity:.9}

/* utility */
.center{text-align:center}
.mt-2{margin-top:2rem}

/* ============================================================
   TEAM — business-card pages (/team/<slug>). Scoped additions;
   reuses .page-hero/.bracket/.panel/.chip/.btn/.appstore-badge.
   ============================================================ */
.team-card-wrap{display:flex; justify-content:center}
.team-card{width:100%; max-width:420px; margin-top:1.6rem; padding:clamp(2.2rem,5vw,2.8rem) clamp(1.6rem,4vw,2.2rem) clamp(2.4rem,5vw,3rem); display:flex; flex-direction:column; align-items:center; text-align:center; gap:.9rem}
.team-card-photo{width:180px; height:180px; object-fit:cover; border:1px solid var(--line-soft); background:#0D0714}
.team-card h1{font-size:clamp(1.7rem,3.2vw,2.2rem); margin-top:.6rem; max-width:none}
.team-card-translit{margin-top:-.5rem; font-size:.92rem; color:var(--muted)}
.team-card .chip{margin-top:.2rem}
.team-card-actions{display:flex; flex-direction:column; align-items:center; gap:.85rem; margin-top:1.2rem; width:100%}
.team-card-actions .btn{width:100%; justify-content:center}
.team-card-lead{font-family:var(--mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted-dim); margin-top:.2rem}
.team-card-actions .appstore-badge{margin-top:0}

@media (prefers-reduced-motion:reduce){
  .brand .bdot{animation:none}
}
