/* V32 navigation/footer only. Never apply V32 typography to the GLOW report. */
.technology-page { padding-top: 0; }
:root { --knowin-header-height: 84px; }
#top .toc { top: 108px; max-height: calc(100dvh - 132px); }
.technology-page :is(#header,#footer,#wechat-popover) { box-sizing: border-box; font-family: Inter,Arial,sans-serif; color: #252723; font-size: 15px; line-height: 1.65; letter-spacing: normal; text-align: left; }
.technology-page :is(#header,#footer)[lang="zh-CN"] { font-family: MiSans,"PingFang SC","Microsoft YaHei",sans-serif; }
.technology-page :is(#header,#footer,#wechat-popover) * { box-sizing: border-box; }
.technology-page :is(#header,#footer) a { color: inherit; text-decoration: none; }
.technology-page :is(#header,#footer) button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
.technology-page :is(#header,#footer) a:focus-visible,
.technology-page :is(#header,#footer) button:focus-visible { outline: 2px solid #858e74; outline-offset: 6px; }
.technology-page :is(#header,#footer) .brand { display: block; width: 154px; flex-shrink: 0; }
.technology-page :is(#header,#footer) .brand img { display: block; width: 100%; height: auto; aspect-ratio: 320/42; object-fit: contain; filter: brightness(0); }
.technology-page #header { --nav-ink: #fff; --nav-muted: #e0e5ec; --nav-logo-invert: 1; height: 84px; position: sticky; top: 0; z-index: 90; color: var(--nav-ink); background: #000; border-bottom: 1px solid transparent; transition: background-color .2s ease,border-color .2s ease; }
.technology-page #header .brand img { filter: brightness(0) invert(var(--nav-logo-invert)); transition: filter .2s ease; }
.technology-page #header .header-inner { height: 100%; padding: 0 max(6vw,calc((100% - 1440px)/2)); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 28px; }
.technology-page #header .brand { justify-self: start; }
.technology-page #header .nav { display: flex; gap: 32px; align-items: center; }
.technology-page #header .nav a { position: relative; padding: 12px 0; color: var(--nav-muted); font-size: 13px; line-height: 1.65; white-space: nowrap; transition: color .2s ease; }
.technology-page #header .nav a:hover,.technology-page #header .nav a[aria-current] { color: var(--nav-ink); }
.technology-page #header .nav a[aria-current]::after { content: ""; position: absolute; bottom: 4px; left: 0; right: 0; height: 1px; background: currentColor; }
.technology-page #header .header-tools { display: flex; justify-self: end; gap: 20px; align-items: center; }
.technology-page #header .language { font-size: 12px; line-height: 1.65; padding: 8px 0; color: var(--nav-muted); transition: color .2s ease; }
.technology-page #header .language b { color: var(--nav-ink); font-weight: 500; transition: color .2s ease; }
.technology-page #header .menu-button { display: none; padding: 9px; color: var(--nav-ink); transition: color .2s ease; }
.technology-page #header svg { display: block; width: 23px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
/* Match the shared 200 ms interaction; the idle bar blends into the report,
   including while scrolling, without letting article text show behind links. */
.technology-page #header:has(.nav.open),
.technology-page #header:has(:focus-visible) { --nav-ink: #1d1d1f; --nav-muted: #62625f; --nav-logo-invert: 0; background: #fff; border-bottom-color: #eeeeef; }
@media (hover:hover) and (pointer:fine) {
  .technology-page #header:hover { --nav-ink: #1d1d1f; --nav-muted: #62625f; --nav-logo-invert: 0; background: #fff; border-bottom-color: #eeeeef; }
}
@media (prefers-reduced-motion:reduce) {
  .technology-page #header,
  .technology-page #header :is(.nav a,.language,.language b,.menu-button,.brand img) { transition: none; }
}
.technology-page #footer { display: block; width: 100%; max-width: none; margin: 0; background: #fff; border-top: 1px solid #dedfda; padding: 65px max(6vw,calc((100% - 1440px)/2)) 24px; }
.technology-page #footer .footer-top { display: grid; grid-template-columns: 1.4fr .65fr 1fr; gap: 60px; padding-bottom: 64px; }
.technology-page #footer .footer-brand .brand { width: 220px; }
.technology-page #footer .footer-brand p { margin: 24px 0 0 !important; color: #73756f; font-size: 14px; line-height: 1.65; }
.technology-page #footer :is(.footer-links,.footer-social) { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; font-size: 13px; line-height: 1.65; }
.technology-page #footer .footer-title { color: #73756f; margin: 0 0 12px; font-size: 12px; letter-spacing: .07em; }
.technology-page #footer :is(.footer-links a,.footer-social a,.wechat-trigger) { padding: 0; font: inherit; line-height: inherit; text-align: left; }
.technology-page #footer :is(.footer-links a,.footer-social a,.wechat-trigger):hover { text-decoration: underline; text-underline-offset: 4px; }
.technology-page #footer .footer-bottom { padding-top: 22px; border-top: 1px solid #dedfda; color: #92958b; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.technology-page #wechat-popover { position: fixed; inset: auto; margin: 0; width: 224px; max-width: calc(100vw - 32px); padding: 8px; background: #fff; border: 1px solid #e6e6e8; border-radius: 5px; box-shadow: 0 5px 22px #00000010; }
.technology-page #wechat-popover img { display: block; width: 100%; height: auto; object-fit: contain; }
@media (max-width:959px) {
  #top .toc { top: auto; max-height: none; }
}
@media print {
  .technology-page :is(#header,#footer,#wechat-popover) { display: none !important; }
}
@media (min-width:761px) and (max-width:1050px) {
  .technology-page #header .brand { width: 134px; }
  .technology-page #header .nav { gap: 20px; }
  .technology-page #header .header-inner { gap: 20px; }
}
@media (max-width:760px) {
  :root { --knowin-header-height: 68px; }
  .technology-page #header { height: 68px; }
  .technology-page #header .header-inner { display: flex; padding: 0 24px; gap: 16px; }
  .technology-page #header .brand { width: 126px; }
  .technology-page #header .header-tools { margin-left: auto; gap: 20px; }
  .technology-page #header .menu-button { display: block; }
  .technology-page #header .nav { display: none; position: absolute; top: 68px; left: 0; right: 0; background: #fff; padding: 20px 24px 30px; border-bottom: 1px solid #dedfda; gap: 0; align-items: stretch; }
  .technology-page #header .nav.open { --nav-ink: #1d1d1f; --nav-muted: #62625f; display: flex; flex-direction: column; }
  .technology-page #header .nav a { font-size: 16px; padding: 15px 0; }
  .technology-page #header .nav a[aria-current]::after { display: none; }
  .technology-page #footer { padding: 45px 24px 24px; }
  .technology-page #footer .footer-top { grid-template-columns: 1fr 1fr; gap: 36px 24px; padding-bottom: 36px; }
  .technology-page #footer .footer-brand { grid-column: 1/-1; }
  .technology-page #footer .footer-brand .brand { width: 190px; }
  .technology-page #footer .footer-brand p { font-size: 13px; }
  .technology-page #footer .footer-bottom { font-size: 11px; }
}

/* Production enhancements shared by the supplied V32 page layouts. */
[hidden] { display: none !important; }
#header .language { display: inline-flex; align-items: center; gap: 4px; }
#header .nav a[aria-current="page"] { font-weight: 500; }
#wechat-popover[hidden] { display: none !important; }
#wechat-popover:not([hidden]) { display: block; z-index: 1000; }
#film.film-fallback { position: fixed; inset: 50% auto auto 50%; transform: translate(-50%,-50%); z-index: 1100; box-shadow: 0 0 0 100vmax #000a; }
#film[open] { z-index: 1100; }
.contact-form .btn:disabled { opacity: .65; cursor: wait; transform: none; }
.contact-form[aria-busy="true"] { cursor: progress; }
.contact-form .form-status { overflow-wrap: anywhere; }
.site-back-top { display: inline-flex; margin: 0 0 24px; font: inherit; }
.site-back-top:hover { text-decoration: underline; text-underline-offset: 4px; }
.home-glow .glow-picture { position: absolute; inset: 0; z-index: -1; }
/* Anchor jumps should not animate through every video and lazy diagram. */
html { scroll-behavior: auto; }
@media (max-width: 760px) {
  .home-glow::after { display: none; }
  .home-glow .glow-picture { position: relative; inset: auto; flex: none; width: calc(100% + 48px); margin-top: 48px; }
  .home-glow .glow-art { display: block; position: static; width: 100%; height: auto; aspect-ratio: 887/564; object-fit: cover; object-position: center bottom; }
  #header .nav { max-height: calc(100dvh - 68px); overflow-y: auto; }
  #header .language, #header .menu-button { min-height: 44px; }
}
