/* Papel impresso, com textura contínua até as bordas da janela. */
:root {
  --paper-edge: #c5ad7b;
  --paper-fleck: #80572b16;
  --paper-light: #fff7dd65;
}

:root[data-theme="noir"] {
  --paper-edge: #101c21;
  --paper-fleck: #c8a56314;
  --paper-light: #46636b24;
}

body { background: var(--paper); }

.sheet {
  min-height: 100vh;
  max-width: none;
  margin: 0;
  padding-inline: clamp(18px, 4vw, 84px);
  border: 0;
  box-shadow: none;
  background:
    url("assets/papel-granulado.svg"),
    radial-gradient(ellipse at 51% 8%, var(--paper-light), transparent 65%),
    repeating-linear-gradient(101deg, transparent 0 31px, var(--paper-fleck) 32px, transparent 33px 91px),
    linear-gradient(90deg, var(--paper-edge), var(--paper) 4%, var(--paper) 96%, var(--paper-edge));
}

.sheet::before {
  opacity: 1;
  background: url("assets/papel-granulado.svg") 87px 103px / 170px 170px repeat;
}

.site-header { padding-top: 15px; }
.utility-row .independent { text-transform: uppercase; }
.main-nav { border-top: 4px double var(--ink); }
.footer-top { padding-bottom: 0; }
.unwritten-page { min-height: 48vh; }

.front-spread { margin-bottom: 38px; }
.front-headline h1 { font-size: clamp(38px, 4.8vw, 79px); }
.front-headline h1.long-headline { font-size: clamp(34px, 3.65vw, 62px); }
.front-headline h1, .article-card h3 { overflow-wrap: anywhere; }
.front-copy { align-self: start; }
.front-deck { max-width: 68ch; }
.front-label .text-link { margin-left: auto; }
.plate-heading { justify-content: center; }

.cartographic-field {
  background-image: url("assets/papel-granulado.svg"),
    radial-gradient(ellipse at 50% 40%, #f6ebcb, transparent 71%),
    repeating-linear-gradient(132deg, #24546a14 0 1px, transparent 1px 6px);
}

.archive-heading { padding-bottom: 14px; }
.text-list { max-width: 88rem; }
.text-list .text-row {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px 24px;
  padding: 22px 0;
}
.text-list .text-row h2 { margin: 0; }
.text-list .text-row .archive-entry-meta {
  margin: 7px 0 0;
  color: var(--muted);
  font: 12px/1.55 var(--sans);
}
.archive-years label { color: var(--muted); }

/* A folha ocupa a janela. A leitura mantém sumário, título e texto próximos. */
.sheet { overflow: clip; }
.reader-frame, .standalone-breadcrumb { max-width: 83rem; margin-inline: auto; }
.issue-reader {
  --reading-column: min(66ch, 100%);
  grid-template-columns: minmax(195px, 245px) minmax(0, 1fr);
  gap: clamp(22px, 4vw, 52px);
}
.long-article {
  max-width: 51rem;
  --reading-column: min(66ch, 100%);
}
.long-article .article-header,
.reader-article > header {
  max-width: 100%;
  text-align: left;
}
.long-article .article-header h1,
.reader-article > header > h1 {
  font-size: clamp(36px, 4.6vw, 66px);
  overflow-wrap: anywhere;
  margin-inline: 0;
}
.long-article .article-credit { justify-content: flex-start; }
.reader-article > header,
.article-header { scroll-margin-top: 24px; }
.long-article .prose,
.reader-article .prose {
  width: var(--reading-column);
  max-width: 100%;
  margin-inline: 0;
  font-size: var(--reading-size);
  line-height: 1.72;
}
.long-article .prose blockquote,
.reader-article .prose blockquote {
  font-size: 1.04em;
  line-height: inherit;
}
.long-article .archive-source,
.reader-article .archive-source,
.long-article .reading-tools,
.reader-article .reading-tools,
.long-article .reader-pagination,
.reader-article .reader-pagination {
  max-width: 100%;
  margin-inline: 0;
}
.long-article .reading-tools,
.reader-article .reading-tools {
  position: sticky;
  z-index: 2;
  top: 0;
  display: block;
  margin: 20px 0 18px;
  padding: 4px 0 0;
  background: var(--paper) url("assets/papel-granulado.svg");
}
.reading-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 12px;
}
.reading-controls button { min-height: 35px; }
.reading-controls button[data-action="font-reset"] { font-size: 10px; }
.reading-controls button[data-action="copy"] { margin-left: auto; }
.reading-progress {
  display: block;
  appearance: none;
  width: 100%;
  height: 3px;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.reading-progress::-webkit-progress-bar { background: transparent; }
.reading-progress::-webkit-progress-value { background: var(--blue); }
.reading-progress::-moz-progress-bar { background: var(--blue); }
.reader-index summary {
  padding: 9px 0;
  border-top: 3px double var(--ink);
  cursor: pointer;
  font: 700 12px/1.5 var(--serif);
}
.reader-index summary span { margin-left: 8px; color: var(--muted); font-weight: 400; }
.reader-index nav a[aria-current="page"] { font-weight: 700; }
.reader-pagination { margin-top: 25px; }
.archive-pagination a { display: grid; gap: 6px; }
.archive-pagination a[rel="next"] { margin-left: auto; text-align: right; }
.archive-pagination strong { font: 700 16px/1.3 var(--serif); }

@media screen {
  :root[data-reading-columns="2"] { --reading-columns: 2; }
  :root[data-reading-columns="3"] { --reading-columns: 3; }
  :root[data-reading-columns="4"] { --reading-columns: 4; }
  :root[data-reading-columns="5"] { --reading-columns: 5; }

  :root[data-reading-columns] .reader-frame {
    max-width: calc(28rem + 47rem * var(--reading-columns));
  }
  :root[data-reading-columns] :is(.long-article, .standalone-breadcrumb) {
    max-width: calc(47rem * var(--reading-columns));
  }
  :root[data-reading-columns] :is(.reader-article, .long-article) .prose { width: 100%; }
  :root[data-reading-columns] .article-columns {
    column-count: var(--reading-columns);
    column-gap: clamp(26px, 2.2vw, 58px);
    column-rule: 1px solid var(--line);
  }
  .article-columns figure,
  .article-columns pre,
  .article-columns table { break-inside: avoid-column; }
  .article-columns h2,
  .article-columns h3,
  .article-columns h4 { break-after: avoid-column; }

  @supports (column-wrap: wrap) and (column-height: 65vh) {
    :root[data-reading-columns] .article-columns {
      column-height: min(65vh, 66rem);
      column-wrap: wrap;
      row-gap: 33px;
      row-rule: 1px solid var(--line);
    }
  }
}

/* As tintas da capa acompanham a ilustração de cada edição. */
.themed-cover {
  --cover-stock: #ebdcad;
  --cover-ink: #253b51;
  --cover-highlight: #a34b32;
  border-color: var(--cover-ink);
  background-color: var(--cover-stock);
  color: var(--cover-ink);
  width: min(265px, 100%);
  padding: 12px 14px;
}
.themed-cover[data-year="2020"] { --cover-stock: #efdab1; --cover-ink: #6c392e; --cover-highlight: #a04a32; }
.themed-cover[data-year="2021"] { --cover-stock: #ead5bd; --cover-ink: #582e3a; --cover-highlight: #853f46; }
.themed-cover[data-year="2022"] { --cover-stock: #e5ddba; --cover-ink: #214b4f; --cover-highlight: #73582c; }
.themed-cover[data-year="2023"] { --cover-stock: #e2dab3; --cover-ink: #414b32; --cover-highlight: #884f33; }
.themed-cover[data-year="2024"] { --cover-stock: #e2deca; --cover-ink: #2c415b; --cover-highlight: #915229; }
.themed-cover::before { border-color: var(--cover-highlight); }
.themed-cover .cover-top { border-color: var(--cover-ink); }
.themed-cover .cover-masthead {
  color: var(--cover-ink);
  margin: 12px 0 11px;
}
.themed-art {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  border: 1px solid var(--cover-ink);
  background-color: var(--cover-stock);
  background-image: url("assets/papel-granulado.svg");
}
.themed-art img { display: block; width: 100%; height: 100%; object-fit: cover; }
.themed-cover-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 41px;
  padding-top: 8px;
  color: var(--cover-ink);
  font: 700 14px/1.2 var(--serif);
}
.themed-cover-label img { width: 29px; height: 32px; object-fit: contain; }
.catalogue-jacket .themed-cover { width: 265px; max-width: none; }

@media (min-width: 1450px) {
  .front-spread {
    display: grid;
    grid-template-columns: minmax(0, 2.5fr) minmax(0, 1fr);
    gap: clamp(27px, 3vw, 58px);
    align-items: start;
  }
  .front-story { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .front-spread .dispatches {
    display: block;
    border: 0;
    border-left: 1px solid var(--line);
    padding: 0 0 0 clamp(22px, 2.2vw, 46px);
  }
  .front-spread .dispatches .article-card {
    border: 0;
    border-bottom: 1px solid var(--line);
    margin: 0 0 18px;
    padding: 0 0 14px;
  }
  .front-spread .dispatches .article-card h3 { font-size: clamp(25px, 2.2vw, 42px); }
  .magazine-feature { grid-template-columns: minmax(310px, 1fr) minmax(0, 2fr); }
  .magazine-copy { max-width: 68rem; }
}

@media (max-width: 760px) {
  .front-headline h1 { font-size: clamp(33px, 8.5vw, 57px); }
  .front-headline h1.long-headline { font-size: clamp(30px, 6.9vw, 49px); }
  .nav-links { flex-wrap: wrap; row-gap: 0; }
  .themed-cover:not(.catalogue-jacket .themed-cover) { width: min(255px, 100%); }
  .issue-reader { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .reader-toc h2 { display: none; }
  .reader-index nav {
    grid-template-columns: minmax(0, 1fr);
    max-height: min(55vh, 26rem);
    overflow-y: auto;
  }
  .reader-article { padding-top: 18px; }
  .reading-controls { column-gap: 9px; }
  .reading-controls button { min-height: 40px; }
}

@media print {
  .sheet { padding: 0; }
  .front-spread { display: block; }
  .long-article .prose,
  .reader-article .prose { width: auto; font-size: 11pt; line-height: 1.65; }
}
