:root { color-scheme: light; --color-text: #162031; --color-tag1: #6c788c; --color-tag2: #547157; --color-bg: #f3f6fb; --color-surface: rgba(255, 255, 255, 0.84); --color-surface-strong: #ffffff; --color-surface-muted: #edf3fb; --color-border: rgba(22, 32, 49, 0.12); --color-border-strong: rgba(22, 32, 49, 0.2); --color-link: #225b9c; --color-link-line: rgba(34, 91, 156, 0.28); --color-linkhbg: rgba(89, 143, 211, 0.16); --color-linkh: #163a63; --color-bq: #628b72; --color-notice: #d0455a; --color-shadow: 0 20px 50px rgba(15, 23, 42, 0.08); --color-shadow-soft: 0 10px 30px rgba(15, 23, 42, 0.06); --code-bg: #f6f8fc; --code-border: rgba(55, 65, 81, 0.14); --page-glow-1: rgba(144, 187, 241, 0.18); --page-glow-2: rgba(99, 141, 118, 0.14); } @media (prefers-color-scheme: dark) { :root { color-scheme: dark; --color-text: #e7edf7; --color-tag1: #9aa7bb; --color-tag2: #9abf9c; --color-bg: #0b1020; --color-surface: rgba(15, 23, 42, 0.78); --color-surface-strong: #101827; --color-surface-muted: #162238; --color-border: rgba(148, 163, 184, 0.18); --color-border-strong: rgba(148, 163, 184, 0.26); --color-link: #8bc3ff; --color-link-line: rgba(139, 195, 255, 0.35); --color-linkhbg: rgba(139, 195, 255, 0.16); --color-linkh: #d9ecff; --color-bq: #8db59a; --color-notice: #ff8b8b; --color-shadow: 0 24px 60px rgba(0, 0, 0, 0.35); --color-shadow-soft: 0 12px 32px rgba(0, 0, 0, 0.3); --code-bg: #0f172a; --code-border: rgba(148, 163, 184, 0.22); --page-glow-1: rgba(71, 119, 183, 0.22); --page-glow-2: rgba(74, 118, 90, 0.18); } } *, *::before, *::after { box-sizing: border-box; } html { scrollbar-gutter: stable; scroll-behavior: smooth; font-size: 14pt; } body { box-sizing: content-box; margin: 0; font-family: "Lato", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; font-optical-sizing: auto; font-weight: 400; font-style: normal; font-size: 1rem; line-height: 1.5; color: var(--color-text); background: radial-gradient(circle at top, var(--page-glow-1), transparent 38%), radial-gradient(circle at right top, var(--page-glow-2), transparent 30%), var(--color-bg); background-attachment: fixed; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; } body.lang-zh { text-align: left; } ::selection { background-color: var(--color-linkhbg); color: var(--color-linkh); } main, .text-space { min-width: 0; } body a { color: var(--color-link); text-decoration: underline; text-decoration-thickness: 0.08em; text-underline-offset: 0.18em; text-decoration-color: var(--color-link-line); transition: color 0.18s ease, background-color 0.18s ease, text-decoration-color 0.18s ease; -webkit-box-decoration-break: clone; box-decoration-break: clone; } body a:visited { color: var(--color-link); } .text-space a:hover { background-color: var(--color-linkhbg); color: var(--color-linkh); text-decoration-color: transparent; border-radius: 0.2rem; } body a:focus-visible { outline: 2px solid var(--color-link); outline-offset: 3px; border-radius: 0.25rem; } details { margin: 1.25rem 0; padding: 0.85rem 1rem; background-color: var(--color-surface); border: 1px solid var(--color-border); border-radius: 1rem; box-shadow: var(--color-shadow-soft); } details[open] summary { margin-bottom: 0.75rem; } details > :last-child { margin-bottom: 0; } summary { font-weight: 700; } summary:hover { cursor: pointer; color: var(--color-linkh); } /* mathML */ .htmlmathparagraph, mtext, math { font-family: "Lete Sans Math"; } .math-container, #math-container { display: block; overflow-x: auto; overflow-y: hidden; padding: 0.5em; } .math-container.math-container-tagged { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; column-gap: 1rem; overflow: visible; padding: 0.5em 0; } .math-container.math-container-tagged .math-tag-spacer { min-width: 0; } .math-container.math-container-tagged .math-equation { min-width: 0; overflow-x: auto; overflow-y: hidden; padding: 0.5em 0; } .math-container.math-container-tagged .math-tag { justify-self: end; white-space: nowrap; font-family: "IosevkaC", sans-serif; } .math-container.math-container-tagged .math-tag math { display: inline; } .text-space .langtag { color: var(--color-tag1); } .sc { font-variant-caps: small-caps; } p { margin: 0 0 1rem; hyphens: auto; } a.url { word-break: break-all; } header { font-weight: 400; font-family: "IosevkaC", sans-serif; } .navbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; } .navright { display: flex; flex-wrap: wrap; } .navright a { margin: 0 0 0 1em; } .navbar a { color: var(--color-text); text-decoration: none; } .navbar a:visited { color: var(--color-text); } nav { margin-bottom: 1.5rem; padding-bottom: 0.75rem; text-align: right; border-bottom: 1px solid var(--color-border-strong); } nav a { display: inline-flex; align-items: center; vertical-align: middle; font-size: 1.05rem; text-decoration: none; } .uri { overflow-wrap: anywhere; word-break: break-word; white-space: normal; } footer { margin-top: 3rem; padding-right: 0.2rem; color: var(--color-tag1); font-size: 0.82rem; text-align: right; } h1, h2, h3, h4, h5, h6 { text-align: left; text-wrap: balance; } .pagetitle { margin: 0; font-size: 2rem; font-weight: 400; font-style: normal; text-align: left; line-height: 1; letter-spacing: -0.03em; } h1 { margin-top: 1.5rem; margin-bottom: 0.75rem; font-size: 1.44rem; font-weight: 700; font-style: normal; line-height: 1.1; letter-spacing: -0.02em; } h2 { margin-top: 1.75rem; margin-bottom: 0.7rem; font-size: 1.2rem; font-weight: 700; font-style: normal; line-height: 1.2; } h3 { margin-top: 1.5rem; margin-bottom: 0.6rem; font-size: 1rem; font-weight: 700; font-style: normal; line-height: 1.25; } h4, h5, h6 { margin-top: 1.35rem; margin-bottom: 0.55rem; line-height: 1.3; } article .header { color: var(--color-tag1); font-size: 1rem; font-style: normal; text-align: left; letter-spacing: 0.02em; } .info { color: var(--color-tag2); font-size: 1rem; font-style: normal; text-align: left; } .info a { color: var(--color-tag2); font-size: 1rem; font-style: normal; text-align: left; } .info a:visited { color: var(--color-tag2); } section.body { margin-top: 1.75rem; } section.body > :first-child { margin-top: 0; } .ascii-art { overflow-x: auto; font-family: monospace; line-height: 1.2; } blockquote { margin: 1.5rem 0; padding: 1rem 1.25rem; background-color: var(--color-surface); border: 1px solid var(--color-border); border-left: 4px solid var(--color-bq); border-radius: 0 1rem 1rem 0; box-shadow: var(--color-shadow-soft); } blockquote p { margin: 0; } ol, ul { margin: 0 0 1.1rem; padding-left: 2em; } ul { list-style-type: square; } li { margin-bottom: 0.3em; padding-left: 0.15em; } li::marker { color: var(--color-tag2); } table { margin: 1.5rem 0; border: 1px solid var(--color-border-strong); border-collapse: collapse; background-color: var(--color-surface-strong); box-shadow: var(--color-shadow-soft); } th, td { padding: 0.65rem 0.8rem; border: 1px solid var(--color-border); text-align: left; vertical-align: top; } th { background-color: var(--color-surface-muted); } tr:nth-child(even) td { background-color: var(--color-surface); } figure { display: flex; flex-flow: column; gap: 0.75rem; padding: 0.9rem; margin: 1.5rem auto; max-width: 80%; background-color: var(--color-surface); border: 1px solid var(--color-border); border-radius: 1.25rem; box-shadow: var(--color-shadow-soft); } figure img { border-radius: 0.9rem; } figcaption { padding: 0 0.25rem; color: var(--color-tag1); font-size: 0.92rem; text-align: center; } .caption { display: none; } .centerimg img { display: block; margin: 0 auto; } pre, div.highlight { margin: 1.5rem 0; padding: 1rem 1.1rem; overflow: auto; background-color: var(--code-bg); border: 1px solid var(--code-border); border-radius: 1rem; box-shadow: var(--color-shadow-soft); } pre code, div.highlight pre, div.highlight pre code { display: block; margin: 0; padding: 0; overflow: visible; background: transparent; border: 0; box-shadow: none; } code { display: inline; margin: 0; padding: 0.12em 0.35em; background-color: var(--code-bg); border: 1px solid var(--code-border); border-radius: 0.45rem; font-family: "IosevkaC", monospace; font-size: 0.92em; font-variant-ligatures: none; font-kerning: none; text-rendering: optimizeSpeed; } .draft-notice { display: table; margin: 1.5rem auto; padding: 0.85rem 1rem; color: var(--color-notice); text-align: center; background-color: var(--color-surface); border: 1px solid var(--color-border); border-left: 4px solid var(--color-notice); border-radius: 1rem; box-shadow: var(--color-shadow-soft); } .subtitle { margin-top: 0.5rem; color: var(--color-tag1); font-size: 1.2rem; line-height: 1.4; text-align: left; } .subtitle p { margin: 0.2rem 0; } .gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; margin-top: 2em; } .gallery img { display: block; width: 100%; max-width: 320px; border-radius: 1rem; box-shadow: var(--color-shadow-soft); } hr { margin: 2rem 0; border: 0; border-top: 1px solid var(--color-border-strong); } .toc { display: none; } /* phones: no sidebar, no sidenotes */ @media (max-width: 768px) { body { max-width: 876px; margin: auto; padding: 1rem 5% 3rem; text-align: left; background-attachment: scroll; } mjx-container[display="true"] { overflow-x: auto; overflow-y: hidden; } figure { max-width: 100%; } } /* sidebar, no sidenotes */ @media (min-width: 769px) { body { display: flex; flex-flow: row wrap; width: 95%; max-width: 1350px; margin: auto; padding: 1.5rem 5% 3rem 0; } .toc { display: inline-block; width: 33%; margin-top: 4.5rem; margin-left: 0; margin-right: 0; } div#contents ul, div#contents-big ul { margin-top: 0.3em; margin-bottom: 0.3em; margin-left: 0.1rem; padding-left: 1.45rem; line-height: 1.25; list-style-type: decimal; } div#contents-big ul ul { list-style-type: none; margin-top: 0.15rem; margin-left: 0.2rem; padding-left: 0.8rem; border-left: 1px solid var(--color-border); } div#contents-big li + li { margin-top: 0.18rem; } div#contents-big li::marker { color: var(--color-tag1); font-family: "IosevkaC", sans-serif; } div#contents-big { position: sticky; top: 6rem; left: 100%; clear: both; max-width: 68%; margin-right: 4em; padding: 0.8rem 1.15rem 0.9rem 1.45rem; background-color: var(--color-surface); border: 1px solid var(--color-border); border-radius: 1.25rem; box-shadow: var(--color-shadow-soft); backdrop-filter: blur(14px); font-size: 80%; text-align: left; } div#contents-big .mini-header { margin: 0 0 0.45rem; color: var(--color-tag1); font-weight: 700; font-variant: small-caps; letter-spacing: 0.08em; } div#contents-big a { color: var(--color-text); text-decoration: none; } div#contents-big li > a { display: block; margin-left: 0; padding: 0.14rem 0.32rem; border-radius: 0.55rem; border: 1px solid transparent; transition: color 0.18s ease, background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease; } div#contents-big a:visited { color: var(--color-text); } div#contents-big a:hover { background-color: var(--color-linkhbg); color: var(--color-linkh); } div#contents-big li > a:hover, div#contents-big li > a:focus-visible { border-color: var(--color-border); transform: translateX(2px); } div#contents-big li > a:focus-visible, div#contents-big .mini-header a:focus-visible { outline: 2px solid var(--color-link); outline-offset: 2px; } div#contents-big .mini-header a { display: inline-flex; align-items: center; justify-content: center; width: 1.25rem; height: 1.25rem; margin-left: 0.25rem; background-color: var(--color-surface-muted); border: 1px solid var(--color-border); border-radius: 999px; color: var(--color-link); font-size: 0.78rem; line-height: 1; vertical-align: middle; transition: color 0.18s ease, background-color 0.18s ease, border-color 0.18s ease; } div#contents-big .mini-header a:hover { background-color: var(--color-linkhbg); border-color: var(--color-border-strong); color: var(--color-linkh); transform: none; } .text-space { display: inline-block; width: 66%; max-width: 875px; } } /* sidebar + sidenotes */ @media (min-width: 1200px) { body { width: 75%; padding-right: 25%; } } @media print { .no-print, .no-print * { display: none !important; } body { margin: auto; background: white; } blockquote, details, div#contents-big, figure, pre, div.highlight, table { box-shadow: none; } }