/* Bloom-inspired layer for the Digest theme. White background throughout.
   Loaded after built/screen.css. Note: html font-size is 62.5% (1rem = 10px). */

:root {
  --bl-font-head: Sora, Helvetica, Arial, sans-serif;
  --bl-font-body: Inter, Helvetica, Arial, sans-serif;
  --bl-text: #000;
  --bl-muted: #6b6b6b;
  --bl-border: #e6e6e6;
  --bl-bg: #fff;
  --bl-surface: #fff;
  --bl-btn-bg: #000;
  --bl-btn-text: #fff;
  --bl-btn-hover: #222;
  --font-sans: var(--bl-font-body);
  --color-secondary-text: var(--bl-muted);
}

/* ---------- Dark mode (opt-in via the header toggle; default is light/white) ---------- */
html[data-theme="dark"] {
  color-scheme: dark;
  --bl-text: #f2f2f2;
  --bl-muted: #a1a1a6;
  --bl-border: #2a2a2e;
  --bl-bg: #0c0c0e;
  --bl-surface: #161619;
  --bl-btn-bg: #fff;
  --bl-btn-text: #000;
  --bl-btn-hover: #e2e2e2;
  /* Remap Digest's own palette so every template flips with the toggle */
  --color-white: #0c0c0e;
  --color-black: #fff;
  --color-primary-text: #e8e8ea;
  --color-secondary-text: #a1a1a6;
  --color-lighter-gray: #161619;
  --color-light-gray: #2a2a2e;
  --color-mid-gray: #3a3a3f;
  --color-dark-gray: #d4d4d8;
  --color-darker-gray: #f2f2f2;
  --darker-gray-color: #f2f2f2;
}

html, body, .gh-site { background: var(--bl-bg); }
body { font-family: var(--bl-font-body); color: var(--bl-text); letter-spacing: -0.04em; font-feature-settings: normal; }
h1, h2, h3, h4 { font-family: var(--bl-font-head); font-weight: 600; letter-spacing: -0.05em; text-transform: none; }

.ts-wrap { max-width: 1240px; margin: 0 auto; padding: 0 max(4vmin, 2rem); }

/* ---------- Header ---------- */
/* Header sits on the same 1240px grid as the content; sticky on desktop */
.gh-head, .post-template .gh-head, .page-template .gh-head { background-color: var(--bl-bg); border-bottom: 1px solid var(--bl-border); font-size: 1.6rem; }
.gh-head.gh-outer { padding-left: 0; padding-right: 0; }
.gh-head-inner { max-width: 1240px; margin: 0 auto; padding: 0 max(4vmin, 2rem); }
@media (min-width: 768px) { .gh-head { position: sticky; top: 0; z-index: 90; height: 80px; } }
.gh-head-menu, .gh-head-actions { font-family: var(--bl-font-head); font-size: 1.5rem; font-weight: 500; text-transform: none; letter-spacing: -0.03em; }
.gh-head-logo { font-family: var(--bl-font-head); font-weight: 700; letter-spacing: -0.05em; }
.gh-head-link { color: var(--bl-text); }
.gh-head-btn.gh-btn, .gh-head-btn.gh-primary-btn {
  background: var(--bl-btn-bg); color: var(--bl-btn-text); border: 0; border-radius: 9999px;
  padding: 1.1rem 2rem; font-family: var(--bl-font-body); font-size: 1.5rem; font-weight: 500; text-transform: none; letter-spacing: -0.03em;
}
.gh-head-btn.gh-btn:hover { background: var(--bl-btn-hover); }

/* Theme toggle: moon shows in light mode, sun in dark mode */
.ts-theme-toggle { color: var(--bl-text); }
.ts-theme-toggle .ts-icon-sun { display: none; }
html[data-theme="dark"] .ts-theme-toggle .ts-icon-moon { display: none; }
html[data-theme="dark"] .ts-theme-toggle .ts-icon-sun { display: block; }
@media (min-width: 768px) { .gh-head-brand .ts-theme-toggle { display: none; } }
@media (max-width: 767px) {
  .gh-head-actions .ts-theme-toggle { display: none; }
  #gh-head .gh-head-brand { grid-template-columns: 1fr auto auto auto; gap: .4rem; }
}

/* ---------- Buttons ---------- */
.ts-btn {
  display: inline-flex; align-items: center; justify-content: center; border: 0; cursor: pointer;
  padding: 1.2rem 2.4rem; border-radius: 9999px; font-family: var(--bl-font-body); font-size: 1.7rem; font-weight: 500;
  letter-spacing: -0.03em; text-transform: none; text-decoration: none; transition: background-color .15s ease;
}
.ts-btn-primary { background: var(--bl-btn-bg); color: var(--bl-btn-text); }
.ts-btn-primary:hover { background: var(--bl-btn-hover); color: var(--bl-btn-text); }

/* ---------- Hero ---------- */
/* Vertical padding only: a shorthand here would wipe the side padding from .ts-wrap */
.ts-hero { padding-top: 6.4rem; padding-bottom: 4rem; }
.ts-hero-title { max-width: 16em; margin: 0 0 2rem; font-size: clamp(3.2rem, 5.6vw, 6.4rem); line-height: 1.1; letter-spacing: -0.05em; overflow-wrap: break-word; }
.ts-hero-text { max-width: 62rem; font-size: 2rem; line-height: 1.6; color: var(--bl-text); }

.ts-subscribe { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; max-width: 52rem; margin-top: 3.2rem; padding: .6rem .6rem .6rem 2.2rem; background: var(--bl-surface); border: 1px solid var(--bl-border); border-radius: 9999px; }
.ts-subscribe-input { flex: 1 1 18rem; min-width: 0; padding: 1rem 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: 1.7rem; color: var(--bl-text); }
.ts-subscribe .ts-btn-loading, .ts-subscribe-success, .ts-subscribe-error { display: none; }
.ts-subscribe.loading .ts-btn-default { display: none; }
.ts-subscribe.loading .ts-btn-loading { display: inline; }
.ts-subscribe-success, .ts-subscribe-error { position: absolute; top: calc(100% + 1rem); left: 2.2rem; margin: 0; font-size: 1.4rem; }
.ts-subscribe-error { color: #d92d20; }
.ts-subscribe.success .ts-subscribe-success { display: block; }
.ts-subscribe.error .ts-subscribe-error { display: block; }
.ts-subscribe.success .ts-subscribe-input, .ts-subscribe.success .ts-btn { opacity: .5; pointer-events: none; }

/* ---------- Featured card + top stories ---------- */
.ts-top { padding-bottom: 2rem; }
.ts-top-grid { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: 4rem; align-items: start; }
.ts-feature-card { display: block; color: inherit; text-decoration: none; }
.ts-feature-media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bl-surface); }
.ts-feature-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ts-feature-card:hover .ts-feature-media img { transform: scale(1.03); }
.ts-feature-body { padding-top: 2.4rem; max-width: 72rem; }
.ts-feature-chips { display: flex; flex-wrap: wrap; gap: .8rem; margin-bottom: 1.4rem; }
.ts-feature-title { margin: 0 0 1.4rem; font-size: clamp(2.8rem, 3.2vw, 3.8rem); line-height: 1.12; letter-spacing: -0.05em; }
.ts-feature-card:hover .ts-feature-title { text-decoration: underline; text-underline-offset: 4px; }
.ts-feature-excerpt { margin: 0 0 1.6rem; font-size: 1.8rem; line-height: 1.6; color: var(--bl-muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ts-feature-meta { display: flex; gap: 1.2rem; font-size: 1.4rem; color: var(--bl-muted); }

.ts-side-title { margin: 0 0 2rem; padding-bottom: 1.4rem; font-size: 2rem; border-bottom: 1px solid var(--bl-border); }
.ts-stories { margin: 0; padding: 0; list-style: none; }
.ts-story + .ts-story { margin-top: 2rem; }
.ts-story-link { display: grid; grid-template-columns: 11.2rem 1fr; gap: 1.6rem; align-items: center; color: inherit; text-decoration: none; }
.ts-story-media { aspect-ratio: 112 / 90; overflow: hidden; border-radius: .8rem; background: #f4f4f4; }
.ts-story-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ts-story-title { margin: 0 0 .6rem; font-size: 1.8rem; line-height: 1.2; letter-spacing: -0.05em; }
.ts-story-link:hover .ts-story-title { text-decoration: underline; text-underline-offset: 3px; }
.ts-story-date { font-size: 1.3rem; color: var(--bl-muted); }

/* ---------- Chips ---------- */
.ts-chip { display: inline-block; padding: .3rem 1rem; border-radius: 9999px; background: #fff; color: #000; font-family: var(--bl-font-body); font-size: 1.3rem; font-weight: 500; letter-spacing: -0.03em; line-height: 1.5; }
.ts-card-media .ts-chip { position: absolute; left: 1.2rem; bottom: 1.2rem; }

/* ---------- Sections + cards ---------- */
.ts-section { padding-top: 7rem; }
.ts-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 2rem; margin-bottom: 3rem; padding: 0; border: 0; }
.ts-section-title { margin: 0; font-size: 3.2rem; letter-spacing: -0.05em; }
.ts-section-link { font-size: 1.6rem; font-weight: 500; letter-spacing: -0.03em; text-transform: none; color: var(--bl-text); text-decoration: underline; text-underline-offset: 4px; }
.ts-section-link:hover { color: var(--bl-muted); }

.ts-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4rem 2.4rem; }
.ts-card-link { display: block; color: inherit; text-decoration: none; }
.ts-card-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #f4f4f4; border-radius: 1rem; }
.ts-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.ts-card-link:hover .ts-card-media img { transform: scale(1.04); }
.ts-card-ph { width: 100%; height: 100%; background: linear-gradient(135deg, #f1f1f1, #e6e6e6); }
.ts-card-body { padding-top: 1.6rem; }
.ts-card-title { margin: 0; font-size: 2.1rem; line-height: 1.2; letter-spacing: -0.05em; word-break: break-word; }
.ts-card-link:hover .ts-card-title { text-decoration: underline; text-underline-offset: 3px; }
.ts-card-excerpt { margin: 1rem 0 0; font-size: 1.5rem; line-height: 1.55; color: var(--bl-muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ts-card-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-top: 1.4rem; font-size: 1.3rem; color: var(--bl-muted); }
.ts-card-date { display: inline; margin: 0; font-size: inherit; letter-spacing: inherit; text-transform: none; color: inherit; }

/* ---------- "What's in every issue" ---------- */
.ts-end { padding-bottom: 8rem; }
.ts-topics { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 2.4rem; }
.ts-topic { display: flex; flex-direction: column; padding: 2.8rem; background: var(--bl-surface); border: 1px solid var(--bl-border); border-radius: 1.2rem; }
.ts-topic-num { margin-bottom: 2rem; font-size: 1.3rem; font-weight: 500; color: var(--bl-muted); }
.ts-topic h3 { margin: 0; font-size: 1.9rem; line-height: 1.25; }
.ts-topic p { margin: 1rem 0 0; font-size: 1.5rem; line-height: 1.6; color: var(--bl-muted); }
.ts-note { margin-top: 3rem; font-size: 1.4rem; line-height: 1.6; color: var(--bl-muted); }

/* ---------- Footer ---------- */
.gh-subscribe-wrapper { background: var(--bl-bg); }
.ts-foot { margin-top: 4rem; background: var(--bl-bg); border-top: 1px solid var(--bl-border); }
.ts-foot-inner { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 4rem; max-width: 1240px; margin: 0 auto; padding: 6rem max(4vmin, 2rem) 4rem; }
.ts-foot-logo { font-family: var(--bl-font-head); font-size: 2.4rem; font-weight: 700; letter-spacing: -0.05em; color: inherit; text-decoration: none; }
.ts-foot-logo img { max-height: 4rem; width: auto; }
.ts-foot-desc { max-width: 32rem; margin: 1.4rem 0 2rem; font-size: 1.5rem; line-height: 1.6; color: var(--bl-muted); }
.ts-foot-social { display: flex; gap: 1.4rem; }
.ts-foot-heading { margin: 0 0 1.6rem; font-size: 1.6rem; }
.ts-foot-col ul, .ts-foot-col .nav { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 1rem; }
.ts-foot-col a { font-size: 1.5rem; color: var(--bl-muted); text-decoration: none; }
.ts-foot-col a:hover { color: var(--bl-text); }
.ts-foot-bottom { display: flex; justify-content: space-between; gap: 2rem; max-width: 1240px; margin: 0 auto; padding: 2.4rem max(4vmin, 2rem) 4rem; border-top: 1px solid var(--bl-border); font-size: 1.3rem; color: var(--bl-muted); }
.ts-foot-bottom a { color: inherit; }

/* ---------- Default image (posts without a feature image) ---------- */
.ts-ph {
  --ph-a: #eef1f6; --ph-b: #dfe5f0; --ph-ink: #3b4a66;
  position: relative; display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%; overflow: hidden; color: var(--ph-ink);
  background: linear-gradient(135deg, var(--ph-a), var(--ph-b));
}
.ts-ph--article-post { --ph-a: #ece9fb; --ph-b: #dcd6f7; --ph-ink: #4b3fa0; }
.ts-ph[class*="ts-ph--ai-digest"] { --ph-a: #e3f4f1; --ph-b: #cdeae4; --ph-ink: #136b5e; }
.ts-ph.ts-ph--daily { --ph-a: #e3f4f1; --ph-b: #cdeae4; --ph-ink: #136b5e; }
.ts-ph.ts-ph--weekly { --ph-a: #e3f4f1; --ph-b: #cdeae4; --ph-ink: #136b5e; }
.ts-ph--marketing-products { --ph-a: #fdeee3; --ph-b: #fbd9c0; --ph-ink: #a04a12; }
.ts-ph--ideas { --ph-a: #fdeee3; --ph-b: #fbd9c0; --ph-ink: #a04a12; }
html[data-theme="dark"] .ts-ph { --ph-a: #1a1d24; --ph-b: #242936; --ph-ink: #9fb0d0; }
html[data-theme="dark"] .ts-ph--article-post { --ph-a: #1d1a33; --ph-b: #2b2552; --ph-ink: #b3a9ff; }
html[data-theme="dark"] .ts-ph[class*="ts-ph--ai-digest"] { --ph-a: #10231f; --ph-b: #18362f; --ph-ink: #7fd6c4; }
html[data-theme="dark"] .ts-ph.ts-ph--daily { --ph-a: #10231f; --ph-b: #18362f; --ph-ink: #7fd6c4; }
html[data-theme="dark"] .ts-ph.ts-ph--weekly { --ph-a: #10231f; --ph-b: #18362f; --ph-ink: #7fd6c4; }
html[data-theme="dark"] .ts-ph--marketing-products { --ph-a: #2a1a10; --ph-b: #45281a; --ph-ink: #ffb98a; }
html[data-theme="dark"] .ts-ph--ideas { --ph-a: #2a1a10; --ph-b: #45281a; --ph-ink: #ffb98a; }
.ts-ph-art { position: absolute; inset: 0; width: 100%; height: 100%; }
.ts-feature-media .ts-ph { position: absolute; inset: 0; }

/* ---------- Tinted page hero (tag pages, About, Marketing) ---------- */
.ts-tint { --ph-a: #eef1f6; --ph-b: #dfe5f0; --ph-ink: #3b4a66; }
.ts-tint.ts-ph--article-post { --ph-a: #ece9fb; --ph-b: #dcd6f7; --ph-ink: #4b3fa0; }
.ts-tint[class*="ts-ph--ai-digest"] { --ph-a: #e3f4f1; --ph-b: #cdeae4; --ph-ink: #136b5e; }
.ts-tint.ts-ph--daily { --ph-a: #e3f4f1; --ph-b: #cdeae4; --ph-ink: #136b5e; }
.ts-tint.ts-ph--weekly { --ph-a: #e3f4f1; --ph-b: #cdeae4; --ph-ink: #136b5e; }
.ts-tint.ts-ph--marketing-products { --ph-a: #fdeee3; --ph-b: #fbd9c0; --ph-ink: #a04a12; }
.ts-tint.ts-ph--ideas { --ph-a: #fdeee3; --ph-b: #fbd9c0; --ph-ink: #a04a12; }
html[data-theme="dark"] .ts-tint { --ph-a: #1a1d24; --ph-b: #242936; --ph-ink: #9fb0d0; }
html[data-theme="dark"] .ts-tint.ts-ph--article-post { --ph-a: #1d1a33; --ph-b: #2b2552; --ph-ink: #b3a9ff; }
html[data-theme="dark"] .ts-tint[class*="ts-ph--ai-digest"] { --ph-a: #10231f; --ph-b: #18362f; --ph-ink: #7fd6c4; }
html[data-theme="dark"] .ts-tint.ts-ph--daily { --ph-a: #10231f; --ph-b: #18362f; --ph-ink: #7fd6c4; }
html[data-theme="dark"] .ts-tint.ts-ph--weekly { --ph-a: #10231f; --ph-b: #18362f; --ph-ink: #7fd6c4; }
html[data-theme="dark"] .ts-tint.ts-ph--marketing-products { --ph-a: #2a1a10; --ph-b: #45281a; --ph-ink: #ffb98a; }
html[data-theme="dark"] .ts-tint.ts-ph--ideas { --ph-a: #2a1a10; --ph-b: #45281a; --ph-ink: #ffb98a; }

.ts-page-top { padding-top: 3.2rem; }
.ts-page-hero { position: relative; overflow: hidden; border-radius: 2.4rem; color: var(--bl-text); background: linear-gradient(135deg, var(--ph-a), var(--ph-b)); }
.ts-page-hero .ts-ph-art { inset: 0 -4% 0 auto; width: 62%; color: var(--ph-ink); opacity: .55; }
.ts-page-hero-inner { position: relative; max-width: 68rem; padding: 4rem 4.8rem 5.2rem; }
.ts-eyebrow { display: block; margin: 3.2rem 0 1.2rem; font-size: 1.4rem; font-weight: 500; letter-spacing: -0.02em; color: var(--ph-ink); }
.ts-page-title { margin: 0 0 1.6rem; font-size: clamp(3.4rem, 6vw, 6.4rem); line-height: 1.05; letter-spacing: -0.05em; overflow-wrap: break-word; }
.ts-page-lead { max-width: 54rem; margin: 0 0 2.6rem; font-size: 2rem; line-height: 1.6; color: var(--bl-text); }
.ts-count { display: inline-block; padding: .6rem 1.4rem; border-radius: 9999px; background: var(--bl-surface); border: 1px solid var(--bl-border); font-size: 1.4rem; font-weight: 500; }
.ts-hero-actions { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.ts-btn-outline { background: var(--bl-surface); color: var(--bl-text); border: 1px solid var(--bl-border); }
.ts-btn-outline:hover { background: var(--bl-bg); color: var(--bl-text); }

/* Split variant (Marketing): image on the right */
.ts-page-hero--split { display: grid; grid-template-columns: 1.1fr 1fr; align-items: stretch; }
.ts-page-hero-media { min-height: 32rem; }
.ts-page-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Topic switcher pills */
.ts-pills { display: flex; flex-wrap: wrap; gap: .8rem; }
.ts-pill { padding: .7rem 1.6rem; border-radius: 9999px; background: var(--bl-surface); border: 1px solid var(--bl-border); color: var(--bl-text); font-size: 1.4rem; font-weight: 500; text-decoration: none; transition: background-color .15s ease; }
.ts-pill:hover { background: var(--bl-bg); }
body.tag-article-post .ts-pill[data-pill="articles"],
body[class*="tag-ai-digest"] .ts-pill[data-pill="digests"],
body.tag-daily .ts-pill[data-pill="digests"],
body.tag-weekly .ts-pill[data-pill="digests"],
body.page-marketing-pages .ts-pill[data-pill="products"],
body.tag-ideas .ts-pill[data-pill="products"],
body.tag-ai-digest .ts-pill[data-sub="all"],
body.tag-daily .ts-pill[data-sub="daily"],
body.tag-weekly .ts-pill[data-sub="weekly"] { background: var(--bl-btn-bg); border-color: var(--bl-btn-bg); color: var(--bl-btn-text); }

/* Tag page: featured card and 3-column grid */
.ts-tag-featured { padding-top: 4rem; }
.ts-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ts-pager { display: flex; align-items: center; justify-content: center; gap: 2rem; margin-top: 5rem; }
.ts-pager-info { font-size: 1.4rem; color: var(--bl-muted); }

/* Marketing: newest idea spans two columns */
.ts-grid--spotlight { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ts-grid--spotlight > .ts-card:first-child { grid-column: span 2; }
.ts-grid--spotlight > .ts-card:first-child .ts-card-media { aspect-ratio: 16 / 9; }
.ts-grid--spotlight > .ts-card:first-child .ts-card-title { font-size: 3rem; }
.ts-intro { padding-top: 4rem; }
.ts-intro-body { max-width: 72rem; font-size: 1.9rem; line-height: 1.7; }

/* AI Digest timeline rows */
.ts-rows { padding-top: 3.2rem; }
.ts-row + .ts-row { border-top: 1px solid var(--bl-border); }
.ts-row:first-child .ts-row-link { padding-top: 0; }
.ts-row-link { display: grid; grid-template-columns: 10rem minmax(0, 1fr) 20rem; gap: 3.2rem; align-items: center; padding: 3rem 0; color: inherit; text-decoration: none; }
.ts-row-date { display: flex; flex-direction: column; line-height: 1; }
.ts-row-day { font-family: var(--bl-font-head); font-size: 5.2rem; font-weight: 600; letter-spacing: -0.06em; }
.ts-row-mon { margin-top: .8rem; font-size: 1.4rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.ts-row-year { margin-top: .4rem; font-size: 1.3rem; color: var(--bl-muted); }
.ts-chip-line { margin-bottom: 1rem; background: transparent; border: 1px solid var(--bl-border); color: var(--bl-text); }
.ts-row-title { margin: 0 0 .8rem; font-size: 2.6rem; line-height: 1.15; letter-spacing: -0.05em; }
.ts-row-link:hover .ts-row-title { text-decoration: underline; text-underline-offset: 4px; }
.ts-row-excerpt { margin: 0 0 1.2rem; font-size: 1.6rem; line-height: 1.55; color: var(--bl-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ts-row-more { font-size: 1.4rem; font-weight: 500; }
.ts-row-media { aspect-ratio: 4 / 3; overflow: hidden; border-radius: 1rem; background: #f4f4f4; }
.ts-row-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.ts-row-link:hover .ts-row-media img { transform: scale(1.04); }

/* About page */
.ts-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.4rem; }
.ts-stat { padding: 3rem; border-radius: 1.6rem; background: var(--bl-surface); border: 1px solid var(--bl-border); }
.ts-stat-num { display: block; margin-bottom: .8rem; font-family: var(--bl-font-head); font-size: 4.8rem; font-weight: 600; letter-spacing: -0.06em; line-height: 1; }
.ts-stat-label { font-size: 1.6rem; color: var(--bl-muted); }
.ts-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.4rem; }
.ts-step { padding: 3rem; border-radius: 1.6rem; border: 1px solid var(--bl-border); background: var(--bl-surface); }
.ts-step-num { display: inline-flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; margin-bottom: 2rem; border-radius: 50%; background: var(--bl-btn-bg); color: var(--bl-btn-text); font-family: var(--bl-font-head); font-weight: 600; }
.ts-step h3 { margin: 0 0 1rem; font-size: 2.2rem; }
.ts-step p { margin: 0; font-size: 1.6rem; line-height: 1.6; color: var(--bl-muted); }
.ts-sources { display: flex; flex-wrap: wrap; gap: 1rem; }
.ts-source { padding: 1rem 1.8rem; border-radius: 9999px; border: 1px solid var(--bl-border); background: var(--bl-surface); font-size: 1.5rem; font-weight: 500; }
.ts-callout { display: flex; gap: 2rem; align-items: flex-start; padding: 3rem; border-radius: 1.6rem; background: linear-gradient(135deg, var(--ph-a), var(--ph-b)); color: var(--bl-text); }
.ts-callout-icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; border-radius: 50%; background: var(--ph-ink); color: var(--bl-bg); font-family: var(--bl-font-head); font-weight: 700; }
.ts-callout h3 { margin: 0 0 .8rem; font-size: 2.2rem; }
.ts-callout p { margin: 0; max-width: 72rem; font-size: 1.6rem; line-height: 1.6; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .ts-grid--3, .ts-grid--spotlight { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ts-page-hero--split { grid-template-columns: 1fr; }
  .ts-page-hero-media { min-height: 24rem; max-height: 36rem; }
  .ts-stats, .ts-steps { grid-template-columns: 1fr; }
  .ts-row-link { grid-template-columns: 8rem minmax(0, 1fr) 16rem; gap: 2.4rem; }
}
@media (max-width: 640px) {
  .ts-grid--3, .ts-grid--spotlight { grid-template-columns: 1fr; }
  .ts-grid--spotlight > .ts-card:first-child { grid-column: auto; }
  .ts-grid--spotlight > .ts-card:first-child .ts-card-title { font-size: 2.4rem; }
  .ts-page-top { padding-top: 1.6rem; }
  .ts-page-hero { border-radius: 1.6rem; }
  .ts-page-hero-inner { padding: 2.4rem 2rem 3.2rem; }
  .ts-eyebrow { margin-top: 2.4rem; }
  .ts-page-lead { font-size: 1.7rem; }
  .ts-page-hero .ts-ph-art { width: 100%; opacity: .3; }
  .ts-row-link { grid-template-columns: 1fr; gap: 1.6rem; padding: 2.4rem 0; }
  .ts-row-media { order: -1; }
  .ts-row-date { flex-direction: row; align-items: baseline; gap: .8rem; }
  .ts-row-day { font-size: 2.6rem; }
  .ts-row-mon, .ts-row-year { margin-top: 0; }
  .ts-callout { flex-direction: column; padding: 2.4rem; }
}
@media (max-width: 1100px) {
  .ts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ts-top-grid { grid-template-columns: 1fr; gap: 3.2rem; }
}
@media (max-width: 640px) {
  .ts-hero { padding-top: 2.4rem; padding-bottom: 2.4rem; }
  .ts-hero-text { font-size: 1.7rem; }
  .ts-grid { grid-template-columns: 1fr; }
  .ts-foot-inner { grid-template-columns: 1fr; gap: 3rem; padding-top: 4rem; }
  .ts-foot-bottom { flex-direction: column; gap: .6rem; }
  .ts-subscribe { border-radius: 2rem; padding: 1.2rem; }
  .ts-subscribe .ts-btn { width: 100%; }
}

/* ---------- Related articles (post page): three cards ---------- */
.ts-related { margin-top: 6.4rem; padding-top: 5.6rem; padding-bottom: 2rem; border-top: 1px solid var(--bl-border); }
.ts-related .ts-section-head { margin-bottom: 3.2rem; }
.ts-grid.ts-grid--related { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) {
  .ts-grid.ts-grid--related { grid-template-columns: 1fr; }
}


/* ===================== Professional polish ===================== */
:root { --bl-radius: 1.2rem; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
:focus-visible { outline: 2px solid var(--bl-text); outline-offset: 3px; border-radius: .4rem; }
::selection { background: var(--bl-text); color: var(--bl-bg); }

/* One corner radius for every image, one for every panel */
.ts-card-media, .ts-row-media, .ts-feature-media, .ts-story-media, .gh-article-image img { border-radius: var(--bl-radius); }
.ts-topic, .ts-stat, .ts-step, .ts-callout { border-radius: 1.6rem; }

/* Announcement bar: slim, neutral strip instead of a heavy black band */
#announcement-bar-root .gh-announcement-bar { background: var(--bl-surface) !important; color: var(--bl-text) !important; border-bottom: 1px solid var(--bl-border); font-size: 1.3rem !important; }
#announcement-bar-root .gh-announcement-bar p, #announcement-bar-root .gh-announcement-bar a { color: var(--bl-text) !important; margin: 0; }
html:not([data-theme="dark"]) #announcement-bar-root .gh-announcement-bar button svg { filter: invert(1); }

/* Default images: calmer, and flipped per card so they do not all look the same */
.ts-ph .ts-ph-art { opacity: .4; }
.ts-card:nth-child(4n+2) .ts-ph-art, .ts-row:nth-child(4n+2) .ts-ph-art, .ts-story:nth-child(4n+2) .ts-ph-art { transform: scaleX(-1); }
.ts-card:nth-child(4n+3) .ts-ph-art, .ts-row:nth-child(4n+3) .ts-ph-art, .ts-story:nth-child(4n+3) .ts-ph-art { transform: scaleY(-1); }
.ts-card:nth-child(4n+4) .ts-ph-art, .ts-row:nth-child(4n+4) .ts-ph-art, .ts-story:nth-child(4n+4) .ts-ph-art { transform: rotate(180deg); }
.ts-feature-media .ts-ph { position: absolute; inset: 0; }

/* Tag pages: featured story is image-left, text-right */
.ts-tag-featured .ts-feature-card { display: grid; grid-template-columns: 1.3fr 1fr; gap: 4rem; align-items: center; }
.ts-tag-featured .ts-feature-media { aspect-ratio: 16 / 10; }
.ts-tag-featured .ts-feature-body { padding-top: 0; }
@media (max-width: 900px) { .ts-tag-featured .ts-feature-card { grid-template-columns: 1fr; gap: 0; } .ts-tag-featured .ts-feature-body { padding-top: 2.4rem; } }

/* Homepage footer notice */
.ts-note--block { margin: 0; padding-top: 3.2rem; border-top: 1px solid var(--bl-border); max-width: 72rem; }
.ts-note--block a { color: var(--bl-text); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Article and page headers ---------- */
.gh-article-header, .post-template .gh-article-header, .page-template .gh-article-header,
body:not(.home-template) .gh-article-header { background-color: var(--bl-bg); margin-top: 0; padding-top: 5.6rem; padding-bottom: 2.4rem; }
.gh-article-image, .post-template .gh-article-image, .page-template .gh-article-image,
body:not(.home-template) .gh-article-image { margin-top: 2.4rem; }
.gh-article-title { font-family: var(--bl-font-head); font-weight: 600; font-size: clamp(3.2rem, 5vw, 5rem); line-height: 1.1; letter-spacing: -0.05em; }
.gh-article-meta { flex-wrap: wrap; gap: 1.2rem; font-size: 1.4rem; font-weight: 500; text-transform: none; color: var(--bl-muted); }
.gh-article-date { text-transform: none; letter-spacing: normal; }
.ts-article-tag { padding: .3rem 1rem; border: 1px solid var(--bl-border); border-radius: 9999px; color: var(--bl-text); font-size: 1.3rem; text-decoration: none; }
.ts-article-tag:hover { background: var(--bl-surface); }
.gh-button-share { border: 1px solid var(--bl-border); border-radius: 9999px; background: var(--bl-surface); color: var(--bl-text); text-transform: none; }
.gh-content a:not(.kg-btn):not(.kg-bookmark-container) { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.gh-content a:not(.kg-btn):not(.kg-bookmark-container):hover { text-decoration-thickness: 2px; }
@media (max-width: 640px) {
  .gh-article-header, .post-template .gh-article-header, .page-template .gh-article-header,
  body:not(.home-template) .gh-article-header { padding-top: 3.2rem; padding-bottom: 1.6rem; }
}

/* ---------- Disclosure: AI badge, article notice, footer notice, corrections ---------- */
.ts-ai-badge { display: inline-flex; align-items: center; gap: .5rem; padding: .3rem 1rem; border: 1px solid var(--bl-border); border-radius: 9999px; background: var(--bl-surface); color: var(--bl-text); font-family: var(--bl-font-body); font-size: 1.3rem; font-weight: 500; letter-spacing: -0.02em; line-height: 1.5; text-transform: none; }
.ts-ai-badge::before { content: "\2726"; font-size: 1.1rem; }
.ts-eyebrow .ts-ai-badge { margin-left: .8rem; vertical-align: middle; }

.ts-notice { margin-top: 4.8rem; padding: 2rem 2.4rem; border: 1px solid var(--bl-border); border-radius: 1.2rem; background: var(--bl-surface); font-size: 1.4rem; line-height: 1.6; color: var(--bl-muted); }
.ts-notice p { margin: 0; }
.ts-notice strong { color: var(--bl-text); }
.ts-notice a { color: var(--bl-text); text-decoration: underline; text-underline-offset: 3px; }

.ts-foot-notice { max-width: 1240px; margin: 0 auto; padding: 0 max(4vmin, 2rem) 2.4rem; font-size: 1.3rem; line-height: 1.6; color: var(--bl-muted); }
.ts-foot-notice a { color: var(--bl-text); text-decoration: underline; text-underline-offset: 3px; }

.ts-corrections { max-width: 72rem; }
.ts-corrections p { margin: 0 0 2.4rem; font-size: 1.7rem; line-height: 1.7; }
.ts-corrections p.ts-note { margin: 0; font-size: 1.4rem; }
#corrections { scroll-margin-top: 10rem; }

/* Digest sub-filter (All / Daily / Weekly) */
.ts-subpills { display: flex; flex-wrap: wrap; gap: .8rem; padding-top: 3.2rem; }
