/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[2].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[2].use[2]!./node_modules/next/font/google/target.css?{"path":"src/app/layout.tsx","import":"IBM_Plex_Serif","arguments":[{"subsets":["latin","cyrillic"],"weight":["300","400","500","600","700"],"style":["normal","italic"],"variable":"--font-display","display":"swap"}],"variableName":"display"} ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(/_next/static/media/75a0637b4891c469-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(/_next/static/media/89647d21964487ca-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(/_next/static/media/816397668f918848-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(/_next/static/media/8fa51ae7254345e5-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(/_next/static/media/12ee21e46dd493d0-s.p.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/3a5d46f13b907f03-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/706916f3187cfecb-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/fc2a50719ade75c3-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/68cff56a7207348e-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/a6b5dea332871235-s.p.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/abcc7e85e089b5ae-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/798233bd0f5070a8-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/c80c6fc7d801571d-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/8c72074d67123e8c-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/c8cad4642119b6f5-s.p.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/b65f84204621f0fa-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/f5255165e2423218-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/f26922de4bd311cd-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/482f960b47669d58-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/a17e6abc638602a7-s.p.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/0a5254b9f5c834a8-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/22d19f845ca05352-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/4c1196853eb1d5e8-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/2bc925a4013ec7b1-s.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: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/94628ed0211a8d6c-s.p.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/_next/static/media/fd73cabe67a4561d-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/_next/static/media/d824538608b3513d-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/_next/static/media/c25a01954ca2249e-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/_next/static/media/9956511148122082-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/_next/static/media/83ad8d172e8a3db5-s.p.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/2ef8c3e32805fa0d-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/38944cd53330cfe5-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/7265bd3f9eb7fe28-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/65c344bc49233072-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/91c3caac73720166-s.p.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/8c8a7fc34634bdc7-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/3f07cb192fb7bfbf-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/40ee6ffec676ab40-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/88e369b5cf3e60ec-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/aff755c8b4bb3089-s.p.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/80755942c15fc3df-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/5ec058ec9419b0f7-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/01c9e5d8aa820247-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/0fac09c5d5acd5a7-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/3359c9acc30ef440-s.p.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/0d132e0b97f42c8a-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/71414ff8ec62ebb1-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/8ed5f8f73d1e574d-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/7dc9e6a7158767d0-s.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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/3988c35203e0830a-s.p.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;
}@font-face {font-family: 'IBM Plex Serif Fallback';src: local("Times New Roman");ascent-override: 88.04%;descent-override: 23.62%;line-gap-override: 0.00%;size-adjust: 116.43%
}.__className_baaf0c {font-family: 'IBM Plex Serif', 'IBM Plex Serif Fallback'
}.__variable_baaf0c {--font-display: 'IBM Plex Serif', 'IBM Plex Serif Fallback'
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[2].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[2].use[2]!./node_modules/next/font/google/target.css?{"path":"src/app/layout.tsx","import":"IBM_Plex_Sans","arguments":[{"subsets":["latin","cyrillic"],"weight":["300","400","500","600"],"variable":"--font-body","display":"swap"}],"variableName":"body"} ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/7b19b489dc6743ba-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/28793f5c5e3d822d-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/c9c3823090ec8b55-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b3bf17a9041d9433-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/2801417b65625cf5-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/26d4368bf94c0ec4-s.p.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/7b19b489dc6743ba-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/28793f5c5e3d822d-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/c9c3823090ec8b55-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b3bf17a9041d9433-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/2801417b65625cf5-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/26d4368bf94c0ec4-s.p.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/7b19b489dc6743ba-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/28793f5c5e3d822d-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/c9c3823090ec8b55-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b3bf17a9041d9433-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/2801417b65625cf5-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/26d4368bf94c0ec4-s.p.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/7b19b489dc6743ba-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/28793f5c5e3d822d-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/c9c3823090ec8b55-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b3bf17a9041d9433-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/2801417b65625cf5-s.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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/26d4368bf94c0ec4-s.p.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;
}@font-face {font-family: 'IBM Plex Sans Fallback';src: local("Arial");ascent-override: 101.32%;descent-override: 27.18%;line-gap-override: 0.00%;size-adjust: 101.17%
}.__className_2e08da {font-family: 'IBM Plex Sans', 'IBM Plex Sans Fallback';font-style: normal
}.__variable_2e08da {--font-body: 'IBM Plex Sans', 'IBM Plex Sans Fallback'
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[2].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[2].use[2]!./node_modules/next/font/google/target.css?{"path":"src/app/layout.tsx","import":"JetBrains_Mono","arguments":[{"subsets":["latin","cyrillic"],"weight":["400","500"],"variable":"--font-mono","display":"swap"}],"variableName":"mono"} ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/edc640959b0c7826-s.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(/_next/static/media/ac0e76ddaeeb7981-s.p.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(/_next/static/media/64d784ea54a4acde-s.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(/_next/static/media/ff71da380fbe67dd-s.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(/_next/static/media/6d831b18ae5b01dc-s.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(/_next/static/media/558ca1a6aa3cb55e-s.p.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(/_next/static/media/edc640959b0c7826-s.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(/_next/static/media/ac0e76ddaeeb7981-s.p.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(/_next/static/media/64d784ea54a4acde-s.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(/_next/static/media/ff71da380fbe67dd-s.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(/_next/static/media/6d831b18ae5b01dc-s.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(/_next/static/media/558ca1a6aa3cb55e-s.p.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;
}@font-face {font-family: 'JetBrains Mono Fallback';src: local("Arial");ascent-override: 75.79%;descent-override: 22.29%;line-gap-override: 0.00%;size-adjust: 134.59%
}.__className_2b1c55 {font-family: 'JetBrains Mono', 'JetBrains Mono Fallback';font-style: normal
}.__variable_2b1c55 {--font-mono: 'JetBrains Mono', 'JetBrains Mono Fallback'
}

/*!*****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/globals.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************/
/* ==========================================================================
   Думай.Делай — глобальные токены (Editorial / Manuscript aesthetic)
   ========================================================================== */

:root {
  /* Paper & ink */
  --paper: #F4EFE3;
  --paper-deep: #ECE5D3;
  --paper-shade: #E3DBC5;
  --ink: #15140F;
  --ink-mute: rgba(21, 20, 15, 0.60);
  --ink-faint: rgba(21, 20, 15, 0.38);
  --rule: rgba(21, 20, 15, 0.14);

  /* Accents */
  --ochre: #B86A1E;
  --ochre-deep: #8E4F14;
  --sage: #6B7352;
  --terra: #A13A24;

  /* Semantic brand accent (DM-536-46): themeable BoK-палитрой в [data-bok-scope].
     Дефолт = ochre → нулевой визуальный сдвиг без профиля. Функциональные
     --sage/--terra/--spark НЕ themeable (несут смысл, не бренд). */
  --accent: var(--ochre);
  --accent-deep: var(--ochre-deep);

  /* Silicon — голос системы (антитеза бумаге) */
  --steel: #1B2A35;
  --steel-soft: #2C3D48;
  --steel-bright: #3A5060;
  --glass: #E8ECEE;
  --glass-mute: rgba(232, 236, 238, 0.7);
  --spark: #3A6B7F;
  --paper-on-steel: rgba(244, 239, 227, 0.86);
  --paper-on-steel-mute: rgba(244, 239, 227, 0.48);
  --paper-on-steel-faint: rgba(244, 239, 227, 0.3);

  /* Type */
  --ff-display: var(--font-display), "IBM Plex Serif", "Georgia", serif;
  --ff-body: var(--font-body), "IBM Plex Sans", system-ui, -apple-system, sans-serif;
  --ff-mono: var(--font-mono), "JetBrains Mono", "SFMono-Regular", Menlo, monospace;
}

/* Dark theme (DM-536-46 T5.2, best-practice): тёплый dark под editorial-эстетику —
   НЕ чистый чёрный (тёплый near-black), текст = off-white (не #FFF), поднятые
   поверхности СВЕТЛЕЕ, акценты десатурированы/светлее для контраста на dark.
   Функциональные terra/sage/spark получают dark-варианты (несут смысл).
   Silicon-токены (steel/glass/paper-on-steel) — уже тёмные, не переопределяем.
   --accent/--accent-deep = var(--ochre*) → следуют автоматически.
   Переопределяем только color-токены; шрифты/брейкпоинты mode-agnostic. */
:root[data-theme="dark"] {
  --paper: #17150F;
  --paper-deep: #201D16;
  --paper-shade: #29251C;
  --ink: #EFE9DB;
  --ink-mute: rgba(239, 233, 219, 0.60);
  --ink-faint: rgba(239, 233, 219, 0.38);
  --rule: rgba(239, 233, 219, 0.14);

  --ochre: #D98C43;
  --ochre-deep: #E7A967;
  --sage: #99A17C;
  --terra: #D77257;
  --spark: #6FA4BA;
}

html, body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--ff-body);
  font-feature-settings: "ss01", "cv11", "kern", "liga";
}

/* Убираем дефолтные отступы */
* { box-sizing: border-box; }
body { margin: 0; }

/* Выделение */
::selection {
  background: var(--ochre);
  color: var(--paper);
}

/* Stagger reveal для страниц */
@keyframes tdStaggerUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes tdFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes tdRuleIn {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
@keyframes tdCursorBlink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}

/* Утилитарные классы, используемые инлайном через className */
.td-reveal > * {
  opacity: 0;
  animation: tdStaggerUp 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
}
.td-reveal > *:nth-child(1) { animation-delay: 0.05s; }
.td-reveal > *:nth-child(2) { animation-delay: 0.15s; }
.td-reveal > *:nth-child(3) { animation-delay: 0.25s; }
.td-reveal > *:nth-child(4) { animation-delay: 0.35s; }
.td-reveal > *:nth-child(5) { animation-delay: 0.45s; }
.td-reveal > *:nth-child(6) { animation-delay: 0.55s; }

/* Подчёркивание-орнамент при hover */
.td-ornament-link {
  position: relative;
  color: inherit;
  text-decoration: none;
  transition: color 0.3s ease;
}
.td-ornament-link::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.td-ornament-link:hover::after { transform: scaleX(1); }

/* Курсор-подсказка для input/textarea */
.td-cursor::after {
  content: "▌";
  color: var(--ochre);
  margin-left: 2px;
  animation: tdCursorBlink 1.1s infinite;
}

/* Корневой скролл на paper-цвете */
html { background: var(--paper); }

/* Убираем шрифтовой артефакт в IBM Plex на жирных */
strong, b { font-weight: 600; }

/* Глобальный контейнер страницы solve — cream-fill, overlay на main AppShell */
.td-solve-scope {
  background: var(--paper);
  color: var(--ink);
  margin: -1.5rem -2rem;
  padding: 2.5rem 2.75rem 4rem;
  min-height: calc(100vh - 48px);
  position: relative;
  isolation: isolate;
}

/* Тонкий шум на paper для живой фактуры */
.td-solve-scope::before {
  content: "";
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.085  0 0 0 0 0.078  0 0 0 0 0.059  0 0 0 0.055 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  opacity: 0.5;
  pointer-events: none;
  z-index: 0;
  mix-blend-mode: multiply;
}
.td-solve-scope > * { position: relative; z-index: 1; }

/* Сайдбар в AppShell на solve-страницах — тоже бумажный тон */
.td-solve-sidebar {
  font-family: var(--ff-body);
  color: var(--ink);
}

/* ====== Диалог (Dialogue) — центральная область /solve ======
   Mobile (<1280px): vertical stack chat-стиля.
     - User-сообщение → слева (align-start, max-width 88%).
     - Assistant → справа (align-end, max-width 88%).
   Desktop (≥1280px): два параллельных канала бок о бок.
     - User-сообщение в левой колонке, assistant — в правой, same row.
     - Assistant смещён вниз на ~24px — визуальный маркер «это ответ». */
.td-solve-dialogue {
  display: flex;
  flex-direction: column;
  gap: 24px;
  flex: 1 1;
}
.td-solve-turn {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.td-solve-turn-user-slot {
  align-self: flex-start;
  max-width: 88%;
  min-width: 0;
}
.td-solve-turn-assistant-slot {
  align-self: flex-end;
  max-width: 88%;
  min-width: 0;
}
.td-solve-turn-assistant-skeleton {
  display: none;
}

/* ====== Router section (composer × рекомендация) ======
   Mobile (<1024px): vertical stack — сначала композер, потом рекомендация под ним.
   Desktop (≥1024px): два столбца бок о бок. */
.td-solve-router-grid {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
@media (min-width: 1024px) {
  .td-solve-router-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 22px;
    gap: 22px;
    align-items: stretch;
  }
}
@media (min-width: 1280px) {
  .td-solve-turn {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-column-gap: 28px;
    column-gap: 28px;
    align-items: start;
  }
  .td-solve-turn-user-slot {
    grid-column: 1;
    align-self: stretch;
    max-width: none;
  }
  .td-solve-turn-assistant-slot {
    grid-column: 2;
    align-self: stretch;
    max-width: none;
    margin-top: 24px;       /* offset — assistant ниже user'а в той же row */
  }
  /* Skeleton показывается, когда user уже отправил, а assistant ещё нет */
  .td-solve-turn-assistant-skeleton {
    display: block;
    padding: 14px 16px;
    border-left: 2px dashed var(--rule);
    color: var(--ink-faint);
    font-family: var(--ff-mono);
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
  }
  .td-solve-turn-assistant-skeleton::after {
    content: "···";
    margin-left: 6px;
    animation: tdCursorBlink 1.1s infinite;
    color: var(--ochre);
  }
}

/* Textarea без скучного дефолта */
textarea.td-input,
input.td-input {
  font-family: inherit;
  background: rgba(255, 255, 255, 0.6);
  color: var(--ink);
  border: 1px solid var(--rule);
  border-radius: 4px;
  outline: none;
  padding: 0.5em 0.6em;
  resize: none;
  transition: border-color 0.3s ease, background 0.3s ease;
}
textarea.td-input:focus,
input.td-input:focus {
  border-color: var(--ochre);
  background: rgba(255, 255, 255, 0.85);
}

/* Markdown в репликах ассистента */
.td-md > *:first-child { margin-top: 0; }
.td-md > *:last-child { margin-bottom: 0; }
.td-md p { margin: 0 0 0.9em; }
.td-md ul, .td-md ol { margin: 0.4em 0 0.9em; padding-left: 1.4em; }
.td-md li { margin: 0.2em 0; }
.td-md li > p { margin: 0; }
.td-md h1, .td-md h2, .td-md h3, .td-md h4 {
  font-family: var(--ff-display);
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.2;
  margin: 1.2em 0 0.5em;
}
.td-md h1 { font-size: 1.45em; }
.td-md h2 { font-size: 1.25em; }
.td-md h3 { font-size: 1.1em; }
.td-md h4 { font-size: 1em; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-mute); }
.td-md strong { font-weight: 600; color: var(--ink); }
.td-md em { font-style: italic; }
.td-md a { color: var(--ochre-deep); text-decoration: underline; text-underline-offset: 2px; }
.td-md a:hover { color: var(--ochre); }
.td-md code {
  font-family: var(--ff-mono);
  font-size: 0.88em;
  background: rgba(0, 0, 0, 0.04);
  padding: 0.1em 0.35em;
  border-radius: 2px;
}
.td-md pre {
  font-family: var(--ff-mono);
  font-size: 0.85em;
  background: rgba(0, 0, 0, 0.04);
  padding: 12px 14px;
  overflow-x: auto;
  line-height: 1.5;
  margin: 0.6em 0 1em;
  border-left: 2px solid var(--rule);
}
.td-md pre code { background: transparent; padding: 0; }
.td-md blockquote {
  margin: 0.6em 0 1em;
  padding-left: 14px;
  border-left: 3px solid var(--rule);
  color: var(--ink-mute);
  font-style: italic;
}
.td-md hr { border: none; border-top: 1px solid var(--rule); margin: 1.4em 0; }
.td-md table { border-collapse: collapse; margin: 0.6em 0 1em; font-size: 0.95em; }
.td-md th, .td-md td { border-bottom: 1px solid var(--rule); padding: 6px 10px; text-align: left; }
.td-md th { font-weight: 500; color: var(--ink-mute); }

/* Инверсный вариант — на тёмном фоне (applied result) */
.td-md-inverse, .td-md-inverse p, .td-md-inverse li, .td-md-inverse strong { color: var(--paper); }
.td-md-inverse h1, .td-md-inverse h2, .td-md-inverse h3 { color: var(--paper); }
.td-md-inverse h4 { color: var(--ochre); }
.td-md-inverse a { color: var(--ochre); }
.td-md-inverse a:hover { color: var(--paper); }
.td-md-inverse code { background: rgba(255, 255, 255, 0.08); color: var(--paper); }
.td-md-inverse pre { background: rgba(255, 255, 255, 0.08); border-left-color: var(--ochre); }
.td-md-inverse blockquote { border-left-color: var(--ochre); color: rgba(250, 243, 229, 0.7); }
.td-md-inverse hr { border-top-color: rgba(255, 255, 255, 0.15); }
.td-md-inverse th, .td-md-inverse td { border-bottom-color: rgba(255, 255, 255, 0.15); }
.td-md-inverse th { color: rgba(250, 243, 229, 0.75); }

/* Editable list items — show edit button on hover */
.td-editable-item:hover .td-item-actions button {
  opacity: 0.6 !important;
}
.td-editable-item:hover .td-item-actions button:hover {
  opacity: 1 !important;
}

/* Button reset */
button.td-btn {
  font-family: inherit;
  background: transparent;
  color: inherit;
  border: none;
  cursor: pointer;
  padding: 0;
}

/* ====== Responsive breakpoints ====== */
:root {
  --bp-desktop: 1280px;
  --bp-tablet: 768px;
}

/* Tablet: hide static sidebars, show drawer toggles */
@media (max-width: 1279px) {
  .td-sidebar-left,
  .td-sidebar-right {
    display: none;
  }
  .td-drawer-toggle {
    display: flex;
  }
  /* Collapse-кнопки и expand-табы — только для desktop */
  .td-collapse-toggle,
  .td-expand-tab {
    display: none !important;
  }
}

/* Desktop: show sidebars, hide drawer toggles */
@media (min-width: 1280px) {
  .td-drawer-toggle {
    display: none;
  }
}

/* ====== Drawer overlay ====== */
.td-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(21, 20, 15, 0.35);
  z-index: 900;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.td-drawer-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.td-drawer-panel {
  position: fixed;
  top: 0;
  bottom: 0;
  width: min(360px, 85vw);
  background: var(--paper);
  z-index: 910;
  overflow-y: auto;
  padding: 1.5rem 1.25rem;
  transition: transform 0.3s cubic-bezier(0.2, 0.7, 0.2, 1);
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
}
.td-drawer-panel.left {
  left: 0;
  transform: translateX(-100%);
}
.td-drawer-panel.right {
  right: 0;
  transform: translateX(100%);
}
.td-drawer-panel.left.open,
.td-drawer-panel.right.open {
  transform: translateX(0);
}

/* =========================================================================
   542 / master-strategy.ru canonical tokens — scoped to (marketing) tree
   ========================================================================
   Applied when a parent element carries `.ms-canon` (see (marketing)/layout.tsx).
   Internal app pages (/solve, /login, /admin, /apply) keep ThinkDo aesthetic.
   ------------------------------------------------------------------------- */

.ms-canon {
  /* Canvas — white + slightly blue-tinted off-white for sections */
  --paper:       #FFFFFF;
  --paper-deep:  #F5F7FB;
  --paper-shade: #EEF2F8;

  /* Text — primary navy, secondary muted, caption faint */
  --ink:         #1B2E5B;
  --ink-mute:    #4A5775;
  --ink-faint:   #8A94A8;
  --rule:        #E3E8F0;

  /* Brand accents — mint primary, orange secondary */
  --ochre:       #2DD6B2;
  --ochre-deep:  #1AA88A;
  --sage:        #FFA85B;
  --terra:       #F0923A;
  --spark:       #254579;

  /* Steel/silicon — re-map to deep navy */
  --steel:        #0F1D3D;
  --steel-soft:   #1B2E5B;
  --steel-bright: #254579;

  /* Display = same family as body (IBM Plex Sans), not Serif */
  --ff-display: var(--font-body), "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;

  /* Native 542 tokens for components that opt in */
  --ms-mint:       #2DD6B2;
  --ms-mint-2:     #5BE4C8;
  --ms-mint-ink:   #1AA88A;
  --ms-orange:     #FFA85B;
  --ms-orange-ink: #F0923A;
  --ms-navy-ink:   #0F1D3D;
  --ms-navy-2:     #254579;

  --ms-radius-card: 16px;
  --ms-radius-card-lg: 24px;
  --ms-shadow-card: 0 8px 24px rgba(27, 46, 91, 0.08),
                    0 2px 6px rgba(27, 46, 91, 0.05);
  --ms-shadow-card-hover: 0 20px 48px rgba(27, 46, 91, 0.12),
                          0 6px 14px rgba(27, 46, 91, 0.06);
  --ms-grad-hero: radial-gradient(120% 80% at 80% 20%, rgba(45, 214, 178, 0.22) 0%, transparent 60%),
                  radial-gradient(100% 80% at 10% 90%, rgba(255, 168, 91, 0.18) 0%, transparent 55%),
                  linear-gradient(180deg, #FFFFFF 0%, #F5F7FB 100%);
}

/* Marketing tree uses Sans-on-navy selection */
.ms-canon ::selection {
  background: var(--ms-mint);
  color: var(--ms-navy-ink);
}

/* Body inherits cream/ink from :root; override inside .ms-canon */
.ms-canon { background: var(--paper); color: var(--ink); }

/* ms-canon · nav components — CSS-only hover (server-component friendly) */

.ms-canon .ms-nav-link {
  color: var(--ink);
  text-decoration: none;
  border-bottom: none;
  transition: color 0.2s;
}
.ms-canon .ms-nav-link:hover { color: var(--ms-mint-ink); }

.ms-canon .ms-nav-cta {
  color: var(--ms-navy-ink);
  background: var(--ms-mint);
  padding: 8px 18px;
  border-radius: 999px;
  text-decoration: none;
  border-bottom: none;
  font-weight: 600;
  transition: background 0.2s, transform 0.2s;
}
.ms-canon .ms-nav-cta:hover {
  background: var(--ms-mint-2);
  opacity: 1;
}

.ms-canon .ms-footer-link {
  color: var(--ink-mute);
  text-decoration: none;
  border-bottom: none;
  font-size: 14px;
  line-height: 1.45;
  transition: color 0.2s;
}
.ms-canon .ms-footer-link:hover { color: var(--ms-mint-ink); }

/* ms-canon · card primitives — soft radius + layered shadow on hover */
.ms-canon .ms-card {
  border-radius: var(--ms-radius-card);
  box-shadow: var(--ms-shadow-card);
  transition: transform 0.25s cubic-bezier(0.2, 0.7, 0.2, 1),
              box-shadow 0.25s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.ms-canon .ms-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--ms-shadow-card-hover);
}

/* ms-canon · hero radial gradient (mint + orange on white→#F5F7FB) */
.ms-canon .ms-hero {
  background: var(--ms-grad-hero);
}

/* ====== AppShell header — responsive ======
   The header (AppShell.tsx) is a single non-wrapping inline-styled flex row:
   brand + tagline + nav tabs + balance + user + logout. Its natural width is
   ~1300px and the app root has overflow:hidden, so on narrow viewports the nav
   tabs get clipped. Inline styles can't hold media queries, so these class-based
   rules use !important to override them. */

/* Laptop/tablet: drop the ~255px nowrap tagline before the tabs start clipping. */
@media (max-width: 1279px) {
  .td-brand-tag {
    display: none !important;
  }
}

/* Phone: header wraps; nav tabs become a full-width horizontally-scrollable
   strip so every menu item stays reachable. */
@media (max-width: 767px) {
  .td-appheader {
    flex-wrap: wrap !important;
    gap: 0.6rem !important;
    padding: 0 1rem !important;
  }
  .td-usermenu {
    gap: 0.5rem !important;
    margin-left: auto !important;
  }
  .td-tabs {
    order: 3 !important;
    flex: 1 0 100% !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    min-height: 46px !important;
    border-top: 1px solid rgba(0, 0, 0, 0.25) !important;
    scrollbar-width: none;
  }
  .td-tabs::-webkit-scrollbar {
    display: none;
  }
  .td-tabs a {
    flex: 0 0 auto !important;
    padding: 0 16px !important;
  }
}

/* =========================================================================
   Landing-scoped MS brand palette — navy/gold (506-d8 webinar landing)
   ========================================================================
   Wrap a landing page in `.theme-ms-landing` (or [data-theme="ms-landing"])
   to recolor it to the MS navy/gold brand WITHOUT touching :root or the
   rest of the site. Re-maps the SAME editorial token names the components
   already consume (paper/ink/ochre/spark/steel...), so existing primitives
   repaint automatically inside the wrapper.

   Palette: navy #0C2340 (canvas) · cream #E5E7EB (cards/light sections) ·
   gold #F59E0B (SINGLE action accent — CTA + badges) · teal #2DD6B2
   (links / secondary chips) · slate #1F2937 (text on light).

   canon: 506-d8 — landing-scoped MS brand palette navy/gold; do NOT promote
   to :root without brand decision
   ------------------------------------------------------------------------- */

.theme-ms-landing,
[data-theme="ms-landing"] {
  /* Canvas / sections — navy page, cream cards & light bands */
  --paper:       #0C2340; /* navy — page canvas / hero band */
  --paper-deep:  #E5E7EB; /* cream — cards & light sections */
  --paper-shade: #D7DBE2; /* cream-deep — alternating light sections */

  /* Text — slate on the light (cream) surfaces */
  --ink:         #1F2937; /* slate — primary text on light */
  --ink-mute:    rgba(31, 41, 55, 0.66);
  --ink-faint:   rgba(31, 41, 55, 0.42);
  --rule:        rgba(31, 41, 55, 0.14);

  /* Accents — gold is the ONLY action color; teal for links/secondary */
  --ochre:       #F59E0B; /* gold — CTA + badges (single accent) */
  --ochre-deep:  #D97706; /* gold-deep — hover / pressed */
  --sage:        #2DD6B2; /* teal — secondary chips */
  --terra:       #F59E0B; /* keep gold — avoid a competing accent */
  --spark:       #2DD6B2; /* teal — links / secondary chips */

  /* Silicon / dark surfaces — navy family */
  --steel:        #0C2340; /* navy — dark/silicon surface = canvas */
  --steel-soft:   #13294D;
  --steel-bright: #1C3A63;
  --glass:        #E5E7EB; /* cream — "glass" reads as light on navy */
  --glass-mute:   rgba(229, 231, 235, 0.7);
  --paper-on-steel:       rgba(229, 231, 235, 0.92); /* cream text on navy */
  --paper-on-steel-mute:  rgba(229, 231, 235, 0.56);
  --paper-on-steel-faint: rgba(229, 231, 235, 0.34);

  /* Native landing tokens for components that opt in explicitly */
  --ms-navy:  #0C2340;
  --ms-cream: #E5E7EB;
  --ms-gold:  #F59E0B;
  --ms-gold-ink: #D97706;
  --ms-teal:  #2DD6B2;
  --ms-slate: #1F2937;

  background: var(--paper);
  color: var(--paper-on-steel);
}

/* Gold selection on the navy landing */
.theme-ms-landing ::selection,
[data-theme="ms-landing"] ::selection {
  background: var(--ochre);
  color: var(--steel);
}

/* ==========================================================================
   Markdown-контент узлов BoK (FR-8, компонент components/ui/Markdown.tsx).
   Общий для клиентской читалки /bok/[id]/nodes/[nodeId] и серверной
   публичной витрины /knowledge/[slug]/[displayId]. Только токены — никаких
   захардкоженных цветов, иначе тема и BoK-палитра (DM-536-46) не следуют.
   ========================================================================== */

.td-markdown {
  line-height: 1.7;
  font-size: 1.05rem;
  color: var(--ink);
}
.td-markdown > :first-child { margin-top: 0; }
.td-markdown h1,
.td-markdown h2,
.td-markdown h3,
.td-markdown h4 {
  font-family: var(--ff-display);
  font-weight: 500;
  line-height: 1.25;
  margin: 2em 0 0.6em;
}
.td-markdown h1 { font-size: 1.7rem; }
.td-markdown h2 { font-size: 1.4rem; }
.td-markdown h3 { font-size: 1.18rem; }
.td-markdown h4 { font-size: 1.05rem; letter-spacing: 0.02em; }
.td-markdown p { margin: 0 0 1.1em; }
.td-markdown ul,
.td-markdown ol { margin: 0 0 1.1em; padding-left: 1.4em; }
.td-markdown li { margin-bottom: 0.4em; }
.td-markdown li > ul,
.td-markdown li > ol { margin-top: 0.4em; }
.td-markdown a { color: var(--accent-deep); text-underline-offset: 3px; }
.td-markdown blockquote {
  margin: 1.4em 0;
  padding-left: 1.1em;
  border-left: 2px solid var(--rule);
  color: var(--ink-mute);
}
.td-markdown code {
  font-family: var(--ff-mono);
  font-size: 0.9em;
  background: var(--paper-shade);
  padding: 0.12em 0.34em;
}
.td-markdown pre {
  background: var(--paper-shade);
  padding: 14px 16px;
  overflow-x: auto;   /* длинный код не растягивает страницу */
  margin: 0 0 1.2em;
}
.td-markdown pre code { background: none; padding: 0; }
.td-markdown hr { border: 0; border-top: 1px solid var(--rule); margin: 2em 0; }
/* Таблицы (remark-gfm): скроллятся внутри себя, не ломая колонку чтения. */
.td-markdown .td-md-tablewrap { overflow-x: auto; margin: 0 0 1.2em; }
.td-markdown table { border-collapse: collapse; width: 100%; font-size: 0.94rem; }
.td-markdown th,
.td-markdown td {
  border: 1px solid var(--rule);
  padding: 7px 10px;
  text-align: left;
  vertical-align: top;
}
.td-markdown th { font-weight: 600; background: var(--paper-deep); }
.td-markdown img { max-width: 100%; height: auto; }

