/* latin-ext */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/fonts/aFTR7PB1QTsUX8KYvrGyEY2tbZX9.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: 'DM Mono';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/fonts/aFTR7PB1QTsUX8KYvrGyEYOtbQ.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;
}
/* latin-ext */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/aFTU7PB1QTsUX8KYthSQBLyM.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: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/aFTU7PB1QTsUX8KYthqQBA.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;
}
/* latin-ext */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/aFTR7PB1QTsUX8KYvumzEY2tbZX9.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: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/aFTR7PB1QTsUX8KYvumzEYOtbQ.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: 'Fraunces';
  font-style: italic;
  font-weight: 200;
  font-display: swap;
  src: url("assets/fonts/6NU58FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChjdfeQ_5Y.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: 'Fraunces';
  font-style: italic;
  font-weight: 200;
  font-display: swap;
  src: url("assets/fonts/6NU58FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChjdPeQ_5Y.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: 'Fraunces';
  font-style: italic;
  font-weight: 200;
  font-display: swap;
  src: url("assets/fonts/6NU58FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChjeveQ.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: 'Fraunces';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url("assets/fonts/6NU58FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChjdfeQ_5Y.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: 'Fraunces';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url("assets/fonts/6NU58FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChjdPeQ_5Y.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: 'Fraunces';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url("assets/fonts/6NU58FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChjeveQ.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: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/6NU58FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChjdfeQ_5Y.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: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/6NU58FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChjdPeQ_5Y.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: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/6NU58FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChjeveQ.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: 'Fraunces';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCBTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.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: 'Fraunces';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCBTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.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: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCBTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.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: 300;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggqxSuXd.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: 300;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggOxSuXd.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: 300;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggSxSuXd.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: 300;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggixSuXd.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: 300;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggmxSuXd.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: 300;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggexSg.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggqxSuXd.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggOxSuXd.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggSxSuXd.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggixSuXd.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggmxSuXd.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggexSg.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggqxSuXd.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggOxSuXd.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggSxSuXd.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggixSuXd.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggmxSuXd.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggexSg.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggqxSuXd.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggOxSuXd.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggSxSuXd.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggixSuXd.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggmxSuXd.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/xn7gYHE41ni1AdIRggexSg.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;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:        #0C0B0A;
  --fg:        #EDEAE4;
  --card:      #141311;
  --muted:     #7A7570;
  --accent:    #BFA880;
  --border:    rgba(237,234,228,0.08);
  --font-display: "Fraunces", Georgia, serif;
  --font-sans:    "Manrope", system-ui, sans-serif;
  --font-mono:    "DM Mono", monospace;
}

html { scroll-behavior: smooth; font-size: 16px; }
body { background: var(--bg); color: var(--fg); font-family: var(--font-sans); -webkit-font-smoothing: antialiased; overflow-x: hidden; }

/* ── Scrollbar ── */
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--border); }

/* ── NAV ── */
#site-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  height: 64px; display: flex; align-items: center;
  transition: background 0.4s, border-bottom 0.4s;
  padding: 0 48px;
}
#site-nav.scrolled {
  background: rgba(12,11,10,0.92);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
}
.nav-inner { max-width: 1280px; width: 100%; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; }
.nav-logo { font-family: var(--font-display); font-size: 14px; font-weight: 300; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg); text-decoration: none; transition: color 0.2s; }
.nav-logo:hover { color: var(--accent); }
.nav-links { display: flex; gap: 32px; }
.nav-links a { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-decoration: none; transition: color 0.2s; }
.nav-links a:hover { color: var(--fg); }
.nav-hamburger { display: none; background: none; border: none; cursor: pointer; color: var(--muted); }
.nav-hamburger svg { display: block; }
.mobile-menu { display: none; position: fixed; top: 64px; left: 0; right: 0; background: var(--bg); border-bottom: 1px solid var(--border); padding: 24px 48px; flex-direction: column; gap: 20px; z-index: 99; }
.mobile-menu.open { display: flex; }
.mobile-menu a { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-decoration: none; }

/* ── SECTION WRAPPER ── */
.section-inner { max-width: 1280px; margin: 0 auto; padding: 0 48px; }
section { border-top: 1px solid var(--border); }
section:first-of-type { border-top: none; }

/* ── HERO ── */
#hero {
  min-height: 80vh; display: flex; align-items: center;
  padding-bottom: 48px; padding-top: 96px; border-top: none;
}
.hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; width: 100%; }
.hero-text { display: flex; flex-direction: column; gap: 16px; }
.hero-eyebrow { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--accent); }
.hero-name { font-family: var(--font-display); font-size: clamp(68px, 9.5vw, 128px); font-weight: 300; line-height: 0.88; letter-spacing: -0.02em; color: var(--fg); }
.hero-rule { width: 40px; height: 1px; background: rgba(191,168,128,0.7); }
.hero-sub { font-size: 14px; color: var(--muted); line-height: 1.7; max-width: 360px; }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 4px; }
.btn-primary { display: inline-flex; align-items: center; gap: 8px; background: var(--fg); color: var(--bg); padding: 10px 20px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; transition: background 0.2s, color 0.2s; }
.btn-primary:hover { background: var(--accent); }
.btn-outline { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--border); color: var(--muted); padding: 10px 20px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; transition: color 0.2s, border-color 0.2s; }
.btn-outline:hover { color: var(--fg); border-color: rgba(237,234,228,0.3); }
.hero-scroll { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); text-decoration: none; margin-top: 32px; transition: color 0.2s; }
.hero-scroll:hover { color: var(--fg); }
.hero-scroll svg { animation: bounce 2s infinite; }
@keyframes bounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(4px)} }

/* Photo frame */
.hero-photo-wrap { display: flex; justify-content: flex-end; }
.hero-photo-frame { position: relative; width: 100%; max-width: 400px; }
.hero-photo-frame::after {
  content: ""; position: absolute;
  top: 16px; left: 16px; right: -16px; bottom: -16px;
  border: 1px solid rgba(191,168,128,0.2); pointer-events: none;
}
.hero-photo-inner { position: relative; overflow: hidden; aspect-ratio: 3/4; background: var(--card); }
.hero-photo-inner img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.hero-photo-inner::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(12,11,10,0.5) 0%, transparent 50%);
  pointer-events: none;
}

/* ── MISSION ── */
#mission { padding: 64px 0; }
.mission-grid { display: grid; grid-template-columns: 180px 1fr; gap: 48px; }
.section-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--muted); }
.mission-body { display: flex; flex-direction: column; gap: 20px; }
.mission-quote { font-family: var(--font-display); font-size: clamp(26px, 3.8vw, 50px); font-weight: 300; font-style: italic; line-height: 1.15; letter-spacing: -0.01em; color: var(--fg); }
.mission-text { font-size: 14px; color: var(--muted); line-height: 1.8; max-width: 720px; }

/* ── PRODUCTS ── */
#products { padding: 64px 0; }
.section-header { margin-bottom: 32px; }
.section-title { font-family: var(--font-display); font-size: clamp(32px, 4.5vw, 56px); font-weight: 300; line-height: 1.1; color: var(--fg); margin-top: 12px; }
.product-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--border); }
.product-card { background: var(--bg); padding: 32px; display: flex; flex-direction: column; gap: 16px; cursor: pointer; transition: background 0.25s; }
.product-card:hover { background: var(--card); }
.card-top { display: flex; align-items: flex-start; justify-content: space-between; }
.card-tag { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); }
.card-arrow { color: var(--muted); transition: color 0.2s; flex-shrink: 0; }
.product-card:hover .card-arrow { color: var(--accent); }
.card-title { font-family: var(--font-display); font-size: clamp(24px, 2.5vw, 34px); font-weight: 300; line-height: 1.25; color: var(--fg); }
.card-desc { font-size: 13px; color: var(--muted); line-height: 1.8; }
.card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.tech-tag { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; border: 1px solid var(--border); padding: 4px 10px; color: var(--muted); }
.card-date { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-top: 4px; }

/* ── WORK ── */
#work { padding: 64px 0; }
.work-list { display: flex; flex-direction: column; }
.work-row { display: grid; grid-template-columns: 160px 1fr; gap: 32px; padding: 24px 0; border-top: 1px solid var(--border); }
.work-row:last-child { border-bottom: 1px solid var(--border); }
.work-meta { display: flex; flex-direction: column; gap: 4px; padding-top: 2px; }
.work-year { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); }
.work-loc { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.work-content { display: flex; flex-direction: column; gap: 6px; }
.work-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.work-role { font-size: 15px; font-weight: 500; color: var(--fg); }
.work-company { font-size: 15px; color: var(--muted); }
.work-arrow { color: transparent; transition: color 0.2s; flex-shrink: 0; margin-top: 2px; }
.work-row:hover .work-arrow { color: var(--accent); }
.work-desc { font-size: 13px; color: var(--muted); line-height: 1.8; max-width: 720px; }

/* ── WRITING ── */
#writing { padding: 64px 0; }
.writing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border); }
.article-card { background: var(--bg); padding: 24px; display: flex; flex-direction: column; gap: 16px; cursor: pointer; transition: background 0.25s; }
.article-card:hover { background: var(--card); }
.article-tag { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); }
.article-title { font-family: var(--font-display); font-size: 20px; font-weight: 300; line-height: 1.3; color: var(--fg); flex: 1; transition: opacity 0.2s; }
.article-card:hover .article-title { opacity: 0.75; }
.article-excerpt { font-size: 13px; color: var(--muted); line-height: 1.8; }
.article-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 16px; border-top: 1px solid var(--border); margin-top: auto; }
.article-meta { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; color: var(--muted); }
.article-arrow { color: var(--muted); transition: color 0.2s; }
.article-card:hover .article-arrow { color: var(--accent); }

/* ── ABOUT ── */
#about { padding: 64px 0; }
.about-top { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.about-photo-wrap { position: sticky; top: 96px; max-width: 480px; }
.about-photo-wrap::before {
  content: ""; position: absolute;
  top: -16px; left: -16px; right: 16px; bottom: 16px;
  border: 1px solid var(--border); pointer-events: none; z-index: 0;
}
.about-photo-inner { position: relative; overflow: hidden; aspect-ratio: 3/4; background: var(--card); z-index: 1; }
.about-photo-inner img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; filter: grayscale(1); transition: filter 0.7s; }
.about-photo-inner:hover img { filter: grayscale(0); }
.about-body { display: flex; flex-direction: column; gap: 20px; }
.about-title { font-family: var(--font-display); font-size: clamp(28px, 3.8vw, 48px); font-weight: 300; line-height: 1.2; color: var(--fg); margin-top: 12px; }
.about-paras { display: flex; flex-direction: column; gap: 16px; }
.about-paras p { font-size: 13px; color: var(--muted); line-height: 1.8; }
.about-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--border); }
.stat-item { display: flex; flex-direction: column; gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--border); }
.stat-value { font-family: var(--font-display); font-size: clamp(26px, 3vw, 38px); font-weight: 300; color: var(--fg); }
.stat-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.about-skills { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--border); }
.skills-col-title { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
.skills-list { display: flex; flex-direction: column; gap: 10px; }
.skill-item { display: flex; align-items: center; gap: 10px; font-size: 13px; color: rgba(237,234,228,0.75); }
.skill-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }

/* ── CONTACT ── */
#contact { padding: 64px 0; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.contact-heading { font-family: var(--font-display); font-size: clamp(28px, 3.8vw, 48px); font-weight: 300; line-height: 1.2; color: var(--fg); margin-top: 12px; }
.contact-sub { font-size: 13px; color: var(--muted); line-height: 1.8; max-width: 320px; margin-top: 16px; }
.contact-links { display: flex; flex-direction: column; justify-content: flex-end; }
.contact-row { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; border-top: 1px solid var(--border); text-decoration: none; transition: border-color 0.2s; }
.contact-row:last-child { border-bottom: 1px solid var(--border); }
.contact-row:hover { border-color: rgba(191,168,128,0.4); }
.contact-row-left { display: flex; align-items: center; gap: 12px; }
.contact-icon { color: var(--accent); flex-shrink: 0; }
.contact-label { font-size: 14px; color: var(--fg); }
.contact-arrow { color: var(--muted); transition: color 0.2s; }
.contact-row:hover .contact-arrow { color: var(--accent); }
.contact-row-plain { display: flex; align-items: center; gap: 12px; padding: 16px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.contact-plain-label { font-size: 14px; color: var(--muted); }

/* ── FOOTER ── */
footer { border-top: 1px solid var(--border); }
.footer-inner { max-width: 1280px; margin: 0 auto; padding: 28px 48px; display: flex; align-items: center; justify-content: space-between; }
.footer-name { font-family: var(--font-display); font-size: 13px; font-weight: 300; color: rgba(237,234,228,0.55); }
.footer-copy { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }

/* ── FADE-IN ANIMATION ── */
.fade-up { opacity: 0; transform: translateY(28px); transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1), transform 0.7s cubic-bezier(0.22,1,0.36,1); }
.fade-up.visible { opacity: 1; transform: translateY(0); }

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  #site-nav { padding: 0 24px; }
  .section-inner { padding: 0 24px; }
  .hero-grid { grid-template-columns: 1fr; gap: 32px; }
  .hero-photo-wrap { justify-content: center; order: -1; }
  .hero-photo-frame { max-width: 320px; }
  .hero-photo-frame::after { right: -12px; bottom: -12px; }
  .mission-grid { grid-template-columns: 1fr; gap: 24px; }
  .product-grid { grid-template-columns: 1fr; }
  .writing-grid { grid-template-columns: 1fr; }
  .about-top { grid-template-columns: 1fr; gap: 32px; }
  .about-photo-wrap { position: relative; top: auto; max-width: 100%; }
  .contact-grid { grid-template-columns: 1fr; gap: 32px; }
  .work-row { grid-template-columns: 1fr; gap: 8px; }
  .mobile-menu { padding: 24px; }
  .footer-inner { padding: 24px; }
}
@media (max-width: 768px) {
  .nav-links { display: none; }
  .nav-hamburger { display: block; }
  section { padding-top: 48px; padding-bottom: 48px; }
  #hero { padding-top: 88px; padding-bottom: 40px; min-height: auto; }
  .about-skills { grid-template-columns: 1fr; }
}
@media (min-width: 769px) {
  .nav-hamburger { display: none; }
}