/* Proton Intelligence — consolidated stylesheet (converted from design-tool export 2026-07-17) */


/* ============ Webfonts (Manrope + IBM Plex Mono, subset woff2) ============ */

/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-400-ud52591.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-400-u765d31.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-400-uad4bf5.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-400-u47b6e7.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-500-ud52591.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-500-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-500-u765d31.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-500-uad4bf5.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-500-u47b6e7.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-600-ud52591.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-600-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-600-u765d31.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-600-uad4bf5.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-600-u47b6e7.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: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ud52591.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: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ucc6adc.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: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u765d31.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: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-uad4bf5.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: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u47b6e7.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: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ud52591.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: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ucc6adc.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: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u765d31.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: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-uad4bf5.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: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u47b6e7.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ud52591.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ucc6adc.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u765d31.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-uad4bf5.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u47b6e7.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: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ud52591.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: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ucc6adc.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: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u765d31.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: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-uad4bf5.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: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u47b6e7.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: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ud52591.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: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ucc6adc.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: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u765d31.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: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-uad4bf5.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: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u47b6e7.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;
}

/* Proton Intelligence — Color tokens
   Source of truth: HEX Colour Guide.pdf + logo gradient sampling.
   Three brand hues — Indigo (rigor), Rose (the human/heartbeat), Sand (warmth) —
   each as a tint scale. Neutrals lean cool to sit on the lavender ground. */

:root {
  /* ---- Indigo — primary. The discipline, the data, the spine. ---- */
  --indigo-50:  #f4f5fa;
  --indigo-100: #eaebf4;
  --indigo-200: #dfe1ef;
  --indigo-300: #c9cde4;
  --indigo-400: #9aa0cf;
  --indigo-500: #5b62b0;
  --indigo-600: #3a3f9a;
  --indigo-700: #283593;  /* core brand indigo */
  --indigo-800: #1f2a73;
  --indigo-900: #161d4f;

  /* ---- Rose — secondary. The heartbeat, the human you land on. ---- */
  --rose-50:  #fbf6f9;
  --rose-100: #f7edf2;
  --rose-200: #f4e5ec;
  --rose-300: #f0dce6;
  --rose-400: #ecd3df;
  --rose-500: #d98fae;
  --rose-600: #b34f80;  /* core brand rose */
  --rose-700: #94426a;
  --rose-800: #743453;
  --rose-900: #54263c;

  /* ---- Sand — accent. Warmth at the end of the gradient. ---- */
  --sand-50:  #fcfbf8;
  --sand-100: #f9f7f2;
  --sand-200: #f6f3eb;
  --sand-300: #f4eee5;
  --sand-400: #e8dcc4;
  --sand-500: #d6c39a;
  --sand-600: #c6ac7b;  /* core brand sand */
  --sand-700: #a88f60;
  --sand-800: #816d49;
  --sand-900: #574931;

  /* ---- Neutral / ink — cool-tinted slate ---- */
  --ink-900: #15162a;
  --ink-800: #232544;
  --ink-700: #393c5e;
  --ink-600: #565879;
  --ink-500: #767894;
  --ink-400: #9b9db5;
  --ink-300: #c3c4d6;
  --ink-200: #e1e2ec;
  --ink-100: #eef0f6;
  --ink-50:  #f7f8fc;
  --white:   #ffffff;

  /* ---- Clinical status — measured, never alarmist ---- */
  --status-normal:    #2e7d57;  /* in range */
  --status-normal-bg: #e6f1eb;
  --status-caution:   #b07d18;  /* borderline / watch */
  --status-caution-bg:#f6eed8;
  --status-critical:  #c2403c;  /* out of range */
  --status-critical-bg:#f7e3e2;

  /* ---- Signature gradient (logo sweep) ---- */
  --gradient-brand: linear-gradient(120deg, #283593 0%, #6a478a 42%, #b34f80 74%, #c6ac7b 100%); /* @kind color */
  --gradient-brand-soft: linear-gradient(120deg, #eaebf4 0%, #f4e5ec 60%, #f9f7f2 100%); /* @kind color */

  /* ================= Semantic aliases ================= */
  --brand-primary:   var(--indigo-700);
  --brand-secondary: var(--rose-600);
  --brand-accent:    var(--sand-600);

  --text-strong:  var(--ink-900);
  --text-body:    var(--ink-800);
  --text-muted:   var(--ink-600);
  --text-faint:   var(--ink-500);
  --text-on-brand:var(--white);
  --text-link:    var(--indigo-700);

  --surface-page:    var(--ink-50);
  --surface-card:    var(--white);
  --surface-sunken:  var(--ink-100);
  --surface-tint:    var(--indigo-50);
  --surface-inverse: var(--ink-900);

  --border-subtle: var(--ink-200);
  --border-default:var(--ink-300);
  --border-strong: var(--ink-400);
  --focus-ring:    var(--indigo-500);
}

/* Proton Intelligence — Typography tokens
   Manrope for everything UI + display; IBM Plex Mono for data, units, traces.
   Type pairs precision (mono numerals) with confident humanist display. */

:root {
  --font-sans: 'Manrope', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-display: 'Manrope', ui-sans-serif, system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Weights */
  --fw-regular: 400;    /* @kind font */
  --fw-medium:  500;    /* @kind font */
  --fw-semibold:600;    /* @kind font */
  --fw-bold:    700;    /* @kind font */
  --fw-extrabold:800;   /* @kind font */

  /* Type scale — 1.250 major-third-ish, tuned */
  --text-xs:   0.75rem;   /* 12 */
  --text-sm:   0.875rem;  /* 14 */
  --text-base: 1rem;      /* 16 */
  --text-md:   1.125rem;  /* 18 */
  --text-lg:   1.375rem;  /* 22 */
  --text-xl:   1.75rem;   /* 28 */
  --text-2xl:  2.25rem;   /* 36 */
  --text-3xl:  3rem;      /* 48 */
  --text-4xl:  4rem;      /* 64 */
  --text-5xl:  5.25rem;   /* 84 */

  /* Line heights */
  --leading-tight: 1.15;   /* @kind font */
  --leading-snug:  1.2;    /* @kind font */
  --leading-normal:1.5;    /* @kind font */
  --leading-relaxed:1.65;  /* @kind font */

  /* Letter spacing */
  --tracking-tight:  -0.02em;  /* @kind font */
  --tracking-snug:   -0.01em;  /* @kind font */
  --tracking-normal: 0;        /* @kind font */
  --tracking-wide:   0.04em;   /* @kind font */
  --tracking-caps:   0.12em;   /* @kind font */

  /* Semantic roles */
  --font-eyebrow: var(--fw-semibold) var(--text-xs)/1 var(--font-mono);
}

/* Proton Intelligence — Spacing, radius, shadow, layout, motion
   8px base grid. Calm, generous spacing — the diagnostics-lab register. */

:root {
  /* Spacing — 8px base (with 4px half-step) */
  --space-0: 0;
  --space-1: 0.25rem;  /* 4  */
  --space-2: 0.5rem;   /* 8  */
  --space-3: 0.75rem;  /* 12 */
  --space-4: 1rem;     /* 16 */
  --space-5: 1.5rem;   /* 24 */
  --space-6: 2rem;     /* 32 */
  --space-7: 3rem;     /* 48 */
  --space-8: 4rem;     /* 64 */
  --space-9: 6rem;     /* 96 */
  --space-10: 8rem;    /* 128 */

  /* Radius — soft but not pill-everything; mirrors the rounded ribbon mark */
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-xl: 28px;
  --radius-pill: 999px;
  --radius-card: var(--radius-lg);

  /* Shadows — soft, cool, low-contrast. Indigo-tinted, never harsh black. */
  --shadow-xs: 0 1px 2px rgba(21, 22, 42, 0.06);
  --shadow-sm: 0 2px 6px rgba(21, 22, 42, 0.07);
  --shadow-md: 0 8px 24px rgba(31, 42, 115, 0.08);
  --shadow-lg: 0 18px 48px rgba(31, 42, 115, 0.12);
  --shadow-focus: 0 0 0 3px rgba(91, 98, 176, 0.35);

  /* Layout */
  --container-sm: 640px;   /* @kind other */
  --container-md: 880px;   /* @kind other */
  --container-lg: 1140px;  /* @kind other */
  --container-xl: 1320px;  /* @kind other */
  --gutter: var(--space-5);

  /* Motion — calm, precise. Confidence, not bounce. */
  --ease-standard: cubic-bezier(0.22, 0.61, 0.36, 1);  /* @kind other */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);           /* @kind other */
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);       /* @kind other */
  --dur-fast: 120ms;   /* @kind other */
  --dur-base: 220ms;   /* @kind other */
  --dur-slow: 420ms;   /* @kind other */
}

/* Proton Intelligence — Design System
   Global entry point. Consumers link THIS file only.
   Keep this file as @import lines only — no rules here. */

/* Proton Intelligence — Webfonts
   Primary (display + UI): Manrope — geometric-humanist sans, precise numerals.
   Mono (data, labels, sensor traces): IBM Plex Mono — clinical, technical.
   NOTE: These are Google Fonts substitutes approximating the brand wordmark.
   The original "Proton Intelligence" wordmark uses a custom/licensed geometric
   sans — Manrope is the closest free match. See readme.md > VISUAL FOUNDATIONS. */

/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-400-ud52591.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-400-u765d31.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-400-uad4bf5.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-400-u47b6e7.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-500-ud52591.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-500-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-500-u765d31.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-500-uad4bf5.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-500-u47b6e7.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-600-ud52591.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-600-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-600-u765d31.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-600-uad4bf5.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-600-u47b6e7.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: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ud52591.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: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ucc6adc.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: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u765d31.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: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-uad4bf5.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: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u47b6e7.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: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ud52591.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: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ucc6adc.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: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u765d31.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: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-uad4bf5.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: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u47b6e7.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ud52591.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ucc6adc.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u765d31.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-uad4bf5.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u47b6e7.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: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ud52591.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: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ucc6adc.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: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u765d31.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: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-uad4bf5.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: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u47b6e7.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: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ud52591.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: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u8702d0.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-ucc6adc.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: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u765d31.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: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-uad4bf5.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: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-400-u47b6e7.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;
}


/* Proton Intelligence — Color tokens
   Source of truth: HEX Colour Guide.pdf + logo gradient sampling.
   Three brand hues — Indigo (rigor), Rose (the human/heartbeat), Sand (warmth) —
   each as a tint scale. Neutrals lean cool to sit on the lavender ground. */

:root {
  /* ---- Indigo — primary. The discipline, the data, the spine. ---- */
  --indigo-50:  #f4f5fa;
  --indigo-100: #eaebf4;
  --indigo-200: #dfe1ef;
  --indigo-300: #c9cde4;
  --indigo-400: #9aa0cf;
  --indigo-500: #5b62b0;
  --indigo-600: #3a3f9a;
  --indigo-700: #283593;  /* core brand indigo */
  --indigo-800: #1f2a73;
  --indigo-900: #161d4f;

  /* ---- Rose — secondary. The heartbeat, the human you land on. ---- */
  --rose-50:  #fbf6f9;
  --rose-100: #f7edf2;
  --rose-200: #f4e5ec;
  --rose-300: #f0dce6;
  --rose-400: #ecd3df;
  --rose-500: #d98fae;
  --rose-600: #b34f80;  /* core brand rose */
  --rose-700: #94426a;
  --rose-800: #743453;
  --rose-900: #54263c;

  /* ---- Sand — accent. Warmth at the end of the gradient. ---- */
  --sand-50:  #fcfbf8;
  --sand-100: #f9f7f2;
  --sand-200: #f6f3eb;
  --sand-300: #f4eee5;
  --sand-400: #e8dcc4;
  --sand-500: #d6c39a;
  --sand-600: #c6ac7b;  /* core brand sand */
  --sand-700: #a88f60;
  --sand-800: #816d49;
  --sand-900: #574931;

  /* ---- Neutral / ink — cool-tinted slate ---- */
  --ink-900: #15162a;
  --ink-800: #232544;
  --ink-700: #393c5e;
  --ink-600: #565879;
  --ink-500: #767894;
  --ink-400: #9b9db5;
  --ink-300: #c3c4d6;
  --ink-200: #e1e2ec;
  --ink-100: #eef0f6;
  --ink-50:  #f7f8fc;
  --white:   #ffffff;

  /* ---- Clinical status — measured, never alarmist ---- */
  --status-normal:    #2e7d57;  /* in range */
  --status-normal-bg: #e6f1eb;
  --status-caution:   #b07d18;  /* borderline / watch */
  --status-caution-bg:#f6eed8;
  --status-critical:  #c2403c;  /* out of range */
  --status-critical-bg:#f7e3e2;

  /* ---- Signature gradient (logo sweep) ---- */
  --gradient-brand: linear-gradient(120deg, #283593 0%, #6a478a 42%, #b34f80 74%, #c6ac7b 100%); /* @kind color */
  --gradient-brand-soft: linear-gradient(120deg, #eaebf4 0%, #f4e5ec 60%, #f9f7f2 100%); /* @kind color */

  /* ================= Semantic aliases ================= */
  --brand-primary:   var(--indigo-700);
  --brand-secondary: var(--rose-600);
  --brand-accent:    var(--sand-600);

  --text-strong:  var(--ink-900);
  --text-body:    var(--ink-800);
  --text-muted:   var(--ink-600);
  --text-faint:   var(--ink-500);
  --text-on-brand:var(--white);
  --text-link:    var(--indigo-700);

  --surface-page:    var(--ink-50);
  --surface-card:    var(--white);
  --surface-sunken:  var(--ink-100);
  --surface-tint:    var(--indigo-50);
  --surface-inverse: var(--ink-900);

  --border-subtle: var(--ink-200);
  --border-default:var(--ink-300);
  --border-strong: var(--ink-400);
  --focus-ring:    var(--indigo-500);
}

/* Proton Intelligence — Typography tokens
   Manrope for everything UI + display; IBM Plex Mono for data, units, traces.
   Type pairs precision (mono numerals) with confident humanist display. */

:root {
  --font-sans: 'Manrope', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-display: 'Manrope', ui-sans-serif, system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Weights */
  --fw-regular: 400;    /* @kind font */
  --fw-medium:  500;    /* @kind font */
  --fw-semibold:600;    /* @kind font */
  --fw-bold:    700;    /* @kind font */
  --fw-extrabold:800;   /* @kind font */

  /* Type scale — 1.250 major-third-ish, tuned */
  --text-xs:   0.75rem;   /* 12 */
  --text-sm:   0.875rem;  /* 14 */
  --text-base: 1rem;      /* 16 */
  --text-md:   1.125rem;  /* 18 */
  --text-lg:   1.375rem;  /* 22 */
  --text-xl:   1.75rem;   /* 28 */
  --text-2xl:  2.25rem;   /* 36 */
  --text-3xl:  3rem;      /* 48 */
  --text-4xl:  4rem;      /* 64 */
  --text-5xl:  5.25rem;   /* 84 */

  /* Line heights */
  --leading-tight: 1.15;   /* @kind font */
  --leading-snug:  1.2;    /* @kind font */
  --leading-normal:1.5;    /* @kind font */
  --leading-relaxed:1.65;  /* @kind font */

  /* Letter spacing */
  --tracking-tight:  -0.02em;  /* @kind font */
  --tracking-snug:   -0.01em;  /* @kind font */
  --tracking-normal: 0;        /* @kind font */
  --tracking-wide:   0.04em;   /* @kind font */
  --tracking-caps:   0.12em;   /* @kind font */

  /* Semantic roles */
  --font-eyebrow: var(--fw-semibold) var(--text-xs)/1 var(--font-mono);
}

/* Proton Intelligence — Spacing, radius, shadow, layout, motion
   8px base grid. Calm, generous spacing — the diagnostics-lab register. */

:root {
  /* Spacing — 8px base (with 4px half-step) */
  --space-0: 0;
  --space-1: 0.25rem;  /* 4  */
  --space-2: 0.5rem;   /* 8  */
  --space-3: 0.75rem;  /* 12 */
  --space-4: 1rem;     /* 16 */
  --space-5: 1.5rem;   /* 24 */
  --space-6: 2rem;     /* 32 */
  --space-7: 3rem;     /* 48 */
  --space-8: 4rem;     /* 64 */
  --space-9: 6rem;     /* 96 */
  --space-10: 8rem;    /* 128 */

  /* Radius — soft but not pill-everything; mirrors the rounded ribbon mark */
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-xl: 28px;
  --radius-pill: 999px;
  --radius-card: var(--radius-lg);

  /* Shadows — soft, cool, low-contrast. Indigo-tinted, never harsh black. */
  --shadow-xs: 0 1px 2px rgba(21, 22, 42, 0.06);
  --shadow-sm: 0 2px 6px rgba(21, 22, 42, 0.07);
  --shadow-md: 0 8px 24px rgba(31, 42, 115, 0.08);
  --shadow-lg: 0 18px 48px rgba(31, 42, 115, 0.12);
  --shadow-focus: 0 0 0 3px rgba(91, 98, 176, 0.35);

  /* Layout */
  --container-sm: 640px;   /* @kind other */
  --container-md: 880px;   /* @kind other */
  --container-lg: 1140px;  /* @kind other */
  --container-xl: 1320px;  /* @kind other */
  --gutter: var(--space-5);

  /* Motion — calm, precise. Confidence, not bounce. */
  --ease-standard: cubic-bezier(0.22, 0.61, 0.36, 1);  /* @kind other */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);           /* @kind other */
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);       /* @kind other */
  --dur-fast: 120ms;   /* @kind other */
  --dur-base: 220ms;   /* @kind other */
  --dur-slow: 420ms;   /* @kind other */
}


/* ============ Base + shared page treatment (from the export's per-page style blocks) ============ */
*{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--font-sans);background:var(--ink-50);color:var(--text-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
  a{color:inherit}
  /* ============ premium medtech treatment ============ */
  [style*="min-height:100vh"]{position:relative}
  [style*="min-height:100vh"]::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(48% 36% at 88% 1%,rgba(179,79,128,.10),transparent 70%),radial-gradient(44% 32% at -4% 5%,rgba(40,53,147,.11),transparent 70%),radial-gradient(38% 30% at 62% 26%,rgba(198,172,123,.06),transparent 72%)}
  [style*="min-height:100vh"]>*{position:relative;z-index:1}
  nav{background:rgba(247,248,252,.66)!important;backdrop-filter:blur(20px) saturate(1.5)!important;-webkit-backdrop-filter:blur(20px) saturate(1.5)!important;border-bottom:1px solid rgba(223,225,239,.6)!important;box-shadow:0 1px 0 rgba(255,255,255,.55),0 12px 30px -22px rgba(31,42,115,.28)!important}
  nav a[href]{transition:color .22s ease}
  nav a[href]:hover{color:var(--indigo-700)!important}
  [style*="tracking-caps"][style*="var(--indigo-700)"]{display:inline-flex!important;align-items:center;gap:10px}
  [style*="tracking-caps"][style*="var(--indigo-700)"]::before{content:"";width:18px;height:2px;border-radius:2px;background:var(--gradient-brand);flex:none}
  [style*="tracking-caps"][style*="var(--sand-400)"]{display:inline-flex!important;align-items:center;gap:10px}
  [style*="tracking-caps"][style*="var(--sand-400)"]::before{content:"";width:18px;height:2px;border-radius:2px;background:var(--sand-400);flex:none}
  [style*="radius-lg"][style*="1px solid var(--border-subtle)"],[style*="radius-md"][style*="1px solid var(--border-subtle)"]{border-color:rgba(205,208,228,.7)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 1px 2px rgba(21,22,42,.04),0 16px 32px -20px rgba(31,42,115,.18)!important;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1),border-color .3s ease!important}
  [style*="radius-lg"][style*="1px solid var(--border-subtle)"]:hover,[style*="radius-md"][style*="1px solid var(--border-subtle)"]:hover{transform:translateY(-3px)!important;border-color:var(--indigo-300)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 2px 4px rgba(21,22,42,.05),0 30px 56px -26px rgba(31,42,115,.30)!important}
  [style*="radius-xl"]{box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 32px 64px -30px rgba(31,42,115,.32)!important}
  section[style*="1px solid var(--border-subtle)"]{border-color:rgba(223,225,239,.55)!important}
  button{transition:background .15s ease,box-shadow .3s ease,transform .12s ease!important}
  /* ============ expressive colour ============ */
  [style*="min-height:100vh"]{background:var(--indigo-50)!important}
  [style*="min-height:100vh"]::before{background:radial-gradient(48% 38% at 92% -4%,rgba(179,79,128,.22),transparent 70%),radial-gradient(46% 36% at -6% 4%,rgba(40,53,147,.20),transparent 70%),radial-gradient(42% 34% at 58% 30%,rgba(198,172,123,.15),transparent 72%)!important}
  nav{border-bottom:1px solid rgba(179,79,128,.18)!important;box-shadow:0 12px 34px -24px rgba(179,79,128,.5)!important}
  section[style*="background:var(--white)"]{background:rgba(255,255,255,.62)!important;border-color:rgba(179,79,128,.16)!important}
  section[style*="background:var(--ink-50)"]{background:linear-gradient(170deg,rgba(40,53,147,.06),rgba(179,79,128,.07) 55%,rgba(198,172,123,.06))!important}
  /* padding-bottom keeps descenders (g, y, p) inside the clipped gradient box */
  h1[style*="var(--text-strong)"],h2[style*="var(--text-strong)"]{background:var(--gradient-brand)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;color:transparent!important;padding-bottom:0.25em}
  [style*="background:var(--ink-50)"][style*="1px solid var(--border-subtle)"]{background:#fff!important;border-color:rgba(179,79,128,.2)!important;box-shadow:0 1px 2px rgba(21,22,42,.04),0 20px 46px -28px rgba(179,79,128,.5)!important}
  [style*="background:var(--white)"][style*="1px solid var(--border-subtle)"]{box-shadow:0 1px 2px rgba(21,22,42,.04),0 20px 46px -28px rgba(40,53,147,.42)!important}
  [style*="tracking-caps"][style*="color:var(--indigo-700)"]{color:var(--rose-600)!important}
  [style*="gradient-brand-soft"]{opacity:.92!important}

/* contact form */
  textarea.pi-textarea{width:100%;font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-strong);background:var(--white);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:11px 14px;line-height:var(--leading-normal);resize:vertical;outline:none;transition:box-shadow var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard)}
  textarea.pi-textarea:focus{border-color:var(--indigo-500);box-shadow:var(--shadow-focus)}

/* ==========================================================================
   Layout & responsive system (added in the 2026-07 conversion)
   Breakpoints: 1024px (small laptop / iPad landscape), 768px (iPad portrait),
   480px (phones). The export was authored on a fixed 1320px desktop canvas;
   these classes replace its fixed-width inline styles.
   ========================================================================== */

img{max-width:100%;height:auto}
svg{max-width:100%;height:auto}

.container{max-width:var(--container-xl);margin-inline:auto}

/* Multi-column grids that collapse. gap stays inline on the element. */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr)}
.split{display:grid}  /* asymmetric two-col; column template stays inline, dropped at 768 */

/* ============ Nav (rebuilt with a hamburger for mobile) ============ */
.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:var(--space-6);padding:14px var(--space-7);background:rgba(247,248,252,0.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle)}
.nav-logo{display:flex;align-items:center;text-decoration:none;flex:none}
.nav-logo img{height:28px;display:block;max-width:none}
.nav-spacer{flex:1}
.nav-links{display:flex;align-items:center;gap:var(--space-6)}
.nav-links a{text-decoration:none;color:var(--ink-700);font-size:var(--text-sm);font-weight:var(--fw-medium);letter-spacing:var(--tracking-snug)}
.nav-links a.active{color:var(--indigo-700);font-weight:var(--fw-bold)}
.nav-links .btn-primary{color:var(--white)}
.nav-toggle{display:none;flex:none;background:none;border:0;cursor:pointer;padding:6px;border-radius:var(--radius-xs)}
.nav-toggle span{display:block;width:22px;height:2px;border-radius:2px;background:var(--ink-800);margin:5px 0;transition:transform var(--dur-base) var(--ease-standard),opacity var(--dur-base) var(--ease-standard)}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Buttons (statics of the design system's Button component) */
.btn-primary{display:inline-flex;width:auto;align-items:center;justify-content:center;gap:6px;font-family:var(--font-sans);font-weight:var(--fw-semibold);font-size:var(--text-sm);line-height:1;letter-spacing:var(--tracking-snug);padding:8px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard),transform var(--dur-fast) var(--ease-standard);outline:none;background:var(--indigo-700);color:var(--white);border:1px solid transparent;box-shadow:var(--shadow-sm);text-decoration:none}
.btn-primary:hover{background:var(--indigo-800)}

/* ============ Responsive overrides ============ */

/* Full-height heroes: svh avoids the mobile browser-chrome jump */
[style*="min-height:100vh"]{min-height:100svh!important}

@media (max-width:1024px){
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}
}

@media (max-width:768px){
  .grid-2,.grid-3,.split{grid-template-columns:1fr!important}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  /* heroes stop forcing a full viewport of scroll on phones */
  [style*="min-height:100vh"]{min-height:auto!important}
  .nav{padding:12px var(--space-5);gap:var(--space-4)}
  .nav-toggle{display:block}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:var(--space-2) var(--space-5) var(--space-4);background:rgba(247,248,252,0.97);border-bottom:1px solid var(--border-subtle);box-shadow:0 18px 32px -20px rgba(31,42,115,.25)}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 0;font-size:var(--text-base)}
  .nav-links .btn-primary{justify-content:center;padding:12px 14px;margin-top:var(--space-2)}
  /* the export's generous desktop padding, tightened */
  .container{padding-left:var(--space-5)!important;padding-right:var(--space-5)!important}
}

@media (max-width:480px){
  .grid-4{grid-template-columns:1fr}
  :root{--text-3xl:2.25rem;--text-4xl:2.75rem;--text-2xl:1.85rem}
}

/* ============ Contact form (statics of the design system's Input/Select) ============ */
.field{display:flex;flex-direction:column;gap:var(--space-2)}
.field>label{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-body)}
.pi-input,.pi-select{width:100%;font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-strong);background:var(--white);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:11px var(--space-4);outline:none;transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}
.pi-input:focus,.pi-select:focus{border-color:var(--indigo-500);box-shadow:var(--shadow-focus)}
.select-wrap{position:relative;display:flex}
.select-wrap .pi-select{appearance:none;padding-right:40px;cursor:pointer}
.select-wrap svg{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none}
.btn-primary.btn-lg{width:100%;padding:16px 18px;font-size:var(--text-base);border-radius:var(--radius-md)}

/* ============ Hero secondary button, badge, stat (statics of design-system components) ============ */
.btn-secondary{display:inline-flex;width:auto;align-items:center;justify-content:center;gap:10px;font-family:var(--font-sans);font-weight:var(--fw-semibold);font-size:var(--text-md);line-height:1;letter-spacing:var(--tracking-snug);padding:15px 28px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard),transform var(--dur-fast) var(--ease-standard);outline:none;background:var(--white);color:var(--indigo-700);border:1px solid var(--border-default);text-decoration:none}
.btn-secondary:hover{border-color:var(--indigo-400);box-shadow:var(--shadow-sm)}
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;font-weight:var(--fw-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:4px 10px;border-radius:var(--radius-pill);white-space:nowrap}
.badge-indigo{color:var(--indigo-700);background:var(--indigo-50)}
.stat{text-align:left}
.stat-value{font-family:var(--font-mono);font-weight:var(--fw-medium);font-size:var(--text-3xl);line-height:1;letter-spacing:-0.02em}
.stat-caption{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-2);line-height:var(--leading-snug);max-width:34ch}
