:root { color-scheme: light dark; --background: #fff; --foreground: #20242b; --muted: #f5f6f8; --border: #d9dfe7; --accent: #2856a5; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--background); color: var(--foreground); font: 17px/1.65 system-ui, sans-serif; }
a { color: var(--accent); text-underline-offset: 3px; }
a:focus-visible, summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
header { border-bottom: 1px solid var(--border); }
nav { max-width: 960px; margin: auto; padding: 18px 24px; display: flex; align-items: center; gap: 24px; }
nav a { text-decoration: none; }
.brand { margin-right: auto; color: var(--foreground); font-weight: 750; white-space: nowrap; }
.project-menu { position: relative; }
.project-menu summary { cursor: pointer; font-weight: 600; }
.project-menu__links { position: absolute; right: 0; top: calc(100% + 12px); z-index: 2; width: 220px; max-width: calc(100vw - 32px); padding: 8px; border: 1px solid var(--border); border-radius: 10px; background: var(--background); box-shadow: 0 8px 24px #0002; }
.project-menu__links a { display: block; min-height: 44px; padding: 8px 12px; border-radius: 5px; }
.project-menu__links a:hover, .project-menu__links a[aria-current] { background: var(--muted); }
main, footer { max-width: 960px; margin: auto; padding: 32px 24px; }
main { overflow-wrap: anywhere; }
h1, h2, h3, h4 { line-height: 1.3; margin: 1.5em 0 .7em; }
h1 { margin-top: 0; font-size: 2.5rem; }
pre { background: var(--muted); padding: 18px; border: 1px solid var(--border); border-radius: 8px; overflow: auto; font-size: 14px; line-height: 1.6; }
code { font-family: ui-monospace, monospace; }
:not(pre) > code { background: var(--muted); border-radius: 3px; padding: .12em .25em; font-size: .9em; }
img { max-width: 100%; height: auto; }
blockquote { margin-left: 0; border-left: 4px solid var(--border); padding-left: 20px; }
hr { border: 0; border-top: 1px solid var(--border); margin: 32px 0; }
li { margin-bottom: 5px; }
footer { font-size: 14px; border-top: 1px solid var(--border); }
.skip-link { position: absolute; left: 16px; top: -80px; padding: 8px; background: var(--background); }
.skip-link:focus { top: 8px; z-index: 3; }
@media (max-width: 480px) { nav { gap: 16px; padding: 16px; font-size: 15px; } main, footer { padding: 24px 16px; } }
@media (prefers-color-scheme: dark) { :root { --background: #171b22; --foreground: #e7ebf2; --muted: #232a35; --border: #3a4452; --accent: #9cbfff; } }

/* BEGIN ARCHIVEBOX CHROME */
/* Shared ArchiveBox site chrome. Source: ArchiveBox/monorepo/site-chrome. */
.abx-header, .abx-footer { box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 14px; line-height: 1.5; letter-spacing: normal; text-align: left; }
.abx-header *, .abx-footer * { box-sizing: border-box; }
.abx-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; max-width: none; margin: 0; padding: 15px max(24px, calc((100% - 1280px) / 2)); border: 0; border-bottom: 1px solid #e9e2e3; background: #fcfaf7f5; color: #28252a; backdrop-filter: blur(16px); }
.abx-header a, .abx-footer a { text-decoration: none; text-underline-offset: .24em; }
.abx-header .abx-brand, .abx-footer .abx-brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 11px; margin: 0; padding: 0; color: inherit; font-size: 19px; font-weight: 750; line-height: 1.2; letter-spacing: -.5px; white-space: nowrap; }
.abx-brand .abx-logo { display: block; flex: 0 0 auto; width: 32px; height: 32px; margin: 0; }
.abx-header .abx-subsite { margin-left: 2px; color: #716c74; font-size: 12px; font-weight: 450; letter-spacing: 0; }
.abx-header .abx-nav { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 0; width: auto; max-width: none; margin: 0; padding: 0; font-size: 13px; font-weight: 600; }
.abx-nav > a, .abx-nav > details { margin: 0 0 0 15px; padding: 0 0 0 15px; border: 0; border-left: 1px solid #ded4d8; border-radius: 0; background: none; }
.abx-nav > :first-child { margin-left: 0; padding-left: 0; border-left: 0; }
.abx-header .abx-nav a { display: inline-flex; align-items: center; min-height: 36px; color: #4d424b; white-space: nowrap; }
.abx-header .abx-nav a:hover { color: #9b2854; }
.abx-header .abx-nav .abx-cta { margin-left: 18px; padding: 9px 17px; border: 1px solid #9b2854; border-radius: 24px; background: #9b2854; color: #fff; }
.abx-header .abx-nav .abx-cta:hover { background: #782040; color: #fff; }
.abx-header .abx-apps { position: relative; }
.abx-apps > summary { display: flex; align-items: center; gap: 7px; min-height: 36px; list-style: none; cursor: pointer; color: #4d424b; }
.abx-apps > summary::-webkit-details-marker { display: none; }
.abx-apps > summary::before { content: '›'; display: inline-block; color: #9b2854; font-size: 22px; line-height: 1; transition: transform .15s; }
.abx-apps[open] > summary::before { transform: rotate(90deg); }
.abx-header .abx-app-links { position: absolute; right: 0; top: calc(100% + 12px); width: 305px; max-height: min(70vh, 580px); overflow-y: auto; padding: 10px; border: 1px solid #e9e2e3; border-radius: 14px; background: #fcfaf7; box-shadow: 0 16px 48px #2d152522; }
.abx-header .abx-app-links a { display: flex; min-height: 42px; padding: 9px 12px; border-radius: 7px; white-space: normal; }
.abx-header .abx-app-links code { display: inline; vertical-align: baseline; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 1em; font-weight: inherit; line-height: inherit; margin: 0 .3em; padding: 0; border: 0; background: transparent; color: inherit; }
.abx-header .abx-app-links a:hover { background: #f2e8ed; }
.abx-footer { position: relative; z-index: 1; display: block; width: 100%; max-width: none; margin: 72px 0 0; padding: 60px max(24px, calc((100% - 1280px) / 2)) 24px; border: 0; border-top: 3px solid #7e284a; background: radial-gradient(ellipse at 12% 0, #54243b55, transparent 48%), linear-gradient(120deg, #201923, #14151b 75%); color: #ddd2dd; color-scheme: dark; }
.abx-footer .abx-footer-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 32px; margin: 0 0 42px; }
.abx-footer .abx-brand { color: #fff4ed; font-size: 24px; }
.abx-footer .abx-brand .abx-logo { width: 40px; height: 40px; }
.abx-footer .abx-tagline { max-width: 430px; margin: 12px 0 0; color: #b8acbb; font-size: 14px; line-height: 1.7; }
.abx-footer .abx-footer-motto { margin: 2px 0 0; color: #d8b39f; font: italic 25px/1.45 Georgia, serif; text-align: right; }
.abx-footer .abx-footer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 42px; margin: 0; }
.abx-footer .abx-footer-column { margin: 0; padding: 20px 0 0; border: 0; border-top: 1px solid #67505e66; background: none; }
.abx-footer .abx-footer-column h2 { margin: 0 0 19px; padding: 0; border: 0; color: #e4acbb; font: 650 12px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.abx-footer .abx-footer-column ul { display: block; list-style: none; margin: 0; padding: 0; }
.abx-footer .abx-footer-column li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; min-height: 36px; }
.abx-footer .abx-footer-column li::before { content: none; }
.abx-footer .abx-footer-column a { color: #ddd2dd; font-size: 13px; line-height: 1.55; }
.abx-footer .abx-footer-column a:first-child { padding: 6px 0; }
.abx-footer a:hover { color: #fff; text-decoration: underline; }
.abx-footer .abx-source { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 28px; width: 28px; height: 28px; border: 1px solid transparent; border-radius: 50%; color: #a58d9f; }
.abx-footer .abx-source:hover { color: #f3b5cb; border-color: #80516a; background: #ffffff08; }
.abx-source svg { width: 15px; height: 15px; fill: currentColor; }
.abx-footer .abx-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-top: 32px; padding-top: 21px; border-top: 1px solid #67505e66; color: #a99bab; font-size: 12px; }
.abx-footer .abx-footer-bottom p { margin: 0; font-size: inherit; color: inherit; }
.abx-footer .abx-footer-bottom a { color: #cebbc9; }
.abx-footer .abx-footer-local { margin: 24px 0 0; padding: 16px 0 0; border: 0; border-top: 1px solid #67505e66; border-radius: 0; background: none; color: #baacbc; font-size: 12px; }
.abx-footer-local > summary { cursor: pointer; color: #d6bfce; }
.abx-footer-local > div { padding-top: 18px; }
.abx-footer-local a { color: #e5aabd; }
.abx-footer-local .brand, .abx-footer-local .footer-intro, .abx-footer-local .footer-grid, .abx-footer-local .footer-meta { color: inherit; }
.abx-footer-local .footer-card { background: transparent; border-color: #67505e66; }
.abx-footer-local h2, .abx-footer-local h3, .abx-footer-local strong { color: #e4d8e3; }
.abx-footer-local .footer-link-copy span, .abx-footer-local .footer-card-subtitle { color: #baacbc; }
.abx-header a:focus-visible, .abx-header summary:focus-visible, .abx-footer a:focus-visible, .abx-footer summary:focus-visible { outline: 3px solid #d67c9f; outline-offset: 4px; }
@media (max-width: 1100px) {
  .abx-header { flex-wrap: wrap; gap: 8px 24px; padding: 12px 20px; }
  .abx-header .abx-nav { justify-content: flex-start; }
  .abx-header .abx-app-links { position: fixed; top: auto; left: 20px; right: 20px; width: auto; margin-top: 10px; }
}
@media (max-width: 700px) {
  .abx-header { position: relative; padding: 14px 18px; }
  .abx-header .abx-brand { flex-wrap: wrap; row-gap: 5px; }
  .abx-header .abx-nav { width: 100%; gap: 4px 0; font-size: 12px; }
  .abx-nav > a, .abx-nav > details { margin-left: 10px; padding-left: 10px; }
  .abx-header .abx-nav .abx-cta { margin-left: 10px; padding: 7px 13px; }
  .abx-header .abx-app-links { left: 12px; right: 12px; max-height: 60vh; }
  .abx-footer { padding: 40px 22px 22px; margin-top: 48px; }
  .abx-footer .abx-footer-intro { display: block; margin-bottom: 30px; }
  .abx-footer .abx-footer-motto { margin-top: 20px; text-align: left; font-size: 22px; }
  .abx-footer .abx-footer-grid { grid-template-columns: 1fr; gap: 26px; }
  .abx-footer .abx-footer-column li { min-height: 40px; }
}
@media (prefers-reduced-motion: reduce) { .abx-apps > summary::before { transition: none; } }

.abx-footer-local > div > a + a { margin-left: 12px; }
/* END ARCHIVEBOX CHROME */
