/* ============================================================
   SOLERA DISPATCHES — SCREEN STYLESHEET
   Ghost theme styles matching peterluisvenero.com design language
   ============================================================ */

/* ── Base Reset ── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--void);
  color: var(--body);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "onum" 1, "liga" 1;
  transition: background var(--transition), color var(--transition);
}
a { color: var(--gold); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--gold-hi); }
img { display: block; max-width: 100%; }

/* ============================================================
   UTILITIES
   ============================================================ */
.gold-text {
  color: transparent;
  background: var(--gold-foil);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  animation: gold-shift 16s ease-in-out infinite;
}
.gold-rule {
  height: 1px;
  background: var(--gold-foil);
  background-size: 200% 100%;
  animation: gold-shift 14s ease-in-out infinite;
  opacity: 0.9;
}
.corner-crops { position: absolute; inset: -12px; pointer-events: none; }
.corner-crops span { position: absolute; background: var(--gold); }
.corner-crops .tl-h { top:0;left:0;width:20px;height:1px }
.corner-crops .tl-v { top:0;left:0;width:1px;height:20px }
.corner-crops .tr-h { top:0;right:0;width:20px;height:1px }
.corner-crops .tr-v { top:0;right:0;width:1px;height:20px }
.corner-crops .bl-h { bottom:0;left:0;width:20px;height:1px }
.corner-crops .bl-v { bottom:0;left:0;width:1px;height:20px }
.corner-crops .br-h { bottom:0;right:0;width:20px;height:1px }
.corner-crops .br-v { bottom:0;right:0;width:1px;height:20px }

.section-serial { display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:var(--s7) }
.section-serial__line { width:56px;height:1px;background:var(--gold-foil);background-size:200% 100%;animation:gold-shift 14s ease-in-out infinite }
.section-serial__text { font-family:var(--font-mono);font-size:10px;letter-spacing:0.32em;color:var(--gold);text-transform:uppercase }
.section-label { font-family:var(--font-mono);font-size:10px;letter-spacing:0.24em;color:var(--gold);text-transform:uppercase;margin-bottom:var(--s4) }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;
  padding:14px 26px;border:1px solid var(--hairline);background:transparent;color:var(--silver);
  text-decoration:none;cursor:pointer;transition:all 0.2s;border-radius:2px;
}
.btn:hover { border-color:var(--gold);color:var(--gold-hi) }
.btn-gold { border:1px solid transparent;position:relative;z-index:0 }
.btn-gold::before {
  content:'';position:absolute;inset:0;padding:1px;
  background:var(--gold-foil);background-size:200% 200%;animation:gold-shift 10s ease-in-out infinite;
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;z-index:-1;border-radius:2px;
}

/* ============================================================
   NAVIGATION
   ============================================================ */
.nav {
  position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;
  padding:18px 32px;border-bottom:1px solid var(--hairline);
  background:color-mix(in oklab,var(--void) 85%,transparent);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.nav__brand { display:flex;align-items:center;gap:14px;text-decoration:none }
.nav__mark { width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0 }
.nav__mark img { width:100%;height:100%;object-fit:cover }
.nav__name { font-family:var(--font-display);font-size:16px;color:var(--silver);font-weight:500;letter-spacing:-0.005em }
.nav__title { font-family:var(--font-mono);font-size:9px;letter-spacing:0.24em;color:var(--muted);text-transform:uppercase;margin-top:2px }
.nav__links { display:flex;list-style:none;gap:28px;font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase }
.nav__links a { color:var(--muted);text-decoration:none;transition:color var(--transition) }
.nav__links a:hover,.nav__links a.active { color:var(--silver) }
.nav__right { display:flex;align-items:center;gap:10px }

/* Theme toggle */
.theme-toggle-btn { display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid rgba(232,232,237,0.08);border-radius:50%;background:transparent;color:#5A5A72;cursor:pointer;transition:color .2s,border-color .2s }
.theme-toggle-btn:hover { color:#E8E8ED;border-color:#c48c20 }
.theme-icon--moon { display:none }
.theme-icon--sun { display:block }
[data-theme="light"] .theme-icon--sun { display:none }
[data-theme="light"] .theme-icon--moon { display:block }
[data-theme="light"] .theme-toggle-btn { color:#6E6447;border-color:rgba(40,28,8,0.18) }

/* Hamburger */
.hamburger { display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;border:none;background:transparent;cursor:pointer;padding:8px;-webkit-tap-highlight-color:transparent }
.hamburger__line { display:block;width:22px;height:1.5px;background:linear-gradient(90deg,#8a5f14,#c48c20,#f0c54a,#f4d568,#c9951e,#6b4610);background-size:200% 100%;animation:gold-shift 10s ease-in-out infinite;border-radius:1px;transition:transform .3s cubic-bezier(.2,.6,.2,1),opacity .3s }
.hamburger.active .hamburger__line:nth-child(1) { transform:translateY(6.5px) rotate(45deg) }
.hamburger.active .hamburger__line:nth-child(2) { opacity:0;transform:scaleX(0) }
.hamburger.active .hamburger__line:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg) }

/* Mobile overlay */
.gold-overlay { position:fixed;inset:0;z-index:999;pointer-events:none;visibility:hidden }
.gold-overlay.active { pointer-events:auto;visibility:visible }
.gold-overlay__backdrop { position:absolute;inset:0;background:rgba(10,10,15,0.94);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);opacity:0;transition:opacity .4s cubic-bezier(.2,.6,.2,1) }
.gold-overlay.active .gold-overlay__backdrop { opacity:1 }
.gold-overlay__content { position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:80px 32px 60px;opacity:0;transform:scale(0.92);transition:opacity .4s cubic-bezier(.2,.6,.2,1) .05s,transform .4s cubic-bezier(.2,.6,.2,1) .05s }
.gold-overlay.active .gold-overlay__content { opacity:1;transform:scale(1) }
.gold-overlay__close { position:absolute;top:22px;right:22px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(232,232,237,0.08);border-radius:50%;background:transparent;color:#5A5A72;cursor:pointer;transition:color .2s,border-color .2s }
.gold-overlay__close:hover { color:#E8E8ED;border-color:#c48c20 }
.gold-overlay__brand { margin-bottom:36px;opacity:0.8 }
.gold-overlay__nav { display:flex;flex-direction:column;align-items:center;gap:6px }
.gold-overlay__link { font-family:'Playfair Display',Georgia,serif;font-size:28px;font-weight:400;color:#5A5A72;text-decoration:none;letter-spacing:-0.01em;padding:8px 16px;transition:color .25s,transform .25s }
.gold-overlay__link:hover,.gold-overlay__link.active { color:#f4d568;transform:translateX(4px) }
.gold-overlay__sub { margin-top:40px }
.gold-overlay__sub-label { font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:0.24em;text-transform:uppercase;color:#c48c20;opacity:0.6 }

/* ============================================================
   DISPATCH HERO
   ============================================================ */
.dispatch-hero {
  position:relative;padding:120px 32px 96px;border-bottom:1px solid var(--hairline);
  overflow:hidden;text-align:center;
}
.dispatch-hero--compact { padding:80px 32px 64px }
.dispatch-hero__grid {
  position:absolute;inset:0;pointer-events:none;
  background:
    repeating-linear-gradient(90deg,transparent 0 64px,rgba(232,232,237,0.025) 64px 65px),
    repeating-linear-gradient(0deg,transparent 0 64px,rgba(232,232,237,0.018) 64px 65px),
    radial-gradient(ellipse 70% 50% at 50% 100%,rgba(139,92,246,0.10) 0%,transparent 70%);
}
[data-theme="light"] .dispatch-hero__grid {
  background:
    repeating-linear-gradient(90deg,transparent 0 64px,rgba(40,28,8,0.04) 64px 65px),
    repeating-linear-gradient(0deg,transparent 0 64px,rgba(40,28,8,0.03) 64px 65px),
    radial-gradient(ellipse 70% 50% at 50% 100%,rgba(78,42,168,0.06) 0%,transparent 70%);
}
.dispatch-hero__headline {
  position:relative;font-family:var(--font-display);font-weight:400;
  font-size:clamp(48px,8vw,128px);line-height:0.9;letter-spacing:-0.03em;color:var(--silver);
}
.dispatch-hero__sub {
  position:relative;font-family:var(--font-body);font-size:var(--fs-body);font-weight:300;
  line-height:1.6;color:var(--body);max-width:580px;margin:40px auto 0;
}

/* ============================================================
   POST FEED (Card Grid)
   ============================================================ */
.post-feed-section {
  max-width:1200px;margin:0 auto;padding:0 32px 64px;
}
.post-feed {
  display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:32px;
}
.post-card {
  position:relative;border:1px solid var(--hairline);background:rgba(232,232,237,0.015);
  transition:border-color var(--transition);overflow:hidden;
}
[data-theme="light"] .post-card { background:rgba(40,28,8,0.02) }
.post-card:hover { border-color:var(--gold-warm) }
.post-card__link { display:block;text-decoration:none;color:inherit }
.post-card__image { aspect-ratio:16/9;overflow:hidden;border-bottom:1px solid var(--hairline) }
.post-card__image img { width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease) }
.post-card:hover .post-card__image img { transform:scale(1.03) }
.post-card__content { padding:28px 28px 24px }
.post-card__meta {
  display:flex;align-items:center;gap:16px;margin-bottom:16px;
  font-family:var(--font-mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;
}
.post-card__tag { color:var(--gold) }
.post-card__date { color:var(--muted) }
.post-card__reading-time { color:var(--muted) }
.post-card__title {
  font-family:var(--font-display);font-size:clamp(22px,2.5vw,30px);font-weight:400;
  line-height:1.1;letter-spacing:-0.015em;color:var(--silver);margin-bottom:14px;
}
.post-card__excerpt {
  font-family:var(--font-body);font-size:14px;line-height:1.6;color:var(--body);
  font-weight:300;margin-bottom:20px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.post-card__foot {
  display:flex;justify-content:space-between;align-items:center;
  border-top:1px solid var(--hairline);padding-top:16px;
}
.post-card__cta {
  font-family:var(--font-mono);font-size:10px;letter-spacing:0.22em;
  text-transform:uppercase;color:var(--gold);transition:color var(--transition);
}
.post-card:hover .post-card__cta { color:var(--gold-hi) }
.post-card__featured {
  font-family:var(--font-mono);font-size:10px;letter-spacing:0.22em;color:var(--gold);
}

/* Pagination */
.pagination {
  display:flex;justify-content:space-between;align-items:center;
  margin-top:48px;padding-top:24px;border-top:1px solid var(--hairline);
}
.pagination__info { font-family:var(--font-mono);font-size:10px;letter-spacing:0.22em;color:var(--muted);text-transform:uppercase }
.pagination__links { display:flex;gap:24px }
.pagination__link {
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--gold);text-decoration:none;
}
.pagination__link:hover { color:var(--gold-hi) }

/* ============================================================
   SINGLE POST
   ============================================================ */
.post-full__header {
  padding:96px 32px 48px;text-align:center;border-bottom:1px solid var(--hairline);
}
.post-full__header-inner { max-width:780px;margin:0 auto }
.post-full__meta {
  display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:24px;
  font-family:var(--font-mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;
}
.post-full__tag { color:var(--gold);text-decoration:none }
.post-full__tag:hover { color:var(--gold-hi) }
.post-full__date { color:var(--muted) }
.post-full__reading-time { color:var(--muted) }
.post-full__title {
  font-family:var(--font-display);font-size:clamp(36px,5vw,64px);font-weight:400;
  line-height:1.0;letter-spacing:-0.025em;color:var(--silver);margin-bottom:24px;
}
.post-full__excerpt {
  font-family:var(--font-body);font-size:var(--fs-lead);font-weight:300;
  line-height:1.5;color:var(--body);font-style:italic;max-width:620px;margin:0 auto;
}

/* Featured image */
.post-full__image { max-width:1200px;margin:0 auto;padding:48px 32px 0 }
.post-full__image-inner { position:relative;overflow:hidden;border:1px solid var(--hairline) }
.post-full__image-inner img { width:100%;display:block }
.post-full__image-caption {
  font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;
  color:var(--muted);text-transform:uppercase;margin-top:12px;text-align:center;
}

/* Post body — Ghost content (gh-content) */
.post-full__body {
  max-width:720px;margin:48px auto 0;padding:0 32px;
}
.gh-content h2 {
  font-family:var(--font-display);font-size:clamp(28px,3.5vw,40px);font-weight:400;
  line-height:1.1;letter-spacing:-0.02em;color:var(--silver);margin:56px 0 20px;
}
.gh-content h3 {
  font-family:var(--font-display);font-size:clamp(22px,2.5vw,30px);font-weight:400;
  line-height:1.15;color:var(--silver);margin:40px 0 16px;
}
.gh-content h4 {
  font-family:var(--font-mono);font-size:13px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--gold);margin:36px 0 12px;
}
.gh-content p { margin-bottom:24px;font-weight:300 }
.gh-content strong { font-weight:500;color:var(--silver) }
.gh-content em { font-style:italic }
.gh-content a { color:var(--gold);border-bottom:1px solid rgba(196,140,32,0.3);transition:border-color var(--transition) }
.gh-content a:hover { border-color:var(--gold-hi) }
.gh-content blockquote {
  border-left:2px solid var(--gold-warm);padding:16px 0 16px 24px;margin:32px 0;
  font-family:var(--font-display);font-size:var(--fs-lead);font-style:italic;
  color:var(--silver);line-height:1.45;
}
.gh-content ul,.gh-content ol { padding-left:24px;margin-bottom:24px }
.gh-content li { margin-bottom:8px;font-weight:300 }
.gh-content li::marker { color:var(--gold) }
.gh-content hr {
  border:none;height:1px;background:var(--gold-foil);background-size:200% 100%;
  animation:gold-shift 14s ease-in-out infinite;margin:48px 0;opacity:0.6;
}
.gh-content pre {
  background:var(--deep);border:1px solid var(--hairline);border-radius:2px;
  padding:20px 24px;overflow-x:auto;margin:32px 0;
  font-family:var(--font-mono);font-size:14px;line-height:1.5;color:var(--silver);
}
.gh-content code {
  font-family:var(--font-mono);font-size:0.88em;background:var(--deep);
  padding:2px 6px;border-radius:2px;color:var(--gold);
}
.gh-content pre code { background:none;padding:0;color:var(--silver) }
.gh-content figure { margin:40px 0 }
.gh-content figcaption {
  font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;
  color:var(--muted);text-transform:uppercase;margin-top:12px;text-align:center;
}

/* Ghost card styles (gallery, bookmark, etc.) */
.gh-content .kg-image-card img,.gh-content .kg-gallery-image img { border:1px solid var(--hairline) }
.gh-content .kg-width-wide { max-width:1040px;margin-left:calc((720px - 1040px) / 2);margin-right:calc((720px - 1040px) / 2) }
.gh-content .kg-width-full { max-width:none;margin-left:calc(-32px);margin-right:calc(-32px);width:calc(100% + 64px) }
.gh-content .kg-bookmark-card {
  border:1px solid var(--hairline);background:rgba(232,232,237,0.015);
  transition:border-color var(--transition);
}
.gh-content .kg-bookmark-card:hover { border-color:var(--gold-warm) }

/* Post footer */
.post-full__footer {
  max-width:720px;margin:48px auto 0;padding:0 32px 64px;
}
.post-full__tags { display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px }
.post-full__tag-link {
  font-family:var(--font-mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--muted);border:1px solid var(--hairline);padding:6px 14px;border-radius:2px;
  text-decoration:none;transition:all var(--transition);
}
.post-full__tag-link:hover { border-color:var(--gold);color:var(--gold) }

/* Author bio */
.post-full__author {
  display:flex;align-items:center;gap:20px;padding:24px 0;border-top:1px solid var(--hairline);
}
.post-full__author-image { width:56px;height:56px;border-radius:50%;object-fit:cover;flex-shrink:0 }
.post-full__author-name { font-family:var(--font-display);font-size:18px;color:var(--silver);font-weight:400 }
.post-full__author-bio { font-family:var(--font-body);font-size:14px;color:var(--body);line-height:1.5;font-weight:300;margin-top:4px }

/* Prev/Next navigation */
.post-full__nav {
  display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px;
  border-top:1px solid var(--hairline);padding-top:32px;
}
.post-full__nav-link {
  display:block;text-decoration:none;padding:16px;border:1px solid var(--hairline);
  transition:border-color var(--transition);
}
.post-full__nav-link:hover { border-color:var(--gold-warm) }
.post-full__nav-link--next { text-align:right }
.post-full__nav-label {
  font-family:var(--font-mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--gold);margin-bottom:8px;display:block;
}
.post-full__nav-title { font-family:var(--font-display);font-size:16px;color:var(--silver);font-weight:400;line-height:1.2 }

/* Author header (author archive page) */
.author-header { display:flex;align-items:center;gap:24px;justify-content:center }
.author-header__image { width:80px;height:80px;border-radius:50%;object-fit:cover }
.author-header__name { font-family:var(--font-display);font-size:clamp(32px,4vw,48px);font-weight:400;color:var(--silver) }
.author-header__bio { font-family:var(--font-body);font-size:var(--fs-body);color:var(--body);font-weight:300;margin-top:8px }

/* Error page */
.error-page { text-align:center;padding:120px 32px }
.error-page__code { font-family:var(--font-display);font-size:clamp(80px,12vw,200px);line-height:1;font-weight:400 }
.error-page__message { font-family:var(--font-body);font-size:var(--fs-lead);color:var(--body);font-weight:300;margin-top:16px }

/* ============================================================
   EMAIL CAPTURE
   ============================================================ */
.email-capture {
  padding:56px 32px;text-align:center;border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);background:var(--deep);
}
.email-capture__label { font-family:var(--font-mono);font-size:10px;letter-spacing:0.32em;text-transform:uppercase;color:var(--gold);margin-bottom:12px }
.email-capture__heading { font-family:var(--font-display);font-size:clamp(28px,3.5vw,40px);font-weight:400;color:var(--silver);letter-spacing:-0.02em;margin-bottom:8px }
.email-capture__sub { font-family:var(--font-body);font-size:14px;color:var(--body);font-weight:300;margin-bottom:28px;max-width:520px;margin-left:auto;margin-right:auto }
.email-capture__form { max-width:580px;margin:0 auto }

.subscribe-form { display:flex;flex-direction:column;gap:12px }
.subscribe-form__fields { display:flex;gap:12px }
.subscribe-form__input {
  flex:1;height:48px;padding:0 18px;
  font-family:var(--font-body);font-size:14px;font-weight:300;color:var(--silver);
  background:var(--panel);border:1px solid var(--hairline);border-radius:2px;
  outline:none;transition:border-color 0.25s,box-shadow 0.25s;
}
.subscribe-form__input::placeholder { color:var(--muted);font-weight:300 }
.subscribe-form__input:focus { border-color:var(--gold-warm);box-shadow:0 0 0 1px var(--gold-warm) }
[data-theme="light"] .subscribe-form__input { color:var(--body);background:#fff;border-color:rgba(40,28,8,0.15) }

.subscribe-form__btn {
  width:100%;height:48px;padding:0 32px;
  font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;
  color:#0A0A0F;border:none;border-radius:2px;cursor:pointer;
  background:linear-gradient(135deg,#8a5f14 0%,#c48c20 18%,#f0c54a 42%,#f4d568 58%,#c9951e 78%,#6b4610 100%);
  background-size:200% 200%;animation:gold-shift 10s ease-in-out infinite;
  transition:transform 0.2s,box-shadow 0.2s;
}
.subscribe-form__btn:hover { transform:translateY(-1px);box-shadow:0 4px 18px rgba(196,140,32,0.25) }
.subscribe-form__success { font-family:var(--font-mono);font-size:12px;color:var(--gold);letter-spacing:0.14em;margin-top:8px }
.subscribe-form__error { font-family:var(--font-mono);font-size:12px;color:#FF4D4F;letter-spacing:0.14em;margin-top:8px }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { padding:48px 32px 28px;background:var(--void);position:relative }
.footer__line { padding:22px 0;border-bottom:1px solid var(--hairline) }
.footer__top { display:flex;justify-content:space-between;align-items:center;gap:24px;padding-bottom:22px;border-bottom:1px solid var(--hairline) }
.footer__brand { display:flex;align-items:center;gap:14px }
.footer__brand-mark { width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0 }
.footer__brand-mark img { width:100%;height:100%;object-fit:cover }
.footer__brand-name { font-family:var(--font-display);font-weight:500;font-size:16px;color:#fff;letter-spacing:-0.005em }
[data-theme="light"] .footer__brand-name { color:var(--silver) }
.footer__brand-title { font-family:var(--font-mono);font-size:9px;letter-spacing:0.24em;color:var(--muted);margin-top:2px;text-transform:uppercase }
.footer__socials { display:flex;align-items:center;gap:4px }
.footer__social-link { display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;text-decoration:none;opacity:0.78;transition:opacity 0.2s,transform 0.2s }
.footer__social-link:hover { opacity:1;transform:translateY(-1px) }
.footer__nav { display:flex;gap:28px;list-style:none;flex-wrap:wrap;font-family:var(--font-mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase }
.footer__nav a { color:var(--body);text-decoration:none;transition:color 0.2s }
.footer__nav a:hover { color:var(--gold) }
.footer__notice { display:flex;align-items:flex-start;gap:14px;max-width:980px }
.footer__notice-label { font-family:var(--font-display);font-style:italic;font-size:16px;color:var(--gold);flex-shrink:0;margin-top:-1px }
.footer__notice-text { font-family:var(--font-body);font-size:12px;line-height:1.55;color:var(--body);font-weight:400 }
.footer__bottom { padding-top:22px;display:flex;flex-direction:column;align-items:flex-start;gap:12px }
.footer__copy { font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;color:var(--muted) }
.footer__signatures { display:flex;align-items:center;gap:14px;font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;color:var(--muted);flex-wrap:wrap }
.footer__signatures a { color:var(--silver);text-decoration:none }
.solera-dot { width:6px;height:6px;border-radius:50%;background:#FF3B30;box-shadow:0 0 0 0 rgba(255,59,48,0.6);animation:solera-pulse 2s infinite;flex-shrink:0;display:inline-block }

/* ============================================================
   VIBE RADIO
   ============================================================ */
.vibe-radio { position:fixed;bottom:24px;right:24px;z-index:200;display:flex;align-items:center;gap:12px;padding:10px 18px 10px 14px;background:color-mix(in oklab,var(--panel) 78%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--hairline);border-radius:999px;cursor:pointer;user-select:none;transition:box-shadow .3s,transform .3s }
.vibe-radio:hover { box-shadow:0 4px 24px rgba(0,0,0,.35);transform:translateY(-2px) }
.vibe-radio__btn { width:28px;height:28px;border-radius:50%;border:1px solid var(--gold-warm);display:flex;align-items:center;justify-content:center;flex-shrink:0 }
.vibe-radio__btn svg { width:14px;height:14px;fill:var(--gold) }
.vr-pause { display:none }
.vibe-radio.playing .vr-play { display:none }
.vibe-radio.playing .vr-pause { display:block }
.vibe-radio__meta { display:flex;flex-direction:column;gap:1px }
.vibe-radio__label { font-family:var(--font-mono);font-size:8px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold) }
.vibe-radio__track { font-family:var(--font-body);font-size:11px;color:var(--muted);font-weight:300 }
.vibe-radio__eq { display:flex;align-items:flex-end;gap:2px;height:14px }
.vibe-radio__eq span { width:2px;background:var(--gold-warm);border-radius:1px;transition:height .15s }
.vibe-radio__eq span:nth-child(1) { height:4px }
.vibe-radio__eq span:nth-child(2) { height:8px }
.vibe-radio__eq span:nth-child(3) { height:5px }
.vibe-radio__eq span:nth-child(4) { height:10px }
.vibe-radio.playing .vibe-radio__eq span { animation:vr-eq .6s ease-in-out infinite alternate }
.vibe-radio.playing .vibe-radio__eq span:nth-child(1) { animation-delay:0s }
.vibe-radio.playing .vibe-radio__eq span:nth-child(2) { animation-delay:.15s }
.vibe-radio.playing .vibe-radio__eq span:nth-child(3) { animation-delay:.3s }
.vibe-radio.playing .vibe-radio__eq span:nth-child(4) { animation-delay:.1s }

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal { opacity:0;transform:translateY(24px);transition:opacity 0.7s var(--ease),transform 0.7s var(--ease) }
.reveal.visible { opacity:1;transform:translateY(0) }
.reveal-delay-1 { transition-delay:0.1s }
.reveal-delay-2 { transition-delay:0.2s }
.reveal-delay-3 { transition-delay:0.3s }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:980px) {
  .post-feed { grid-template-columns:1fr }
  .post-full__nav { grid-template-columns:1fr;gap:16px }
  .post-full__nav-link--next { text-align:left }
}
@media (max-width:768px) {
  .nav__links { display:none }
  .hamburger { display:flex }
  .footer__nav {
    display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
    gap:22px;padding-bottom:6px;scrollbar-width:none;-ms-overflow-style:none;
  }
  .footer__nav::-webkit-scrollbar { display:none }
  .footer__nav li { flex-shrink:0 }
}
@media (max-width:680px) {
  .nav { padding:14px 20px }
  .dispatch-hero { padding:80px 20px 64px }
  .dispatch-hero--compact { padding:60px 20px 48px }
  .post-feed-section { padding:0 20px 48px }
  .post-card__content { padding:20px }
  .post-full__header { padding:64px 20px 40px }
  .post-full__body { padding:0 20px }
  .post-full__image { padding:32px 20px 0 }
  .post-full__footer { padding:0 20px 48px }
  .email-capture { padding:40px 20px }
  .subscribe-form__fields { flex-direction:column }
  .footer { padding:32px 20px 20px }
  .footer__top { flex-direction:column;align-items:flex-start }
  .footer__bottom { flex-direction:column;align-items:flex-start }
  .footer__signatures { flex-wrap:wrap }
  .author-header { flex-direction:column;text-align:center }
}
@media (max-width:480px) {
  .vibe-radio__meta { display:none }
  .vibe-radio__eq { display:none }
  .vibe-radio { padding:10px 14px }
  .post-card__meta { flex-wrap:wrap;gap:8px }
}
