/* ==========================================================================
   Adjacent Ghost Theme — screen.css
   Port of the WordPress adjacent-v3 theme.
   Design system: --adj-* custom properties throughout.
   ========================================================================== */

/* ==========================================================================
   1. Design Tokens — CSS Custom Properties
   ========================================================================== */

:root {
  /* Font families */
  --adj-font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --adj-font-heading: 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;
  --adj-font-mono: 'JetBrains Mono', 'SF Mono', Menlo, monospace;

  /* Type scale */
  --adj-size-small: 0.75rem;
  --adj-size-meta: 0.85rem;
  --adj-size-medium: 1.02rem;
  --adj-size-large: 1.25rem;
  --adj-size-x-large: 1.75rem;
  --adj-size-xx-large: clamp(2rem, 4vw, 2.8rem);

  /* Ink (text) */
  --adj-ink: #1a1a1a;
  --adj-ink-80: rgba(26, 26, 26, 0.8);
  --adj-ink-50: rgba(26, 26, 26, 0.5);
  --adj-ink-30: rgba(26, 26, 26, 0.3);
  --adj-ink-15: rgba(26, 26, 26, 0.15);
  --adj-ink-10: rgba(26, 26, 26, 0.1);
  --adj-ink-05: rgba(26, 26, 26, 0.05);

  /* Surfaces */
  --adj-bg: #fafafa;
  --adj-surface: #f0f0ee;
  --adj-rule: #d4d4d4;
  --adj-rule-light: rgba(128, 128, 128, 0.1);

  /* Accent */
  --adj-accent: #1a6b6a;
  --adj-accent-dark: #145a59;
  --adj-accent-light: #2ea8a6;
  --adj-accent-10: rgba(26, 107, 106, 0.1);

  /* Theme colors */
  --adj-consumer: #d4634b;
  --adj-ai: #4a4e69;
  --adj-commerce: #2b7a4b;
  --adj-culture: #7c3aad;
  --adj-connected: #3a75c4;
  --adj-brand: #c08b25;

  /* Spacing */
  --adj-space-xs: 0.25rem;
  --adj-space-s: 0.5rem;
  --adj-space-m: 0.75rem;
  --adj-space-base: 1rem;
  --adj-space-l: 1.5rem;
  --adj-space-xl: 2rem;

  /* v3 Surface hierarchy — 4-step luminance ladder */
  --adj-bg-raised: #ffffff;       /* cards, elevated panels */
  --adj-bg-sunken: #f0f0ee;      /* secondary areas */
  --adj-bg-inset:  #e8e8e6;      /* code blocks, inputs */

  /* v3 Border opacity scale */
  --adj-border-subtle:  rgba(26, 26, 26, 0.06);
  --adj-border-default: rgba(26, 26, 26, 0.10);
  --adj-border-strong:  rgba(26, 26, 26, 0.18);

  /* v3 Text hierarchy */
  --adj-text-primary:   #0a0a0a;
  --adj-text-secondary: #4a4a4a;
  --adj-text-tertiary:  #8a8a8a;
  --adj-text-ghost:     #b0b0b0;

  /* v3 Shadows — light mode elevation */
  --adj-shadow-card: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.02);
  --adj-shadow-card-hover: 0 4px 12px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04);

  /* v3 Radius */
  --adj-radius-s: 4px;
  --adj-radius-m: 8px;
  --adj-radius-l: 12px;

  /* Animation */
  --adj-duration: 0.2s;
  --adj-duration-fast: 0.12s;
  --adj-duration-slow: 0.4s;
  --adj-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --adj-ease-subtle: ease;
}

/* ==========================================================================
   2. Global Reset & Base
   ========================================================================== */

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

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  margin: 0;
  background: var(--adj-bg);
  color: var(--adj-ink);
  font-family: var(--adj-font-body);
  font-size: var(--adj-size-medium);
  line-height: 1.65;
}

/* ==========================================================================
   Layout Containment (replaces WP theme.json contentSize/wideSize)
   ========================================================================== */

.site-header-inner,
.homepage-inner,
.single-post-inner,
.read-view-inner,
.static-page-inner,
.signals-archive-inner,
.briefs-archive-inner,
.wr-post-inner,
.wr-archive-inner,
.collection-inner,
.radar-inner,
.archive-inner,
.page-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding-left: var(--adj-space-xl);
  padding-right: var(--adj-space-xl);
}

.single-post-inner,
.wr-post-inner,
.static-page-inner,
.page-inner {
  max-width: 780px;
}

.read-view-inner {
  max-width: 780px;
}

.adj-homepage {
  padding-top: var(--adj-space-xl);
  padding-bottom: 3rem;
}

#site-main {
  min-height: 60vh;
}

/* Heading defaults */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--adj-font-heading);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

h1 {
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.05;
}

h4 {
  font-family: var(--adj-font-mono);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--adj-text-secondary);
}

a {
  color: inherit;
  text-decoration: none;
}

/* Signals grid — 3-column card layout */
.signals-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--adj-space-l);
  margin-top: var(--adj-space-l);
}

@media (max-width: 900px) {
  .signals-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .signals-grid {
    grid-template-columns: 1fr;
  }
}

/* Hero elements (Ghost templates use direct classes, not WP block nesting) */
.hero-label {
  display: flex;
  align-items: center;
  gap: var(--adj-space-s);
  margin-bottom: var(--adj-space-s);
}

.hero-eyebrow {
  font-family: var(--adj-font-mono);
  font-size: 0.55rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--adj-text-tertiary);
}

.hero-dots {
  display: flex;
  gap: 4px;
  align-items: center;
}

.hero-dots .dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  display: inline-block;
}

.hero-date {
  font-family: var(--adj-font-mono);
  font-size: 0.55rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--adj-text-tertiary);
}

.hero-title {
  font-size: clamp(2rem, 4vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.08;
  margin: 0 0 1rem;
}

.hero-title a {
  color: var(--adj-ink);
  text-decoration: none;
  border-bottom: none;
}

.hero-title a:hover {
  color: var(--adj-accent);
}

.hero-tldr {
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--adj-ink-80);
  margin-bottom: var(--adj-space-l);
}

.hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em;
  margin-bottom: var(--adj-space-l);
}

.hero-cta {
  display: inline-block;
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-accent);
  text-decoration: none;
  border-bottom: none;
  transition: opacity var(--adj-duration) var(--adj-ease-subtle);
}

.hero-cta:hover {
  opacity: 0.7;
}

/* Section heading with // mark */
.section-heading {
  font-family: var(--adj-font-heading);
  font-size: var(--adj-size-large);
  font-weight: 600;
  letter-spacing: -0.02em;
  margin-top: var(--adj-space-xl);
  margin-bottom: var(--adj-space-base);
}

.section-mark {
  font-family: var(--adj-font-heading);
  font-weight: 700;
  color: var(--adj-accent);
  margin-right: 0.3em;
}

/* Browse all link */
.browse-all-link {
  font-family: var(--adj-font-mono);
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: var(--adj-space-l);
}

/* Primary nav link */
.primary-nav-link {
  color: var(--adj-ink);
  text-decoration: none;
  font-weight: 500;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.primary-nav-link:hover {
  color: var(--adj-accent);
}

/* Header flex layout */
.masthead-row {
  display: flex;
  align-items: center;
}

.primary-nav-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--adj-space-s);
  padding-top: var(--adj-space-xs);
  margin-top: 0.4rem;
}

.nav-left {
  display: flex;
  align-items: center;
  gap: var(--adj-space-s);
  font-family: var(--adj-font-mono);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.utility-nav {
  display: flex;
  align-items: center;
  gap: var(--adj-space-l);
}

.util-nav-link {
  font-family: var(--adj-font-mono);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-ink-50);
  text-decoration: none;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.util-nav-link:hover {
  color: var(--adj-ink);
}

/* Footer */
.site-footer {
  max-width: 1080px;
  margin: 0 auto;
  padding: var(--adj-space-xl);
  border-top: 1px solid var(--adj-border-default);
}

.footer-social {
  font-family: var(--adj-font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-ink-50);
  margin-bottom: var(--adj-space-s);
}

.footer-social a {
  color: var(--adj-ink-50);
  text-decoration: none;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.footer-social a:hover {
  color: var(--adj-ink);
}

.footer-copyright {
  font-family: var(--adj-font-mono);
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-ink-30);
}

.footer-copyright a {
  color: var(--adj-ink-30);
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

button {
  font: inherit;
}

/* ==========================================================================
   3. Site Header
   ========================================================================== */

.site-header {
  border-bottom: 1px solid var(--adj-border-default);
  background: var(--adj-bg-raised);
  padding: var(--adj-space-m) var(--adj-space-xl) var(--adj-space-s);
}


.masthead-row {
  align-items: center;
}

/* Adjacent logo — flex row: SVG mark + wordmark span */
.adjacent-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  text-decoration: none;
  color: var(--adj-ink);
  transition: opacity var(--adj-duration) var(--adj-ease-subtle);
}

.adjacent-logo:hover {
  opacity: 0.7;
}

.logo-mark {
  width: 26px;
  height: 29px;
  color: currentColor;
  flex-shrink: 0;
}

.logo-wordmark {
  font-family: var(--adj-font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--adj-ink);
}

/* Utility nav — About, Subscribe, RSS links + search/theme toggles */
.utility-nav {
  gap: var(--adj-space-l);
}

.utility-nav p {
  font-size: 0.7rem !important;
}

.utility-nav a {
  color: var(--adj-ink-50);
  text-decoration: none;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.utility-nav a:hover {
  color: var(--adj-ink);
}

/* Active nav link — highlighted on current page */
.primary-nav-link.is-current {
  font-weight: 700;
  color: var(--adj-ink);
}

.primary-nav-link:not(.is-current) {
  color: var(--adj-ink-50);
}

/* Search & theme toggle buttons */
.search-toggle-wrap,
.theme-toggle-wrap {
  margin: 0;
}

.search-toggle,
.theme-toggle {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--adj-ink-50);
  padding: 0.2em;
  line-height: 1;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.search-toggle:hover,
.theme-toggle:hover {
  color: var(--adj-ink);
}

/* Search bar — hidden by default, slides in */
.search-bar {
  border-top: 1px solid var(--adj-rule);
  border-bottom: 1px solid var(--adj-rule);
  padding: var(--adj-space-m) 0;
  margin-top: var(--adj-space-m);
}

.search-bar[hidden] {
  display: none;
}

.search-form {
  display: flex;
  align-items: center;
  gap: var(--adj-space-s);
}

.search-input {
  font-family: var(--adj-font-mono);
  font-size: 0.8rem;
  width: 100%;
  border: none;
  background: transparent;
  color: var(--adj-ink);
  padding: var(--adj-space-s) 0;
  outline: none;
}

.search-input::placeholder {
  color: var(--adj-ink-30);
}

.search-submit {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1rem;
  color: var(--adj-ink-50);
  padding: var(--adj-space-s);
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.search-submit:hover {
  color: var(--adj-ink);
}

/* Primary nav row — tagline + "// Brief / Signals" */
.primary-nav-row {
  gap: var(--adj-space-s);
  padding-top: var(--adj-space-xs);
}

.primary-nav-row p {
  font-size: 0.75rem !important;
}

.site-description {
  color: var(--adj-ink-50);
  margin: 0;
}

.nav-sep {
  color: var(--adj-ink-30);
  margin: 0;
  user-select: none;
}

.primary-nav-link {
  color: var(--adj-ink);
  text-decoration: none;
  font-weight: 500;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.primary-nav-link:hover {
  color: var(--adj-accent);
}

/* Header nav — 6 theme navigation items with colored dots */
.header-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  padding-top: var(--adj-space-xs);
  border-top: 1px solid var(--adj-border-subtle);
  margin-top: var(--adj-space-xs);
}

.header-nav > a {
  flex: 0 0 33.333%;
  font-family: var(--adj-font-mono);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.2em 0;
}

.theme-nav-dot {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  margin-right: 0.4em;
  vertical-align: middle;
}

.theme-nav {
  position: relative;
  padding-left: 0.75em;
  color: var(--adj-ink-50);
  text-decoration: none;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.theme-nav:hover {
  color: var(--adj-ink);
}

.theme-nav.is-current {
  font-weight: 700;
  color: var(--adj-ink);
}

html[data-theme="dark"] .theme-nav.is-current {
  color: #f0f0f0;
}

.theme-nav::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
}

.theme-nav[data-theme-color="consumer"]::before  { background: var(--adj-consumer); }
.theme-nav[data-theme-color="ai"]::before         { background: var(--adj-ai); }
.theme-nav[data-theme-color="commerce"]::before   { background: var(--adj-commerce); }
.theme-nav[data-theme-color="culture"]::before    { background: var(--adj-culture); }
.theme-nav[data-theme-color="connected"]::before  { background: var(--adj-connected); }
.theme-nav[data-theme-color="brand"]::before      { background: var(--adj-brand); }

/* ==========================================================================
   4. Content & Typography
   ========================================================================== */

/* Post content styling */
.gh-content p {
  margin-bottom: 1.4em;
  line-height: 1.65;
}

.gh-content h2,
.gh-content h3 {
  margin-top: 2em;
  margin-bottom: 0.5em;
}

.gh-content ul,
.gh-content ol {
  padding-left: 1.5em;
  margin-bottom: 1.4em;
}

.gh-content li {
  margin-bottom: 0.4em;
  line-height: 1.6;
}

.gh-content blockquote {
  margin: 1.5em 0;
  padding-left: var(--adj-space-l);
  border-left: 2px solid var(--adj-rule);
  color: var(--adj-ink-80);
  font-style: italic;
}

.gh-content a {
  color: var(--adj-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--adj-ink-15);
  transition: color var(--adj-duration) var(--adj-ease-subtle),
              border-color var(--adj-duration) var(--adj-ease-subtle);
}

.gh-content a:hover {
  color: var(--adj-accent);
  border-bottom-color: var(--adj-accent);
}

.gh-content img {
  margin: 1.5em 0;
  border-radius: 2px;
}

.gh-content code {
  font-family: var(--adj-font-mono);
  font-size: 0.85em;
  background: var(--adj-surface);
  padding: 0.15em 0.35em;
  border-radius: 3px;
}

.gh-content pre {
  background: var(--adj-surface);
  padding: var(--adj-space-l);
  border-radius: 3px;
  overflow-x: auto;
  font-size: 0.85rem;
  line-height: 1.5;
}

.gh-content pre code {
  background: none;
  padding: 0;
}

/* Colophon — generation metadata line at end of briefs */
.gh-content hr + p em,
.gh-content p:last-of-type em:only-child {
  display: block;
  font-size: 0.75rem;
  font-family: var(--adj-font-mono);
  color: var(--adj-ink-30);
  letter-spacing: 0.02em;
  font-style: normal;
}

/* External link indicator on post content */
.gh-content a[target="_blank"]::after {
  content: " \2197";
  font-size: 0.7em;
  opacity: 0.5;
}

/* Single post header */
.single-post-header {
  margin-bottom: var(--adj-space-l);
  padding-top: var(--adj-space-xl);
}

/* Banner theme badge — show only first, pill style */
.banner-theme {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  font-family: var(--adj-font-mono);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--adj-text-secondary);
  border: 1px solid var(--adj-border-default);
  padding: 0.25em 0.6em;
  border-radius: 100px;
  margin-bottom: var(--adj-space-s);
}

/* Only show first banner-theme when multiple exist */
.banner-theme ~ .banner-theme {
  display: none;
}

.banner-theme .theme-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  display: inline-block;
}

/* Signal detail tags — pill style */
.signal-detail-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em;
  margin-top: var(--adj-space-l);
  padding-top: var(--adj-space-l);
  border-top: 1px solid var(--adj-border-subtle);
}

.signal-detail-tags a {
  font-family: var(--adj-font-mono);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-text-tertiary);
  text-decoration: none;
  border: 1px solid var(--adj-border-default);
  padding: 0.2em 0.5em;
  border-radius: 100px;
  transition: color var(--adj-duration) var(--adj-ease-subtle),
              border-color var(--adj-duration) var(--adj-ease-subtle);
}

.signal-detail-tags a:hover {
  color: var(--adj-accent);
  border-color: var(--adj-accent);
}

/* Post navigation — hide when empty */
.post-navigation:empty,
.post-navigation:not(:has(a)) {
  display: none;
}

.post-navigation {
  display: flex;
  justify-content: space-between;
  margin-top: var(--adj-space-xl);
  padding-top: var(--adj-space-l);
  border-top: 1px solid var(--adj-border-subtle);
}

.post-nav-link {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-text-secondary);
  text-decoration: none;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.post-nav-link:hover {
  color: var(--adj-accent);
}

/* Theme color mapping for single signal posts */
.has-theme--consumer  { --theme-color: var(--adj-consumer); }
.has-theme--ai        { --theme-color: var(--adj-ai); }
.has-theme--commerce  { --theme-color: var(--adj-commerce); }
.has-theme--culture   { --theme-color: var(--adj-culture); }
.has-theme--connected { --theme-color: var(--adj-connected); }
.has-theme--brand     { --theme-color: var(--adj-brand); }

/* Theme-colored dot next to the date */
.is-signal .post-meta {
  display: flex;
  align-items: center;
  gap: 0.5em;
}

.is-signal .post-meta::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--theme-color, var(--adj-accent));
  flex-shrink: 0;
}

/* Post meta (date) — used on single + homepage featured brief */
.post-meta {
  font-family: var(--adj-font-mono);
  font-size: var(--adj-size-small);
  color: var(--adj-text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* ==========================================================================
   5. Tag Pills — .post-tags
   ========================================================================== */

.post-tags {
  font-size: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em;
}

.post-tags a {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-ink-50);
  text-decoration: none;
  border: 1px solid var(--adj-border-default);
  padding: 0.2em 0.5em;
  border-radius: 100px;
  display: inline-block;
  line-height: 1.4;
  transition: color var(--adj-duration) var(--adj-ease-subtle),
              border-color var(--adj-duration) var(--adj-ease-subtle);
}

.post-tags a:hover {
  color: var(--adj-accent);
  border-color: var(--adj-accent);
}

/* ==========================================================================
   6. Featured Brief (homepage)
   ========================================================================== */

.featured-brief {
  background: var(--adj-bg-raised);
  border: 1px solid var(--adj-border-default);
  border-radius: var(--adj-radius-l);
  padding: var(--adj-space-xl) var(--adj-space-xl) var(--adj-space-xl);
  margin-bottom: var(--adj-space-xl);
  box-shadow: var(--adj-shadow-card);
  transition: border-color var(--adj-duration) var(--adj-ease);
}

.featured-brief:hover {
  border-color: var(--adj-border-strong);
}

.featured-brief .post-title {
  font-size: var(--adj-size-xx-large);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.featured-brief .post-title a {
  color: var(--adj-ink);
  text-decoration: none;
  border-bottom: none;
}

.featured-brief .post-title a:hover {
  color: var(--adj-accent);
}

.featured-brief .post-excerpt {
  color: var(--adj-ink-80);
}

.read-more-link {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-accent);
  text-decoration: none;
  border-bottom: none;
  transition: opacity var(--adj-duration) var(--adj-ease-subtle);
}

.read-more-link:hover {
  opacity: 0.7;
}

/* ==========================================================================
   7. Subscribe Section (homepage)
   ========================================================================== */

.subscribe-section {
  border-top: 1px solid var(--adj-rule);
  padding-top: var(--adj-space-xl);
}

.subscribe-section h4 {
  font-weight: 700 !important;
  color: var(--adj-ink) !important;
}

.adjacent-subscribe {
  display: flex;
  gap: var(--adj-space-s);
  align-items: stretch;
  margin-top: var(--adj-space-base);
}

.subscribe-input {
  font-family: var(--adj-font-mono);
  font-size: 0.8rem;
  border: 1px solid var(--adj-border-default);
  border-radius: var(--adj-radius-s);
  padding: 0.6em 0.8em;
  background: var(--adj-bg-inset);
  color: var(--adj-ink);
  flex: 1;
  min-width: 0;
  outline: none;
  transition: border-color var(--adj-duration) var(--adj-ease-subtle);
}

.subscribe-input:focus {
  border-color: var(--adj-accent);
}

.subscribe-input::placeholder {
  color: var(--adj-ink-30);
}

.subscribe-btn {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: var(--adj-ink);
  color: var(--adj-bg);
  border: none;
  padding: 0.7em 1.5em;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--adj-duration) var(--adj-ease-subtle);
}

.subscribe-btn:hover {
  background: #000;
}

.subscribe-btn:disabled {
  opacity: 0.5;
  cursor: wait;
}

.subscribe-confirmation {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  color: var(--adj-accent);
  margin-top: var(--adj-space-base);
  letter-spacing: 0.02em;
}

/* ==========================================================================
   8. Signals Section (homepage)
   ========================================================================== */

.signals-section {
  border-top: 1px solid var(--adj-rule);
  padding-top: var(--adj-space-xl);
}

.homepage-signals {
  list-style: none;
  padding: 0;
  margin: 0;
}

.homepage-signal-item {
  padding: var(--adj-space-m) 0;
  border-bottom: 1px solid var(--adj-ink-15);
  transition: background var(--adj-duration) var(--adj-ease-subtle);
}

.homepage-signal-item:last-child {
  border-bottom: none;
}

.homepage-signal-item:hover {
  background: var(--adj-ink-05);
}

.homepage-signal-item h3 {
  margin: 0;
}

.homepage-signal-item h3 a {
  color: var(--adj-ink);
  text-decoration: none;
  border-bottom: none;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.homepage-signal-item h3 a:hover {
  color: var(--adj-accent);
}

/* "Browse all signals" link at bottom of signals section */
.signals-section > .group > p:last-child .primary-nav-link {
  font-size: 0.75rem;
}

/* ==========================================================================
   9. Signal Cards (Signals Library — rendered by shortcode)
   ========================================================================== */

.signal-card {
  position: relative;
  background: var(--adj-bg-raised);
  border: 1px solid var(--adj-border-default);
  border-radius: var(--adj-radius-m);
  padding: var(--adj-space-l);
  margin-bottom: var(--adj-space-base);
  box-shadow: var(--adj-shadow-card);
  transition: border-color var(--adj-duration) var(--adj-ease),
              box-shadow var(--adj-duration) var(--adj-ease),
              transform var(--adj-duration) var(--adj-ease);
  cursor: pointer;
}

.signal-source {
  display: flex;
  align-items: center;
  gap: 0.4em;
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  color: var(--adj-text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.3em;
}

.theme-dot {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
}

.signal-headline {
  font-family: var(--adj-font-heading);
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 0;
}

.signal-headline a {
  color: var(--adj-ink);
  text-decoration: none;
  border-bottom: none;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

/* v3 card hover — elevated */
.signal-card:hover {
  border-color: var(--adj-border-strong);
  box-shadow: var(--adj-shadow-card-hover);
  transform: translateY(-1px);
}

html[data-theme="dark"] .signal-card:hover {
  border-color: rgba(255, 255, 255, 0.12);
}

/* Theme-colored headline on hover/reveal */
.signal-card[data-theme="consumer"]:hover .signal-headline a,
.signal-card[data-theme="consumer"].is-revealed .signal-headline a { color: var(--adj-consumer); }
.signal-card[data-theme="ai"]:hover .signal-headline a,
.signal-card[data-theme="ai"].is-revealed .signal-headline a { color: var(--adj-ai); }
.signal-card[data-theme="commerce"]:hover .signal-headline a,
.signal-card[data-theme="commerce"].is-revealed .signal-headline a { color: var(--adj-commerce); }
.signal-card[data-theme="culture"]:hover .signal-headline a,
.signal-card[data-theme="culture"].is-revealed .signal-headline a { color: var(--adj-culture); }
.signal-card[data-theme="connected"]:hover .signal-headline a,
.signal-card[data-theme="connected"].is-revealed .signal-headline a { color: var(--adj-connected); }
.signal-card[data-theme="brand"]:hover .signal-headline a,
.signal-card[data-theme="brand"].is-revealed .signal-headline a { color: var(--adj-brand); }

/* Reveal layer — hidden by default, shown on hover/click */
.signal-reveal {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height var(--adj-duration-slow) var(--adj-ease),
              opacity var(--adj-duration) var(--adj-ease);
}

.signal-card.is-revealed .signal-reveal {
  max-height: 40em;
  opacity: 1;
  padding-top: var(--adj-space-s);
}

.signal-image-wrap {
  margin-bottom: var(--adj-space-s);
  overflow: hidden;
  border-radius: 3px;
  max-width: 280px;
}

.signal-image-wrap .signal-image {
  width: 100%;
  height: auto;
  display: block;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity var(--adj-duration-slow) var(--adj-ease),
              transform var(--adj-duration-slow) var(--adj-ease);
}

.signal-card.is-revealed .signal-image-wrap .signal-image {
  opacity: 1;
  transform: translateY(0);
}

.signal-favicon-wrap {
  display: flex;
  align-items: center;
  gap: 0.5em;
  margin-bottom: var(--adj-space-s);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity var(--adj-duration-slow) var(--adj-ease),
              transform var(--adj-duration-slow) var(--adj-ease);
}

.signal-card.is-revealed .signal-favicon-wrap {
  opacity: 1;
  transform: translateY(0);
}

.signal-favicon {
  border-radius: 4px;
  flex-shrink: 0;
}

.signal-favicon-domain {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  color: var(--adj-ink-30);
  letter-spacing: 0.02em;
}

.signal-annotation {
  font-size: 0.85rem;
  color: var(--adj-ink-80);
  line-height: 1.5;
  margin: 0 0 var(--adj-space-s) 0;
}

.signal-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3em;
}

.signal-tag {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-ink-50);
  text-decoration: none;
  border: 1px solid var(--adj-border-default);
  padding: 0.15em 0.5em;
  border-radius: 100px;
  transition: color var(--adj-duration-fast) var(--adj-ease-subtle),
              border-color var(--adj-duration-fast) var(--adj-ease-subtle);
}

.signal-tag:hover {
  color: var(--adj-accent);
  border-color: var(--adj-accent);
}

/* ==========================================================================
   10. Signals Library (filter bar, count, stream, pagination)
   ========================================================================== */

.signals-library {
  margin-top: var(--adj-space-l);
}

/* Section heading (// Latest Signals) */
.section-heading {
  font-family: var(--adj-font-heading);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 var(--adj-space-base);
}

.section-heading .section-mark {
  color: var(--adj-ink-15);
  margin-right: 0.3em;
}

.signals-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--adj-space-s);
  margin-bottom: var(--adj-space-base);
}

.filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  font-family: var(--adj-font-mono);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: none;
  border: 1px solid var(--adj-border-default);
  color: var(--adj-text-secondary);
  padding: 0.4em 0.8em;
  border-radius: 100px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  white-space: nowrap;
  transition: color var(--adj-duration-fast) var(--adj-ease-subtle),
              border-color var(--adj-duration-fast) var(--adj-ease-subtle),
              background var(--adj-duration-fast) var(--adj-ease-subtle);
}

.filter-btn .theme-dot {
  width: 6px;
  height: 6px;
  flex-shrink: 0;
}

.filter-btn:hover {
  color: var(--adj-text-primary);
  border-color: var(--adj-border-strong);
}

.filter-btn.is-active {
  color: var(--adj-accent);
  border-color: var(--adj-accent);
  background: var(--adj-accent-10);
}

.signals-count {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  color: var(--adj-ink-50);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--adj-space-base);
}

.count-num {
  color: var(--adj-ink);
  font-weight: 600;
}

.signals-stream {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--adj-space-s);
}

/* Smaller, tighter cards in the signals library */
.signals-stream .signal-card {
  padding: var(--adj-space-m) var(--adj-space-base);
  display: flex;
  flex-direction: column;
}


.signals-stream .signal-headline {
  font-size: 0.92rem;
  line-height: 1.25;
}

/* Hide reveal layer entirely on signals library — compact cards only */
.signals-stream .signal-reveal {
  display: none;
}

/* Tags always visible at top */
.signals-stream .signal-tags {
  display: flex;
  gap: 0.3rem;
  flex-wrap: wrap;
  margin-bottom: var(--adj-space-xs);
}

@media (max-width: 900px) {
  .signals-stream {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .signals-stream {
    grid-template-columns: 1fr;
  }
}

/* Card visibility states for filtering */
.signal-card.is-hidden {
  display: none !important;
}

/* Homepage grid: hide parent <li> when card is hidden */
.signals-grid > li:has(.signal-card.is-hidden) {
  display: none;
}

.signal-card.is-entering {
  animation: signalEnter var(--adj-duration) var(--adj-ease) both;
}

@keyframes signalEnter {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Pagination */
.signals-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--adj-space-base) 0;
  border-top: 1px solid var(--adj-ink-10);
  margin-top: var(--adj-space-base);
}

.page-info {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  color: var(--adj-ink-50);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.page-info .current-range {
  color: var(--adj-ink);
  font-weight: 600;
}

.page-controls {
  display: flex;
  gap: 0.25em;
}

.page-btn {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  background: none;
  border: 1px solid var(--adj-ink-15);
  color: var(--adj-ink-50);
  padding: 0.25em 0.5em;
  border-radius: 2px;
  cursor: pointer;
  transition: color var(--adj-duration-fast) var(--adj-ease-subtle),
              border-color var(--adj-duration-fast) var(--adj-ease-subtle),
              background var(--adj-duration-fast) var(--adj-ease-subtle);
}

.page-btn:hover {
  color: var(--adj-ink);
  border-color: var(--adj-ink-30);
}

.page-btn.is-active {
  color: var(--adj-ink);
  border-color: var(--adj-ink);
  background: var(--adj-ink-05);
}

.page-btn.disabled {
  opacity: 0.3;
  cursor: default;
  pointer-events: none;
}

.page-btn.page-arrow {
  font-size: 0.7rem;
  padding: 0.2em 0.4em;
}

.page-ellipsis {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  color: var(--adj-ink-30);
  padding: 0 0.15em;
}

.page-controls {
  flex-wrap: wrap;
}

/* ==========================================================================
   10b. Read View (Brief Template)
   ========================================================================== */

.read-view {
  max-width: 780px;
  margin: 0 auto;
  padding: 3rem clamp(1.5rem, 5vw, 3rem) 4rem;
}

.read-brief-content {
  max-width: 780px;
  margin: 0 auto;
  padding: 0 clamp(1.5rem, 5vw, 3rem) 4rem;
}

/* Hide pipeline digest-image from brief */
.read-brief-content .digest-image {
  display: none;
}

.read-masthead {
  text-align: left !important;
  padding: 2.5rem 0 1.5rem;
  margin-bottom: 0;
  border-bottom: none;
}

.read-masthead .brand {
  color: var(--adj-ink-30);
  margin-bottom: 1.5rem;
}

.read-masthead .post-title,
.read-masthead h1 {
  font-size: clamp(2rem, 5vw, 2.8rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.1 !important;
  margin-bottom: 0.5rem !important;
  text-align: left !important;
}

.read-masthead .read-date,
.read-masthead .date {
  font-size: 0.7rem !important;
  color: var(--adj-ink-30) !important;
  margin-top: 0.5rem;
  text-align: left !important;
}

/* Meta bar — left-aligned for v3 */
.read-meta {
  justify-content: flex-start !important;
}

/* Sticky brief heading on scroll */
.brief-sticky-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: var(--adj-bg);
  border-bottom: 1px solid var(--adj-border-subtle);
  padding: 0.6rem clamp(1.5rem, 5vw, 3rem);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  transform: translateY(-100%);
  transition: transform 0.25s var(--adj-ease);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.brief-sticky-bar.is-visible {
  transform: translateY(0);
}

.brief-sticky-bar .sticky-dots {
  display: flex;
  gap: 3px;
}

.brief-sticky-bar .sticky-dots .dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
}

.brief-sticky-bar .sticky-title {
  font-family: var(--adj-font-heading);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--adj-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.brief-sticky-bar .sticky-section {
  font-family: var(--adj-font-mono);
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--adj-ink-50);
  margin-left: auto;
  white-space: nowrap;
}

/* Theme Section Headers — colored rules */
.theme-section {
  margin-bottom: 3rem;
}

.theme-section-header {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 1.25rem;
  padding-bottom: 0.5rem;
}

.theme-section-header .theme-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.theme-section-header .theme-rule {
  flex: 1;
  height: 2px;
}

.theme-section-header h2 {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--adj-ink-50);
  margin: 0;
  white-space: nowrap;
}

.theme-section p a {
  color: var(--theme-color, var(--adj-accent));
  text-decoration: none;
  border-bottom: 1px solid color-mix(in srgb, var(--theme-color, var(--adj-accent)) 30%, transparent);
  transition: border-color 0.15s var(--adj-ease);
}

.theme-section p a:hover {
  border-color: var(--theme-color, var(--adj-accent));
}

/* Brief theme headings from pipeline (h3.theme-*) */
.read-brief-content h3[class*="theme-"] {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 2.5rem 0 1rem;
  padding-bottom: 0.5rem;
}

.read-brief-content h3.theme-ai { border-bottom: 2px solid var(--adj-ai); color: var(--adj-ai); }
.read-brief-content h3.theme-consumer { border-bottom: 2px solid var(--adj-consumer); color: var(--adj-consumer); }
.read-brief-content h3.theme-commerce { border-bottom: 2px solid var(--adj-commerce); color: var(--adj-commerce); }
.read-brief-content h3.theme-culture { border-bottom: 2px solid var(--adj-culture); color: var(--adj-culture); }
.read-brief-content h3.theme-connected { border-bottom: 2px solid var(--adj-connected); color: var(--adj-connected); }
.read-brief-content h3.theme-brand { border-bottom: 2px solid var(--adj-brand); color: var(--adj-brand); }

.read-brief-content h3[class*="theme-"] a {
  color: inherit;
  text-decoration: none;
}

/* Signal Callout */
.signal-callout {
  width: 200px;
  flex-shrink: 0;
  padding: 0.85rem;
  border: none;
  background: color-mix(in srgb, var(--theme-color, var(--adj-accent)) 7%, var(--adj-bg));
  transition: background 0.2s var(--adj-ease);
}

.signal-callout:hover {
  background: color-mix(in srgb, var(--theme-color, var(--adj-accent)) 12%, var(--adj-bg));
}

.signal-callout .callout-label {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--theme-color, var(--adj-accent));
  margin-bottom: 0.4rem;
  opacity: 0.7;
}

.signal-callout .callout-title {
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.25;
  margin: 0;
}

.signal-callout .callout-title a {
  color: var(--adj-ink);
  text-decoration: none;
}

.signal-callout .callout-title a:hover {
  color: var(--theme-color, var(--adj-accent));
}

/* TL;DR Block */
.read-tldr {
  margin-bottom: 2.5rem;
  padding: 1.5rem;
  background: var(--adj-bg-sunken);
  border-left: 4px solid var(--adj-accent);
}

.read-tldr .tldr-label {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--adj-accent);
  margin-bottom: 0.5rem;
}

.read-tldr p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--adj-ink-80);
}

/* Worth Reading */
.worth-reading {
  margin-bottom: 3rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--adj-border-default);
}

.worth-reading h3 {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--adj-ink-50);
  margin: 0 0 0.75rem;
}

.worth-reading ol {
  margin: 0;
  padding-left: 1.25rem;
}

.worth-reading li {
  margin-bottom: 0.4rem;
  font-size: 0.92rem;
  line-height: 1.45;
}

.worth-reading li a {
  color: var(--adj-ink);
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid var(--adj-border-subtle);
  transition: all 0.15s var(--adj-ease);
}

.worth-reading li a:hover {
  color: var(--adj-accent);
  border-color: var(--adj-accent);
}

/* Colophon */
.read-colophon {
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--adj-border-default);
  text-align: center;
}

.read-colophon .mark {
  font-weight: 300;
  color: var(--adj-ink-15);
  margin-bottom: 0.5rem;
}

.read-colophon .colophon-meta a {
  color: var(--adj-accent);
  text-decoration: none;
}

/* ==========================================================================
   11. Post Navigation (single posts)
   ========================================================================== */

.post-navigation {
  padding: 0 0;
  border-top: 1px solid var(--adj-rule);
  padding-top: var(--adj-space-l);
}

.post-navigation .post-nav-link a {
  font-family: var(--adj-font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--adj-ink-50);
  text-decoration: none;
  border-bottom: none !important;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.post-navigation .post-nav-link a:hover {
  color: var(--adj-accent) !important;
}

/* ==========================================================================
   12. Tag / Search / Theme Archive Items
   ========================================================================== */

/* Shared archive page styles */
.tag-archive-page,
.search-results-page {
  padding-bottom: var(--adj-space-xl);
}

.tag-archive-meta {
  color: var(--adj-ink-50);
  margin-bottom: var(--adj-space-l);
}

/* Remove post template list styling */
.tag-results-list {
  list-style: none !important;
  padding-left: 0 !important;
}

.tag-results-list > li {
  list-style: none !important;
  padding-left: 0 !important;
}

/* Result items — shared between tag, search, and theme archives */
.tag-result-item,
.search-result-item {
  background: var(--adj-bg-raised);
  border: 1px solid var(--adj-border-default);
  border-radius: var(--adj-radius-m);
  padding: var(--adj-space-l);
  margin-bottom: var(--adj-space-base);
  box-shadow: var(--adj-shadow-card);
  transition: border-color var(--adj-duration) var(--adj-ease),
              box-shadow var(--adj-duration) var(--adj-ease),
              transform var(--adj-duration) var(--adj-ease);
}

.tag-result-item:hover,
.search-result-item:hover {
  border-color: var(--adj-border-strong);
  box-shadow: var(--adj-shadow-card-hover);
  transform: translateY(-1px);
}

.tag-result-item:last-child,
.search-result-item:last-child {
  /* no longer needed but keep for specificity */
}

.tag-result-item h3,
.search-result-item h3 {
  margin: 0.15em 0 0.3em;
}

.tag-result-item h3 a,
.search-result-item h3 a {
  color: var(--adj-ink);
  text-decoration: none;
  border-bottom: none;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.tag-result-item h3 a:hover,
.search-result-item h3 a:hover {
  color: var(--adj-accent);
}

.tag-result-item .post-excerpt,
.search-result-item .post-excerpt {
  color: var(--adj-ink-80);
  margin: 0.2em 0 0.4em;
}

.tag-result-item .post-tags,
.search-result-item .post-tags {
  margin-top: var(--adj-space-s);
}

/* Breadcrumb navigation */
.archive-breadcrumb {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-ink-50);
  margin-bottom: var(--adj-space-base);
}

.archive-breadcrumb a {
  color: var(--adj-ink-50);
  text-decoration: none;
  border-bottom: none;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.archive-breadcrumb a:hover {
  color: var(--adj-accent);
}

.breadcrumb-sep {
  margin: 0 0.4em;
  color: var(--adj-ink-30);
}

.breadcrumb-current {
  color: var(--adj-ink);
}

/* Ghost query pagination (archive/tag/search pages) */
.gh-pagination {
  margin-top: var(--adj-space-l);
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.gh-pagination a {
  color: var(--adj-ink-50);
  text-decoration: none;
  border-bottom: none;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.gh-pagination a:hover {
  color: var(--adj-accent);
}

/* ==========================================================================
   13. Related Signals
   ========================================================================== */

.related-signals {
  border-top: 1px solid var(--adj-rule);
  padding-top: var(--adj-space-l);
  margin-top: var(--adj-space-xl);
}

.related-signals-heading {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--adj-ink-50);
  margin: 0 0 var(--adj-space-base) 0;
}

.related-signals-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.related-signal-item {
  display: flex;
  align-items: baseline;
  gap: var(--adj-space-m);
  padding: var(--adj-space-s) 0;
  border-bottom: 1px solid var(--adj-ink-10);
}

.related-signal-item:last-child {
  border-bottom: none;
}

.related-signal-date {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  color: var(--adj-ink-50);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  flex-shrink: 0;
}

.related-signal-link {
  font-family: var(--adj-font-heading);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--adj-ink);
  text-decoration: none;
  border-bottom: none !important;
  flex: 1;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.related-signal-link:hover {
  color: var(--adj-accent);
}

.related-signal-theme {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-ink-30);
  white-space: nowrap;
  flex-shrink: 0;
}

/* ==========================================================================
   14. Footer
   ========================================================================== */

.site-footer {
  border-top: 1px solid var(--adj-border-default);
  padding: var(--adj-space-m) var(--adj-space-xl);
  background: var(--adj-bg-raised);
}


.site-footer p {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  color: var(--adj-ink-50);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 0;
}

.site-footer a {
  color: var(--adj-ink-50);
  text-decoration: none;
  border-bottom: none;
  transition: color var(--adj-duration) var(--adj-ease-subtle);
}

.site-footer a:hover {
  color: var(--adj-accent);
}

/* ==========================================================================
   15. Theme Archive — color identity
   Body classes .theme-archive--{slug} injected via template.
   ========================================================================== */

/* Map theme slug to --theme-color */
.theme-archive--consumer  { --theme-color: var(--adj-consumer); }
.theme-archive--ai        { --theme-color: var(--adj-ai); }
.theme-archive--commerce  { --theme-color: var(--adj-commerce); }
.theme-archive--culture   { --theme-color: var(--adj-culture); }
.theme-archive--connected { --theme-color: var(--adj-connected); }
.theme-archive--brand     { --theme-color: var(--adj-brand); }

/* Heading — colored underline spanning content width */
.theme-archive .archive-title {
  padding-bottom: 0.4em;
  border-bottom: 3px solid var(--theme-color);
}

/* Subtitle picks up theme color */
.theme-archive .tag-archive-meta {
  color: var(--theme-color) !important;
  opacity: 0.7;
}

/* v3: theme color on card hover border */
.theme-archive .tag-result-item:hover {
  border-color: color-mix(in srgb, var(--theme-color) 40%, var(--adj-border-strong));
}

/* v3: tags at top of all list-format cards, left-aligned */
.tag-result-item,
.search-result-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}

.tag-result-item .post-tags,
.search-result-item .post-tags {
  margin: 0 0 var(--adj-space-s) 0 !important;
  align-self: flex-start;
}

/* All child elements flush left in cards */
.tag-result-item > *,
.search-result-item > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.tag-result-item .post-date,
.search-result-item .post-date {
  text-align: left;
  width: 100%;
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-text-tertiary);
}

.tag-result-item .post-title,
.search-result-item .post-title {
  text-align: left;
  width: 100%;
  font-family: var(--adj-font-heading);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

.tag-result-item .post-excerpt,
.search-result-item .post-excerpt {
  text-align: left;
  width: 100%;
  color: var(--adj-text-secondary);
  font-size: 0.9rem;
  line-height: 1.55;
}

/* Source attribution — extracted from excerpt */
.excerpt-source {
  font-family: var(--adj-font-mono);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-text-tertiary);
}

.excerpt-sep {
  font-family: var(--adj-font-heading);
  font-weight: 700;
  color: var(--adj-ink-15);
  letter-spacing: -0.05em;
  margin: 0 0.15em;
}

.tag-result-item .excerpt-text,
.search-result-item .excerpt-text {
  margin: 0;
}

/* Hover — headline in theme color */
@media (hover: hover) {
  .theme-archive .tag-result-item:hover h3 a {
    color: var(--theme-color) !important;
  }
}

/* ==========================================================================
   External link arrows — ↗ on outbound links, none on internal
   ========================================================================== */

.gh-content a[href^="http"]:not([href*="adjacent-media.ghost.io"]):not([href*="adjacent.media"])::after,
.read-brief-content a[href^="http"]:not([href*="adjacent-media.ghost.io"]):not([href*="adjacent.media"])::after {
  content: ' ↗';
  font-size: 0.75em;
  opacity: 0.5;
  text-decoration: none;
}

/* ==========================================================================
   16. Dark Mode — html[data-theme="dark"]
   ========================================================================== */

html[data-theme="dark"] {
  /* Override custom properties */
  --adj-ink: #e0e0e0;
  --adj-ink-80: rgba(224, 224, 224, 0.8);
  --adj-ink-50: rgba(224, 224, 224, 0.5);
  --adj-ink-30: rgba(224, 224, 224, 0.3);
  --adj-ink-15: rgba(224, 224, 224, 0.15);
  --adj-ink-10: rgba(224, 224, 224, 0.1);
  --adj-ink-05: rgba(224, 224, 224, 0.05);
  --adj-bg: #0c0c0c;
  --adj-surface: #161616;
  --adj-rule: #2a2a2a;
  --adj-rule-light: rgba(128, 128, 128, 0.08);
  --adj-accent: #2ea8a6;
  --adj-accent-10: rgba(46, 168, 166, 0.1);

  /* v3 Surface hierarchy — dark layered neutrals */
  --adj-bg-raised:  #161616;
  --adj-bg-sunken:  #111111;
  --adj-bg-inset:   #1e1e1e;

  /* v3 Border opacity scale — dark */
  --adj-border-subtle:  rgba(255, 255, 255, 0.04);
  --adj-border-default: rgba(255, 255, 255, 0.08);
  --adj-border-strong:  rgba(255, 255, 255, 0.14);

  /* v3 Text hierarchy — dark */
  --adj-text-primary:   #f0f0f0;
  --adj-text-secondary: #a0a0a0;
  --adj-text-tertiary:  #6a6a6a;
  --adj-text-ghost:     #444444;

  /* v3 Shadows — dark mode uses border, not shadow */
  --adj-shadow-card: none;
  --adj-shadow-card-hover: none;
}

html[data-theme="dark"] body {
  background: var(--adj-bg);
  color: #c8c8c8;
}

/* Core color overrides */
html[data-theme="dark"] .gh-content {
  color: #c8c8c8;
}

/* Headings */
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] .post-title,
html[data-theme="dark"] .post-title a,
html[data-theme="dark"] .archive-title {
  color: #f0f0f0;
}

/* Logo */
html[data-theme="dark"] .adjacent-logo {
  color: #f0f0f0;
}

html[data-theme="dark"] .logo-mark {
  color: #f0f0f0;
}

html[data-theme="dark"] .logo-wordmark {
  color: #f0f0f0;
}

/* Site header & footer borders */
html[data-theme="dark"] .site-header {
  border-bottom-color: #2a2a2a;
}

html[data-theme="dark"] .site-footer {
  border-top-color: var(--adj-border-default);
  background: var(--adj-bg-raised);
}

html[data-theme="dark"] .site-footer p,
html[data-theme="dark"] .site-footer a {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .site-footer a:hover {
  color: #2ea8a6;
}

/* Utility nav */
html[data-theme="dark"] .utility-nav a {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .utility-nav a:hover {
  color: #e0e0e0;
}

/* Search & theme toggles */
html[data-theme="dark"] .search-toggle,
html[data-theme="dark"] .theme-toggle {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .search-toggle:hover,
html[data-theme="dark"] .theme-toggle:hover {
  color: #e0e0e0;
}

/* Primary nav */
html[data-theme="dark"] .primary-nav-link {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .primary-nav-link.is-current {
  color: #f0f0f0;
}

html[data-theme="dark"] .primary-nav-link:hover {
  color: #2ea8a6;
}

html[data-theme="dark"] .site-description {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .nav-sep {
  color: rgba(224, 224, 224, 0.3);
}

/* Theme nav */
html[data-theme="dark"] .theme-nav {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .theme-nav:hover {
  color: #e0e0e0;
}

/* Search bar */
html[data-theme="dark"] .search-bar {
  border-color: var(--adj-border-default);
  background: var(--adj-bg-sunken);
}

html[data-theme="dark"] .search-input {
  color: #c8c8c8;
}

html[data-theme="dark"] .search-input::placeholder {
  color: rgba(224, 224, 224, 0.3);
}

html[data-theme="dark"] .search-submit {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .search-submit:hover {
  color: #e0e0e0;
}

/* Content links */
html[data-theme="dark"] .gh-content a {
  color: #c8c8c8;
  border-bottom-color: rgba(224, 224, 224, 0.15);
}

html[data-theme="dark"] .gh-content a:hover {
  color: #2ea8a6;
  border-bottom-color: #2ea8a6;
}

/* Blockquote */
html[data-theme="dark"] .gh-content blockquote {
  border-left-color: #2a2a2a;
  color: rgba(224, 224, 224, 0.8);
}

/* Code */
html[data-theme="dark"] .gh-content code {
  background: #141414;
}

html[data-theme="dark"] .gh-content pre {
  background: #141414;
}

/* Post meta (date) */
html[data-theme="dark"] .post-meta {
  color: rgba(224, 224, 224, 0.5);
}

/* Tag pills */
html[data-theme="dark"] .post-tags a {
  color: rgba(224, 224, 224, 0.5);
  border-color: rgba(224, 224, 224, 0.15);
}

html[data-theme="dark"] .post-tags a:hover {
  color: #2ea8a6;
  border-color: #2ea8a6;
}

/* Featured brief — v3 raised */
html[data-theme="dark"] .featured-brief {
  background: var(--adj-bg-raised);
  border-color: var(--adj-border-default);
}

html[data-theme="dark"] .featured-brief:hover {
  border-color: rgba(255, 255, 255, 0.12);
}

html[data-theme="dark"] .featured-brief .post-title a {
  color: #f0f0f0;
}

html[data-theme="dark"] .featured-brief .post-title a:hover {
  color: #2ea8a6;
}

html[data-theme="dark"] .featured-brief .post-excerpt {
  color: rgba(224, 224, 224, 0.8);
}

html[data-theme="dark"] .read-more-link {
  color: #2ea8a6;
}

/* Subscribe section */
html[data-theme="dark"] .subscribe-section {
  border-top-color: #2a2a2a;
}

html[data-theme="dark"] .subscribe-input {
  border-color: var(--adj-border-default);
  color: #c8c8c8;
  background: var(--adj-bg-inset);
}

html[data-theme="dark"] .subscribe-input::placeholder {
  color: rgba(224, 224, 224, 0.3);
}

html[data-theme="dark"] .subscribe-input:focus {
  border-color: #2ea8a6;
}

html[data-theme="dark"] .subscribe-btn {
  background: #e0e0e0;
  color: #0a0a0a;
}

html[data-theme="dark"] .subscribe-btn:hover {
  background: #fff;
}

html[data-theme="dark"] .subscribe-confirmation {
  color: #2ea8a6;
}

/* Signals section (homepage) */
html[data-theme="dark"] .signals-section {
  border-top-color: #2a2a2a;
}

html[data-theme="dark"] .homepage-signal-item {
  border-bottom-color: rgba(224, 224, 224, 0.1);
}

html[data-theme="dark"] .homepage-signal-item:hover {
  background: rgba(224, 224, 224, 0.05);
}

html[data-theme="dark"] .homepage-signal-item h3 a {
  color: #f0f0f0;
}

html[data-theme="dark"] .homepage-signal-item h3 a:hover {
  color: #2ea8a6;
}

/* Signal cards — v3 raised surface */
html[data-theme="dark"] .signal-card {
  background: var(--adj-bg-raised);
  border-color: var(--adj-border-default);
}

html[data-theme="dark"] .signal-source {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .signal-headline a {
  color: #f0f0f0;
}

html[data-theme="dark"] .signal-annotation {
  color: rgba(224, 224, 224, 0.7);
}

html[data-theme="dark"] .signal-tag {
  color: rgba(224, 224, 224, 0.5);
  border-color: rgba(224, 224, 224, 0.15);
}

html[data-theme="dark"] .signal-tag:hover {
  color: #2ea8a6;
  border-color: #2ea8a6;
}

html[data-theme="dark"] .signal-favicon-domain {
  color: rgba(224, 224, 224, 0.3);
}

/* Signals library — filter bar */
html[data-theme="dark"] .filter-btn {
  color: rgba(224, 224, 224, 0.5);
  border-color: rgba(224, 224, 224, 0.15);
}

html[data-theme="dark"] .filter-btn:hover {
  color: #e0e0e0;
  border-color: rgba(224, 224, 224, 0.3);
}

html[data-theme="dark"] .filter-btn.is-active {
  color: #e0e0e0;
  border-color: #e0e0e0;
  background: rgba(224, 224, 224, 0.05);
}

html[data-theme="dark"] .signals-count {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .count-num {
  color: #e0e0e0;
}

/* Pagination */
html[data-theme="dark"] .signals-pagination {
  border-top-color: rgba(224, 224, 224, 0.08);
}

html[data-theme="dark"] .page-info {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .page-info .current-range {
  color: #e0e0e0;
}

html[data-theme="dark"] .page-btn {
  color: rgba(224, 224, 224, 0.5);
  border-color: rgba(224, 224, 224, 0.15);
}

html[data-theme="dark"] .page-btn:hover {
  color: #e0e0e0;
  border-color: rgba(224, 224, 224, 0.3);
}

html[data-theme="dark"] .page-btn.is-active {
  color: #e0e0e0;
  border-color: #e0e0e0;
  background: rgba(224, 224, 224, 0.05);
}

/* Post navigation */
html[data-theme="dark"] .post-navigation {
  border-top-color: #2a2a2a;
}

html[data-theme="dark"] .post-navigation .post-nav-link a {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .post-navigation .post-nav-link a:hover {
  color: #2ea8a6 !important;
}

/* Archive result items — v3 raised */
html[data-theme="dark"] .tag-result-item,
html[data-theme="dark"] .search-result-item {
  background: var(--adj-bg-raised);
  border-color: var(--adj-border-default);
}

html[data-theme="dark"] .tag-result-item:hover,
html[data-theme="dark"] .search-result-item:hover {
  border-color: rgba(255, 255, 255, 0.12);
}

html[data-theme="dark"] .tag-result-item h3 a,
html[data-theme="dark"] .search-result-item h3 a {
  color: #f0f0f0;
}

html[data-theme="dark"] .tag-result-item h3 a:hover,
html[data-theme="dark"] .search-result-item h3 a:hover {
  color: #2ea8a6;
}

html[data-theme="dark"] .tag-result-item .post-excerpt,
html[data-theme="dark"] .search-result-item .post-excerpt {
  color: rgba(224, 224, 224, 0.7);
}

html[data-theme="dark"] .tag-archive-meta {
  color: rgba(224, 224, 224, 0.5);
}

/* Breadcrumb */
html[data-theme="dark"] .archive-breadcrumb {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .archive-breadcrumb a {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .archive-breadcrumb a:hover {
  color: #2ea8a6;
}

html[data-theme="dark"] .breadcrumb-sep {
  color: rgba(224, 224, 224, 0.3);
}

html[data-theme="dark"] .breadcrumb-current {
  color: #e0e0e0;
}

/* Related signals */
html[data-theme="dark"] .related-signals {
  border-top-color: #2a2a2a;
}

html[data-theme="dark"] .related-signals-heading {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .related-signal-item {
  border-bottom-color: rgba(224, 224, 224, 0.08);
}

html[data-theme="dark"] .related-signal-date {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .related-signal-link {
  color: #f0f0f0;
}

html[data-theme="dark"] .related-signal-link:hover {
  color: #2ea8a6;
}

html[data-theme="dark"] .related-signal-theme {
  color: rgba(224, 224, 224, 0.3);
}

/* Ghost query pagination in dark mode */
html[data-theme="dark"] .gh-pagination a {
  color: rgba(224, 224, 224, 0.5);
}

html[data-theme="dark"] .gh-pagination a:hover {
  color: #2ea8a6;
}

/* ==========================================================================
   16b. About Page — brand mark list markers
   ========================================================================== */

.page-about .gh-content ul {
  list-style: none;
  padding-left: 1.5em;
}

.page-about .gh-content ul li {
  position: relative;
}

.page-about .gh-content ul li::before {
  content: '//';
  position: absolute;
  left: -1.5em;
  font-family: var(--adj-font-heading);
  font-weight: 700;
  font-size: 0.75em;
  color: var(--adj-ink-30);
  letter-spacing: -0.05em;
}

/* Lead sentence — prevent orphaned words on mobile */
.page-about .gh-content > p:first-child {
  text-wrap: balance;
}

/* ==========================================================================
   17. Tablet Responsive — @media (max-width: 900px)
   ========================================================================== */

@media (max-width: 900px) {
  .site-header {
    padding: var(--adj-space-base) var(--adj-space-l) var(--adj-space-m);
  }

  .utility-nav {
    gap: var(--adj-space-base);
  }

}

/* ==========================================================================
   18. Mobile Responsive — @media (max-width: 600px)
   ========================================================================== */

@media (max-width: 600px) {
  /* Override type sizes for mobile readability */
  :root {
    --adj-size-medium: 1.1rem;
    --adj-size-meta: 0.95rem;
    --adj-size-small: 0.85rem;
  }

  .site-header {
    padding: var(--adj-space-base) var(--adj-space-base) var(--adj-space-m);
  }

  .masthead-row {
    gap: var(--adj-space-s);
  }

  /* Utility nav — larger tap targets */
  .utility-nav {
    gap: var(--adj-space-m);
  }

  .utility-nav p {
    font-size: 0.75rem !important;
  }

  .utility-nav a {
    padding: 0.3em 0;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  .search-toggle,
  .theme-toggle {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  /* Primary nav row — same size as theme nav */
  .primary-nav-row p {
    font-size: 0.75rem !important;
  }

  /* Theme nav — larger text + tap targets */
  .header-nav {
    gap: var(--adj-space-s) 0;
  }

  .header-nav > p {
    flex: 0 0 50%;
  }

  .header-nav p {
    font-size: 0.75rem !important;
  }

  .theme-nav {
    padding: 0.3em 0 0.3em 0.75em;
    display: inline-block;
  }

  /* Subscribe form */
  .adjacent-subscribe {
    flex-direction: column;
  }

  .subscribe-input {
    font-size: 0.9rem;
    padding: 0.8em;
  }

  .subscribe-btn {
    width: 100%;
    text-align: center;
    font-size: 0.75rem;
    padding: 0.9em;
  }

  /* Signal cards — larger text */
  .signal-source {
    font-size: 0.75rem;
  }

  .signal-headline {
    font-size: 1.05rem;
  }

  .signal-annotation {
    font-size: 0.95rem;
    line-height: 1.6;
  }

  /* Tag pills — larger and more tappable */
  .post-tags a,
  .signal-tag {
    font-size: 0.75rem !important;
    padding: 0.35em 0.6em !important;
    min-height: 32px;
    display: inline-flex;
    align-items: center;
  }

  .post-tags {
    gap: 0.5em;
  }

  /* Filter bar — larger buttons */
  .signals-filter-bar {
    gap: 0.4em;
  }

  .filter-btn {
    font-size: 0.75rem;
    padding: 0.4em 0.7em;
    min-height: 36px;
  }

  /* Signals count */
  .signals-count {
    font-size: 0.75rem;
  }

  /* Homepage signal items */
  .homepage-signal-item h3 {
    font-size: 1rem;
  }

  /* Archive result items */
  .tag-result-item h3,
  .search-result-item h3 {
    font-size: 1.05rem;
  }

  .tag-result-item .post-excerpt,
  .search-result-item .post-excerpt {
    font-size: 0.95rem;
  }

  /* Related signals */
  .related-signal-item {
    flex-wrap: wrap;
    gap: var(--adj-space-xs) var(--adj-space-m);
    padding: var(--adj-space-m) 0;
  }

  .related-signal-date {
    font-size: 0.75rem;
  }

  .related-signal-link {
    font-size: 0.95rem;
  }

  .related-signal-theme {
    width: 100%;
    font-size: 0.75rem;
  }

  /* Post navigation — larger tap targets */
  .post-navigation {
    gap: var(--adj-space-base);
  }

  .post-navigation .post-nav-link a {
    font-size: 0.8rem;
    padding: 0.5em 0;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  /* Pagination */
  .signals-pagination {
    flex-direction: column;
    gap: var(--adj-space-s);
    align-items: flex-start;
  }

  .page-info {
    font-size: 0.75rem;
  }

  .page-btn {
    font-size: 0.7rem;
    min-width: 36px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  /* Breadcrumb */
  .archive-breadcrumb {
    font-size: 0.75rem;
  }

  /* Nav: stack tagline above links on mobile */
  .primary-nav-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.3rem;
  }

  .nav-left {
    flex-wrap: wrap;
  }

  .site-description {
    display: none;
  }

  .nav-sep {
    display: none;
  }

  .nav-left .primary-nav-link {
    font-size: 0.7rem;
  }

  .utility-nav {
    flex-wrap: wrap;
  }

  .util-nav-link {
    font-size: 0.7rem;
  }

  /* Brief read view — more breathing room on mobile */
  .read-view-inner {
    padding-left: var(--adj-space-base);
    padding-right: var(--adj-space-base);
  }

  .read-brief-content {
    font-size: 0.95rem;
  }

  /* Homepage cards single column on mobile */
  .adj-homepage .signals-grid {
    grid-template-columns: 1fr;
  }

  /* Footer */
  .site-footer {
    padding: var(--adj-space-base);
  }

  .site-footer p {
    font-size: 0.75rem;
  }
}

/* ==========================================================================
   19. Reduced Motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   20. Print Styles
   ========================================================================== */

@media print {
  .site-header,
  .site-footer,
  .search-bar,
  .search-toggle-wrap,
  .theme-toggle-wrap,
  .signals-filter-bar,
  .signals-pagination,
  .post-navigation,
  .archive-breadcrumb,
  .subscribe-section,
  .related-signals {
    display: none !important;
  }

  body {
    background: #fff;
    color: #000;
    font-size: 11pt;
    line-height: 1.6;
  }

  .gh-content a {
    color: #000;
    border-bottom: none;
  }

  .gh-content a::after {
    content: " (" attr(href) ")";
    font-size: 0.8em;
    color: #666;
  }

  .signal-card {
    border-left: none;
    page-break-inside: avoid;
  }

  .signal-reveal {
    max-height: none;
    opacity: 1;
  }
}

/* ==========================================================================
   21. Keyboard Shortcut Hint
   ========================================================================== */

@media (hover: hover) {
  .search-toggle::after {
    content: " /";
    font-size: 0.5em;
    opacity: 0.5;
  }
}

/* ==========================================================================
   22. Homepage V2 — Brief Hero, Signal Card Grid, Theme Nav, Subscribe Strip
   ========================================================================== */

/* ── Brief Hero ───────────────────────────────────────────── */

.adj-homepage .brief-hero {
  padding: 2.5rem clamp(1.5rem, 5vw, 2.5rem);
  margin-bottom: 2.5rem;
  background: color-mix(in srgb, var(--adj-accent) 6%, var(--adj-bg-raised));
  border: 1px solid var(--adj-border-default);
  border-radius: var(--adj-radius-l);
  box-shadow: var(--adj-shadow-card), 0 8px 24px rgba(0,0,0,0.04);
  transition: border-color var(--adj-duration) var(--adj-ease);
}

.adj-homepage .hero-label {
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.adj-homepage .hero-label p,
.adj-homepage .hero-label .post-date {
  color: var(--adj-ink-30);
  margin: 0;
}

.adj-homepage .hero-dots {
  display: flex;
  gap: 4px;
}

.adj-homepage .hero-dots .dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.adj-homepage .brief-hero .post-title {
  font-size: clamp(2rem, 4vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.08;
  max-width: 680px;
}

.adj-homepage .hero-tldr,
.adj-homepage .brief-hero .post-excerpt {
  max-width: 640px;
  color: var(--adj-ink-80);
  margin-bottom: 1.5rem;
}

.adj-homepage .brief-hero .post-excerpt-text {
  margin: 0;
}

.adj-homepage .hero-meta {
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.adj-homepage .hero-meta .post-tags {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--adj-ink-30);
}

.adj-homepage .hero-cta {
  display: inline-block;
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--adj-bg);
  background: var(--adj-ink);
  padding: 0.6rem 1.25rem;
  text-decoration: none;
  transition: background 0.2s var(--adj-ease);
}

.adj-homepage .hero-cta:hover {
  background: var(--adj-accent);
}

/* ── Theme Filter Nav (homepage v2) ───────────────────────── */

.adj-homepage .theme-nav {
  display: flex;
  gap: 0;
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--adj-ink-10);
}

.adj-homepage .theme-nav button {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.6rem 0.75rem;
  color: var(--adj-ink-50);
  border-bottom: 2px solid transparent;
  transition: all 0.15s var(--adj-ease);
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.adj-homepage .theme-nav button:hover {
  color: var(--adj-ink);
}

.adj-homepage .theme-nav button.active {
  color: var(--adj-ink);
  border-bottom-color: var(--theme-color, var(--adj-ink));
}

.adj-homepage .theme-nav .nav-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

/* ── Signal Cards Grid (homepage v2) ──────────────────────── */

.adj-homepage .signals-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--adj-space-l);
  margin-bottom: 3rem;
  list-style: none;
  padding: 0;
}

.adj-homepage .signals-grid > li {
  list-style: none;
  display: flex;
}

.adj-homepage .signals-grid .signal-card {
  background: var(--adj-bg-raised);
  border: 1px solid var(--adj-border-default);
  border-radius: var(--adj-radius-m);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  box-shadow: var(--adj-shadow-card);
  transition: background var(--adj-duration) var(--adj-ease),
              border-color var(--adj-duration) var(--adj-ease),
              box-shadow var(--adj-duration) var(--adj-ease),
              transform var(--adj-duration) var(--adj-ease);
  cursor: pointer;
  position: relative;
  margin-bottom: 0;
  flex: 1;
}

.adj-homepage .signals-grid .signal-card:hover,
.adj-homepage .signals-grid .signal-card.is-revealed {
  background: color-mix(in srgb, var(--theme-color, var(--adj-accent)) 5%, var(--adj-bg-raised));
  border-color: var(--adj-border-strong);
  box-shadow: var(--adj-shadow-card-hover);
  transform: translateY(-1px);
}

/* Homepage: annotation always visible (no reveal hide/show) */
.adj-homepage .signal-reveal {
  max-height: none;
  opacity: 1;
  overflow: visible;
  padding-top: 0;
}

/* Source domain line — extracted from annotation by JS */
.card-source-line {
  font-family: var(--adj-font-mono);
  font-size: 0.65rem;
  color: var(--adj-text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  display: flex;
  align-items: center;
  gap: 0.4em;
  margin-bottom: 0.15em;
}

.card-source-line:empty {
  display: none;
}

.source-dot {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Set --theme-color per card for hover tint */
.signal-card.theme-consumer { --theme-color: var(--adj-consumer); }
.signal-card.theme-ai       { --theme-color: var(--adj-ai); }
.signal-card.theme-commerce  { --theme-color: var(--adj-commerce); }
.signal-card.theme-culture   { --theme-color: var(--adj-culture); }
.signal-card.theme-connected { --theme-color: var(--adj-connected); }
.signal-card.theme-brand     { --theme-color: var(--adj-brand); }

/* Signal card tag pills — bordered pills at top, matching production */
.card-tag-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35em;
  margin-bottom: 0.4em;
}

.card-pill {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--adj-ink-50);
  border: 1px solid var(--adj-border-default);
  padding: 0.15em 0.45em;
  border-radius: 100px;
  line-height: 1.4;
  display: inline-block;
}

/* Hide theme-* tags from card pills — keep only topic tags */
.card-pill[class*="tag-theme-"] {
  display: none;
}

/* Card date — merged into source line, hide standalone element */
.card-date {
  display: none;
}

.signal-headline {
  font-family: var(--adj-font-heading);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 0;
}

.signal-headline a {
  color: var(--adj-ink);
  text-decoration: none;
  border-bottom: none;
  transition: color 0.15s var(--adj-ease);
}

.signal-card:hover .signal-headline a,
.signal-card.is-revealed .signal-headline a {
  color: var(--theme-color, var(--adj-accent));
}

/* Card annotation — full post content rendered inside card */
.card-annotation {
  font-size: 0.85rem;
  line-height: 1.55;
  color: var(--adj-text-secondary);
  margin: 0.3em 0 0;
}

.card-annotation p {
  margin: 0 0 0.6em;
  font-size: 0.85rem;
  line-height: 1.55;
  color: var(--adj-text-secondary);
}

.card-annotation p:last-child {
  margin-bottom: 0;
}

/* Hide "Source:" link line in card — Ghost strips the class, so we hide via JS below */
.card-annotation .signal-source-link {
  display: none;
}

.card-annotation a {
  color: var(--adj-text-secondary);
  text-decoration: none;
  border-bottom: 1px solid var(--adj-border-default);
}

.card-annotation a:hover {
  color: var(--adj-accent);
  border-bottom-color: var(--adj-accent);
}

/* Theme-colored headline on hover/reveal for themed cards */
.signal-card.theme-consumer:hover .signal-headline a,
.signal-card.theme-consumer.is-revealed .signal-headline a { color: var(--adj-consumer); }
.signal-card.theme-ai:hover .signal-headline a,
.signal-card.theme-ai.is-revealed .signal-headline a { color: var(--adj-ai); }
.signal-card.theme-commerce:hover .signal-headline a,
.signal-card.theme-commerce.is-revealed .signal-headline a { color: var(--adj-commerce); }
.signal-card.theme-culture:hover .signal-headline a,
.signal-card.theme-culture.is-revealed .signal-headline a { color: var(--adj-culture); }
.signal-card.theme-connected:hover .signal-headline a,
.signal-card.theme-connected.is-revealed .signal-headline a { color: var(--adj-connected); }
.signal-card.theme-brand:hover .signal-headline a,
.signal-card.theme-brand.is-revealed .signal-headline a { color: var(--adj-brand); }

/* Legacy aliases for WP-era class names */
.adj-homepage .card-source {
  gap: 0.35rem;
}

.adj-homepage .signal-card .card-title,
.adj-homepage .signal-card .post-title {
  font-family: var(--adj-font-heading);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 0;
}

.adj-homepage .signal-card .post-title a {
  color: var(--adj-ink);
  text-decoration: none;
  transition: color 0.15s var(--adj-ease);
}

.adj-homepage .signal-card:hover .post-title a,
.adj-homepage .signal-card.is-revealed .post-title a {
  color: var(--theme-color, var(--adj-accent));
}

/* Hide theme fallback when tags exist */
.adj-homepage .signal-card .card-tags + .card-theme-fallback {
  display: none;
}

/* Tag pills at top of card */
.adj-homepage .signal-card .post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: var(--adj-space-xs);
}

.adj-homepage .signal-card .post-excerpt {
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--adj-text-secondary);
  display: block;
  margin: 0.3em 0 0;
}

/* No ellipsis truncation */
.adj-homepage .signal-card .post-excerpt-text {
  -webkit-line-clamp: unset;
  display: block;
}

.adj-homepage .signal-card .post-excerpt-text {
  margin: 0;
}

/* v3: Show tags at top of card */
.adj-homepage .card-tags,
.adj-homepage .signal-card .post-tags.card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: 0.25rem;
}

/* Hide theme fallback when tags exist */
.adj-homepage .signal-card .card-tags + .card-theme-fallback {
  display: none;
}

/* Show theme fallback when no tags */
.adj-homepage .signal-card .card-theme-fallback:first-child {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: 0.25rem;
}

/* ── Subscribe Strip (homepage v2) ────────────────────────── */

.adj-homepage .subscribe-strip,
.subscribe-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding: 2rem 0;
  border-top: 1px solid var(--adj-rule);
  border-bottom: 1px solid var(--adj-rule);
  margin-top: 3rem;
  margin-bottom: 3rem;
  gap: 2rem;
}

.adj-homepage .strip-text,
.strip-text {
  max-width: 520px;
}

.strip-form {
  display: flex;
  gap: var(--adj-space-s);
  align-items: stretch;
}

.strip-form .subscribe-input {
  font-family: var(--adj-font-mono);
  font-size: 0.8rem;
  border: 1px solid var(--adj-border-default);
  border-radius: var(--adj-radius-s);
  padding: 0.6em 0.8em;
  background: var(--adj-bg-inset);
  color: var(--adj-ink);
  min-width: 200px;
  outline: none;
  cursor: pointer;
  transition: border-color var(--adj-duration) var(--adj-ease-subtle);
}

.strip-form .subscribe-input::placeholder {
  color: var(--adj-ink-30);
}

.strip-form .subscribe-btn {
  font-family: var(--adj-font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: var(--adj-ink);
  color: var(--adj-bg);
  border: none;
  padding: 0.7em 1.5em;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--adj-duration) var(--adj-ease-subtle);
}

.strip-form .subscribe-btn:hover {
  background: #000;
}

.adj-homepage .strip-text h3 {
  margin-top: 0;
}

.adj-homepage .strip-text p {
  color: var(--adj-ink-50);
  margin: 0;
}

.adj-homepage .strip-form {
  display: flex;
  gap: 0;
}

.adj-homepage .strip-form .subscribe-input {
  font-size: 0.75rem;
  width: 240px;
  border: 1px solid var(--adj-ink-15);
}

.adj-homepage .strip-form .subscribe-btn {
  font-size: 0.75rem;
  border: 1px solid var(--adj-ink);
}

.adj-homepage .strip-form .subscribe-btn:hover {
  background: var(--adj-accent);
  border-color: var(--adj-accent);
}

/* ── Dark mode overrides (homepage v2) ────────────────────── */

html[data-theme="dark"] .adj-homepage .brief-hero {
  background: color-mix(in srgb, var(--adj-accent) 6%, var(--adj-bg-raised));
  border-color: var(--adj-border-default);
  box-shadow: none;
}

html[data-theme="dark"] .adj-homepage .signals-grid .signal-card {
  background: var(--adj-bg-raised);
  border-color: var(--adj-border-default);
}

html[data-theme="dark"] .adj-homepage .signals-grid .signal-card:hover,
html[data-theme="dark"] .adj-homepage .signals-grid .signal-card.is-revealed {
  background: color-mix(in srgb, var(--theme-color, var(--adj-accent)) 8%, var(--adj-bg-raised));
  border-color: rgba(255, 255, 255, 0.12);
}

html[data-theme="dark"] .adj-homepage .hero-cta {
  background: #e0e0e0;
  color: #0a0a0a;
}

html[data-theme="dark"] .adj-homepage .hero-cta:hover {
  background: var(--adj-accent);
  color: #fff;
}

/* ── Responsive (homepage v2) ─────────────────────────────── */

@media (max-width: 600px) {
  .adj-homepage .signals-grid {
    grid-template-columns: 1fr;
  }

  .adj-homepage .theme-nav {
    flex-wrap: wrap;
  }

  .adj-homepage .subscribe-strip {
    flex-direction: column;
    align-items: flex-start;
  }

  .adj-homepage .strip-form .subscribe-input {
    width: 180px;
  }
}
