/* ============================================================
   NovAsia — shared site stylesheet
   Extracted from index.html (fonts + landing component CSS).
   Font paths are absolute (/assets/fonts/...) so this file works
   identically from any page depth (/, /en/, /projects/..., /blog/...).
   ============================================================ */

/* ---- Cormorant Garamond ---- */
/* cyrillic-ext */
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url("/assets/fonts/6f504a16.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: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url("/assets/fonts/15ffdd32.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* vietnamese */
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url("/assets/fonts/ea6ae947.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: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url("/assets/fonts/b701e64b.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: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url("/assets/fonts/e433f6f5.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: 'Cormorant Garamond'; font-style: italic; font-weight: 600; font-display: swap; src: url("/assets/fonts/6f504a16.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: 'Cormorant Garamond'; font-style: italic; font-weight: 600; font-display: swap; src: url("/assets/fonts/15ffdd32.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* vietnamese */
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 600; font-display: swap; src: url("/assets/fonts/ea6ae947.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: 'Cormorant Garamond'; font-style: italic; font-weight: 600; font-display: swap; src: url("/assets/fonts/b701e64b.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: 'Cormorant Garamond'; font-style: italic; font-weight: 600; font-display: swap; src: url("/assets/fonts/e433f6f5.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: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/4a5ca5fa.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: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/0e47c4b6.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* vietnamese */
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/26426bb4.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: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/2f3f541a.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: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/087778c2.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: 'Cormorant Garamond'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/4a5ca5fa.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: 'Cormorant Garamond'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/0e47c4b6.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* vietnamese */
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/26426bb4.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: 'Cormorant Garamond'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/2f3f541a.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: 'Cormorant Garamond'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/087778c2.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: 'Cormorant Garamond'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/4a5ca5fa.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: 'Cormorant Garamond'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/0e47c4b6.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* vietnamese */
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/26426bb4.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: 'Cormorant Garamond'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/2f3f541a.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: 'Cormorant Garamond'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/087778c2.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; }

/* ---- Inter ---- */
/* cyrillic-ext */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/a425f5ac.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: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/8f9657f9.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek-ext */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/60405f07.woff2") format('woff2'); unicode-range: U+1F00-1FFF; }
/* greek */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/d738e97d.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: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/e20369dc.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: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/428d8bbf.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: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/dc732831.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: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/a425f5ac.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: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/8f9657f9.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek-ext */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/60405f07.woff2") format('woff2'); unicode-range: U+1F00-1FFF; }
/* greek */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/d738e97d.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: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/e20369dc.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: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/428d8bbf.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: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/dc732831.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: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/a425f5ac.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: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/8f9657f9.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek-ext */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/60405f07.woff2") format('woff2'); unicode-range: U+1F00-1FFF; }
/* greek */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/d738e97d.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: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/e20369dc.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: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/428d8bbf.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: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/dc732831.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: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/a425f5ac.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: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/8f9657f9.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek-ext */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/60405f07.woff2") format('woff2'); unicode-range: U+1F00-1FFF; }
/* greek */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/d738e97d.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: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/e20369dc.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: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/428d8bbf.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: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/dc732831.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; }

/* ---- Manrope ---- */
/* cyrillic-ext */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/82bcecc8.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/f8e8bf7d.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/6b236ded.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/22165a32.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/d6e377d6.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/1ea05c71.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/82bcecc8.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/f8e8bf7d.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/6b236ded.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/22165a32.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/d6e377d6.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/1ea05c71.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/82bcecc8.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/f8e8bf7d.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/6b236ded.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/22165a32.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/d6e377d6.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/1ea05c71.woff2") format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* cyrillic-ext */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/82bcecc8.woff2") format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
/* cyrillic */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/f8e8bf7d.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/6b236ded.woff2") format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
/* vietnamese */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/22165a32.woff2") format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
/* latin-ext */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/d6e377d6.woff2") format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/1ea05c71.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; }

/* ---- Playfair Display ---- */
/* cyrillic */
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 500; font-display: swap; src: url("/assets/fonts/14193c33.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* vietnamese */
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 500; font-display: swap; src: url("/assets/fonts/94fa53d9.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: 'Playfair Display'; font-style: italic; font-weight: 500; font-display: swap; src: url("/assets/fonts/0cb6798d.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: 'Playfair Display'; font-style: italic; font-weight: 500; font-display: swap; src: url("/assets/fonts/af1139dc.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 */
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 600; font-display: swap; src: url("/assets/fonts/14193c33.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* vietnamese */
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 600; font-display: swap; src: url("/assets/fonts/94fa53d9.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: 'Playfair Display'; font-style: italic; font-weight: 600; font-display: swap; src: url("/assets/fonts/0cb6798d.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: 'Playfair Display'; font-style: italic; font-weight: 600; font-display: swap; src: url("/assets/fonts/af1139dc.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 */
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/5416680b.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* vietnamese */
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/cd0765da.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: 'Playfair Display'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/93c66c60.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: 'Playfair Display'; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/c4ced407.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 */
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/5416680b.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* vietnamese */
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/cd0765da.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: 'Playfair Display'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/93c66c60.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: 'Playfair Display'; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/c4ced407.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 */
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/5416680b.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* vietnamese */
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/cd0765da.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: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/93c66c60.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: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/c4ced407.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; }

/* ============================================================
   NovAsia — premium real-estate lead landing
   Dark emerald base + restrained gold. Mobile-first.
   ============================================================ */

:root{
  /* palette */
  --bg:        #0A1F1A;   /* deep emerald-black */
  --bg-2:      #0E2A24;   /* section rhythm */
  --bg-3:      #10302A;   /* lifted panels */
  --bg-sink:   #081813;   /* deepest */
  --gold:      #D4AF6A;
  --gold-soft: #C8A24B;
  --gold-dim:  #9C8350;
  --emerald:   #0E6B52;
  --emerald-l: #15876A;
  --text:      #F3F1EC;
  --text-2:    #A8A49C;
  --text-3:    #6F7570;
  --line:      rgba(212,175,106,.20);
  --line-soft: rgba(243,241,236,.08);

  /* type (swapped by [data-font]) */
  --font-head: 'Playfair Display', Georgia, serif;
  --font-body: 'Manrope', system-ui, sans-serif;

  --maxw: 1240px;
  --ease: cubic-bezier(.4,0,.2,1);
  --slow: .55s var(--ease);
}

[data-font="cormorant"]{
  --font-head: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Inter', system-ui, sans-serif;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.6;
  font-weight:400;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }

/* ---- shared rhythm ---- */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px; }
section{ position:relative; }
.sec-pad{ padding:96px 0; }
.alt{ background:var(--bg-2); }

.eyebrow{
  font-family:var(--font-body);
  font-size:12px;
  font-weight:600;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 22px;
  display:flex; align-items:center; gap:14px;
}
.eyebrow::before{ content:""; width:30px; height:1px; background:var(--gold); opacity:.7; }

h1,h2,h3{ font-family:var(--font-head); font-weight:600; letter-spacing:-.01em; line-height:1.08; margin:0; }
.h-section{ font-size:clamp(30px,5vw,52px); margin:0 0 18px; text-wrap:balance; }
.lede{ font-size:clamp(17px,2.1vw,20px); color:var(--text-2); max-width:60ch; line-height:1.55; }

/* gold hairline divider */
.hr-gold{ height:1px; background:linear-gradient(90deg,transparent,var(--line),transparent); border:0; margin:0; }

/* ---- buttons ---- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:17px 30px; border-radius:2px; border:1px solid transparent;
  font-size:15px; font-weight:600; letter-spacing:.02em;
  transition:transform var(--slow), background var(--slow), border-color var(--slow), color var(--slow);
}
.btn-primary{
  background:linear-gradient(180deg,var(--gold),var(--gold-soft));
  color:#1B130A;
  box-shadow:0 8px 30px -12px rgba(212,175,106,.55);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 14px 38px -12px rgba(212,175,106,.7); }
.btn-ghost{ background:transparent; border-color:var(--line); color:var(--text); }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }
.btn-block{ width:100%; }

.link-gold{
  display:inline-flex; align-items:center; gap:9px;
  color:var(--gold); font-weight:600; font-size:15px; letter-spacing:.01em;
  border-bottom:1px solid transparent; transition:border-color var(--slow);
}
.link-gold:hover{ border-color:var(--gold); }
.link-gold .arr{ transition:transform var(--slow); }
.link-gold:hover .arr{ transform:translateX(4px); }

/* ============================================================
   HEADER
   ============================================================ */
.site-head{
  position:fixed; top:0; left:0; right:0; z-index:60;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 24px;
  transition:background .4s var(--ease), padding .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.site-head.scrolled{
  background:rgba(8,24,19,.82);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border-bottom-color:var(--line-soft);
  padding:12px 24px;
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ height:46px; width:auto; transition:height .4s var(--ease); filter:drop-shadow(0 2px 8px rgba(0,0,0,.35)); }
.site-head.scrolled .brand img{ height:38px; }
.brand-txt{ display:flex; flex-direction:column; line-height:1; }
.brand-name{ font-family:var(--font-head); font-size:23px; font-weight:600; letter-spacing:.01em; }
.brand-name .gold{ color:var(--gold); }
.brand-desc{ font-size:10px; letter-spacing:.34em; text-transform:uppercase; color:var(--text-3); margin-top:5px; }
.head-cta{ display:flex; align-items:center; gap:18px; }
.lang-switch{ display:inline-flex; border:1px solid var(--line); border-radius:2px; overflow:hidden; }
.lang-switch button, .lang-switch a{ background:transparent; border:0; color:var(--text-2); font-family:var(--font-body); font-size:12.5px; font-weight:700; letter-spacing:.08em; padding:9px 12px; line-height:1; transition:background var(--slow), color var(--slow); text-decoration:none; display:inline-flex; align-items:center; }
.lang-switch button + button, .lang-switch a + a, .lang-switch button + a, .lang-switch a + button{ border-left:1px solid var(--line); }
.lang-switch button:hover, .lang-switch a:hover{ color:var(--gold); }
.lang-switch button.on, .lang-switch a.on{ background:linear-gradient(180deg,var(--gold),var(--gold-soft)); color:#1B130A; }
.head-tg{ display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:var(--text); padding:10px 18px; border:1px solid var(--line); border-radius:2px; transition:border-color var(--slow), color var(--slow); }
.head-tg:hover{ border-color:var(--gold); color:var(--gold); }
.head-tg .dot{ width:6px; height:6px; border-radius:50%; background:var(--emerald-l); box-shadow:0 0 0 3px rgba(21,135,106,.25); }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
/* photographic placeholder: emerald night + skyline bars + twinkle */
.hero-photo{
  position:absolute; inset:-6%;
  background-color:#0a201b;
  background-size:cover;
  background-position:50% 38%;
  background-repeat:no-repeat;
  animation:kenburns 32s ease-in-out infinite alternate;
}
@keyframes kenburns{
  from{ transform:scale(1) translate(0,0); }
  to{ transform:scale(1.12) translate(-2%,-1.5%); }
}
.skyline{ position:absolute; left:0; right:0; bottom:0; height:46%; opacity:.55; }
.hero-grain{ position:absolute; inset:0; opacity:.5; mix-blend-mode:screen;
  background-image:
    radial-gradient(1.5px 1.5px at 20% 60%, rgba(212,175,106,.9), transparent),
    radial-gradient(1.5px 1.5px at 38% 72%, rgba(243,241,236,.7), transparent),
    radial-gradient(1.5px 1.5px at 55% 64%, rgba(212,175,106,.8), transparent),
    radial-gradient(1.5px 1.5px at 68% 78%, rgba(243,241,236,.6), transparent),
    radial-gradient(1.5px 1.5px at 82% 66%, rgba(212,175,106,.9), transparent),
    radial-gradient(1.5px 1.5px at 12% 80%, rgba(212,175,106,.6), transparent),
    radial-gradient(1.5px 1.5px at 47% 84%, rgba(243,241,236,.7), transparent),
    radial-gradient(1.5px 1.5px at 74% 88%, rgba(212,175,106,.7), transparent);
  animation:twinkle 4.5s steps(1) infinite;
}
@keyframes twinkle{ 0%,100%{opacity:.5} 25%{opacity:.28} 50%{opacity:.62} 75%{opacity:.34} }
.hero-veil{ position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(8,24,19,.45) 0%, rgba(8,24,19,.32) 38%, rgba(8,24,19,.86) 100%),
             linear-gradient(90deg, rgba(8,24,19,.86) 0%, rgba(8,24,19,.45) 48%, rgba(8,24,19,.12) 100%); }
.ph-tag{ position:absolute; right:20px; bottom:108px; z-index:2;
  font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:11px; letter-spacing:.04em;
  color:rgba(243,241,236,.4); border:1px dashed rgba(243,241,236,.22); padding:6px 10px; border-radius:2px;
  background:rgba(8,24,19,.4); }

.hero-inner{ position:relative; z-index:3; width:100%; max-width:var(--maxw); margin:0 auto; padding:140px 24px 110px; }
.hero-content{ max-width:760px; }
.hero h1{ font-size:clamp(40px,7.2vw,82px); line-height:1.02; letter-spacing:-.02em; margin:0 0 26px; text-wrap:balance; }
.hero h1 .em{ color:var(--gold); font-style:italic; }
.hero-sub{ font-size:clamp(17px,2.3vw,22px); color:var(--text); opacity:.92; max-width:54ch; line-height:1.5; margin:0 0 40px; font-weight:400; }
.hero-sub b{ color:var(--gold); font-weight:600; }

.anchors{ display:flex; flex-wrap:wrap; gap:0; margin:0 0 42px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.anchor{ flex:1; min-width:140px; padding:22px 26px 20px; position:relative; }
.anchor + .anchor::before{ content:""; position:absolute; left:0; top:18%; bottom:18%; width:1px; background:var(--line); }
.anchor .num{ font-family:var(--font-head); font-size:clamp(34px,5vw,46px); font-weight:600; color:var(--gold); line-height:1; letter-spacing:-.01em; }
.anchor .num small{ font-size:.5em; color:var(--text-2); font-family:var(--font-body); font-weight:500; margin-left:4px; }
.anchor .cap{ font-size:13px; letter-spacing:.04em; color:var(--text-2); margin-top:10px; }

.hero-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:18px 26px; }
.hero-trust{ margin-top:30px; font-size:13.5px; color:var(--text-2); display:flex; align-items:center; gap:10px; max-width:48ch; }
.hero-trust svg{ flex:0 0 auto; color:var(--gold); }

.scroll-hint{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--text-3);
  font-size:11px; letter-spacing:.22em; text-transform:uppercase; }
.scroll-hint .ln{ width:1px; height:38px; background:linear-gradient(var(--gold),transparent); animation:drop 2.4s ease-in-out infinite; }
@keyframes drop{ 0%,100%{transform:scaleY(.4);transform-origin:top;opacity:.4} 50%{transform:scaleY(1);opacity:1} }

/* Hero variant B — editorial split */
[data-hero="b"] .hero-inner{ display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:60px; }
[data-hero="b"] .hero-content{ max-width:none; }
[data-hero="b"] .hero-aside{ position:relative; }
[data-hero="b"] .anchors{ display:none; }
[data-hero="b"] .anchors-stack{ display:flex; }
[data-hero="b"] .hero h1{ font-size:clamp(38px,5.6vw,70px); }
.anchors-stack{ display:none; flex-direction:column; gap:0; border:1px solid var(--line); border-radius:2px; background:rgba(8,24,19,.45); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.anchors-stack .as-row{ display:flex; align-items:baseline; justify-content:space-between; gap:18px; padding:26px 28px; }
.anchors-stack .as-row + .as-row{ border-top:1px solid var(--line); }
.anchors-stack .as-num{ font-family:var(--font-head); font-size:clamp(38px,4.4vw,54px); font-weight:600; color:var(--gold); line-height:1; }
.anchors-stack .as-cap{ font-size:13px; letter-spacing:.05em; color:var(--text-2); text-align:right; max-width:16ch; }
[data-hero="a"] .anchors-stack{ display:none; }
[data-hero="a"] .anchors{ display:flex; }
[data-hero="a"] .hero-aside{ display:none; }

/* ============================================================
   PROJECTS — expanding columns
   ============================================================ */
.projects-head{ text-align:center; max-width:760px; margin:0 auto 56px; }
.projects-head .eyebrow{ justify-content:center; }
.cols{ display:flex; gap:6px; height:620px; }
.col{
  position:relative; flex:1; min-width:0; overflow:hidden; border-radius:2px; cursor:pointer;
  transition:flex var(--slow), filter var(--slow);
  background:var(--bg-3);
}
.col-img{ position:absolute; inset:0; transition:transform var(--slow), filter var(--slow); }
.col-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .9s var(--ease); will-change:opacity; }
.col-photo.on{ opacity:1; }
.col-ph{ position:absolute; inset:0; }
.col-veil{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,24,19,.15) 0%, rgba(8,24,19,.4) 45%, rgba(8,24,19,.94) 100%); transition:background var(--slow); }
.col-num-mark{ position:absolute; top:24px; left:24px; font-family:var(--font-head); font-size:15px; color:var(--gold); letter-spacing:.08em; opacity:.85; }
.col-body{ position:absolute; left:0; right:0; bottom:0; padding:30px 28px 32px; z-index:2; }
.col-tag{ display:inline-block; font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); border:1px solid var(--line); padding:6px 12px; border-radius:2px; margin-bottom:18px; }
.col-name{ font-family:var(--font-head); font-size:clamp(24px,2.6vw,32px); font-weight:600; line-height:1.05; margin:0 0 6px; }
.col-anchor{ font-size:18px; color:var(--gold); font-weight:600; margin:0 0 4px; }
.col-reveal{ max-height:0; opacity:0; overflow:hidden; transition:max-height var(--slow), opacity var(--slow), margin var(--slow); }
.col-desc{ font-size:14.5px; color:var(--text-2); line-height:1.5; margin:14px 0 20px; max-width:42ch; }

/* desktop hover behaviour */
@media (hover:hover) and (min-width:901px){
  .cols:hover .col{ flex:.74; filter:brightness(.5) saturate(.85); }
  .cols .col:hover{ flex:1.85; filter:brightness(1.04); }
  .col:hover .col-img{ transform:none; }
  .col:hover .col-veil{ background:linear-gradient(180deg, rgba(8,24,19,.05) 0%, rgba(8,24,19,.3) 40%, rgba(8,24,19,.92) 100%); }
  .col:hover .col-reveal{ max-height:240px; opacity:1; }
}

/* mobile / tablet accordion */
@media (max-width:900px){
  .cols{ flex-direction:column; height:auto; gap:14px; }
  .col{ min-height:118px; transition:none; }
  .col.open{ min-height:430px; }
  .col-veil{ background:linear-gradient(180deg, rgba(8,24,19,.25) 0%, rgba(8,24,19,.55) 50%, rgba(8,24,19,.95) 100%); }
  .col.open .col-reveal{ max-height:300px; opacity:1; margin-top:2px; }
  .col-toggle{ position:absolute; top:22px; right:20px; z-index:3; width:34px; height:34px; border-radius:50%; border:1px solid var(--line); background:rgba(8,24,19,.5); color:var(--gold); display:flex; align-items:center; justify-content:center; font-size:20px; transition:transform .4s var(--ease); }
  .col.open .col-toggle{ transform:rotate(45deg); }
}
@media (min-width:901px){ .col-toggle{ display:none; } }

/* placeholder texture (shared) */
.ph{ background-color:#13302a;
  background-image:repeating-linear-gradient(135deg, rgba(212,175,106,.06) 0 2px, transparent 2px 12px),
                   radial-gradient(120% 120% at 50% 0%, rgba(14,107,82,.35), transparent 70%);
}
.ph-lbl{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:1;
  font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:11px; letter-spacing:.05em;
  color:rgba(243,241,236,.42); text-align:center; border:1px dashed rgba(243,241,236,.2);
  padding:7px 12px; border-radius:2px; white-space:nowrap; }

/* ============================================================
   WHY CAMBODIA — numbered grid
   ============================================================ */
.why-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft); }
.why-cell{ background:var(--bg); padding:42px 34px 40px; position:relative; transition:background var(--slow); }
.why-cell:hover{ background:var(--bg-3); }
.why-idx{ font-family:var(--font-head); font-size:15px; color:var(--gold); letter-spacing:.1em; margin-bottom:26px; display:flex; align-items:center; gap:12px; }
.why-idx::after{ content:""; flex:1; height:1px; background:var(--line); }
.why-cell h3{ font-size:22px; margin:0 0 12px; line-height:1.2; }
.why-cell p{ font-size:14.5px; color:var(--text-2); line-height:1.55; margin:0; }
.why-pain{ display:inline-block; margin-top:16px; font-size:12px; letter-spacing:.02em; color:var(--emerald-l); }
@media (max-width:900px){ .why-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .why-grid{ grid-template-columns:1fr; } }

/* atmospheric photo bands */
.why-photo, .quiz-photo{ position:relative; border-radius:3px; overflow:hidden; border:1px solid var(--line-soft); margin:0 0 40px; }
.why-photo{ height:clamp(260px,38vw,440px); }
.why-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.quiz-photo{ margin:0 0 40px; height:clamp(220px,30vw,360px); }
.quiz-photo img{ width:100%; height:calc(100% + 180px); margin-top:-90px; object-fit:cover; object-position:50% 42%; display:block; will-change:transform; }
.why-photo-cap{ position:absolute; z-index:2; left:0; right:0; bottom:0; padding:48px 38px 30px; background:linear-gradient(0deg, rgba(8,24,19,.92), rgba(8,24,19,.25) 60%, transparent); }
.why-photo-loc{ display:inline-flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:12px; }
.why-photo-loc::before{ content:""; width:26px; height:1px; background:var(--gold); opacity:.7; }
.why-photo-cap p{ font-family:var(--font-head); font-size:clamp(21px,2.7vw,32px); color:var(--text); margin:0; max-width:22ch; line-height:1.18; }
.quiz-photo-cap{ position:absolute; z-index:2; left:0; right:0; bottom:0; padding:42px 34px 26px; background:linear-gradient(0deg, rgba(8,24,19,.9), transparent); }
.quiz-photo-cap span{ font-family:var(--font-head); font-size:clamp(20px,2.4vw,28px); color:var(--text); }
@media (max-width:560px){ .why-photo-cap{ padding:34px 22px 22px; } .quiz-photo-cap{ padding:30px 22px 20px; } }

/* monument — cinematic reveal + slow Ken Burns drift + gold light-sweep
   (base state is fully visible so print/export are safe; motion is enhancement) */
.why-photo img{ transform:scale(1.04); will-change:transform; }
.why-photo.in img{ animation:monumentIn 1.25s var(--ease) .15s both, kenburns 24s ease-in-out 1.5s infinite alternate; }
@keyframes monumentIn{ from{ clip-path:inset(0 0 100% 0); transform:scale(1.13); } to{ clip-path:inset(0 0 0 0); transform:scale(1.05); } }
@keyframes kenburns{ from{ transform:scale(1.05) translate3d(0,0,0); } to{ transform:scale(1.12) translate3d(0,-2.5%,0); } }
.why-photo::after{ content:""; position:absolute; z-index:1; inset:0; pointer-events:none; background:linear-gradient(115deg, transparent 32%, rgba(247,231,191,.16) 47%, rgba(255,255,255,.06) 52%, transparent 68%); transform:translateX(-130%); }
.why-photo.in::after{ animation:goldsweep 7.5s ease-in-out 1.7s infinite; }
@keyframes goldsweep{ 0%{ transform:translateX(-130%); } 40%,100%{ transform:translateX(130%); } }

@media (prefers-reduced-motion:reduce){
  .why-photo img, .quiz-photo img{ transform:none !important; animation:none !important; }
  .why-photo::after{ animation:none !important; opacity:0; }
}

/* ============================================================
   CALCULATOR
   ============================================================ */
.calc{ border:1px solid var(--line); border-radius:3px; overflow:hidden; background:var(--bg-3); }
.calc-grid{ display:grid; grid-template-columns:1fr; gap:0; }
@media (min-width:860px){ .calc-grid{ grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); } }

.calc-in{ padding:46px 44px; border-bottom:1px solid var(--line-soft); position:relative; overflow:hidden; isolation:isolate; }
.calc-in::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background-image: linear-gradient(180deg, rgba(8,24,19,.84), rgba(8,24,19,.9)), var(--calc-bg, none);
  background-size: cover, cover;
  background-position: center, 50% 28%;
  background-repeat: no-repeat, no-repeat;
}
.calc-in.bg-swap::before{ animation: calcBgIn .5s var(--ease); }
@keyframes calcBgIn{ from{ opacity:0; } to{ opacity:1; } }
@media (prefers-reduced-motion:reduce){ .calc-in.bg-swap::before{ animation:none; } }
@media (min-width:860px){ .calc-in{ border-bottom:0; border-right:1px solid var(--line); } }
.calc-out{ padding:46px 44px; background:var(--bg-sink); display:flex; flex-direction:column; }
.calc-field{ margin-bottom:30px; }
.calc-field:last-child{ margin-bottom:0; }
.calc-label{ display:block; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--text-2); margin:0 0 14px; }

/* project picker */
.calc-projects{ display:grid; grid-template-columns:1fr; gap:8px; }
@media (min-width:430px){ .calc-projects{ grid-template-columns:repeat(3,1fr); } }
.calc-proj{ appearance:none; cursor:pointer; text-align:left; background:transparent; border:1px solid var(--line); border-radius:2px; color:var(--text-2); padding:14px 13px; font-size:13.5px; font-weight:600; line-height:1.25; transition:border-color var(--slow), color var(--slow), background var(--slow); }
.calc-proj small{ display:block; font-size:10.5px; font-weight:600; letter-spacing:.06em; color:var(--text-3); margin-top:5px; text-transform:uppercase; }
.calc-proj:hover{ border-color:var(--gold); color:var(--text); }
.calc-proj.on{ border-color:var(--gold); color:var(--text); background:linear-gradient(180deg,rgba(212,175,106,.14),rgba(212,175,106,.04)); }
.calc-proj.on small{ color:var(--gold); }

/* unit chips */
.calc-units{ display:flex; flex-wrap:wrap; gap:8px; }
.calc-chip{ cursor:pointer; background:transparent; border:1px solid var(--line); color:var(--text-2); border-radius:999px; padding:10px 16px; font-size:12.5px; font-weight:600; transition:all var(--slow); }
.calc-chip:hover{ border-color:var(--gold); color:var(--text); }
.calc-chip.on{ background:rgba(212,175,106,.14); border-color:var(--gold); color:var(--gold); }

/* amount */
.calc-amount{ display:flex; align-items:baseline; gap:6px; }
.calc-amount .cur{ font-family:var(--font-head); font-size:26px; color:var(--text-2); }
.calc-amount input{ width:100%; min-width:0; background:transparent; border:0; border-bottom:1px solid var(--line); color:var(--text); font-family:var(--font-head); font-size:42px; font-weight:600; padding:6px 0; outline:none; letter-spacing:-.01em; }
.calc-amount input:focus{ border-color:var(--gold); }
.calc-slider{ -webkit-appearance:none; appearance:none; width:100%; height:2px; background:linear-gradient(90deg,var(--gold) var(--fill,30%),var(--line) var(--fill,30%)); margin:24px 0 4px; outline:none; cursor:pointer; }
.calc-slider::-webkit-slider-thumb{ -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:var(--gold); cursor:pointer; box-shadow:0 0 0 5px rgba(212,175,106,.18); }
.calc-slider::-moz-range-thumb{ width:18px; height:18px; border:0; border-radius:50%; background:var(--gold); cursor:pointer; }
.calc-minmax{ display:flex; justify-content:space-between; font-size:12px; color:var(--text-3); }

/* results — stat tag */
.calc-stattag{ align-self:flex-start; display:inline-flex; align-items:center; gap:8px; font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); border:1px solid var(--line); border-radius:999px; padding:7px 13px; margin-bottom:22px; }
.calc-stattag .d{ width:6px; height:6px; border-radius:50%; background:var(--gold); box-shadow:0 0 8px var(--gold); }

.res-row{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding:15px 0; border-bottom:1px solid var(--line-soft); }
.res-row:last-of-type{ border-bottom:0; }
.res-row .k{ font-size:14px; color:var(--text-2); line-height:1.35; max-width:60%; }
.res-row .k small{ display:block; color:var(--text-3); font-size:11px; margin-top:3px; }
.res-row .v{ font-family:var(--font-head); font-size:24px; color:var(--text); font-weight:600; white-space:nowrap; }
.res-rows{ margin-bottom:22px; }

/* hero number */
.calc-hero{ text-align:center; padding:24px 18px 22px; margin:6px 0 18px; border-radius:3px; border:1px solid var(--line); background:radial-gradient(120% 120% at 50% 0%, rgba(212,175,106,.12), rgba(212,175,106,0) 70%), var(--bg-3); }
.calc-hero .cap{ font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--text-2); margin-bottom:8px; }
.calc-hero .big{ font-family:var(--font-head); font-weight:700; font-size:clamp(60px,13vw,104px); line-height:.9; letter-spacing:-.02em; color:var(--gold); }
.calc-hero .sub{ font-size:13px; color:var(--text-2); margin-top:10px; font-weight:500; }

/* honesty split */
.calc-split{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:22px; }
.calc-cell{ border:1px solid var(--line-soft); border-radius:3px; padding:14px 15px; }
.calc-cell .t{ font-size:11px; color:var(--text-3); font-weight:600; letter-spacing:.04em; margin-bottom:8px; line-height:1.3; }
.calc-cell .n{ font-family:var(--font-head); font-size:26px; font-weight:600; color:var(--gold); }
.calc-cell.muted .n{ color:var(--text); }

/* chart */
.calc-chart{ margin-bottom:22px; }
.calc-charthead{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:16px; }
.calc-charthead .ct{ font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--text-3); }
.calc-charthead .cn{ font-size:11px; color:var(--text-3); }
.calc-bars{ display:flex; align-items:flex-end; gap:8px; height:130px; }
.calc-barcol{ flex:1; display:flex; flex-direction:column; align-items:center; gap:8px; height:100%; justify-content:flex-end; }
.calc-bar{ width:100%; max-width:42px; border-radius:3px 3px 1px 1px; background:linear-gradient(180deg,rgba(212,175,106,.32),rgba(212,175,106,.07)); border:1px solid var(--line); transform-origin:bottom; transition:height var(--slow); }
.calc-bar.peak{ background:linear-gradient(180deg,var(--gold),var(--gold-soft)); border-color:var(--gold); box-shadow:0 0 24px rgba(212,175,106,.3); }
.calc-barval{ font-size:11px; font-weight:700; color:var(--gold); }
.calc-barx{ font-size:10.5px; color:var(--text-3); font-weight:600; }

.calc-resnote{ font-size:12px; color:var(--text-2); line-height:1.5; border-left:2px solid var(--gold); padding:2px 0 2px 12px; margin-bottom:22px; }
.calc-install{ font-size:12.5px; color:var(--text-2); line-height:1.55; margin-bottom:22px; }
.calc-install b{ color:var(--text); font-weight:600; }
.calc-cta{ margin-top:auto; }

.calc-disclaimer{ grid-column:1/-1; padding:18px 44px 24px; border-top:1px solid var(--line-soft); font-size:11.5px; line-height:1.6; color:var(--text-3); background:rgba(8,24,19,.4); }

@media (max-width:560px){
  .calc-in, .calc-out{ padding:30px 22px; }
  .calc-disclaimer{ padding:18px 22px 24px; }
}

/* ============================================================
   QUIZ
   ============================================================ */
.quiz-shell{ max-width:720px; margin:0 auto; }
.quiz-card{ background:var(--bg-3); border:1px solid var(--line); border-radius:3px; padding:46px 46px 40px; position:relative; min-height:470px; display:flex; flex-direction:column; }
.quiz-prog{ display:flex; align-items:center; gap:14px; margin-bottom:34px; }
.quiz-bar{ flex:1; height:2px; background:var(--line-soft); position:relative; overflow:hidden; }
.quiz-bar i{ position:absolute; left:0; top:0; bottom:0; background:linear-gradient(90deg,var(--gold-soft),var(--gold)); width:0%; transition:width .5s var(--ease); }
.quiz-step{ font-size:12px; letter-spacing:.12em; color:var(--text-2); font-variant-numeric:tabular-nums; white-space:nowrap; }
.quiz-hidden{ display:none; }

/* step entrance — driven by inline styles in JS (see wrap()); no opacity rules here
   so nothing can leave a step stuck invisible. */
@media (prefers-reduced-motion: reduce){ .quiz-anim{ opacity:1 !important; transform:none !important; } }

.quiz-q{ font-family:var(--font-head); font-size:clamp(24px,3.4vw,34px); font-weight:600; line-height:1.12; margin:0 0 8px; text-wrap:balance; }
.quiz-hint{ font-size:13.5px; color:var(--text-3); margin:0 0 26px; line-height:1.5; }
.quiz-q:last-child{ margin-bottom:30px; }

/* simple option rows (budget / term) */
.quiz-opts{ display:flex; flex-direction:column; gap:12px; }
.quiz-opt{ display:flex; align-items:center; gap:16px; text-align:left; padding:18px 22px; background:transparent; border:1px solid var(--line); border-radius:2px; color:var(--text); font-size:16px; font-weight:500; transition:border-color var(--slow), background var(--slow), transform .2s var(--ease); }
.quiz-opt span:first-child{ flex:1; }
.quiz-opt .mk{ width:22px; height:22px; border-radius:50%; border:1px solid var(--line); flex:0 0 auto; display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:12px; transition:all var(--slow); }
.quiz-opt:hover{ border-color:var(--gold); background:rgba(212,175,106,.05); }
.quiz-opt:hover .mk{ border-color:var(--gold); transform:translateX(2px); }
.quiz-opt.sel{ border-color:var(--gold); background:rgba(212,175,106,.07); }

/* icon cards (goal) */
.quiz-cards{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.quiz-cardopt{ display:flex; align-items:flex-start; gap:15px; text-align:left; padding:20px 18px; background:transparent; border:1px solid var(--line); border-radius:2px; color:var(--text); transition:border-color var(--slow), background var(--slow); position:relative; }
.quiz-cardopt .ic{ width:34px; height:34px; flex:0 0 auto; color:var(--gold); }
.quiz-cardopt .ic svg{ width:100%; height:100%; }
.quiz-cardopt .txt{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.quiz-cardopt .lb{ font-size:15.5px; font-weight:600; line-height:1.25; }
.quiz-cardopt .sb{ font-size:12.5px; color:var(--text-2); line-height:1.4; }
.quiz-cardopt .mk{ position:absolute; top:16px; right:16px; color:var(--gold); font-size:13px; opacity:0; transform:translateX(-4px); transition:all var(--slow); }
.quiz-cardopt:hover{ border-color:var(--gold); background:rgba(212,175,106,.05); }
.quiz-cardopt:hover .mk{ opacity:1; transform:none; }
.quiz-cardopt.sel{ border-color:var(--gold); background:rgba(212,175,106,.07); }

/* geography chips */
.quiz-chips{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:8px; }
.quiz-chip{ padding:11px 18px; background:transparent; border:1px solid var(--line); border-radius:999px; color:var(--text); font-size:14.5px; font-weight:500; transition:all var(--slow); }
.quiz-chip:hover{ border-color:var(--gold); color:var(--gold); }
.quiz-chip.sel{ border-color:var(--gold); background:var(--gold); color:var(--bg); }

/* contact channels */
.quiz-channels{ display:flex; flex-direction:column; gap:10px; margin-bottom:8px; }
.quiz-channel{ display:flex; align-items:center; gap:15px; text-align:left; padding:15px 18px; background:transparent; border:1px solid var(--line); border-radius:2px; color:var(--text); transition:all var(--slow); }
.quiz-channel .ic{ width:24px; height:24px; flex:0 0 auto; color:var(--gold); }
.quiz-channel .ic svg{ width:100%; height:100%; }
.quiz-channel .txt{ display:flex; flex-direction:column; gap:2px; }
.quiz-channel .lb{ font-size:15px; font-weight:600; }
.quiz-channel .sb{ font-size:12.5px; color:var(--text-2); }
.quiz-channel:hover{ border-color:var(--gold); }
.quiz-channel.sel{ border-color:var(--gold); background:rgba(212,175,106,.07); }

/* text input + submit */
.quiz-input{ width:100%; background:transparent; border:0; border-bottom:1px solid var(--line); color:var(--text); font-size:18px; padding:14px 2px; outline:none; transition:border-color var(--slow); }
.quiz-input::placeholder{ color:var(--text-3); }
.quiz-input:focus{ border-color:var(--gold); }
.quiz-input.err{ border-color:#C9614B; }
.quiz-contact-input{ margin-top:18px; }
.quiz-go{ margin-top:28px; align-self:flex-start; }
.quiz-go:disabled{ opacity:.4; pointer-events:none; }

.quiz-nav{ display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:30px; }
.quiz-back{ background:transparent; border:0; color:var(--text-2); font-size:14px; font-weight:600; display:inline-flex; align-items:center; gap:8px; transition:color var(--slow); }
.quiz-back:hover{ color:var(--gold); }
.quiz-back[hidden]{ visibility:hidden; }
.quiz-done{ text-align:center; padding:24px 10px; }
.quiz-done .seal{ width:64px; height:64px; margin:0 auto 26px; border-radius:50%; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; color:var(--gold); }
.quiz-done h3{ font-size:30px; margin:0 0 16px; }
.quiz-done p{ color:var(--text-2); max-width:46ch; margin:0 auto 30px; }
.quiz-done p .g{ color:var(--gold); font-weight:600; }
.quiz-restart{ display:block; margin:18px auto 0; background:transparent; border:0; color:var(--text-3); font-size:13px; font-weight:600; transition:color var(--slow); }
.quiz-restart:hover{ color:var(--gold); }
.quiz-note{ text-align:center; font-size:12.5px; color:var(--text-3); margin-top:20px; }

@media (max-width:560px){
  .quiz-card{ padding:34px 22px 30px; min-height:440px; }
  .quiz-cards{ grid-template-columns:1fr; }
}

/* ============================================================
   HOW IT WORKS
   ============================================================ */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft); margin-bottom:54px; }
.step{ background:var(--bg); padding:38px 30px 42px; position:relative; overflow:hidden; transition:background var(--slow); }
.step:hover{ background:var(--bg-3); }
.step-ic{ width:54px; height:54px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--gold); margin-bottom:24px; transition:border-color var(--slow), background var(--slow); position:relative; z-index:1; }
.step-ic svg{ width:26px; height:26px; }
.step:hover .step-ic{ border-color:var(--gold); background:rgba(212,175,106,.08); }
.step-n{ position:absolute; top:22px; right:26px; font-family:var(--font-head); font-size:54px; font-weight:600; color:var(--gold); opacity:.14; line-height:1; pointer-events:none; }
.step h3{ font-size:19px; margin:0 0 10px; line-height:1.2; }
.step p{ font-size:14px; color:var(--text-2); margin:0; line-height:1.5; }
@media (max-width:900px){ .steps{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .steps{ grid-template-columns:1fr; } }
.partner{ display:grid; grid-template-columns:1.3fr 1fr; gap:0; border:1px solid var(--line); border-radius:3px; overflow:hidden; }
.partner-txt{ padding:48px 46px; }
.partner-txt h3{ font-size:clamp(24px,3vw,30px); margin:0 0 16px; }
.partner-txt p{ color:var(--text-2); font-size:16px; line-height:1.6; margin:0 0 22px; }
.partner-loc{ display:inline-flex; align-items:center; gap:10px; font-size:14px; color:var(--gold); border:1px solid var(--line); padding:11px 18px; border-radius:2px; }
.partner-img{ position:relative; min-height:280px; overflow:hidden; }
.partner-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
@media (max-width:760px){ .partner{ grid-template-columns:1fr; } .partner-img{ min-height:200px; order:-1; } }

/* ============================================================
   FAQ
   ============================================================ */
.faq{ max-width:860px; margin:0 auto; border-top:1px solid var(--line); }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{ width:100%; display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:28px 4px; background:transparent; border:0; color:var(--text); text-align:left; font-family:var(--font-head); font-size:clamp(19px,2.4vw,24px); font-weight:600; line-height:1.25; transition:color var(--slow); }
.faq-q:hover{ color:var(--gold); }
.faq-ic{ flex:0 0 auto; width:26px; height:26px; position:relative; margin-top:4px; }
.faq-ic::before,.faq-ic::after{ content:""; position:absolute; background:var(--gold); transition:transform var(--slow), opacity var(--slow); }
.faq-ic::before{ left:0; right:0; top:50%; height:1.5px; transform:translateY(-50%); }
.faq-ic::after{ top:0; bottom:0; left:50%; width:1.5px; transform:translateX(-50%); }
.faq-item.open .faq-ic::after{ transform:translateX(-50%) scaleY(0); opacity:0; }
.faq-a{ max-height:0; overflow:hidden; transition:max-height var(--slow); }
.faq-a-inner{ padding:0 4px 30px; color:var(--text-2); font-size:16px; line-height:1.65; max-width:64ch; }

/* ============================================================
   FINAL CTA + FOOTER
   ============================================================ */
.final{ position:relative; overflow:hidden; text-align:center; }
.final-photo{ position:absolute; inset:0; background-size:cover; background-position:50% 42%; }
.final .ph{ position:absolute; inset:0; opacity:.5; }
.final-veil{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,24,19,.9), rgba(8,24,19,.78)); }
.final-inner{ position:relative; z-index:2; padding:120px 24px; }
.final h2{ font-size:clamp(34px,6vw,68px); line-height:1.06; margin:0 auto 22px; max-width:18ch; text-wrap:balance; }
.final h2 .em{ color:var(--gold); font-style:italic; }
.final p{ color:var(--text-2); font-size:19px; max-width:48ch; margin:0 auto 40px; }

.site-foot{ background:var(--bg-sink); border-top:1px solid var(--line-soft); padding:64px 0 40px; }
.foot-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid var(--line-soft); }
.foot-brand{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.foot-brand img{ height:50px; }
.foot-brand .brand-name{ font-size:25px; }
.foot-about{ color:var(--text-2); font-size:14.5px; line-height:1.6; max-width:42ch; }
.foot-col h4{ font-family:var(--font-body); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--text-3); margin:0 0 18px; font-weight:600; }
.foot-col a, .foot-col p{ display:block; color:var(--text-2); font-size:15px; margin:0 0 12px; transition:color var(--slow); }
.foot-col a:hover{ color:var(--gold); }
.disclaimer{ margin-top:34px; color:var(--text-3); font-size:12px; line-height:1.7; max-width:none; }
.foot-bottom{ margin-top:30px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px; color:var(--text-3); font-size:12.5px; }
@media (max-width:760px){ .foot-top{ grid-template-columns:1fr; gap:32px; } }

/* ============================================================
   STICKY / FLOATING CTA
   ============================================================ */
.sticky-tg{ position:fixed; left:0; right:0; bottom:0; z-index:55; display:none; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); background:rgba(8,24,19,.9); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border-top:1px solid var(--line); }
.sticky-tg .btn{ width:100%; padding:16px; }
.float-tg{ position:fixed; right:26px; bottom:26px; z-index:55; display:flex; align-items:center; gap:12px; padding:14px 22px 14px 16px; background:linear-gradient(180deg,var(--gold),var(--gold-soft)); color:#1B130A; border-radius:50px; font-weight:600; font-size:15px; box-shadow:0 14px 40px -10px rgba(212,175,106,.5); transition:transform var(--slow), box-shadow var(--slow); animation:floatIn .6s var(--ease) both; }
.float-tg:hover{ transform:translateY(-3px); box-shadow:0 20px 50px -10px rgba(212,175,106,.65); }
.float-tg .ic{ width:34px; height:34px; border-radius:50%; background:rgba(27,19,10,.12); display:flex; align-items:center; justify-content:center; }
@keyframes floatIn{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:translateY(0); } }
@media (max-width:760px){ .float-tg{ display:none; } .sticky-tg{ display:block; } body{ padding-bottom:0; } }

/* ============================================================
   reveal-on-scroll
   ============================================================ */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .hero-photo,.hero-grain,.scroll-hint .ln{ animation:none; }
  *{ scroll-behavior:auto; }
}

/* ============================================================
   responsive header / hero
   ============================================================ */
@media (max-width:760px){
  .sec-pad{ padding:72px 0; }
  .brand-desc{ display:none; }
  .head-tg span.lbl{ display:none; }
  .head-tg{ padding:10px 14px; }
  [data-hero="b"] .hero-inner{ grid-template-columns:1fr; gap:40px; }
  [data-hero="b"] .anchors-stack{ display:flex; }
  .ph-tag{ bottom:90px; }
  .hero-inner{ padding:120px 24px 90px; }
}
@media (max-width:480px){
  .wrap{ padding:0 18px; }
  .anchor{ min-width:50%; flex:1 0 50%; padding:18px; }
  .hero-actions{ flex-direction:column; align-items:stretch; }
  .hero-actions .btn{ width:100%; }
}

/* landing header nav — links to standalone pages (desktop/tablet only) */
.head-nav{ display:flex; align-items:center; gap:30px; margin:0 auto; }
.head-nav a{ font-size:14px; font-weight:600; letter-spacing:.01em; color:var(--text-2); transition:color var(--slow); white-space:nowrap; }
.head-nav a:hover{ color:var(--gold); }
@media (max-width:980px){ .head-nav{ gap:20px; } .head-nav a{ font-size:13px; } }
@media (max-width:860px){ .head-nav{ display:none; } }

/* ============================================================
   SUBPAGE PRIMITIVES — shared by /en/, /projects/, etc.
   (added during the multilingual refactor; safe no-ops on the
   landing page where these classes are not used)
   ============================================================ */
.subpage-main{ padding-top:120px; }
.bcrumbs{ font-size:13px; color:var(--text-3); letter-spacing:.02em; margin:0 0 30px; }
.bcrumbs a{ color:var(--text-2); transition:color var(--slow); }
.bcrumbs a:hover{ color:var(--gold); }
.bcrumbs span{ margin:0 8px; opacity:.5; }
.prose{ max-width:760px; }
.prose p{ color:var(--text-2); font-size:17px; line-height:1.7; margin:0 0 20px; }
.prose h2{ font-size:clamp(26px,3.4vw,38px); margin:48px 0 18px; }
.prose h3{ font-size:clamp(20px,2.4vw,26px); margin:34px 0 14px; }
.prose ul, .prose ol{ color:var(--text-2); font-size:17px; line-height:1.7; padding-left:22px; margin:0 0 20px; }
.prose li{ margin:0 0 8px; }
.data-table{ width:100%; border-collapse:collapse; margin:24px 0; font-size:15px; }
.data-table th, .data-table td{ text-align:left; padding:13px 16px; border-bottom:1px solid var(--line-soft); }
.data-table th{ color:var(--gold); font-weight:600; font-family:var(--font-body); letter-spacing:.02em; }
.data-table td{ color:var(--text-2); }
.data-table tr:hover td{ background:rgba(212,175,106,.03); }
