/* Static pages (about, donate) share the dashboard theme. */
.page { max-width: 1100px; margin: 0 auto; padding: 24px 16px 60px; display: flex; flex-direction: column; gap: 16px; }
.page.narrow { max-width: 760px; }
.page-top .actions a { text-decoration: none; }
.hero-copy { padding: 34px 32px; }
.eyebrow { font-family: var(--mono); font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; }
.page h1 { font-family: var(--display); font-size: clamp(1.6rem, 3.2vw, 2.4rem); line-height: 1.15; letter-spacing: -.02em; margin: 0 0 14px; }
.page h2 { font-family: var(--display); font-size: 1.15rem; margin: 18px 0 8px; letter-spacing: -.01em; }
.page h2:first-child { margin-top: 0; }
.page p { line-height: 1.6; margin: 0 0 12px; }
.lead { font-size: 1.08rem; color: color-mix(in srgb, var(--text) 88%, var(--muted)); }
.page .grid2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 900px) { .page .grid2 { grid-template-columns: 1fr; } .hero-copy { padding: 24px 20px; } }
.donate-cta { display: inline-block; margin-top: 6px; padding: 12px 18px; text-decoration: none; font-family: var(--display); }
ul.plain { margin: 0; padding-left: 20px; line-height: 1.6; }
.donate-box { text-align: center; }
.donate-slot { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 14px; }
.slot-btn { min-width: 150px; padding: 18px; border-radius: 12px; border: 1px dashed var(--border); color: var(--muted); font-family: var(--mono); font-size: .8rem; }

/* About: the four feature groups sit 2x2 inside one panel, each headed by its
   own h3. A left rule keeps the columns visually separate without a box. */
.page h3 { font-family: var(--display); font-size: .95rem; margin: 0 0 8px; letter-spacing: -.01em; color: var(--accent); }
/* COLUMNS, not a grid. As a 2x2 grid every row was as tall as its tallest
   cell, so a short section sitting beside a long one left a large blank below
   it - "The read" next to "The news" opened a hole most of a screen deep.
   Columns let each block start where the one above it ended, and
   break-inside keeps a section from being split down the middle. */
.about-grid { display: block; column-count: 2; column-gap: 26px; margin-top: 4px; }
.about-grid > div { break-inside: avoid; -webkit-column-break-inside: avoid;
  border-left: 2px solid var(--border); padding-left: 14px; margin-bottom: 18px; }
@media (max-width: 900px) { .about-grid { column-count: 1; } }
.about-grid ul.plain li + li { margin-top: 7px; }
.page ul.plain li + li { margin-top: 6px; }
.page ul.plain b { font-weight: 600; }
@media (max-width: 900px) { .about-grid > div { border-left: 0; padding-left: 0; } }

/* Privacy and Terms had no way in: nothing linked either page except the other.
   A quiet line at the foot of About and Donate is where people look for them. */
.page-legal { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap;
  margin: 8px auto 28px; font-size: .8rem; color: var(--muted); }
.page-legal a { color: var(--muted); }
.page-legal a:hover { color: var(--text); }

/* About: the Pro section (pro.js fills .pro-act for whoever is looking). */
.pro-buy { border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); scroll-margin-top: 84px; }
.pro-buy p a { color: var(--accent); }
.pro-buy h2 { margin-top: 0; }
.pro-act { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 12px; }
.pro-act .donate-cta { margin-top: 0; }
.pro-act .muted { font-size: .85rem; }
.pro-msg { flex-basis: 100%; font-size: .85rem; color: var(--off); }
.pro-msg:empty { display: none; }
.pro-test { color: var(--accent); font-weight: 600; }
