/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("/static/fonts/archivo-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-cyrillic-ext.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("/static/fonts/jetbrains-mono-cyrillic.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("/static/fonts/jetbrains-mono-greek.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("/static/fonts/jetbrains-mono-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-cyrillic-ext.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("/static/fonts/jetbrains-mono-cyrillic.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("/static/fonts/jetbrains-mono-greek.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("/static/fonts/jetbrains-mono-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-cyrillic-ext.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: 600;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-cyrillic.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: 600;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-greek.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: 600;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/static/fonts/jetbrains-mono-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/newsreader-vietnamese-italic.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/newsreader-latin-ext-italic.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/newsreader-latin-italic.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/newsreader-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/newsreader-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/newsreader-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/static/fonts/newsreader-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/static/fonts/newsreader-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/static/fonts/newsreader-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/static/fonts/newsreader-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/static/fonts/newsreader-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/static/fonts/newsreader-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


:root{
  --bg:#141010;
  --bg-2:#1b1514;
  --surface:#221a19;
  --surface-2:#291f1d;
  --line:rgba(255,236,230,0.09);
  --line-strong:rgba(255,236,230,0.16);
  --text:#f4ece9;
  --muted:#bdaea9;
  --faint:#8c7d79;
  --garnet:#a32338;
  --garnet-bright:#c7384f;
  --garnet-deep:#5f1622;
  --garnet-glow:rgba(199,56,79,0.5);
  --gold:#c9a24b;
  --maxw:1240px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Archivo',sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}
h1,h2,h3{font-family:'Newsreader',serif;font-weight:500;line-height:1.05;letter-spacing:-0.01em}
.mono{font-family:'JetBrains Mono',monospace}
a{color:inherit;text-decoration:none}
.eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--garnet-bright);
  display:inline-flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:24px;height:1px;background:var(--garnet);display:inline-block}

/* ---------- top bar ---------- */
.topbar{
  position:fixed;top:0;left:0;right:0;z-index:60;
  border-bottom:1px solid transparent;
  transition:background .4s ease,border-color .4s ease,backdrop-filter .4s;
}
.topbar.scrolled{background:rgba(20,16,16,0.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:78px}
.brand{display:flex;align-items:center;letter-spacing:.02em}
.brand .logo{height:46px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:38px}
.nav a{font-size:14.5px;color:var(--muted);transition:color .2s;position:relative;white-space:nowrap}
.nav a:hover{color:var(--text)}
.nav-right{display:flex;align-items:center;gap:22px}
.lang{display:flex;gap:2px;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--faint)}
.lang span{padding:4px 7px;border-radius:4px;cursor:pointer;transition:.2s}
.lang span.active{color:var(--text);background:var(--surface)}
.lang span:hover{color:var(--text)}
.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:'Archivo';font-size:14.5px;font-weight:600;
  padding:12px 22px;border-radius:2px;cursor:pointer;transition:.25s;
  border:1px solid transparent;
}
.btn-primary{background:var(--garnet);color:#fff}
.btn-primary:hover{background:var(--garnet-bright);box-shadow:0 8px 30px -8px var(--garnet-glow)}
.btn-ghost{border-color:var(--line-strong);color:var(--text)}
.btn-ghost:hover{border-color:var(--garnet-bright);color:var(--garnet-bright)}
.btn .arr{transition:transform .25s}
.btn:hover .arr{transform:translateX(4px)}

/* ---------- hero ---------- */
.hero{position:relative;padding:172px 0 90px;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-bg .glow{position:absolute;width:760px;height:760px;border-radius:50%;
  background:radial-gradient(circle,rgba(163,35,56,0.34),transparent 62%);
  top:-260px;right:-180px;filter:blur(20px)}
.hero-bg .grid{position:absolute;inset:0;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px;mask-image:radial-gradient(ellipse 90% 70% at 70% 20%,#000,transparent 75%);opacity:.5}
.hero .wrap{position:relative;z-index:2}
.hero-grid{display:grid;grid-template-columns:1.32fr 1fr;gap:60px;align-items:end}
.hero h1{font-size:clamp(46px,6vw,86px);letter-spacing:-0.022em}
.hero h1 em{font-style:italic;color:var(--garnet-bright)}
.hero .lead{font-size:20px;color:var(--muted);max-width:560px;margin:30px 0 38px;line-height:1.55}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-since{margin-top:46px;display:flex;align-items:center;gap:18px;color:var(--faint);font-size:13px}
.hero-since .mono{color:var(--text)}
.hero-since .divider{flex:1;height:1px;background:var(--line)}

/* neural mesh motif */
.recovery{position:relative;width:100%;height:340px;align-self:center}
.recovery canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.recovery .cap{position:absolute;left:0;top:0;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;color:var(--muted)}
/* .recovery.fadein, not `.recovery .fadein` as the design bundle had it: the
   class goes on the motif itself, so the descendant selector never matched and
   the intended fade-in was a hard pop. */
.recovery.fadein{opacity:0;transition:opacity .6s ease}

/* ---------- ticker / stats strip ---------- */
.stats-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-2)}
.stats-strip .wrap{display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.stat{padding:34px 26px;border-left:1px solid var(--line)}
.stat:first-child{border-left:none;padding-left:0}
.stat .num{font-family:'Newsreader',serif;font-size:42px;font-weight:500;letter-spacing:-0.02em;color:var(--text);line-height:1}
.stat .num b{color:var(--garnet-bright);font-weight:500}
.stat .lbl{font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-top:12px}
.stats-strip .wrap.lean{grid-template-columns:auto auto 1fr}
.stats-strip .wrap.lean .stat{border-left:none;padding-left:0;padding-right:60px}
.stat-note{padding:34px 0 34px 48px;border-left:1px solid var(--line);font-size:16px;color:var(--muted);line-height:1.55;max-width:520px;margin-left:auto;align-self:center}
.stat-note b{color:var(--text);font-weight:500}
@media(max-width:860px){.stats-strip .wrap.lean{grid-template-columns:1fr 1fr}.stat-note{grid-column:1/-1;border-left:none;padding:0 0 30px;margin:0;max-width:none}}

/* ---------- how we work / mixed model ---------- */
.flow{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.flow-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:56px}
.flow-step{padding:0 36px;border-left:1px solid var(--line)}
.flow-step:first-child{border-left:none;padding-left:0}
.flow-step .n{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--garnet-bright);letter-spacing:.1em}
.flow-step h4{font-family:'Archivo';font-weight:600;font-size:20px;margin:16px 0 10px}
.flow-step p{color:var(--muted);font-size:15.5px;line-height:1.55}
.flow-edge{margin-top:54px;padding-top:32px;border-top:1px solid var(--line);display:flex;gap:24px;align-items:baseline;flex-wrap:wrap}
.flow-edge .lead-lbl{font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--garnet-bright);flex:none;padding-top:6px}
.flow-edge p{font-family:'Newsreader',serif;font-size:25px;color:var(--text);line-height:1.4;max-width:840px;margin:0}
@media(max-width:860px){.flow-steps{grid-template-columns:1fr;gap:34px}.flow-step{border-left:none;padding-left:0}}

/* ---------- section base ---------- */
section{position:relative}
.section{padding:118px 0}
.sec-head{max-width:760px;margin-bottom:62px}
.sec-head h2{font-size:clamp(34px,4.4vw,56px);margin-top:22px;letter-spacing:-0.02em}
.sec-head p{color:var(--muted);font-size:19px;margin-top:22px;max-width:620px}

/* ---------- services ---------- */
.services{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.svc{background:var(--bg-2);padding:46px 44px;position:relative;transition:background .3s;cursor:default;min-height:280px;display:flex;flex-direction:column}
.svc:hover{background:var(--surface)}
.svc .idx{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--garnet-bright);letter-spacing:.1em}
.svc h3{font-size:28px;margin:20px 0 14px;letter-spacing:-0.01em}
.svc p{color:var(--muted);font-size:16px;line-height:1.6;flex:1}
.svc .tag{margin-top:24px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);display:flex;gap:8px;flex-wrap:wrap}
.svc .tag span{padding:5px 10px;border:1px solid var(--line-strong);border-radius:2px}
.svc::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--garnet);transform:scaleY(0);transform-origin:top;transition:transform .35s}
.svc:hover::after{transform:scaleY(1)}

/* ---------- technology ---------- */
.tech-grid{display:grid;grid-template-columns:1fr;gap:0}
.tech-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0 44px;margin-top:8px}
.tech-item{padding:26px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:48px 1fr;gap:20px}
.tech-item:last-child{border-bottom:1px solid var(--line)}
.tech-item .k{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--garnet-bright)}
.tech-item h4{font-family:'Archivo';font-weight:600;font-size:19px;margin-bottom:6px}
.tech-item p{color:var(--muted);font-size:15.5px}

/* ---------- global / world map ---------- */
.global{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.map-layout{display:grid;grid-template-columns:1fr 300px;gap:44px;align-items:stretch}
.map-panel{position:relative;border:1px solid var(--line);border-radius:4px;background:radial-gradient(circle at 50% 42%,rgba(163,35,56,0.10),transparent 60%),var(--bg);overflow:hidden;min-height:440px}
.map-panel svg{display:block;width:100%;height:auto}
.map-panel .land{fill:var(--surface-2);stroke:var(--line-strong);stroke-width:.4px;transition:fill .3s}
.map-panel .land.lit{fill:#3a2926}
.pin{cursor:pointer}
.pin .halo{fill:var(--garnet-glow);opacity:0;transform-box:fill-box;transform-origin:center;animation:pinpulse 3s ease-out infinite}
.pin .core{fill:var(--garnet-bright);stroke:#fff;stroke-width:.6px}
.pin.active .core{fill:#fff;stroke:var(--garnet-bright);stroke-width:1.4px}
@keyframes pinpulse{0%{opacity:.55;r:3}70%{opacity:0;r:13}100%{opacity:0;r:13}}
.map-tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line-strong);border-radius:3px;padding:8px 11px;font-size:12.5px;color:var(--text);transform:translate(-50%,-140%);white-space:nowrap;opacity:0;transition:opacity .15s;z-index:5}
.map-tip .c{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.1em;color:var(--garnet-bright);display:block;margin-bottom:2px}
.mk-list{border-top:1px solid var(--line);max-height:460px;overflow-y:auto;padding-right:4px}
.mk-list::-webkit-scrollbar{width:5px}.mk-list::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}
.mk-row{display:flex;align-items:baseline;gap:12px;padding:11px 8px;border-bottom:1px solid var(--line);cursor:default;transition:background .2s,padding .2s}
.mk-row:hover,.mk-row.active{background:var(--surface);padding-left:14px}
.mk-row .cc{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--garnet-bright);letter-spacing:.1em;width:24px;flex:none}
.mk-row .cn{font-family:'Newsreader',serif;font-size:18px;line-height:1.1;flex:1}
.mk-row .ct{font-size:11.5px;color:var(--faint);font-family:'JetBrains Mono',monospace}
@media(max-width:900px){.map-layout{grid-template-columns:1fr}.mk-list{max-height:none;columns:2;column-gap:30px}.mk-row{break-inside:avoid}}

/* ---------- leadership ---------- */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 22px}
.person{}
.person .ph{aspect-ratio:4/5;border-radius:3px;border:1px solid var(--line);
  background-image:repeating-linear-gradient(135deg,var(--surface),var(--surface) 9px,var(--surface-2) 9px,var(--surface-2) 18px);
  position:relative;overflow:hidden}
.person .ph image-slot{position:absolute;inset:0;width:100%;height:100%}
.person .ph .tagph{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--faint);letter-spacing:.08em}
.person h4{font-family:'Newsreader',serif;font-size:18px;font-weight:500;margin-top:12px;line-height:1.15}
.person .role{color:var(--garnet-bright);font-size:11.5px;font-family:'JetBrains Mono',monospace;letter-spacing:.03em;margin-top:4px;line-height:1.3}
.person .li{display:inline-flex;align-items:center;gap:6px;margin-top:9px;font-size:11.5px;color:var(--faint);transition:color .2s}
.person .li svg{width:14px;height:14px;fill:currentColor}
.person .li:hover{color:var(--garnet-bright)}
.team-note{margin-top:30px;padding-top:22px;border-top:1px solid var(--line);font-size:15px;color:var(--muted)}
.team-note .mono{color:var(--garnet-bright);font-size:18px}

/* ---------- cta ---------- */
.cta{position:relative;overflow:hidden;padding:130px 0}
.cta-bg{position:absolute;inset:0;background:
  radial-gradient(circle at 80% 30%,rgba(163,35,56,0.3),transparent 55%),var(--bg)}
.cta .wrap{position:relative;z-index:2;text-align:center}
.cta h2{font-size:clamp(38px,5.4vw,72px);letter-spacing:-0.025em;max-width:900px;margin:0 auto}
.cta h2 em{font-style:italic;color:var(--garnet-bright)}
.cta p{color:var(--muted);font-size:20px;margin:26px auto 40px;max-width:540px}
.cta-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
footer{background:var(--bg-2);border-top:1px solid var(--line);padding:74px 0 40px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:54px;border-bottom:1px solid var(--line)}
.foot-brand .name{font-family:'Newsreader',serif;font-size:24px;font-weight:600}
.foot-brand p{color:var(--faint);font-size:14.5px;margin-top:16px;max-width:300px}
.foot-col h5{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:18px}
.foot-col a,.foot-col div{display:block;color:var(--muted);font-size:14.5px;padding:5px 0;transition:color .2s}
.foot-col a:hover{color:var(--garnet-bright)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;color:var(--faint);font-size:13px;flex-wrap:wrap;gap:12px}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}

@media(max-width:1080px){
  .hero-grid{grid-template-columns:1fr}.recovery{display:none}
  .stats-strip .wrap{grid-template-columns:repeat(3,1fr)}.stat:nth-child(4){border-left:none;padding-left:0}
  .tech-grid{grid-template-columns:1fr;gap:40px}.tech-list{grid-template-columns:1fr}.market-grid{grid-template-columns:repeat(3,1fr)}
  .team-grid{grid-template-columns:repeat(2,1fr)}.foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .wrap{padding:0 22px}.nav{display:none}
  .svc-grid{grid-template-columns:1fr}.stats-strip .wrap{grid-template-columns:1fr 1fr}
  .stat{border-left:none!important;padding-left:0}.market-grid{grid-template-columns:repeat(2,1fr)}
  .hero h1{font-size:42px}
}

/* direction switcher */
.switcher{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:100;
  display:flex;gap:4px;padding:6px;background:rgba(20,16,16,0.9);backdrop-filter:blur(12px);
  border:1px solid var(--line-strong);border-radius:100px;font-family:'JetBrains Mono',monospace;font-size:12px}
.switcher a{padding:8px 16px;border-radius:100px;color:var(--muted);transition:.2s;white-space:nowrap}
.switcher a:hover{color:#fff}
.switcher a.on{background:var(--garnet);color:#fff}

/* ==========================================================================
   Additions for the production site — sections and components that the
   Claude Design reference did not include. Everything above this line is the
   original design CSS, with @font-face URLs pointed at /static/fonts/.
   ========================================================================== */

/* ---------- accessibility ---------- */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--garnet);color:#fff;padding:12px 18px;border-radius:0 0 3px 0}
.skip-link:focus{left:0}
:focus-visible{outline:2px solid var(--garnet-bright);outline-offset:2px}
body.modal-open{overflow:hidden}

/* language switcher is now a set of real links, not spans */
.lang a{padding:4px 7px;border-radius:4px;transition:.2s;color:inherit}
.lang a.active{color:var(--text);background:var(--surface)}
.lang a:hover{color:var(--text)}

/* ---------- map: market countries ---------- */
.map-panel .land.market{fill:var(--garnet-deep);stroke:var(--garnet-bright);stroke-width:.55px;cursor:pointer;transition:fill .25s,stroke-width .25s}
.map-panel .land.market:hover,.map-panel .land.market.active{fill:var(--garnet);stroke-width:1px}
.map-tip .n{white-space:nowrap}

/* ---------- contacts ---------- */
.contacts .sec-head{max-width:720px}
.office-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-top:46px}
.office{background:var(--bg);padding:28px 26px 26px;transition:background .25s}
.office:hover{background:var(--surface)}
.office-head{display:flex;gap:13px;align-items:flex-start}
.office-head .cc{font-size:10.5px;letter-spacing:.1em;color:var(--garnet-bright);border:1px solid var(--line-strong);border-radius:2px;padding:3px 6px;margin-top:3px;flex:none}
.office h4{font-family:'Newsreader',serif;font-size:20px;font-weight:500;line-height:1.15}
.office .cn{font-size:12px;color:var(--faint);font-family:'JetBrains Mono',monospace;letter-spacing:.04em}
.office .addr{color:var(--muted);font-size:14.5px;margin:14px 0 0;line-height:1.5}
.office-links{margin-top:14px;display:flex;flex-direction:column;gap:5px}
.office-links a{font-size:14.5px;color:var(--text);transition:color .2s;width:fit-content}
.office-links a:hover{color:var(--garnet-bright)}
.office .entity{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:10.5px;letter-spacing:.05em;color:var(--faint);line-height:1.5}
.elsewhere{margin-top:40px}
.elsewhere h5{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:16px}
.elsewhere-list{display:flex;flex-wrap:wrap;gap:10px}
.elsewhere-list a{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:2px;padding:9px 14px;font-size:14px;color:var(--muted);transition:.2s}
.elsewhere-list a:hover{border-color:var(--garnet);color:var(--text);background:var(--surface)}
.elsewhere-list .cc{font-size:10.5px;letter-spacing:.1em;color:var(--garnet-bright)}

/* ---------- contact form ---------- */
.contact-form{max-width:660px;margin:44px auto 0;text-align:left}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:block;margin-bottom:16px}
.field>span{display:block;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:7px}
.field input,.field select,.field textarea{
  width:100%;background:var(--surface);color:var(--text);
  border:1px solid var(--line-strong);border-radius:2px;
  padding:12px 14px;font-family:'Archivo',sans-serif;font-size:15px;transition:border-color .2s,background .2s;
}
.field textarea{resize:vertical;min-height:110px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--garnet-bright);background:var(--surface-2)}
.field input::placeholder,.field textarea::placeholder{color:var(--faint)}
.field select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%238c7d79' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:11px;padding-right:36px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:flex;align-items:flex-start;gap:10px;margin:6px 0 22px;font-size:14px;color:var(--muted)}
.consent input{margin-top:3px;accent-color:var(--garnet);width:15px;height:15px;flex:none}
.consent a{color:var(--garnet-bright);text-decoration:underline;text-underline-offset:2px}
.form-msg{margin-top:16px;font-size:14.5px;min-height:1.2em}
.form-msg.ok{color:#6fbf8f}
.form-msg.error{color:var(--garnet-bright)}
@media(max-width:640px){.field-row{grid-template-columns:1fr;gap:0}}

/* ---------- modals (notice + cookie settings) ---------- */
.modal-backdrop{position:fixed;inset:0;z-index:60;background:rgba(10,7,7,0.74);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px}
.modal-backdrop[hidden]{display:none}
.modal{position:relative;background:var(--bg-2);border:1px solid var(--line-strong);border-top:3px solid var(--garnet);border-radius:4px;padding:38px 36px 32px;max-width:520px;width:100%;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.modal-wide{max-width:620px;max-height:86vh;overflow-y:auto}
.modal h3{font-family:'Newsreader',serif;font-size:27px;font-weight:600;line-height:1.15}
.modal p{color:var(--muted);font-size:15.5px;line-height:1.62;margin:16px 0 26px}
.modal p a{color:var(--garnet-bright);text-decoration:underline;text-underline-offset:2px}
.modal strong{color:var(--text)}
.modal-lead{margin-bottom:8px !important}
.modal-x{position:absolute;top:12px;right:14px;background:none;border:0;color:var(--faint);font-size:24px;line-height:1;cursor:pointer;padding:4px 8px;transition:color .2s}
.modal-x:hover{color:var(--text)}
.cookie-opt{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;padding:18px 0;border-top:1px solid var(--line)}
.cookie-opt h5{font-size:15px;font-weight:600}
.cookie-opt p{font-size:13.5px;margin:6px 0 0;color:var(--faint);line-height:1.55}
.cookie-opt .always{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--garnet-bright);white-space:nowrap;padding-top:2px}
.switch{appearance:none;width:42px;height:23px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line-strong);position:relative;cursor:pointer;flex:none;transition:background .2s,border-color .2s}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:var(--faint);transition:transform .2s,background .2s}
.switch:checked{background:var(--garnet);border-color:var(--garnet)}
.switch:checked::after{transform:translateX(19px);background:#fff}
.cookie-opt+.cookie-opt+.cookie-opt{margin-bottom:24px}

/* ---------- cookie bar ---------- */
.cookie-bar{position:fixed;left:0;right:0;bottom:0;z-index:55;background:var(--bg-2);border-top:1px solid var(--line-strong);padding:20px 0;box-shadow:0 -14px 40px rgba(0,0,0,.4)}
.cookie-bar[hidden]{display:none}
.cookie-inner{max-width:var(--maxw);margin:0 auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.cookie-bar h5{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}
.cookie-bar p{font-size:14px;color:var(--muted);line-height:1.55;max-width:720px}
.cookie-bar p a{color:var(--garnet-bright);text-decoration:underline;text-underline-offset:2px}
.cookie-actions{display:flex;gap:10px;flex:none;flex-wrap:wrap}
.cookie-actions .btn{font-size:13.5px;padding:10px 18px}
@media(max-width:880px){.cookie-inner{flex-direction:column;align-items:flex-start;gap:18px;padding:0 22px}}

/* ---------- legal pages ---------- */
.legal-page{padding-top:150px}
.legal-head{border-bottom:1px solid var(--line);padding-bottom:34px;margin-bottom:44px}
.legal-head h1{font-size:clamp(34px,5vw,58px);margin-top:20px}
.legal-body{max-width:780px}
.legal-body h3{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--garnet-bright);margin:40px 0 14px;font-weight:500}
.legal-body h3:first-child{margin-top:0}
.legal-body p{color:var(--muted);font-size:16px;line-height:1.72;margin-bottom:14px}
.legal-body strong{color:var(--text);font-weight:600}
.legal-body a{color:var(--garnet-bright);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.legal-body ul{margin:0 0 14px;padding-left:20px;list-style:disc}
.legal-body li{color:var(--muted);font-size:16px;line-height:1.72;margin-bottom:8px}
.legal-body li::marker{color:var(--line-strong)}
/* Cookie inventory: wider than the 780px prose column, scrolls on narrow screens. */
.legal-table-wrap{max-width:100%;overflow-x:auto;margin:0 0 14px;border:1px solid var(--line);border-radius:4px}
.legal-table{border-collapse:collapse;width:100%;min-width:640px;font-size:14px}
.legal-table th,.legal-table td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.legal-table thead th{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text);font-weight:500;background:var(--surface)}
.legal-table tbody td{color:var(--muted);line-height:1.6}
.legal-table tbody tr:last-child td{border-bottom:0}
.legal-table code{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--text);overflow-wrap:anywhere}
.legal-page .btn{margin-top:48px}

/* Buttons: the reference design only ever styled <a class="btn">, so a real
   <button> picked up the user-agent background. Reset it, then restore the
   variants (all 0,1,1 specificity — source order decides). */
button.btn{background:transparent;color:var(--text);border-color:transparent;
  font-family:'Archivo',sans-serif;font-size:14.5px;font-weight:600}
button.btn-ghost{border-color:var(--line-strong)}
button.btn-ghost:hover{border-color:var(--garnet-bright);color:var(--garnet-bright)}
button.btn-primary{background:var(--garnet);color:#fff}
button.btn-primary:hover{background:var(--garnet-bright)}

/* Team photos: absolutely positioned so their intrinsic 640px width cannot
   set the grid track minimum (which collapsed the 4-column team grid to 2). */
.person{min-width:0}
.person .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%}

/* ---------- top bar on phones ----------
   The design's header assumes desktop room: logo + five links + lang + CTA.
   Below 720px the links are already hidden, but logo (160px), lang (111px)
   and the CTA still needed 445px of a 375px viewport, so "Colabora con
   nosotros" wrapped to three lines and tripled the header height.
   Everything below only shrinks; the desktop header is unchanged. */
.btn-cta .cta-short{display:none}

/* ---------- reCAPTCHA ----------
   Google permits hiding the floating badge only while a text attribution stays
   visible in the form flow. The legal review of 2026-08-11 struck that text, so
   the badge must now be the attribution and cannot be hidden — the previous
   `.grecaptcha-badge{visibility:hidden}` rule was removed for that reason, and
   restoring it would put the site in breach unless the notice comes back with
   it. The white pill does not fit the dark theme, but it is a cross-origin
   iframe and cannot be restyled; it only appears once the user presses Submit,
   since the script is injected on submit rather than on page load. */

/* Same override, same reason: .cta p was inflating the form's status line to
   20px and re-centring it, against the 14.5px intended at .form-msg. */
p.form-msg{margin:16px 0 0;max-width:none;font-size:14.5px}

@media(max-width:720px){
  .topbar .wrap{height:60px}
  .brand .logo{height:32px}
  .nav-right{gap:12px}
  .lang{font-size:11px}
  .lang a{padding:4px 5px}
  /* nowrap is the point: the CTA must never become a multi-line block again */
  .btn-cta{font-size:13px;padding:9px 15px;gap:7px;white-space:nowrap}
}

/* Narrow phones: the full label cannot fit next to the logo and the language
   switcher at any readable size, so swap in nav.cta_short. Both labels are in
   the markup and chosen by CSS — no JS, and it survives a locale change. */
@media(max-width:560px){
  .btn-cta .cta-full{display:none}
  .btn-cta .cta-short{display:inline}
  .btn-cta .arr{display:none}
}

@media(max-width:380px){
  .wrap{padding:0 16px}
  .brand .logo{height:28px}
  .nav-right{gap:8px}
  .lang{font-size:10.5px}
  .lang a{padding:4px 4px}
  .btn-cta{font-size:12.5px;padding:9px 13px}
}
