/* TT CMS v2.3 · Glass navigation, floating navigation and content layouts. */
html {scroll-behavior:smooth;scroll-padding-top:95px}
body.hb-site .tt23-back-to-top,body.hb-site .tt23-toc-trigger {
  position:fixed;z-index:115;bottom:22px;right:22px;width:54px;height:54px;
  border-radius:18px;border:1px solid color-mix(in srgb,var(--tt-accent,#397cf7) 28%,transparent);
  background:color-mix(in srgb,var(--tt-glass,#fff) 80%,transparent);color:var(--tt-ink,#233657);
  backdrop-filter:blur(22px) saturate(175%);-webkit-backdrop-filter:blur(22px) saturate(175%);
  box-shadow:0 12px 40px #12326637,inset 0 1px #ffffff85;display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:21px;opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(15px) scale(.96);transition:transform .25s ease,opacity .25s ease,visibility .25s ease;
}
body.hb-site .tt23-back-to-top.tt23-visible,body.hb-site .tt23-toc-trigger.tt23-visible {opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}
body.hb-site .tt23-back-to-top:hover,body.hb-site .tt23-toc-trigger:hover{transform:translateY(-3px);border-color:var(--tt-accent,#397cf7)}
body.hb-site .tt23-toc-trigger{bottom:auto;top:43%;right:auto;left:15px;flex-direction:column;height:62px;width:58px;gap:2px}
body.hb-site .tt23-toc-trigger span{font:650 10px var(--tt-font,system-ui);white-space:nowrap}
.tt23-toc-panel{position:fixed;z-index:117;left:84px;top:18%;width:min(375px,calc(100vw - 104px));max-height:68vh;overflow:auto;
  border-radius:23px;border:1px solid color-mix(in srgb,var(--tt-accent,#397cf7) 25%,transparent);
  background:color-mix(in srgb,var(--tt-glass,#fff) 94%,transparent);color:var(--tt-ink,#172b4a);
  backdrop-filter:blur(32px) saturate(160%);-webkit-backdrop-filter:blur(32px) saturate(160%);
  box-shadow:0 20px 65px #12294e43;padding:19px;visibility:hidden;opacity:0;pointer-events:none;transform:translateX(-13px);transition:opacity .22s ease,transform .22s ease,visibility .22s ease}
.tt23-toc.tt23-open .tt23-toc-panel{visibility:visible;opacity:1;pointer-events:auto;transform:none}
.tt23-toc-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.tt23-toc-heading strong{font-size:17px}.tt23-toc-heading button{border:0;border-radius:10px;color:inherit;background:color-mix(in srgb,currentColor 10%,transparent);width:34px;height:34px;cursor:pointer}
.tt23-toc-panel ol{list-style:none;padding:0;margin:0}.tt23-toc-panel li{margin:1px 0}.tt23-toc-panel li a{display:block;border-radius:11px;padding:9px 10px;color:inherit;text-decoration:none;font-size:14px;line-height:1.4;transition:background .15s ease}
.tt23-toc-panel li a:hover,.tt23-toc-panel li a.tt23-active{background:color-mix(in srgb,var(--tt-accent,#397cf7) 13%,transparent);color:var(--tt-accent,#397cf7)}
.tt23-toc-level-3{padding-left:15px}.tt23-toc-level-4{padding-left:27px}
.article-body h2[id^="tt23-heading-"],.article-body h3[id^="tt23-heading-"],.article-body h4[id^="tt23-heading-"]{scroll-margin-top:110px}
/* Selected full-width / boxed content; these rules never affect the global homepage. */
body.hb-site main.article-page.tt23-layout-full{width:100%;max-width:none;padding-inline:clamp(15px,3.5vw,60px)}
body.hb-site main.article-page.tt23-no-sidebar .content-grid{grid-template-columns:minmax(0,1fr)}
body.hb-site main.article-page.tt23-layout-boxed.tt23-no-sidebar .article-detail{max-width:950px;margin-inline:auto;width:100%}
body.hb-site .tt23-feature-wide{width:100%;margin:0 0 22px;overflow:hidden;border-radius:clamp(12px,1.5vw,24px)}
body.hb-site .tt23-feature-wide img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
body.hb-site .tt23-feature-before{margin:0 0 24px}
body.hb-site .tt23-page-wrap{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:clamp(20px,3vw,42px);align-items:start}
body.hb-site .tt23-page-wrap .tt23-page-main{min-width:0}
body.hb-site .tt-static-page.tt23-no-sidebar .tt23-page-wrap{grid-template-columns:minmax(0,1fr)}
body.hb-site .tt-static-page.tt23-no-sidebar.tt23-layout-boxed .tt23-page-main{max-width:1070px;margin:auto;width:100%}
body.hb-site .tt-static-page.tt23-layout-full .container{width:100%;max-width:none;padding-inline:clamp(15px,3vw,55px)}
body.hb-site .tt-static-page .tt-page-body{padding-top:38px}
body.hb-site .tt-static-page .tt23-page-sidebar{padding-top:30px}
/* Saved two-level nav menus; colors inherit a11y-tested controls. */
body.hb-site .tt23-nav{color:var(--tt23-menu-light,#253858)}
html[data-theme="dark"] body.hb-site .tt23-nav{color:var(--tt23-menu-dark,#eef3ff)}
body.hb-site .tt23-nav ul{list-style:none;margin:0;padding:0}
body.hb-site .tt23-nav .tt23-nav-root{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
body.hb-site .tt23-nav .tt23-nav-root>li{position:relative;min-width:0}
body.hb-site .tt23-menu-label{display:flex;align-items:center;gap:1px}
body.hb-site .tt23-nav a{color:inherit!important;text-decoration:none;display:block;line-height:1.3;padding:11px 13px;border-radius:12px;font-weight:640;font-size:14px}
body.hb-site .tt23-nav a:hover,body.hb-site .tt23-nav a:focus-visible{background:color-mix(in srgb,var(--tt23-menu-hover,#5976ed) 17%,transparent);color:var(--tt23-menu-hover,#5976ed)!important}
body.hb-site .tt23-menu-label button{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;background:transparent;border:0;border-radius:10px;color:inherit;cursor:pointer;font-size:12px}
body.hb-site .tt23-menu-label button:hover{background:color-mix(in srgb,var(--tt23-menu-hover,#5976ed) 16%,transparent)}
body.hb-site .tt23-menu-label button i{transition:transform .22s ease}
body.hb-site .tt23-nav .tt23-submenu{position:absolute;top:calc(100% + 6px);left:0;min-width:205px;max-width:290px;display:block;padding:9px;border-radius:17px;
  border:1px solid color-mix(in srgb,currentColor 17%,transparent);background:color-mix(in srgb,var(--tt22-header-light,#fff) 91%,transparent);
  box-shadow:0 18px 42px #0a214038;backdrop-filter:blur(25px) saturate(155%);-webkit-backdrop-filter:blur(25px) saturate(155%);
  visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-10px);transition:opacity .22s,transform .22s,visibility .22s;z-index:105}
html[data-theme="dark"] body.hb-site .tt23-nav .tt23-submenu{background:color-mix(in srgb,var(--tt22-header-dark,#131d35) 92%,transparent)}
body.hb-site .tt23-nav .tt23-has-children:hover>.tt23-submenu,body.hb-site .tt23-nav .tt23-has-children:focus-within>.tt23-submenu,body.hb-site .tt23-nav .tt23-expanded>.tt23-submenu{visibility:visible;opacity:1;pointer-events:auto;transform:none}
body.hb-site .tt23-nav .tt23-has-children:hover>.tt23-menu-label i,body.hb-site .tt23-nav .tt23-expanded>.tt23-menu-label i{transform:rotate(180deg)}
body.hb-site .tt-site-header[data-tt23-menu-motion="fade"] .tt23-submenu{transform:none!important}
body.hb-site .tt-site-header[data-tt23-menu-motion="none"] .tt23-submenu{transition:none!important;transform:none!important}
body.hb-site .tt23-footer-nav{margin:12px 0}.tt23-footer-nav .tt23-nav-root{justify-content:flex-start;flex-wrap:wrap}
body.hb-site .tt23-footer-nav a{font-size:13px;padding:7px 10px}
/* Closeable, non-blocking, recurring 60-second adblock notice. */
.tt23-adblock-bait{position:absolute!important;left:-9999px!important;top:-9999px!important;width:260px!important;height:40px!important;pointer-events:none!important;z-index:-10!important}
.tt23-adblock-popup[hidden]{display:none!important}
.tt23-adblock-popup{position:fixed;z-index:160;bottom:90px;right:20px;width:min(365px,calc(100vw - 40px));box-sizing:border-box;
  border:1px solid color-mix(in srgb,var(--tt-accent,#397cf7) 26%,transparent);border-radius:22px;padding:23px;
  background:color-mix(in srgb,var(--tt-glass,#fff) 95%,transparent);color:var(--tt-ink,#182f51);
  box-shadow:0 20px 75px #102c5070;backdrop-filter:blur(30px) saturate(160%);-webkit-backdrop-filter:blur(30px) saturate(160%)}
.tt23-adblock-popup>i{display:block;font-size:28px;color:var(--tt-accent,#397cf7);margin-bottom:10px}
.tt23-adblock-popup strong{display:block;font-size:18px}.tt23-adblock-popup p{line-height:1.6;font-size:14px;margin:9px 0 0}
.tt23-adblock-popup button{position:absolute;right:13px;top:12px;border:0;background:color-mix(in srgb,currentColor 11%,transparent);color:inherit;border-radius:11px;width:34px;height:34px;cursor:pointer}
@media(max-width:900px){body.hb-site .tt23-page-wrap{grid-template-columns:minmax(0,1fr)}body.hb-site .tt23-page-sidebar{max-width:100%;padding-top:0}}
@media(max-width:800px){
 body.hb-site nav.tt23-nav.tt-nav:not(.tt-nav-open){display:none}
 body.hb-site nav.tt23-nav.tt-nav.tt-nav-open{display:block}
 body.hb-site .tt23-nav.tt-nav .tt23-nav-root{display:flex;flex-direction:column;align-items:stretch;gap:3px}
 body.hb-site .tt23-nav.tt-nav .tt23-submenu{display:none;position:static;visibility:visible;opacity:1;pointer-events:auto;transform:none;box-shadow:none;margin-left:13px;background:color-mix(in srgb,var(--tt-accent,#397cf7) 6%,transparent);border-radius:12px;min-width:0;width:auto}
 body.hb-site .tt23-nav.tt-nav .tt23-expanded>.tt23-submenu{display:block}
 body.hb-site .tt23-nav.tt-nav .tt23-menu-label a{flex:1}
 body.hb-site .tt23-nav.tt-nav .tt23-menu-label button{width:42px;height:42px}
 body.hb-site .tt23-nav.tt-nav .tt23-has-children:hover:not(.tt23-expanded)>.tt23-submenu{display:none}
 body.hb-site .tt23-nav.tt-nav .tt23-has-children:focus-within:not(.tt23-expanded)>.tt23-submenu{display:none}
}
@media(max-width:540px){body.hb-site .tt23-toc-trigger{top:auto;bottom:100px;left:12px;width:48px;height:52px;border-radius:15px}body.hb-site .tt23-toc-trigger span{font-size:9px}.tt23-toc-panel{top:auto;bottom:155px;left:12px;width:calc(100vw - 24px);max-height:50vh;box-sizing:border-box}body.hb-site .tt23-back-to-top{width:48px;height:48px;right:13px;bottom:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}body.hb-site .tt23-back-to-top,body.hb-site .tt23-toc-trigger,.tt23-toc-panel,body.hb-site .tt23-nav .tt23-submenu{transition:none!important}}
