/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/17271709-0d46-4a8b-a453-4efb9ffd0783.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("fonts/862bd9aa-a700-4813-bcb6-9130846304db.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("fonts/a29eb4f5-6487-418e-90f6-4f24f0f5badf.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("fonts/7d1dbd6c-27c8-4978-bbda-e44aa3681f97.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("fonts/1de46d40-de7f-4261-a096-478d6308adcc.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("fonts/24b6bb0b-8436-46d4-8f7f-5e7b0df06c4c.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("fonts/a2747299-916e-4e70-9ef6-0e9335673670.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("fonts/17271709-0d46-4a8b-a453-4efb9ffd0783.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("fonts/862bd9aa-a700-4813-bcb6-9130846304db.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("fonts/a29eb4f5-6487-418e-90f6-4f24f0f5badf.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("fonts/7d1dbd6c-27c8-4978-bbda-e44aa3681f97.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("fonts/1de46d40-de7f-4261-a096-478d6308adcc.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("fonts/24b6bb0b-8436-46d4-8f7f-5e7b0df06c4c.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("fonts/a2747299-916e-4e70-9ef6-0e9335673670.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("fonts/17271709-0d46-4a8b-a453-4efb9ffd0783.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("fonts/862bd9aa-a700-4813-bcb6-9130846304db.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("fonts/a29eb4f5-6487-418e-90f6-4f24f0f5badf.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("fonts/7d1dbd6c-27c8-4978-bbda-e44aa3681f97.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("fonts/1de46d40-de7f-4261-a096-478d6308adcc.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("fonts/24b6bb0b-8436-46d4-8f7f-5e7b0df06c4c.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("fonts/a2747299-916e-4e70-9ef6-0e9335673670.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("fonts/17271709-0d46-4a8b-a453-4efb9ffd0783.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("fonts/862bd9aa-a700-4813-bcb6-9130846304db.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("fonts/a29eb4f5-6487-418e-90f6-4f24f0f5badf.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("fonts/7d1dbd6c-27c8-4978-bbda-e44aa3681f97.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("fonts/1de46d40-de7f-4261-a096-478d6308adcc.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("fonts/24b6bb0b-8436-46d4-8f7f-5e7b0df06c4c.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("fonts/a2747299-916e-4e70-9ef6-0e9335673670.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/7e6a81ae-6f9f-410e-b50c-8ec178eb014e.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/3a9af9c3-c6ca-4c5c-beda-ccbba378dc94.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/d5f0bebd-34fa-41e6-a45c-bd3c130ca9ce.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ae5fa54e-ce4c-40b0-b97a-082356eff849.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/271f3740-0a5a-4fc0-9da1-83b6a9901e93.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/d328b67c-885c-4d53-b246-751b23089b01.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/7e6a81ae-6f9f-410e-b50c-8ec178eb014e.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/3a9af9c3-c6ca-4c5c-beda-ccbba378dc94.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/d5f0bebd-34fa-41e6-a45c-bd3c130ca9ce.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/ae5fa54e-ce4c-40b0-b97a-082356eff849.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/271f3740-0a5a-4fc0-9da1-83b6a9901e93.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/d328b67c-885c-4d53-b246-751b23089b01.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/7e6a81ae-6f9f-410e-b50c-8ec178eb014e.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/3a9af9c3-c6ca-4c5c-beda-ccbba378dc94.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/d5f0bebd-34fa-41e6-a45c-bd3c130ca9ce.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/ae5fa54e-ce4c-40b0-b97a-082356eff849.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/271f3740-0a5a-4fc0-9da1-83b6a9901e93.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/d328b67c-885c-4d53-b246-751b23089b01.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/7e6a81ae-6f9f-410e-b50c-8ec178eb014e.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/3a9af9c3-c6ca-4c5c-beda-ccbba378dc94.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/d5f0bebd-34fa-41e6-a45c-bd3c130ca9ce.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/ae5fa54e-ce4c-40b0-b97a-082356eff849.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/271f3740-0a5a-4fc0-9da1-83b6a9901e93.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/d328b67c-885c-4d53-b246-751b23089b01.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;
}


html,body{margin:0;padding:0;background:#04070E;}
a{color:#40C8FF;text-decoration:none;}
::selection{background:rgba(64,200,255,0.3);}
@keyframes twinkle{0%,100%{opacity:0.2;}50%{opacity:0.8;}}
@keyframes breathe{0%,100%{opacity:0.55;}50%{opacity:1;}}
@keyframes gateDash{from{stroke-dashoffset:0;}to{stroke-dashoffset:-140;}}
@keyframes draw{to{stroke-dashoffset:0;}}
@keyframes nodein{0%{opacity:0;}60%{opacity:1;}100%{opacity:0.95;}}
@keyframes fadein{to{opacity:1;}}
@keyframes camera{0%{transform:scale(0.94);}14%{transform:scale(0.94);}26%{transform:scale(3.3);}36%{transform:scale(3.3);}52%{transform:scale(1.6);}70%{transform:scale(1.03);}84%{transform:scale(1.03);}100%{transform:scale(0.94);}}
@keyframes fadeout{to{opacity:0;}}
@keyframes cap{0%{opacity:0;transform:translateY(8px);}12%{opacity:1;transform:translateY(0);}85%{opacity:1;}100%{opacity:0;}}
@keyframes flash{0%,100%{opacity:0.35;}50%{opacity:1;}}


/* ── layout (2026-09-24 port): a responsive stage instead of a 1920x1080 surface scaled by a factor ── */
html,body{height:100%;}
body{margin:0;background:#04070E;color:#E9EEF9;font-family:'Inter',sans-serif;overflow:hidden;}
#stage{position:fixed;inset:0;background:radial-gradient(1500px 950px at 50% 48%, #0C1426 0%, #070C16 52%, #04060C 100%);overflow:hidden;}
#map{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease;}
#stage.is-started #map{opacity:1;}
#map svg{position:absolute;inset:0;width:100%;height:100%;display:block;}
.back{position:absolute;left:clamp(14px,3.5vw,60px);top:clamp(14px,3.5vh,44px);z-index:5;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(64,200,255,0.4);border-radius:999px;padding:9px 16px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:0.14em;color:#C3D2EE;background:rgba(5,10,24,0.7);}
.back:hover{border-color:#40C8FF;color:#F4F8FF;}
.ui{opacity:0;animation:fadein 1.2s ease 23.4s forwards;pointer-events:none;}
.hud{position:absolute;left:clamp(14px,3.5vw,60px);top:clamp(64px,10vh,92px);max-width:calc(100vw - 28px);}
.hud-kicker{font-family:'JetBrains Mono',monospace;font-size:clamp(11px,1.1vw,15px);letter-spacing:0.34em;color:#00E5FF;}
.hud-title{margin-top:10px;font-size:clamp(20px,2.2vw,28px);font-weight:600;letter-spacing:-0.015em;color:#F2F5FC;line-height:1.15;}
.hud-sub{margin-top:8px;font-family:'JetBrains Mono',monospace;font-size:clamp(10px,1vw,13px);color:#6F86B5;}
.brand{position:absolute;right:clamp(14px,3.5vw,60px);top:clamp(14px,3.5vh,40px);display:flex;align-items:center;gap:12px;}
.brand img{height:clamp(28px,3.5vw,40px);width:auto;}
.brand span{font-family:'JetBrains Mono',monospace;font-size:clamp(10px,1.1vw,14px);letter-spacing:0.24em;color:#5A6E9A;}
#captions .cap{position:absolute;left:0;right:0;bottom:clamp(84px,14vh,28px);padding:0 16px;text-align:center;pointer-events:none;opacity:0;}
.cap-kicker{font-family:'JetBrains Mono',monospace;font-size:clamp(11px,1.1vw,14px);letter-spacing:0.3em;color:#00E5FF;}
.cap-text{margin-top:8px;font-size:clamp(18px,2.4vw,30px);font-weight:600;letter-spacing:-0.01em;color:#F2F5FC;text-wrap:balance;}
#card{position:absolute;right:clamp(12px,3.5vw,60px);top:clamp(90px,15vh,150px);width:min(400px,calc(100vw - 24px));background:rgba(10,17,32,0.94);border:1px solid rgba(64,200,255,0.3);border-radius:16px;padding:20px 24px;box-shadow:0 24px 70px rgba(5,10,25,0.7);}
#card[hidden]{display:none;}
.card-head{display:flex;align-items:center;gap:12px;}
.card-dot{width:12px;height:12px;border-radius:50%;flex:0 0 auto;}
.card-title{font-family:'JetBrains Mono',monospace;font-size:15px;letter-spacing:0.14em;color:#F2F5FC;}
.card-status{margin-top:10px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:0.2em;}
.card-body{margin:12px 0 0;font-size:15.5px;line-height:1.55;color:#9FB3D9;text-wrap:pretty;}
.card-meta{margin-top:14px;padding-top:12px;border-top:1px solid rgba(64,200,255,0.16);font-family:'JetBrains Mono',monospace;font-size:11.5px;line-height:1.7;color:#5A6E9A;}
.controls{position:absolute;left:clamp(14px,3.5vw,60px);bottom:clamp(16px,4vh,40px);display:flex;align-items:center;gap:12px;opacity:0;animation:fadein 1s ease 23.4s forwards;}
#stage.is-ready .controls{opacity:1;animation:none;}
#replay{cursor:pointer;background:rgba(0,229,255,0.12);border:1px solid rgba(0,229,255,0.5);border-radius:999px;padding:11px 26px;font-family:'JetBrains Mono',monospace;font-size:14px;letter-spacing:0.18em;color:#7FEFFF;}
#hint{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:0.14em;color:#5A6E9A;}
.legend{position:absolute;right:clamp(14px,3.5vw,60px);bottom:clamp(16px,4vh,44px);display:flex;align-items:center;gap:20px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:0.14em;color:#5A6E9A;pointer-events:none;opacity:0;animation:fadein 1s ease 23.4s forwards;}
.legend span{display:inline-flex;align-items:center;gap:7px;}
.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;}
@media (max-width: 720px){
  .legend,.hud-sub,.brand span{display:none;}
  #hint{display:none;}
  .hud{top:64px;}
}
@media (prefers-reduced-motion: reduce){ #map svg *{animation-duration:0.01ms !important;} }
