/* Generated by internal/themes: faces, base.css, then bitacora.css, asymco.css, asymco-pages.css. */
@font-face { font-display: swap; font-family: "Timeless Serif"; font-style: normal; font-weight: 100 900; src: url("/theme/fonts/timeless/1.094/TimelessSerifVF.8d63fb19982087ff.woff2") format("woff2"); }
@font-face { font-display: swap; font-family: "Timeless Serif"; font-style: italic; font-weight: 100 900; src: url("/theme/fonts/timeless/1.094/TimelessSerifItalicVF.82fff1584c338894.woff2") format("woff2"); }
@font-face { font-display: swap; font-family: "Timeless Sans"; font-style: normal; font-weight: 100 900; src: url("/theme/fonts/timeless/1.094/TimelessSansVF.353b3fbb75b8e9b9.woff2") format("woff2"); }
@font-face { font-display: swap; font-family: "DM Sans"; font-style: normal; font-weight: 100 1000; src: url("/theme/fonts/dm-sans/4.004/DMSans-VF.aa530716b0d35186.woff2") format("woff2"); }

/* base.css */
/* base.css: what every theme shares. Structure and sensible defaults,
   all of it driven by the custom properties below, so a theme is mostly
   a new set of values plus whatever it does differently. Properties are
   alphabetised within a rule. */

:root {
  --accent: #2353b8;
  --font-body: "DM Sans", system-ui, sans-serif;
  --font-heading: var(--font-body);
  --font-ui: var(--font-body);
  --gap: clamp(1rem, 3vw, 2rem);
  --ink: #17212b;
  --leading: 1.6;
  --measure: 38rem;
  --muted: #55606c;
  --paper: #ffffff;
  --rule: #e6ebf0;
  --size: clamp(1.0625rem, 0.4vw + 0.98rem, 1.1875rem);
  --wide: 60rem;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: var(--size);
  line-height: var(--leading);
  margin: 0;
  overflow-wrap: break-word;
}

a { color: var(--accent); text-decoration-thickness: 0.06em; text-underline-offset: 0.18em; }
a:hover { text-decoration-thickness: 0.12em; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

img { block-size: auto; display: block; max-inline-size: 100%; }

/* The site's chrome. */

header[data-site], main, footer[data-site] {
  margin-inline: auto;
  max-inline-size: var(--wide);
  padding-inline: var(--gap);
}

header[data-site] {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.5rem;
  padding-block: calc(var(--gap) * 1.25) var(--gap);
}

a[data-site-title] {
  align-items: center;
  color: var(--ink);
  display: inline-flex;
  gap: 0.45em;
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 700;
  text-decoration: none;
}

img[data-site-mark] { block-size: 1.1em; border-radius: 22%; flex: none; inline-size: 1.1em; }

p[data-site-tagline] { color: var(--muted); font-family: var(--font-ui); font-size: 0.9rem; margin: 0; }

nav[data-site-nav] { flex-basis: 100%; font-family: var(--font-ui); font-size: 0.95rem; }
nav[data-site-nav] ul { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; list-style: none; margin: 0; padding: 0; }
nav[data-site-nav] a { color: var(--muted); text-decoration: none; }
nav[data-site-nav] a:hover, nav[data-site-nav] a[aria-current] { color: var(--ink); text-decoration: underline; }

main { padding-block: var(--gap) calc(var(--gap) * 3); }

footer[data-site] {
  border-block-start: 1px solid var(--rule);
  color: var(--muted);
  font-family: var(--font-ui);
  font-size: 0.85rem;
  padding-block: var(--gap) calc(var(--gap) * 2);
}
footer[data-site] a { color: inherit; }

p[data-notice] {
  background: color-mix(in oklch, var(--accent) 10%, var(--paper));
  border-inline-start: 3px solid var(--accent);
  font-family: var(--font-ui);
  margin-block: 0 var(--gap);
  padding: 0.75rem 1rem;
}

p[data-preview-bar] {
  background: var(--ink);
  color: var(--paper);
  font-family: var(--font-ui);
  font-size: 0.85rem;
  margin: 0;
  padding: 0.5rem var(--gap);
  text-align: center;
}

/* Lists of posts. */

ol[data-entries] { display: grid; gap: calc(var(--gap) * 1.5); list-style: none; margin: 0; padding: 0; }
ol[data-entries] h2[data-entry-title] { font-family: var(--font-heading); font-size: 1.6rem; line-height: 1.2; margin: 0 0 0.35rem; }
ol[data-entries] h2[data-entry-title] a { color: var(--ink); text-decoration: none; }
ol[data-entries] h2[data-entry-title] a:hover { text-decoration: underline; }
p[data-entry-excerpt] { margin: 0.5rem 0 0; max-inline-size: var(--measure); }

p[data-entry-meta] { color: var(--muted); font-family: var(--font-ui); font-size: 0.875rem; margin: 0; }
p[data-entry-meta] a { color: inherit; }

section[data-archive] { margin-block-end: calc(var(--gap) * 1.5); }
section[data-archive] h1 { font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.1; margin: 0; }
p[data-archive-kind] { color: var(--muted); font-family: var(--font-ui); font-size: 0.8rem; letter-spacing: 0.08em; margin: 0 0 0.25rem; text-transform: uppercase; }

nav[data-pager] {
  align-items: baseline;
  display: flex;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  gap: 1.5rem;
  justify-content: space-between;
  margin-block-start: calc(var(--gap) * 2);
}
nav[data-pager] span { color: var(--muted); }

section[data-empty], section[data-notfound] { max-inline-size: var(--measure); }

/* One post or page. */

article[data-entry] > header { margin-block-end: var(--gap); max-inline-size: var(--measure); }
h1[data-entry-title] {
  font-family: var(--font-heading);
  font-size: clamp(2.1rem, 5vw, 3.25rem);
  line-height: 1.08;
  margin: 0 0 0.75rem;
  text-wrap: balance;
}

figure[data-featured] { margin: 0 0 var(--gap); }
figure[data-featured] img { inline-size: 100%; }

div[data-prose] { max-inline-size: var(--measure); }
div[data-prose] > * { margin-block: 0 1em; }
div[data-prose] h2, div[data-prose] h3 { font-family: var(--font-heading); line-height: 1.2; margin-block: 1.75em 0.5em; text-wrap: balance; }
div[data-prose] h2 { font-size: 1.55em; }
div[data-prose] h3 { font-size: 1.2em; }
div[data-prose] ul, div[data-prose] ol { padding-inline-start: 1.4em; }
div[data-prose] li + li { margin-block-start: 0.35em; }
div[data-prose] figure { margin-inline: 0; }
div[data-prose] figcaption { color: var(--muted); font-family: var(--font-ui); font-size: 0.85rem; margin-block-start: 0.5rem; }
div[data-prose] hr { border: 0; border-block-start: 1px solid var(--rule); margin-block: 2.5em; }
div[data-prose] blockquote { border-inline-start: 3px solid var(--accent); margin-inline: 0; padding-inline-start: 1.1em; }
div[data-prose] blockquote p { margin-block: 0 0.6em; }
div[data-prose] blockquote p:last-child { margin-block-end: 0; }
div[data-prose] table { border-collapse: collapse; font-size: 0.92em; font-variant-numeric: tabular-nums; inline-size: 100%; }
div[data-prose] caption { caption-side: bottom; color: var(--muted); font-family: var(--font-ui); font-size: 0.85rem; margin-block-start: 0.5rem; text-align: start; }
div[data-prose] th, div[data-prose] td { border-block-end: 1px solid var(--rule); overflow-wrap: anywhere; padding: 0.45em 0.75em 0.45em 0; text-align: start; vertical-align: top; }
div[data-prose] th { border-block-end-color: var(--ink); font-family: var(--font-ui); font-weight: 600; }

ul[data-tags] { display: flex; flex-wrap: wrap; font-family: var(--font-ui); font-size: 0.85rem; gap: 0.5rem; list-style: none; margin: var(--gap) 0 0; max-inline-size: var(--measure); padding: 0; }
ul[data-tags] a { border: 1px solid var(--rule); border-radius: 999px; color: var(--muted); display: inline-block; padding: 0.15rem 0.7rem; text-decoration: none; }
ul[data-tags] a:hover { border-color: var(--accent); color: var(--accent); }

/* Comments. */

section[data-comments] {
  border-block-start: 1px solid var(--rule);
  margin-block-start: calc(var(--gap) * 2);
  max-inline-size: var(--measure);
  padding-block-start: var(--gap);
}
section[data-comments] h2 { font-family: var(--font-heading); font-size: 1.3rem; margin: 0 0 var(--gap); }
section[data-comments] ol { display: grid; gap: var(--gap); list-style: none; margin: 0 0 calc(var(--gap) * 1.5); padding: 0; }
section[data-comments] li p { margin: 0 0 0.5em; }
p[data-comment-meta] { color: var(--muted); font-family: var(--font-ui); font-size: 0.875rem; }
p[data-comment-meta] b { color: var(--ink); }
li[data-staff] p[data-comment-meta] b::after { color: var(--accent); content: " · author"; font-weight: 400; }

form[data-comment-form] { font-family: var(--font-ui); }
form[data-comment-form] h3 { font-family: var(--font-heading); font-size: 1.1rem; margin: 0 0 0.75rem; }
form[data-comment-form] label { display: block; font-size: 0.9rem; font-weight: 600; margin-block-end: 0.25rem; }
form[data-comment-form] label span { color: var(--muted); font-weight: 400; }
form[data-comment-form] input, form[data-comment-form] textarea {
  background: var(--paper);
  border: 1px solid color-mix(in oklch, var(--ink) 25%, var(--paper));
  border-radius: 6px;
  color: var(--ink);
  font: inherit;
  inline-size: 100%;
  padding: 0.55rem 0.7rem;
}
form[data-comment-form] [aria-invalid] { border-color: #b3261e; }
form[data-comment-form] [data-error] { color: #b3261e; display: block; font-size: 0.85rem; margin-block-start: 0.25rem; }
form[data-comment-form] button {
  background: var(--accent);
  border: 0;
  border-radius: 6px;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 600;
  padding: 0.6rem 1.2rem;
}
form[data-comment-form] button:disabled { cursor: progress; opacity: 0.6; }
form[data-comment-form] [data-pow-status], p[data-comment-note] { color: var(--muted); font-size: 0.85rem; }

/* bitacora.css */
/* Bitácora: an old-school blog, after Automattic's WordPress theme of the
   name as asymco.com wears it. The pages menu on top, the mark and an
   uppercase title between two rules, then a column on white with a
   sidebar of recent posts to its right (templates/bitacora). Timeless
   Grotesk stands in for its Montserrat (titles, menu, furniture) and
   Timeless Sans for its Inter (reading). Categories are pills, in
   asymco.com's colours for the slugs it uses and the accent otherwise. */

:root {
  --accent: #273da1;
  --font-body: "Timeless Sans", "DM Sans", system-ui, sans-serif;
  --font-heading: "Timeless Sans", "DM Sans", system-ui, sans-serif;
  --font-ui: "Timeless Sans", "DM Sans", system-ui, sans-serif;
  --ink: #000000;
  --leading: 1.5;
  --measure: 34rem;
  --muted: #7f9099;
  --paper: #ffffff;
  --rule: #e5e7eb;
  --size: clamp(0.9375rem, 0.2vw + 0.9rem, 1.0625rem);
  --wide: 59.25rem;
}

a[data-site-title], nav[data-site-nav], h1[data-entry-title], h2[data-entry-title], section[data-archive] h1,
div[data-prose] h2, div[data-prose] h3, p[data-archive-kind], p[data-entry-meta] a, nav[data-pager] a,
section[data-comments] h2, form[data-comment-form] h3, form[data-comment-form] button {
  font-variation-settings: "STYL" 0;
}

body { letter-spacing: -0.0125em; }

/* The header: menu, then the mark over the title between two rules, then
   the tagline, all centred. The rules are the header's own ::before and
   ::after, placed in the grid either side of the title. */

header[data-site] {
  column-gap: clamp(1rem, 3vw, 2rem);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  padding-block: 1.5rem clamp(2rem, 6vw, 3.5rem);
  row-gap: 0;
  text-align: center;
}
header[data-site]::before, header[data-site]::after {
  align-self: end;
  border-block-start: 1px solid var(--ink);
  content: "";
  grid-row: 2;
  margin-block-end: clamp(0.675rem, 1.25vw, 0.81rem);
}
header[data-site]::before { grid-column: 1; }
header[data-site]::after { grid-column: 3; }

nav[data-site-nav] { font-size: 0.94rem; font-weight: 500; grid-column: 1 / -1; grid-row: 1; margin-block-end: clamp(2rem, 6vw, 3.5rem); }
nav[data-site-nav] ul { gap: 0.4rem 1.25rem; justify-content: center; }
nav[data-site-nav] a { color: var(--ink); text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
nav[data-site-nav] a:hover, nav[data-site-nav] a[aria-current] { color: var(--ink); text-decoration: underline; text-decoration-thickness: 2px; }

a[data-site-title] {
  flex-direction: column;
  font-size: clamp(1.35rem, 2.5vw, 1.62rem);
  font-weight: 800;
  gap: 0.75rem;
  grid-column: 2;
  grid-row: 2;
  letter-spacing: 0.3em;
  line-height: 1;
  padding-inline-start: 0.3em;
  text-transform: uppercase;
}
img[data-site-mark] { block-size: 3.5rem; border-radius: 18%; inline-size: 3.5rem; }

p[data-site-tagline] { color: var(--ink); font-size: 0.94rem; grid-column: 1 / -1; grid-row: 3; margin-block-start: 0.65rem; }

main { max-inline-size: calc(var(--measure) + var(--gap) * 2); }

/* The sidebar: below the column on a phone, beside it from 56rem. The
   body becomes a grid there, header and footer across it, and dense
   packing lifts the sidebar into main's row. */

aside[data-sidebar] {
  font-family: var(--font-ui);
  font-size: 0.94rem;
  margin-inline: auto;
  max-inline-size: calc(var(--measure) + var(--gap) * 2);
  padding: 0 var(--gap) var(--gap);
}
aside[data-sidebar] h2 {
  font-size: 0.8rem;
  font-variation-settings: "STYL" 0;
  font-weight: 500;
  letter-spacing: 0.2em;
  margin: 0 0 1rem;
  text-transform: uppercase;
}
aside[data-sidebar] ul { display: grid; gap: 0.75rem; list-style: none; margin: 0; padding: 0; }
aside[data-sidebar] a { color: var(--ink); font-weight: 500; text-decoration: none; }
aside[data-sidebar] a:hover { color: var(--accent); text-decoration: underline; }

@media (min-width: 56rem) {
  body:has(> aside[data-sidebar]) {
    display: grid;
    grid-auto-flow: row dense;
    grid-template-columns: minmax(var(--gap), 1fr) minmax(0, var(--measure)) clamp(2.5rem, 5vw, 5rem) minmax(12rem, 17rem) minmax(var(--gap), 1fr);
  }
  body:has(> aside[data-sidebar]) > * { grid-column: 1 / -1; }
  body:has(> aside[data-sidebar]) > main { grid-column: 2; margin-inline: 0; max-inline-size: none; padding-inline: 0; }
  body:has(> aside[data-sidebar]) > aside[data-sidebar] {
    grid-column: 4;
    margin-inline: 0;
    max-inline-size: none;
    padding: var(--gap) 0;
  }
  body:has(> aside[data-sidebar]) > header[data-site], body:has(> aside[data-sidebar]) > footer[data-site] { inline-size: 100%; justify-self: center; }
}

/* Lists of posts: the date first, then the title, as Bitácora's post
   list has them. */

section[data-archive] h1 { font-size: clamp(1.35rem, 2.5vw, 1.62rem); font-weight: 600; letter-spacing: -0.01em; }
p[data-archive-kind] { color: var(--ink); font-size: 0.8rem; font-weight: 500; letter-spacing: 0.2em; }

ol[data-entries] { gap: 4.5rem; }
ol[data-entries] article { display: flex; flex-direction: column; }
ol[data-entries] article > p[data-entry-meta] { margin-block-end: 0.5rem; order: -1; }
ol[data-entries] article > a { order: 1; }
ol[data-entries] article > p[data-entry-excerpt] { order: 2; }
ol[data-entries] h2[data-entry-title] { font-size: clamp(1.25rem, 2vw, 1.35rem); font-weight: 600; letter-spacing: -0.015em; line-height: 1.3; margin-block-end: 0.75rem; }
ol[data-entries] figure[data-featured] { margin-block: 0.25rem 0.75rem; }

h1[data-entry-title] { font-size: clamp(1.62rem, 3vw, 1.944rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.3; }
article[data-entry] > header { display: flex; flex-direction: column; }
article[data-entry] > header > p[data-entry-meta] { margin-block-end: 0.5rem; order: -1; }

p[data-entry-meta] { font-size: 0.94rem; }
p[data-entry-meta] a { color: var(--ink); font-weight: 500; text-decoration: none; }
p[data-entry-meta] a:hover { text-decoration: underline; }

/* Categories as pills. */

p[data-entry-meta] a[href^="/category/"] {
  background: var(--accent);
  border-radius: 1em;
  color: #fff;
  display: inline-block;
  line-height: 1.45;
  padding-inline: 0.5em;
}
p[data-entry-meta] a[href^="/category/"]:hover { text-decoration: none; filter: brightness(1.15); }
p[data-entry-meta] a[href^="/category/research"] { background: #3b4bc8; }
p[data-entry-meta] a[href^="/category/nb"], p[data-entry-meta] a[href^="/category/nota-bene"] { background: #c04840; }
p[data-entry-meta] a[href^="/category/podcast"] { background: #6b40a0; }
p[data-entry-meta] a[href^="/category/officehours"] { background: #5f8a43; }
p[data-entry-meta] a[href^="/category/bulletin"] { background: #b85a1c; }
p[data-entry-meta] a[href^="/category/event"], p[data-entry-meta] a[href^="/category/conference"] { background: #00807f; }

/* Bodies. */

div[data-prose] a { color: var(--accent); }
div[data-prose] a:hover { text-decoration: none; }
div[data-prose] h2 { font-size: 1.35em; font-weight: 700; letter-spacing: -0.02em; }
div[data-prose] h3 { font-size: 1.15em; font-weight: 700; letter-spacing: -0.02em; }
div[data-prose] hr { border-block-start-color: var(--ink); }

ul[data-tags] a { border: 0; color: #888; padding: 0; }
ul[data-tags] a::before { content: "#"; }
ul[data-tags] a:hover { color: #333; }

nav[data-pager] { font-weight: 500; }
nav[data-pager] a { color: var(--accent); text-decoration: none; }
nav[data-pager] a[rel="prev"]::before { content: "‹ "; }
nav[data-pager] a[rel="next"]::after { content: " ›"; }

/* The footer: a full rule, then the line, centred. */

footer[data-site] { border-block-start-color: var(--ink); margin-block-start: 3rem; padding-block: 3rem; text-align: center; }

form[data-comment-form] button {
  background: var(--ink);
  border-radius: 2px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
form[data-comment-form] button:hover { background: var(--accent); }
form[data-comment-form] input, form[data-comment-form] textarea { border-color: var(--muted); border-radius: 2px; }

/* asymco.css */
/* Asymco: asymco.com on Bitácora (bitacora.css comes first). Its own
   header (the mark, a turning tagline, its section menu), its sidebar and
   footer, its post line and the way in to Asymco One after a post, ported
   from the site editor's templates and assets/asymco-overrides.css. The
   One and Horace pages are asymco-pages.css. */

:root {
  --accent: #273da1;
  --cat-research: #3b4bc8;
  --cat-nb: #c04840;
  --cat-podcast: #6b40a0;
  --cat-officehours: #5f8a43;
  --cat-bulletin: #b85a1c;
  --cat-event: #00807f;
  --muted: #7f9099;
}

.visually-hidden {
  block-size: 1px;
  clip-path: inset(50%);
  inline-size: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
}

/* The header: no rules either side, the mark over the name, then the
   tagline, then the menu. */

header[data-site] { align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; padding-block: 1.875rem 1.25rem; }
header[data-site]::before, header[data-site]::after { content: none; }
a[data-site-title] { font-size: 1.1rem; font-weight: 800; gap: 0.35rem; letter-spacing: 0.25em; order: 1; }
svg[data-site-mark] { block-size: auto; inline-size: 5.6rem; }
p[data-site-tagline] { font-size: 0.94rem; margin-block: 0.75rem 1.5rem; order: 2; }
nav[data-site-nav] { flex-basis: auto; font-weight: 500; margin: 0; order: 3; }

/* The tagline turns through six lines in one grid cell, 9s each. Only the
   first is read out; without motion it is the only one shown. */
a[data-rotator] { color: inherit; display: inline-grid; max-inline-size: 56ch; text-decoration: none; }
a[data-rotator] > span { animation: asymco-tagline 54s infinite both; grid-area: 1 / 1; opacity: 0; }
a[data-rotator] > span:nth-child(1) { animation-delay: -0.5s; }
a[data-rotator] > span:nth-child(2) { animation-delay: 8.5s; }
a[data-rotator] > span:nth-child(3) { animation-delay: 17.5s; }
a[data-rotator] > span:nth-child(4) { animation-delay: 26.5s; }
a[data-rotator] > span:nth-child(5) { animation-delay: 35.5s; }
a[data-rotator] > span:nth-child(6) { animation-delay: 44.5s; }
@keyframes asymco-tagline {
  0%, 17.6% { opacity: 0; visibility: hidden; }
  1%, 15% { opacity: 1; visibility: visible; }
}
@media (prefers-reduced-motion: reduce) {
  a[data-rotator] > span { animation: none; }
  a[data-rotator] > span:first-child { opacity: 1; }
  a[data-rotator] > span:not(:first-child) { display: none; }
}

/* The menu: an underline in the section's colour on hover. */
nav[data-site-nav] ul { gap: 0.4rem 1.5rem; }
nav[data-site-nav] a:hover { text-decoration-color: var(--ink); }
nav[data-site-nav] a[href^="/category/research"]:hover { color: var(--cat-research); text-decoration-color: var(--cat-research); }
nav[data-site-nav] a[href^="/category/nb"]:hover { color: var(--cat-nb); text-decoration-color: var(--cat-nb); }
nav[data-site-nav] a[href^="/category/podcast"]:hover { color: var(--cat-podcast); text-decoration-color: var(--cat-podcast); }
nav[data-site-nav] a[href^="/category/officehours"]:hover { color: var(--cat-officehours); text-decoration-color: var(--cat-officehours); }
nav[data-site-nav] a[href^="/bulletin"]:hover { color: var(--cat-bulletin); text-decoration-color: var(--cat-bulletin); }
nav[data-site-nav] a[href^="/category/conference"]:hover { color: var(--cat-event); text-decoration-color: var(--cat-event); }

/* Lists: "Latest from Asymco" or the archive's name, small and spaced. */

h1[data-list-title], section[data-archive] h1 {
  font-size: 0.94rem;
  font-variation-settings: "STYL" 0;
  font-weight: 500;
  letter-spacing: 0.2em;
  margin: 0 0 1.5rem;
  padding-block: 6px;
  text-transform: uppercase;
}
section[data-archive] { margin-block-end: 1.5rem; }
section[data-archive] h1 { margin: 0; }
section[data-archive] p { font-size: 0.94rem; margin: 0.5rem 0 0; }

ol[data-entries] { gap: 4.5rem; }
ol[data-entries] h2[data-entry-title] { font-size: clamp(1.125rem, 1.6vw, 1.35rem); font-weight: 600; margin-block-end: 1rem; }
ol[data-entries] h2[data-entry-title] a:hover { text-decoration-thickness: 1pt; }
ol[data-entries] article > div[data-prose] { order: 2; }

/* A post's line. */
p[data-entry-meta] { color: #888; font-size: 0.94rem; }
p[data-entry-meta] a[href^="/category/research"] { background: var(--cat-research); }
p[data-entry-meta] a[href^="/category/nb"], p[data-entry-meta] a[href^="/category/nota-bene"] { background: var(--cat-nb); }
p[data-entry-meta] a[href^="/category/podcast"] { background: var(--cat-podcast); }
p[data-entry-meta] a[href^="/category/officehours"] { background: var(--cat-officehours); }
p[data-entry-meta] a[href^="/category/bulletin"] { background: var(--cat-bulletin); }
p[data-entry-meta] a[href^="/category/event"], p[data-entry-meta] a[href^="/category/conference"] { background: var(--cat-event); }
p[data-entry-meta] a[rel="tag"] { color: #888; font-weight: 400; }
p[data-entry-meta] a[rel="tag"]:hover { color: #333; }

/* One post. */

p[data-byline] { color: var(--muted); font-family: var(--font-ui); font-size: 0.94rem; margin: 0; text-align: end; }
p[data-byline] a { color: inherit; }
div[data-prose] blockquote { border-inline-start: 2px solid darkred; font-style: italic; margin-inline: 0; padding-inline-start: 1rem; }

footer[data-entry-cta] { margin-block-start: 1.5rem; max-inline-size: var(--measure); }
footer[data-entry-cta] svg { block-size: 2.5rem; color: var(--ink); display: block; inline-size: auto; }
footer[data-entry-cta] hr { border: 0; border-block-start: 1px solid var(--muted); margin-block: 1.5rem; }
footer[data-entry-cta] p { margin: 0 0 1rem; }
footer[data-entry-cta] a { color: var(--accent); }
p[data-boxed] { border: 1px solid var(--accent); padding: 1rem 1.25rem; }
p[data-byline-foot] { color: var(--muted); font-family: var(--font-ui); font-size: 0.94rem; }

/* The sidebar: the subscribe button, then what was published last. */

p[data-subscribe] { margin: 0 0 2.5rem; }
p[data-subscribe] a {
  background: #000;
  border-radius: 2px;
  color: #fff;
  display: inline-block;
  font-size: 0.78rem;
  font-variation-settings: "STYL" 0;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 10px 15px;
  text-decoration: none;
  text-transform: uppercase;
}
p[data-subscribe] a:hover { color: #fff; filter: brightness(0.85); text-decoration: none; }
aside[data-sidebar] section[data-recent] a { color: #4e4d4d; }
aside[data-sidebar] section[data-recent] a::after { content: " →"; font-weight: 700; }

/* Pages: full width under the header, no sidebar. */

body[data-kind="page"] main { max-inline-size: calc(var(--wide) + var(--gap) * 2); }
body[data-kind="page"] div[data-prose], body[data-kind="page"] article > header { max-inline-size: none; }
body[data-kind="page"] h1[data-entry-title] { font-size: clamp(1.35rem, 2.5vw, 1.62rem); }
body[data-kind="page"] main:has(> .asymco-one-page) { max-inline-size: none; padding: 0; }

article[data-login] { margin-inline: auto; max-inline-size: 28rem; text-align: center; }
p[data-login-link] a { background: #000; border-radius: 999px; color: #fff; display: inline-block; font-weight: 700; padding: 0.6rem 1.5rem; text-decoration: none; }

/* What WordPress's alignment classes did on the One and Horace pages. */
.asymco-one-page :is(.asymco-hero, .asymco-tagline, .asymco-cta-band, .asymco-final-cta, .asymco-pricing-section__title, .asymco-pricing-section__signin),
.asymco-one-page section > h2, .asymco-one-page .asymco-inside > p, .asymco-one-page .asymco-inside__bundle-title { text-align: center; }
.asymco-press-logos { list-style: none; margin: 0; padding: 0; }
.asymco-one-page .asymco-final-cta { background: var(--accent); color: #e5e5e5; }

/* The footer: a rule, the menu again, the small print, then account links. */

footer[data-site] { border-block-start-color: var(--rule); color: var(--muted); display: grid; gap: 1.25rem; justify-items: center; padding-block: 2.25rem 1rem; }
footer[data-site] nav[data-site-nav] { font-size: 0.94rem; }
footer[data-site] nav[data-site-nav] a { color: var(--ink); }
footer[data-site] p { margin: 0; max-inline-size: 48rem; }
p[data-utility] a { color: var(--ink); text-decoration: none; }
p[data-utility] a:hover { text-decoration: underline; }

/* asymco-pages.css */
/* Asymco's own pages, ported from the WordPress theme's assets/css: one.css
   (the One landing page, templates/asymco/page-one.html) and about.css
   (Horace, page-horace.html), each scoped to its page's wrapper class.
   Changed from the originals only where WordPress showed through: its
   block wrappers are sections here, its Montserrat is Timeless Grotesk,
   and the rules for the WordPress-only free sign-up form are gone. The
   subscribe pills and the praise strip came from two of asymco.com's
   plugins (asymco-sub-button, asymco-praise-rotator) and sit at the end. */

/* ---- one.css ---- */
/* ==========================================================================
   /one/ — Asymco One landing page styles. Scoped to .asymco-one-page.
   ========================================================================== */

.asymco-one-page {
	--card-border:   #1f2740;
	--card-shadow:   0 8px 32px rgba(0, 0, 0, 0.12);
	--accent:        #273DA1;
	--accent-dark:   #18266a;
	--muted:         #666;
	--bg-alt:        #f7f7f5;
	--cat-bulletin:  #D97030;
}

.asymco-one-page * { box-sizing: border-box; }

/* Subscribe pills on /one/ are always black, regardless of which color
   modifier class (--research, --nb, --podcast, --event, etc.) the markup uses. */
.asymco-one-page .asymco-sub-btn,
.asymco-one-page .asymco-sub-btn--research,
.asymco-one-page .asymco-sub-btn--nb,
.asymco-one-page .asymco-sub-btn--podcast,
.asymco-one-page .asymco-sub-btn--officehours,
.asymco-one-page .asymco-sub-btn--bulletin,
.asymco-one-page .asymco-sub-btn--event { background: #000; }

/* Theme's contentSize is 543px (very narrow). Bypass that on /one/ so every
   section uses our own widths and stays visually centered on the page. */
.asymco-one-page > section,
.asymco-one-page > * > section {
	max-width: none !important;
	width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
}
.asymco-one-page .asymco-pricing-section,
.asymco-one-page .asymco-tagline,
.asymco-one-page .asymco-hero,
.asymco-one-page .asymco-final-cta {
	max-width: none !important;
}

/* Hide Greatest Hits section if present in markup. */
.asymco-one-page .asymco-samples { display: none !important; }

/* ---------- Hero (folded with press strip) ---------- */
.asymco-one-page .asymco-hero {
	background: #000 !important;
	color: #f5f5f5 !important;
	padding: clamp(1.75rem, 4.5vw, 3.25rem) 1.5rem clamp(1.5rem, 3.5vw, 2.25rem);
	text-align: center;
}
.asymco-one-page .asymco-hero > * {
	margin-left: auto !important;
	margin-right: auto !important;
}
.asymco-one-page .asymco-hero,
.asymco-one-page .asymco-hero * {
	color: #f5f5f5 !important;
}
.asymco-one-page .asymco-hero__title {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	font-size: clamp(2rem, 5vw, 3.5rem) !important;
	font-weight: 700 !important;
	letter-spacing: -0.02em;
	margin: 0 auto 0.4em !important;
	line-height: 1.1;
	text-align: center !important;
	max-width: 22ch;
}
.asymco-one-page .asymco-hero__title-text {
	display: inline-block;
	transition: opacity 0.6s ease, transform 0.6s ease;
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.asymco-one-page .asymco-hero__title-text {
		transition: opacity 0.2s linear;
		transform: none !important;
	}
}
.asymco-one-page .asymco-hero__byline {
	font-size: clamp(1.05rem, 1.6vw, 1.35rem);
	opacity: 0.85;
	margin: 0 auto 2.5rem !important;
	text-align: center !important;
	letter-spacing: 0.01em;
}
.asymco-one-page .asymco-hero__byline a {
	color: inherit !important;
	border-bottom: 1px dotted currentColor;
}

/* Press strip absorbed into hero band */
.asymco-one-page .asymco-press__label {
	text-transform: uppercase;
	letter-spacing: 0.25em;
	font-size: 0.7rem !important;
	opacity: 0.55;
	margin: 0 0 1rem !important;
}
.asymco-one-page .asymco-press__caption {
	font-size: 0.92rem !important;
	opacity: 0.65;
	margin: 1.5rem 0 0 !important;
}

/* Press strip on dark band: light wordmarks, low-contrast at rest. */
.asymco-one-page .asymco-press-logos {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 1.75rem 2.5rem;
	margin: 0.5rem auto;
	max-width: 1100px;
	padding: 0 1rem;
	filter: grayscale(1);
}
.asymco-one-page .press-logo {
	display: inline-flex;
	align-items: center;
	height: 28px;
	color: #d8d8d8 !important;
	opacity: 0.55;
	transition: opacity 0.15s;
	font-weight: 700;
	white-space: nowrap;
	line-height: 1;
}
.asymco-one-page .press-logo:hover {
	opacity: 1;
	color: #fff !important;
}
/* When user uploads PNG/SVG logos: <img class="press-logo" src="..."> */
.asymco-one-page img.press-logo {
	max-height: 28px;
	width: auto;
	filter: grayscale(1);
}
.asymco-one-page img.press-logo:hover { filter: grayscale(0); opacity: 1; }

/* Per-outlet typographic treatment — typeface only, no brand colors.
   Color is forced to grayscale via parent .asymco-press-logos. */
.asymco-one-page .press-logo--bloomberg {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-weight: 800;
	font-size: 1.15rem;
	letter-spacing: -0.02em;
}
.asymco-one-page .press-logo--ft {
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 700;
	font-size: 1.6rem;
	letter-spacing: -0.02em;
}
.asymco-one-page .press-logo--economist {
	font-family: "Times New Roman", Times, serif;
	font-weight: 700;
	font-size: 0.95rem;
	border: 1px solid currentColor;
	padding: 0.35em 0.6em;
	letter-spacing: 0.02em;
}
.asymco-one-page .press-logo--fortune {
	font-family: "Times New Roman", Times, serif;
	font-weight: 900;
	font-size: 1.05rem;
	letter-spacing: 0.18em;
}
.asymco-one-page .press-logo--forbes {
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 800;
	font-size: 1.4rem;
	font-style: italic;
	letter-spacing: -0.01em;
}
.asymco-one-page .press-logo--wsj {
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 700;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	border-top: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	padding: 0.2em 0;
}
.asymco-one-page .press-logo--cnbc {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-weight: 800;
	font-size: 1.35rem;
	letter-spacing: -0.04em;
}
.asymco-one-page .press-logo--verge {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-weight: 900;
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	border: 1px solid currentColor;
	padding: 0.3em 0.6em;
	transform: skew(-8deg);
}
.asymco-one-page .press-logo--stratechery {
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 700;
	font-size: 1.1rem;
	font-style: italic;
	letter-spacing: -0.01em;
}
.asymco-one-page .press-logo--df {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-weight: 700;
	font-size: 1rem;
	letter-spacing: -0.01em;
}
.asymco-one-page .press-logo--9to5 {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-weight: 800;
	font-size: 1rem;
	letter-spacing: -0.02em;
}
.asymco-one-page .press-logo--macrumors {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-weight: 700;
	font-size: 1rem;
	letter-spacing: -0.01em;
}

/* ---------- Tagline (between hero and pricing) ---------- */
.asymco-one-page .asymco-tagline {
	background: #000;
	padding: 0 1.5rem 3rem;
	margin: 0;
}
.asymco-one-page .asymco-tagline__text {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	font-size: clamp(1.25rem, 2.5vw, 1.65rem) !important;
	font-weight: 600 !important;
	font-style: italic;
	letter-spacing: -0.01em;
	color: #f5f5f5 !important;
	max-width: 820px;
	margin: 0 auto !important;
	line-height: 1.4;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	padding-top: 2.25rem;
}

/* ---------- Pricing section ---------- */
.asymco-one-page .asymco-pricing-section {
	padding: 4rem 1rem 1rem;
	max-width: 1280px;
	margin: 0 auto;
}
.asymco-one-page .asymco-pricing-section__title {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
	font-weight: 800 !important;
	letter-spacing: -0.02em;
	margin: 0 auto 0.5rem !important;
	color: #0f172a;
	text-align: center !important;
}
.asymco-one-page .asymco-pricing-section__signin {
	font-size: 0.92rem !important;
	color: #555 !important;
	text-align: center !important;
	margin: 0 auto 1.5rem !important;
}
.asymco-one-page .asymco-pricing-section__signin a {
	color: #555 !important;
	text-decoration: underline !important;
	text-underline-offset: 0.18em;
}
.asymco-one-page .asymco-pricing-section__signin a:hover {
	color: #000 !important;
}
.asymco-one-page .asymco-pricing-section__intro {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.asymco-one-page .asymco-pricing-section__intro {
	font-size: 1.05rem;
	color: #555;
	max-width: 640px;
	margin: 0 auto 2.5rem !important;
	line-height: 1.5;
}

/* ---------- Pricing cards ---------- */
.asymco-one-page .asymco-pricing-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	align-items: stretch;
	margin: 0 auto 3rem;
	padding: 1.25rem 0.5rem;
	max-width: 1200px;
}
@media (min-width: 720px) {
	.asymco-one-page .asymco-pricing-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
.asymco-one-page .asymco-pricing-grid--two {
	max-width: 880px;
}

/* ---------- Not convinced yet? — free email reveal under the paid cards ---------- */

.asymco-one-page .asymco-card {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	padding: 2rem 1.75rem 2rem;
	display: flex;
	flex-direction: column;
	position: relative;
	text-align: left;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	transition: box-shadow 0.2s, transform 0.2s;
}
.asymco-one-page .asymco-card:hover {
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

/* Featured (Annual) */
.asymco-one-page .asymco-card--featured {
	border: 2px solid var(--accent);
	box-shadow: 0 12px 32px rgba(39, 61, 161, 0.15);
}
@media (min-width: 1000px) {
	.asymco-one-page .asymco-card--featured {
		transform: translateY(-12px);
		padding-top: 2.5rem;
		padding-bottom: 2.5rem;
	}
	.asymco-one-page .asymco-card--featured:hover {
		box-shadow: 0 16px 40px rgba(39, 61, 161, 0.22);
	}
}

.asymco-one-page .asymco-card__ribbon {
	position: absolute;
	top: -14px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--cat-bulletin);
	color: #fff;
	padding: 6px 16px;
	font-size: 0.72rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 700;
	border-radius: 999px;
	white-space: nowrap;
	box-shadow: 0 4px 10px rgba(217, 112, 48, 0.3);
}

/* Card head */
.asymco-one-page .asymco-card__head {
	margin: 0 0 1.5rem;
	min-height: 4.5rem;
}
.asymco-one-page .asymco-card__eyebrow {
	font-size: 0.7rem !important;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--accent);
	margin: 0 0 0.5rem !important;
	font-weight: 700 !important;
}

.asymco-one-page .asymco-card__name {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	font-size: 1.5rem !important;
	font-weight: 800 !important;
	letter-spacing: -0.02em;
	color: #0f172a !important;
	margin: 0 0 0.5rem !important;
	line-height: 1.2;
}
.asymco-one-page .asymco-card__lede {
	font-size: 0.95rem;
	color: #555;
	margin: 0;
	line-height: 1.5;
}

/* Price block — fixed min-height so CTAs align across cards */
.asymco-one-page .asymco-card__price-block {
	margin: 0 0 1.25rem;
	min-height: 11rem;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}
.asymco-one-page .asymco-card__price-eyebrow {
	font-size: 0.78rem;
	color: var(--muted);
	margin: 0 0 0.25rem;
	letter-spacing: 0.02em;
}
.asymco-one-page .asymco-card__price-eyebrow strong {
	color: var(--accent);
	letter-spacing: 0.08em;
	font-weight: 700;
}
.asymco-one-page .asymco-card__price {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	display: flex;
	align-items: flex-start;
	color: #0f172a;
	line-height: 1;
	margin: 0;
}
.asymco-one-page .asymco-card__currency {
	font-size: 1.5rem;
	font-weight: 700;
	margin: 0.4rem 0.15rem 0 0;
	letter-spacing: -0.02em;
}
.asymco-one-page .asymco-card__amount {
	font-size: clamp(3rem, 6vw, 4rem);
	font-weight: 800;
	letter-spacing: -0.04em;
}
.asymco-one-page .asymco-card__suffix {
	font-size: 1rem;
	font-weight: 600;
	color: var(--muted);
	margin: 0.65rem 0 0 0.25rem;
	letter-spacing: 0.01em;
	align-self: flex-end;
	padding-bottom: 0.5rem;
}
.asymco-one-page .asymco-card__price--word .asymco-card__amount {
	font-size: clamp(2.5rem, 5vw, 3.25rem);
	letter-spacing: -0.03em;
}
.asymco-one-page .asymco-card__price-equiv {
	font-size: 0.95rem;
	color: #0f172a;
	margin: 0.6rem 0 0;
	line-height: 1.4;
}
.asymco-one-page .asymco-card__price-equiv strong {
	background: rgba(217, 112, 48, 0.12);
	color: var(--cat-bulletin);
	padding: 0.15em 0.5em;
	border-radius: 4px;
	font-weight: 800;
	letter-spacing: -0.01em;
}
.asymco-one-page .asymco-card__price-period {
	font-size: 0.9rem;
	color: var(--muted);
	margin: 0.5rem 0 0;
	line-height: 1.4;
}
.asymco-one-page .asymco-card__price-strike {
	color: #94a3b8;
	text-decoration: line-through;
	text-decoration-color: rgba(148, 163, 184, 0.8);
	text-decoration-thickness: 1.5px;
	margin-right: 0.35rem;
}
.asymco-one-page .asymco-card__savings {
	font-size: 0.85rem;
	color: var(--cat-bulletin);
	font-weight: 700;
	margin: 0.5rem 0 0;
}

/* CTA */
.asymco-one-page .asymco-card__cta {
	display: block;
	width: 100%;
	margin: 0 0 0.75rem;
	padding: 0.95rem 1.25rem;
	font-size: 0.98rem;
}
.asymco-one-page .asymco-card__cta-area { margin-bottom: 0.75rem; }
.asymco-one-page .asymco-card__cta-area .asymco-card__cta {
	margin-bottom: 0;
}

/* Stretched-link: make the entire paid card a click target for its CTA.
   Card is already position:relative; the ::after overlay catches clicks
   anywhere on the card and routes them to the CTA's href. */
.asymco-one-page .asymco-card--monthly,
.asymco-one-page .asymco-card--annual {
	cursor: pointer;
}
.asymco-one-page .asymco-card--monthly .asymco-card__cta::after,
.asymco-one-page .asymco-card--annual .asymco-card__cta::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
/* Keep the ribbon visually above the overlay (it's non-interactive but
   shouldn't appear dimmed by stacking). */
.asymco-one-page .asymco-card__ribbon {
	z-index: 2;
}
.asymco-one-page .asymco-card__subtext {
	font-size: 0.8rem;
	color: var(--muted);
	margin: 0 0 1.5rem;
	text-align: center;
}

/* Feature list with checkmarks (parallel across all cards) */
.asymco-one-page .asymco-card__features {
	list-style: none !important;
	padding: 1.25rem 0 0 !important;
	margin: auto 0 0 !important;
	border-top: 1px solid #eef0f3;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}
.asymco-one-page .asymco-card__features li {
	position: relative;
	padding-left: 1.65rem;
	font-size: 0.92rem;
	line-height: 1.45;
	color: #1f2937;
}
.asymco-one-page .asymco-card__features li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.35em;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 999px;
	background-color: rgba(39, 61, 161, 0.1);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23273DA1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='3.5,8.5 6.5,11.5 12.5,5'/></svg>");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0.85rem 0.85rem;
}
.asymco-one-page .asymco-card__features li.is-disabled {
	color: #b8bdc7;
}
.asymco-one-page .asymco-card__features li.is-disabled strong {
	color: #b8bdc7;
	font-weight: 600;
}
.asymco-one-page .asymco-card__features li.is-disabled::before {
	background-color: #f1f3f6;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23b8bdc7' stroke-width='2' stroke-linecap='round'><line x1='4' y1='4' x2='12' y2='12'/><line x1='12' y1='4' x2='4' y2='12'/></svg>");
	background-size: 0.7rem 0.7rem;
}
.asymco-one-page .asymco-card__features li.is-bonus {
	font-weight: 600;
	color: #0f172a;
}
.asymco-one-page .asymco-card__features li.is-bonus::before {
	background-color: rgba(217, 112, 48, 0.15);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23D97030'><path d='M8 1l1.9 4.6L15 6.3l-3.7 3.4 1 5L8 12.6 3.7 14.7l1-5L1 6.3l5.1-.7z'/></svg>");
	background-size: 0.95rem 0.95rem;
}

/* Buttons */
.asymco-one-page .asymco-btn {
	display: inline-block;
	padding: 0.85rem 1.5rem;
	font-size: 0.95rem;
	font-weight: 700;
	border-radius: 999px;
	text-decoration: none !important;
	text-align: center;
	cursor: pointer;
	border: 0;
	transition: background 0.15s, color 0.15s, transform 0.05s, box-shadow 0.15s;
}
.asymco-one-page .asymco-btn--primary {
	background: var(--accent);
	color: #fff !important;
	box-shadow: 0 4px 14px rgba(39, 61, 161, 0.25);
}
.asymco-one-page .asymco-btn--primary:hover {
	background: var(--accent-dark);
	box-shadow: 0 6px 20px rgba(39, 61, 161, 0.35);
}
.asymco-one-page .asymco-btn--secondary {
	background: #1f2740;
	color: #fff !important;
}
.asymco-one-page .asymco-btn--secondary:hover {
	background: #000;
}
.asymco-one-page .asymco-btn--ghost {
	background: transparent;
	color: #1f2740 !important;
	border: 1px solid #1f2740;
}
.asymco-one-page .asymco-btn--ghost:hover {
	background: #1f2740;
	color: #fff !important;
}
.asymco-one-page .asymco-btn--ghost-on-dark {
	background: transparent;
	color: #fff !important;
	border: 1px solid rgba(255,255,255,0.5);
}
.asymco-one-page .asymco-btn--ghost-on-dark:hover {
	background: rgba(255,255,255,0.1);
}
.asymco-one-page .asymco-btn:active { transform: translateY(1px); }

/* Free-form (email signup inside Free card) — input + button side by side */

/* Already-on-free upgrade pitch */

/* ---------- Inside / samples / why / etc. ---------- */
.asymco-one-page .asymco-inside,
.asymco-one-page .asymco-samples,
.asymco-one-page .asymco-testimonials,
.asymco-one-page .asymco-faq {
	padding: 3rem 1.5rem;
	max-width: 1100px;
	margin: 0 auto;
}

/* "The all-in-one on Apple" — bigger, more readable type. */
.asymco-one-page .asymco-inside h2 {
	font-size: 2rem;
	line-height: 1.2;
	margin: 0 0 1.25rem;
}

/* "Notable Mentions" heading — display-scale, matching the hero. */
.asymco-one-page .asymco-testimonials > h2 {
	font-size: clamp(2.25rem, 4vw, 3.25rem);
	line-height: 1.1;
	margin: 0 0 2rem;
	letter-spacing: -0.01em;
}
.asymco-one-page .asymco-inside > p {
	font-size: 1.15rem;
	line-height: 1.7;
	max-width: 780px;
	margin: 0 auto 2rem;
}
.asymco-one-page .asymco-inside__bundle-title {
	font-size: 1.4rem;
	line-height: 1.3;
	margin: 1.5rem 0 1.5rem;
}

/* Bundle list — two columns on wide, single column on narrow. */
.asymco-one-page .asymco-inside__bundle {
	column-count: 2;
	column-gap: 2.5rem;
	list-style: none;
	padding: 0;
	margin: 0 auto;
	max-width: 980px;
	font-size: 1.05rem;
	line-height: 1.6;
}
.asymco-one-page .asymco-inside__bundle li {
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	margin: 0 0 1.1rem;
}

/* Section name = colored pill (default gray for sections without an assigned color).
   Pill on its own line; description text wraps below. */
.asymco-one-page .asymco-inside__bundle li > a:first-child {
	display: block;
	width: fit-content;
	background-color: #999;
	color: #fff !important;
	padding: 0.1em 0.7em;
	border-radius: 1em;
	text-decoration: none !important;
	margin: 0 0 0.35em;
	line-height: 1.5;
}
.asymco-one-page .asymco-inside__bundle li > a:first-child strong { font-weight: 700; }
.asymco-one-page .asymco-inside__bundle li > a:first-child:hover {
	text-decoration: none !important;
	filter: brightness(1.08);
}
.asymco-one-page .asymco-inside__bundle li > a[href*="/category/nb"]          { background-color: var(--cat-nb); }
.asymco-one-page .asymco-inside__bundle li > a[href*="/category/research"]    { background-color: var(--cat-research); }
.asymco-one-page .asymco-inside__bundle li > a[href*="/category/bulletin"]    { background-color: var(--cat-bulletin); }
.asymco-one-page .asymco-inside__bundle li > a[href*="/category/podcast"]      { background-color: var(--cat-podcast); }
.asymco-one-page .asymco-inside__bundle li > a[href*="/category/officehours"] { background-color: var(--cat-officehours); }
.asymco-one-page .asymco-inside__bundle li > a[href*="/category/conference"]  { background-color: var(--cat-event); }
/* /archives/ keeps the default gray (no assigned color). */

@media (max-width: 700px) {
	.asymco-one-page .asymco-inside__bundle {
		column-count: 1;
	}
	.asymco-one-page .asymco-inside h2 {
		font-size: 1.6rem;
	}
	.asymco-one-page .asymco-inside > p {
		font-size: 1.05rem;
	}
}
/* Why Asymco One — three-column "tastes great, more filling" block.
   Phone screenshot on the left, headline + subtext + prose in the middle,
   coffee cup on the right. White background; the page's surrounding
   sections (CTA bands) use the theme cream/grey for visual rhythm. */
.asymco-one-page .asymco-why {
	background: #fff;
	padding: 3.5rem clamp(1rem, 4vw, 3rem);
	margin: 0 auto;
	color: #000 !important;
}
.asymco-one-page .asymco-why h2,
.asymco-one-page .asymco-why h3,
.asymco-one-page .asymco-why p {
	color: #000 !important;
}
.asymco-one-page .asymco-why__layout {
	display: grid;
	grid-template-columns: minmax(160px, 1fr) minmax(0, 2.2fr) minmax(140px, 1fr);
	gap: clamp(1rem, 3vw, 2.5rem);
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
}
.asymco-one-page .asymco-why__phone,
.asymco-one-page .asymco-why__coffee {
	margin: 0;
	display: flex;
	justify-content: center;
}
.asymco-one-page .asymco-why__phone img {
	width: 100%;
	max-width: 320px;
	height: auto;
	display: block;
}
.asymco-one-page .asymco-why__coffee img {
	width: 100%;
	max-width: 220px;
	height: auto;
	display: block;
}
.asymco-one-page .asymco-why__center {
	min-width: 0;
}
.asymco-one-page .asymco-why__headline {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	font-size: clamp(1.6rem, 3.2vw, 2.25rem);
	font-weight: 800;
	line-height: 1.15;
	margin: 0 0 0.6rem;
}
.asymco-one-page .asymco-why__subtext {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	font-size: clamp(1.05rem, 2vw, 1.3rem);
	font-weight: 700;
	line-height: 1.35;
	margin: 0 0 1.5rem;
}
.asymco-one-page .asymco-why__prose p {
	font-size: 1.02rem;
	line-height: 1.6;
	margin: 0 0 1rem;
}
.asymco-one-page .asymco-why__prose p:last-child {
	margin-bottom: 0;
}
@media (max-width: 820px) {
	.asymco-one-page .asymco-why__layout {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		text-align: center;
	}
	.asymco-one-page .asymco-why__phone img { max-width: 220px; }
	.asymco-one-page .asymco-why__coffee img { max-width: 160px; }
	.asymco-one-page .asymco-why__prose { text-align: left; }
}

/* Anchor target offset so #subscribe doesn't scroll under the sticky header. */
.asymco-one-page #subscribe,
.asymco-one-page #plans {
	scroll-margin-top: 5rem;
}

/* Interstitial CTA band — repeated nudges back to #subscribe between sections.
   Cream/grey background contrasts against the white .asymco-why band. */
.asymco-one-page .asymco-cta-band {
	background: #f2f0ea;
	padding: 2rem clamp(1rem, 4vw, 2.5rem);
	margin: 0 auto;
	text-align: center;
}
.asymco-one-page .asymco-cta-band__text {
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	align-items: center;
	justify-content: center;
	max-width: 100%;
}
.asymco-one-page .asymco-cta-band__btn {
	font-size: 0.95rem;
}
.asymco-one-page .asymco-cta-band--final {
	margin-top: 2rem;
	margin-bottom: 0;
}
/* Combined CTA + 30-day money-back band: lighter grey, smaller guarantee line. */
.asymco-one-page .asymco-cta-band--with-guarantee {
	background: #f7f6f4;
}
.asymco-one-page .asymco-cta-band__guarantee {
	font-size: 0.85rem;
	color: #555;
	margin: 0.85rem 0 0;
	line-height: 1.4;
}
.asymco-one-page .asymco-cta-band__guarantee strong {
	color: #000;
}

/* Price comparison table — descending from the most expensive to free. */
.asymco-one-page .asymco-pricetable {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0 1.75rem;
	font-size: 0.98rem;
	color: #000 !important;
}
.asymco-one-page .asymco-pricetable thead th {
	text-align: left;
	padding: 0.4rem 0.75rem;
	border-bottom: 1px solid #999;
	font-size: 0.72rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #555 !important;
	font-weight: 600;
}
.asymco-one-page .asymco-pricetable thead th:last-child { text-align: right; }
.asymco-one-page .asymco-pricetable td,
.asymco-one-page .asymco-pricetable tbody th {
	padding: 0.65rem 0.75rem;
	border-bottom: 1px solid #d8d8d8;
	color: #000 !important;
	background: transparent !important;
}
.asymco-one-page .asymco-pricetable tbody th {
	text-align: left;
	font-weight: 500;
}
.asymco-one-page .asymco-pricetable td {
	text-align: right;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.asymco-one-page .asymco-pricetable__competitor {
	color: #444 !important;
	opacity: 0.85;
}
.asymco-one-page .asymco-pricetable__divider td {
	border: 0;
	padding: 0.4rem 0;
}
.asymco-one-page .asymco-pricetable__asymco {
	background: rgba(192, 72, 64, 0.08) !important;
}
.asymco-one-page .asymco-pricetable__asymco th,
.asymco-one-page .asymco-pricetable__asymco td {
	background: rgba(192, 72, 64, 0.08) !important;
	color: #000 !important;
}
.asymco-one-page .asymco-pricetable__note {
	display: block;
	font-size: 0.78rem;
	font-weight: 400;
	color: #555 !important;
	margin-top: 0.15rem;
}

.asymco-one-page .asymco-sample-card {
	border: 1px solid #eaeaea;
	padding: 1.25rem;
	border-radius: 8px;
	height: 100%;
}
.asymco-one-page .asymco-sample-card__tag {
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--muted);
	margin: 0.5rem 0 0;
}

.asymco-one-page .asymco-guarantee {
	padding: 1.5rem;
	background: var(--bg-alt);
	margin: 2rem auto;
	max-width: 700px;
	border-radius: 8px;
}

.asymco-one-page .asymco-faq details {
	border-top: 1px solid #eaeaea;
	padding: 1rem 0;
}
.asymco-one-page .asymco-faq details:last-child { border-bottom: 1px solid #eaeaea; }
.asymco-one-page .asymco-faq summary {
	cursor: pointer;
	font-weight: 600;
	font-size: 1rem;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.asymco-one-page .asymco-faq summary::-webkit-details-marker { display: none; }
.asymco-one-page .asymco-faq summary::after {
	content: "+";
	font-size: 1.4rem;
	font-weight: 300;
	color: var(--muted);
	transition: transform 0.15s;
}
.asymco-one-page .asymco-faq details[open] summary::after { transform: rotate(45deg); }
.asymco-one-page .asymco-faq details p {
	margin: 0.5rem 0 0;
	color: #444;
}

/* ---------- Testimonials ---------- */
.asymco-one-page .asymco-testimonial-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	margin: 2rem auto 0;
	max-width: 960px;
}
@media (min-width: 720px) {
	.asymco-one-page .asymco-testimonial-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.asymco-one-page .asymco-testimonial-grid { grid-template-columns: repeat(3, 1fr); }
}
.asymco-one-page .asymco-testimonial {
	--brand: #1f2740;
	--brand-text: #1f2740;
	--brand-bg: #ffffff;
	position: relative;
	margin: 0;
	padding: 2rem 1.75rem 3.5rem;
	background: var(--brand-bg);
	border: 0;
	border-left: 10px solid var(--brand);
	border-radius: 0;
	display: flex;
	flex-direction: column;
	min-height: 200px;
	transition: transform 0.15s, box-shadow 0.15s;
}
.asymco-one-page .asymco-testimonial:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(0,0,0,0.1);
}
.asymco-one-page .asymco-testimonial blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	font-style: normal;
}
.asymco-one-page .asymco-testimonial blockquote p {
	margin: 0;
	font-size: clamp(1.3rem, 2vw, 1.7rem);
	line-height: 1.4;
	color: #0f172a;
	font-weight: 500;
	letter-spacing: -0.005em;
}
.asymco-one-page .asymco-testimonial blockquote a,
.asymco-one-page .asymco-testimonial blockquote a:hover,
.asymco-one-page .asymco-testimonial blockquote a:focus {
	color: inherit;
	border-bottom: 0;
	text-decoration: none !important;
}
.asymco-one-page .asymco-testimonial figcaption {
	position: absolute;
	right: 1.5rem;
	bottom: 1rem;
	margin: 0;
	text-align: right;
	font-size: 0.82rem;
	letter-spacing: 0.04em;
	max-width: 60%;
}
.asymco-one-page .asymco-testimonial__brand {
	display: inline-block;
	font-weight: 800;
	color: var(--brand-text);
	padding: 0.2em 0;
	line-height: 1;
}
/* When the brand uses press-logo wordmark styling (CNBC, Forbes, FT, Fortune, etc.),
   reset the grayscale filter from the hero so the testimonial logo can use brand color. */
.asymco-one-page .asymco-testimonial figcaption .press-logo {
	filter: none;
	opacity: 1;
	color: var(--brand-text) !important;
	height: auto;
}

/* Image-based testimonial brand logos (CNBC, Forbes, Fortune, BI, Macfilos).
   Logo on its own line; brand name as text label below. */
.asymco-one-page .asymco-testimonial figcaption {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.35rem;
}
.asymco-one-page .asymco-testimonial__logo {
	display: block;
	height: 28px;
	width: auto;
	max-width: 140px;
	object-fit: contain;
}
.asymco-one-page .asymco-testimonial__logo--bi {
	height: 24px;
}
.asymco-one-page .asymco-testimonial__name {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--brand-text, #444);
	text-transform: uppercase;
	line-height: 1;
}

/* Per-outlet brand colors. */
.asymco-one-page .asymco-testimonial--cnbc,
.asymco-one-page .asymco-testimonial--cramer {
	--brand: #cc0000;
	--brand-text: #cc0000;
}
.asymco-one-page .asymco-testimonial--fortune {
	--brand: #d4a574;
	--brand-text: #8a6726;
}
.asymco-one-page .asymco-testimonial--forbes {
	--brand: #000;
	--brand-text: #000;
}
.asymco-one-page .asymco-testimonial--forbes .asymco-testimonial__brand {
	font-style: italic;
	font-family: Georgia, "Times New Roman", serif;
}
.asymco-one-page .asymco-testimonial--bi {
	--brand: #ed1c24;
	--brand-text: #ed1c24;
}
.asymco-one-page .asymco-testimonial--macfilos {
	--brand: #1a1a1a;
	--brand-text: #555;
}
.asymco-one-page .asymco-testimonial--ft {
	--brand: #fff1e5;
	--brand-text: #0d0d0d;
	--brand-bg: #fff1e5;
}
.asymco-one-page .asymco-testimonial--economist {
	--brand: #e3120b;
	--brand-text: #e3120b;
}
.asymco-one-page .asymco-testimonial--wsj {
	--brand: #000;
	--brand-text: #000;
}
.asymco-one-page .asymco-testimonial--verge {
	--brand: #5200ff;
	--brand-text: #5200ff;
}
.asymco-one-page .asymco-testimonial--bloomberg {
	--brand: #000;
	--brand-text: #000;
}

/* ---------- Final CTA band ---------- */
.asymco-one-page .asymco-final-cta {
	padding: 3rem 1.5rem;
	margin-top: 3rem;
}
.asymco-one-page .asymco-final-cta__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
	margin-top: 1rem;
}

/* ---------- Already-a-member band (Phase 1.5) ---------- */
.asymco-one-page .asymco-member-band {
	display: block !important;
	background: #fff;
	color: inherit;
	padding: 0 1.5rem 0.5rem;
	text-align: left;
	margin: 0 auto 1rem;
	border-radius: 0;
	max-width: 800px;
	width: auto;
	box-sizing: border-box;
	font-size: 0.9rem;
	line-height: 1.4;
}
.asymco-one-page .asymco-member-band a {
	color: inherit;
	text-decoration: underline;
}
@media (max-width: 600px) {
	.asymco-one-page .asymco-member-band {
		margin: 0 1rem 0.75rem !important;
		padding: 0 0 0.5rem;
		font-size: 0.85rem;
	}
}

/* ---- about.css ---- */
/* ==========================================================================
   /about/horace/ — Horace Dediu bio page. Scoped to .asymco-about-page.
   Loads alongside one.css so testimonials + buttons reuse those styles.
   ========================================================================== */

.asymco-about-page {
	--accent:        #273DA1;
	--accent-dark:   #18266a;
	--muted:         #666;
	--bg-alt:        #f7f7f5;
	--cat-bulletin:  #D97030;
}

.asymco-about-page * { box-sizing: border-box; }

/* Bypass theme's narrow contentSize, same trick as /one/. */
.asymco-about-page > section,
.asymco-about-page > * > section {
	max-width: none !important;
	width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* ---------- Hero ---------- */
.asymco-about-page .asymco-about-hero {
	background: #000;
	color: #f5f5f5;
	padding: clamp(3rem, 8vw, 6rem) 1.5rem clamp(3rem, 7vw, 5rem);
}
.asymco-about-page .asymco-about-hero__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	align-items: center;
	max-width: 1100px;
	margin: 0 auto;
}
@media (min-width: 800px) {
	.asymco-about-page .asymco-about-hero__inner {
		grid-template-columns: 1.1fr 0.9fr;
		gap: 4rem;
	}
}
.asymco-about-page .asymco-about-hero__copy {
	color: #f5f5f5;
}
.asymco-about-page .asymco-about-hero__eyebrow {
	font-size: 0.78rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.6);
	margin: 0 0 1rem;
	font-weight: 600;
}
.asymco-about-page .asymco-about-hero__title {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	font-size: clamp(2.5rem, 6vw, 4.5rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.05;
	margin: 0 0 1rem;
	color: #fff;
}
.asymco-about-page .asymco-about-hero__tagline {
	font-size: clamp(1.05rem, 1.6vw, 1.3rem);
	color: rgba(255,255,255,0.85);
	line-height: 1.45;
	margin: 0 0 2rem;
	max-width: 32em;
}
.asymco-about-page .asymco-about-hero__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.asymco-about-page .asymco-about-hero__portrait {
	margin: 0;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 24px 60px rgba(0,0,0,0.5);
	aspect-ratio: 4 / 5;
	background: #1a1a1a;
}
.asymco-about-page .asymco-about-hero__portrait img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	filter: contrast(1.04) saturate(1.05);
}

/* ---------- Bio prose ---------- */
.asymco-about-page .asymco-about-bio {
	max-width: 720px;
	margin: 0 auto;
	padding: clamp(3rem, 6vw, 5rem) 1.5rem 1rem;
}
.asymco-about-page .asymco-about-bio p {
	font-size: 1.1rem;
	line-height: 1.7;
	color: #1f2937;
	margin: 0 0 1.25rem;
}
.asymco-about-page .asymco-about-bio__lead {
	font-size: 1.3rem !important;
	line-height: 1.55 !important;
	color: #0f172a !important;
	font-weight: 500;
	letter-spacing: -0.005em;
	margin-bottom: 1.75rem !important;
}
.asymco-about-page .asymco-about-bio a {
	color: var(--accent);
	text-decoration: none;
	border-bottom: 1px solid rgba(39, 61, 161, 0.3);
	transition: border-color 0.15s;
}
.asymco-about-page .asymco-about-bio a:hover {
	border-bottom-color: var(--accent);
}

/* ---------- Pull-quote feature ---------- */
.asymco-about-page .asymco-about-feature {
	background: var(--bg-alt);
	padding: clamp(3rem, 5vw, 4.5rem) 1.5rem;
	margin: 3rem 0;
}
.asymco-about-page .asymco-about-feature__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	align-items: center;
	max-width: 1000px;
	margin: 0 auto;
}
@media (min-width: 800px) {
	.asymco-about-page .asymco-about-feature__inner {
		grid-template-columns: 0.9fr 1.1fr;
	}
}
.asymco-about-page .asymco-about-feature__photo {
	margin: 0;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.15);
}
.asymco-about-page .asymco-about-feature__photo img {
	width: 100%;
	height: auto;
	display: block;
}
.asymco-about-page .asymco-about-feature__photo figcaption {
	background: #fff;
	padding: 0.75rem 1rem;
	font-size: 0.85rem;
	color: var(--muted);
	letter-spacing: 0.02em;
	text-align: center;
}
.asymco-about-page .asymco-about-feature__quote {
	margin: 0;
	padding: 0 0 0 1.5rem;
	border-left: 4px solid var(--accent);
}
.asymco-about-page .asymco-about-feature__quote p {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	font-size: clamp(1.4rem, 2.6vw, 2rem);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.015em;
	color: #0f172a;
	margin: 0 0 1rem;
}
.asymco-about-page .asymco-about-feature__quote cite {
	display: block;
	font-style: normal;
	font-size: 0.9rem;
	color: var(--muted);
	letter-spacing: 0.04em;
}

/* ---------- Themes grid ---------- */
.asymco-about-page .asymco-about-themes {
	max-width: 1100px;
	margin: 0 auto;
	padding: clamp(3rem, 6vw, 5rem) 1.5rem;
}
.asymco-about-page .asymco-about-themes h2 {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 0 0 2.5rem;
	color: #0f172a;
}
.asymco-about-page .asymco-about-themes__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
@media (min-width: 720px) {
	.asymco-about-page .asymco-about-themes__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (min-width: 1000px) {
	.asymco-about-page .asymco-about-themes__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
.asymco-about-page .asymco-about-theme {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	padding: 1.5rem 1.5rem 1.75rem;
	border-top: 4px solid var(--accent);
	transition: transform 0.15s, box-shadow 0.15s;
}
.asymco-about-page .asymco-about-theme:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}
.asymco-about-page .asymco-about-theme h3 {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0 0 0.6rem;
	color: #0f172a;
}
.asymco-about-page .asymco-about-theme p {
	font-size: 0.95rem;
	line-height: 1.5;
	color: #374151;
	margin: 0;
}

/* ---------- Elsewhere ---------- */
.asymco-about-page .asymco-about-elsewhere {
	max-width: 1100px;
	margin: 0 auto;
	padding: clamp(2rem, 5vw, 4rem) 1.5rem clamp(3rem, 6vw, 5rem);
}
.asymco-about-page .asymco-about-elsewhere h2 {
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 0 0 2rem;
	color: #0f172a;
}
.asymco-about-page .asymco-about-elsewhere__grid {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
}
@media (min-width: 700px) {
	.asymco-about-page .asymco-about-elsewhere__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (min-width: 1000px) {
	.asymco-about-page .asymco-about-elsewhere__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
.asymco-about-page .asymco-about-elsewhere__grid a {
	display: block;
	padding: 1.25rem 1.5rem;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	color: #0f172a;
	text-decoration: none !important;
	transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}
.asymco-about-page .asymco-about-elsewhere__grid a:hover {
	border-color: var(--accent);
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(39, 61, 161, 0.1);
}
.asymco-about-page .asymco-about-elsewhere__grid a strong {
	display: block;
	font-size: 1rem;
	font-weight: 700;
	color: var(--accent);
	margin: 0 0 0.25rem;
	letter-spacing: -0.01em;
}
.asymco-about-page .asymco-about-elsewhere__grid a span {
	display: block;
	font-size: 0.85rem;
	color: var(--muted);
	line-height: 1.4;
}

/* ---------- Final CTA reuses .asymco-final-cta from one.css ---------- */
.asymco-about-page .asymco-final-cta p {
	font-size: 1.4rem !important;
	font-weight: 600 !important;
	letter-spacing: -0.01em;
}


/* ---- asymco-sub-button plugin: the round subscribe pills ---- */
.asymco-sub-btn {
	--cat-research: #3B4BC8;
	--cat-nb: #C04840;
	--cat-podcast: #6B40A0;
	--cat-officehours: #7BA35E;
	--cat-bulletin: #D97030;
	--cat-event: #00A5A5;
	display: inline-block;
	border-radius: 999px;
	background: var(--cat-bulletin);
	color: #fff !important;
	padding: 0.55rem 1.5rem;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none !important;
	transition: filter 0.18s ease;
	font-family: "Timeless Sans", "DM Sans", system-ui, sans-serif; font-variation-settings: "STYL" 0;
	border: 0;
	cursor: pointer;
}
.asymco-sub-btn:hover,
.asymco-sub-btn:focus { color: #fff !important; text-decoration: none !important; filter: brightness(0.9); }

/* ---- asymco-praise-rotator plugin: readers' praise, one at a time ----
   The plugin turned them with a script every 6.5s. Here every quote sits
   in the same grid cell and takes its turn through one animation, each
   starting 6.5s after the last: 17 quotes, a 110.5s cycle, each fully
   shown for about 5.5% of it. Without motion, only the first shows. */
.asymco-praise-strip {
	display: grid;
	max-width: 880px;
	margin: 3rem auto 0;
	padding: 0 1.5rem;
	text-align: center;
}
.asymco-praise-strip__item {
	animation: asymco-praise 110.5s infinite both;
	grid-area: 1 / 1;
	margin: 0;
	opacity: 0;
	padding: 0 1.5rem;
}
.asymco-praise-strip__quote {
	margin: 0 0 0.75rem;
	font-size: clamp(1.35rem, 2.4vw, 1.9rem);
	line-height: 1.45;
	color: #1f2937;
	font-style: italic;
}
.asymco-praise-strip__quote::before { content: "\275D\00A0"; font-style: normal; }
.asymco-praise-strip__quote::after  { content: "\00A0\275E"; font-style: normal; }
.asymco-praise-strip__cite {
	display: block;
	font-style: normal;
	font-size: 0.95rem;
	color: #6b7280;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
@keyframes asymco-praise {
	0%, 6.4% { opacity: 0; visibility: hidden; }
	0.5%, 5.4% { opacity: 1; visibility: visible; }
}
.asymco-praise-strip__item:nth-child(1) { animation-delay: -0.5s; }
.asymco-praise-strip__item:nth-child(2) { animation-delay: 6s; }
.asymco-praise-strip__item:nth-child(3) { animation-delay: 12.5s; }
.asymco-praise-strip__item:nth-child(4) { animation-delay: 19s; }
.asymco-praise-strip__item:nth-child(5) { animation-delay: 25.5s; }
.asymco-praise-strip__item:nth-child(6) { animation-delay: 32s; }
.asymco-praise-strip__item:nth-child(7) { animation-delay: 38.5s; }
.asymco-praise-strip__item:nth-child(8) { animation-delay: 45s; }
.asymco-praise-strip__item:nth-child(9) { animation-delay: 51.5s; }
.asymco-praise-strip__item:nth-child(10) { animation-delay: 58s; }
.asymco-praise-strip__item:nth-child(11) { animation-delay: 64.5s; }
.asymco-praise-strip__item:nth-child(12) { animation-delay: 71s; }
.asymco-praise-strip__item:nth-child(13) { animation-delay: 77.5s; }
.asymco-praise-strip__item:nth-child(14) { animation-delay: 84s; }
.asymco-praise-strip__item:nth-child(15) { animation-delay: 90.5s; }
.asymco-praise-strip__item:nth-child(16) { animation-delay: 97s; }
.asymco-praise-strip__item:nth-child(17) { animation-delay: 103.5s; }
@media (prefers-reduced-motion: reduce) {
	.asymco-praise-strip__item { animation: none; }
	.asymco-praise-strip__item:first-child { opacity: 1; }
	.asymco-praise-strip__item:not(:first-child) { display: none; }
}
