/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/51fe2d65-ef06-4d7a-aeb1-37a5eb1f381f.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("fonts/2ed7bf66-e3c8-4806-be33-40bec980a2a9.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("fonts/bd7af020-4c09-44e3-bb3b-921219e83a30.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("fonts/1f145af2-5986-462c-b6f4-1c38114badcb.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("fonts/00dca5a7-05a7-45b2-8fff-052f61e17af2.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("fonts/b0977ddb-dc22-4d72-9578-8714af3892cf.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("fonts/51fe2d65-ef06-4d7a-aeb1-37a5eb1f381f.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("fonts/2ed7bf66-e3c8-4806-be33-40bec980a2a9.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("fonts/bd7af020-4c09-44e3-bb3b-921219e83a30.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("fonts/1f145af2-5986-462c-b6f4-1c38114badcb.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("fonts/00dca5a7-05a7-45b2-8fff-052f61e17af2.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("fonts/b0977ddb-dc22-4d72-9578-8714af3892cf.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("fonts/51fe2d65-ef06-4d7a-aeb1-37a5eb1f381f.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("fonts/2ed7bf66-e3c8-4806-be33-40bec980a2a9.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("fonts/bd7af020-4c09-44e3-bb3b-921219e83a30.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("fonts/1f145af2-5986-462c-b6f4-1c38114badcb.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("fonts/00dca5a7-05a7-45b2-8fff-052f61e17af2.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("fonts/b0977ddb-dc22-4d72-9578-8714af3892cf.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("fonts/51fe2d65-ef06-4d7a-aeb1-37a5eb1f381f.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("fonts/2ed7bf66-e3c8-4806-be33-40bec980a2a9.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("fonts/bd7af020-4c09-44e3-bb3b-921219e83a30.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("fonts/1f145af2-5986-462c-b6f4-1c38114badcb.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("fonts/00dca5a7-05a7-45b2-8fff-052f61e17af2.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("fonts/b0977ddb-dc22-4d72-9578-8714af3892cf.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/6ef7dc44-8e91-44de-ab26-8a2f7cfa2a2d.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/87a8ffe2-ab5f-46d7-aad4-cde82d68ac8c.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/66671fc1-02ba-4bfb-9521-615c31fc8675.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/6ef7dc44-8e91-44de-ab26-8a2f7cfa2a2d.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/87a8ffe2-ab5f-46d7-aad4-cde82d68ac8c.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/66671fc1-02ba-4bfb-9521-615c31fc8675.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/6ef7dc44-8e91-44de-ab26-8a2f7cfa2a2d.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/87a8ffe2-ab5f-46d7-aad4-cde82d68ac8c.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/66671fc1-02ba-4bfb-9521-615c31fc8675.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/6ef7dc44-8e91-44de-ab26-8a2f7cfa2a2d.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/87a8ffe2-ab5f-46d7-aad4-cde82d68ac8c.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: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/66671fc1-02ba-4bfb-9521-615c31fc8675.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: 'Space Mono';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/dd7d6051-bc05-44d8-b4a5-a48c30dbabf4.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: 'Space Mono';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/d49d3dfd-32f8-4e9b-b4e5-6cad912813f4.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: 'Space Mono';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/761d2f27-eba0-491b-ad7f-c57cc06cf0b3.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: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/b934eeac-34a0-485c-ae51-a1790afd2a07.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: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/83ee0ff7-b346-492f-aa87-aa39a8e04600.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: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/d395ec2f-9903-4836-9997-9bb382289f8a.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: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/f8d3e382-9205-43dc-83c0-f53c8ca93682.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: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/5c622077-509a-488b-8970-a99d5d209d5a.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: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/e3e152ce-1dda-4ccf-ba24-a614395ec41d.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;
}

/* ===========================================================
   MORIARTY CAPITAL — refined-minimal quant finance
   Tokens & system
   =========================================================== */

:root {
  /* Color */
  --cream:      #F5F2EB;   /* page canvas */
  --cream-2:    #EFEBE1;   /* recessed band */
  --paper:      #FCFAF5;   /* raised surface */
  --ink:        #16160F;   /* near-black text */
  --ink-soft:   #34332A;
  --muted:      #6E6C5F;   /* secondary text */
  --faint:      #9A978A;   /* tertiary / captions */
  --line:       #DAD5C8;   /* hairline */
  --line-soft:  #E7E2D6;
  --accent:     #034869;   /* deep chart blue */
  --accent-2:   #1E7FA3;   /* lighter blue for fills */
  --accent-ink: #022F45;
  --signal:     #B4622B;   /* warm terracotta — sparing data accent */

  /* Allocation tonal scale (high → low) */
  --t1: #034869;
  --t2: #0A5E80;
  --t3: #2F7C98;
  --t4: #5E9AB1;
  --t5: #97B7C7;
  --t6: #C4D4DC;

  /* Type */
  --font-display: 'Space Grotesk', system-ui, sans-serif;
  --font-body:    'Manrope', system-ui, sans-serif;
  --font-mono:    'Space Mono', ui-monospace, monospace;

  /* Layout */
  --maxw: 1280px;
  --gut: clamp(16px, 4.5vw, 64px);
  --nav-h: 64px;

  /* Type — section title (used by every section + contact) */
  --fs-h2: clamp(28px, 3.8vw, 50px);

  /* Spacing — unified section vertical rhythm */
  --section-y: clamp(64px, 9.35vw, 120px);

  /* Motion */
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  background: var(--cream);
  color: var(--ink);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

/* subtle paper grain */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0.4;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
}

::selection { background: var(--accent); color: var(--paper); }

a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
img { display: block; max-width: 100%; }

/* ---------- shared layout ---------- */
.wrap {
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  padding-left: var(--gut);
  padding-right: var(--gut);
}

section { position: relative; z-index: 2; }

.eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.eyebrow::before {
  content: "";
  width: 22px;
  height: 1px;
  background: var(--accent);
  display: inline-block;
}

.section-head {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: clamp(32px, 5.1vw, 64px);
}
.section-head h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--fs-h2);
  line-height: 1.02;
  letter-spacing: -0.02em;
  max-width: 18ch;
  text-wrap: balance;
}
.section-head .lede {
  color: var(--muted);
  max-width: 52ch;
  font-size: clamp(15px, 1.3vw, 18px);
}

/* ---------- reveal animation ---------- */
.reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.9s var(--ease-out), transform 0.9s var(--ease-out);
  transition-delay: calc(var(--i, 0) * 80ms);
}
.reveal.in-view { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1 !important; transform: none !important; }
  * { animation: none !important; }
}

/* ===========================================================
   NAV
   =========================================================== */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--nav-h);
  z-index: 100;
  display: flex;
  align-items: center;
  transition: background 0.4s var(--ease), border-color 0.4s var(--ease), backdrop-filter 0.4s;
  border-bottom: 1px solid transparent;
}
.nav.scrolled {
  background: color-mix(in srgb, var(--cream) 82%, transparent);
  backdrop-filter: blur(14px) saturate(1.2);
  border-bottom-color: var(--line);
}
.nav .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: 0.14em;
  font-size: 13px;
  text-transform: uppercase;
}
.brand .mark {
  width: 22px; height: 22px;
  display: inline-block;
  flex: none;
}
.brand .mark svg { width: 100%; height: 100%; display: block; }

.nav-links {
  display: flex;
  align-items: center;
  gap: 24px;
  font-size: 13px;
  color: var(--ink-soft);
}
.nav-links a { position: relative; padding: 4px 0; transition: color 0.25s; }
.nav-links a::after {
  content: "";
  position: absolute;
  left: 0; bottom: -2px;
  width: 100%; height: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s var(--ease);
}
.nav-links a:hover { color: var(--accent); }
.nav-links a:hover::after { transform: scaleX(1); }

.btn {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.01em;
  border: 1px solid var(--accent);
  background: var(--accent);
  color: var(--paper);
  padding: 10px 16px;
  border-radius: 2px;
  transition: transform 0.3s var(--ease), background 0.3s, color 0.3s, box-shadow 0.3s;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}
.btn:hover { background: var(--accent-ink); transform: translateY(-1px); box-shadow: 0 8px 22px -12px var(--accent-ink); }
.btn .arr { transition: transform 0.3s var(--ease); }
.btn:hover .arr { transform: translateX(3px); }
.btn.ghost {
  background: transparent;
  color: var(--ink);
  border-color: var(--line);
}
.btn.ghost:hover { border-color: var(--ink); background: transparent; color: var(--ink); box-shadow: none; }

.nav-cta { display: flex; align-items: center; gap: 16px; }

.menu-toggle { display: none; }

/* ===========================================================
   HERO
   =========================================================== */
.hero {
  padding-top: calc(var(--nav-h) + clamp(40px, 7.65vw, 96px));
  padding-bottom: clamp(32px, 5.1vw, 64px);
  position: relative;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(24px, 4.25vw, 64px);
  align-items: end;
}
.hero h1 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(34px, 5.2vw, 74px);
  line-height: 0.97;
  letter-spacing: -0.035em;
  text-wrap: balance;
}
.hero h1 em {
  font-style: italic;
  font-weight: 400;
  color: var(--accent);
}
.hero .sub {
  margin-top: clamp(20px, 2.55vw, 32px);
  font-size: clamp(15px, 1.3vw, 18px);
  color: var(--muted);
  max-width: 46ch;
}
.hero .hero-cta {
  margin-top: 32px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* hero side visual: thin animated allocation lines */
.hero-viz {
  border-left: 1px solid var(--line);
  padding-left: clamp(24px, 4.25vw, 64px);
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0;
}
.hero-viz .viz-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
  margin-bottom: 16px;
}
.viz-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid var(--line-soft);
}
.viz-row:last-child { border-bottom: 1px solid var(--line-soft); }
.viz-row .vr-name {
  font-size: 12px;
  color: var(--ink-soft);
  display: flex;
  align-items: center;
  gap: 8px;
}
.viz-row .vr-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; }

/* ---- liquidity flow animation ---- */
.liquidity {
  position: relative;
  flex: 1 1 auto;
  width: 100%;
  min-height: 360px;
  margin-top: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.liquidity svg { width: 100%; height: 100%; display: block; overflow: hidden; }
.liquidity .lottie,
.liquidity #lottie-mount {
  flex: none;
  width: 118%;
  max-width: 460px;
  height: auto;
  aspect-ratio: 1920 / 1080;
  display: block;
}

.lq-streambg { fill: none; stroke: var(--line); stroke-width: 1; opacity: 0.7; }
.lq-stream {
  fill: none;
  stroke: var(--accent);
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-dasharray: 0.1 15;
  opacity: 0.75;
  animation: lq-drip 1.5s linear infinite;
}
@keyframes lq-drip { to { stroke-dashoffset: -15.1; } }

.lq-src { fill: var(--accent); }
.lq-halo { fill: none; stroke: var(--accent); stroke-width: 1.5; transform-box: fill-box; transform-origin: center; animation: lq-pulse 2.6s ease-out infinite; }
@keyframes lq-pulse {
  0%   { transform: scale(0.4); opacity: 0.65; }
  70%  { opacity: 0; }
  100% { transform: scale(2.6); opacity: 0; }
}

.lq-pool { animation: lq-bob 7s ease-in-out infinite; }
@keyframes lq-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
.lq-wave { will-change: transform; }
.lq-wave.w1 { opacity: 0.16; animation: lq-flowL 11s linear infinite; }
.lq-wave.w2 { opacity: 0.22; animation: lq-flowR 16s linear infinite; }
.lq-wave.w3 { opacity: 0.42; animation: lq-flowL 8s linear infinite; }
@keyframes lq-flowL { to { transform: translateX(-360px); } }
@keyframes lq-flowR { to { transform: translateX(360px); } }

.lq-bubble { fill: var(--accent-2); transform-box: fill-box; transform-origin: center; opacity: 0; animation: lq-rise 4.5s ease-in infinite; }
@keyframes lq-rise {
  0%   { transform: translateY(0); opacity: 0; }
  14%  { opacity: 0.55; }
  82%  { opacity: 0.4; }
  100% { transform: translateY(-118px); opacity: 0; }
}

/* hero key figures */
.hero-figs {
  margin-top: clamp(48px, 5.95vw, 80px);
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.fig {
  padding: 24px 24px;
  border-right: 1px solid var(--line-soft);
}
.fig:first-child { padding-left: 0; }
.fig:last-child { border-right: none; padding-right: 0; }
.fig .fig-val {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(24px, 2.8vw, 38px);
  letter-spacing: -0.02em;
  line-height: 1;
  display: flex;
  align-items: baseline;
  gap: 2px;
}
.fig .fig-val .unit { font-size: 0.5em; color: var(--muted); font-family: var(--font-mono); }
.fig .fig-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--faint);
  margin-top: 10px;
}

/* ---------- ticker ---------- */
.ticker {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--cream-2);
  overflow: hidden;
  position: relative;
  z-index: 2;
}
.ticker .track {
  display: flex;
  gap: 0;
  width: max-content;
  animation: scroll-x 38s linear infinite;
}
.ticker:hover .track { animation-play-state: paused; }
.ticker .item {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
  padding: 12px 0;
  display: flex;
  align-items: center;
}
.ticker .item::after {
  content: "／";
  color: var(--accent);
  margin: 0 32px;
  opacity: 0.6;
}
@keyframes scroll-x { to { transform: translateX(-50%); } }

/* ===========================================================
   STRATEGIES
   =========================================================== */
.strategies { padding: var(--section-y) 0; }
.strat-list {
  border-top: 1px solid var(--line);
}
.strat-row {
  display: grid;
  grid-template-columns: 64px 1.1fr 1.6fr auto;
  gap: clamp(12px, 2.55vw, 40px);
  align-items: center;
  padding: clamp(24px, 2.89vw, 32px) 0;
  border-bottom: 1px solid var(--line);
  position: relative;
  transition: padding-left 0.5s var(--ease);
}
.strat-row::before {
  content: "";
  position: absolute;
  left: -100vw; right: 100%;
  top: 0; bottom: 0;
  background: var(--paper);
  z-index: -1;
  transition: right 0.55s var(--ease);
  pointer-events: none;
}
.strat-row:hover { padding-left: 20px; }
.strat-row:hover::before { right: -100vw; }
.strat-row .idx {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--faint);
  letter-spacing: 0.05em;
  transition: color 0.4s;
}
.strat-row:hover .idx { color: var(--accent); }
.strat-row h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(19px, 1.8vw, 24px);
  letter-spacing: -0.015em;
  line-height: 1.08;
}
.strat-row .desc { color: var(--muted); font-size: 13px; max-width: 50ch; }
.strat-meta {
  display: flex;
  align-items: center;
  gap: 20px;
  justify-self: end;
}
.strat-meta .tag {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  border: 1px solid var(--line);
  padding: 6px 10px;
  border-radius: 2px;
  white-space: nowrap;
  transition: border-color 0.4s, background 0.4s;
}
.strat-row:hover .strat-meta .tag { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, transparent); }
/* mini sparkline */
.spark { width: 96px; height: 38px; flex: none; }
.spark path.line { fill: none; stroke: var(--accent); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 240; stroke-dashoffset: 240; transition: stroke-dashoffset 1.2s var(--ease-out); }
.strat-row.in-view .spark path.line { stroke-dashoffset: 0; }
.spark path.area { fill: var(--accent); opacity: 0; transition: opacity 0.6s; }
.strat-row:hover .spark path.area { opacity: 0.08; }

/* ===========================================================
   ALLOCATION — centerpiece
   =========================================================== */
.allocation {
  padding: var(--section-y) 0;
  background: var(--cream-2);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.alloc-grid {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: clamp(32px, 5.1vw, 80px);
  align-items: start;
}
.alloc-aside .total {
  margin-top: 24px;
  border-top: 1px solid var(--line);
  padding-top: 24px;
}
.alloc-aside .total .t-val {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(36px, 5.2vw, 60px);
  letter-spacing: -0.03em;
  line-height: 1;
  display: flex; align-items: baseline; gap: 4px;
}
.alloc-aside .total .t-val .unit { font-family: var(--font-mono); font-size: 0.34em; color: var(--muted); }
.alloc-aside .total .t-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
  margin-top: 12px;
}
.toggle {
  display: inline-flex;
  border: 1px solid var(--line);
  border-radius: 3px;
  padding: 2px;
  margin-top: 24px;
  background: var(--paper);
  gap: 2px;
}
.toggle button {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: none;
  background: transparent;
  color: var(--muted);
  padding: 8px 12px;
  border-radius: 2px;
  transition: color 0.3s, background 0.3s;
}
.toggle button.active { background: var(--accent); color: var(--paper); }

/* bars */
.bars { display: flex; flex-direction: column; }
.bar-row {
  padding: 12px 0;
  border-top: 1px solid var(--line);
  cursor: default;
  transition: opacity 0.4s var(--ease);
}
.bars:last-child { border-bottom: 1px solid var(--line); }
.bars.dim .bar-row:not(.hot) { opacity: 0.32; }
.bar-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.bar-head .bn {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(15px, 1.4vw, 18px);
  letter-spacing: -0.01em;
  display: flex; align-items: center; gap: 10px;
  min-width: 0;
}
.bar-head .bn .swatch { width: 11px; height: 11px; border-radius: 2px; flex: none; }
.bar-head .bn .bn-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bar-head .pct {
  font-family: var(--font-mono);
  font-size: clamp(15px, 1.5vw, 19px);
  letter-spacing: -0.02em;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  flex: none;
}
.bar-track {
  height: 12px;
  background: color-mix(in srgb, var(--ink) 5%, transparent);
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.bar-fill {
  position: absolute;
  inset: 0 100% 0 0;
  border-radius: 2px;
  transition: right 1.15s var(--ease-out);
  transition-delay: calc(var(--i, 0) * 110ms);
}
.bar-fill::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.22));
}
.bar-detail {
  font-size: 12px;
  color: var(--muted);
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.45s var(--ease), opacity 0.4s, margin 0.4s;
  margin-top: 0;
  max-width: 60ch;
}
.bar-detail .bd-tag {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  margin-right: 8px;
}
.bar-row:hover .bar-detail { max-height: 70px; opacity: 1; margin-top: 10px; }

/* ===========================================================
   PERFORMANCE
   =========================================================== */
.performance { padding: var(--section-y) 0; }
.perf-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--line);
  border-radius: 3px;
  overflow: hidden;
  background: var(--paper);
  margin-bottom: clamp(40px, 4.25vw, 56px);
}
.perf-metrics .m {
  padding: 24px clamp(16px, 2.04vw, 32px);
  border-right: 1px solid var(--line-soft);
}
.perf-metrics .m:last-child { border-right: none; }
.perf-metrics .m .mv {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(24px, 2.8vw, 38px);
  letter-spacing: -0.02em;
  line-height: 1;
}
.perf-metrics .m .mv.pos { color: var(--accent); }
.perf-metrics .m .ml {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--faint);
  margin-top: 12px;
}
.perf-body {
  display: grid;
  grid-template-columns: 1.25fr 0.9fr;
  gap: clamp(32px, 4.25vw, 64px);
  align-items: start;
}
/* chart */
.chart-wrap {
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--paper);
  padding: 24px 24px 16px;
}
.chart-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
  gap: 12px;
}
.chart-top .ct-title { font-family: var(--font-display); font-weight: 500; font-size: 17px; }
.chart-legend { display: flex; gap: 16px; }
.chart-legend span {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--muted);
  display: inline-flex; align-items: center; gap: 6px;
}
.chart-legend span i { width: 14px; height: 2px; display: inline-block; }
.chart { position: relative; }
.chart svg { width: 100%; height: auto; display: block; overflow: visible; }
.chart .cursor { opacity: 0; transition: opacity 0.2s; pointer-events: none; }
.chart .cur-line { stroke: var(--ink); stroke-width: 1; stroke-dasharray: 3 3; opacity: 0.35; }
.chart .cur-dot { fill: var(--paper); stroke: var(--accent); stroke-width: 2.2; }
.chart-tip {
  position: absolute;
  top: 0; left: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s, left 0.12s var(--ease-out), top 0.12s var(--ease-out);
  background: var(--ink);
  color: var(--cream);
  border-radius: 3px;
  padding: 6px 10px;
  display: flex;
  align-items: baseline;
  gap: 8px;
  white-space: nowrap;
  box-shadow: 0 10px 26px -12px rgba(22,22,15,0.5);
}
.chart-tip .tt-m { font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #B9B6A8; }
.chart-tip .tt-v { font-family: var(--font-mono); font-size: 13px; font-weight: 700; }
.chart-tip .tt-r { font-family: var(--font-mono); font-size: 10px; }
.chart-tip .tt-r.pos { color: #7FB7D2; }
.chart-tip .tt-r.neg { color: #E0A075; }
.chart .grid-line { stroke: var(--line-soft); stroke-width: 1; }
.chart .axis-label { font-family: var(--font-mono); font-size: 9px; fill: var(--faint); letter-spacing: 0.05em; }
.chart .fund-area { fill: url(#fundGrad); opacity: 0; transition: opacity 1s ease 0.5s; }
.chart .fund-line { fill: none; stroke: var(--accent); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 1400; stroke-dashoffset: 1400; transition: stroke-dashoffset 1.8s var(--ease-out); }
.chart .bench-line { fill: none; stroke: var(--faint); stroke-width: 1.6; stroke-dasharray: 4 4; opacity: 0; transition: opacity 0.8s ease 0.9s; }
.chart.in-view .fund-line { stroke-dashoffset: 0; }
.chart.in-view .fund-area { opacity: 1; }
.chart.in-view .bench-line { opacity: 1; }

/* table */
.perf-table { width: 100%; border-collapse: collapse; }
.perf-table caption {
  text-align: left;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 17px;
  margin-bottom: 12px;
}
.perf-table th {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--faint);
  font-weight: 400;
  text-align: right;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--line);
}
.perf-table th:first-child { text-align: left; }
.perf-table td {
  font-family: var(--font-mono);
  font-size: 13px;
  text-align: right;
  padding: 12px 0;
  border-bottom: 1px solid var(--line-soft);
  font-variant-numeric: tabular-nums;
}
.perf-table td:first-child { text-align: left; color: var(--ink); }
.perf-table td.pos { color: var(--accent-2); }
.perf-table td.neg { color: var(--signal); }
.perf-table tr:hover td { background: var(--paper); }
/* expandable year rows */
.perf-table tr.yr { cursor: pointer; }
.perf-table tr.yr .chev {
  display: inline-block;
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1;
  margin-right: 8px;
  transition: transform 0.3s var(--ease);
}
.perf-table tr.yr[aria-expanded="true"] .chev { transform: rotate(90deg); }
.perf-table tr.yr[aria-expanded="true"] td { background: var(--paper); }
.perf-table tr.mo td {
  font-size: 11px;
  color: var(--muted);
  padding: 8px 0;
  background: var(--paper);
}
.perf-table tr.mo td:first-child { padding-left: 24px; color: var(--muted); }
.perf-table tr.mo td.pos { color: var(--accent-2); }
.perf-table tr.mo td.neg { color: var(--signal); }
@media (prefers-reduced-motion: no-preference) {
  .perf-table tr.mo:not([hidden]) td { animation: mo-in 0.35s var(--ease-out) backwards; }
  @keyframes mo-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
}

/* ===========================================================
   ABOUT / PHILOSOPHY
   =========================================================== */
.about {
  padding: var(--section-y) 0;
  background: var(--ink);
  color: var(--cream);
}
.about .eyebrow { color: var(--t5); }
.about .eyebrow::before { background: var(--t5); }
.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5.1vw, 80px);
  align-items: start;
}
.about .quote {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(24px, 3vw, 38px);
  line-height: 1.14;
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.about .quote em { font-style: italic; color: var(--t4); }
.about .principles { display: flex; flex-direction: column; }
.principle {
  border-top: 1px solid rgba(245,242,235,0.16);
  padding: 20px 0;
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 16px;
}
.principle:last-child { border-bottom: 1px solid rgba(245,242,235,0.16); }
.principle .pn { font-family: var(--font-mono); font-size: 11px; color: var(--t5); }
.principle h4 { font-family: var(--font-display); font-weight: 500; font-size: 17px; margin-bottom: 6px; letter-spacing: -0.01em; }
.principle p { color: #B9B6A8; font-size: 13px; max-width: 44ch; }

/* ===========================================================
   CONTACT
   =========================================================== */
.contact { padding: var(--section-y) 0; }
.contact-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(32px, 5.1vw, 80px);
  align-items: start;
}
.contact h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--fs-h2);
  line-height: 1.0;
  letter-spacing: -0.025em;
  text-wrap: balance;
}
.contact .lede { color: var(--muted); margin-top: 20px; max-width: 40ch; }
.contact-meta { margin-top: 32px; display: flex; flex-direction: column; gap: 16px; }
.contact-meta .cm {
  display: grid; grid-template-columns: 90px 1fr; gap: 12px; align-items: baseline;
  border-top: 1px solid var(--line); padding-top: 12px;
}
.contact-meta .cm .k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--faint); }
.contact-meta .cm .v { font-size: 13px; }

form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 20px; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field.full { grid-column: 1 / -1; }
.field label { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.field input, .field select, .field textarea {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 2px;
  padding: 12px 12px;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.field textarea { resize: vertical; min-height: 96px; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);
}
.field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236E6C5F' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 32px; }
form .submit-row { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
form .note { font-family: var(--font-mono); font-size: 10px; color: var(--faint); letter-spacing: 0.04em; }
.form-success {
  grid-column: 1/-1;
  display: none;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--accent);
  border: 1px solid var(--accent);
  background: color-mix(in srgb, var(--accent) 7%, transparent);
  padding: 12px 16px;
  border-radius: 3px;
}
.form-success.show { display: flex; }

/* ===========================================================
   FOOTER
   =========================================================== */
.footer {
  border-top: 1px solid var(--line);
  padding: clamp(40px, 5.1vw, 64px) 0 32px;
  background: var(--cream-2);
}
.footer-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 24px;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--line);
}
.footer .brand { margin-bottom: 12px; }
.footer-col h5 { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--faint); margin-bottom: 16px; font-weight: 400; }
.footer-col a { display: block; font-size: 13px; color: var(--ink-soft); padding: 4px 0; transition: color 0.25s, padding-left 0.3s; }
.footer-col a:hover { color: var(--accent); padding-left: 4px; }
.footer .tagline { color: var(--muted); font-size: 13px; max-width: 32ch; }
.footer-bottom {
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.disclaimer { color: var(--faint); font-size: 11px; line-height: 1.6; max-width: 88ch; }
.footer-bottom .copy { font-family: var(--font-mono); font-size: 10px; color: var(--faint); letter-spacing: 0.06em; white-space: nowrap; }

/* ===========================================================
   RESPONSIVE
   =========================================================== */
@media (max-width: 1080px) {
  .strat-row { grid-template-columns: 48px 1fr auto; }
  .strat-row .desc { display: none; }
}
@media (max-width: 920px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-viz { display: none; }
  .alloc-grid, .perf-body, .about-grid, .contact-grid { grid-template-columns: 1fr; }
  .perf-body { gap: 40px; }
}
@media (max-width: 720px) {
  body { font-size: 15px; }
  .nav-links { display: none; }
  .hero-figs { grid-template-columns: 1fr 1fr; }
  .fig { border-right: none; padding-right: 0; padding-left: 24px; }
  .fig:nth-child(odd) { border-right: 1px solid var(--line-soft); padding-right: 20px; padding-left: 0; }
  .perf-metrics { grid-template-columns: 1fr 1fr; }
  .perf-metrics .m:nth-child(2) { border-right: none; }
  .perf-metrics .m:nth-child(1), .perf-metrics .m:nth-child(2) { border-bottom: 1px solid var(--line-soft); }
  form { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-col.about-foot { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .hero-figs { grid-template-columns: 1fr; }
  .fig { border-right: none !important; padding-right: 0 !important; padding-left: 0 !important; border-bottom: 1px solid var(--line-soft); }
  .strat-meta .tag { display: none; }
}


/* ===========================================================
   FOOTER — legal links
   =========================================================== */
.footer-bottom .footer-legal {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}
.footer-bottom .footer-legal a {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  transition: color 0.25s;
}
.footer-bottom .footer-legal a:hover { color: var(--accent); }

/* ===========================================================
   LEGAL PAGES (privacy / terms)
   =========================================================== */
.legal-main {
  padding-top: calc(var(--nav-h) + clamp(40px, 6vw, 72px));
  padding-bottom: clamp(64px, 9vw, 120px);
  position: relative;
  z-index: 2;
}
.legal-head {
  border-bottom: 1px solid var(--line);
  padding-bottom: 32px;
  margin-bottom: clamp(32px, 5vw, 48px);
}
.legal-head h1 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(32px, 4vw, 50px);
  letter-spacing: -0.02em;
  line-height: 1.04;
}
.legal-head .updated {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--faint);
  margin-top: 16px;
}
.legal-body { max-width: 74ch; }
.legal-body .intro { font-size: 17px; color: var(--ink-soft); margin-bottom: 8px; }
.legal-body h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(19px, 1.8vw, 24px);
  letter-spacing: -0.01em;
  line-height: 1.2;
  margin: 40px 0 12px;
}
.legal-body h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 17px;
  margin: 24px 0 8px;
}
.legal-body p, .legal-body li { color: var(--ink-soft); font-size: 15px; line-height: 1.65; }
.legal-body p { margin-bottom: 14px; }
.legal-body ul { margin: 0 0 16px; padding-left: 20px; }
.legal-body li { margin-bottom: 8px; }
.legal-body a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.legal-body strong { color: var(--ink); font-weight: 600; }
.legal-body .legal-note {
  margin-top: 48px; padding: 20px 24px;
  border: 1px solid var(--line); border-radius: 3px; background: var(--paper);
  font-size: 13px; color: var(--muted);
}
.legal-body .legal-note a { color: var(--accent); }

.legal-head .eyebrow { margin-bottom: 16px; }
