/* Site additions. styles.css is an unchanged copy of the reference. */
.skip-link { position: absolute; left: 1rem; top: -5rem; z-index: 30; }
.skip-link:focus { top: 0.5rem; padding: 0.5rem; background: #fcf9ee; }
:focus-visible { outline: 2px solid #805200; outline-offset: 4px; }
.paper-section-body li { line-height: 1.68; }
code, .code {
  font-family: Menlo, Monaco, Consolas, "Lucida Console", monospace;
  font-size: 85%;
  hyphens: manual;
  padding: 0.12em 0.3em;
  border-radius: 0.2em;
  background: #3f330714;
  color: #161600c9;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.paper-section-body pre, .open-content pre {
  padding: 1rem;
  border-radius: 0.3rem;
  background: #242824;
  color: #fcf9ee;
  font-size: 85%;
}
pre code { padding: 0; border-radius: 0; background: transparent; color: inherit; font-size: inherit; }
.post-footer { margin: 4rem var(--paper-sheet-inset) 0; text-align: left; }
.mobile-nav-header nav { display: flex; gap: 1rem; font-size: 0.95rem; }
.mobile-nav-header nav a { text-decoration: none; }
.header-paper-menu > a:first-child { padding-left: 0; }
.header-scroll-column {
  grid-column: 2;
  display: grid;
  grid-template-columns: var(--paper-main-width) minmax(0, var(--paper-sidebar-width));
  gap: var(--paper-shell-gap);
  min-width: 0;
}
.header-paper-menu { display: flex; align-items: center; gap: 1rem; min-width: 0; padding-inline: 1rem; }
.paper-body .site-nav-desktop { column-gap: 0; }
.site-nav a.menu-icon, .mobile-nav-header a.menu-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  letter-spacing: 0;
}
.menu-icon img { display: block; }
.site-nav-desktop, .mobile-nav-header nav, .menu-contacts { align-items: center; }
.menu-contacts { display: flex; gap: 0.5rem; margin-left: auto; }
/* Desktop link padding supplies the remaining space between icons. */
.site-nav .menu-contacts { gap: 0; }
.menu-contacts a.menu-icon { line-height: 1; }
.menu-contacts a:last-child { padding-right: 0; }
@media (max-width: 600px) { .paper-body .site-nav-desktop { display: none; } }
.paper-sidebar-footnotes-label { display: none; margin: 0; }
.paper-toc { position: relative; }
.paper-toc::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0.3rem;
  height: 0.3rem;
  border-radius: 50%;
  background: var(--paper-muted);
  pointer-events: none;
  opacity: 0;
  transform: translate(var(--toc-marker-x, 0px), var(--toc-marker-y, 0px)) translate(-50%, -50%);
}
.paper-toc[data-current]::before { opacity: 1; }
@media screen and (prefers-reduced-motion: no-preference) {
  .paper-toc::before { transition: transform 160ms ease; }
  body:has([data-footnote-note]:hover) [data-footnote-ref].is-active {
    animation: footnote-bob 800ms ease-in-out infinite;
  }
}
@keyframes footnote-bob {
  0%, 100% { transform: translateY(0); }
  25% { transform: translateY(-3px); }
  75% { transform: translateY(3px); }
}
.post-date { color: #706b5d; font-size: 0.9rem; line-height: 1.4; font-style: normal; }
.paper-hero > .post-date { margin: 1rem 0 0; text-align: center; }
.blog-index { margin: 2rem 0; padding: 0 var(--paper-sheet-inset); font-family: "Newsreader", serif; }
.blog-index-title { margin: 0 0 1rem; font-size: 1.05rem; font-weight: 400; color: var(--paper-muted); }
.blog-year + .blog-year { margin-top: 1.1rem; }
.blog-year-title { margin: 0 0 0.35rem; font-size: 0.95rem; font-weight: 400; color: var(--paper-muted); }
.blog-posts { margin: 0; padding: 0; list-style: none; }
.blog-post { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1rem; align-items: baseline; padding: 0.3rem 0; line-height: 1.5; }
.blog-post .post-date { margin: 0; font-size: 0.85rem; white-space: nowrap; font-variant-numeric: tabular-nums; text-align: right; }
.blog-post > a { grid-column: 2; min-width: 0; font-size: 1.05rem; text-decoration: none; }
.blog-post > a:hover, .blog-post > a:focus-visible { text-decoration: underline; text-underline-offset: 0.15em; }
@media (max-width: 900px) {
  .paper-rail:has(.paper-toc:empty) { display: none; }
}
@media (max-width: 600px) {
  .blog-post { grid-template-columns: 5rem minmax(0, 1fr); gap: 0.75rem; }
  .blog-post .post-date { font-size: 0.8rem; }
}
.paper-section-title, .paper-abstract-title { scroll-margin-top: calc(var(--paper-sticky-top) + 1rem); }
.open-content .post-footer { margin: 3rem 0 0; }

@media (min-width: 901px) {
  .paper-sidebar > .paper-sidebar-footnotes {
    transform: translateX(calc((var(--paper-shell-gap) + var(--paper-sidebar-inset)) * -0.4));
  }
}

/* Treat an H2 followed directly by an H3 as one compact heading group. */
.paper-section-title:has(+ .paper-section-body > h3:first-child),
.paper-section-body > h2:has(+ h3) {
  padding-bottom: 0.25rem;
  margin-bottom: 0;
}
.paper-section-title:has(+ .paper-section-body > h3:first-child)::after,
.paper-section-body > h2:has(+ h3)::after { content: none; }
.paper-section-title + .paper-section-body:has(> h3:first-child) { padding-top: 0; }
.paper-section-title + .paper-section-body > h3:first-child,
.paper-section-body > h2 + h3 {
  margin-top: 0;
  padding-top: 0.25rem;
}

/* Secondary layout: a single open page, without navigation or sidebars. */
.open-page {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(3rem, 8vw, 7rem) clamp(1.2rem, 6vw, 4rem);
  font-family: "Newsreader", serif;
  font-size: 1.14rem;
  line-height: 1.68;
  color: #1a1a1a;
}
.open-content { max-width: 42rem; margin: 0 auto; }
.open-content h1 {
  margin: 0 0 1.5rem;
  font-size: clamp(2.65rem, 5vw, 3.75rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
  color: #071b0f;
  text-wrap: balance;
}
.open-content h2, .open-content h3 { line-height: 1.2; }
.open-intro { margin: 0 0 2.5rem; font-size: 1.6rem; line-height: 1.32; }

@media print {
  .site-nav, .mobile-nav-header, .paper-rail, .paper-sidebar, .skip-link, .post-footer { display: none; }
  .paper-page, .paper-scroll-column { display: block; }
  .paper-main { box-shadow: none; }
  .paper-section-title, .paper-abstract-title { position: static; }
}
