/* The publication shell is independent of every post's visual theme. */
:root {
  --publication-paper: #f8f8f5;
  --publication-ink: #242b2d;
  --publication-muted: #626d70;
  --publication-line: #dce1df;
  --publication-accent: #276971;
  --publication-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --publication-serif: Georgia, "Times New Roman", serif;
}
.publication-home {
  margin: 0;
  min-width: 280px;
  background: var(--publication-paper);
  color: var(--publication-ink);
  font-family: var(--publication-sans);
  -webkit-font-smoothing: antialiased;
}
.publication-home *, .publication-header * { box-sizing: border-box; }
.publication-home a { color: var(--publication-accent); text-underline-offset: 4px; }
.publication-home a:focus-visible, .publication-header a:focus-visible,
.publication-skip:focus-visible { outline: 3px solid var(--publication-accent); outline-offset: 5px; }
.publication-header {
  background: var(--publication-paper);
  color: var(--publication-ink);
  border-bottom: 1px solid var(--publication-line);
  font-family: var(--publication-sans);
}
.publication-header-inner {
  width: min(100% - 56px, 1072px);
  min-height: 76px;
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.publication-header .publication-brand {
  color: var(--publication-ink);
  text-decoration: none;
  font: 650 24px/1.4 var(--publication-sans);
  letter-spacing: -.05em;
}
.publication-brand span { color: var(--publication-accent); }
.publication-nav { display: flex; align-items: center; gap: 28px; }
.publication-header .publication-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--publication-muted);
  text-decoration: none;
  font: 400 13px/1.5 var(--publication-sans);
}
.publication-header a:hover { color: var(--publication-accent); }
.publication-skip {
  position: absolute;
  top: -80px;
  left: 20px;
  z-index: 10;
  padding: 12px 16px;
  background: var(--publication-ink);
  color: white !important;
  font: 14px/1.5 var(--publication-sans);
}
.publication-skip:focus { top: 0; }
@media (max-width: 700px) {
  .publication-header-inner { width: calc(100% - 44px); min-height: 66px; gap: 16px; }
  .publication-nav { gap: 20px; }
  .publication-header .publication-nav a { font-size: 12px; }
}
@media (max-width: 350px) {
  .publication-header-inner { width: calc(100% - 32px); }
  .publication-nav { gap: 16px; }
}
@media print { .publication-header, .publication-skip { display: none !important; } }
