/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.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(https://fonts.gstatic.com/s/inter/v19/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.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;
}
/* Default css file for jemdoc. */table#tlayout{border:none;border-collapse:separate;background:white}body{background:white;font-family:Georgia,serif;padding-bottom:8px;margin:0}#layout-menu{background:#f6f6f6;border:1px solid #dddddd;padding-top:.5em;padding-left:8px;padding-right:8px;font-size:1em;width:auto;white-space:nowrap;text-align:left;vertical-align:top}#layout-content{padding-top:0;padding-left:1em;padding-right:1em;border:none;background:white;text-align:left;vertical-align:top}#layout-menu a{line-height:1.5em;margin-left:.5em}tt{background:#ffffdd}pre,tt{font-size:90%;font-family:monaco,monospace}a,a>tt{color:#224b8d;text-decoration:none}a:hover{border-bottom:1px gray dotted}#layout-menu a.current:link,#layout-menu a.current:visited{color:#022b6d;border-bottom:1px gray solid}#layout-menu a:link,#layout-menu a:visited,#layout-menu a:hover{color:#527bbd;text-decoration:none}#layout-menu a:hover{text-decoration:none}div.menu-category{border-bottom:1px solid gray;margin-top:.8em;padding-top:.2em;padding-bottom:.1em;font-weight:700}div.menu-item{padding-left:16px;text-indent:-16px}div#toptitle{padding-bottom:.2em;margin-bottom:1.5em;border-bottom:3px double gray}div#toptitle+h2,div#toptitle+h3{margin-top:-.7em}div#subtitle{margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:.1em}em{font-style:italic}strong{font-weight:700}h1,h2,h3{color:#527bbd;margin-top:.7em;margin-bottom:.3em;padding-bottom:.2em;line-height:1;padding-top:.5em;border-bottom:1px solid #aaa}h1{font-size:165%}h2{padding-top:.8em;font-size:125%}h2+h3{padding-top:.2em}h3{font-size:110%;border-bottom:none}p{margin-top:0;margin-bottom:.8em;padding:0;line-height:1.3}pre{padding:0;margin:0}div#footer{font-size:small;border-top:1px solid #c0c0c0;padding-top:.1em;margin-top:4em;color:#c0c0c0}div#footer a{color:#80a0b0}div#footer-text{float:left;padding-bottom:8px}ul,ol,dl{margin-top:.2em;padding-top:0;margin-bottom:.8em}dt{margin-top:.5em;margin-bottom:0}dl{margin-left:20px}dd{color:#222}dd>*:first-child{margin-top:0}ul{list-style-position:outside;list-style-type:square}li ul,li ol{margin-top:-.3em}ol{list-style-position:outside;list-style-type:decimal}li p,dd p{margin-bottom:.3em}ol ol{list-style-type:lower-alpha}ol ol ol{list-style-type:lower-roman}p+div.codeblock{margin-top:-.6em}div.codeblock,div.infoblock{margin-right:0;margin-top:1.2em;margin-bottom:1.3em}div.blocktitle{font-weight:700;color:#cd7b62;margin-top:1.2em;margin-bottom:.1em}div.blockcontent{border:1px solid silver;padding:.3em .5em}div.infoblock>div.blockcontent{background:#ffffee}div.blockcontent p+ul,div.blockcontent p+ol{margin-top:.4em}div.infoblock p{margin-bottom:0}div.infoblock li p,div.infoblock dd p{margin-bottom:.5em}div.infoblock p+p{margin-top:.8em}div.codeblock>div.blockcontent{background:#f6f6f6}span.pycommand{color:#000070}span.statement{color:#008800}span.builtin{color:#000088}span.special{color:#990000}span.operator{color:#880000}span.error{color:#aa0000}span.comment,span.comment>*,span.string,span.string>*{color:#606060}@media print{#layout-menu{display:none}}#fwtitle{margin:2px}#fwtitle #toptitle{padding-left:.5em;margin-bottom:.5em}div#toptitle h1,#layout-content div#toptitle h1{margin-bottom:0;padding-bottom:.1em;padding-top:0;margin-top:.5em;border-bottom:none}img.eq{padding:0;padding-left:.1em;padding-right:.1em;margin:0}img.eqwl{padding-left:2em;padding-top:.6em;padding-bottom:.2em;margin:0}table{border:2px solid #000;border-collapse:collapse}td{padding:2px;padding-left:.5em;padding-right:.5em;text-align:center;border:1px solid gray}table+table{margin-top:1em}tr.heading{font-weight:700;border-bottom:2px solid #000}img{border:none}table.imgtable,table.imgtable td{border:none;text-align:left}html{scroll-behavior:smooth}body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-color:#fff;color:#343a40;line-height:1.6}#layout-content{padding:2.5rem 3rem}#toptitle h1{font-size:2.5rem;font-weight:700;color:#212529;margin-bottom:1rem;padding-bottom:0}h2{font-size:1.75rem;font-weight:700;color:#343a40;border-bottom:2px solid #dee2e6;padding-bottom:.6em;margin-top:2.5em;margin-bottom:1.5em}a{color:#007bff;text-decoration:none;transition:all .2s ease-in-out}a:hover{color:#0056b3;text-decoration:underline}#layout-menu{position:fixed;top:0;left:0;bottom:0;width:260px;background-color:#fff;z-index:1001;transform:translateX(-100%);transition:transform .3s ease-in-out;padding:1.5rem;overflow-y:auto}
body.menu-open #layout-menu{box-shadow:0 0 20px rgba(0,0,0,.1)}table#tlayout{width:100%;max-width:1200px;margin:0 auto;border:none;border-collapse:collapse;background:transparent}#layout-content{padding:1.3rem 3rem 2.4rem;transition:margin-left .3s ease-in-out}.top-nav-bar{position:static;z-index:1000;background-color:#fff;padding:8px 16px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);border:1px solid #e9ecef;display:flex;align-items:center;gap:8px}.top-nav-bar a{font-weight:500}.top-nav-link{color:#007bff!important}.top-nav-active{color:#212529!important;font-weight:600!important}.top-nav-divider{color:#dee2e6;font-size:.9em;user-select:none}.menu-category{user-select:none;font-weight:700;font-size:1.2em;color:#212529;margin-bottom:1em;padding-bottom:.5em;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;align-items:center}#menu-close-btn{font-size:1.8rem;font-weight:300;line-height:1;cursor:pointer;color:#6c757d;transition:color .2s}#menu-close-btn:hover{color:#212529}#menu-items .menu-item{padding-left:0;text-indent:0}#menu-items .menu-item a{display:flex;align-items:center;padding:10px 16px;border-radius:6px;color:#495057;font-weight:500;margin-bottom:4px}#menu-items .menu-item a:hover{background-color:#007bff;color:#fff;text-decoration:none}#menu-items .menu-item a.current{background-color:#007bff;color:#fff}#menu-items .menu-item a.current:hover{background-color:#0069d9;color:#fff}.menu-category-title{padding:.7em 1em .2em;display:block;color:#6c757d;font-weight:700;text-transform:uppercase;font-size:.8em;letter-spacing:.5px}.menu-icon{width:18px;height:18px;margin-right:12px;flex-shrink:0}.personal-info-wrapper{display:flex;align-items:flex-start;gap:2rem;flex-wrap:wrap}.personal-info-wrapper>p{margin:0}.keywords-container{flex-shrink:0;width:auto;max-width:280px;display:flex;flex-wrap:wrap}.keyword-pill{display:inline-block;background-color:#e7f3ff;color:#005a9e;padding:6px 12px;border-radius:16px;margin:4px 2px;font-size:13px;font-weight:500;transition:all .2s ease-in-out;border:1px solid #bde0ff}.keyword-pill:hover{background-color:#d0e7ff;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.05)}ul,ol{padding-left:20px}li p{margin-bottom:.5em}#menu-toggle-btn{position:fixed;top:20px;left:20px;z-index:1000;cursor:pointer;background:#fff;border-radius:50%;width:50px;height:50px;display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;box-shadow:0 4px 12px rgba(0,0,0,.15);transition:all .2s ease-in-out}#menu-toggle-btn:hover{transform:scale(1.1);box-shadow:0 6px 16px rgba(0,0,0,.2)}#menu-toggle-btn span{display:block;width:22px;height:2px;background-color:#343a40}#page-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}body.menu-open #layout-menu{transform:translateX(0)}body.menu-open #page-overlay{opacity:1;visibility:visible;transition:opacity .3s}

.education-logo {
    height: 30px !important;
    width: auto;
    vertical-align: middle;
    margin-right: 8px;
}

/* Language dropdown */
.lang-dropdown {
    position: relative;
}

.lang-dropdown-menu {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,.12);
    min-width: 120px;
    overflow: hidden;
    z-index: 1001;
}

.lang-dropdown-menu.show {
    display: block;
}

.lang-option {
    display: block;
    padding: 10px 16px;
    color: #495057 !important;
    font-weight: 500;
    text-decoration: none !important;
    transition: background .15s;
}

.lang-option:hover {
    background: #f0f4ff;
    color: #007bff !important;
    text-decoration: none !important;
}

.lang-option.active {
    color: #007bff !important;
    font-weight: 600;
    background: #f0f7ff;
}

/* 语言切换 - 默认隐藏中文内容以防止闪烁 */
.lang-zh {
    display: none !important;
}

/* ===== Cross-platform polish & dark mode ===== */

/* iPhone notch safe-area */
.site-header-inner{padding-top:calc(var(--space-6) + env(safe-area-inset-top))}
#menu-toggle-btn{top:calc(15px + env(safe-area-inset-top));left:calc(15px + env(safe-area-inset-left))}

/* selection, keyboard focus, sidebar scrollbar */
::selection{background:#007bff;color:#fff}
a:focus-visible,button:focus-visible{outline:2px solid #007bff;outline-offset:2px;border-radius:4px}
#layout-menu::-webkit-scrollbar{width:8px}
#layout-menu::-webkit-scrollbar-track{background:transparent}
#layout-menu::-webkit-scrollbar-thumb{background:#c4ccd6;border-radius:4px}

/* dark mode - applied via <html data-theme="dark"> set by assets/script.js
   (follows system preference until the user toggles manually) */
:root[data-theme="dark"] ::selection{background:#2a6fd6;color:#fff}
    :root[data-theme="dark"] a:focus-visible,:root[data-theme="dark"] button:focus-visible{outline-color:#6ab0ff}
    :root[data-theme="dark"] #layout-menu::-webkit-scrollbar-thumb{background:#3a404c}

    :root[data-theme="dark"] body{background-color:#000000;color:#d8dde5}
    :root[data-theme="dark"] #layout-content{background:transparent}
    :root[data-theme="dark"] #layout-menu{background-color:#000000;box-shadow:none}
    :root[data-theme="dark"] .top-nav-bar{background-color:#000000;border-color:#2a2f3a;box-shadow:0 2px 8px rgba(0,0,0,.4)}
    :root[data-theme="dark"] #menu-toggle-btn{background-color:#000000;box-shadow:0 4px 12px rgba(0,0,0,.5)}
    :root[data-theme="dark"] #menu-toggle-btn span{background-color:#d8dde5}
    :root[data-theme="dark"] #menu-close-btn{color:#8a93a1}
    :root[data-theme="dark"] #menu-close-btn:hover{color:#e9ecef}

    :root[data-theme="dark"] .top-nav-link{color:#6ab0ff !important}
    :root[data-theme="dark"] .top-nav-active{color:#f1f3f5 !important}
    :root[data-theme="dark"] .top-nav-divider{color:#3a404c}

    :root[data-theme="dark"] div#toptitle{border-bottom-color:#2a2f3a}
    :root[data-theme="dark"] h1,:root[data-theme="dark"] h2,:root[data-theme="dark"] h3{color:#a9c7f5;border-bottom-color:#2a2f3a}
    :root[data-theme="dark"] #toptitle h1{color:#f1f3f5;border-bottom-color:#2a2f3a}
    :root[data-theme="dark"] a{color:#6ab0ff}
    :root[data-theme="dark"] a:hover{color:#8ec2ff}
    :root[data-theme="dark"] tt{background-color:#2a2d1f}

    :root[data-theme="dark"] div.menu-category{border-bottom-color:#2a2f3a;color:#e9ecef}
    :root[data-theme="dark"] #menu-items .menu-item a{color:#c3cad4}
    :root[data-theme="dark"] #menu-items .menu-item a:hover{background-color:#007bff;color:#fff}
    :root[data-theme="dark"] #menu-items .menu-item a.current{background-color:#007bff;color:#fff}
    :root[data-theme="dark"] .menu-category-title{color:#8a93a1}

    :root[data-theme="dark"] .lang-dropdown-menu{background-color:#000000;border-color:#2a2f3a}
    :root[data-theme="dark"] .lang-option{color:#c3cad4 !important}
    :root[data-theme="dark"] .lang-option:hover{background-color:#262c37;color:#e9ecef !important}
    :root[data-theme="dark"] .lang-option.active{color:#6ab0ff !important;background-color:#16273e}

    :root[data-theme="dark"] table{border-color:#3a404c}
    :root[data-theme="dark"] td{border-color:#3a404c}
    :root[data-theme="dark"] tr.heading{border-bottom-color:#3a404c}

    /* inline-styled gray descriptions need a lighter tone in dark mode */
    :root[data-theme="dark"] p[style*="color:#555"]{color:#9aa4b2 !important}
    /* dark-on-transparent logos: invert to a light tone instead of a background chip */
    :root[data-theme="dark"] img[src*="szbl-logo"],:root[data-theme="dark"] img[src*="xju-logo"],:root[data-theme="dark"] img[src*="thu-logo"],:root[data-theme="dark"] img[src*="openreview"]{filter:invert(.88) hue-rotate(180deg) saturate(1.1)}

    :root[data-theme="dark"] .theme-toggle{background-color:#262c37;border-color:#2a2f3a}
    :root[data-theme="dark"] img[src*="wyq-small"]{box-shadow:0 4px 14px rgba(0,0,0,.45)}
    :root[data-theme="dark"] div#footer{border-top-color:#2a2f3a}

/* theme toggle button */
.theme-toggle{margin-left:8px;border:1px solid #e9ecef;background:#fff;border-radius:50%;width:32px;height:32px;padding:0;cursor:pointer;font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:transform .2s ease,background .2s ease}
.theme-toggle:hover{transform:scale(1.1)}

/* rounded profile photo */
img[src*="wyq-small"]{border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.15);width:200px;height:auto}

/* hanging indent so wrapped paper entries align after the first line */
#layout-content li>p{padding-left:1.6em;text-indent:-1.6em}

/* collapsible boxes (project abstracts, reviewer list) */
details.collapse-box,details.abstract-box{margin:.3em 0}
details.collapse-box summary,details.abstract-box summary{cursor:pointer;color:#3b6ea5;font-weight:600;padding:4px 0;list-style:none;user-select:none}
details.collapse-box summary::-webkit-details-marker,details.abstract-box summary::-webkit-details-marker{display:none}
details.collapse-box summary::before,details.abstract-box summary::before{content:"▸ "}
details.collapse-box[open] summary::before,details.abstract-box[open] summary::before{content:"▾ "}
details.collapse-box[open],details.abstract-box[open]{padding-bottom:.2em}
:root[data-theme="dark"] details.collapse-box summary,:root[data-theme="dark"] details.abstract-box summary{color:#9cc3ee}
details.abstract-box summary,details.collapse-box summary{display:flex;align-items:center;list-style:none}
details.abstract-box summary::marker,details.collapse-box summary::marker{content:''}
li:has(> details.abstract-box){list-style-type:none}

/* sidebar theme toggle row */
button.theme-toggle-menu{
    all:unset;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    padding:10px 16px;
    margin:0;
    border-radius:6px;
    color:#495057;
    font:inherit;
    font-weight:500;
    cursor:pointer;
    text-indent:0;
    transition:background .15s ease;
}
button.theme-toggle-menu:hover{background:#eef4fc}
:root[data-theme="dark"] button.theme-toggle-menu{color:#c9d4e3}
:root[data-theme="dark"] button.theme-toggle-menu:hover{background:#262c37}
div#footer{border-top:1px solid #e9ecef;margin-top:3em;padding-top:.8em;font-size:.9em;color:#8a93a1;text-align:center}
div#footer-text{float:none;display:inline}

/* flat hero: no legacy double rules under the name */
div#toptitle{border-bottom:none;margin-bottom:.8em}
#toptitle h1{border-bottom:none;margin-bottom:.6rem}

/* kill legacy table-cell borders on the layout cells */
td#layout-content,td#layout-menu{border:none}
td#layout-content{background:transparent}

/* sidebar items that duplicate the top nav: desktop hides them, mobile keeps them */
/* sidebar items that duplicate the top nav are always hidden; nav lives in the top bar */
.menu-item.nav-dup,.menu-category-title.nav-dup{display:none}
#menu-close-btn{display:none}
.imgtable td:first-child{padding-right:2em}

/* typography: justified text (CJK-friendly); bare URLs opt into char-level breaking so lines fill */
#layout-content p,#layout-content li p{text-align:justify;text-justify:inter-ideograph}
#layout-content .imgtable p{text-align:start}
table.imgtable{margin-bottom:1.6em}
ol.link-list>li>p{text-align:start}
a.url-link{word-break:break-all}
#layout-content a{overflow-wrap:anywhere}
p{line-height:1.7;margin-bottom:.9em}
h2{font-size:1.45rem;line-height:1.25;padding-top:0;border-left:4px solid #0047ab;padding-left:14px;border-bottom:none;padding-bottom:0;margin-top:3.2em;margin-bottom:1.1em;color:#1a1f27}
:root[data-theme="dark"] h2{border-left-color:#5b9bff;color:#c9d4e3}
/* research-interests line under the name (plain text, Barron-style) */
.research-tags{margin:.1rem 0 1.6rem;font-size:1.05rem;color:#6c757d}
:root[data-theme="dark"] .research-tags{color:#9aa4b2}

/* printing always stays light */
@media print{
    body{background:#fff !important;color:#000 !important}
    #layout-content{background:#fff !important;border:none !important}
}

/* featured paper entry: figure with its citation beneath on one side, description vertically centered on the other; sides alternate */
.paper-fig-body{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:var(--space-2) var(--space-6);padding-bottom:0}
.paper-fig{grid-column:1;grid-row:1;width:100%;margin:0}
li:nth-child(even) .paper-fig{grid-column:2}
.paper-fig a{display:block;border-bottom:none}
.paper-fig img{display:block;width:100%;height:auto;box-sizing:border-box}
.paper-cite{grid-column:1;grid-row:2;font-size:.86em;color:#6c757d;margin:0}
li:nth-child(even) .paper-cite{grid-column:2}
.paper-tldr{grid-column:2;grid-row:1/span 2;align-self:center;margin:0}
li:nth-child(even) .paper-tldr{grid-column:1}
:root[data-theme="dark"] .paper-cite{color:#a9b4c2}
:root[data-theme="dark"] .paper-fig img{border:1px solid #2a2f3a;filter:invert(1) hue-rotate(180deg)}
/* featured lists read cleaner without square markers */
ul:has(> li .paper-fig){list-style-type:none}
/* ===== one printed page for every device: a fixed 1200px sheet — a 920px article centered on the sheet — scaled to fit phones and tablets, exactly like a PDF ===== */
html{font-size:14px}
.academic-page{
    --page-width:1200px;--article-width:920px;
    --page-gutter:calc((var(--page-width) - var(--article-width))/2);
    --type-page-title:35px;--type-section:18px;--type-item:15px;--type-body:13px;--type-meta:12px;
    font-size:var(--type-body);line-height:1.65;
}
#menu-toggle-btn{display:none}
td#layout-menu,body.menu-open td#layout-menu{position:absolute;left:0;top:0;transform:none;width:200px;box-shadow:none;overflow:visible;padding:1.5rem .75rem;background:transparent;font-size:.95rem;box-sizing:border-box}
table#tlayout{width:var(--page-width);max-width:var(--page-width);margin:0 auto;border:none;border-collapse:collapse;background:transparent;table-layout:fixed}
td#layout-content{width:var(--page-width);box-sizing:border-box;padding:2.5rem var(--page-gutter) 2.5rem}

/* Shared vertical rhythm: each section owns its heading, introduction, and list. */
.academic-page td#layout-content{padding-top:var(--space-8);padding-bottom:var(--space-12)}
.academic-page #toptitle{margin:0;padding:0}
.academic-page #layout-content #toptitle h1{margin:0;padding:0;line-height:1.2;font-size:var(--type-page-title)}
.academic-page #layout-content p{margin:0 0 var(--space-3);font-size:var(--type-body);line-height:1.65}
.academic-page #layout-content h2{margin:0 0 var(--space-6);font-size:var(--type-section);line-height:1.4}
.academic-page #layout-content h3{margin:0 0 var(--space-3);padding:0;font-size:var(--type-item);font-weight:600;line-height:1.5}
.academic-page #layout-content ul,.academic-page #layout-content ol{margin:0;padding:0 0 0 var(--space-5)}
.academic-page #layout-content li>p{margin:0}
.academic-page #layout-content ul:not(.featured-papers)>li+li,
.academic-page #layout-content ol>li+li{margin-top:var(--space-3)}
.academic-page #layout-content li>ul,.academic-page #layout-content li>ol{margin-top:var(--space-3)}
.academic-page #layout-content .content-section{display:flow-root;margin:0}
.academic-page #layout-content .content-section+.content-section{margin-top:var(--space-12)}
.academic-page #layout-content .content-section>:last-child{margin-bottom:0}
.academic-page #layout-content .content-section>h2:has(+h3){margin-bottom:var(--space-4)}
.academic-page #layout-content .research-section>.featured-heading{margin-bottom:var(--space-6)}
.academic-page #layout-content .research-direction-title{
    margin:0 0 var(--space-3);
    padding:0;
    font-size:var(--type-item);
    line-height:1.5;
    font-weight:600;
}
.academic-page #layout-content .research-direction+.research-direction{margin-top:var(--space-12)}
.academic-page #layout-content .research-intro{margin:0}
.academic-page #layout-content .featured-papers{
    display:grid;
    gap:var(--space-10);
    list-style:none;
    padding:0;
    margin:var(--space-6) 0 0;
}
.academic-page #layout-content .paper-cite,.academic-page #layout-content .paper-tldr{margin:0;font-size:var(--type-body)}
.academic-page .research-tags{font-size:var(--type-body);line-height:1.65}
.academic-page #layout-content .research-direction+p{margin-top:var(--space-8)}
.academic-page #layout-content .publication-direction>h2{margin-bottom:var(--space-3)}
.academic-page #layout-content .citation-list{margin-top:var(--space-6)}
.publications-page #layout-content .publication-note{margin:var(--space-3) 0 0}
.publications-page #layout-content>div.lang-zh,.publications-page #layout-content>div.lang-en,
.experience-page #layout-content>div.lang-zh,.experience-page #layout-content>div.lang-en{margin-top:var(--space-8)}
.home-page #layout-content>.imgtable{margin:0}
.home-page #layout-content>div.lang-zh,.home-page #layout-content>div.lang-en{margin-top:var(--space-12)}
.experience-page #layout-content .content-section>ol:has(>li>ul)>li+li{margin-top:var(--space-6)}
.academic-page #footer{margin-top:var(--space-12);padding-top:var(--space-4);font-size:var(--type-meta);line-height:1.65}

/* Education: institution and dates first, with separate roles and research details. */
.education-list{
    --education-heading:#1a1f27;
    --education-secondary:#59636e;
    --education-rule:#e6e9ed;
    --education-link:#0070df;
    container-type:inline-size;
}
.education-entry{
    display:grid;
    grid-template-columns:112px minmax(0,1fr);
    column-gap:var(--space-5);
    row-gap:6px;
    padding:var(--space-6) 0;
}
.education-entry:first-child{padding-top:0}
.education-entry:last-child{padding-bottom:0}
.education-entry+.education-entry{border-top:1px solid var(--education-rule)}
.education-mark{
    grid-column:1;
    grid-row:1/span 2;
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:56px;
}
#layout-content .education-list .education-logo{
    display:block;
    width:auto;
    height:auto !important;
    max-width:112px;
    max-height:52px;
    object-fit:contain;
    margin:0;
}
#layout-content .education-mark img[src*="szbl-logo-mark"]{filter:none}
#layout-content .education-list .education-logo-dark{display:none}
:root[data-theme="dark"] #layout-content .education-list .education-logo-light{display:none}
:root[data-theme="dark"] #layout-content .education-list .education-logo-dark{display:block}
.education-content{display:contents}
.education-content>*{grid-column:2;min-width:0}
.education-header{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px 14px;
    align-items:baseline;
    grid-row:1;
    margin-bottom:0;
}
#layout-content .education-header h3{
    margin:0;
    padding:0;
    border:none;
    color:var(--education-heading);
    font-size:var(--type-item);
    line-height:1.5;
    font-weight:600;
}
.education-date{
    color:var(--education-secondary);
    font-size:var(--type-meta);
    line-height:1.5;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
}
#layout-content .education-list p{
    margin:0;
    padding:0;
    text-indent:0;
    text-align:left;
    font-size:var(--type-body);
    line-height:1.65;
    overflow-wrap:break-word;
}
#layout-content .education-list .education-role{
    grid-row:2;
    color:var(--education-heading);
    font-weight:600;
}
.education-unit{color:var(--education-secondary)}
.education-mentors{margin-top:6px}
#layout-content .education-mentors p+p{margin-top:4px}
#layout-content .education-list a{color:var(--education-link);overflow-wrap:break-word}
#layout-content .education-header a{color:inherit;font-weight:inherit}
#layout-content .education-unit a{
    color:inherit;
    text-decoration:underline;
    text-decoration-color:var(--education-rule);
    text-underline-offset:3px;
}
#layout-content .education-list a:hover{color:var(--education-link);border-bottom:none}
#layout-content .education-program-link{font-size:var(--type-meta)}
.education-details{margin-top:6px}
.education-details summary{
    width:fit-content;
    color:var(--education-link);
    font-size:var(--type-meta);
    line-height:1.65;
    cursor:pointer;
}
#layout-content .education-details p{margin-top:var(--space-2);color:var(--education-secondary);font-size:var(--type-body)}
:root[data-theme="dark"] .education-list{
    --education-heading:#c9d4e3;
    --education-secondary:#a9b2be;
    --education-rule:#2a2f3a;
    --education-link:#83b9ff;
}

/* The page header belongs to document flow and scrolls away with the page. */
.site-header{width:var(--page-width);margin:0 auto}
.site-header-inner{padding:var(--space-6) var(--page-gutter) 0;display:flex;justify-content:flex-end}
.site-header .top-nav-bar{position:static;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;gap:var(--space-3);z-index:auto}
.site-header .top-nav-link{color:#5e6671!important;font-size:var(--type-body)}
.site-header .top-nav-link:hover,.site-header .top-nav-active{color:#1a1f27!important}
:root[data-theme="dark"] .site-header .top-nav-bar{background:transparent;box-shadow:none}
:root[data-theme="dark"] .site-header .top-nav-link{color:#a9b4c2!important}
:root[data-theme="dark"] .site-header .top-nav-link:hover{color:#f1f3f5!important}
.keep-together{white-space:nowrap}
.academic-page #layout-content li>p{padding-left:0;text-indent:0}
.home-page #layout-content .paper-tldr{text-align:justify;text-justify:auto}
.experience-page #layout-content p{text-align:left}

/* Publications: year, title, authors, venue, and quiet actions. */
.publications-page{--ink:#242a32;--muted:#687280;--rule:#e5e8ec;--surface:#f4f5f7;--category-active-ink:#fff}
:root[data-theme="dark"] .publications-page{--ink:#e3e7ed;--muted:#9ca8b8;--rule:#2a2f3a;--surface:#20252d;--category-active-ink:#10151e}
.publications-page #layout-content .publication-note{font-size:var(--type-meta);color:var(--muted)}
.publication-toolbar{margin-bottom:var(--space-8)}
.publication-filters,.publication-role-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.publication-role-filters{margin-top:var(--space-3)}
.publication-filter-label{flex:0 0 86px;color:var(--muted);font-size:var(--type-meta);line-height:1.5}
.publication-role-filter{font:inherit;font-size:var(--type-meta);line-height:1.5;padding:5px 10px;border:1px solid var(--rule);border-radius:5px;background:var(--surface);color:var(--muted);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}
.publication-role-filter:hover{border-color:var(--muted);color:var(--ink)}
.publication-role-filter.active{border-color:var(--ink);background:var(--ink);color:var(--category-active-ink)}
.publication-filter{font:inherit;font-size:var(--type-meta);line-height:1.5;padding:5px 10px;border:1px solid var(--category-border);border-radius:5px;background:var(--category-bg);color:var(--category-ink);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}
.publication-filter:hover{background:var(--category-hover);border-color:var(--category-ink)}
.publication-filter.active{background:var(--category-ink);color:var(--category-active-ink);border-color:var(--category-ink)}
.publications-page :is(.publication-filter,.publication-tag)[data-filter="all"]{--category-ink:#315fa8;--category-bg:#edf3fc;--category-border:#c9d9f2;--category-hover:#dfeafa}
.publications-page :is(.publication-filter,.publication-tag)[data-filter="1"]{--category-ink:#147365;--category-bg:#eaf7f2;--category-border:#bde3d6;--category-hover:#d9efe6}
.publications-page :is(.publication-filter,.publication-tag)[data-filter="2"]{--category-ink:#6e4ca0;--category-bg:#f3eefb;--category-border:#ddcef2;--category-hover:#e8def7}
.publications-page :is(.publication-filter,.publication-tag)[data-filter="3"]{--category-ink:#a35c1a;--category-bg:#fff4e5;--category-border:#eed7b5;--category-hover:#f9e8cf}
:root[data-theme="dark"] .publications-page :is(.publication-filter,.publication-tag)[data-filter="all"]{--category-ink:#93baff;--category-bg:#17253d;--category-border:#304870;--category-hover:#203552}
:root[data-theme="dark"] .publications-page :is(.publication-filter,.publication-tag)[data-filter="1"]{--category-ink:#78d6bd;--category-bg:#102d26;--category-border:#275448;--category-hover:#193f35}
:root[data-theme="dark"] .publications-page :is(.publication-filter,.publication-tag)[data-filter="2"]{--category-ink:#c4a6ef;--category-bg:#2a203b;--category-border:#4d3b69;--category-hover:#392c50}
:root[data-theme="dark"] .publications-page :is(.publication-filter,.publication-tag)[data-filter="3"]{--category-ink:#f0ba76;--category-bg:#342618;--category-border:#65492b;--category-hover:#493420}
:root .publications-page .publication-filter:focus-visible{outline-color:var(--category-ink)}
.publications-page #layout-content .publication-count{margin:var(--space-3) 0 0;color:var(--muted);font-size:var(--type-meta)}
.publications-page #layout-content .publication-year>h2{color:var(--muted);font-size:var(--type-section);letter-spacing:.02em;padding:0 0 var(--space-3);border-left:0;border-bottom:1px solid var(--rule);margin-bottom:var(--space-6)}
.publications-page #layout-content .publication-list{padding:0;list-style:none}
.publications-page #layout-content .publication-entry+.publication-entry{margin-top:var(--space-8)}
.publications-page #layout-content .publication-title{font-size:var(--type-item);font-weight:600;line-height:1.5;color:var(--ink);margin:0 0 4px}
.publications-page #layout-content .publication-title a{color:inherit;text-decoration:underline;text-decoration-color:var(--rule);text-decoration-thickness:1px;text-underline-offset:3px}
.publication-title a:hover{color:inherit;text-decoration-color:var(--muted);border-bottom:0}
.publications-page #layout-content .publication-authors{font-size:var(--type-body);line-height:1.65;text-align:left;margin:0 0 4px;color:var(--ink)}
.publications-page #layout-content .publication-venue{font-size:var(--type-body);line-height:1.65;text-align:left;margin:0;color:var(--muted)}
.publication-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-3)}
.publication-tag{flex:0 0 auto;max-width:100%;padding:1px 7px;border:1px solid var(--category-border);border-radius:4px;background:var(--category-bg);color:var(--category-ink);font:inherit;font-size:var(--type-meta);line-height:1.5;text-align:left}
.publication-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);margin-top:var(--space-2);font-size:var(--type-meta);line-height:1.5}
.publications-page #layout-content .publication-actions a{color:var(--muted);text-decoration:none}
.publication-actions a:hover{color:var(--ink);text-decoration:underline;border:0}
.publication-entry[hidden],.publication-year[hidden]{display:none!important}

/* Year navigation stays in the sheet's left margin at every screen width. */
.publication-search-label{display:block;font-size:var(--type-body);font-weight:600;color:var(--ink);margin-bottom:var(--space-2)}
.publication-search-field{display:flex;align-items:center;max-width:560px;min-height:40px;border:1px solid var(--rule);border-radius:6px;background:var(--surface)}
.publication-search-field:focus-within{outline:2px solid #315fa8;outline-offset:2px}
.publication-search-icon{width:17px;height:17px;margin-left:var(--space-3);color:var(--muted);flex:0 0 auto}
.publication-search-input{min-width:0;flex:1;width:100%;font:inherit;font-size:var(--type-body);line-height:1.65;border:0;background:transparent;color:var(--ink);padding:9px var(--space-3);outline:0}
.publication-search-input::placeholder{color:var(--muted);opacity:1}
.publication-search-input::-webkit-search-cancel-button{display:none}
.publication-search-clear{display:flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;margin-right:4px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--muted);font:inherit;font-size:20px;cursor:pointer}
.publication-search-clear:hover{background:var(--rule);color:var(--ink)}
.publications-page #layout-content .publication-search-hint{font-size:var(--type-meta);color:var(--muted);margin:var(--space-2) 0 var(--space-4)}
.publication-results{position:relative;display:flow-root}
.publication-year-rail{position:absolute;left:-124px;top:0;bottom:0;width:100px}
.publication-year-nav{position:sticky;top:var(--space-8)}
.publications-page #layout-content .publication-year-nav-label{font-size:var(--type-meta);font-weight:600;color:var(--muted);margin:0 0 var(--space-3);padding-left:12px}
.publications-page #layout-content .publication-year-nav ul{list-style:none;margin:0;padding:0}
.publications-page #layout-content .publication-year-nav li+li{margin-top:4px}
.publications-page #layout-content .publication-year-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:8px 10px;border-left:2px solid var(--rule);color:var(--muted);font-size:var(--type-body);line-height:1.5;text-decoration:none;overflow-wrap:normal;font-variant-numeric:tabular-nums}
.publications-page #layout-content .publication-year-link:hover{border-bottom:0;border-left-color:var(--muted);color:var(--ink);background:var(--surface)}
.publications-page #layout-content .publication-year-link.active{border-left-color:#315fa8;color:#315fa8;background:#edf3fc;font-weight:600}
.publication-year-count{font-size:var(--type-meta);font-weight:400}
.publication-year{scroll-margin-top:var(--space-8)}
.publication-year:focus{outline:0}
.publication-empty{padding:var(--space-8) 0;border-top:1px solid var(--rule)}
.publications-page #layout-content .publication-empty p{color:var(--muted);margin:0 0 var(--space-4)}
.publication-reset{font:inherit;font-size:var(--type-meta);padding:6px 12px;border:1px solid var(--rule);border-radius:5px;background:var(--surface);color:var(--ink);cursor:pointer}
.publication-reset:hover{border-color:var(--muted)}
.publication-search-clear[hidden],.publication-empty[hidden],.publication-year-nav[hidden],.publication-year-nav li[hidden]{display:none!important}
:root[data-theme="dark"] .publication-search-field:focus-within{outline-color:#93baff}
:root[data-theme="dark"] .publications-page #layout-content .publication-year-link.active{border-left-color:#93baff;color:#93baff;background:#17253d}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Experience: text columns replace numbered headings and nested bullets. */
.experience-page{
    --experience-muted:#687280;--experience-rule:#e5e8ec;--experience-ink:#242a32;
    --experience-accent:#147365;--experience-accent-bg:#eaf7f2;--experience-accent-border:#bde3d6;
    --experience-date:#315fa8;--experience-date-bg:#edf3fc;
    --experience-workshop:#6e4ca0;--experience-workshop-bg:#f3eefb;--experience-workshop-border:#ddcef2;
    --experience-learning:#a35c1a;--experience-learning-bg:#fff4e5;
}
:root[data-theme="dark"] .experience-page{
    --experience-muted:#9ca8b8;--experience-rule:#2a2f3a;--experience-ink:#e3e7ed;
    --experience-accent:#78d6bd;--experience-accent-bg:#102d26;--experience-accent-border:#275448;
    --experience-date:#93baff;--experience-date-bg:#17253d;
    --experience-workshop:#c4a6ef;--experience-workshop-bg:#2a203b;--experience-workshop-border:#4d3b69;
    --experience-learning:#f0ba76;--experience-learning-bg:#342618;
}
.experience-page #layout-content .projects-section>h2{border-left-color:var(--experience-accent)}
.experience-page #layout-content .reviewer-section>h2{border-left-color:var(--experience-workshop)}
.experience-page #layout-content .learning-section>h2{border-left-color:var(--experience-learning)}
.project-entry+.project-entry{margin-top:var(--space-10)}
.project-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:var(--space-6);margin-bottom:var(--space-3)}
.experience-page #layout-content .project-context{font-size:var(--type-body);color:var(--experience-accent);margin:0 0 4px;line-height:1.65}
.experience-page #layout-content .project-header h3{font-size:var(--type-item);font-weight:600;margin:0;color:var(--experience-ink);line-height:1.5}
.project-date,.learning-date{font-size:var(--type-meta);white-space:nowrap;color:var(--experience-muted);font-variant-numeric:tabular-nums}
.project-date{padding:2px 8px;border-radius:4px;color:var(--experience-date);background:var(--experience-date-bg);line-height:1.6}
.experience-page #layout-content .project-summary{margin:0 0 var(--space-3)}
.experience-page #layout-content .project-meta{font-size:var(--type-body);color:var(--experience-muted);margin:var(--space-2) 0 0;line-height:1.65}
.experience-page #layout-content .project-meta a{color:var(--experience-accent);text-decoration:underline;text-decoration-color:var(--experience-accent-border);text-underline-offset:3px}
.experience-page #layout-content .project-meta a:hover{text-decoration-color:var(--experience-accent)}
.project-entry .abstract-box{margin:var(--space-3) 0}
.project-entry .abstract-box summary{display:inline-flex;gap:4px;padding:2px 8px;border:1px solid var(--experience-accent-border);border-radius:4px;background:var(--experience-accent-bg);color:var(--experience-accent);font-size:var(--type-meta);line-height:1.5}
.project-entry .abstract-box summary:hover{border-color:var(--experience-accent)}
.project-entry .abstract-box summary:focus-visible{outline:2px solid var(--experience-accent);outline-offset:2px}
.project-entry .abstract-box p{margin-top:var(--space-3)!important}
.reviewer-groups{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--space-8)}
.reviewer-groups h4{display:inline-block;font-size:var(--type-body);font-weight:600;padding:3px 10px;border:1px solid;border-radius:5px;margin:0 0 var(--space-4)}
.reviewer-journals h4{color:var(--experience-accent);background:var(--experience-accent-bg);border-color:var(--experience-accent-border)}
.reviewer-workshops h4{color:var(--experience-workshop);background:var(--experience-workshop-bg);border-color:var(--experience-workshop-border)}
.experience-page #layout-content .workshop-list,.experience-page #layout-content .journal-list{padding:0;list-style:none;font-size:var(--type-body);line-height:1.65}
.workshop-list li{display:flex;justify-content:space-between;gap:var(--space-3)}
.reviewer-years{white-space:nowrap;color:var(--experience-muted);font-size:var(--type-meta)}
.experience-page #layout-content .reviewer-years a,.experience-page #layout-content .journal-list a{color:inherit}
.journal-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-6)}
.experience-page #layout-content ul.journal-list>li+li{margin:0}
.experience-page #layout-content .learning-list{padding:0;list-style:none}
.learning-list>li{display:grid;grid-template-columns:130px minmax(0,1fr);gap:var(--space-6);align-items:start}
.experience-page #layout-content ul.learning-list>li+li{margin-top:var(--space-6)}
.experience-page #layout-content .learning-list h3{font-size:var(--type-item);font-weight:600;line-height:1.5;margin:0 0 4px;color:var(--experience-ink)}
.experience-page #layout-content .learning-list h3 a{color:inherit;text-decoration:underline;text-decoration-color:var(--experience-rule);text-underline-offset:3px}
.experience-page #layout-content .learning-list h3 a:hover{color:var(--experience-learning);text-decoration-color:var(--experience-learning)}
.experience-page #layout-content .learning-list p{margin:0;font-size:var(--type-body);color:var(--experience-muted)}
.learning-date{justify-self:start;padding:2px 8px;border-radius:4px;color:var(--experience-learning);background:var(--experience-learning-bg);line-height:1.6}
@media print{
    .site-header,.publication-toolbar,.publication-year-rail,.publication-empty,.publication-actions{display:none}
    .publication-entry[hidden],.publication-year[hidden]{display:block!important}
    .publication-year,.project-entry{break-inside:avoid}
}
@container (max-width:560px){
    .education-entry{grid-template-columns:88px minmax(0,1fr);column-gap:var(--space-4)}
    .education-mark{min-height:48px}
    #layout-content .education-list .education-logo{max-width:88px;max-height:44px}
    .education-header{grid-template-columns:minmax(0,1fr);gap:4px}
}
@container (max-width:420px){
    .education-content>*{grid-column:1/-1}
    .education-mark{grid-column:1;grid-row:1}
    .education-header{grid-column:2;grid-row:1}
}
@media (pointer:coarse){
    .education-details summary{min-height:44px}
}

/* Homepage personal profiles and the final Links section. */
.home-page #layout-content>.imgtable img[src*="wyq-small"]{width:220px}
.home-page .profile-links{display:flex;flex-wrap:wrap;gap:var(--space-2);max-width:560px;margin:var(--space-4) 0 0}
.home-page #layout-content .profile-links a{display:inline-flex;align-items:center;gap:var(--space-2);padding:4px 8px;border:1px solid #e1e6eb;border-radius:5px;color:#53616e;font-size:var(--type-meta);line-height:1.6;text-decoration:none;white-space:nowrap}
.home-page #layout-content .profile-links a:hover{border-color:#bde3d6;color:#147365;background:#eaf7f2}
.home-page #layout-content .profile-links .profile-logo{width:18px;height:18px;margin:0;object-fit:contain;flex:0 0 18px;display:block}
.home-page #layout-content .page-network>h2{font-size:var(--type-section);border-left-color:#147365}
.home-page .network-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:var(--space-10)}
.home-page #layout-content .network-group h3{font-size:var(--type-body);color:#687280;font-weight:600;margin:0 0 var(--space-4)}
.home-page #layout-content .network-list{list-style:none;padding:0;margin:0}
.home-page #layout-content .network-list li{margin:0}
.home-page #layout-content ul.network-list>li+li{margin-top:var(--space-3)}
.home-page #layout-content .network-people{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4)}
.home-page #layout-content ul.network-people>li+li{margin:0}
.home-page #layout-content .network-institutions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-6);align-items:start}
.home-page #layout-content ul.network-institutions>li+li{margin:0}
.home-page #layout-content .network-list a{font-size:var(--type-body);color:#38434e;text-decoration:underline;text-decoration-color:#dce2e8;text-underline-offset:3px}
.home-page #layout-content .network-list a:hover{color:#147365;text-decoration-color:#147365}
.home-page #layout-content .network-list small{display:block;font-size:var(--type-meta);color:#687280;margin-top:3px;line-height:1.6}
.home-page #layout-content .network-list small a{font-size:inherit}
:root[data-theme="dark"] .home-page #layout-content .profile-links a{color:#b8c5d4;border-color:#303845}
:root[data-theme="dark"] .home-page #layout-content .profile-links a:hover{color:#78d6bd;background:#102d26;border-color:#275448}
:root[data-theme="dark"] .home-page .profile-links a[href="https://github.com/wyqmath"] .profile-logo{filter:invert(1)}
:root[data-theme="dark"] .home-page #layout-content .page-network>h2{border-left-color:#78d6bd}
:root[data-theme="dark"] .home-page #layout-content .network-group h3,:root[data-theme="dark"] .home-page #layout-content .network-list small{color:#9ca8b8}
:root[data-theme="dark"] .home-page #layout-content .network-list a{color:#d8dde5;text-decoration-color:#354052}
:root[data-theme="dark"] .home-page #layout-content .network-list a:hover{color:#78d6bd;text-decoration-color:#78d6bd}

/* Keep the QR preview in the homepage theme; its link opens the original image. */
.home-page #layout-content .wechat-qr-link,.home-page #layout-content .wechat-qr-link:hover{display:inline-block;border:0;text-decoration:none;line-height:0}
.home-page #layout-content .wechat-qr{display:block;filter:none}
:root[data-theme="dark"] .home-page #layout-content .wechat-qr{filter:invert(1) hue-rotate(180deg)}
