/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: italic;
  font-weight: 300 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/assets/fonts/font-01.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: 'Archivo';
  font-style: italic;
  font-weight: 300 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/assets/fonts/font-02.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: 'Archivo';
  font-style: italic;
  font-weight: 300 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/assets/fonts/font-03.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 300 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/assets/fonts/font-04.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: 'Archivo';
  font-style: normal;
  font-weight: 300 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/assets/fonts/font-05.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: 'Archivo';
  font-style: normal;
  font-weight: 300 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/assets/fonts/font-06.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 Mono';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-07.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 Mono';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-08.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 Mono';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-09.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 Mono';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-10.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 Mono';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-11.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 Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-12.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 Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-13.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 Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-14.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 Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-15.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 Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-16.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 Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/font-17.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 Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/font-18.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 Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/font-19.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 Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/font-20.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 Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/font-21.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 Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/font-22.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 Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/font-23.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 Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/font-24.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 Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/font-25.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 Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/font-26.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-27.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-28.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-29.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/font-30.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/font-27.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/font-28.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/font-29.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/font-30.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/font-27.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/font-28.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/font-29.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/font-30.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/font-27.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/font-28.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/font-29.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: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/font-30.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;
}


body{margin:0;background:#f2efe8;font-family:'Archivo',sans-serif;color:#1e1b24}
a{color:inherit;text-decoration:none}a:hover{color:inherit}
@media print{.site-nav,.cv-noprint{display:none !important}}
@media screen and (max-width:760px){
  [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important}
  [style*="border-right:3px solid"]{border-right:none !important}
  [style*="border-right:2px solid"]{border-right:none !important}
  [style*="padding:64px 40px"],[style*="padding:52px 40px"],[style*="padding:56px 40px"],[style*="padding:54px 44px"],[style*="padding:44px 40px"]{padding-left:20px !important;padding-right:20px !important}
  [style*="padding:34px 36px"],[style*="padding:30px 36px"]{padding:24px 20px !important}
  [style*="padding:22px 40px"],[style*="padding:16px 40px"],[style*="padding:14px 40px"],[style*="padding:18px 40px"],[style*="padding:26px 40px"]{padding-left:20px !important;padding-right:20px !important}
  [style*="max-width:820px"],[style*="max-width:780px"]{padding-left:20px !important;padding-right:20px !important}
  [style*="grid-template-columns:130px 1fr 1fr"]{grid-template-columns:84px 1fr 1fr !important;font-size:11.5px !important}
  .site-nav{flex-wrap:wrap;gap:10px;padding:12px 20px !important}
  .site-nav > div{flex-wrap:wrap}
  h1{overflow-wrap:break-word}
}
::selection{background:#7fd4c1;color:#1e1b24}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){[style*="animation"]{animation:none !important}}
@media screen and (max-width:760px){[style*="grid-template-columns:1fr 1fr 1fr"]{grid-template-columns:1fr !important}[style*="grid-template-columns:170px 1fr"]{grid-template-columns:1fr !important}}

.x1:hover{color:#8b6ab5!important}
.x2:hover{color:#8b6ab5!important}
.x3:hover{color:#8b6ab5!important}
.x4:hover{color:#8b6ab5!important}
.x5:hover{transform:rotate(-3deg)!important}
.x6:hover{background:#fbf8f0!important}
.x7:hover{background:#fbf8f0!important}
.x8:hover{background:#fbf8f0!important}
.x9:hover{background:#fbf8f0!important}
.x10:hover{background:#2a2634!important}
.x11:hover{background:#2a2634!important}
.x12:hover{background:#1e1b24!important;color:#f2efe8!important}
.x13:hover{background:#1e1b24!important;color:#f2efe8!important}
.x14:hover{background:#1e1b24!important;color:#f2efe8!important}
.x15:hover{background:#1e1b24!important;color:#f2efe8!important}
.x16:hover{background:#1e1b24!important;color:#f2efe8!important}
.x17:hover{background:#1e1b24!important;color:#f2efe8!important}
.x18:hover{background:#1e1b24!important;color:#f2efe8!important}
.x19:hover{background:#1e1b24!important;color:#f2efe8!important}
.x20:hover{background:#1e1b24!important;color:#f2efe8!important}
.x21:hover{background:#1e1b24!important;color:#f2efe8!important}
.x22:hover{background:#1e1b24!important;color:#f2efe8!important}
.x23:hover{background:#1e1b24!important;color:#f2efe8!important}
.x24:hover{background:#1e1b24!important;color:#f2efe8!important}
.x25:hover{background:#1e1b24!important;color:#f2efe8!important}
.x26:hover{background:#1e1b24!important;color:#f2efe8!important}
.x27:hover{background:#1e1b24!important;color:#f2efe8!important}
.x28:hover{background:#8b6ab5!important;border-color:#8b6ab5!important}
.x29:hover{color:#8b6ab5!important}
.x30:hover{color:#8b6ab5!important}
.x31:hover{color:#8b6ab5!important}
.x32:hover{color:#8b6ab5!important}
.x33:hover{opacity:1!important}
.x34:hover{color:#8b6ab5!important}
.x35:hover{color:#8b6ab5!important}
.x36:hover{color:#8b6ab5!important}
.x37:hover{color:#8b6ab5!important}
.x38:hover{filter:brightness(1.04)!important}
.x39:hover{color:#8b6ab5!important}
.x40:hover{color:#8b6ab5!important}
.x41:hover{color:#8b6ab5!important}
.x42:hover{color:#8b6ab5!important}
.x43:hover{color:#8b6ab5!important}
.x44:hover{color:#8b6ab5!important}
.x45:hover{color:#8b6ab5!important}
.x46:hover{color:#8b6ab5!important}
.x47:hover{color:#8b6ab5!important}
.x48:hover{color:#8b6ab5!important}
.x49:hover{color:#8b6ab5!important}
.x50:hover{color:#8b6ab5!important}
.x51:hover{color:#8b6ab5!important}
.x52:hover{color:#8b6ab5!important}
.x53:hover{color:#8b6ab5!important}
.x54:hover{color:#8b6ab5!important}
.x55:hover{color:#8b6ab5!important}
.x56:hover{color:#8b6ab5!important}
.x57:hover{color:#8b6ab5!important}
.x58:hover{color:#8b6ab5!important}
.x59:hover{color:#8b6ab5!important}
.x60:hover{color:#8b6ab5!important}
.x61:hover{color:#8b6ab5!important}
.x62:hover{color:#8b6ab5!important}
.x63:hover{color:#8b6ab5!important}
.x64:hover{color:#8b6ab5!important}
.x65:hover{color:#8b6ab5!important}
.x66:hover{color:#8b6ab5!important}
.x67:hover{color:#8b6ab5!important}
.x68:hover{color:#8b6ab5!important}
.x69:hover{color:#8b6ab5!important}
.x70:hover{color:#8b6ab5!important}
.x71:hover{color:#8b6ab5!important}
.x72:hover{color:#8b6ab5!important}
.x73:hover{color:#8b6ab5!important}
.x74:hover{color:#8b6ab5!important}
.x75:hover{color:#8b6ab5!important}
.x76:hover{background:#8b6ab5!important}
.x77:hover{color:#8b6ab5!important}
.x78:hover{color:#8b6ab5!important}
.x79:hover{color:#8b6ab5!important}
.x80:hover{color:#8b6ab5!important}
.x81:hover{background:#8b6ab5!important}
.x82:hover{color:#8b6ab5!important}
.x83:focus{border-color:#8b6ab5!important}
.x84:focus{border-color:#8b6ab5!important}
.x85:focus{border-color:#8b6ab5!important}
.x86:focus{border-color:#8b6ab5!important}
.x87:hover{color:#8b6ab5!important}
.x88:hover{color:#8b6ab5!important}
.x89:hover{color:#8b6ab5!important}
.x90:hover{color:#8b6ab5!important}
.x91:hover{background:#8b6ab5!important;border-color:#8b6ab5!important}
.x92:hover{color:#8b6ab5!important}
.x93:hover{color:#8b6ab5!important}
.x94:hover{color:#c7a9c4!important}
.x95:hover{border-color:rgb(79,70,229)!important;box-shadow:0 4px 12px rgba(16,24,40,.1)!important}
.x96:hover{border-color:rgb(79,70,229)!important;box-shadow:0 4px 12px rgba(16,24,40,.1)!important}
.x97:hover{border-color:rgb(79,70,229)!important;box-shadow:0 4px 12px rgba(16,24,40,.1)!important}
.x98:hover{color:#1e293b!important}
.x99:hover{color:#1e293b!important}
.x100:hover{color:#1e293b!important}
.x101:hover{background:#e0e7ff!important}
.x102:hover{background:#f1f5f9!important}
.x103:hover{background:#f1f5f9!important}
.x104:hover{background:#f1f5f9!important}
.x105:hover{background:#f1f5f9!important}
.x106:hover{background:#f1f5f9!important}
.x107:hover{background:#eef2ff!important}
.x108:hover{color:#1e293b!important}
.x109:hover{box-shadow:inset 0 0 0 2px rgb(79,70,229)!important}
.x110:hover{box-shadow:inset 0 0 0 2px rgb(79,70,229)!important}
.x111:hover{box-shadow:inset 0 0 0 2px rgb(79,70,229)!important}
.x112:hover{background:#e0e7ff!important}
.x113:hover{color:#f2efe8!important}

/* --- static-rebuild additions --- */
html{scroll-behavior:smooth}
main{display:flex;flex-direction:column;min-height:100vh}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:3px solid #6d4f96;outline-offset:2px}
img{max-width:100%}
/* These override inline styles carried over from the design bundle, so the
   !important flags are load-bearing, not laziness. */
#clients-more{display:none!important}
#clients-more.is-open{display:flex!important}
.demo-panel-collapsed{display:none!important}
.is-hidden{display:none!important}
@media print{.site-nav,[data-action="print"]{display:none!important}}

/* --- notes --- */
.xnote:hover{background:#fbf8f0}
.xnav:hover{color:#8b6ab5}
.note-body h2{font-size:22px;font-weight:800;text-transform:uppercase;font-stretch:75%;
  letter-spacing:-.01em;margin:38px 0 12px;line-height:1.15}
.note-body h3{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:#6d4f96;margin:32px 0 10px}
.note-body p{margin:0 0 18px}
.note-body ul,.note-body ol{margin:0 0 18px;padding-left:22px}
.note-body li{margin:0 0 8px}
.note-body a{border-bottom:2px solid #1e1b24}
.note-body a:hover{color:#8b6ab5;border-color:#8b6ab5}
.note-body blockquote{margin:26px 0;padding:2px 0 2px 20px;border-left:3px solid #1e1b24;
  font-size:19px;font-weight:600;line-height:1.45}
.note-body code{font-family:'IBM Plex Mono',monospace;font-size:.88em;background:#e7e3d9;padding:2px 5px}
.note-body pre{background:#1e1b24;color:#f2efe8;padding:16px 18px;overflow-x:auto;margin:0 0 18px}
.note-body pre code{background:none;color:inherit;padding:0}
.note-body hr{border:none;border-top:1px dashed #6d675c;margin:32px 0}
.note-body img{border:2px solid #1e1b24;margin:8px 0 18px}

/* --- inline citation links inside the papers --- */
.plink{border-bottom:2px solid #6d4f96}
.plink:hover{color:#6d4f96}

/* --- CV on small screens ---------------------------------------------
   The CV renders inside <doc-page>, a fixed Letter-width paper sheet
   (8.5in). That's right for print and for desktop, but it overflows a
   phone by ~470px. Below 820px the sheet goes fluid.
   Scoped to `screen` on purpose: a bare max-width query would also match
   the printed page (Letter is ~816px at 96dpi) and undo the paper layout. */
@media screen and (max-width: 820px) {
  doc-page {
    --doc-page-w: auto !important;
    --doc-page-margin: 22px !important;
    min-width: 0 !important;
    padding: 16px 10px !important;
  }
  /* Each job is a flex row: role on the left, dates + location on the right,
     and that right-hand string carries white-space:nowrap. Together they held
     the sheet open to 460px on a phone. Stack the halves and let the dates
     wrap. Both classes are set in src/cv.html. */
  .cv-row {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 2px !important;
  }
  .cv-nowrap {
    white-space: normal !important;
  }
}
