/* maple-mono-latin-400-normal */
@font-face {
  font-family: 'Maple Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/maple-mono-latin-400-normal.WIx2rg0p.woff2) format('woff2'), url(/_astro/maple-mono-latin-400-normal.OcfaEJ46.woff) format('woff');
}
/* maple-mono-latin-500-normal */
@font-face {
  font-family: 'Maple Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/maple-mono-latin-500-normal.DArLj6fy.woff2) format('woff2'), url(/_astro/maple-mono-latin-500-normal.CeaAlHyl.woff) format('woff');
}
/* maple-mono-latin-600-normal */
@font-face {
  font-family: 'Maple Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/maple-mono-latin-600-normal.BfjBt7Gd.woff2) format('woff2'), url(/_astro/maple-mono-latin-600-normal.Bl2EjP25.woff) format('woff');
}
/* maple-mono-latin-700-normal */
@font-face {
  font-family: 'Maple Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/_astro/maple-mono-latin-700-normal.B_sC0Ion.woff2) format('woff2'), url(/_astro/maple-mono-latin-700-normal.DeN56mtg.woff) format('woff');
}
/* Local Markdown layout blocks. The plugin exposes equivalent structural rules
   for custom themes; these defaults work without an extra stylesheet import. */
:is(.article-content, .prose) .markdown-layout {
  margin: 38px 0 42px;
  color: var(--paper-ink);
}
:is(.article-content, .prose) .markdown-columns {
  display: grid;
  grid-template-columns: var(--markdown-layout-column-template);
  gap: clamp(1.25rem, 4vw, 2.5rem);
  align-items: stretch;
  padding: 24px 0;
  border-top: 1px solid var(--paper-line-strong);
  border-bottom: 1px solid var(--paper-line-strong);
}
:is(.article-content, .prose) .markdown-layout-column {
  min-width: 0;
}
:is(.article-content, .prose)
  .markdown-layout-column
  + .markdown-layout-column {
  padding-left: clamp(1.25rem, 4vw, 2.5rem);
  border-left: 1px solid var(--paper-line);
}
:is(.article-content, .prose) .markdown-layout-column.is-media {
  align-self: center;
  overflow: visible;
  padding-left: 0;
  border-left: 0;
  border-radius: 0;
  background: transparent;
}
:is(.article-content, .prose) .markdown-layout-column.is-media > p:only-child {
  margin: 0;
}
:is(.article-content, .prose) .markdown-layout-column.is-media img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  border-radius: 8px;
  filter: none;
}
:is(.article-content, .prose) .markdown-timeline {
  padding-bottom: 10px;
}
:is(.article-content, .prose) .markdown-timeline.is-horizontal {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-color: var(--paper-ink-faint) transparent;
  scrollbar-width: thin;
  padding-inline: 6px;
}
:is(.article-content, .prose) .markdown-timeline-list {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--paper-ink);
}
:is(.article-content, .prose) .markdown-timeline-event {
  color: var(--paper-ink);
}
:is(.article-content, .prose) .markdown-timeline-event::before {
  position: absolute;
  color: var(--paper-ink-faint);
  font-family: var(--font-meta);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.2;
  content: attr(data-timeline-date);
}
:is(.article-content, .prose) .markdown-timeline-event::after {
  position: absolute;
  width: 8px;
  height: 8px;
  border: 2px solid var(--paper-surface);
  border-radius: 999px;
  background: var(--paper-accent);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--paper-accent) 45%, transparent);
  content: "";
}
:is(.article-content, .prose) .markdown-timeline-event > :first-child {
  margin-top: 0;
}
:is(.article-content, .prose) .markdown-timeline-event > :last-child {
  margin-bottom: 0;
}
:is(.article-content, .prose)
  .markdown-timeline.is-vertical
  .markdown-timeline-list {
  --timeline-rail-inset: clamp(5.75rem, 11vw, 6.5rem);
  --timeline-content-gap: clamp(1.5rem, 3vw, 2rem);
}
:is(.article-content, .prose)
  .markdown-timeline.is-vertical
  .markdown-timeline-event {
  position: relative;
  min-height: 5.5rem;
  margin-left: var(--timeline-rail-inset);
  padding: 0 0 1.5rem var(--timeline-content-gap);
  border-left: 1px solid var(--paper-line-strong);
}
:is(.article-content, .prose)
  .markdown-timeline.is-vertical
  .markdown-timeline-event::before {
  top: 1px;
  left: calc(0px - var(--timeline-rail-inset));
  width: calc(var(--timeline-rail-inset) - 1rem);
  text-align: right;
  white-space: nowrap;
}
:is(.article-content, .prose)
  .markdown-timeline.is-vertical
  .markdown-timeline-event::after {
  top: 2px;
  left: -5px;
}
:is(.article-content, .prose)
  .markdown-timeline.is-horizontal
  .markdown-timeline-list {
  grid-auto-columns: minmax(13rem, 1fr);
  grid-auto-flow: column;
  min-width: max-content;
  padding-top: 8px;
}
:is(.article-content, .prose)
  .markdown-timeline.is-horizontal
  .markdown-timeline-event {
  position: relative;
  min-width: 13rem;
  padding: 2.8rem 1.25rem 0 0;
  border-top: 1px solid var(--paper-line-strong);
}
:is(.article-content, .prose)
  .markdown-timeline.is-horizontal
  .markdown-timeline-event::before {
  top: 0.8rem;
  left: 0;
}
:is(.article-content, .prose)
  .markdown-timeline.is-horizontal
  .markdown-timeline-event::after {
  top: -5px;
  left: -5px;
}
@media (max-width: 720px) {
  :is(.article-content, .prose) .markdown-layout {
    margin: 30px 0 34px;
  }

  :is(.article-content, .prose) .markdown-columns {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    padding: 18px 0;
  }

  :is(.article-content, .prose)
    .markdown-layout-column
    + .markdown-layout-column {
    padding: 1.25rem 0 0;
    border-top: 1px solid var(--paper-line);
    border-left: 0;
  }

  :is(.article-content, .prose) .markdown-layout-column.is-media {
    padding-top: 0;
    border-top: 0;
  }

  :is(.article-content, .prose)
    .markdown-columns.is-media-first
    .markdown-layout-column.is-media {
    order: -1;
  }

  :is(.article-content, .prose)
    .markdown-timeline.is-vertical
    .markdown-timeline-list {
    --timeline-rail-inset: 4.75rem;
    --timeline-content-gap: 1.25rem;
  }
}
:root,
:root[data-palette='green-soft'] {
  --accent: #6b7d70;
  --accent-dark: #3f5348;
  --paper-accent: #667d6d;
  --paper-accent-soft: #edf3ed;
  --paper-fog: #dfe8e8;
  --paper-dust: #e9e2eb;
  --paper-rule: rgba(73, 88, 75, 0.026);
  --paper-texture-ink: rgba(73, 88, 75, 0.012);
}
:root[data-theme='dark'],
:root[data-theme='dark'][data-palette='green-soft'] {
  --accent: #a8baa9;
  --accent-dark: #d3dfd2;
  --paper-accent: #a8baa9;
  --paper-accent-soft: #2b372d;
  --paper-fog: #293737;
  --paper-dust: #352d38;
  --paper-rule: rgba(217, 229, 213, 0.028);
  --paper-texture-ink: rgba(217, 229, 213, 0.032);
}
:root[data-palette='green-vivid'] {
  --accent: #4e8a61;
  --accent-dark: #2f6844;
  --paper-accent: #4f855f;
  --paper-accent-soft: #eaf4ec;
  --paper-fog: #dceade;
  --paper-dust: #e8eadb;
  --paper-rule: rgba(51, 105, 66, 0.026);
  --paper-texture-ink: rgba(51, 105, 66, 0.012);
}
:root[data-theme='dark'][data-palette='green-vivid'] {
  --accent: #93c9a1;
  --accent-dark: #c5e7cc;
  --paper-accent: #93c9a1;
  --paper-accent-soft: #243b2c;
  --paper-fog: #243a2c;
  --paper-dust: #33382a;
  --paper-rule: rgba(194, 231, 202, 0.028);
  --paper-texture-ink: rgba(194, 231, 202, 0.032);
}
:root[data-palette='rose-soft'] {
  --accent: #9b6b70;
  --accent-dark: #74494f;
  --paper-accent: #95696d;
  --paper-accent-soft: #f5eded;
  --paper-fog: #eadfe0;
  --paper-dust: #ebe5dc;
  --paper-rule: rgba(122, 72, 77, 0.024);
  --paper-texture-ink: rgba(122, 72, 77, 0.012);
}
:root[data-theme='dark'][data-palette='rose-soft'] {
  --accent: #d2a6ab;
  --accent-dark: #f1cdd0;
  --paper-accent: #d2a6ab;
  --paper-accent-soft: #422d31;
  --paper-fog: #3b2f32;
  --paper-dust: #393328;
  --paper-rule: rgba(239, 199, 203, 0.026);
  --paper-texture-ink: rgba(239, 199, 203, 0.032);
}
:root[data-palette='pink-soft'] {
  --accent: #a66d8a;
  --accent-dark: #7d4a66;
  --paper-accent: #9c6a83;
  --paper-accent-soft: #f6edf2;
  --paper-fog: #eadfea;
  --paper-dust: #e7e4dc;
  --paper-rule: rgba(126, 72, 102, 0.024);
  --paper-texture-ink: rgba(126, 72, 102, 0.012);
}
:root[data-theme='dark'][data-palette='pink-soft'] {
  --accent: #d6a8c2;
  --accent-dark: #f2d1e2;
  --paper-accent: #d6a8c2;
  --paper-accent-soft: #432d3a;
  --paper-fog: #3b2f39;
  --paper-dust: #34352c;
  --paper-rule: rgba(244, 205, 225, 0.026);
  --paper-texture-ink: rgba(244, 205, 225, 0.032);
}
:root[data-palette='purple-soft'] {
  --accent: #7b6fa8;
  --accent-dark: #5a4d85;
  --paper-accent: #7b6fa8;
  --paper-accent-soft: #f0edf7;
  --paper-fog: #e6e1f1;
  --paper-dust: #efe3eb;
  --paper-rule: rgba(104, 88, 145, 0.026);
  --paper-texture-ink: rgba(104, 88, 145, 0.012);
}
:root[data-theme='dark'][data-palette='purple-soft'] {
  --accent: #b9addd;
  --accent-dark: #ddd4ff;
  --paper-accent: #b9addd;
  --paper-accent-soft: #332b43;
  --paper-fog: #302d3e;
  --paper-dust: #3a2f3a;
  --paper-rule: rgba(210, 198, 245, 0.028);
  --paper-texture-ink: rgba(210, 198, 245, 0.032);
}
:root[data-palette='blue-soft'] {
  --accent: #637da3;
  --accent-dark: #405b80;
  --paper-accent: #637da3;
  --paper-accent-soft: #edf2f8;
  --paper-fog: #dde7f0;
  --paper-dust: #e5e5dc;
  --paper-rule: rgba(63, 88, 125, 0.026);
  --paper-texture-ink: rgba(63, 88, 125, 0.012);
}
:root[data-theme='dark'][data-palette='blue-soft'] {
  --accent: #a8bddb;
  --accent-dark: #d2e1f6;
  --paper-accent: #a8bddb;
  --paper-accent-soft: #29364a;
  --paper-fog: #283541;
  --paper-dust: #33322a;
  --paper-rule: rgba(204, 222, 246, 0.028);
  --paper-texture-ink: rgba(204, 222, 246, 0.032);
}
:root[data-palette='orange-soft'] {
  --accent: #9a7650;
  --accent-dark: #73532f;
  --paper-accent: #987451;
  --paper-accent-soft: #f5f0e8;
  --paper-fog: #eee3d4;
  --paper-dust: #e5e7dc;
  --paper-rule: rgba(122, 84, 42, 0.024);
  --paper-texture-ink: rgba(122, 84, 42, 0.012);
}
:root[data-theme='dark'][data-palette='orange-soft'] {
  --accent: #d0b18a;
  --accent-dark: #efd6b6;
  --paper-accent: #d0b18a;
  --paper-accent-soft: #403326;
  --paper-fog: #3b3429;
  --paper-dust: #2d3830;
  --paper-rule: rgba(239, 212, 177, 0.026);
  --paper-texture-ink: rgba(239, 212, 177, 0.032);
}
:root[data-palette='brown-soft'] {
  --accent: #836f5d;
  --accent-dark: #604f40;
  --paper-accent: #81705f;
  --paper-accent-soft: #f1eee9;
  --paper-fog: #e8e2d9;
  --paper-dust: #e2e6dc;
  --paper-rule: rgba(93, 75, 56, 0.024);
  --paper-texture-ink: rgba(93, 75, 56, 0.012);
}
:root[data-theme='dark'][data-palette='brown-soft'] {
  --accent: #c3b09d;
  --accent-dark: #e5d5c4;
  --paper-accent: #c3b09d;
  --paper-accent-soft: #393128;
  --paper-fog: #363229;
  --paper-dust: #2c3831;
  --paper-rule: rgba(228, 211, 191, 0.026);
  --paper-texture-ink: rgba(228, 211, 191, 0.032);
}
/*
  The CSS in this style tag is based off of Bear Blog's default CSS.
  https://github.com/HermanMartinus/bearblog/blob/297026a877bc2ab2b3bdfbd6b9f7961c350917dd/templates/styles/blog/default.css
  License MIT: https://github.com/HermanMartinus/bearblog/blob/master/LICENSE.md
 */
:root {
  --black: 35, 39, 35;
  --gray: 112, 119, 111;
  --gray-light: 226, 231, 224;
  --gray-dark: 48, 53, 49;
  --paper-bg: #fdfdf9;
  --paper-bg-deep: #f3f5ef;
  --paper-surface: #fffffc;
  --paper-surface-muted: #f7f8f3;
  --paper-surface-rgb: 255, 255, 252;
  --paper-line: rgba(31, 35, 40, 0.075);
  --paper-line-strong: rgba(31, 35, 40, 0.12);
  --paper-ink: #272d28;
  --paper-ink-soft: #667066;
  --paper-ink-faint: #90998f;
  --paper-control: rgba(246, 248, 245, 0.76);
  --paper-control-hover: rgba(238, 243, 237, 0.92);
  --paper-nav: rgba(255, 255, 252, 0.92);
  --paper-card-wash-top: rgba(255, 255, 252, 0.78);
  --paper-card-wash-bottom: rgba(247, 248, 243, 0.52);
  --paper-page-bg: #fdfdf9;
  --paper-detail-bg: #fdfdf9;
  --paper-texture-light: rgba(255, 255, 255, 0.18);
  --paper-theme-color: #fdfdf9;
  --paper-shadow: 0 1px 2px rgba(31, 35, 40, 0.03), 0 4px 12px rgba(31, 35, 40, 0.02);
  --paper-shadow-lift: 0 1px 2px rgba(31, 35, 40, 0.04), 0 6px 14px rgba(31, 35, 40, 0.025);
  --layout-shell-width: 1168px;
  --layout-reading-width: 760px;
  --layout-page-gutter: 32px;
  --layout-page-top: 126px;
  --layout-page-bottom: 72px;
  --page-header-spacing: 54px;
  --page-header-spacing-mobile: 28px;
  --font-config-en: 'Maple Mono';
  --font-config-code: 'Monaco';
  --font-config-zh: 'ChillRoundM';
  --font-config-zh-subset: 'ChillRoundM UI Subset';
  --font-cjk-system: var(--font-config-en), 'PingFang SC', 'Microsoft YaHei', system-ui, sans-serif;
  --font-ui-cjk: var(--font-config-zh-subset), var(--font-config-zh), var(--font-cjk-system);
  --font-serif-cn: var(--font-ui-cjk);
  --font-mono:
    var(--font-config-en), var(--font-config-zh-subset), var(--font-config-zh), ui-monospace,
    SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --font-body: var(--font-mono);
  --font-display: var(--font-mono);
  --font-note: var(--font-mono);
  --font-article: var(--font-config-en), var(--font-config-zh), var(--font-cjk-system);
  --font-heading: var(--font-config-en), var(--font-config-zh), var(--font-cjk-system);
  --font-page-heading:
    var(--font-config-en), var(--font-config-zh-subset), var(--font-config-zh),
    var(--font-cjk-system);
  --font-meta: var(--font-mono);
  --font-code: var(--font-config-code), var(--font-mono);
  --font-ui-label: var(--font-mono);
  --gray-gradient: rgba(226, 231, 224, 0.38), var(--paper-bg);
  --box-shadow: var(--paper-shadow-lift);
  color-scheme: light;
}
:root[data-theme='dark'] {
  --black: 234, 235, 229;
  --gray: 166, 175, 164;
  --gray-light: 56, 64, 56;
  --gray-dark: 225, 229, 221;
  --paper-bg: #171b18;
  --paper-bg-deep: #111411;
  --paper-surface: #202620;
  --paper-surface-muted: #273026;
  --paper-surface-rgb: 32, 38, 32;
  --paper-line: rgba(217, 229, 213, 0.08);
  --paper-line-strong: rgba(217, 229, 213, 0.14);
  --paper-ink: #eaebe5;
  --paper-ink-soft: #b5beb1;
  --paper-ink-faint: #899487;
  --paper-control: rgba(42, 51, 43, 0.72);
  --paper-control-hover: rgba(52, 64, 53, 0.88);
  --paper-nav: rgba(32, 38, 32, 0.92);
  --paper-card-wash-top: rgba(39, 47, 39, 0.72);
  --paper-card-wash-bottom: rgba(28, 33, 28, 0.52);
  --paper-page-bg: linear-gradient(180deg, rgba(23, 27, 24, 0.98) 0%, rgba(17, 20, 17, 0.98) 100%);
  --paper-detail-bg: linear-gradient(
    180deg,
    rgba(23, 27, 24, 0.98) 0%,
    rgba(17, 20, 17, 0.98) 100%
  );
  --paper-texture-light: rgba(255, 255, 255, 0.035);
  --paper-shadow: 0 1px 2px rgba(0, 0, 0, 0.14), 0 4px 12px rgba(0, 0, 0, 0.08);
  --paper-shadow-lift: 0 1px 2px rgba(0, 0, 0, 0.16), 0 6px 14px rgba(0, 0, 0, 0.1);
  --paper-theme-color: #171b18;
  color-scheme: dark;
}
body {
  font-family: var(--font-body);
  margin: 0;
  padding: 0;
  text-align: left;
  background: linear-gradient(var(--gray-gradient)) no-repeat;
  background-size: 100% 600px;
  word-wrap: break-word;
  overflow-wrap: break-word;
  color: rgb(var(--gray-dark));
  font-size: 20px;
  line-height: 1.7;
}
main {
  width: min(100%, var(--layout-shell-width));
  max-width: none;
  margin: auto;
  padding: var(--layout-page-top) var(--layout-page-gutter) var(--layout-page-bottom);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 0.5rem 0;
  color: rgb(var(--black));
  line-height: 1.2;
}
h1 {
  font-size: 3.052em;
}
h2 {
  font-size: 2.441em;
}
h3 {
  font-size: 1.953em;
}
h4 {
  font-size: 1.563em;
}
h5 {
  font-size: 1.25em;
}
strong,
b {
  font-weight: 700;
}
a {
  color: var(--accent);
}
a:hover {
  color: var(--accent);
}
p {
  margin-bottom: 1em;
}
.prose p {
  margin-bottom: 2em;
}
textarea {
  width: 100%;
  font-size: 16px;
}
input {
  font-size: 16px;
}
table {
  width: 100%;
}
.markdown-table-scroll {
  max-width: 100%;
  margin: 28px 0 30px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.markdown-table-scroll table {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
}
.markdown-table-scroll th {
  white-space: nowrap;
}
img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}
blockquote {
  border-left: 4px solid var(--accent);
  padding: 0 0 0 20px;
  margin: 0;
  font-size: 1.333em;
}
hr {
  border: none;
  border-top: 1px solid rgb(var(--gray-light));
}
@media (max-width: 720px) {
  body {
    font-size: 18px;
  }

  main {
    padding: 92px 18px 42px;
  }
}
.sr-only {
  border: 0;
  padding: 0;
  margin: 0;
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  /* IE6, IE7 - a 0 height clip, off to the bottom right of the visible 1px box */
  clip: rect(1px 1px 1px 1px);
  /* maybe deprecated but we need to support legacy browsers */
  clip: rect(1px, 1px, 1px, 1px);
  /* modern browsers, clip-path works inwards from each corner */
  clip-path: inset(50%);
  /* added line to stop words getting smushed together (as they go onto separate lines and some screen readers do not understand line feeds as a space */
  white-space: nowrap;
}
* {
  box-sizing: border-box;
}
html {
  background: var(--paper-bg);
  scrollbar-gutter: stable;
}
body {
  min-height: 100vh;
  background: var(--paper-page-bg);
  color: var(--paper-ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.8;
}
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: linear-gradient(var(--paper-rule) 1px, transparent 1px);
  background-size: 100% 32px;
  opacity: 0.28;
}
.publication-bg {
  position: fixed;
  inset: 0;
  z-index: -2;
  background: linear-gradient(180deg, rgba(var(--paper-surface-rgb), 0.28), transparent 42%);
}
.glass-card {
  position: relative;
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  background: var(--paper-surface);
  box-shadow: var(--paper-shadow);
  animation: card-in 420ms both;
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    border-color 180ms ease,
    background 180ms ease;
}
.glass-card::after {
  content: none;
}
.theme-icon-sun {
  display: none;
}
:root[data-theme='dark'] .theme-icon-moon {
  display: none;
}
:root[data-theme='dark'] .theme-icon-sun {
  display: block;
}
.glass-card:hover {
  transform: translateY(-1px);
  border-color: var(--paper-line-strong);
  box-shadow: var(--paper-shadow-lift);
}
.glass-card:nth-of-type(2) {
  animation-delay: 80ms;
}
.glass-card:nth-of-type(3) {
  animation-delay: 140ms;
}
a {
  color: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
.site-icon {
  display: inline-block;
  width: var(--icon-size);
  height: var(--icon-size);
  flex: 0 0 var(--icon-size);
  vertical-align: middle;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-page-heading);
  font-weight: 400;
  letter-spacing: 0;
}
.archive-header-shared {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
  gap: 32px;
  align-items: stretch;
}
.archive-header-main {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.archive-header-shared .archive-kicker {
  margin: 0;
  color: var(--paper-accent);
  font-family: var(--font-ui-label);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.archive-header-shared .archive-title {
  max-width: 760px;
  margin: 8px 0 0;
  color: var(--paper-ink);
  font-size: clamp(2.4rem, 5.5vw, 4rem);
  line-height: 1.08;
}
.archive-header-shared .archive-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  max-width: 300px;
  margin: 0;
  text-align: center;
}
.archive-header-shared .archive-subtitle {
  max-width: 30ch;
  margin: 0;
  color: var(--paper-ink-soft);
  font-family: var(--font-ui-label);
  font-size: 1.03rem;
  line-height: 1.76;
}
.archive-header-shared .archive-note {
  max-width: 42ch;
  margin: 0;
  color: var(--paper-ink-faint);
  font-family: var(--font-meta);
  font-size: 0.7rem;
  line-height: 1.75;
  text-align: center;
}
.archive-header-shared > .archive-note {
  align-self: center;
  justify-self: center;
  max-width: 300px;
  margin: 0;
  color: var(--paper-ink-soft);
  font-family: var(--font-ui-label);
  font-size: 1.03rem;
  line-height: 1.76;
}
.page-header-spacing {
  margin-bottom: var(--page-header-spacing);
}
@keyframes card-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }
}
@media (max-width: 720px) {
  .page-header-spacing {
    margin-bottom: var(--page-header-spacing-mobile);
  }

  .archive-header-shared {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .archive-header-shared .archive-copy,
  .archive-header-shared .archive-note {
    display: block;
    max-width: none;
    text-align: left;
  }

  .archive-header-shared .archive-title {
    font-size: 2.08rem;
    line-height: 1.1;
  }
}
/* Route announcer */
	.astro-route-announcer {
		position: absolute;
		left: 0;
		top: 0;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		overflow: hidden;
		white-space: nowrap;
		width: 1px;
		height: 1px;
	}html[data-font-loading] body {
    visibility: hidden;
  }