#header-container { position: fixed; top: 10px; left: 50%; transform: translateX(-50%); z-index: 41; backdrop-filter: blur(10px) saturate(1.2); -webkit-backdrop-filter: blur(10px) saturate(1.2); width: 50%; border-radius: 30px; } #banner { position: relative; display: none; padding: 10px 48px; font-size: 13px; line-height: 1.45; text-align: center; background: transparent; } #banner-close { position: absolute; top: 50%; right: 8px; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; transform: translateY(-50%); background: none; border: none; border-radius: 8px; cursor: pointer; font-size: 18px; line-height: 1; color: inherit; opacity: 0.6; } #banner-close:hover { opacity: 1; background: rgba(0, 0, 0, 0.06); } html.dark #banner-close:hover { background: rgba(255, 255, 255, 0.1); } #navbar { position: relative; background: transparent; } #navbar .nav-top { position: relative; display: flex; align-items: center; height: 60px; max-width: 1400px; margin: 0 auto; padding: 0 10px; } #navbar .brand { display: flex; align-items: center; } #navbar .brand img { height: 28px; width: 28px; border-radius: 50%; display: block; } #navbar .links { display: flex; align-items: center; gap: 10px; margin-left: auto; } #navbar .tabs { display: flex; align-items: center; gap: 4px; height: 48px; max-width: 1400px; margin: 0 auto; overflow-x: auto; } #navbar .tabs a { padding: 6px 14px; font-size: 14px; font-weight: 500; color: var(--muted-light); white-space: nowrap; } html.dark #navbar .tabs a { color: var(--muted-dark); } #navbar .tabs a:hover { color: var(--text-light); } html.dark #navbar .tabs a:hover { color: var(--text-dark); } #navbar .tabs a.active { color: var(--text-light); font-weight: 600; } html.dark #navbar .tabs a.active { color: var(--text-dark); } #layout { display: flex; max-width: 1400px; margin: 0 auto; } #sidebar { margin-top: 40px; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius: 12px; width: var(--sidebar-width); flex-shrink: 0; padding-top: 20px; padding-left: 20px; position: sticky; height: fit-content; top: calc(var(--header-height) + 40px); max-height: calc(100vh - var(--header-height) - 40px); overflow-y: auto; } html.dark #sidebar { background: rgba(0, 0, 0, 0.4); } #sidebar .group { margin-bottom: 10px; } #sidebar .group-title { font-size: 14px; font-weight: 600; line-height: 23px; color: var(--text-light); margin: 0 0 10px 16px; } html.dark #sidebar .group-title { color: var(--text-dark); } #sidebar ul { list-style: none; margin: 0; padding: 0; } #sidebar li a { display: block; padding: 8px 16px; border-radius: 12px; font-size: 14px; line-height: 21px; color: var(--muted-light); } html.dark #sidebar li a { color: var(--muted-dark); } #sidebar li a.active { color: var(--text-light); } html.dark #sidebar li a.active { color: var(--text-dark); } #sidebar li a:hover { background: rgba(0, 0, 0, 0.05); color: var(--text-light); } html.dark #sidebar li a:hover { background: rgba(255, 255, 255, 0.08); color: var(--text-dark); } #content-col { flex: 1; min-width: 0; display: flex; padding: 16px 20px 20px; gap: 92px; max-width: 100%; box-sizing: border-box; } #main-wrap { flex: 1; min-width: 0; max-width: 720px; margin-top: 130px; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius: 12px; width: 100%; box-sizing: border-box; display: flex; flex-direction: column; } html.dark #main-wrap { background: rgba(0, 0, 0, 0.4); } footer#site-footer { min-width: 0; width: 100%; max-width: 100%; box-sizing: border-box; padding: 48px 0 60px; margin: 0; display: flex; flex-direction: column; } .footer-nav { display: flex; justify-content: space-between; align-items: center; gap: 16px; width: 100%; min-height: 22px; margin: 0 0 36px; } .footer-link { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--text-light); transition: opacity 0.15s ease; } html.dark .footer-link { color: #ffffff; } .footer-link:hover { opacity: 0.8; } .footer-link.hidden { visibility: hidden; } .footer-link.next { margin-left: auto; } .footer-bottom { width: 100%; border-top: 1px solid rgba(0, 0, 0, 0.08); padding-top: 28px; } html.dark .footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.08); } .footer-socials { display: flex; gap: 16px; } .footer-socials a { display: flex; align-items: center; color: var(--muted-light); transition: color 0.15s ease; } html.dark .footer-socials a { color: var(--muted-dark); } .footer-socials a:hover { color: var(--text-light); } html.dark .footer-socials a:hover { color: #ffffff; } .footer-icon { width: 20px; height: 20px; } .theme-wrap { position: relative; } #theme-toggle { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: none; border-radius: 10px; background: none; color: var(--muted-light); cursor: pointer; } #theme-toggle .ico { width: 18px; height: 18px; } #theme-toggle:hover { background: rgba(0, 0, 0, 0.05); } html.dark #theme-toggle { color: var(--muted-dark); } html.dark #theme-toggle:hover { background: rgba(255, 255, 255, 0.08); } #theme-menu { display: block; position: absolute; right: 0; top: 46px; width: 180px; padding: 8px; border-radius: 16px; background: var(--bg-light); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12); z-index: 50; opacity: 0; visibility: hidden; transform: translateY(-8px) scale(0.96); transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.2s; pointer-events: none; } html.dark #theme-menu { background: var(--bg-dark); } #theme-menu.open { opacity: 1; visibility: visible; transform: translateY(0) scale(1); pointer-events: auto; } #theme-menu button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 10px; border: none; border-radius: 10px; background: none; color: inherit; font: inherit; font-size: 14px; cursor: pointer; } #theme-menu button:hover { background: rgba(0, 0, 0, 0.05); } html.dark #theme-menu button:hover { background: rgba(255, 255, 255, 0.08); } #theme-menu .check { margin-left: auto; font-style: normal; visibility: hidden; } #theme-menu button.on { font-weight: 600; } #theme-menu button.on .check { visibility: visible; } #theme-seg { display: none; gap: 4px; } #theme-seg button { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: none; border-radius: 50%; background: none; color: var(--muted-light); cursor: pointer; } html.dark #theme-seg button { color: var(--muted-dark); } #theme-seg button.on { background: rgba(0, 0, 0, 0.07); color: var(--text-light); } html.dark #theme-seg button.on { background: rgba(255, 255, 255, 0.1); color: var(--text-dark); } #mobile-bar { display: none; position: relative; align-items: center; gap: 8px; padding: 10px 20px; font-size: 14px; color: var(--muted-light); background: transparent; border-top: 1px solid rgba(0, 0, 0, 0.05); } html.dark #mobile-bar { color: var(--muted-dark); border-top: 1px solid rgba(255, 255, 255, 0.08); } #mobile-bar button { display: flex; padding: 0; margin-right: 4px; border: none; background: none; color: inherit; cursor: pointer; flex-shrink: 0; } .mobile-crumbs { display: flex; align-items: center; gap: 7px; min-width: 0; overflow: hidden; white-space: nowrap; } .mobile-crumbs span { flex-shrink: 0; } .mobile-crumbs .crumb-group { color: var(--muted-light); } html.dark .mobile-crumbs .crumb-group { color: var(--muted-dark); } .mobile-crumbs .crumb-sep { opacity: 0.55; font-size: 12px; } .mobile-crumbs .crumb-page { color: var(--text-light); font-weight: 600; cursor: pointer; user-select: none; } html.dark .mobile-crumbs .crumb-page { color: var(--text-dark); } .mobile-crumbs .crumb-page:hover { text-decoration: underline; text-underline-offset: 3px; } .mobile-crumbs .crumb-page.muted { color: var(--muted-light); font-weight: 400; } html.dark .mobile-crumbs .crumb-page.muted { color: var(--muted-dark); font-weight: 400; } .mobile-crumb-sub-btn { display: inline-flex; align-items: center; gap: 7px; min-width: 0; overflow: hidden; cursor: pointer; user-select: none; } .mobile-crumb-sub-btn:hover .crumb-heading { text-decoration: underline; text-underline-offset: 3px; } .mobile-crumbs .crumb-heading { color: var(--text-light); font-weight: 600; overflow: hidden; text-overflow: ellipsis; flex-shrink: 1; } html.dark .mobile-crumbs .crumb-heading { color: var(--text-dark); } .mobile-tabs { display: none; position: relative; margin-bottom: 20px; } .mt-btn { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 8px 12px; border: none; background: rgba(25, 25, 25, 0.1); border-radius: 100px; color: var(--text-light); font: inherit; font-size: 15px; cursor: pointer; } html.dark .mt-btn { color: var(--text-dark); } .mt-btn .ico { color: var(--muted-light); transition: transform 0.15s ease; } html.dark .mt-btn .ico { color: var(--muted-dark); } .mobile-tabs.open .mt-btn .ico { transform: rotate(180deg); } .mt-menu { display: block; position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 5; padding: 6px; border-radius: 16px; background: var(--bg-light); border: 1px solid var(--border-light); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08); opacity: 0; visibility: hidden; transform: translateY(-8px) scale(0.97); transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.2s; pointer-events: none; } html.dark .mt-menu { background: #000000; border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.6); } .mobile-tabs.open .mt-menu { opacity: 1; visibility: visible; transform: translateY(0) scale(1); pointer-events: auto; } .mt-menu .mt-item { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 10px 14px; border: none; background: none; border-radius: 10px; font: inherit; font-size: 14px; font-weight: 500; color: var(--muted-light); cursor: pointer; text-align: left; transition: background 0.15s ease, color 0.15s ease; } html.dark .mt-menu .mt-item { color: #a3a3a3; } .mt-menu .mt-item:hover { background: rgba(0, 0, 0, 0.05); color: var(--text-light); } html.dark .mt-menu .mt-item:hover { background: rgba(255, 255, 255, 0.06); color: #ffffff; } .mt-menu .mt-item.on { color: var(--text-light); font-weight: 600; } html.dark .mt-menu .mt-item.on { color: #ffffff; } .mt-menu .mt-item svg { display: none; width: 16px; height: 16px; stroke: currentColor; stroke-width: 2.5; fill: none; flex-shrink: 0; } .mt-menu .mt-item.on svg { display: block; } .side-head { display: none; } body.is-home #sidebar, body.is-home #toc, body.is-home #mobile-bar { display: none !important; } body.is-home #layout { display: block; width: 100%; max-width: 100%; margin: 0; } body.is-home #content-wrapper { width: 100%; display: flex; justify-content: center; } body.is-home #content-col { display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 1200px; padding: 0 20px 60px; margin: 0 auto; gap: 0; box-sizing: border-box; } body.is-home #main-wrap { width: 100%; max-width: 1100px; margin: 0 auto; background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; display: flex; flex-direction: column; align-items: center; } body.is-home main.prose { width: 100%; max-width: 100%; display: flex; flex-direction: column; align-items: center; } @media (max-width: 900px) { :root { --header-height: 60px; } #header-container { width: 91%; border-radius: 25px; } #navbar .tabs, #theme-toggle { display: none; } #navbar .nav-top { padding-right: 20px; padding-left: 15px; } #navbar .links { order: 1; margin-left: auto; margin-right: 8px; } #mobile-bar { display: flex; } .mobile-tabs { display: block; margin-top: 8px; } #sidebar #theme-seg { display: flex; align-items: center; background: rgba(0, 0, 0, 0.05); border-radius: 50px; padding: 2px 4px; gap: 2px; } html.dark #sidebar #theme-seg { background: rgba(50, 50, 50, 0.08); } #sidebar #theme-seg button { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: none; border-radius: 50%; background: none; color: var(--muted-light); cursor: pointer; padding: 0; } html.dark #sidebar #theme-seg button { color: var(--muted-dark); } #sidebar #theme-seg button.on { color: var(--text-light); font-weight: 900; } html.dark #sidebar #theme-seg button.on { color: var(--text-dark); font-weight: 900; } #banner { padding: 10px 40px; font-size: 12.5px; } body.nav-open { overflow: hidden; } #sidebar { position: fixed; left: 0; top: 0; margin-top: 0 !important; width: 80%; max-width: 340px; height: 100vh !important; height: 100dvh !important; max-height: 100vh !important; padding: 0 16px 20px; background: var(--bg-light); transform: translateX(-100%); transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15); border-radius: 0 35px 35px 0; z-index: 200; } html.dark #sidebar { background: var(--bg-dark); } #sidebar.open { transform: translateX(0); } #sidebar li a, #sidebar .group-title { font-size: 15px; } #layout { display: block; width: 100%; max-width: 100vw; } #content-col { display: block; width: 100%; max-width: 100%; padding: 16px 20px 20px; gap: 0; box-sizing: border-box; overflow-x: hidden; } #main-wrap { width: 100%; max-width: 100%; } footer#site-footer { width: 100%; max-width: 100%; padding: 36px 0 40px; } .side-head { display: flex; align-items: center; justify-content: space-between; height: 60px; margin: 0 -16px 12px; padding: 0 16px; } #sidebar .side-head .brand { display: flex; align-items: center; } #sidebar .side-head .brand img { height: 28px; width: 28px; border-radius: 50%; display: block; } #sidebar .side-links { display: flex; align-items: center; margin-right: 4px; } }