/* ==========================================================================
   MARIE LOELL — FOUNDATION
   Clean Editorial System (Longevity • Minimalism • Low-Tox)
   ========================================================================== */

:root {
  /* ---- Color tokens (reduced + brand-aligned) ---- */

  --white: #ffffff;
  --cream: #f4efe8;
  --cream-2: #ece4d3;

  --ink: #1a1a1a;
  --ink-2: #2a2a2a;
  --ink-3: #666666;

  /* Brand Accent (controlled usage only) */
  --olive: #6d7755;
  --pink: #e9c8cd;

  /* REMOVE visual noise colors (kept optional but unused) */
  --coral: transparent;
  --cobalt: transparent;
  --sun: transparent;
  --grass: transparent;
  --plum: transparent;
  --peach: transparent;
  --sky: transparent;
  --mint: transparent;
  --lemon: transparent;

  /* ---- Type tokens ---- */
  --display: 'Playfair Display', Georgia, serif;
  --serif: 'Playfair Display', Georgia, serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;

  --body: 'Inter', -apple-system, sans-serif;

  /* ---- Spacing system (clean editorial rhythm) ---- */
  --space-xs: 8px;
  --space-sm: 16px;
  --space-md: 24px;
  --space-lg: 48px;
  --space-xl: 72px;
  --space-xxl: 96px;

  /* ---- UI ---- */
  --radius: 12px;
}

  /* ---- Spacing scale (8-point grid) ---- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 80px;
  --space-10: 100px;
  --space-11: 120px;

  /* ---- Section vertical rhythm ---- */
  --section-y-sm: 48px;
  --section-y-md: 80px;
  --section-y-lg: 100px;
  --section-y-xl: 120px;

  /* ---- Container widths ---- */
  --container-max: 1320px;
  /* default magazine width */
  --container-wide: 1440px;
  /* hero / cover width */
  --container-narrow: 900px;
  /* prose / form width */
  --container-prose: 760px;
  /* article reading width */

  /* ---- Horizontal gutters ---- */
  --gutter-lg: 40px;
  /* desktop */
  --gutter-md: 28px;
  /* tablet */
  --gutter-sm: 20px;
  /* mobile */

  /* ---- Radii ---- */
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 32px;
  --radius-pill: 100px;

  /* ---- Motion ---- */
  --ease: cubic-bezier(.2, .7, .2, 1);
  --fast: .18s;
  --medium: .32s;
  --slow: .6s;
}

/* ---- Global reset & normalization ---- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
}

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

/* ---- Global site wrapper: the "global container" all pages share ---- */
.site {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  width: 100%;
  position: relative;
}

.site .site-main {
  display: flex;
  flex-direction: column;
}

.site>main,
.site>.site-main {
  flex: 1 0 auto;
}

.site>footer,
.site>.site-footer {
  flex-shrink: 0;
}

/* ---- Reusable container utilities ----
   These centre content and apply the canonical horizontal gutter. Drop one
   inside any full-bleed section to constrain its inner width. */
.container,
.container-wide,
.container-narrow,
.container-prose {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--gutter-lg);
  padding-right: var(--gutter-lg);
}

.container {
  max-width: var(--container-max);
}

.container-wide {
  max-width: var(--container-wide);
}

.container-narrow {
  max-width: var(--container-narrow);
}

.container-prose {
  max-width: var(--container-prose);
}

/* ---- Section rhythm utilities ---- */
.section {
  padding-top: var(--section-y-md);
  padding-bottom: var(--section-y-md);
}

.section-sm {
  padding-top: var(--section-y-sm);
  padding-bottom: var(--section-y-sm);
}

.section-lg {
  padding-top: var(--section-y-lg);
  padding-bottom: var(--section-y-lg);
}

.section-xl {
  padding-top: var(--section-y-xl);
  padding-bottom: var(--section-y-xl);
}

.section-flush {
  padding-top: 0;
  padding-bottom: 0;
}

/* ---- Responsive gutter down-shift ---- */
@media (max-width: 1100px) {

  .container,
  .container-wide,
  .container-narrow,
  .container-prose {
    padding-left: var(--gutter-md);
    padding-right: var(--gutter-md);
  }
}

@media (max-width: 720px) {

  .container,
  .container-wide,
  .container-narrow,
  .container-prose {
    padding-left: var(--gutter-sm);
    padding-right: var(--gutter-sm);
  }

  :root {
    --section-y-md: 56px;
    --section-y-lg: 72px;
    --section-y-xl: 88px;
  }
}

/* ---- Screen reader only helper ---- */
.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ==========================================================================
   END FOUNDATION — theme-scoped rules follow below
   ========================================================================== */


/* Vamika pages styles scoped to theme-pages — MARIE LOELL BRAND */

body.theme-pages {
  /* ---- Brand Colors (clean editorial system) ---- */

  --white: #ffffff;
  --cream: #f4efe8;
  --cream-2: #ece4d3;

  --ink: #1a1a1a;
  --ink-2: #2a2a2a;
  --ink-3: #666666;

  /* Controlled brand accent */
  --olive: #6d7755;
  --pink: #e9c8cd;

  /* REMOVE noisy demo colors */
  --coral: transparent;
  --cobalt: transparent;
  --sun: transparent;
  --grass: transparent;
  --plum: transparent;
  --peach: transparent;
  --sky: transparent;
  --mint: transparent;
  --lemon: transparent;

  /* ---- Typography (clean + editorial) ---- */
  --display: 'Playfair Display', Georgia, serif;
  --serif: 'Playfair Display', Georgia, serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;

  --body: 'Inter', -apple-system, sans-serif;
}

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Base layout */
body.theme-pages {
  background: var(--white);
  color: var(--ink);
  font-family: var(--body);
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* Optional: softer cream sections instead of full background chaos */
.section--soft {
  background: var(--cream);
}

body.theme-pages::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1000;
  opacity: 0.06;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

body.theme-pages ::selection {
  background: var(--sun);
  color: var(--ink);
}

body.theme-pages a {
  color: inherit;
  text-decoration: none;
}

/* =========================================================
     IRIS ICON
     ========================================================= */
body.theme-pages .iris-icon {
  width: 100%;
  height: 100%;
  overflow: visible;
}

body.theme-pages .iris-icon .face {
  fill: var(--cream);
  stroke: var(--ink);
  stroke-width: 4;
  transform-origin: 50% 55%;
  animation: irisBreathe 3.2s ease-in-out infinite;
}

@keyframes irisBreathe {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.04);
  }
}

body.theme-pages .iris-icon .eye {
  fill: var(--ink);
  transform-origin: center;
  animation: irisBlink 5s ease-in-out infinite;
}

body.theme-pages .iris-icon .eye.r {
  animation-delay: 0.05s;
}

@keyframes irisBlink {

  0%,
  92%,
  100% {
    transform: scaleY(1);
  }

  94%,
  98% {
    transform: scaleY(0.1);
  }
}

body.theme-pages .iris-icon .ring {
  fill: none;
  stroke: var(--coral);
  stroke-width: 3;
  transform-origin: 50% 55%;
  animation: irisRing 2.4s ease-out infinite;
  opacity: 0;
}

@keyframes irisRing {
  0% {
    transform: scale(0.85);
    opacity: 0.85;
  }

  80%,
  100% {
    transform: scale(1.4);
    opacity: 0;
  }
}

body.theme-pages .iris-icon .sparkle {
  fill: var(--sun);
  stroke: var(--ink);
  stroke-width: 2;
  transform-origin: 50% 50%;
  animation: irisSparkle 4s ease-in-out infinite;
}

@keyframes irisSparkle {

  0%,
  100% {
    transform: translate(0, 0) rotate(0deg) scale(1);
    opacity: 1;
  }

  25% {
    transform: translate(8px, -6px) rotate(45deg) scale(1.15);
  }

  50% {
    transform: translate(0, -10px) rotate(90deg) scale(1);
    opacity: 0.9;
  }

  75% {
    transform: translate(-8px, -6px) rotate(135deg) scale(1.15);
  }
}

body.theme-pages .iris-icon .mouth {
  fill: none;
  stroke: var(--ink);
  stroke-width: 3;
  stroke-linecap: round;
  animation: irisMouth 3.2s ease-in-out infinite;
  transform-origin: center;
}

@keyframes irisMouth {

  0%,
  100% {
    transform: scaleX(1);
  }

  50% {
    transform: scaleX(1.15);
  }
}

/* confused iris for 404 */
body.theme-pages .iris-icon.confused .mouth {
  animation: none;
  d: path("M 42,68 Q 50,62 58,68");
}

body.theme-pages .iris-icon.confused .eye {
  r: 4;
}

/* =========================================================
     PAGE SWITCHER (top bar for demo)
     ========================================================= */
body.theme-pages .page-switcher {
  background: var(--ink);
  color: var(--cream);
  padding: 12px 30px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  border-bottom: 2px solid var(--ink);
  position: sticky;
  top: 0;
  z-index: 150;
}

body.theme-pages .page-switcher .lbl {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--sun);
  margin-right: 8px;
}

body.theme-pages .page-switcher button {
  background: transparent;
  color: var(--cream);
  border: 1.5px solid var(--cream);
  border-radius: 100px;
  padding: 8px 16px;
  font-family: var(--display);
  font-weight: 500;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
}

body.theme-pages .page-switcher button:hover {
  background: var(--cream);
  color: var(--ink);
}

body.theme-pages .page-switcher button.active {
  background: var(--coral);
  color: var(--cream);
  border-color: var(--coral);
}

/* =========================================================
   NAV (MARIE LOELL — CLEAN EDITORIAL VERSION)
   ========================================================= */

body.theme-pages nav.topnav {
  padding: 20px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: sticky;
  top: 0;
  z-index: 100;

  background: var(--white);
  border-bottom: 1px solid rgba(26, 26, 26, 0.08);
}

/* BRAND */
body.theme-pages .brand {
  display: flex;
  align-items: baseline;
  gap: 8px;

  font-family: var(--display);
  font-weight: 600;
  font-size: 24px;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--ink);
}

/* REMOVE animated blob (too playful for your brand) */
body.theme-pages .brand .blob {
  display: none;
}

body.theme-pages .brand sup {
  font-family: var(--body);
  font-size: 10px;
  font-weight: 400;
  color: var(--ink-3);
  letter-spacing: 0.02em;
}

/* NAV WRAPPER */
body.theme-pages .nav-panel {
  display: flex;
  align-items: center;
  gap: 28px;
}

/* LINKS */
body.theme-pages .navlinks {
  display: flex;
  gap: 28px;
  list-style: none;

  font-family: var(--body);
  font-weight: 400;
  font-size: 14px;
}

/* LINK STYLE — clean underline hover instead of neon blocks */
body.theme-pages .navlinks a {
  position: relative;
  padding: 6px 0;
  color: var(--ink-2);
  text-decoration: none;
  transition: color 0.2s ease;
}

body.theme-pages .navlinks a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1px;
  width: 100%;
  background: var(--olive);

  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

body.theme-pages .navlinks a:hover::after,
body.theme-pages .navlinks a[aria-current='page']::after {
  transform: scaleX(1);
}

body.theme-pages .navlinks a:hover {
  color: var(--ink);
}

body.theme-pages .navlinks a[aria-current='page'] {
  color: var(--ink);
}

/* CTA BUTTON — minimal & calm */
body.theme-pages .nav-cta {
  background: var(--olive);
  color: var(--white);

  padding: 10px 18px;
  border-radius: 999px;

  font-family: var(--body);
  font-weight: 500;
  font-size: 13px;

  display: flex;
  align-items: center;
  gap: 6px;

  transition: opacity 0.2s ease;
}

body.theme-pages .nav-cta::after {
  content: '→';
  transition: transform 0.2s ease;
}

body.theme-pages .nav-cta:hover {
  opacity: 0.9;
}

body.theme-pages .nav-cta:hover::after {
  transform: translateX(3px);
}

/* MOBILE TOGGLE — simplified */
body.theme-pages .menu-toggle {
  display: none;

  border: 1px solid rgba(26, 26, 26, 0.2);
  background: var(--white);
  color: var(--ink);

  padding: 10px 14px;
  border-radius: 999px;

  font-family: var(--body);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* =========================================================
   MENU TOGGLE (clean editorial version)
   ========================================================= */

body.theme-pages .menu-toggle:hover {
  transform: translateY(-1px);
  background: var(--white);
  border-color: var(--ink);
  box-shadow: none;
  color: var(--ink);
}

body.theme-pages .topnav.menu-open .menu-toggle {
  background: var(--olive);
  color: var(--white);
  border-color: var(--olive);
}

/* =========================================================
   PAGE CONTAINER
   ========================================================= */

body.theme-pages .page {
  display: block;
}

body.theme-pages .page.active {
  display: block;
}

/* =========================================================
   BREADCRUMB (clean editorial system)
   ========================================================= */

body.theme-pages .breadcrumb {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 24px 40px 0;

  font-family: var(--body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;

  color: var(--ink-3);

  display: flex;
  align-items: center;
  gap: 8px;
}

/* LINKS */
body.theme-pages .breadcrumb a {
  color: var(--ink-2);
  text-decoration: none;
  transition: color 0.2s ease;
}

body.theme-pages .breadcrumb a:hover {
  color: var(--olive);
}

/* separator */
body.theme-pages .breadcrumb .sep {
  opacity: 0.4;
  color: var(--ink-3);
}

/* current page */
body.theme-pages .breadcrumb .curr {
  color: var(--ink);
  font-weight: 500;
}

/* =========================================================
   PAGE HERO — CLEAN EDITORIAL (MARIE LOELL)
   ========================================================= */

body.theme-pages .page-hero {
  padding: 80px 40px 90px;
  text-align: center;
  position: relative;
  overflow: hidden;
  background: var(--white);
}

/* EYEBROW — minimal instead of boxed badge */
body.theme-pages .page-hero .eyebrow {
  display: inline-block;

  font-family: var(--body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.18em;

  padding: 0;
  margin-bottom: 24px;

  border: none;
  background: transparent;
  box-shadow: none;

  color: var(--ink-3);
}

/* MAIN HEADLINE */
body.theme-pages .page-hero h1 {
  font-family: var(--display);
  font-weight: 600;

  font-size: clamp(44px, 7vw, 110px);
  line-height: 0.95;
  letter-spacing: -0.04em;

  margin-bottom: 28px;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;

  color: var(--ink);
}

/* REMOVE playful serif/emphasis coloring */
body.theme-pages .page-hero h1 em {
  font-family: var(--display);
  font-style: normal;
  font-weight: 600;
  color: var(--olive);
}

/* REMOVE highlight blocks (sun background = too loud) */
body.theme-pages .page-hero h1 .hl {
  padding: 0;
  position: relative;
}

body.theme-pages .page-hero h1 .hl::before {
  display: none;
}

/* LEDE TEXT */
body.theme-pages .page-hero .lede {
  font-family: var(--body);
  font-size: clamp(16px, 1.4vw, 20px);
  line-height: 1.7;

  color: var(--ink-3);
  font-weight: 400;

  max-width: 640px;
  margin: 0 auto;
}

/* REMOVE coral accents */
body.theme-pages .page-hero .lede em {
  font-style: normal;
  color: var(--ink);
  font-weight: 500;
}

/* =========================================================
     PAGE BODY (the_content wrapper on standard pages)
     Container width + gutters handled by .container-narrow
     in page.php — only typography rules needed here.
     ========================================================= */
body.theme-pages .page-body {
  padding-bottom: 60px;
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink);
}

body.theme-pages .page-body>*:first-child {
  margin-top: 0;
}

body.theme-pages .page-body>*:last-child {
  margin-bottom: 0;
}

body.theme-pages .page-body h1,
body.theme-pages .page-body h2,
body.theme-pages .page-body h3,
body.theme-pages .page-body h4,
body.theme-pages .page-body h5,
body.theme-pages .page-body h6 {
  font-family: var(--display);
  font-weight: 700;
  line-height: 1.15;
  margin: 1.6em 0 0.6em;
}

body.theme-pages .page-body h2 {
  font-size: clamp(28px, 3.5vw, 40px);
}

body.theme-pages .page-body h3 {
  font-size: clamp(22px, 2.5vw, 30px);
}

body.theme-pages .page-body h4 {
  font-size: clamp(18px, 2vw, 24px);
}

body.theme-pages .page-body p {
  margin: 0 0 1.2em;
}

body.theme-pages .page-body a {
  color: var(--cobalt);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 2px;
  transition: color 0.2s;
}

body.theme-pages .page-body a:hover {
  color: var(--coral);
}

body.theme-pages .page-body img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  border: 1.5px solid var(--ink);
  margin: 24px 0;
}

body.theme-pages .page-body ul,
body.theme-pages .page-body ol {
  padding-left: 24px;
  margin: 0 0 1.2em;
}

body.theme-pages .page-body li {
  margin-bottom: 6px;
}

@media (max-width: 720px) {
  body.theme-pages .page-body {
    font-size: 16px;
  }
}


/* =========================================================
   ABOUT PAGE — CLEAN EDITORIAL SYSTEM
   ========================================================= */

/* MANIFESTO */
body.theme-pages .about-manifesto {
  padding: 90px 40px;
  background: var(--white);
  border-top: 1px solid rgba(26, 26, 26, 0.08);
  border-bottom: 1px solid rgba(26, 26, 26, 0.08);
}

body.theme-pages .manifesto-inner {
  max-width: var(--container-narrow);
  margin: 0 auto;
  text-align: center;
}

/* KICKER */
body.theme-pages .manifesto-inner .kicker {
  font-family: var(--body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.18em;

  color: var(--ink-3);
  margin-bottom: 20px;
}

/* QUOTE */
body.theme-pages .manifesto-inner blockquote {
  font-family: var(--display);
  font-size: clamp(28px, 3.2vw, 46px);
  line-height: 1.3;
  letter-spacing: -0.02em;

  font-weight: 600;
  color: var(--ink);
}

/* remove coral emphasis */
body.theme-pages .manifesto-inner blockquote em {
  font-style: normal;
  color: var(--olive);
  font-weight: 600;
}

/* CITATION */
body.theme-pages .manifesto-inner cite {
  display: block;

  font-family: var(--body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;

  font-style: normal;
  margin-top: 28px;
  color: var(--ink-3);
}

/* =========================================================
   STATS — removed loud colors
   ========================================================= */

body.theme-pages .stats-bar {
  padding: 90px 40px;
  background: var(--cream);
}

body.theme-pages .stats-grid {
  max-width: 1100px;
  margin: 0 auto;

  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

body.theme-pages .stat-block {
  background: var(--white);
  border: 1px solid rgba(26, 26, 26, 0.12);
  border-radius: 16px;

  padding: 32px 24px;
  text-align: center;

  box-shadow: none;
  transition: transform 0.2s ease, border-color 0.2s ease;
}

body.theme-pages .stat-block:hover {
  transform: translateY(-2px);
  border-color: var(--ink);
}

/* REMOVE rainbow system colors */
body.theme-pages .stat-block:nth-child(n) {
  background: var(--white);
  color: var(--ink);
}

/* NUMBER */
body.theme-pages .stat-block .n {
  font-family: var(--display);
  font-weight: 600;
  font-size: 54px;
  line-height: 1;
  letter-spacing: -0.03em;

  color: var(--ink);
  margin-bottom: 6px;
}

/* LABEL */
body.theme-pages .stat-block .l {
  font-family: var(--body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.14em;

  color: var(--ink-3);
}

/* =========================================================
   TIMELINE — simplified, no neon dots
   ========================================================= */

body.theme-pages .timeline-section {
  padding: 100px 40px;
  background: var(--ink);
  color: var(--white);
}

body.theme-pages .timeline-header {
  max-width: 1000px;
  margin: 0 auto 60px;
  text-align: center;
}

body.theme-pages .timeline-header .ey {
  font-family: var(--body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.18em;

  padding: 0;
  border: none;
  color: rgba(255,255,255,0.6);
}

body.theme-pages .timeline-header h2 {
  font-family: var(--display);
  font-weight: 600;
  font-size: clamp(36px, 5vw, 72px);
  line-height: 1.05;
  letter-spacing: -0.03em;

  color: var(--white);
}

/* remove color chaos */
body.theme-pages .timeline-header h2 em {
  font-style: normal;
  color: var(--olive);
}

/* LINE */
body.theme-pages .timeline::before {
  background: rgba(255,255,255,0.12);
}

/* DOTS — unified */
body.theme-pages .timeline-item::before {
  background: var(--olive);
  border: none;
}

/* content */
body.theme-pages .timeline-item .year {
  font-family: var(--display);
  color: var(--white);
  font-size: 24px;
}

body.theme-pages .timeline-item .content h4 {
  color: var(--white);
}

body.theme-pages .timeline-item .content p {
  color: rgba(255,255,255,0.7);
}

/* =========================================================
   TEAM — remove color blocks
   ========================================================= */

body.theme-pages .team-card {
  background: var(--white);
  border: 1px solid rgba(26,26,26,0.12);
  border-radius: 16px;
  overflow: hidden;
  transition: transform 0.2s ease, border-color 0.2s ease;
}

body.theme-pages .team-card:hover {
  transform: translateY(-2px);
  border-color: var(--ink);
  box-shadow: none;
}

/* remove rainbow portraits */
body.theme-pages .team-card:nth-child(n) .portrait {
  background: var(--cream);
}

/* role */
body.theme-pages .team-card .role {
  color: var(--olive);
}

/* pill stays but softened */
body.theme-pages .iris-team-pill {
  border: 1px solid rgba(26,26,26,0.2);
  background: var(--white);
}

/* =========================================================
     CONTACT PAGE
     ========================================================= */
body.theme-pages .contact-tracks {
  padding: 80px 40px;
}

body.theme-pages .tracks-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

body.theme-pages .track-card {
  border: 2px solid var(--ink);
  border-radius: 20px;
  padding: 38px 32px;
  box-shadow: 6px 6px 0 var(--ink);
  transition: all 0.25s;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

body.theme-pages .track-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 9px 9px 0 var(--ink);
}

body.theme-pages .track-card:nth-child(1) {
  background: var(--coral);
  color: var(--cream);
}

body.theme-pages .track-card:nth-child(2) {
  background: var(--sun);
}

body.theme-pages .track-card:nth-child(3) {
  background: var(--cobalt);
  color: var(--cream);
}

body.theme-pages .track-card .num {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  opacity: 0.7;
  margin-bottom: 16px;
}

body.theme-pages .track-card h3 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 36px;
  line-height: 0.95;
  letter-spacing: -0.025em;
  margin-bottom: 16px;
  font-variation-settings: "opsz"72;
}

body.theme-pages .track-card h3 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
}

body.theme-pages .track-card p {
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.5;
  font-weight: 300;
  margin-bottom: 24px;
  opacity: 0.95;
}

body.theme-pages .track-card .email {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 500;
  padding: 10px 16px;
  display: inline-block;
  border: 1.5px solid currentColor;
  border-radius: 100px;
  transition: all 0.2s;
}

body.theme-pages .track-card:hover .email {
  background: var(--ink);
  color: var(--cream);
  border-color: var(--ink);
}

/* Contact form */
body.theme-pages .contact-form-section {
  padding: 100px 40px;
  background: var(--cream-2);
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
}

body.theme-pages .contact-form-wrap {
  max-width: var(--container-prose);
  margin: 0 auto;
}

body.theme-pages .contact-form-wrap .header {
  text-align: center;
  margin-bottom: 50px;
}

body.theme-pages .contact-form-wrap .header h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(36px, 5vw, 68px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  margin-bottom: 16px;
  font-variation-settings: "opsz"96;
}

body.theme-pages .contact-form-wrap .header h2 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

body.theme-pages .contact-form-wrap .header p {
  font-family: var(--serif);
  font-size: 17px;
  color: var(--ink-2);
  font-weight: 300;
}

body.theme-pages .form-card {
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 24px;
  padding: 40px;
  box-shadow: 8px 8px 0 var(--ink);
}

body.theme-pages .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 22px;
}

body.theme-pages .form-field {
  display: flex;
  flex-direction: column;
}

body.theme-pages .form-field label {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-2);
  margin-bottom: 8px;
  font-weight: 500;
}

body.theme-pages .form-field input,
body.theme-pages .form-field select,
body.theme-pages .form-field textarea {
  background: var(--cream-2);
  border: 1.5px solid var(--ink);
  border-radius: 12px;
  padding: 14px 18px;
  font-family: var(--display);
  font-size: 14px;
  color: var(--ink);
  outline: none;
  transition: all 0.2s;
  width: 100%;
}

body.theme-pages .form-field input:focus,
body.theme-pages .form-field select:focus,
body.theme-pages .form-field textarea:focus {
  background: var(--lemon);
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--ink);
}

body.theme-pages .form-field textarea {
  min-height: 140px;
  resize: vertical;
  font-family: var(--serif);
  line-height: 1.5;
}

body.theme-pages .form-field.full {
  grid-column: 1 / -1;
}

body.theme-pages .form-submit {
  background: var(--ink);
  color: var(--cream);
  border: 2px solid var(--ink);
  padding: 18px 40px;
  border-radius: 100px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  cursor: pointer;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
}

body.theme-pages .form-submit:hover {
  background: var(--coral);
  border-color: var(--coral);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
}

body.theme-pages .form-submit::after {
  content: '→';
}

/* =========================================================
     ARCHIVE PAGE
     ========================================================= */
body.theme-pages .archive-section {
  padding-top: 80px;
  padding-bottom: 120px;
}

body.theme-pages .year-group {
  margin-bottom: 80px;
}

body.theme-pages .year-header {
  display: flex;
  align-items: baseline;
  gap: 24px;
  padding-bottom: 20px;
  border-bottom: 3px double var(--ink);
  margin-bottom: 40px;
}

body.theme-pages .year-header .yr {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(60px, 8vw, 120px);
  line-height: 0.85;
  letter-spacing: -0.04em;
  font-variation-settings: "opsz"96;
}

body.theme-pages .year-header .yr em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

body.theme-pages .year-header .count {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-2);
  padding: 6px 14px;
  background: var(--sun);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  white-space: nowrap;
}

body.theme-pages .issue-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

body.theme-pages .issue-card {
  background: var(--cream-2);
  border: 2px solid var(--ink);
  border-radius: 20px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.2, 0.9, 0.3, 1);
  display: flex;
  flex-direction: column;
  position: relative;
}

body.theme-pages .issue-card:hover {
  transform: translate(-3px, -3px) rotate(-0.8deg);
  box-shadow: 8px 8px 0 var(--ink);
}

body.theme-pages .issue-cover {
  aspect-ratio: 4 / 3;
  border-bottom: 2px solid var(--ink);
  position: relative;
  overflow: hidden;
}

body.theme-pages .issue-cover .story-img {
  height: 100%;
}

body.theme-pages .issue-cover svg {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

body.theme-pages .issue-cover img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

body.theme-pages .issue-cover .vol {
  position: absolute;
  top: 16px;
  left: 16px;
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  background: var(--cream);
  color: var(--ink);
  padding: 5px 10px;
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  font-weight: 500;
}

body.theme-pages .issue-info {
  padding: 20px 22px 22px;
}

body.theme-pages .issue-info .num {
  font-family: var(--display);
  font-weight: 800;
  font-size: 30px;
  line-height: 0.9;
  letter-spacing: -0.03em;
  margin-bottom: 4px;
  font-variation-settings: "opsz"72;
}

body.theme-pages .issue-info .num em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

body.theme-pages .issue-info .date {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-2);
  margin-bottom: 14px;
}

body.theme-pages .issue-info .theme {
  font-family: var(--serif);
  font-size: 14px;
  font-style: italic;
  color: var(--ink);
  line-height: 1.3;
  padding-top: 12px;
  border-top: 1px dashed var(--ink);
}

body.theme-pages .issue-iris-pill {
  position: absolute;
  top: 16px;
  right: 16px;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: var(--cream);
  padding: 4px;
  display: inline-flex;
  align-items: center;
  gap: 0;
  cursor: pointer;
  box-shadow: 3px 3px 0 var(--ink);
  width: 36px;
  height: 36px;
  justify-content: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, padding-right 0.2s ease, gap 0.2s ease, width 0.2s ease;
}

body.theme-pages .issue-card:hover .issue-iris-pill,
body.theme-pages .issue-card:focus-within .issue-iris-pill,
body.theme-pages .issue-iris-pill:focus-visible {
  background: var(--sun);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
  padding-right: 14px;
  gap: 8px;
  width: auto;
}

body.theme-pages .issue-iris-pill .pill-icon {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1;
}

body.theme-pages .issue-card:hover .issue-iris-pill .pill-icon,
body.theme-pages .issue-card:focus-within .issue-iris-pill .pill-icon,
body.theme-pages .issue-iris-pill:focus-visible .pill-icon {
  animation: irisPillSpin 1.2s linear infinite;
}

body.theme-pages .issue-iris-pill .txt {
  font-family: var(--display);
  font-size: 13px;
  letter-spacing: 0.02em;
  white-space: nowrap;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-width 0.2s ease, opacity 0.2s ease;
}

body.theme-pages .issue-card:hover .issue-iris-pill .txt,
body.theme-pages .issue-card:focus-within .issue-iris-pill .txt,
body.theme-pages .issue-iris-pill:focus-visible .txt {
  max-width: 90px;
  opacity: 1;
}

/* =========================================================
     CATEGORY PAGE
     ========================================================= */
body.theme-pages .category-header {
  background: var(--cobalt);
  color: var(--cream);
  padding: 80px 40px 100px;
  border-bottom: 2px solid var(--ink);
  position: relative;
  overflow: hidden;
  text-align: center;
}

body.theme-pages .category-header::before,
body.theme-pages .category-header::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  border: 2px solid var(--ink);
}

body.theme-pages .category-header::before {
  width: 220px;
  height: 220px;
  background: var(--sun);
  top: -80px;
  left: -80px;
}

body.theme-pages .category-header::after {
  width: 180px;
  height: 180px;
  background: var(--coral);
  bottom: -60px;
  right: -60px;
}

body.theme-pages .category-header .inner {
  position: relative;
  z-index: 2;
}

body.theme-pages .category-header .ey {
  display: inline-block;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  padding: 8px 18px;
  border: 1.5px solid var(--cream);
  border-radius: 100px;
  margin-bottom: 30px;
}

body.theme-pages .category-header h1 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(64px, 10vw, 160px);
  line-height: 0.85;
  letter-spacing: -0.04em;
  margin-bottom: 24px;
  font-variation-settings: "opsz"144;
}

body.theme-pages .category-header h1 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
  color: var(--sun);
}

body.theme-pages .category-header p {
  font-family: var(--serif);
  font-size: clamp(18px, 1.8vw, 24px);
  line-height: 1.5;
  font-weight: 300;
  max-width: 620px;
  margin: 0 auto 30px;
  opacity: 0.95;
}

body.theme-pages .category-header .meta {
  display: flex;
  justify-content: center;
  gap: 40px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  opacity: 0.85;
}

body.theme-pages .category-header .meta strong {
  display: block;
  font-family: var(--display);
  font-size: 28px;
  font-weight: 700;
  color: var(--sun);
  margin-bottom: 4px;
  text-transform: none;
  letter-spacing: -0.02em;
}

/* Category filters */
body.theme-pages .category-filters {
  padding: 40px 40px;
  border-bottom: 1.5px solid var(--ink);
  background: var(--cream-2);
}

body.theme-pages .filters-inner {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

body.theme-pages .filters-inner .label {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-2);
  margin-right: 8px;
}

body.theme-pages .filter-pill {
  padding: 9px 18px;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

body.theme-pages .filter-pill:hover,
body.theme-pages .filter-pill.active {
  background: var(--ink);
  color: var(--cream);
}

body.theme-pages .category-body {
  padding: 70px 40px 100px;
}

body.theme-pages .cat-stories {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

body.theme-pages .cat-story {
  background: var(--cream-2);
  border: 2px solid var(--ink);
  border-radius: 20px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.25s;
  display: flex;
  flex-direction: column;
}

body.theme-pages [data-href] {
  cursor: pointer;
}

body.theme-pages .cat-story:hover {
  transform: translate(-3px, -3px);
  box-shadow: 8px 8px 0 var(--ink);
}

body.theme-pages .cat-story .img {
  aspect-ratio: 4/3;
  border-bottom: 2px solid var(--ink);
  overflow: hidden;
}

body.theme-pages .cat-story .img svg {
  width: 100%;
  height: 100%;
  display: block;
  transition: transform 0.5s;
}

body.theme-pages .cat-story:hover .img svg {
  transform: scale(1.06);
}

body.theme-pages .cat-story .body {
  padding: 22px 24px 26px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

body.theme-pages .cat-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  padding: 4px 10px;
  border-radius: 100px;
  border: 1.5px solid var(--ink);
  font-weight: 500;
  align-self: flex-start;
  margin-bottom: 14px;
  background: var(--sky);
}

body.theme-pages .cat-story .body h3 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 12px;
  font-variation-settings: "opsz"72;
}

body.theme-pages .cat-story .body p {
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-2);
  margin-bottom: 18px;
  font-weight: 300;
}

body.theme-pages .cat-story .foot {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-2);
  padding-top: 14px;
  border-top: 1px dashed var(--ink);
  margin-top: auto;
}

/* Load more */
body.theme-pages .load-more-row {
  display: flex;
  justify-content: center;
  margin-top: 60px;
}

body.theme-pages .load-more-btn {
  background: var(--ink);
  color: var(--cream);
  border: 2px solid var(--ink);
  padding: 16px 36px;
  border-radius: 100px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  cursor: pointer;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body.theme-pages .load-more-btn:hover {
  background: var(--sun);
  color: var(--ink);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
}

/* =========================================================
     AUTHOR PAGE
     ========================================================= */
body.theme-pages .author-hero {
  padding: 80px 40px;
  background: var(--plum);
  color: var(--cream);
  border-bottom: 2px solid var(--ink);
  position: relative;
  overflow: hidden;
}

body.theme-pages .author-hero::before {
  content: '';
  position: absolute;
  width: 300px;
  height: 300px;
  background: var(--sun);
  border: 2px solid var(--ink);
  border-radius: 50%;
  top: -100px;
  right: -80px;
  opacity: 0.85;
}

body.theme-pages .author-hero-inner {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 60px;
  align-items: center;
  position: relative;
  z-index: 2;
}

body.theme-pages .author-portrait {
  aspect-ratio: 1;
  background: var(--sun);
  border: 2.5px solid var(--ink);
  border-radius: 50%;
  box-shadow: 8px 8px 0 var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: 96px;
  color: var(--ink);
  font-weight: 500;
  overflow: hidden;
  position: relative;
}

body.theme-pages .author-portrait svg {
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  inset: 0;
}

body.theme-pages .author-details .kicker {
  display: inline-block;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  padding: 6px 14px;
  border: 1.5px solid var(--cream);
  border-radius: 100px;
  margin-bottom: 18px;
}

body.theme-pages .author-details h1 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(52px, 7vw, 96px);
  line-height: 0.9;
  letter-spacing: -0.035em;
  margin-bottom: 22px;
  font-variation-settings: "opsz"96;
}

body.theme-pages .author-details h1 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--sun);
}

body.theme-pages .author-details .bio {
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.55;
  font-weight: 300;
  max-width: 580px;
  margin-bottom: 28px;
  opacity: 0.95;
}

body.theme-pages .author-details .bio em {
  color: var(--sun);
  font-style: italic;
  font-weight: 400;
}

body.theme-pages .author-socials {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

body.theme-pages .social-pill {
  padding: 10px 20px;
  background: var(--cream);
  color: var(--ink);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 500;
  transition: all 0.2s;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

body.theme-pages .social-pill:hover {
  background: var(--sun);
  transform: translate(-2px, -2px);
  box-shadow: 3px 3px 0 var(--ink);
}

body.theme-pages .author-stats {
  display: flex;
  gap: 40px;
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1.5px dashed rgba(244, 239, 230, 0.4);
}

body.theme-pages .author-stats .s .v {
  font-family: var(--display);
  font-weight: 700;
  font-size: 32px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--sun);
}

body.theme-pages .author-stats .s .k {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-top: 4px;
  opacity: 0.85;
}

body.theme-pages .author-articles {
  padding-top: 100px;
  padding-bottom: 100px;
}

body.theme-pages .author-articles h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  margin-bottom: 50px;
  font-variation-settings: "opsz"96;
  text-align: center;
}

body.theme-pages .author-articles h2 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

body.theme-pages .author-articles .list {}

body.theme-pages .author-article-row {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: 30px;
  padding: 30px 0;
  border-bottom: 1.5px solid var(--ink);
  align-items: center;
  cursor: pointer;
  transition: all 0.2s;
}

body.theme-pages .author-article-row:hover {
  background: var(--lemon);
  padding-left: 16px;
  padding-right: 16px;
  margin-left: -16px;
  margin-right: -16px;
}

body.theme-pages .author-article-row .n {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink-2);
  letter-spacing: 0.05em;
}

body.theme-pages .author-article-row .content .c {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--coral);
  margin-bottom: 6px;
  font-weight: 500;
}

body.theme-pages .author-article-row .content h4 {
  font-family: var(--display);
  font-weight: 600;
  font-size: 22px;
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin-bottom: 4px;
}

body.theme-pages .author-article-row .content .d {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--ink-2);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

body.theme-pages .author-article-row .arrow {
  font-family: var(--display);
  font-size: 22px;
  color: var(--ink);
  transition: transform 0.2s;
}

body.theme-pages .author-article-row:hover .arrow {
  transform: translateX(4px);
  color: var(--coral);
}

/* =========================================================
     SEARCH RESULTS
     ========================================================= */
body.theme-pages .search-hero {
  padding: 70px 40px;
  background: var(--cream-2);
  border-bottom: 2px solid var(--ink);
}

body.theme-pages .search-inner {
  text-align: center;
}

body.theme-pages .search-inner .kicker {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--coral);
  margin-bottom: 18px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

body.theme-pages .search-inner .kicker::before,
body.theme-pages .search-inner .kicker::after {
  content: '';
  width: 30px;
  height: 1.5px;
  background: var(--coral);
}

body.theme-pages .search-inner h1 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(40px, 5.5vw, 72px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  margin-bottom: 30px;
  font-variation-settings: "opsz"96;
}

body.theme-pages .search-inner h1 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

body.theme-pages .search-box {
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 100px;
  padding: 6px 6px 6px 24px;
  display: flex;
  align-items: center;
  gap: 14px;
  max-width: 640px;
  margin: 0 auto 18px;
  box-shadow: 6px 6px 0 var(--ink);
}

body.theme-pages .search-box .searchform {
  width: 100%;
  display: flex;
}

body.theme-pages .search-box .icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--coral);
  border: 1.5px solid var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

body.theme-pages .search-box .icon svg {
  width: 70%;
  height: 70%;
}

body.theme-pages .search-box input {
  flex: 1;
  background: transparent;
  border: none;
  font-family: var(--serif);
  font-style: italic;
  font-size: 18px;
  color: var(--ink);
  outline: none;
  padding: 14px 0;
  min-width: 0;
}

body.theme-pages .search-box input[type="search"] {
  border: none;
  box-shadow: none;
}

body.theme-pages .search-box input::placeholder {
  color: var(--ink-2);
  opacity: 0.5;
}

body.theme-pages .search-box button,
body.theme-pages .search-box a {
  background: var(--ink);
  color: var(--cream);
  border: none;
  padding: 14px 28px;
  border-radius: 100px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: all 0.2s;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body.theme-pages .search-box button:hover,
body.theme-pages .search-box a:hover {
  background: var(--coral);
}

body.theme-pages .search-stats {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
}

body.theme-pages .search-stats strong {
  color: var(--coral);
  font-family: var(--display);
}

body.theme-pages .search-results {
  padding: 70px 40px 100px;
}

body.theme-pages .search-results-inner {}

body.theme-pages .search-result {
  display: grid;
  grid-template-columns: 70px 1fr 100px;
  gap: 30px;
  padding: 30px 0;
  border-bottom: 1.5px solid var(--ink);
  align-items: center;
  cursor: pointer;
  transition: all 0.25s;
}

body.theme-pages .search-result:first-child {
  border-top: 1.5px solid var(--ink);
}

body.theme-pages .search-result:hover {
  background: var(--lemon);
  padding-left: 20px;
  padding-right: 20px;
  margin-left: -20px;
  margin-right: -20px;
}

body.theme-pages .search-result .rank {
  font-family: var(--display);
  font-weight: 800;
  font-size: 36px;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--ink-2);
  font-variation-settings: "opsz"72;
}

body.theme-pages .search-result .content .c {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--coral);
  margin-bottom: 6px;
  font-weight: 500;
}

body.theme-pages .search-result .content h4 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 22px;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin-bottom: 8px;
}

body.theme-pages .search-result .content .excerpt {
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-2);
  font-weight: 300;
}

body.theme-pages .search-result .content .excerpt mark {
  background: var(--sun);
  color: var(--ink);
  padding: 0 2px;
}

body.theme-pages .search-result .match {
  text-align: right;
}

body.theme-pages .search-result .match .v {
  font-family: var(--display);
  font-weight: 800;
  font-size: 32px;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--coral);
  font-variation-settings: "opsz"72;
}

body.theme-pages .search-result .match .l {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-top: 4px;
}

/* =========================================================
     404 PAGE
     ========================================================= */
body.theme-pages .notfound {
  padding: 80px 40px 120px;
  text-align: center;
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

body.theme-pages .notfound-inner {
  max-width: 720px;
  position: relative;
}

body.theme-pages .notfound-iris {
  width: 160px;
  height: 160px;
  margin: 0 auto 40px;
  background: var(--coral);
  border: 2.5px solid var(--ink);
  border-radius: 50%;
  box-shadow: 8px 8px 0 var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: wobble 3s ease-in-out infinite;
}

@keyframes wobble {

  0%,
  100% {
    transform: rotate(-4deg);
  }

  50% {
    transform: rotate(4deg);
  }
}

body.theme-pages .notfound-iris svg {
  width: 70%;
  height: 70%;
}

body.theme-pages .notfound .code {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(140px, 22vw, 280px);
  line-height: 0.85;
  letter-spacing: -0.05em;
  color: var(--ink);
  font-variation-settings: "opsz"144;
  margin-bottom: 20px;
  position: relative;
}

body.theme-pages .notfound .code em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
  color: var(--coral);
}

body.theme-pages .notfound h1 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1;
  letter-spacing: -0.025em;
  margin-bottom: 20px;
  font-variation-settings: "opsz"72;
}

body.theme-pages .notfound h1 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

body.theme-pages .notfound p {
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.5;
  color: var(--ink-2);
  font-weight: 300;
  margin-bottom: 40px;
}

body.theme-pages .notfound-actions {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

body.theme-pages .notfound-actions button,
body.theme-pages .notfound-actions a {
  padding: 16px 32px;
  border-radius: 100px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  border: 2px solid var(--ink);
  transition: all 0.2s;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

body.theme-pages .notfound-actions .primary {
  background: var(--ink);
  color: var(--cream);
}

body.theme-pages .notfound-actions .primary:hover {
  background: var(--coral);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
}

body.theme-pages .notfound-actions .secondary {
  background: var(--sun);
  color: var(--ink);
}

body.theme-pages .notfound-actions .secondary:hover {
  background: var(--cream);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
}

body.theme-pages .notfound-suggest {
  margin-top: 70px;
  padding-top: 40px;
  border-top: 1.5px dashed var(--ink);
}

body.theme-pages .notfound-suggest .lbl {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--ink-2);
  margin-bottom: 18px;
}

body.theme-pages .notfound-suggest .pills {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

body.theme-pages .notfound-suggest .pill {
  padding: 8px 16px;
  background: var(--cream-2);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  font-family: var(--display);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body.theme-pages .notfound-suggest .pill:hover {
  background: var(--sun);
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--ink);
}

/* =========================================================
     FOOTER (shared)
     ========================================================= */
body.theme-pages .site-footer {
  background: var(--ink);
  color: var(--cream);
  padding: 80px 40px 40px;
}

body.theme-pages .footer-top {
  margin-bottom: 60px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 50px;
}

body.theme-pages .footer-brand {
  font-family: var(--display);
  font-weight: 800;
  font-size: 80px;
  line-height: 0.85;
  letter-spacing: -0.04em;
}

body.theme-pages .footer-brand .blob {
  display: inline-block;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--coral);
  vertical-align: middle;
  margin-right: 8px;
  border: 2px solid var(--cream);
}

body.theme-pages .footer-tagline {
  font-family: var(--serif);
  font-style: italic;
  font-size: 17px;
  max-width: 300px;
  margin-top: 20px;
  opacity: 0.8;
  line-height: 1.5;
}

body.theme-pages .footer-col h6 {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 18px;
  color: var(--sun);
  font-weight: 500;
}

body.theme-pages .footer-col ul {
  list-style: none;
}

body.theme-pages .footer-col li {
  margin-bottom: 10px;
}

body.theme-pages .footer-col a {
  font-family: var(--display);
  font-size: 14px;
  opacity: 0.8;
  transition: all 0.15s;
}

body.theme-pages .footer-col a:hover {
  color: var(--coral);
  opacity: 1;
}

.footer-nav {
  grid-column: 1 / -1;
  padding-top: 20px;
  border-top: 1px solid rgba(244, 239, 230, 0.1);
}

.footer-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
}

.footer-nav li {
  margin: 0;
}

.footer-nav a {
  font-family: var(--display);
  font-size: 14px;
  opacity: 0.8;
  transition: all 0.15s;
}

.footer-nav a:hover {
  color: var(--coral);
  opacity: 1;
}

body.theme-pages .footer-bottom {
  padding-top: 30px;
  border-top: 1px solid rgba(244, 239, 230, 0.2);
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.6;
}

/* =========================================================
     FLOATING IRIS DOCK
     ========================================================= */
body.theme-pages .iris-dock {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 200;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
}

body.theme-pages .iris-dock-btn {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--coral);
  border: 2px solid var(--ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 4px 4px 0 var(--ink);
  transition: all 0.2s;
  position: relative;
  animation: dockBob 3.4s ease-in-out infinite;
  padding: 0;
}

body.theme-pages .iris-dock-btn svg {
  width: 70%;
  height: 70%;
}

body.theme-pages .iris-dock-btn .dock-glyph {
  width: 60%;
  height: 60%;
  overflow: visible;
}

body.theme-pages .iris-dock-btn .dock-glyph path {
  fill: var(--cream);
  stroke: var(--ink);
  stroke-width: 3;
  stroke-linejoin: round;
}

@keyframes dockBob {

  0%,
  100% {
    transform: translateY(0) rotate(-3deg);
  }

  50% {
    transform: translateY(-5px) rotate(3deg);
  }
}

body.theme-pages .iris-dock-btn:hover {
  background: var(--cobalt);
  transform: scale(1.08) rotate(0deg);
  box-shadow: 6px 6px 0 var(--ink);
}

body.theme-pages .iris-dock-btn .ping {
  position: absolute;
  top: 0;
  right: 0;
  width: 13px;
  height: 13px;
  background: var(--grass);
  border: 2px solid var(--ink);
  border-radius: 50%;
  animation: pingPulse 2s ease-in-out infinite;
}

@keyframes pingPulse {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.25);
  }
}

/* ── Dock bubble + panel (theme-pages) ─────────────────────── */
body.theme-pages .iris-dock-bubble {
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 18px;
  padding: 12px 18px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  color: var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
  position: relative;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(8px) scale(0.95);
  transform-origin: bottom right;
  pointer-events: none;
  transition: all 0.25s cubic-bezier(0.2, 0.9, 0.3, 1);
}

body.theme-pages .iris-dock-bubble::after {
  content: '';
  position: absolute;
  bottom: -10px;
  right: 28px;
  width: 16px;
  height: 16px;
  background: var(--cream);
  border-right: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  transform: rotate(45deg);
}

body.theme-pages .iris-dock-bubble em {
  font-family: var(--serif);
  font-style: italic;
  color: var(--coral);
  font-weight: 500;
}

body.theme-pages .iris-dock:hover .iris-dock-bubble {
  opacity: 1;
  transform: translateY(0) scale(1);
}

body.theme-pages .iris-dock-panel {
  position: fixed;
  bottom: 120px;
  right: 30px;
  width: 360px;
  background: var(--cream-2);
  border: 2px solid var(--ink);
  border-radius: 20px;
  box-shadow: 8px 8px 0 var(--ink);
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px) scale(0.95);
  transform-origin: bottom right;
  transition: all 0.3s cubic-bezier(0.2, 0.9, 0.3, 1);
  z-index: 199;
}

body.theme-pages .iris-dock-panel.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

body.theme-pages .iris-dock-panel-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 18px;
  border-bottom: 1.5px dashed var(--ink);
  margin-bottom: 18px;
}

body.theme-pages .iris-dock-panel-header .av {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--coral);
  border: 1.5px solid var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 2px 2px 0 var(--ink);
}

body.theme-pages .iris-dock-panel-header .av svg {
  width: 70%;
  height: 70%;
}

body.theme-pages .iris-dock-panel-header .info .name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 16px;
}

body.theme-pages .iris-dock-panel-header .info .sub {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-top: 2px;
}

body.theme-pages .iris-dock-panel-header .close {
  margin-left: auto;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  cursor: pointer;
  font-family: var(--display);
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

body.theme-pages .iris-dock-panel-header .close:hover {
  background: var(--coral);
  color: var(--cream);
}

body.theme-pages .iris-dock-panel-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 18px;
  max-height: 280px;
  overflow-y: auto;
}

body.theme-pages .dp-msg {
  display: flex;
  gap: 10px;
  max-width: 88%;
  animation: dpMsgIn 0.4s cubic-bezier(0.2, 0.9, 0.3, 1) both;
}

body.theme-pages .dp-msg.u {
  align-self: flex-end;
}

body.theme-pages .dp-msg.u .bb {
  background: var(--ink);
  color: var(--cream);
  border-color: var(--ink);
  border-radius: 14px 14px 4px 14px;
}

body.theme-pages .dp-msg .bb {
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 14px 14px 14px 4px;
  padding: 10px 14px;
  font-family: var(--serif);
  font-size: 13px;
  line-height: 1.45;
}

body.theme-pages .dp-msg .bb strong {
  color: var(--coral);
  font-family: var(--display);
  font-weight: 600;
}

body.theme-pages .iris-dock-panel-prompts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}

body.theme-pages .iris-dock-panel-prompts button {
  padding: 6px 12px;
  background: var(--lemon);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: all 0.2s;
  font-weight: 500;
}

body.theme-pages .iris-dock-panel-prompts button:hover {
  background: var(--coral);
  color: var(--cream);
}

body.theme-pages .iris-dock-panel-input {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 12px;
  padding: 10px 14px;
}

body.theme-pages .iris-dock-panel-input input {
  flex: 1;
  background: transparent;
  border: none;
  font-family: var(--display);
  font-size: 13px;
  outline: none;
  min-width: 0;
}

body.theme-pages .iris-dock-panel-input button {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--ink);
  color: var(--cream);
  border: none;
  cursor: pointer;
  font-size: 14px;
  flex-shrink: 0;
  transition: all 0.2s;
}

body.theme-pages .iris-dock-panel-input button:hover {
  background: var(--coral);
  transform: rotate(-12deg);
}

body.theme-pages .dp-msg--thinking .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--coral);
  display: inline-block;
  animation: vamikaDot 1.2s ease-in-out infinite both;
}

body.theme-pages .dp-msg--thinking .dot:nth-child(2) {
  animation-delay: 0.2s;
}

body.theme-pages .dp-msg--thinking .dot:nth-child(3) {
  animation-delay: 0.4s;
}

body.theme-pages .dp-sources {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
  padding: 0 2px;
  animation: dpMsgIn 0.4s cubic-bezier(0.2, 0.9, 0.3, 1) both;
}

body.theme-pages .dp-sources a {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink);
  text-decoration: none;
  background: var(--lemon);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  padding: 3px 10px;
  transition: background 0.2s, color 0.2s;
}

body.theme-pages .dp-sources a:hover {
  background: var(--coral);
  color: var(--cream);
}

/* =========================================================
     RESPONSIVE
     ========================================================= */
body.theme-pages @media (max-width: 1100px) {
  .stats-grid {
    grid-template-columns: 1fr 1fr;
  }

  .team-grid {
    grid-template-columns: 1fr 1fr;
  }

  .tracks-grid {
    grid-template-columns: 1fr;
  }

  .issue-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .cat-stories {
    grid-template-columns: 1fr 1fr;
  }

  .author-hero-inner {
    grid-template-columns: 1fr;
    gap: 40px;
    text-align: center;
  }

  .author-portrait {
    max-width: 240px;
    margin: 0 auto;
  }

  .author-socials {
    justify-content: center;
  }

  .author-stats {
    justify-content: center;
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
  }

  .footer-brand {
    grid-column: 1 / -1;
    font-size: 60px;
  }
}

@media (max-width: 720px) {
  body.theme-pages nav.topnav {
    padding: 16px 20px;
    flex-wrap: wrap;
    gap: 14px;
  }

  body.theme-pages .menu-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  body.theme-pages .nav-panel {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
    padding: 20px;
    margin-top: 4px;
    background: var(--cream);
    border: 1.5px solid var(--ink);
    border-radius: 28px;
    box-shadow: 6px 6px 0 var(--ink);
  }

  body.theme-pages .topnav.menu-open .nav-panel {
    display: flex;
  }

  body.theme-pages .navlinks {
    display: grid;
    gap: 8px;
  }

  body.theme-pages .navlinks a {
    display: block;
    padding: 12px 14px;
    border-radius: 16px;
    background: var(--cream-2);
  }

  body.theme-pages .navlinks a::after {
    display: none;
  }

  body.theme-pages .navlinks a[aria-current='page'] {
    background: var(--sun);
    color: var(--ink);
  }

  body.theme-pages .nav-cta {
    width: 100%;
    justify-content: center;
  }

  body.theme-pages .container,
  body.theme-pages .page-hero,
  body.theme-pages .about-manifesto,
  body.theme-pages .stats-bar,
  body.theme-pages .timeline-section,
  body.theme-pages .team-section,
  body.theme-pages .contact-tracks,
  body.theme-pages .contact-form-section,
  body.theme-pages .archive-section,
  body.theme-pages .category-header,
  body.theme-pages .category-filters,
  body.theme-pages .category-body,
  body.theme-pages .author-hero,
  body.theme-pages .author-articles,
  body.theme-pages .search-hero,
  body.theme-pages .search-results,
  body.theme-pages .notfound {
    padding-left: 20px;
    padding-right: 20px;
  }

  body.theme-pages .breadcrumb {
    padding: 24px 20px 0;
    font-size: 10px;
    gap: 6px;
  }

  body.theme-pages .stats-grid {
    grid-template-columns: 1fr;
  }

  body.theme-pages .stat-block .n {
    font-size: 54px;
  }

  body.theme-pages .team-grid {
    grid-template-columns: 1fr;
  }

  body.theme-pages .timeline-item {
    grid-template-columns: 1fr;
    gap: 10px;
    padding-left: 30px;
  }

  body.theme-pages .timeline::before {
    left: 6px;
  }

  body.theme-pages .timeline-item::before {
    left: 0;
    top: 24px;
  }

  body.theme-pages .timeline-item .content {
    padding-left: 0;
  }

  body.theme-pages .form-row {
    grid-template-columns: 1fr;
  }

  body.theme-pages .form-card {
    padding: 28px 24px;
  }

  body.theme-pages .issue-grid {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }

  body.theme-pages .year-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  body.theme-pages .category-header h1 {
    font-size: 72px;
  }

  body.theme-pages .category-header .meta {
    gap: 24px;
    flex-wrap: wrap;
    justify-content: center;
  }

  body.theme-pages .cat-stories {
    grid-template-columns: 1fr;
  }

  body.theme-pages .author-article-row {
    grid-template-columns: 40px 1fr;
    gap: 16px;
  }

  body.theme-pages .author-article-row .arrow {
    display: none;
  }

  body.theme-pages .search-box {
    flex-direction: column;
    border-radius: 24px;
    padding: 14px;
    gap: 10px;
  }

  body.theme-pages .search-box button,
  body.theme-pages .search-box a {
    width: 100%;
  }

  body.theme-pages .search-result {
    grid-template-columns: 40px 1fr;
    gap: 16px;
  }

  body.theme-pages .search-result .match {
    grid-column: 1 / -1;
    text-align: left;
    padding-left: 56px;
  }

  body.theme-pages .search-result .match .v {
    font-size: 22px;
  }

  body.theme-pages .notfound .code {
    font-size: 140px;
  }

  body.theme-pages .notfound-iris {
    width: 110px;
    height: 110px;
  }

  body.theme-pages .footer-top {
    grid-template-columns: 1fr;
  }

  body.theme-pages .footer-bottom {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }

  body.theme-pages .page-switcher {
    padding: 10px 14px;
    gap: 8px;
  }

  body.theme-pages .page-switcher .lbl {
    display: none;
  }

  body.theme-pages .page-switcher button {
    padding: 6px 10px;
    font-size: 10px;
  }

  body.theme-pages .iris-dock {
    bottom: 20px;
    right: 20px;
  }
}

/* Vamika post styles scoped to theme-post */
body.theme-post {
  --cream: #f4efe6;
  --cream-2: #ece4d3;
  --ink: #14120f;
  --ink-2: #2a2620;
  --ink-3: #4a4238;

  --coral: #ff5533;
  --cobalt: #2547ff;
  --sun: #ffd230;
  --grass: #2ab364;
  --plum: #7b3ff2;
  --peach: #ffb896;
  --sky: #a8d5ff;
  --mint: #b8f2c9;
  --lemon: #fff0a8;

  --display: 'Bricolage Grotesque', -apple-system, sans-serif;
  --serif: 'Fraunces', Georgia, serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;
}

html {
  scroll-behavior: smooth;
}

body.theme-post {
  background: var(--cream);
  color: var(--ink);
  font-family: var(--display);
  font-weight: 400;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  position: relative;
}

body.theme-post::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1000;
  opacity: 0.06;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

body.theme-post ::selection {
  background: var(--sun);
  color: var(--ink);
}

body.theme-post a {
  color: inherit;
  text-decoration: none;
}

/* =========================================================
     IRIS ANIMATED ICON — reusable
     ========================================================= */
body.theme-post .iris-icon {
  width: 100%;
  height: 100%;
  overflow: visible;
}

body.theme-post .iris-icon .face {
  fill: var(--cream);
  stroke: var(--ink);
  stroke-width: 4;
  transform-origin: 50% 55%;
  animation: irisBreathe 3.2s ease-in-out infinite;
}

@keyframes irisBreathe {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.04);
  }
}

body.theme-post .iris-icon .eye {
  fill: var(--ink);
  transform-origin: center;
  animation: irisBlink 5s ease-in-out infinite;
}

body.theme-post .iris-icon .eye.r {
  animation-delay: 0.05s;
}

@keyframes irisBlink {

  0%,
  92%,
  100% {
    transform: scaleY(1);
  }

  94%,
  98% {
    transform: scaleY(0.1);
  }
}

body.theme-post .iris-icon .ring {
  fill: none;
  stroke: var(--coral);
  stroke-width: 3;
  transform-origin: 50% 55%;
  animation: irisRing 2.4s ease-out infinite;
  opacity: 0;
}

@keyframes irisRing {
  0% {
    transform: scale(0.85);
    opacity: 0.85;
  }

  80%,
  100% {
    transform: scale(1.4);
    opacity: 0;
  }
}

body.theme-post .iris-icon .sparkle {
  fill: var(--sun);
  stroke: var(--ink);
  stroke-width: 2;
  transform-origin: 50% 50%;
  animation: irisSparkle 4s ease-in-out infinite;
}

@keyframes irisSparkle {

  0%,
  100% {
    transform: translate(0, 0) rotate(0deg) scale(1);
    opacity: 1;
  }

  25% {
    transform: translate(8px, -6px) rotate(45deg) scale(1.15);
  }

  50% {
    transform: translate(0, -10px) rotate(90deg) scale(1);
    opacity: 0.9;
  }

  75% {
    transform: translate(-8px, -6px) rotate(135deg) scale(1.15);
  }
}

body.theme-post .iris-icon .mouth {
  fill: none;
  stroke: var(--ink);
  stroke-width: 3;
  stroke-linecap: round;
  animation: irisMouth 3.2s ease-in-out infinite;
  transform-origin: center;
}

@keyframes irisMouth {

  0%,
  100% {
    transform: scaleX(1);
  }

  50% {
    transform: scaleX(1.15);
  }
}

/* =========================================================
     SCROLL REVEAL
     ========================================================= */
body.theme-post .reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s cubic-bezier(0.2, 0.9, 0.3, 1), transform 0.7s cubic-bezier(0.2, 0.9, 0.3, 1);
}

body.theme-post .reveal.in {
  opacity: 1;
  transform: translateY(0);
}

/* magnetic base */
body.theme-post .magnetic {
  transition: transform 0.2s cubic-bezier(0.2, 0.9, 0.3, 1);
  will-change: transform;
}

/* reduced motion */
body.theme-post @media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* =========================================================
     READING PROGRESS BAR
     ========================================================= */
body.theme-post .progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  height: 4px;
  background: var(--coral);
  width: 0%;
  z-index: 150;
  transition: width 0.1s linear;
  box-shadow: 2px 0 0 var(--ink);
}

/* =========================================================
     NAV
     ========================================================= */
body.theme-post nav.topnav {
  padding: 22px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--cream);
  border-bottom: 1.5px solid var(--ink);
}

body.theme-post .brand {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-family: var(--display);
  font-weight: 800;
  font-size: 28px;
  letter-spacing: -0.04em;
  line-height: 1;
}

body.theme-post .brand .blob {
  width: 16px;
  height: 16px;
  background: var(--coral);
  border-radius: 50%;
  display: inline-block;
  transform: translateY(1px);
  animation: wiggle 3s ease-in-out infinite;
}

@keyframes wiggle {

  0%,
  100% {
    transform: translateY(1px) scale(1);
    background: var(--coral);
  }

  33% {
    transform: translateY(1px) scale(1.15);
    background: var(--cobalt);
  }

  66% {
    transform: translateY(1px) scale(0.95);
    background: var(--sun);
  }
}

body.theme-post .brand sup {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 400;
  color: var(--ink-2);
  letter-spacing: 0;
}

body.theme-post .nav-panel {
  display: flex;
  align-items: center;
  gap: 26px;
}

body.theme-post .navlinks {
  display: flex;
  gap: 32px;
  list-style: none;
  font-family: var(--display);
  font-weight: 500;
  font-size: 14px;
}

body.theme-post .navlinks a {
  padding: 6px 2px;
  position: relative;
  transition: color 0.15s;
}

body.theme-post .navlinks a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 8px;
  background: var(--sun);
  z-index: -1;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s cubic-bezier(0.2, 0.9, 0.3, 1);
}

body.theme-post .navlinks a:hover::after {
  transform: scaleX(1);
}

body.theme-post .navlinks a[aria-current='page']::after {
  transform: scaleX(1);
}

body.theme-post .navlinks a[aria-current='page'] {
  color: var(--coral);
}

body.theme-post .nav-cta {
  background: var(--ink);
  color: var(--cream);
  padding: 12px 22px;
  border-radius: 100px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 8px;
}

body.theme-post .nav-cta::after {
  content: '→';
  transition: transform 0.2s;
}

body.theme-post .nav-cta:hover {
  background: var(--coral);
}

body.theme-post .nav-cta:hover::after {
  transform: translateX(3px);
}

body.theme-post .menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  padding: 11px 16px;
  border-radius: 999px;
  border: 1.5px solid var(--ink);
  background: var(--sun);
  color: var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s, background 0.2s, color 0.2s;
}

body.theme-post .menu-toggle:hover {
  transform: translate(-2px, -2px);
  box-shadow: 5px 5px 0 var(--ink);
  background: var(--coral);
  color: var(--cream);
}

body.theme-post .topnav.menu-open .menu-toggle {
  background: var(--coral);
  color: var(--cream);
}

/* =========================================================
     BREADCRUMB
     ========================================================= */
body.theme-post .breadcrumb {
  max-width: 1200px;
  margin: 0 auto;
  padding: 30px 40px 0;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-2);
  display: flex;
  align-items: center;
  gap: 10px;
}

body.theme-post .breadcrumb a {
  transition: color 0.15s;
}

body.theme-post .breadcrumb a:hover {
  color: var(--coral);
}

body.theme-post .breadcrumb .sep {
  color: var(--ink-3);
  opacity: 0.5;
}

body.theme-post .breadcrumb .curr {
  color: var(--coral);
  font-weight: 500;
}

/* =========================================================
     ARTICLE HEADER
     ========================================================= */
body.theme-post .article-header {
  max-width: 1200px;
  margin: 0 auto;
  padding: 50px 40px 60px;
  text-align: center;
  position: relative;
}

body.theme-post .category-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  padding: 8px 16px;
  background: var(--coral);
  color: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  font-weight: 500;
  margin-bottom: 30px;
  box-shadow: 3px 3px 0 var(--ink);
}

body.theme-post .category-tag::before {
  content: '✦';
  color: var(--sun);
}

body.theme-post .article-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(44px, 6.5vw, 104px);
  line-height: 0.92;
  letter-spacing: -0.035em;
  margin-bottom: 30px;
  font-variation-settings: "opsz"96;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

body.theme-post .article-title em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

body.theme-post .article-title .hl {
  position: relative;
  display: inline-block;
  padding: 0 0.1em;
  z-index: 1;
}

body.theme-post .article-title .hl::before {
  content: '';
  position: absolute;
  left: -4px;
  right: -4px;
  top: 18%;
  bottom: 14%;
  background: var(--sun);
  z-index: -1;
  transform: rotate(-1deg);
}

body.theme-post .article-standfirst {
  font-family: var(--serif);
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.45;
  color: var(--ink-2);
  font-weight: 300;
  max-width: 720px;
  margin: 0 auto 50px;
}

body.theme-post .article-standfirst em {
  font-style: italic;
  color: var(--coral);
  font-weight: 400;
}

body.theme-post .article-meta {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
  flex-wrap: wrap;
  padding: 24px 0;
  border-top: 1.5px solid var(--ink);
  border-bottom: 1.5px solid var(--ink);
  max-width: 800px;
  margin: 0 auto;
}

body.theme-post .author-mini {
  display: flex;
  align-items: center;
  gap: 12px;
}

body.theme-post .author-mini .avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--cobalt);
  color: var(--cream);
  border: 1.5px solid var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: 18px;
  font-weight: 500;
  box-shadow: 2px 2px 0 var(--ink);
}

body.theme-post .author-mini .info {
  text-align: left;
}

body.theme-post .author-mini .name {
  font-family: var(--display);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: -0.01em;
}

body.theme-post .author-mini .role {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-top: 2px;
}

body.theme-post .meta-dot {
  width: 5px;
  height: 5px;
  background: var(--ink);
  border-radius: 50%;
}

body.theme-post .meta-item {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
}

body.theme-post .meta-item strong {
  color: var(--ink);
  font-weight: 500;
}

/* =========================================================
     HERO IMAGE
     ========================================================= */
body.theme-post .article-hero-img {
  max-width: 1200px;
  margin: 0 auto 60px;
  padding: 0 40px;
}

body.theme-post .article-hero-img .frame {
  border: 2px solid var(--ink);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 10px 10px 0 var(--ink);
  position: relative;
}

body.theme-post .article-hero-img .frame img {
  max-height: 350px;
  width: auto;
}

body.theme-post .article-hero-img svg {
  width: 100%;
  height: 100%;
  display: block;
}

body.theme-post .article-hero-img .caption {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  text-align: center;
  margin-top: 16px;
  padding: 0 20px;
}

body.theme-post .article-hero-img .caption em {
  font-family: var(--serif);
  font-style: italic;
  color: var(--coral);
  text-transform: none;
  letter-spacing: 0;
  font-size: 12px;
}

/* =========================================================
     AI SUMMARY BAR
     ========================================================= */
body.theme-post .summary-bar {
  margin-bottom: 60px;
}

body.theme-post .summary-box {
  background: var(--sun);
  border: 2px solid var(--ink);
  border-radius: 20px;
  padding: 32px 36px;
  box-shadow: 6px 6px 0 var(--ink);
  position: relative;
}

body.theme-post .summary-box::before {
  content: '';
  position: absolute;
  top: -14px;
  left: 40px;
  width: 70px;
  height: 14px;
  background: var(--coral);
  border: 2px solid var(--ink);
  border-bottom: none;
  border-radius: 14px 14px 0 0;
}

body.theme-post .summary-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1.5px dashed var(--ink);
}

body.theme-post .summary-label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
}

body.theme-post .summary-label .iris-mini {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--ink);
}

body.theme-post .summary-label .iris-mini svg {
  width: 70%;
  height: 70%;
}

body.theme-post .summary-label .iris-mini .face {
  fill: var(--cream);
  stroke: var(--cream);
}

body.theme-post .summary-label .iris-mini .eye {
  fill: var(--ink);
}

body.theme-post .summary-label .iris-mini .mouth {
  stroke: var(--ink);
}

body.theme-post .summary-toggle {
  padding: 7px 14px;
  background: var(--ink);
  color: var(--cream);
  border: none;
  border-radius: 100px;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: all 0.2s;
}

body.theme-post .summary-toggle:hover {
  background: var(--coral);
}

body.theme-post .summary-content {
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.55;
  color: var(--ink);
  font-weight: 400;
}

body.theme-post .summary-content ul {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
}

body.theme-post .summary-content li {
  padding: 10px 0 10px 28px;
  position: relative;
  border-top: 1px dashed rgba(20, 18, 15, 0.25);
  font-size: 16px;
  line-height: 1.5;
}

body.theme-post .summary-content li::before {
  content: '✦';
  position: absolute;
  left: 0;
  top: 12px;
  color: var(--coral);
  font-size: 14px;
}

/* =========================================================
     ARTICLE BODY
     ========================================================= */
body.theme-post .article-layout {
  margin: 0 auto;
  padding: 0 40px 80px;
  /* Fluid container — no max-width. Prose stays readable via the
       720px constrained-flow rule below, alignwide is capped in the
       block-alignment section, and alignfull breaks out to 100vw via
       negative-margin. The Iris sidebar (Iris Sidebar section) floats
       at the viewport edge via position:fixed on wide screens, so it
       never pushes the article column off-center. */
}

body.theme-post .article-body {
  position: relative;
  margin: 0 auto;
  min-width: 0;
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.7;
  color: var(--ink-2);
  font-weight: 400;
}

/* Constrain the readable text column to 720px for any direct child
   that isn't explicitly aligned (alignwide/alignfull/alignleft/
   alignright) or a chrome element (.share-float, .page-links). This
   is the "constrained flow" pattern WordPress uses in block themes:
   the article body is full-width so aligned blocks can stretch, but
   prose stays at a readable measure. */
body.theme-post .article-body>*:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.share-float):not(.page-links) {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

body.theme-post .article-body>p {
  margin-bottom: 1.5em;
}

body.theme-post .article-body .dropcap {
  font-family: var(--display);
  font-weight: 800;
  font-size: 104px;
  line-height: 0.8;
  float: left;
  margin: 8px 14px -6px 0;
  color: var(--coral);
  font-variation-settings: "opsz"96;
  letter-spacing: -0.04em;
}

body.theme-post .article-body h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 38px;
  line-height: 1;
  letter-spacing: -0.025em;
  color: var(--ink);
  margin: 2em 0 0.8em;
  font-variation-settings: "opsz"72;
}

body.theme-post .article-body h2::before {
  content: '§';
  color: var(--coral);
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  margin-right: 10px;
  opacity: 0.7;
}

body.theme-post .article-body strong {
  color: var(--ink);
  font-weight: 600;
}

body.theme-post .article-body em {
  font-style: italic;
}

body.theme-post .article-body a {
  color: var(--coral);
  font-weight: 500;
  border-bottom: 1.5px solid var(--coral);
  transition: all 0.15s;
}

body.theme-post .article-body a:hover {
  background: var(--sun);
  border-bottom-color: var(--ink);
}

/* Smart suggestion highlight */
body.theme-post .ai-highlight {
  background: var(--sun);
  padding: 0 3px;
  border-bottom: 1.5px dashed var(--coral);
  cursor: help;
  position: relative;
  display: inline;
}

body.theme-post .ai-highlight:hover {
  background: var(--peach);
}

body.theme-post .ai-highlight .popup {
  position: absolute;
  left: 0;
  top: calc(100% + 14px);
  width: 300px;
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 16px;
  padding: 18px 20px;
  box-shadow: 5px 5px 0 var(--ink);
  z-index: 10;
  opacity: 0;
  visibility: hidden;
  transition: all 0.25s cubic-bezier(0.2, 0.9, 0.3, 1);
  transform: translateY(-5px);
  pointer-events: none;
  font-family: var(--display);
}

body.theme-post .ai-highlight:hover .popup {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

body.theme-post .ai-highlight .popup::before {
  content: '';
  position: absolute;
  top: -10px;
  left: 30px;
  width: 16px;
  height: 16px;
  background: var(--cream);
  border-left: 2px solid var(--ink);
  border-top: 2px solid var(--ink);
  transform: rotate(45deg);
}

body.theme-post .ai-highlight .popup .lbl {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--plum);
  margin-bottom: 8px;
  font-weight: 500;
}

body.theme-post .ai-highlight .popup .ttl {
  font-family: var(--display);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.25;
  color: var(--ink);
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}

body.theme-post .ai-highlight .popup .dsc {
  font-family: var(--serif);
  font-size: 13px;
  line-height: 1.45;
  color: var(--ink-2);
  margin-bottom: 10px;
}

body.theme-post .ai-highlight .popup .lnk {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--coral);
  font-weight: 500;
}

/* Pull quote */
body.theme-post .pullquote {
  margin: 2.5em -40px;
  padding: 50px 60px;
  background: var(--cobalt);
  color: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 24px;
  font-family: var(--display);
  font-weight: 700;
  font-size: 40px;
  line-height: 1.05;
  letter-spacing: -0.025em;
  text-align: center;
  position: relative;
  box-shadow: 8px 8px 0 var(--ink);
  font-variation-settings: "opsz"72;
}

body.theme-post .pullquote::before {
  content: '"';
  position: absolute;
  top: -24px;
  left: 50%;
  transform: translateX(-50%);
  width: 70px;
  height: 70px;
  background: var(--sun);
  border: 2px solid var(--ink);
  border-radius: 50%;
  font-family: var(--serif);
  font-size: 80px;
  font-weight: 700;
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0.8;
  padding-top: 18px;
}

body.theme-post .pullquote em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--sun);
}

body.theme-post .pullquote cite {
  display: block;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-top: 20px;
  font-style: normal;
  font-weight: 500;
  opacity: 0.8;
}

/* Inline image */
body.theme-post .inline-image {
  margin: 2.5em 0;
}

body.theme-post .inline-image .frame {
  aspect-ratio: 16/10;
  border: 2px solid var(--ink);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 6px 6px 0 var(--ink);
}

body.theme-post .inline-image svg {
  width: 100%;
  height: 100%;
  display: block;
}

body.theme-post .inline-image .cap {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-top: 14px;
  text-align: center;
}

body.theme-post .inline-image .cap em {
  font-family: var(--serif);
  text-transform: none;
  font-style: italic;
  font-size: 12px;
  color: var(--coral);
}

/* Share bar (floating left) */
body.theme-post .share-float {
  position: absolute;
  left: -70px;
  top: 100px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.theme-post .share-float button {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1.5px solid var(--ink);
  background: var(--cream);
  cursor: pointer;
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

body.theme-post .share-float button:hover {
  background: var(--sun);
  transform: translate(-2px, -2px);
  box-shadow: 3px 3px 0 var(--ink);
}

body.theme-post .share-float button.sf-copied {
  background: var(--mint, #c8f7c5);
  transform: translate(-2px, -2px);
  box-shadow: 3px 3px 0 var(--ink);
}

/* =========================================================
     IRIS SIDEBAR (sticky)
     ========================================================= */
body.theme-post .iris-sidebar {
  /* Default (mobile/tablet/laptop): sidebar drops into normal flow
       after the article. The wide-viewport override below lifts it out
       of flow so it floats at the right edge of the viewport without
       pushing the article column off-center. */
  max-width: 720px;
  margin: 40px auto 0;
  width: 100%;
  background: var(--cream-2);
  border: 2px solid var(--ink);
  border-radius: 20px;
  padding: 26px;
  box-shadow: 6px 6px 0 var(--ink);
}

/* ≥1440px with the Iris plugin active (body.has-iris-sidebar set from
   PHP): promote the article-layout to a 2-column grid so the article
   column and sidebar sit side-by-side. The sidebar becomes sticky
   (not fixed) so it participates in layout and never overlaps
   alignfull/alignwide content. Without the plugin the class is
   absent, none of these rules fire, and the article-layout stays
   single-column fluid. */
@media (min-width: 1440px) {
  body.has-iris-sidebar .article-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    column-gap: 48px;
    align-items: start;
  }

  body.has-iris-sidebar .article-body {
    min-width: 0;
    grid-column: 1;
  }

  body.has-iris-sidebar .iris-sidebar {
    position: sticky;
    top: 110px;
    grid-column: 2;
    width: auto;
    max-width: none;
    margin: 0;
    max-height: calc(100vh - 140px);
    overflow-y: auto;
  }

  /* Inside the 2-column layout, alignfull/alignwide fill the
       article column instead of breaking to 100vw — otherwise they'd
       extend under the sidebar. This matches how sidebar-based themes
       conventionally treat wide/full alignments. */
  body.has-iris-sidebar .article-body .alignfull,
  body.has-iris-sidebar .article-body .alignwide {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
    max-width: 100%;
  }
}

body.theme-post .iris-sb-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 18px;
  border-bottom: 1.5px dashed var(--ink);
  margin-bottom: 20px;
}

body.theme-post .iris-sb-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--coral);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--ink);
  box-shadow: 2px 2px 0 var(--ink);
  position: relative;
  animation: bob 4s ease-in-out infinite;
  flex-shrink: 0;
}

body.theme-post .iris-sb-avatar svg {
  width: 72%;
  height: 72%;
}

@keyframes bob {

  0%,
  100% {
    transform: translateY(0) rotate(-3deg);
  }

  50% {
    transform: translateY(-2px) rotate(3deg);
  }
}

body.theme-post .iris-sb-avatar::after {
  content: '';
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 11px;
  height: 11px;
  background: var(--grass);
  border: 1.5px solid var(--ink);
  border-radius: 50%;
}

body.theme-post .iris-sb-header .info .name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -0.01em;
}

body.theme-post .iris-sb-header .info .sub {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-top: 3px;
}

body.theme-post .iris-sb-title {
  font-family: var(--display);
  font-weight: 600;
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: -0.01em;
  margin-bottom: 16px;
  color: var(--ink);
}

body.theme-post .iris-sb-title em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

body.theme-post .iris-sb-prompts {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 18px;
}

body.theme-post .iris-sb-prompts button {
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 12px;
  padding: 12px 14px;
  text-align: left;
  font-family: var(--display);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 10px;
  line-height: 1.3;
}

body.theme-post .iris-sb-prompts button::before {
  content: '→';
  color: var(--coral);
  font-size: 15px;
  flex-shrink: 0;
  transition: transform 0.2s;
}

body.theme-post .iris-sb-prompts button:hover {
  background: var(--sun);
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--ink);
}

body.theme-post .iris-sb-prompts button:hover::before {
  transform: translateX(2px);
}

body.theme-post .iris-sb-prompts button:nth-child(1) {
  background: var(--lemon);
}

body.theme-post .iris-sb-prompts button:nth-child(2) {
  background: var(--sky);
}

body.theme-post .iris-sb-prompts button:nth-child(3) {
  background: var(--mint);
}

body.theme-post .iris-sb-prompts button:nth-child(4) {
  background: var(--peach);
}

body.theme-post .iris-sb-input {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 12px;
  padding: 10px 14px;
}

body.theme-post .iris-sb-input input {
  flex: 1;
  background: transparent;
  border: none;
  font-family: var(--display);
  font-size: 13px;
  color: var(--ink);
  outline: none;
  min-width: 0;
}

body.theme-post .iris-sb-input input::placeholder {
  color: var(--ink-2);
  opacity: 0.55;
}

body.theme-post .iris-sb-input button {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--ink);
  color: var(--cream);
  border: none;
  cursor: pointer;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.2s;
}

body.theme-post .iris-sb-input button:hover {
  background: var(--coral);
  transform: rotate(-12deg);
}

/* Sidebar chat area */
body.theme-post .iris-sb-chat {
  max-height: 320px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 14px;
  scroll-behavior: smooth;
}

body.theme-post .iris-sb-msg {
  display: flex;
  margin: 10px 0;
}

body.theme-post .iris-sb-msg .bb {
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 14px 14px 14px 4px;
  padding: 10px 14px;
  font-family: var(--serif);
  font-size: 13px;
  line-height: 1.5;
  max-width: 92%;
  color: var(--ink);
}

body.theme-post .iris-sb-msg .bb p {
  margin: 0 0 8px;
}

body.theme-post .iris-sb-msg .bb p:last-child {
  margin-bottom: 0;
}

body.theme-post .iris-sb-msg .bb ul,
body.theme-post .iris-sb-msg .bb ol {
  margin: 6px 0;
  padding-left: 18px;
}

body.theme-post .iris-sb-msg .bb a {
  color: var(--cobalt);
  text-decoration: underline;
}

body.theme-post .iris-sb-msg.u {
  justify-content: flex-end;
}

body.theme-post .iris-sb-msg.u .bb {
  background: var(--ink);
  color: var(--cream);
  border-radius: 14px 14px 4px 14px;
}

body.theme-post .iris-sb-msg--thinking .bb {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 12px 18px;
}

body.theme-post .iris-sb-msg--thinking .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink-2);
  animation: irisDot 1.2s ease-in-out infinite;
}

body.theme-post .iris-sb-msg--thinking .dot:nth-child(2) {
  animation-delay: 0.15s;
}

body.theme-post .iris-sb-msg--thinking .dot:nth-child(3) {
  animation-delay: 0.3s;
}

body.theme-post .iris-sb-sources {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-left: 4px;
}

body.theme-post .iris-sb-sources a {
  font-family: var(--mono);
  font-size: 10px;
  background: var(--cream-2);
  border: 1px solid var(--ink);
  border-radius: 20px;
  padding: 4px 10px;
  color: var(--ink);
  text-decoration: none;
  transition: background 0.15s;
}

body.theme-post .iris-sb-sources a:hover {
  background: var(--sun);
}

/* Article contents / reading progress mini */
body.theme-post .iris-sb-toc {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1.5px dashed var(--ink);
}

body.theme-post .iris-sb-toc .lbl {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-2);
  margin-bottom: 12px;
}

body.theme-post .iris-sb-toc ul {
  list-style: none;
  padding: 0;
}

body.theme-post .iris-sb-toc li {
  padding: 7px 0 7px 16px;
  border-left: 2px solid var(--ink);
  font-family: var(--display);
  font-size: 12px;
  color: var(--ink-2);
  cursor: pointer;
  transition: all 0.2s;
}

body.theme-post .iris-sb-toc li:hover {
  color: var(--coral);
  border-left-color: var(--coral);
  padding-left: 20px;
}

body.theme-post .iris-sb-toc li.active {
  color: var(--coral);
  border-left-color: var(--coral);
  font-weight: 600;
}

/* =========================================================
     AUTHOR CARD
     ========================================================= */
body.theme-post .author-card-section {
  max-width: 1200px;
  margin: 40px auto 0;
  padding: 0 40px;
}

body.theme-post .author-card {
  background: var(--plum);
  color: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 24px;
  padding: 40px 44px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 32px;
  align-items: center;
  box-shadow: 8px 8px 0 var(--ink);
}

body.theme-post .author-card .big-avatar {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: var(--sun);
  color: var(--ink);
  border: 2px solid var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: 44px;
  font-weight: 500;
  box-shadow: 4px 4px 0 var(--ink);
}

body.theme-post .author-card .details .lbl {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  opacity: 0.8;
  margin-bottom: 8px;
}

body.theme-post .author-card .details h3 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 32px;
  line-height: 1;
  letter-spacing: -0.02em;
  margin-bottom: 10px;
  font-variation-settings: "opsz"72;
}

body.theme-post .author-card .details p {
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.5;
  font-weight: 300;
  max-width: 520px;
  opacity: 0.95;
}

body.theme-post .author-card .follow {
  padding: 14px 26px;
  background: var(--sun);
  color: var(--ink);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
  box-shadow: 3px 3px 0 var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body.theme-post .author-card .follow:hover {
  background: var(--coral);
  color: var(--cream);
  transform: translate(-2px, -2px);
  box-shadow: 5px 5px 0 var(--ink);
}

/* =========================================================
     RELATED READS
     ========================================================= */
body.theme-post .related-section {
  padding: 100px 40px;
  max-width: 1280px;
  margin: 0 auto;
}

body.theme-post .related-header {
  text-align: center;
  margin-bottom: 60px;
}

body.theme-post .related-header .eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--ink-2);
  margin-bottom: 18px;
  display: inline-block;
  padding: 6px 14px;
  background: var(--mint);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
}

body.theme-post .related-header h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(36px, 5vw, 72px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  font-variation-settings: "opsz"96;
}

body.theme-post .related-header h2 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--plum);
}

body.theme-post .related-scatter {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

body.theme-post .related-card {
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 16px;
  padding: 24px 26px;
  position: relative;
  cursor: pointer;
  transition: all 0.25s;
}

body.theme-post .related-card:nth-child(1) {
  transform: rotate(-1.5deg);
  background: var(--lemon);
}

body.theme-post .related-card:nth-child(2) {
  transform: rotate(1deg);
  background: var(--peach);
}

body.theme-post .related-card:nth-child(3) {
  transform: rotate(-0.8deg);
  background: var(--sky);
}

body.theme-post .related-card:nth-child(4) {
  transform: rotate(1.2deg);
  background: var(--mint);
}

body.theme-post .related-card:nth-child(1):hover {
  transform: rotate(-1.5deg) translate(-2px, -2px);
  box-shadow: 5px 5px 0 var(--ink);
}

body.theme-post .related-card:nth-child(2):hover {
  transform: rotate(1deg) translate(-2px, -2px);
  box-shadow: 5px 5px 0 var(--ink);
}

body.theme-post .related-card:nth-child(3):hover {
  transform: rotate(-0.8deg) translate(-2px, -2px);
  box-shadow: 5px 5px 0 var(--ink);
}

body.theme-post .related-card:nth-child(4):hover {
  transform: rotate(1.2deg) translate(-2px, -2px);
  box-shadow: 5px 5px 0 var(--ink);
}

body.theme-post .related-card .score-big {
  font-family: var(--display);
  font-weight: 800;
  font-size: 52px;
  line-height: 1;
  letter-spacing: -0.04em;
  margin-bottom: 14px;
  font-variation-settings: "opsz"96;
}

body.theme-post .related-card .score-lbl {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1.5px dashed var(--ink);
}

body.theme-post .related-card .cat {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-bottom: 8px;
  font-weight: 500;
}

body.theme-post .related-card h4 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin-bottom: 12px;
}

body.theme-post .related-card .meta {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-2);
  padding-top: 12px;
  border-top: 1px dashed rgba(20, 18, 15, 0.2);
}

/* =========================================================
     COMMENTS / REACTIONS
     ========================================================= */
body.theme-post .reactions {
  margin-bottom: 80px;
  text-align: center;
}

body.theme-post .reactions .lbl {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--ink-2);
  margin-bottom: 24px;
}

body.theme-post .reaction-row {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

body.theme-post .reaction-btn {
  background: var(--cream-2);
  border: 2px solid var(--ink);
  border-radius: 100px;
  padding: 14px 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--display);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

body.theme-post .reaction-btn:hover {
  background: var(--sun);
  transform: translate(-2px, -2px);
  box-shadow: 3px 3px 0 var(--ink);
}

body.theme-post .reaction-btn .emo {
  font-size: 22px;
  line-height: 1;
}

body.theme-post .reaction-btn .ct {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink-2);
}

body.theme-post .reaction-btn.reacted {
  background: var(--sun);
  border-color: var(--ink);
  transform: translate(-2px, -2px);
  box-shadow: 3px 3px 0 var(--ink);
  pointer-events: auto;
}

body.theme-post .reaction-btn.reacted .ct {
  color: var(--ink);
  font-weight: 600;
}

/* =========================================================
     KEEP READING CTA
     ========================================================= */
body.theme-post .keep-reading {
  background: var(--coral);
  color: var(--cream);
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  padding: 100px 40px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

body.theme-post .keep-reading::before,
body.theme-post .keep-reading::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  border: 2px solid var(--ink);
}

body.theme-post .keep-reading::before {
  width: 180px;
  height: 180px;
  background: var(--sun);
  top: -50px;
  left: -50px;
}

body.theme-post .keep-reading::after {
  width: 220px;
  height: 220px;
  background: var(--cobalt);
  bottom: -70px;
  right: -70px;
}

body.theme-post .keep-reading .inner {
  position: relative;
  z-index: 2;
  max-width: 700px;
  margin: 0 auto;
}

body.theme-post .keep-reading h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(40px, 5.5vw, 80px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  margin-bottom: 20px;
  font-variation-settings: "opsz"96;
}

body.theme-post .keep-reading h2 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--sun);
}

body.theme-post .keep-reading p {
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.5;
  font-weight: 300;
  margin-bottom: 36px;
  opacity: 0.95;
}

body.theme-post .keep-reading .btn-row {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

body.theme-post .keep-reading button,
body.theme-post .keep-reading a {
  padding: 16px 32px;
  border-radius: 100px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  border: 2px solid var(--ink);
  transition: all 0.2s;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body.theme-post .keep-reading .primary {
  background: var(--ink);
  color: var(--cream);
}

body.theme-post .keep-reading .primary:hover {
  background: var(--sun);
  color: var(--ink);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
}

body.theme-post .keep-reading .secondary {
  background: var(--cream);
  color: var(--ink);
}

body.theme-post .keep-reading .secondary:hover {
  background: var(--plum);
  color: var(--cream);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
}

/* =========================================================
     FOOTER
     ========================================================= */
body.theme-post .site-footer {
  background: var(--ink);
  color: var(--cream);
  padding: 80px 40px 40px;
}

body.theme-post .footer-top {
  margin-bottom: 60px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 50px;
}

body.theme-post .footer-brand {
  font-family: var(--display);
  font-weight: 800;
  font-size: 80px;
  line-height: 0.85;
  letter-spacing: -0.04em;
}

body.theme-post .footer-brand .blob {
  display: inline-block;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--coral);
  vertical-align: middle;
  margin-right: 8px;
  border: 2px solid var(--cream);
}

body.theme-post .footer-tagline {
  font-family: var(--serif);
  font-style: italic;
  font-size: 17px;
  max-width: 300px;
  margin-top: 20px;
  opacity: 0.8;
  line-height: 1.5;
}

body.theme-post .footer-col h6 {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 18px;
  color: var(--sun);
  font-weight: 500;
}

.footer-col ul {
  padding: 0
}

body.theme-post .footer-col ul {
  list-style: none;
}

body.theme-post .footer-col li {
  margin-bottom: 10px;
}

body.theme-post .footer-col a {
  font-family: var(--display);
  font-size: 14px;
  opacity: 0.8;
  transition: all 0.15s;
}

body.theme-post .footer-col a:hover {
  color: var(--coral);
  opacity: 1;
}

body.theme-post .footer-bottom {
  padding-top: 30px;
  border-top: 1px solid rgba(244, 239, 230, 0.2);
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.6;
}

/* =========================================================
     FLOATING IRIS DOCK
     ========================================================= */
body.theme-post .iris-dock {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 200;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
}

body.theme-post .iris-dock-btn {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--coral);
  border: 2px solid var(--ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 4px 4px 0 var(--ink);
  transition: all 0.2s;
  position: relative;
  animation: dockBob 3.4s ease-in-out infinite;
  padding: 0;
}

body.theme-post .iris-dock-btn svg {
  width: 70%;
  height: 70%;
}

body.theme-post .iris-dock-btn .dock-glyph {
  width: 60%;
  height: 60%;
  overflow: visible;
}

body.theme-post .iris-dock-btn .dock-glyph path {
  fill: var(--cream);
  stroke: var(--ink);
  stroke-width: 3;
  stroke-linejoin: round;
}

@keyframes dockBob {

  0%,
  100% {
    transform: translateY(0) rotate(-3deg);
  }

  50% {
    transform: translateY(-5px) rotate(3deg);
  }
}

body.theme-post .iris-dock-btn:hover {
  background: var(--cobalt);
  transform: scale(1.08) rotate(0deg);
  box-shadow: 6px 6px 0 var(--ink);
}

body.theme-post .iris-dock-btn .ping {
  position: absolute;
  top: 0;
  right: 0;
  width: 13px;
  height: 13px;
  background: var(--grass);
  border: 2px solid var(--ink);
  border-radius: 50%;
  animation: pingPulse 2s ease-in-out infinite;
}

@keyframes pingPulse {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.25);
  }
}

body.theme-post .iris-dock-bubble {
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 18px;
  padding: 12px 18px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  color: var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
  position: relative;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(8px) scale(0.95);
  transform-origin: bottom right;
  pointer-events: none;
  transition: all 0.25s cubic-bezier(0.2, 0.9, 0.3, 1);
}

body.theme-post .iris-dock-bubble::after {
  content: '';
  position: absolute;
  bottom: -10px;
  right: 28px;
  width: 16px;
  height: 16px;
  background: var(--cream);
  border-right: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  transform: rotate(45deg);
}

body.theme-post .iris-dock-bubble em {
  font-family: var(--serif);
  font-style: italic;
  color: var(--coral);
  font-weight: 500;
}

body.theme-post .iris-dock:hover .iris-dock-bubble {
  opacity: 1;
  transform: translateY(0) scale(1);
}

body.theme-post .iris-dock-panel {
  position: fixed;
  bottom: 120px;
  right: 30px;
  width: 360px;
  background: var(--cream-2);
  border: 2px solid var(--ink);
  border-radius: 20px;
  box-shadow: 8px 8px 0 var(--ink);
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px) scale(0.95);
  transform-origin: bottom right;
  transition: all 0.3s cubic-bezier(0.2, 0.9, 0.3, 1);
  z-index: 199;
}

body.theme-post .iris-dock-panel.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

body.theme-post .iris-dock-panel-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 18px;
  border-bottom: 1.5px dashed var(--ink);
  margin-bottom: 18px;
}

body.theme-post .iris-dock-panel-header .av {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--coral);
  border: 1.5px solid var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 2px 2px 0 var(--ink);
}

body.theme-post .iris-dock-panel-header .av svg {
  width: 70%;
  height: 70%;
}

body.theme-post .iris-dock-panel-header .info .name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 16px;
}

body.theme-post .iris-dock-panel-header .info .sub {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-top: 2px;
}

body.theme-post .iris-dock-panel-header .close {
  margin-left: auto;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  cursor: pointer;
  font-family: var(--display);
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

body.theme-post .iris-dock-panel-header .close:hover {
  background: var(--coral);
  color: var(--cream);
}

body.theme-post .iris-dock-panel-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 18px;
  max-height: 280px;
  overflow-y: auto;
}

body.theme-post .dp-msg {
  display: flex;
  gap: 10px;
  max-width: 88%;
  animation: dpMsgIn 0.4s cubic-bezier(0.2, 0.9, 0.3, 1) both;
}

@keyframes dpMsgIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

body.theme-post .dp-msg.u {
  align-self: flex-end;
}

body.theme-post .dp-msg.u .bb {
  background: var(--ink);
  color: var(--cream);
  border-color: var(--ink);
  border-radius: 14px 14px 4px 14px;
}

body.theme-post .dp-msg .bb {
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 14px 14px 14px 4px;
  padding: 10px 14px;
  font-family: var(--serif);
  font-size: 13px;
  line-height: 1.45;
}

body.theme-post .dp-msg .bb strong {
  color: var(--coral);
  font-family: var(--display);
  font-weight: 600;
}

body.theme-post .iris-dock-panel-prompts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}

body.theme-post .iris-dock-panel-prompts button {
  padding: 6px 12px;
  background: var(--lemon);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: all 0.2s;
  font-weight: 500;
}

body.theme-post .iris-dock-panel-prompts button:hover {
  background: var(--coral);
  color: var(--cream);
}

body.theme-post .iris-dock-panel-input {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 12px;
  padding: 10px 14px;
}

body.theme-post .iris-dock-panel-input input {
  flex: 1;
  background: transparent;
  border: none;
  font-family: var(--display);
  font-size: 13px;
  outline: none;
  min-width: 0;
}

body.theme-post .iris-dock-panel-input button {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--ink);
  color: var(--cream);
  border: none;
  cursor: pointer;
  font-size: 14px;
  flex-shrink: 0;
  transition: all 0.2s;
}

body.theme-post .iris-dock-panel-input button:hover {
  background: var(--coral);
  transform: rotate(-12deg);
}

/* =========================================================
     RESPONSIVE
     ========================================================= */
body.theme-post @media (max-width: 1100px) {
  .share-float {
    display: none;
  }

  .related-scatter {
    grid-template-columns: 1fr 1fr;
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
  }

  .footer-brand {
    grid-column: 1 / -1;
    font-size: 60px;
  }

  .author-card {
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
  }

  .author-card .big-avatar {
    margin: 0 auto;
  }

  .pullquote {
    margin-left: 0;
    margin-right: 0;
    font-size: 32px;
    padding: 40px 30px;
  }
}

@media (max-width: 720px) {
  body.theme-post nav.topnav {
    padding: 16px 20px;
    flex-wrap: wrap;
    gap: 14px;
  }

  body.theme-post .menu-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  body.theme-post .nav-panel {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
    padding: 20px;
    margin-top: 4px;
    background: var(--cream);
    border: 1.5px solid var(--ink);
    border-radius: 28px;
    box-shadow: 6px 6px 0 var(--ink);
  }

  body.theme-post .topnav.menu-open .nav-panel {
    display: flex;
  }

  body.theme-post .navlinks {
    display: grid;
    gap: 8px;
  }

  body.theme-post .navlinks a {
    display: block;
    padding: 12px 14px;
    border-radius: 16px;
    background: var(--cream-2);
  }

  body.theme-post .navlinks a::after {
    display: none;
  }

  body.theme-post .navlinks a[aria-current='page'] {
    background: var(--sun);
    color: var(--ink);
  }

  body.theme-post .nav-cta {
    width: 100%;
    justify-content: center;
  }

  body.theme-post .breadcrumb {
    padding: 24px 20px 0;
    font-size: 10px;
    gap: 6px;
  }

  body.theme-post .article-header {
    padding: 30px 20px 50px;
  }

  body.theme-post .article-hero-img {
    padding: 0 20px;
  }

  body.theme-post .summary-bar {}

  body.theme-post .summary-box {
    padding: 26px 24px;
  }

  body.theme-post .article-layout {
    padding: 0 20px 60px;
  }

  body.theme-post .article-body {
    font-size: 17px;
  }

  body.theme-post .article-body .dropcap {
    font-size: 80px;
  }

  body.theme-post .article-body h2 {
    font-size: 30px;
  }

  body.theme-post .pullquote {
    font-size: 26px;
    padding: 50px 24px;
  }

  body.theme-post .pullquote::before {
    width: 54px;
    height: 54px;
    font-size: 60px;
  }

  body.theme-post .author-card-section {
    padding: 0 20px;
  }

  body.theme-post .author-card {
    padding: 30px 26px;
  }

  body.theme-post .related-section {
    padding: 70px 20px;
  }

  body.theme-post .related-scatter {
    grid-template-columns: 1fr;
  }

  body.theme-post .reactions {}

  body.theme-post .keep-reading {
    padding: 70px 20px;
  }

  body.theme-post .footer-top {
    grid-template-columns: 1fr;
  }

  body.theme-post .footer-bottom {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }

  body.theme-post .article-meta {
    gap: 20px;
  }

  body.theme-post .meta-dot {
    display: none;
  }
}

/* Vamika magazine styles scoped to theme-magazine */
body.theme-magazine {
  --cream: #f4efe6;
  --cream-2: #ece4d3;
  --ink: #14120f;
  --ink-2: #2a2620;

  /* vibrant palette */
  --coral: #ff5533;
  --cobalt: #2547ff;
  --sun: #ffd230;
  --grass: #2ab364;
  --plum: #7b3ff2;
  --peach: #ffb896;
  --sky: #a8d5ff;
  --mint: #b8f2c9;
  --lemon: #fff0a8;

  --display: 'Bricolage Grotesque', -apple-system, sans-serif;
  --serif: 'Fraunces', Georgia, serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;
}

html {
  scroll-behavior: smooth;
}

body.theme-magazine {
  background: var(--cream);
  color: var(--ink);
  font-family: var(--display);
  font-weight: 400;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* noise */
body.theme-magazine body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1000;
  opacity: 0.06;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

body.theme-magazine ::selection {
  background: var(--sun);
  color: var(--ink);
}

body.theme-magazine a {
  color: inherit;
  text-decoration: none;
}

body.theme-magazine .container {
  max-width: var(--container-wide);
}

/* =========================================================
     NAV
     ========================================================= */
body.theme-magazine nav.topnav {
  padding: 22px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--cream);
  border-bottom: 1.5px solid var(--ink);
}

body.theme-magazine .brand {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-family: var(--display);
  font-weight: 800;
  font-size: 28px;
  letter-spacing: -0.04em;
  line-height: 1;
}

body.theme-magazine .brand .blob {
  width: 16px;
  height: 16px;
  background: var(--coral);
  border-radius: 50%;
  display: inline-block;
  transform: translateY(1px);
  animation: wiggle 3s ease-in-out infinite;
}

@keyframes wiggle {

  0%,
  100% {
    transform: translateY(1px) scale(1);
    background: var(--coral);
  }

  33% {
    transform: translateY(1px) scale(1.15);
    background: var(--cobalt);
  }

  66% {
    transform: translateY(1px) scale(0.95);
    background: var(--sun);
  }
}

body.theme-magazine .brand sup {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 400;
  color: var(--ink-2);
  letter-spacing: 0;
}

body.theme-magazine .nav-panel {
  display: flex;
  align-items: center;
  gap: 26px;
}

body.theme-magazine .navlinks {
  display: flex;
  gap: 32px;
  list-style: none;
  font-family: var(--display);
  font-weight: 500;
  font-size: 14px;
}

body.theme-magazine .navlinks a {
  padding: 6px 2px;
  position: relative;
  transition: color 0.15s;
}

body.theme-magazine .navlinks a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 8px;
  background: var(--sun);
  z-index: -1;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s cubic-bezier(0.2, 0.9, 0.3, 1);
}

body.theme-magazine .navlinks a:hover::after {
  transform: scaleX(1);
}

body.theme-magazine .navlinks a[aria-current='page']::after {
  transform: scaleX(1);
}

body.theme-magazine .navlinks a[aria-current='page'] {
  color: var(--coral);
}

body.theme-magazine .nav-cta {
  background: var(--ink);
  color: var(--cream);
  padding: 12px 22px;
  border-radius: 100px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 8px;
}

body.theme-magazine .nav-cta::after {
  content: '→';
  transition: transform 0.2s;
}

body.theme-magazine .nav-cta:hover {
  background: var(--coral);
}

body.theme-magazine .nav-cta:hover::after {
  transform: translateX(3px);
}

body.theme-magazine .menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  padding: 11px 16px;
  border-radius: 999px;
  border: 1.5px solid var(--ink);
  background: var(--sun);
  color: var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s, background 0.2s, color 0.2s;
}

body.theme-magazine .menu-toggle:hover {
  transform: translate(-2px, -2px);
  box-shadow: 5px 5px 0 var(--ink);
  background: var(--coral);
  color: var(--cream);
}

body.theme-magazine .topnav.menu-open .menu-toggle {
  background: var(--coral);
  color: var(--cream);
}

/* =========================================================
     HERO — chat-first, body.theme-magazine colorful
     ========================================================= */
body.theme-magazine .hero {
  padding: 60px 40px 100px;
  position: relative;
  overflow: hidden;
}

body.theme-magazine .hero-sticker {
  position: absolute;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 6px 14px;
  font-weight: 500;
  z-index: 2;
  box-shadow: 3px 3px 0 var(--ink);
  border: 1.5px solid var(--ink);
}

body.theme-magazine .sticker-1 {
  top: 80px;
  right: 8%;
  background: var(--sun);
  transform: rotate(6deg);
}

body.theme-magazine .sticker-2 {
  top: 30px;
  left: 8%;
  background: var(--mint);
  transform: rotate(-5deg);
}

body.theme-magazine .hero-grid {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}

body.theme-magazine .hero-eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--ink-2);
  margin-bottom: 40px;
}

body.theme-magazine .hero-eyebrow .chip {
  padding: 5px 12px;
  background: var(--cobalt);
  color: var(--cream);
  border-radius: 100px;
  font-weight: 500;
}

body.theme-magazine .hero-eyebrow .live-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  background: var(--coral);
  border-radius: 50%;
  animation: pulse 1.6s infinite;
  margin-right: 4px;
}

@keyframes pulse {

  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 0.5;
    transform: scale(0.85);
  }
}

body.theme-magazine .hero-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(56px, 9vw, 148px);
  line-height: 0.88;
  letter-spacing: -0.04em;
  text-align: center;
  margin-bottom: 28px;
  font-variation-settings: "opsz"96;
}

body.theme-magazine .hero-title .word {
  display: inline-block;
  position: relative;
}

body.theme-magazine .hero-title .highlight {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
  position: relative;
  padding: 0 0.1em;
}

body.theme-magazine .hero-title .highlight::before {
  content: '';
  position: absolute;
  left: -4px;
  right: -4px;
  top: 14%;
  bottom: 14%;
  background: var(--sun);
  z-index: -1;
  transform: rotate(-1deg);
}

body.theme-magazine .hero-title .serif-it {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
}

body.theme-magazine .hero-sub {
  font-family: var(--serif);
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.5;
  color: var(--ink-2);
  text-align: center;
  max-width: 640px;
  margin: 0 auto 60px;
  font-weight: 300;
}

body.theme-magazine .hero-sub em {
  font-style: italic;
  color: var(--coral);
  font-weight: 400;
}

/* ---- Chat card ---- */
body.theme-magazine .chat-card {
  max-width: 920px;
  margin: 0 auto;
  background: var(--cream-2);
  border: 2px solid var(--ink);
  border-radius: 24px;
  padding: 28px;
  position: relative;
  box-shadow: 8px 8px 0 var(--ink);
}

body.theme-magazine .chat-card::before {
  content: '';
  position: absolute;
  top: -14px;
  left: 50%;
  width: 80px;
  height: 14px;
  background: var(--coral);
  border: 2px solid var(--ink);
  border-bottom: none;
  border-radius: 14px 14px 0 0;
  transform: translateX(-50%);
}

body.theme-magazine .chat-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 20px;
  border-bottom: 1.5px dashed var(--ink);
  margin-bottom: 24px;
}

body.theme-magazine .chat-topbar-left {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 15px;
}

body.theme-magazine .iris-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--cobalt);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--ink);
  box-shadow: 2px 2px 0 var(--ink);
  position: relative;
  animation: avatarBob 4s ease-in-out infinite;
  flex-shrink: 0;
}

body.theme-magazine .iris-avatar svg {
  width: 70%;
  height: 70%;
  display: block;
}

/* =========================================================
     IRIS ANIMATED ICON — reusable
     ========================================================= */
body.theme-magazine .iris-icon {
  width: 100%;
  height: 100%;
  overflow: visible;
}

/* the head/face circle */
body.theme-magazine .iris-icon .face {
  fill: var(--cream);
  stroke: var(--ink);
  stroke-width: 4;
  transform-origin: 50% 55%;
  animation: irisBreathe 3.2s ease-in-out infinite;
}

@keyframes irisBreathe {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.04);
  }
}

/* the eyes */
body.theme-magazine .iris-icon .eye {
  fill: var(--ink);
  transform-origin: center;
  animation: irisBlink 5s ease-in-out infinite;
}

body.theme-magazine .iris-icon .eye.r {
  animation-delay: 0.05s;
}

@keyframes irisBlink {

  0%,
  92%,
  100% {
    transform: scaleY(1);
  }

  94%,
  98% {
    transform: scaleY(0.1);
  }
}

/* outer pulse ring */
body.theme-magazine .iris-icon .ring {
  fill: none;
  stroke: var(--coral);
  stroke-width: 3;
  transform-origin: 50% 55%;
  animation: irisRing 2.4s ease-out infinite;
  opacity: 0;
}

@keyframes irisRing {
  0% {
    transform: scale(0.85);
    opacity: 0.85;
  }

  80%,
  100% {
    transform: scale(1.4);
    opacity: 0;
  }
}

/* sparkle that orbits */
body.theme-magazine .iris-icon .sparkle {
  fill: var(--sun);
  stroke: var(--ink);
  stroke-width: 2;
  transform-origin: 50% 50%;
  animation: irisSparkle 4s ease-in-out infinite;
}

@keyframes irisSparkle {

  0%,
  100% {
    transform: translate(0, 0) rotate(0deg) scale(1);
    opacity: 1;
  }

  25% {
    transform: translate(8px, -6px) rotate(45deg) scale(1.15);
  }

  50% {
    transform: translate(0, -10px) rotate(90deg) scale(1);
    opacity: 0.9;
  }

  75% {
    transform: translate(-8px, -6px) rotate(135deg) scale(1.15);
  }
}

/* small mouth/smile */
body.theme-magazine .iris-icon .mouth {
  fill: none;
  stroke: var(--ink);
  stroke-width: 3;
  stroke-linecap: round;
  animation: irisMouth 3.2s ease-in-out infinite;
  transform-origin: center;
}

@keyframes irisMouth {

  0%,
  100% {
    transform: scaleX(1);
  }

  50% {
    transform: scaleX(1.15);
  }
}

/* inverted color variant for cream/light backgrounds */
body.theme-magazine .iris-icon.dark .face {
  fill: var(--ink);
  stroke: var(--ink);
}

body.theme-magazine .iris-icon.dark .eye {
  fill: var(--cream);
}

body.theme-magazine .iris-icon.dark .mouth {
  stroke: var(--cream);
}

body.theme-magazine .iris-icon.dark .ring {
  stroke: var(--sun);
}

/* tiny inline variant for use inside text/labels */
body.theme-magazine .iris-icon-mini {
  width: 20px;
  height: 20px;
  display: inline-block;
  vertical-align: -4px;
}

@keyframes avatarBob {

  0%,
  100% {
    transform: translateY(0) rotate(-2deg);
    background: var(--cobalt);
  }

  33% {
    transform: translateY(-2px) rotate(1deg);
    background: var(--plum);
  }

  66% {
    transform: translateY(-1px) rotate(-1deg);
    background: var(--coral);
  }
}

body.theme-magazine .iris-avatar::after {
  content: '';
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 12px;
  height: 12px;
  background: var(--grass);
  border: 2px solid var(--ink);
  border-radius: 50%;
}

body.theme-magazine .chat-topbar-left .name {
  font-weight: 700;
}

body.theme-magazine .chat-topbar-left .meta {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--ink-2);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

body.theme-magazine .chat-topbar-right {
  display: flex;
  gap: 8px;
}

body.theme-magazine .chat-topbar-right .pill {
  padding: 5px 11px;
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  background: var(--cream);
}

body.theme-magazine .chat-topbar-right .pill.active {
  background: var(--grass);
  color: var(--cream);
}

/* Chat suggestions grid (prompts instead of transcript) */
body.theme-magazine .prompt-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}

body.theme-magazine .prompt-btn {
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 14px;
  padding: 18px 20px;
  text-align: left;
  cursor: pointer;
  font-family: var(--display);
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  transition: all 0.2s;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  position: relative;
}

body.theme-magazine .prompt-btn:hover {
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
}

body.theme-magazine .prompt-btn:active {
  transform: translate(0, 0);
  box-shadow: 0 0 0 var(--ink);
}

body.theme-magazine .prompt-btn .emoji {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
  border: 1.5px solid var(--ink);
}

body.theme-magazine .prompt-btn:nth-child(1) .emoji {
  background: var(--peach);
}

body.theme-magazine .prompt-btn:nth-child(2) .emoji {
  background: var(--sky);
}

body.theme-magazine .prompt-btn:nth-child(3) .emoji {
  background: var(--mint);
}

body.theme-magazine .prompt-btn:nth-child(4) .emoji {
  background: var(--lemon);
}

body.theme-magazine .prompt-btn .txt {
  flex: 1;
  line-height: 1.35;
}

body.theme-magazine .prompt-btn .txt small {
  display: block;
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 400;
  color: var(--ink-2);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 3px;
}

/* Chat input */
body.theme-magazine .chat-input-row {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 14px;
  padding: 16px 20px;
  transition: all 0.2s;
}

body.theme-magazine .chat-input-row:focus-within {
  background: var(--lemon);
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--ink);
}

body.theme-magazine .chat-input-row .icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--coral);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1.5px solid var(--ink);
}

body.theme-magazine .chat-input-row .icon svg {
  width: 70%;
  height: 70%;
}

body.theme-magazine .chat-input-row input {
  flex: 1;
  background: transparent;
  border: none;
  font-family: var(--display);
  font-size: 16px;
  font-weight: 500;
  color: var(--ink);
  outline: none;
  min-width: 0;
}

body.theme-magazine .chat-input-row input::placeholder {
  color: var(--ink-2);
  opacity: 0.55;
}

body.theme-magazine .send-btn {
  background: var(--ink);
  color: var(--cream);
  border: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  flex-shrink: 0;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.1);
}

body.theme-magazine .send-btn:hover {
  background: var(--coral);
  transform: rotate(-12deg);
}

/* Stat row below chat */
body.theme-magazine .chat-stats {
  display: flex;
  justify-content: center;
  gap: 40px;
  margin-top: 44px;
  flex-wrap: wrap;
}

body.theme-magazine .chat-stat {
  text-align: center;
}

body.theme-magazine .chat-stat .n {
  font-family: var(--display);
  font-weight: 800;
  font-size: 36px;
  line-height: 1;
  letter-spacing: -0.03em;
  font-variation-settings: "opsz"96;
}

body.theme-magazine .chat-stat:nth-child(1) .n {
  color: var(--coral);
}

body.theme-magazine .chat-stat:nth-child(2) .n {
  color: var(--cobalt);
}

body.theme-magazine .chat-stat:nth-child(3) .n {
  color: var(--grass);
}

body.theme-magazine .chat-stat:nth-child(4) .n {
  color: var(--plum);
}

body.theme-magazine .chat-stat .l {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-top: 4px;
}

/* =========================================================
     MARQUEE
     ========================================================= */
body.theme-magazine .marquee {
  background: var(--ink);
  color: var(--cream);
  padding: 22px 0;
  overflow: hidden;
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  position: relative;
}

body.theme-magazine .marquee-track {
  display: flex;
  gap: 60px;
  white-space: nowrap;
  animation: marq 35s linear infinite;
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 54px);
  letter-spacing: -0.02em;
  line-height: 1;
}

body.theme-magazine .marquee-track span {
  display: inline-flex;
  align-items: center;
  gap: 60px;
}

body.theme-magazine .marquee-track span:nth-child(3n+1) {
  color: var(--sun);
}

body.theme-magazine .marquee-track span:nth-child(3n+2) {
  color: var(--peach);
}

body.theme-magazine .marquee-track span:nth-child(3n+3) {
  color: var(--mint);
}

body.theme-magazine .marquee-track span::after {
  content: '✻';
  color: var(--cream);
  font-size: 0.5em;
  transform: translateY(-15%);
}

@keyframes marq {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

/* =========================================================
     FEATURED STORIES
     ========================================================= */
body.theme-magazine .featured {
  padding: 100px 40px;
  position: relative;
}

body.theme-magazine .section-title {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 60px;
  flex-wrap: wrap;
  gap: 20px;
}

body.theme-magazine .section-title .t {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(40px, 5vw, 72px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  font-variation-settings: "opsz"96;
}

body.theme-magazine .section-title .t .num {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
  color: var(--ink-2);
  margin-right: 16px;
  font-size: 0.55em;
  vertical-align: 0.3em;
}

body.theme-magazine .section-title .t em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

body.theme-magazine .section-title .more {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  padding: 10px 18px;
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  background: transparent;
  transition: all 0.2s;
}

body.theme-magazine .section-title .more:hover {
  background: var(--ink);
  color: var(--cream);
}

body.theme-magazine .stories-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 28px;
}

body.theme-magazine .story-card {
  background: var(--cream-2);
  border: 2px solid var(--ink);
  border-radius: 20px;
  overflow: hidden;
  transition: all 0.25s cubic-bezier(0.2, 0.9, 0.3, 1);
  cursor: pointer;
  display: flex;
  flex-direction: column;
}

body.theme-magazine .story-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 8px 8px 0 var(--ink);
}

body.theme-magazine .story-card.big {
  grid-row: span 2;
}

body.theme-magazine .story-img {
  aspect-ratio: 4/3;
  border-bottom: 2px solid var(--ink);
  position: relative;
}

body.theme-magazine .story-card.big .story-img {
  aspect-ratio: auto;
  flex: 1;
  min-height: 0;
}

body.theme-magazine .story-img-media {
  width: 100%;
  height: 100%;
}

body.theme-magazine .story-img img,
body.theme-magazine .story-img svg {
  width: 100%;
  height: 100%;
  display: block;
}

body.theme-magazine .story-body {
  padding: 22px 24px 26px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

body.theme-magazine .cat-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  padding: 4px 10px;
  border-radius: 100px;
  border: 1.5px solid var(--ink);
  font-weight: 500;
  align-self: flex-start;
  margin-bottom: 14px;
}

body.theme-magazine .cat-tag.culture {
  background: var(--peach);
}

body.theme-magazine .cat-tag.ideas {
  background: var(--sky);
}

body.theme-magazine .cat-tag.science {
  background: var(--mint);
}

body.theme-magazine .cat-tag.politics {
  background: var(--lemon);
}

body.theme-magazine .cat-tag.essay {
  background: var(--coral);
  color: var(--cream);
  border-color: var(--ink);
}

body.theme-magazine .story-body h3 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 28px;
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin-bottom: 12px;
  font-variation-settings: "opsz"72;
}

body.theme-magazine .story-card.big .story-body h3 {
  font-size: 42px;
  line-height: 0.98;
}

body.theme-magazine .story-card.big .story-body h3 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

body.theme-magazine .story-body p {
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink-2);
  margin-bottom: 20px;
  font-weight: 300;
}

body.theme-magazine .story-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-2);
  padding-top: 16px;
  border-top: 1.5px dashed var(--ink);
  margin-top: auto;
}

body.theme-magazine .story-footer .by {
  font-weight: 500;
}

/* Archive-style summary pill on story cards */
body.theme-magazine .story-card .issue-iris-pill {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 3;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: var(--cream);
  padding: 4px;
  display: inline-flex;
  align-items: center;
  gap: 0;
  cursor: pointer;
  box-shadow: 3px 3px 0 var(--ink);
  width: 36px;
  height: 36px;
  justify-content: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, padding-right 0.2s ease, gap 0.2s ease, width 0.2s ease;
}

body.theme-magazine .story-card:hover .issue-iris-pill,
body.theme-magazine .story-card:focus-within .issue-iris-pill,
body.theme-magazine .story-card .issue-iris-pill:focus-visible {
  background: var(--sun);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
  padding-right: 14px;
  gap: 8px;
  width: auto;
}

body.theme-magazine .story-card .issue-iris-pill .pill-icon {
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 16px;
  line-height: 1;
}

body.theme-magazine .story-card:hover .issue-iris-pill .pill-icon,
body.theme-magazine .story-card:focus-within .issue-iris-pill .pill-icon,
body.theme-magazine .story-card .issue-iris-pill:focus-visible .pill-icon {
  animation: irisPillSpin 1.2s linear infinite;
}

body.theme-magazine .story-card .issue-iris-pill .txt {
  font-family: var(--display);
  font-size: 13px;
  letter-spacing: 0.02em;
  white-space: nowrap;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-width 0.2s ease, opacity 0.2s ease;
}

body.theme-magazine .story-card:hover .issue-iris-pill .txt,
body.theme-magazine .story-card:focus-within .issue-iris-pill .txt,
body.theme-magazine .story-card .issue-iris-pill:focus-visible .txt {
  max-width: 110px;
  opacity: 1;
}

/* =========================================================
   Summary chat panel — shown when Quick Summary is open
   Mirrors the iris-dock chat dialog style (avatar + close)
   ========================================================= */
body.theme-magazine .tldr-body {
  position: absolute;
  top: 54px;
  right: 16px;
  z-index: 5;
  width: min(300px, calc(100% - 32px));
  margin: 0;
  padding: 14px;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 18px 4px 18px 18px;
  box-shadow: 4px 4px 0 var(--ink);
  flex-direction: column;
  gap: 12px;
  animation: dpMsgIn 0.25s cubic-bezier(0.2, 0.9, 0.3, 1) both;
}

/* Header row — avatar, name, close button */
body.theme-magazine .tldr-body .tldr-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 10px;
  border-bottom: 1.5px dashed var(--ink);
}

body.theme-magazine .tldr-body .tldr-av {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--coral);
  border: 1.5px solid var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 2px 2px 0 var(--ink);
  flex-shrink: 0;
}

body.theme-magazine .tldr-body .tldr-av svg {
  width: 70%;
  height: 70%;
}

body.theme-magazine .tldr-body .tldr-info {
  flex: 1;
  min-width: 0;
}

body.theme-magazine .tldr-body .tldr-name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
  line-height: 1.1;
}

body.theme-magazine .tldr-body .tldr-sub {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2, #555);
  margin-top: 2px;
}

body.theme-magazine .tldr-body .tldr-close {
  margin-left: auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  cursor: pointer;
  font-family: var(--display);
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex-shrink: 0;
  transition: background 0.15s ease, color 0.15s ease;
}

body.theme-magazine .tldr-body .tldr-close:hover {
  background: var(--coral);
  color: var(--cream);
}

/* Body text — the summary itself */
body.theme-magazine .tldr-body .tldr-content {
  font-family: var(--serif);
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink);
  max-height: 180px;
  overflow-y: auto;
}

/* Loading dots inside summary panel */
body.theme-magazine .tldr-loading {
  display: flex;
  gap: 5px;
  align-items: center;
  padding: 4px 0;
}

body.theme-magazine .tldr-loading .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink);
  animation: vamikaDot 1.2s ease-in-out infinite both;
}

body.theme-magazine .tldr-loading .dot:nth-child(2) {
  animation-delay: 0.2s;
}

body.theme-magazine .tldr-loading .dot:nth-child(3) {
  animation-delay: 0.4s;
}

/* =========================================================
     AI FEATURES SECTION — colorful blocks
     ========================================================= */
body.theme-magazine .features {
  padding: 100px 40px;
  background: var(--cream-2);
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  position: relative;
}

body.theme-magazine .features .intro {
  text-align: center;
  max-width: var(--container-prose);
  margin: 0 auto 80px;
}

body.theme-magazine .features .intro .eyebrow {
  display: inline-block;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  padding: 6px 16px;
  background: var(--ink);
  color: var(--cream);
  border-radius: 100px;
  margin-bottom: 24px;
}

body.theme-magazine .features h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(44px, 6vw, 88px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  margin-bottom: 20px;
  font-variation-settings: "opsz"96;
}

body.theme-magazine .features h2 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

body.theme-magazine .features .intro p {
  font-family: var(--serif);
  font-size: 20px;
  line-height: 1.5;
  color: var(--ink-2);
  font-weight: 300;
  max-width: 580px;
  margin: 0 auto;
}

body.theme-magazine .feature-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 24px;
}

body.theme-magazine .feat {
  border: 2px solid var(--ink);
  border-radius: 20px;
  padding: 30px;
  position: relative;
  overflow: hidden;
  transition: all 0.25s;
  cursor: pointer;
}

body.theme-magazine [data-href] {
  cursor: pointer;
}

body.theme-magazine .feat:hover {
  transform: translate(-3px, -3px);
  box-shadow: 8px 8px 0 var(--ink);
}

body.theme-magazine .feat-style-hero {
  grid-column: span 4;
  background: var(--coral);
  color: var(--cream);
  min-height: 380px;
}

body.theme-magazine .feat-style-sun {
  grid-column: span 2;
  background: var(--sun);
  min-height: 380px;
}

body.theme-magazine .feat-style-cobalt {
  grid-column: span 2;
  background: var(--cobalt);
  color: var(--cream);
  min-height: 340px;
}

body.theme-magazine .feat-style-mint {
  grid-column: span 2;
  background: var(--mint);
  min-height: 340px;
}

body.theme-magazine .feat-style-plum {
  grid-column: span 2;
  background: var(--plum);
  color: var(--cream);
  min-height: 340px;
}

body.theme-magazine .feat .label {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  opacity: 0.7;
  margin-bottom: 14px;
}

body.theme-magazine .feat h3 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 36px;
  line-height: 0.95;
  letter-spacing: -0.02em;
  margin-bottom: 16px;
  font-variation-settings: "opsz"72;
}

body.theme-magazine .feat-style-hero h3 {
  font-size: 56px;
}

body.theme-magazine .feat h3 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
}

body.theme-magazine .feat p {
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.5;
  font-weight: 300;
  max-width: 460px;
  margin-bottom: 24px;
}

body.theme-magazine .feat-style-hero p {
  font-size: 17px;
  max-width: 540px;
}

/* mock visuals inside feature cards */
body.theme-magazine .feat-visual {
  margin-top: auto;
  padding-top: 20px;
}

/* Feat 1: chat messages */
body.theme-magazine .mini-chat {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.theme-magazine .mini-msg {
  padding: 10px 14px;
  border-radius: 14px;
  font-family: var(--serif);
  font-size: 13px;
  line-height: 1.4;
  max-width: 80%;
  border: 1.5px solid var(--ink);
}

body.theme-magazine .mini-msg.u {
  background: var(--cream);
  color: var(--ink);
  align-self: flex-end;
}

body.theme-magazine .mini-msg.a {
  background: var(--sun);
  color: var(--ink);
}

/* Feat 2: summary sticky note */
body.theme-magazine .mini-summary {
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 14px;
  padding: 14px 16px;
  transform: rotate(-1.5deg);
  box-shadow: 3px 3px 0 var(--ink);
}

body.theme-magazine .mini-summary .mlbl {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--coral);
  margin-bottom: 8px;
  font-weight: 500;
}

body.theme-magazine .mini-summary p {
  font-family: var(--serif);
  font-size: 13px;
  line-height: 1.45;
  color: var(--ink);
  font-weight: 400;
  margin: 0;
}

/* Feat 3: related reads tags */
body.theme-magazine .mini-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.theme-magazine .mini-tag {
  padding: 6px 12px;
  background: var(--cream);
  color: var(--ink);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
}

body.theme-magazine .mini-tag .score {
  color: var(--coral);
  margin-left: 4px;
}

/* Feat 4: chart */
body.theme-magazine .mini-chart {
  display: flex;
  align-items: flex-end;
  gap: 6px;
  height: 80px;
}

body.theme-magazine .mini-chart .bar {
  flex: 1;
  background: var(--ink);
  border-radius: 4px 4px 0 0;
  border: 1.5px solid var(--ink);
}

body.theme-magazine .mini-chart .bar:nth-child(1) {
  height: 40%;
  background: var(--cobalt);
}

body.theme-magazine .mini-chart .bar:nth-child(2) {
  height: 60%;
  background: var(--coral);
}

body.theme-magazine .mini-chart .bar:nth-child(3) {
  height: 45%;
  background: var(--sun);
}

body.theme-magazine .mini-chart .bar:nth-child(4) {
  height: 80%;
  background: var(--plum);
}

body.theme-magazine .mini-chart .bar:nth-child(5) {
  height: 55%;
  background: var(--grass);
}

body.theme-magazine .mini-chart .bar:nth-child(6) {
  height: 95%;
  background: var(--coral);
}

body.theme-magazine .mini-chart .bar:nth-child(7) {
  height: 70%;
  background: var(--cobalt);
}

/* Feat 5: suggest card */
body.theme-magazine .mini-suggest {
  background: var(--cream);
  color: var(--ink);
  border: 1.5px solid var(--ink);
  border-radius: 14px;
  padding: 14px 16px;
}

body.theme-magazine .mini-suggest .ql {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--plum);
  margin-bottom: 6px;
  font-weight: 500;
}

body.theme-magazine .mini-suggest .qt {
  font-family: var(--serif);
  font-style: italic;
  font-size: 15px;
  line-height: 1.3;
  color: var(--ink);
}

/* =========================================================
     SEMANTIC RELATED — colorful collage
     ========================================================= */
body.theme-magazine .semantic {
  padding: 110px 40px;
  position: relative;
}

body.theme-magazine .semantic-intro {
  max-width: var(--container-prose);
  margin: 0 auto 80px;
  text-align: center;
}

body.theme-magazine .semantic-intro .eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--ink-2);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

body.theme-magazine .semantic-intro .eyebrow::before,
body.theme-magazine .semantic-intro .eyebrow::after {
  content: '';
  flex: 1;
  max-width: 60px;
  height: 1.5px;
  background: var(--ink);
}

body.theme-magazine .semantic-intro h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(44px, 6vw, 88px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  margin-bottom: 20px;
  font-variation-settings: "opsz"96;
}

body.theme-magazine .semantic-intro h2 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--plum);
}

body.theme-magazine .reading-now {
  max-width: var(--container-prose);
  margin: 0 auto 50px;
  background: var(--cream-2);
  border: 2px solid var(--ink);
  border-radius: 16px;
  padding: 24px 28px;
  display: flex;
  align-items: center;
  gap: 18px;
  box-shadow: 4px 4px 0 var(--ink);
}

body.theme-magazine .reading-now .rnlbl {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  background: var(--plum);
  color: var(--cream);
  padding: 6px 12px;
  border-radius: 100px;
  border: 1.5px solid var(--ink);
  flex-shrink: 0;
}

body.theme-magazine .reading-now .rntxt {
  font-family: var(--serif);
  font-style: italic;
  font-size: 20px;
  line-height: 1.3;
  color: var(--ink);
}

body.theme-magazine .related-scatter {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 1100px;
  margin: 0 auto;
}

body.theme-magazine .related-card {
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 16px;
  padding: 22px 24px;
  position: relative;
  cursor: pointer;
  transition: all 0.25s;
}

body.theme-magazine .related-card:hover {
  transform: translate(-2px, -2px);
  box-shadow: 5px 5px 0 var(--ink);
}

body.theme-magazine .related-card:nth-child(1) {
  transform: rotate(-1.5deg);
  background: var(--lemon);
}

body.theme-magazine .related-card:nth-child(2) {
  transform: rotate(1deg);
  background: var(--peach);
}

body.theme-magazine .related-card:nth-child(3) {
  transform: rotate(-0.8deg);
  background: var(--sky);
}

body.theme-magazine .related-card:nth-child(4) {
  transform: rotate(1.2deg);
  background: var(--mint);
}

body.theme-magazine .related-card:nth-child(1):hover {
  transform: rotate(-1.5deg) translate(-2px, -2px);
}

body.theme-magazine .related-card:nth-child(2):hover {
  transform: rotate(1deg) translate(-2px, -2px);
}

body.theme-magazine .related-card:nth-child(3):hover {
  transform: rotate(-0.8deg) translate(-2px, -2px);
}

body.theme-magazine .related-card:nth-child(4):hover {
  transform: rotate(1.2deg) translate(-2px, -2px);
}

body.theme-magazine .related-card .score-big {
  font-family: var(--display);
  font-weight: 800;
  font-size: 48px;
  line-height: 1;
  letter-spacing: -0.04em;
  margin-bottom: 14px;
  font-variation-settings: "opsz"96;
}

body.theme-magazine .related-card .score-lbl {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1.5px dashed var(--ink);
}

body.theme-magazine .related-card .cat {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-bottom: 6px;
  font-weight: 500;
}

body.theme-magazine .related-card h4 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.15;
  letter-spacing: -0.01em;
}

/* =========================================================
     NEWSLETTER
     ========================================================= */
body.theme-magazine .newsletter {
  padding: 120px 40px;
  background: var(--coral);
  color: var(--cream);
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  text-align: center;
  position: relative;
  overflow: hidden;
}

body.theme-magazine .newsletter::before,
body.theme-magazine .newsletter::after {
  content: '';
  position: absolute;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: var(--sun);
  border: 2px solid var(--ink);
  opacity: 0.9;
}

body.theme-magazine .newsletter::before {
  top: -60px;
  left: -60px;
}

body.theme-magazine .newsletter::after {
  bottom: -80px;
  right: -80px;
  background: var(--cobalt);
}

body.theme-magazine .newsletter .inner {
  max-width: 680px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

body.theme-magazine .newsletter .ey {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  margin-bottom: 24px;
  display: inline-block;
  padding: 6px 16px;
  border: 1.5px solid var(--cream);
  border-radius: 100px;
}

body.theme-magazine .newsletter h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(44px, 6.5vw, 100px);
  line-height: 0.9;
  letter-spacing: -0.03em;
  margin-bottom: 24px;
  font-variation-settings: "opsz"96;
}

body.theme-magazine .newsletter h2 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--sun);
}

body.theme-magazine .newsletter p {
  font-family: var(--serif);
  font-size: 20px;
  line-height: 1.5;
  margin-bottom: 40px;
  font-weight: 300;
  opacity: 0.95;
}

body.theme-magazine .newsletter-form {
  text-align: center;
  margin: 0 auto;
}

body.theme-magazine .newsletter-form .newsletter-btn {
  display: inline-block;
  background: var(--cream);
  color: var(--ink);
  border: 2px solid var(--ink);
  padding: 16px 40px;
  border-radius: 100px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  letter-spacing: 0.04em;
  box-shadow: 6px 6px 0 var(--ink);
  cursor: pointer;
  transition: background 0.25s, color 0.25s, box-shadow 0.25s;
}

body.theme-magazine .newsletter-form .newsletter-btn:hover {
  background: var(--ink);
  color: var(--cream);
  box-shadow: 4px 4px 0 var(--ink);
}

body.theme-magazine .newsletter .fine {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-top: 22px;
  opacity: 0.85;
}

/* =========================================================
     FOOTER
     ========================================================= */
body.theme-magazine .site-footer {
  background: var(--ink);
  color: var(--cream);
  padding: 80px 40px 40px;
}

body.theme-magazine .footer-top {
  margin-bottom: 60px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 50px;
}

body.theme-magazine .footer-brand {
  font-family: var(--display);
  font-weight: 800;
  font-size: 80px;
  line-height: 0.85;
  letter-spacing: -0.04em;
}

body.theme-magazine .footer-brand .blob {
  display: inline-block;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--coral);
  vertical-align: middle;
  margin-right: 8px;
  border: 2px solid var(--cream);
}

body.theme-magazine .footer-tagline {
  font-family: var(--serif);
  font-style: italic;
  font-size: 17px;
  max-width: 300px;
  margin-top: 20px;
  opacity: 0.8;
  line-height: 1.5;
}

body.theme-magazine .footer-col h6 {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 18px;
  color: var(--sun);
  font-weight: 500;
}

body.theme-magazine .footer-col ul {
  list-style: none;
}

body.theme-magazine .footer-col li {
  margin-bottom: 10px;
}

body.theme-magazine .footer-col a {
  font-family: var(--display);
  font-size: 14px;
  opacity: 0.8;
  transition: all 0.15s;
}

body.theme-magazine .footer-col a:hover {
  color: var(--coral);
  opacity: 1;
}

body.theme-magazine .footer-bottom {
  padding-top: 30px;
  border-top: 1px solid rgba(244, 239, 230, 0.2);
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.6;
}

/* =========================================================
     FLOATING IRIS DOCK
     ========================================================= */
body.theme-magazine .iris-dock {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 200;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
}

body.theme-magazine .iris-dock-btn {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--coral);
  border: 2px solid var(--ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 4px 4px 0 var(--ink);
  transition: all 0.2s;
  position: relative;
  animation: dockBob 3.4s ease-in-out infinite;
  padding: 0;
}

body.theme-magazine .iris-dock-btn svg {
  width: 70%;
  height: 70%;
}

body.theme-magazine .iris-dock-btn .dock-glyph {
  width: 60%;
  height: 60%;
  overflow: visible;
}

body.theme-magazine .iris-dock-btn .dock-glyph path {
  fill: var(--cream);
  stroke: var(--ink);
  stroke-width: 3;
  stroke-linejoin: round;
}

@keyframes dockBob {

  0%,
  100% {
    transform: translateY(0) rotate(-3deg);
  }

  50% {
    transform: translateY(-5px) rotate(3deg);
  }
}

body.theme-magazine .iris-dock-btn:hover {
  background: var(--cobalt);
  transform: scale(1.08) rotate(0deg);
  box-shadow: 6px 6px 0 var(--ink);
}

body.theme-magazine .iris-dock-btn .ping {
  position: absolute;
  top: 0;
  right: 0;
  width: 13px;
  height: 13px;
  background: var(--grass);
  border: 2px solid var(--ink);
  border-radius: 50%;
  animation: pingPulse 2s ease-in-out infinite;
}

@keyframes pingPulse {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.25);
  }
}

/* speech bubble that appears on hover */
body.theme-magazine .iris-dock-bubble {
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 18px;
  padding: 12px 18px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  color: var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
  position: relative;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(8px) scale(0.95);
  transform-origin: bottom right;
  pointer-events: none;
  transition: all 0.25s cubic-bezier(0.2, 0.9, 0.3, 1);
}

body.theme-magazine .iris-dock-bubble::after {
  content: '';
  position: absolute;
  bottom: -10px;
  right: 28px;
  width: 16px;
  height: 16px;
  background: var(--cream);
  border-right: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  transform: rotate(45deg);
}

body.theme-magazine .iris-dock-bubble em {
  font-family: var(--serif);
  font-style: italic;
  color: var(--coral);
  font-weight: 500;
}

body.theme-magazine .iris-dock:hover .iris-dock-bubble {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* expanded chat panel from dock */
body.theme-magazine .iris-dock-panel {
  position: fixed;
  bottom: 120px;
  right: 30px;
  width: 360px;
  background: var(--cream-2);
  border: 2px solid var(--ink);
  border-radius: 20px;
  box-shadow: 8px 8px 0 var(--ink);
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px) scale(0.95);
  transform-origin: bottom right;
  transition: all 0.3s cubic-bezier(0.2, 0.9, 0.3, 1);
  z-index: 199;
}

body.theme-magazine .iris-dock-panel.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

body.theme-magazine .iris-dock-panel-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 18px;
  border-bottom: 1.5px dashed var(--ink);
  margin-bottom: 18px;
}

body.theme-magazine .iris-dock-panel-header .av {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--coral);
  border: 1.5px solid var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 2px 2px 0 var(--ink);
}

body.theme-magazine .iris-dock-panel-header .av svg {
  width: 70%;
  height: 70%;
}

body.theme-magazine .iris-dock-panel-header .info .name {
  font-family: var(--display);
  font-weight: 700;
  font-size: 16px;
}

body.theme-magazine .iris-dock-panel-header .info .sub {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
  margin-top: 2px;
}

body.theme-magazine .iris-dock-panel-header .close {
  margin-left: auto;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  cursor: pointer;
  font-family: var(--display);
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

body.theme-magazine .iris-dock-panel-header .close:hover {
  background: var(--coral);
  color: var(--cream);
}

body.theme-magazine .iris-dock-panel-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 18px;
  max-height: 280px;
  overflow-y: auto;
}

body.theme-magazine .dp-msg {
  display: flex;
  gap: 10px;
  max-width: 88%;
  animation: dpMsgIn 0.4s cubic-bezier(0.2, 0.9, 0.3, 1) both;
}

@keyframes dpMsgIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

body.theme-magazine .dp-msg.u {
  align-self: flex-end;
}

body.theme-magazine .dp-msg.u .bb {
  background: var(--ink);
  color: var(--cream);
  border-color: var(--ink);
  border-radius: 14px 14px 4px 14px;
}

body.theme-magazine .dp-msg .bb {
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 14px 14px 14px 4px;
  padding: 10px 14px;
  font-family: var(--serif);
  font-size: 13px;
  line-height: 1.45;
}

body.theme-magazine .dp-msg .bb strong {
  color: var(--coral);
  font-family: var(--display);
  font-weight: 600;
}

body.theme-magazine .iris-dock-panel-prompts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}

body.theme-magazine .iris-dock-panel-prompts button {
  padding: 6px 12px;
  background: var(--lemon);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: all 0.2s;
  font-weight: 500;
}

body.theme-magazine .iris-dock-panel-prompts button:hover {
  background: var(--coral);
  color: var(--cream);
}

body.theme-magazine .iris-dock-panel-input {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 12px;
  padding: 10px 14px;
}

body.theme-magazine .iris-dock-panel-input input {
  flex: 1;
  background: transparent;
  border: none;
  font-family: var(--display);
  font-size: 13px;
  outline: none;
  min-width: 0;
}

body.theme-magazine .iris-dock-panel-input button {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--ink);
  color: var(--cream);
  border: none;
  cursor: pointer;
  font-size: 14px;
  flex-shrink: 0;
  transition: all 0.2s;
}

body.theme-magazine .iris-dock-panel-input button:hover {
  background: var(--coral);
  transform: rotate(-12deg);
}

/* =========================================================
     SCROLL REVEAL
     ========================================================= */
body.theme-magazine .reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s cubic-bezier(0.2, 0.9, 0.3, 1), transform 0.7s cubic-bezier(0.2, 0.9, 0.3, 1);
}

body.theme-magazine .reveal.in {
  opacity: 1;
  transform: translateY(0);
}

/* =========================================================
     INTERACTIVE ENHANCEMENTS
     ========================================================= */
/* Hero title staggered entrance */
body.theme-magazine .hero-title .word {
  display: inline-block;
  opacity: 0;
  transform: translateY(40px);
  animation: wordRise 0.9s cubic-bezier(0.2, 0.9, 0.3, 1) forwards;
}

body.theme-magazine .hero-title .word:nth-child(1) {
  animation-delay: 0.1s;
}

body.theme-magazine .hero-title .word:nth-child(2) {
  animation-delay: 0.25s;
}

body.theme-magazine .hero-title .word:nth-child(3) {
  animation-delay: 0.4s;
}

body.theme-magazine .hero-title .word:nth-child(4) {
  animation-delay: 0.55s;
}

@keyframes wordRise {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Chat card 3D tilt */
body.theme-magazine .chat-card {
  transition: transform 0.4s cubic-bezier(0.2, 0.9, 0.3, 1);
  will-change: transform;
}

/* Magnetic button base */
body.theme-magazine .magnetic {
  transition: transform 0.2s cubic-bezier(0.2, 0.9, 0.3, 1);
  will-change: transform;
}

/* Story card image scale on hover */
body.theme-magazine .story-img svg,
body.theme-magazine .story-img img {
  transition: transform 0.5s cubic-bezier(0.2, 0.9, 0.3, 1);
}

body.theme-magazine .story-card:hover .story-img svg,
body.theme-magazine .story-card:hover .story-img img {
  transform: scale(1.06);
}

/* Marquee pause on hover */
body.theme-magazine .marquee:hover .marquee-track {
  animation-play-state: paused;
}

/* Stat counter — start invisible */
body.theme-magazine .chat-stat .n {
  transition: color 0.3s;
}

/* Reduced motion */
body.theme-magazine @media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* =========================================================
     RESPONSIVE
     ========================================================= */
body.theme-magazine @media (max-width: 1100px) {
  .stories-grid {
    grid-template-columns: 1fr 1fr;
  }

  .story-card.big {
    grid-column: span 2;
    grid-row: auto;
  }

  .feature-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .feat-style-hero {
    grid-column: span 4;
    min-height: 320px;
  }

  .feat-style-sun {
    grid-column: span 2;
    min-height: 300px;
  }

  .feat-style-cobalt,
  .feat-style-mint,
  .feat-style-plum {
    grid-column: span 2;
  }

  .feat-style-plum {
    grid-column: span 4;
    min-height: 280px;
  }

  .related-scatter {
    grid-template-columns: 1fr 1fr;
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
  }

  .footer-brand {
    grid-column: 1 / -1;
    font-size: 60px;
  }
}

@media (max-width: 720px) {
  body.theme-magazine nav.topnav {
    padding-left: 20px;
    padding-right: 20px;
  }

  body.theme-magazine nav.topnav {
    flex-wrap: wrap;
    gap: 14px;
  }

  body.theme-magazine .menu-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  body.theme-magazine .nav-panel {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
    padding: 20px;
    margin-top: 4px;
    background: var(--cream);
    border: 1.5px solid var(--ink);
    border-radius: 28px;
    box-shadow: 6px 6px 0 var(--ink);
  }

  body.theme-magazine .topnav.menu-open .nav-panel {
    display: flex;
  }

  body.theme-magazine .hero,
  body.theme-magazine .featured,
  body.theme-magazine .features,
  body.theme-magazine .semantic,
  body.theme-magazine .newsletter {
    padding-left: 20px;
    padding-right: 20px;
  }

  body.theme-magazine .hero {
    padding-top: 40px;
    padding-bottom: 60px;
  }

  body.theme-magazine .hero-sticker {
    display: none;
  }

  body.theme-magazine .navlinks {
    display: grid;
    gap: 8px;
  }

  body.theme-magazine .navlinks a {
    display: block;
    padding: 12px 14px;
    border-radius: 16px;
    background: var(--cream-2);
  }

  body.theme-magazine .navlinks a::after {
    display: none;
  }

  body.theme-magazine .navlinks a[aria-current='page'] {
    background: var(--sun);
    color: var(--ink);
  }

  body.theme-magazine .nav-cta {
    width: 100%;
    justify-content: center;
  }

  body.theme-magazine .prompt-grid {
    grid-template-columns: 1fr;
  }

  body.theme-magazine .stories-grid {
    grid-template-columns: 1fr;
  }

  body.theme-magazine .story-card.big {
    grid-column: span 1;
  }

  body.theme-magazine .feature-grid {
    grid-template-columns: 1fr;
  }

  body.theme-magazine .feat-style-hero,
  body.theme-magazine .feat-style-sun,
  body.theme-magazine .feat-style-cobalt,
  body.theme-magazine .feat-style-mint,
  body.theme-magazine .feat-style-plum {
    grid-column: span 1;
    min-height: 280px;
  }

  body.theme-magazine .feat-style-hero h3 {
    font-size: 40px;
  }

  body.theme-magazine .related-scatter {
    grid-template-columns: 1fr;
  }

  body.theme-magazine .footer-top {
    grid-template-columns: 1fr;
  }

  body.theme-magazine .footer-brand {
    font-size: 50px;
  }

  body.theme-magazine .footer-bottom {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }

  body.theme-magazine .chat-stats {
    gap: 24px;
  }

  body.theme-magazine .chat-stat .n {
    font-size: 28px;
  }

  body.theme-magazine .newsletter-form .newsletter-btn {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }
}

/* =========================================================
   AI INLINE HELPERS
   Tiny contextual prompts + buttons
========================================================= */
.ai-inline-tool {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border: 1.5px dashed var(--ink);
  border-radius: 20px;
  background: var(--cream-2);
  width: min(100%, 960px);
  max-width: 100%;
  box-sizing: border-box;
  margin: 20px auto;
  margin-bottom: 40px;
  flex-wrap: wrap;
}

.ai-inline-tool.stacked {
  flex-direction: column;
  align-items: flex-start;
}

.ai-inline-tool .iris-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--cobalt);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--ink);
  box-shadow: 2px 2px 0 var(--ink);
  position: relative;
  animation: avatarBob 4s ease-in-out infinite;
  flex: 0 0 auto;
}

.ai-inline-tool .iris-avatar svg {
  width: 70%;
  height: 70%;
  display: block;
}

.ai-inline-tool p {
  margin: 0;
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.4;
  color: var(--ink-2);
  flex: 1;
  min-width: 0;
}

.ai-inline-btn {
  border: 2px solid var(--ink);
  border-radius: 999px;
  padding: 10px 18px;
  font-family: var(--display);
  font-size: 14px;
  background: var(--ink);
  color: var(--cream);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
  white-space: nowrap;
}

.ai-inline-btn:hover {
  background: var(--coral);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
}

/* Iris inline-tool response (scope sketch, etc.) */
.ai-inline-response {
  flex: 1 1 100%;
  margin-top: 6px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border: 1.5px solid var(--ink);
  border-radius: 20px;
  background: var(--cream);
  padding: 16px 18px 18px;
  animation: irisCardReveal 0.3s ease;
  width: 100%;
}

.ai-inline-response-head {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ai-inline-response .iris-team-av {
  width: 32px;
  height: 32px;
  background: var(--sun);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ai-inline-response .iris-team-av svg {
  width: 70%;
  height: 70%;
}

.ai-inline-response .iris-team-av .face {
  fill: none;
}

.ai-inline-response .iris-team-av .eye {
  fill: var(--ink);
}

.ai-inline-response .iris-team-av .mouth {
  fill: none;
  stroke: var(--ink);
  stroke-width: 2.5;
  stroke-linecap: round;
}

.ai-inline-response-meta {
  flex: 1;
  min-width: 0;
}

.ai-inline-response-name {
  font-family: var(--display);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.2;
}

.ai-inline-response-sub {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--ink);
  opacity: 0.55;
}

.ai-inline-close {
  margin-left: auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1.5px solid var(--ink);
  background: var(--cream);
  font-size: 16px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--ink);
  transition: background 0.15s ease, color 0.15s ease;
}

.ai-inline-close:hover {
  background: var(--coral);
  color: var(--cream);
}

.ai-inline-text {
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink);
  font-weight: 300;
}

.ai-inline-text .iris-thinking-dots {
  display: inline-flex;
  gap: 5px;
  padding: 8px 0;
}

.ai-inline-text .iris-thinking-dots .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--coral);
  opacity: 0.5;
  animation: irisDot 1.2s infinite ease-in-out;
}

.ai-inline-text .iris-thinking-dots .dot:nth-child(2) {
  animation-delay: 0.2s;
}

.ai-inline-text .iris-thinking-dots .dot:nth-child(3) {
  animation-delay: 0.4s;
}

.ai-inline-sources {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 14px;
}

.ai-inline-sources a {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink);
  text-decoration: none;
  background: var(--lemon);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  padding: 3px 10px;
  transition: background 0.2s, color 0.2s;
}

.ai-inline-sources a:hover {
  background: var(--coral);
  color: var(--cream);
}

/* Iris "Meet an editor" introducer response card (legacy) */
.iris-editor-card {
  border: 1.5px solid var(--ink);
  border-radius: 14px;
  background: var(--cream);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.iris-editor-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.iris-editor-name {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 600;
  color: var(--ink);
}

.iris-editor-role {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--coral);
}

.iris-editor-bio {
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink);
  min-height: 40px;
}

.iris-editor-bio .iris-thinking-dots {
  display: inline-flex;
  gap: 4px;
}

.iris-editor-bio .iris-thinking-dots .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink);
  opacity: 0.4;
  animation: irisDot 1.2s infinite ease-in-out;
}

.iris-editor-bio .iris-thinking-dots .dot:nth-child(2) {
  animation-delay: 0.2s;
}

.iris-editor-bio .iris-thinking-dots .dot:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes irisDot {

  0%,
  60%,
  100% {
    opacity: 0.3;
    transform: translateY(0);
  }

  30% {
    opacity: 1;
    transform: translateY(-3px);
  }
}

.iris-editor-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  padding-top: 4px;
}

.iris-editor-link {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  border-bottom: 1.5px solid var(--ink);
  padding-bottom: 2px;
  text-decoration: none;
}

.iris-editor-link:hover {
  color: var(--coral);
  border-color: var(--coral);
}

.iris-editor-rotate {
  margin-left: auto;
  background: transparent;
  border: none;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  cursor: pointer;
  opacity: 0.8;
}

.iris-editor-rotate:hover:not(:disabled) {
  opacity: 1;
  color: var(--coral);
}

.iris-editor-rotate:disabled {
  opacity: 0.4;
  cursor: wait;
}

/* Iris reading-path UI */
.vamika-iris-reading-path {
  flex-wrap: wrap;
}

.iris-path-input-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  flex: 1 1 100%;
  margin-top: 6px;
}

.iris-path-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.iris-path-chip {
  border: 1.5px solid var(--ink);
  border-radius: 14px;
  padding: 5px 12px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--cream);
  color: var(--ink);
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.iris-path-chip:hover {
  background: var(--sun);
  transform: translate(-1px, -1px);
}

.iris-path-input {
  flex: 1 1 200px;
  padding: 8px 14px;
  border: 1.5px solid var(--ink);
  border-radius: 10px;
  font-family: var(--sans);
  font-size: 14px;
  background: var(--cream);
  color: var(--ink);
}

.iris-path-input::placeholder {
  color: var(--ink);
  opacity: 0.45;
}

.iris-path-response {
  flex: 1 1 100%;
  margin-top: 10px;
  border: 1.5px solid var(--ink);
  border-radius: 14px;
  background: var(--cream);
  padding: 20px 22px;
}

.iris-path-intro {
  font-family: var(--serif);
  font-size: 15px;
  font-style: italic;
  line-height: 1.5;
  color: var(--ink);
  margin-bottom: 12px;
}

.iris-path-steps {
  list-style: none;
  counter-reset: path;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.iris-path-step {
  counter-increment: path;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-left: 28px;
  position: relative;
}

.iris-path-step::before {
  content: counter(path);
  position: absolute;
  left: 0;
  top: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--coral);
  color: var(--cream);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
}

.iris-path-title {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1.5px solid transparent;
}

.iris-path-title:hover {
  border-color: var(--coral);
  color: var(--coral);
}

.iris-path-why {
  font-family: var(--sans);
  font-size: 13px;
  color: var(--ink);
  opacity: 0.75;
}

.iris-path-closer {
  font-family: var(--serif);
  font-size: 14px;
  font-style: italic;
  color: var(--ink);
  margin-top: 14px;
  opacity: 0.8;
}

.iris-path-rotate {
  margin-top: 12px;
  background: transparent;
  border: none;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  cursor: pointer;
  opacity: 0.8;
}

.iris-path-rotate:hover:not(:disabled) {
  opacity: 1;
  color: var(--coral);
}

.iris-path-rotate:disabled {
  opacity: 0.4;
  cursor: wait;
}

.iris-path-response .iris-thinking-dots {
  display: inline-flex;
  gap: 4px;
}

.iris-path-response .iris-thinking-dots .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink);
  opacity: 0.4;
  animation: irisDot 1.2s infinite ease-in-out;
}

.iris-path-response .iris-thinking-dots .dot:nth-child(2) {
  animation-delay: 0.2s;
}

.iris-path-response .iris-thinking-dots .dot:nth-child(3) {
  animation-delay: 0.4s;
}

.ai-inline-prompts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ai-inline-prompts button,
.ai-inline-prompts a {
  border: 1.5px solid var(--ink);
  border-radius: 14px;
  padding: 6px 12px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--cream);
  color: inherit;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.ai-inline-prompts button:hover,
.ai-inline-prompts a:hover {
  background: var(--sun);
  transform: translate(-1px, -1px);
}

@media (max-width: 720px) {
  .ai-inline-tool {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .ai-inline-btn {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}

@keyframes irisPillSpin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

/* Iris answer summary on search page */
.iris-answer {
  margin-bottom: 36px;
}

.iris-answer-box {
  border: 1.5px solid var(--ink);
  border-radius: 28px;
  padding: 28px 32px;
  background: linear-gradient(135deg, var(--cream) 0%, var(--cream-2) 100%);
  box-shadow: 6px 6px 0 var(--ink);
  display: grid;
  gap: 18px;
}

.iris-answer-box .label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.iris-answer-box .label svg {
  width: 18px;
  height: 18px;
}

.iris-answer-box p {
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.6;
  margin: 0;
}

.iris-answer-box .sources {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.iris-answer-box .sources a {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: 1.5px solid var(--ink);
  border-radius: 999px;
  padding: 6px 12px;
  background: var(--sun);
  color: inherit;
}

@media (max-width: 720px) {
  .iris-answer-box {
    padding: 22px;
  }

  .iris-answer-box .label {
    font-size: 10px;
    letter-spacing: 0.14em;
  }
}

/* =========================================================
   GLOBAL POLISH & ACCESSIBILITY
   Appended pass — applies across all themes
   ========================================================= */

/* Respect user motion preference: halt looping decorative animations */
@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation-duration: 0.001ms \!important;
    animation-iteration-count: 1 \!important;
    transition-duration: 0.001ms \!important;
    scroll-behavior: auto \!important;
  }
}

/* Visible keyboard focus — cobalt ring on cream, works on every theme */
body.theme-magazine :focus-visible,
body.theme-pages :focus-visible,
body.theme-post :focus-visible {
  outline: 2px solid var(--cobalt, #2547ff);
  outline-offset: 3px;
  border-radius: 2px;
}

/* Kill the default outline only where focus-visible is supported */
body.theme-magazine :focus:not(:focus-visible),
body.theme-pages :focus:not(:focus-visible),
body.theme-post :focus:not(:focus-visible) {
  outline: none;
}

/* Balance multi-line display headings so line breaks look intentional */
body.theme-magazine .hero-title,
body.theme-pages .hero-title,
body.theme-post .hero-title,
body.theme-magazine h1,
body.theme-pages h1,
body.theme-post h1,
body.theme-magazine h2,
body.theme-pages h2,
body.theme-post h2 {
  text-wrap: balance;
}

/* Long-form prose reads better with pretty wrapping */
body.theme-post p,
body.theme-pages p {
  text-wrap: pretty;
}

/* Proper OpenType superscript for the ® mark in the brand lockup */
body.theme-magazine .brand sup,
body.theme-pages .brand sup,
body.theme-post .brand sup {
  font-feature-settings: "sups"1;
  font-size: 0.6em;
  vertical-align: baseline;
  position: relative;
  top: -0.4em;
  margin-left: 0.1em;
}

/* Smooth image rendering & no layout shift for anything with explicit dims */
img {
  max-width: 100%;
  height: auto;
}

/* ==========================================================================
   GLOBAL WIDTH CONSTRAINT
   Common full-bleed sections (colored backgrounds, hero blocks, form rows,
   etc.) stay edge-to-edge so their backgrounds still span the whole viewport,
   but their *inner content* is clamped to one shared max-width on large
   screens. Uses the padding-inline `max()` trick so no HTML inner wrappers
   are required — each section just grows its side padding on wide monitors
   until the content sits inside --site-max.

   Sections with a deliberately unique width (article prose column at 720px,
   reactions at 900px, article-header at 1200px, related-section at 1280px,
   any full-bleed cover image) are intentionally excluded.
   ========================================================================== */

:root {
  /* single source of truth for the global content width */
  --site-max: 1320px;
  /* grows the side gutters on wide screens so inner content stays centred */
  --site-gutter: max(var(--gutter-lg), calc((100% - var(--site-max)) / 2));
}

@media (max-width: 1100px) {
  :root {
    --site-gutter: var(--gutter-md);
  }
}

@media (max-width: 720px) {
  :root {
    --site-gutter: var(--gutter-sm);
  }
}

/* ---- theme-pages (about / contact / archive / category / author / etc.) ---- */
body.theme-pages .page-hero,
body.theme-pages .about-manifesto,
body.theme-pages .stats-bar,
body.theme-pages .timeline-section,
body.theme-pages .team-section,
body.theme-pages .contact-tracks,
body.theme-pages .contact-form-section,
body.theme-pages .category-header,
body.theme-pages .category-filters,
body.theme-pages .category-body,
body.theme-pages .author-hero,
body.theme-pages .search-hero,
body.theme-pages .search-results,
body.theme-pages .notfound,
body.theme-pages .sg-layout,
body.theme-pages .breadcrumb {
  padding-left: var(--site-gutter);
  padding-right: var(--site-gutter);
}

/* ---- theme-magazine (index / home) ---- */
body.theme-magazine .hero,
body.theme-magazine .featured,
body.theme-magazine .features,
body.theme-magazine .semantic,
body.theme-magazine .newsletter,
body.theme-magazine .breadcrumb {
  padding-left: var(--site-gutter);
  padding-right: var(--site-gutter);
}

/* ---- theme-post (single article pages) ---- */
/* Only the keep-reading CTA and any plain full-bleed rows need the shared
   gutter. Article header, author card, reactions, related and the prose
   column all have their own bespoke widths — leave them alone. */
body.theme-post .keep-reading,
body.theme-post .breadcrumb {
  padding-left: var(--site-gutter);
  padding-right: var(--site-gutter);
}

/* =========================================================
   VAMIKA × IRISAI BRIDGE STYLES
   ========================================================= */

/* ── Thinking dots (shared between dock panel & hero card) ── */
@keyframes vamikaDot {

  0%,
  80%,
  100% {
    transform: scale(0.55);
    opacity: 0.35;
  }

  40% {
    transform: scale(1);
    opacity: 1;
  }
}

.dp-msg--thinking .bb {
  display: flex;
  gap: 5px;
  align-items: center;
  min-height: 20px;
}

.dp-msg--thinking .dot,
.hero-iris-thinking .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink);
  animation: vamikaDot 1.2s ease-in-out infinite both;
}

.dp-msg--thinking .dot:nth-child(2),
.hero-iris-thinking .dot:nth-child(2) {
  animation-delay: 0.2s;
}

.dp-msg--thinking .dot:nth-child(3),
.hero-iris-thinking .dot:nth-child(3) {
  animation-delay: 0.4s;
}

/* ── Dock panel: source pills ─────────────────────────────── */
body.theme-magazine .dp-sources,
body.theme-post .dp-sources {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
  padding: 0 2px;
  animation: dpMsgIn 0.4s cubic-bezier(0.2, 0.9, 0.3, 1) both;
}

body.theme-magazine .dp-sources a,
body.theme-post .dp-sources a {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink);
  text-decoration: none;
  background: var(--lemon);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  padding: 3px 10px;
  transition: background 0.2s, color 0.2s;
}

body.theme-magazine .dp-sources a:hover,
body.theme-post .dp-sources a:hover {
  background: var(--coral);
  color: var(--cream);
}

/* ── Hero chat card: AI response area ─────────────────────── */
body.theme-magazine .hero-iris-response {
  margin-top: 14px;
  padding: 18px 22px;
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 14px;
  box-shadow: 3px 3px 0 var(--ink);
  animation: dpMsgIn 0.35s cubic-bezier(0.2, 0.9, 0.3, 1) both;
}

body.theme-magazine .hero-iris-thinking {
  display: flex;
  gap: 6px;
  align-items: center;
  min-height: 22px;
}

body.theme-magazine .hero-iris-thinking .dot {
  width: 7px;
  height: 7px;
}

body.theme-magazine .hero-iris-answer {
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink);
  white-space: pre-wrap;
}

body.theme-magazine .hero-iris-sources {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 14px;
}

body.theme-magazine .hero-iris-sources a {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink);
  text-decoration: none;
  background: var(--lemon);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  padding: 3px 10px;
  transition: background 0.2s, color 0.2s;
}

body.theme-magazine .hero-iris-sources a:hover {
  background: var(--cobalt);
  color: var(--cream);
}

body.theme-magazine .hero-iris-error {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--coral);
}

/* Input shake on empty submit */
@keyframes vamikaShake {

  0%,
  100% {
    transform: translateX(0);
  }

  25% {
    transform: translateX(-4px);
  }

  75% {
    transform: translateX(4px);
  }
}

.vamika-shake {
  animation: vamikaShake 0.4s ease-in-out;
}

/* ── Search page: iris-answer loading state ───────────────── */
.iris-answer-box .iris-thinking-line {
  font-family: var(--serif);
  font-style: italic;
  opacity: 0.55;
}

/* ---- Nav & footer line up with page content on every theme ---- */
body.theme-pages nav.topnav,
body.theme-magazine nav.topnav,
body.theme-post nav.topnav,
body.theme-pages .site-footer,
body.theme-magazine .site-footer,
body.theme-post .site-footer {
  padding-left: var(--site-gutter);
  padding-right: var(--site-gutter);
}

/* =================================================================
   WORDPRESS STANDARD ELEMENTS
   Covers comments, Gutenberg blocks, pagination, forms, post meta,
   accessibility, and required WordPress classes.
   All styled to match the Vamika design system.
   ================================================================= */

/* ── Skip link ─────────────────────────────────────────────── */
.skip-link {
  position: absolute;
  top: -100%;
  left: 50%;
  background: var(--ink);
  color: var(--cream);
  font-family: var(--mono);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 10px 20px;
  border-radius: 0 0 12px 12px;
  z-index: 9999;
  text-decoration: none;
  transition: top 0.2s;
}

.skip-link:focus {
  top: 0;
}

/* ── Screen reader text (WordPress standard) ───────────────── */
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.screen-reader-text:focus {
  display: block;
  width: auto;
  height: auto;
  padding: 12px 20px;
  clip: auto !important;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--display);
  font-size: 14px;
  z-index: 100000;
}

/* =================================================================
   COMMENTS
   ================================================================= */
.reactions {
  max-width: 720px;
  margin: 0 auto;
  padding: 60px 0 40px;
}

.reactions .lbl {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ink-2);
  text-align: center;
  margin-bottom: 40px;
}

/* ── Comment list ──────────────────────────────────────────── */
.comment-list {
  list-style: none;
  padding: 0;
  margin: 0 0 48px;
}

.comment-list .comment,
.comment-list .pingback,
.comment-list .trackback {
  margin-bottom: 28px;
}

.comment-list .children {
  list-style: none;
  padding-left: 32px;
  margin: 20px 0 0;
  border-left: 2px solid var(--cream-2);
}

.comments-pagination {
  margin: -20px 0 44px;
}

.comments-pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

.comments-pagination a,
.comments-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  min-height: 38px;
  padding: 8px 12px;
  font-family: var(--mono);
  font-size: 11px;
  line-height: 1;
  color: var(--ink);
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 999px;
  text-decoration: none;
}

.comments-pagination .current {
  color: var(--cream);
  background: var(--ink);
}

.comment-body {
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 16px;
  padding: 22px 24px;
}

.comment-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1.5px dashed var(--cream-2);
}

.comment-author {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 14px;
}

.comment-author .avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1.5px solid var(--ink);
  object-fit: cover;
}

.comment-author .fn {
  font-style: normal;
}

.comment-author .says {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-2);
}

.comment-metadata {
  margin-left: auto;
}

.comment-metadata a {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-2);
  text-decoration: none;
}

.comment-metadata a:hover {
  color: var(--coral);
}

.comment-content {
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink);
}

.comment-content p {
  margin: 0 0 12px;
}

.comment-content p:last-child {
  margin-bottom: 0;
}

.comment-reply-link {
  display: inline-block;
  margin-top: 12px;
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink);
  text-decoration: none;
  background: var(--lemon);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  padding: 4px 12px;
  transition: background 0.2s, color 0.2s;
}

.comment-reply-link:hover {
  background: var(--coral);
  color: var(--cream);
}

.comment-awaiting-moderation {
  display: block;
  margin-top: 10px;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-2);
  font-style: italic;
}

.bypostauthor>.comment-body {
  border-color: var(--coral);
  background: color-mix(in srgb, var(--coral) 5%, var(--cream));
}

.pingback .comment-body,
.trackback .comment-body {
  padding: 14px 20px;
  font-family: var(--mono);
  font-size: 11px;
}

/* ── Comment form ──────────────────────────────────────────── */
.comment-respond {
  margin-top: 40px;
}

.comment-reply-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.1;
  margin: 0 0 6px;
}

.comment-reply-title small {
  display: block;
  margin-top: 6px;
}

#cancel-comment-reply-link {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--coral);
  text-decoration: none;
}

#cancel-comment-reply-link:hover {
  text-decoration: underline;
}

.comment-notes,
.logged-in-as {
  font-family: var(--serif);
  font-size: 13px;
  color: var(--ink-2);
  margin-bottom: 20px;
}

.logged-in-as a {
  color: var(--cobalt);
  text-decoration: none;
}

.logged-in-as a:hover {
  text-decoration: underline;
}

.comment-form label {
  display: block;
  font-family: var(--display);
  font-weight: 500;
  font-size: 13px;
  margin-bottom: 6px;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width: 100%;
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 10px;
  padding: 12px 16px;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
}

.comment-form input[type="text"]:focus,
.comment-form input[type="email"]:focus,
.comment-form input[type="url"]:focus,
.comment-form textarea:focus {
  border-color: var(--cobalt);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cobalt) 15%, transparent);
  outline: none;
}

.comment-form textarea {
  min-height: 140px;
  resize: vertical;
}

.comment-form p {
  margin: 0 0 16px;
}

.comment-form .form-submit {
  margin-top: 8px;
}

.comment-form input[type="submit"],
.comment-form .submit {
  font-family: var(--display);
  font-weight: 600;
  font-size: 14px;
  color: var(--cream);
  background: var(--ink);
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 12px 28px;
  cursor: pointer;
  transition: background 0.2s, transform 0.15s, box-shadow 0.15s;
}

.comment-form input[type="submit"]:hover,
.comment-form .submit:hover {
  background: var(--coral);
  border-color: var(--coral);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

/* =================================================================
   GUTENBERG BLOCKS
   ================================================================= */

/* ── Alignment classes ─────────────────────────────────────── */
.alignnone {
  margin: 24px 0;
}

.aligncenter {
  display: block;
  margin: 24px auto;
  text-align: center;
}

.alignleft {
  float: left;
  margin: 8px 24px 12px 0;
}

.alignright {
  float: right;
  margin: 8px 0 12px 24px;
}

.alignwide {
  /* Since .article-layout is now fluid (no max-width), cap alignwide
     here so wide galleries/images don't sprawl across ultrawide
     monitors. .alignfull is still unbounded and breaks to 100vw. */
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

.alignfull {
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  max-width: 100vw;
  width: 100vw;
}

.has-text-align-center {
  text-align: center;
}

.has-text-align-right {
  text-align: right;
}

.has-text-align-left {
  text-align: left;
}

@media (max-width: 860px) {

  .alignleft,
  .alignright {
    float: none;
    margin: 24px 0;
  }
}

/* ── Image ─────────────────────────────────────────────────── */
.wp-block-image {
  margin: 32px 0;
}

.wp-block-image img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  border: 1.5px solid var(--ink);
}

.wp-block-image figcaption,
.wp-caption-text,
.gallery-caption {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-2);
  text-align: center;
  margin-top: 10px;
}

/* ── Gallery ───────────────────────────────────────────────── */
/* Block-editor galleries ship as either
      <figure class="wp-block-gallery columns-N is-cropped">          (older markup)
        <ul class="blocks-gallery-grid">
          <li class="blocks-gallery-item"><figure><a><img></a></figure></li>
   or
      <figure class="wp-block-gallery has-nested-images columns-N">   (newer markup)
        <figure class="wp-block-image"><img></figure>

   WP core adds `is-layout-flex` to the outer figure in newer builds —
   we neutralise that and drive layout off our own CSS grid keyed by
   columns-N. Cropped galleries use aspect-ratio on the image container
   (not the <img>) with object-fit: cover so columns line up cleanly.
   Shortcode galleries ([gallery]) share the same grid treatment. */

/* Outer gallery container — reset WP core's is-layout-flex so our
   inner grid isn't fighting the parent. */
.wp-block-gallery,
.wp-block-gallery.is-layout-flex {
  margin: 32px auto;
  display: block;
  gap: 0;
}

.wp-block-gallery>br {
  display: none;
}

/* Older markup: <ul class="blocks-gallery-grid"> holds the items. */
.wp-block-gallery .blocks-gallery-grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
}

.wp-block-gallery .blocks-gallery-item {
  margin: 0;
  padding: 0;
  min-width: 0;
  list-style: none;
  display: block;
}

/* WP core's @wordpress/block-library ships per-column-N rules that set
   width: calc(N% - Yem) and margin-right: 1em on every gallery item —
   that's the legacy float layout. Inside our grid those cause items to
   shrink to N% of the cell with an extra gutter. Reset so the grid
   cell owns sizing. These selectors carry (0,4,0) specificity in core,
   so we use !important rather than trying to out-specify every variant. */
.wp-block-gallery .blocks-gallery-grid .blocks-gallery-item,
.wp-block-gallery.has-nested-images>figure.wp-block-image {
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
}

.wp-block-gallery .blocks-gallery-item>figure {
  margin: 0;
  padding: 0;
  display: block;
}

.wp-block-gallery .blocks-gallery-item>figure>a,
.wp-block-gallery .blocks-gallery-item>figure>img {
  display: block;
  width: 100%;
}

.wp-block-gallery .blocks-gallery-item img {
  height: auto;
  max-width: 100%;
  border-radius: 10px;
  border: 1.5px solid var(--ink);
}

/* Newer markup: has-nested-images contains direct <figure class="wp-block-image"> children. */
.wp-block-gallery.has-nested-images {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.wp-block-gallery.has-nested-images>figure.wp-block-image {
  margin: 0;
  padding: 0;
  min-width: 0;
  display: block;
}

.wp-block-gallery.has-nested-images>figure.wp-block-image>a,
.wp-block-gallery.has-nested-images>figure.wp-block-image>img {
  display: block;
  width: 100%;
  height: auto;
}

/* Cropped galleries: force every image to the same aspect ratio so
   the grid rows line up. The ratio goes on the image container (the
   <figure> or anchor wrapping the img) — NOT on the <img> — so that
   object-fit can crop cleanly without feedback loops from natural
   image dimensions. */
.wp-block-gallery.is-cropped .blocks-gallery-item>figure {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 10px;
}

.wp-block-gallery.is-cropped .blocks-gallery-item>figure>a,
.wp-block-gallery.is-cropped .blocks-gallery-item>figure>img {
  display: block;
  width: 100%;
  height: 100%;
}

.wp-block-gallery.is-cropped .blocks-gallery-item>figure>a>img,
.wp-block-gallery.is-cropped .blocks-gallery-item>figure>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  border: 0;
}

/* Cropped container gets the ink border once (not twice). */
.wp-block-gallery.is-cropped .blocks-gallery-item>figure {
  border: 1.5px solid var(--ink);
}

.wp-block-gallery.is-cropped.has-nested-images>figure.wp-block-image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 10px;
  border: 1.5px solid var(--ink);
}

.wp-block-gallery.is-cropped.has-nested-images>figure.wp-block-image>a,
.wp-block-gallery.is-cropped.has-nested-images>figure.wp-block-image>img {
  display: block;
  width: 100%;
  height: 100%;
}

.wp-block-gallery.is-cropped.has-nested-images>figure.wp-block-image>a>img,
.wp-block-gallery.is-cropped.has-nested-images>figure.wp-block-image>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  border: 0;
}

/* Captions. */
.wp-block-gallery .blocks-gallery-item__caption,
.wp-block-gallery figcaption {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-2);
  margin-top: 8px;
  text-align: center;
}

.wp-block-gallery>figcaption,
.wp-block-gallery .blocks-gallery-caption {
  grid-column: 1 / -1;
  margin-top: 16px;
  font-style: italic;
  text-transform: none;
  letter-spacing: 0;
  font-family: var(--serif);
  font-size: 14px;
}

/* Shortcode galleries ([gallery columns="N"]) share the grid approach. */
.gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 32px 0;
}

.gallery-item {
  margin: 0;
  min-width: 0;
  width: auto !important;
  /* WP core adds inline width:33% — override for grid. */
  text-align: center;
}

.gallery-item img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  border: 1.5px solid var(--ink);
  display: block;
}

/* Column-count mapping — applies to all three gallery shapes. */
.wp-block-gallery.columns-1 .blocks-gallery-grid,
.wp-block-gallery.columns-1.has-nested-images,
.gallery-columns-1 {
  grid-template-columns: minmax(0, 1fr);
}

.wp-block-gallery.columns-2 .blocks-gallery-grid,
.wp-block-gallery.columns-2.has-nested-images,
.gallery-columns-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wp-block-gallery.columns-3 .blocks-gallery-grid,
.wp-block-gallery.columns-3.has-nested-images,
.gallery-columns-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wp-block-gallery.columns-4 .blocks-gallery-grid,
.wp-block-gallery.columns-4.has-nested-images,
.gallery-columns-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.wp-block-gallery.columns-5 .blocks-gallery-grid,
.wp-block-gallery.columns-5.has-nested-images,
.gallery-columns-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.wp-block-gallery.columns-6 .blocks-gallery-grid,
.wp-block-gallery.columns-6.has-nested-images,
.gallery-columns-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.wp-block-gallery.columns-7 .blocks-gallery-grid,
.wp-block-gallery.columns-7.has-nested-images,
.gallery-columns-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.wp-block-gallery.columns-8 .blocks-gallery-grid,
.wp-block-gallery.columns-8.has-nested-images,
.gallery-columns-8 {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}

.wp-block-gallery.columns-9 .blocks-gallery-grid,
.wp-block-gallery.columns-9.has-nested-images,
.gallery-columns-9 {
  grid-template-columns: repeat(9, minmax(0, 1fr));
}

/* Collapse to readable grids on narrow viewports regardless of
   columns-N (WP test data uses columns="7" / "8" even on mobile). */
@media (max-width: 782px) {

  .wp-block-gallery .blocks-gallery-grid,
  .wp-block-gallery.has-nested-images,
  .gallery,
  .gallery[class*="gallery-columns-"] {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 480px) {

  .wp-block-gallery .blocks-gallery-grid,
  .wp-block-gallery.has-nested-images,
  .gallery,
  .gallery[class*="gallery-columns-"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

.wp-caption {
  max-width: 100%;
  margin: 32px 0;
}

.wp-caption img {
  border-radius: 12px;
  border: 1.5px solid var(--ink);
}

/* ── Quote & Pullquote ─────────────────────────────────────── */
.wp-block-quote,
blockquote {
  margin: 32px 0;
  padding: 24px 28px;
  border-left: 4px solid var(--coral);
  background: var(--cream-2);
  border-radius: 0 14px 14px 0;
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.6;
  font-style: italic;
}

.wp-block-quote p,
blockquote p {
  margin: 0 0 10px;
}

.wp-block-quote p:last-of-type,
blockquote p:last-of-type {
  margin-bottom: 0;
}

.wp-block-quote cite,
blockquote cite {
  display: block;
  margin-top: 12px;
  font-family: var(--mono);
  font-size: 10px;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-2);
}

.wp-block-quote.is-style-large {
  font-size: 22px;
  padding: 32px 36px;
}

.wp-block-pullquote {
  margin: 40px 0;
  padding: 32px;
  border: 2px solid var(--ink);
  border-radius: 18px;
  text-align: center;
}

.wp-block-pullquote blockquote {
  border: none;
  background: none;
  padding: 0;
  margin: 0;
  border-radius: 0;
}

.wp-block-pullquote p {
  font-family: var(--display);
  font-weight: 600;
  font-size: 22px;
  line-height: 1.2;
  font-style: normal;
}

.wp-block-pullquote cite {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-2);
}

/* ── Table ─────────────────────────────────────────────────── */
.wp-block-table {
  margin: 32px 0;
  overflow-x: auto;
}

.wp-block-table table,
body:not(.elementor-editor-active) .entry-content table,
body:not(.elementor-editor-active) .page-body table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.5;
}

.wp-block-table th,
.wp-block-table td,
body:not(.elementor-editor-active) .entry-content th,
body:not(.elementor-editor-active) .entry-content td,
body:not(.elementor-editor-active) .page-body th,
body:not(.elementor-editor-active) .page-body td {
  padding: 12px 16px;
  text-align: left;
  border-bottom: 1.5px solid var(--cream-2);
}

.wp-block-table thead th,
body:not(.elementor-editor-active) .entry-content thead th,
body:not(.elementor-editor-active) .page-body thead th {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-2);
  border-bottom: 2px solid var(--ink);
  padding-bottom: 10px;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background: var(--cream-2);
}

/* ── Code & Preformatted ───────────────────────────────────── */
.wp-block-code,
.wp-block-preformatted,
body:not(.elementor-editor-active) .entry-content pre,
body:not(.elementor-editor-active) .page-body pre {
  margin: 28px 0;
  padding: 20px 24px;
  background: var(--ink);
  color: var(--cream);
  border-radius: 14px;
  overflow-x: auto;
  font-family: var(--mono);
  font-size: 13px;
  line-height: 1.6;
}

.wp-block-code code,
body:not(.elementor-editor-active) .entry-content pre code,
body:not(.elementor-editor-active) .page-body pre code {
  background: none;
  padding: 0;
  border: none;
  font-size: inherit;
  color: inherit;
}

body:not(.elementor-editor-active) .entry-content code,
body:not(.elementor-editor-active) .page-body code {
  font-family: var(--mono);
  font-size: 0.9em;
  background: var(--cream-2);
  padding: 2px 6px;
  border-radius: 4px;
}

.wp-block-verse {
  margin: 28px 0;
  padding: 20px 24px;
  font-family: var(--serif);
  font-style: italic;
  white-space: pre-wrap;
  background: var(--cream-2);
  border-radius: 14px;
}

/* ── Separator ─────────────────────────────────────────────── */
.wp-block-separator,
hr {
  border: none;
  height: 2px;
  background: var(--cream-2);
  margin: 40px auto;
  max-width: 120px;
}

.wp-block-separator.is-style-wide {
  max-width: 100%;
}

.wp-block-separator.is-style-dots {
  background: none;
  max-width: 100%;
  text-align: center;
  line-height: 1;
  height: auto;
}

.wp-block-separator.is-style-dots::before {
  content: '···';
  font-family: var(--serif);
  font-size: 24px;
  letter-spacing: 1em;
  color: var(--ink-2);
}

/* ── Columns ───────────────────────────────────────────────── */
.wp-block-columns {
  display: flex;
  gap: 28px;
  margin: 32px 0;
}

.wp-block-column {
  flex: 1;
  min-width: 0;
}

@media (max-width: 600px) {
  .wp-block-columns {
    flex-direction: column;
  }
}

/* ── Cover ─────────────────────────────────────────────────── */
.wp-block-cover {
  margin: 32px 0;
  border-radius: 16px;
  overflow: hidden;
  min-height: 300px;
}

/* ── Buttons ───────────────────────────────────────────────── */
.wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 28px 0;
}

.wp-block-button__link {
  display: inline-block;
  font-family: var(--display);
  font-weight: 600;
  font-size: 14px;
  color: var(--cream);
  background: var(--ink);
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 12px 24px;
  text-decoration: none;
  transition: background 0.2s, transform 0.15s, box-shadow 0.15s;
}

.wp-block-button__link:hover {
  background: var(--coral);
  border-color: var(--coral);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--ink);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--ink);
  color: var(--cream);
}

/* ── Group ─────────────────────────────────────────────────── */
.wp-block-group {
  margin: 32px 0;
}

.wp-block-group.has-background {
  padding: 28px;
  border-radius: 16px;
}

/* ── Embed & Video & Audio ─────────────────────────────────── */
.wp-block-embed,
.wp-block-video,
.wp-block-audio {
  margin: 32px 0;
}

.wp-block-embed .wp-block-embed__wrapper {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 14px;
  border: 1.5px solid var(--ink);
}

.wp-block-embed .wp-block-embed__wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.wp-block-video video {
  max-width: 100%;
  border-radius: 14px;
  border: 1.5px solid var(--ink);
}

.wp-block-audio audio {
  width: 100%;
}

.wp-block-embed figcaption,
.wp-block-video figcaption,
.wp-block-audio figcaption {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-2);
  text-align: center;
  margin-top: 10px;
}

/* ── List (block) ──────────────────────────────────────────── */
.wp-block-list {
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.65;
  padding-left: 24px;
  margin: 20px 0;
}

.wp-block-list li {
  margin-bottom: 6px;
}

/* ── Details / Accordion ───────────────────────────────────── */
.wp-block-details {
  margin: 20px 0;
  border: 1.5px solid var(--ink);
  border-radius: 12px;
  overflow: hidden;
}

.wp-block-details summary {
  font-family: var(--display);
  font-weight: 600;
  font-size: 15px;
  padding: 14px 18px;
  cursor: pointer;
  background: var(--cream-2);
}

.wp-block-details[open] summary {
  border-bottom: 1.5px solid var(--ink);
}

.wp-block-details> :not(summary) {
  padding: 14px 18px;
}

/* =================================================================
   PAGINATION & NAVIGATION
   ================================================================= */
.pagination,
.nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin: 48px 0 24px;
  flex-wrap: wrap;
}

body.theme-post .article-body .page-links a,
.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  color: var(--ink);
  text-decoration: none;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 10px;
  padding: 0 10px;
  transition: background 0.2s, color 0.2s, transform 0.15s;
}

.page-numbers:hover {
  background: var(--lemon);
  transform: translateY(-1px);
}

.page-numbers.current {
  background: var(--ink);
  color: var(--cream);
}

.page-numbers.dots {
  border: none;
  background: none;
  min-width: auto;
  padding: 0 4px;
  letter-spacing: 0.15em;
}

.page-numbers.prev,
.page-numbers.next {
  font-family: var(--display);
  font-weight: 600;
  background: var(--cream-2);
}

.page-numbers.prev:hover,
.page-numbers.next:hover {
  background: var(--coral);
  color: var(--cream);
}

/* ── Post navigation (single post prev/next) ──────────────── */
.post-navigation,
.posts-navigation {
  margin: 48px 0;
  padding: 28px 0;
  border-top: 2px solid var(--cream-2);
}

.post-navigation .nav-links,
.posts-navigation .nav-links {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin: 0;
}

.nav-previous,
.nav-next {
  flex: 1;
}

.nav-previous a,
.nav-next a {
  display: block;
  font-family: var(--display);
  font-weight: 600;
  font-size: 15px;
  color: var(--ink);
  text-decoration: none;
  padding: 16px 20px;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 14px;
  transition: background 0.2s, transform 0.15s, box-shadow 0.15s;
}

.nav-previous a:hover,
.nav-next a:hover {
  background: var(--lemon);
  transform: translateY(-2px);
  box-shadow: 4px 4px 0 var(--ink);
}

.nav-next {
  text-align: right;
}

/* ── Page links (multi-page posts) ─────────────────────────── */
.page-links {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 12px;
  margin: 28px 0;
}

.page-links .page-links-title {
  font-weight: 600;
  margin-right: 4px;
}

.page-links a,
.page-links>span:not(.page-links-title) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  border: 1.5px solid var(--ink);
  border-radius: 8px;
  text-decoration: none;
  color: var(--ink);
  transition: background 0.2s;
}

.page-links a:hover {
  background: var(--lemon);
}

.page-links>span:not(.page-links-title) {
  background: var(--ink);
  color: var(--cream);
}

/* =================================================================
   FORMS — MISSING INPUT TYPES
   ================================================================= */
body:not(.elementor-editor-active) input[type="password"],
body:not(.elementor-editor-active) input[type="search"],
body:not(.elementor-editor-active) input[type="number"],
body:not(.elementor-editor-active) input[type="tel"],
body:not(.elementor-editor-active) input[type="date"],
body:not(.elementor-editor-active) input[type="datetime-local"] {
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 10px;
  padding: 12px 16px;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
}

body:not(.elementor-editor-active) input[type="password"]:focus,
body:not(.elementor-editor-active) input[type="search"]:focus,
body:not(.elementor-editor-active) input[type="number"]:focus,
body:not(.elementor-editor-active) input[type="tel"]:focus,
body:not(.elementor-editor-active) input[type="date"]:focus,
body:not(.elementor-editor-active) input[type="datetime-local"]:focus {
  border-color: var(--cobalt);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cobalt) 15%, transparent);
  outline: none;
}

/* ── Search form (WordPress standard) ──────────────────────── */
.search-form {
  display: flex;
  gap: 8px;
  width: 100%;
}

.search-form .search-field {
  flex: 1;
  font-family: var(--serif);
  font-size: 14px;
  color: var(--ink);
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 10px;
  padding: 12px 16px;
}

.search-form .search-field:focus {
  border-color: var(--cobalt);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cobalt) 15%, transparent);
  outline: none;
}

.search-form .search-submit {
  font-family: var(--display);
  font-weight: 600;
  font-size: 13px;
  color: var(--cream);
  background: var(--ink);
  border: 2px solid var(--ink);
  border-radius: 10px;
  padding: 10px 20px;
  cursor: pointer;
  transition: background 0.2s;
}

.search-form .search-submit:hover {
  background: var(--coral);
  border-color: var(--coral);
}

.custom-header-media {
  width: min(1180px, calc(100% - 40px));
  margin: 20px auto 0;
  border: 2px solid var(--ink);
  overflow: hidden;
}

.custom-header-media img {
  display: block;
  width: 100%;
  height: auto;
}

.post-tags {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 42px;
  padding-top: 28px;
  border-top: 1.5px dashed var(--cream-2);
}

.post-tags__label {
  font-family: var(--mono);
  font-size: 10px;
  line-height: 1.4;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-2);
}

.post-tags__links {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.post-tags__links a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 7px 12px;
  font-family: var(--display);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  color: var(--ink);
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 999px;
  text-decoration: none;
}

.post-tags__links a:hover {
  background: var(--lemon);
}

.is-style-vamika-editorial {
  padding: 24px 28px;
  border-left: 5px solid var(--coral);
  background: var(--cream);
}

.is-style-vamika-framed img {
  border: 2px solid var(--ink);
  box-shadow: 8px 8px 0 var(--lemon);
}

/* ── Post password form ────────────────────────────────────── */
.post-password-form {
  max-width: 480px;
  margin: 60px auto;
  text-align: center;
}

.post-password-form p {
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.6;
  margin-bottom: 20px;
}

.post-password-form label {
  font-family: var(--display);
  font-weight: 500;
  font-size: 14px;
}

.post-password-form input[type="password"] {
  width: 100%;
  margin-top: 8px;
}

.post-password-form input[type="submit"] {
  margin-top: 12px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 14px;
  color: var(--cream);
  background: var(--ink);
  border: 2px solid var(--ink);
  border-radius: 12px;
  padding: 12px 28px;
  cursor: pointer;
  transition: background 0.2s;
}

.post-password-form input[type="submit"]:hover {
  background: var(--coral);
  border-color: var(--coral);
}

/* =================================================================
   POST META & CONTENT
   ================================================================= */
.sticky .story-card,
.sticky.story-card {
  border-color: var(--coral);
  box-shadow: 6px 6px 0 var(--coral);
}

.more-link {
  display: inline-block;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink);
  text-decoration: none;
  background: var(--lemon);
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  padding: 4px 14px;
  margin-top: 8px;
  transition: background 0.2s, color 0.2s;
}

.more-link:hover {
  background: var(--coral);
  color: var(--cream);
}

.entry-content {
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.7;
  color: var(--ink);
}

.entry-content>*:first-child {
  margin-top: 0;
}

.entry-content>*:last-child {
  margin-bottom: 0;
}

.entry-title {
  font-family: var(--display);
  font-weight: 700;
}

.entry-meta,
.entry-footer {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-2);
}

.entry-meta a,
.entry-footer a {
  color: var(--ink-2);
  text-decoration: none;
}

.entry-meta a:hover,
.entry-footer a:hover {
  color: var(--coral);
}

.cat-links,
.tags-links,
.edit-link {
  display: inline;
}

.cat-links a,
.tags-links a {
  display: inline-block;
  background: var(--cream-2);
  border: 1px solid var(--ink);
  border-radius: 100px;
  padding: 2px 10px;
  margin: 2px;
  transition: background 0.2s;
}

.cat-links a:hover,
.tags-links a:hover {
  background: var(--lemon);
}

.edit-link a {
  color: var(--cobalt);
}

.updated:not(.published) {
  display: none;
}

/* =================================================================
   WIDGETS & SIDEBAR
   ================================================================= */
.widget-area,
.sidebar {
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.6;
}

.widget {
  margin-bottom: 36px;
}

.widget-title,
.widget .wp-block-heading {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-2);
  padding-bottom: 10px;
  border-bottom: 1.5px dashed var(--ink);
  margin-bottom: 16px;
}

.widget ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.widget li {
  padding: 8px 0;
  border-bottom: 1px solid var(--cream-2);
}

.widget li:last-child {
  border-bottom: none;
}

.widget a {
  color: var(--ink);
  text-decoration: none;
  transition: color 0.2s;
}

.widget a:hover {
  color: var(--coral);
}

.tagcloud a,
.wp-block-tag-cloud a {
  display: inline-block;
  font-family: var(--mono);
  font-size: 10px !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink);
  text-decoration: none;
  background: var(--cream-2);
  border: 1px solid var(--ink);
  border-radius: 100px;
  padding: 4px 12px;
  margin: 3px;
  transition: background 0.2s, color 0.2s;
}

.tagcloud a:hover,
.wp-block-tag-cloud a:hover {
  background: var(--coral);
  color: var(--cream);
}

.wp-calendar-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--mono);
  font-size: 11px;
}

.wp-calendar-table th {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-2);
  padding: 6px;
  text-align: center;
}

.wp-calendar-table td {
  padding: 6px;
  text-align: center;
  border: 1px solid var(--cream-2);
}

.wp-calendar-table td a {
  color: var(--coral);
  font-weight: 600;
}

.wp-calendar-nav {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  margin-top: 8px;
}

/* ── Standard menu items ───────────────────────────────────── */
.menu-item a {
  text-decoration: none;
  color: var(--ink);
  transition: color 0.2s;
}

.menu-item a:hover {
  color: var(--coral);
}

.current-menu-item>a {
  color: var(--coral);
  font-weight: 600;
}

/* ── Desktop dropdown submenus ─────────────────────────────── */
.navlinks>li {
  position: relative;
  padding-bottom: 10px;
  margin-bottom: -10px;
}

.navlinks .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 200px;
  padding: 10px 0;
  margin: 0;
  list-style: none;
  background: var(--cream);
  border: 1.5px solid var(--ink);
  border-radius: 16px;
  box-shadow: 4px 4px 0 var(--ink);
  z-index: 200;
}

.navlinks li:hover>.sub-menu,
.navlinks li:focus-within>.sub-menu {
  display: block;
}

.navlinks .sub-menu li {
  padding: 2px 6px;
}

.navlinks .sub-menu a {
  display: block;
  padding: 8px 16px;
  font-size: 13px;
  white-space: nowrap;
  border-radius: 10px;
  transition: background 0.15s, color 0.15s;
}

.navlinks .sub-menu li:not(.menu-item-has-children)>a::after {
  display: none !important;
}

.navlinks .sub-menu a:hover,
.navlinks .sub-menu li:hover {
  background: var(--sun);
  color: var(--ink);
}

/* ── Nested submenus (level 3+): flyout to the right ──────── */
.navlinks .sub-menu li {
  position: relative;
}

.navlinks .sub-menu .sub-menu {
  top: 0;
  left: 100%;
  transform: none;
}

/* ── Dropdown arrow indicator for parent items ────────────── */
.navlinks .menu-item-has-children>a::after {
  content: '' !important;
  display: inline-block !important;
  position: static !important;
  width: 5px !important;
  height: 5px !important;
  background: none !important;
  border-right: 1.5px solid currentColor !important;
  border-bottom: 1.5px solid currentColor !important;
  transform: rotate(45deg) translateY(-2px) !important;
  margin-left: 6px !important;
  transition: transform 0.2s !important;
}

/* Top-level: arrow flips up on hover */
.navlinks>.menu-item-has-children:hover>a::after {
  transform: rotate(-135deg) translateY(-2px) !important;
}

/* Nested: arrow points right → */
.navlinks .sub-menu .menu-item-has-children>a::after {
  transform: rotate(-45deg) translateY(0) !important;
}

/* ── Mobile submenus (inline expand) ──────────────────────── */
@media (max-width: 720px) {
  .navlinks>li {
    padding-bottom: 0;
    margin-bottom: 0;
  }

  .navlinks .sub-menu {
    position: static;
    transform: none;
    display: block;
    min-width: 0;
    margin: 4px 0 0;
    padding: 4px 0 4px 12px;
    border: none;
    box-shadow: none;
    background: transparent;
  }

  .navlinks .sub-menu a {
    padding: 8px 14px;
    border-radius: 12px;
    background: var(--cream);
  }

  .navlinks .sub-menu a:hover {
    background: var(--sun);
  }
}



/* =================================================================
   Services
   ================================================================= */


.page-services .sv-hero {
  padding-top: 80px;
  padding-bottom: 60px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.page-services .sv-hero .ai-inline-tool {
  grid-column: 1 / -1;
}

.page-services .sv-hero-text .sv-eyebrow {
  display: inline-block;
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  padding: 8px 18px;
  border-radius: 100px;
  border: 1.5px solid var(--ink);
  margin-bottom: 32px;
  background: var(--sun);
  box-shadow: 3px 3px 0 var(--ink);
}

.page-services .sv-hero-text h1 {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(48px, 5.5vw, 88px);
  line-height: 0.9;
  letter-spacing: -0.04em;
  margin-bottom: 28px;
  font-variation-settings: "opsz"96;
}

.page-services .sv-hero-text h1 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

.page-services .sv-hero-text .sv-lede {
  font-family: var(--serif);
  font-size: clamp(17px, 1.5vw, 22px);
  line-height: 1.55;
  color: var(--ink-2);
  font-weight: 300;
  max-width: 520px;
  margin-bottom: 36px;
}

.page-services .sv-hero-text .sv-lede strong {
  font-weight: 500;
  color: var(--ink);
}

.page-services .sv-hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--ink);
  color: var(--cream);
  padding: 16px 30px;
  border-radius: 100px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 14px;
  border: 2px solid var(--ink);
  transition: all 0.25s;
  cursor: pointer;
  text-decoration: none;
}

.page-services .sv-hero-cta::after {
  content: '->';
  transition: transform 0.2s;
}

.page-services .sv-hero-cta:hover {
  background: var(--coral);
  border-color: var(--coral);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
}

.page-services .sv-hero-cta:hover::after {
  transform: translateX(3px);
}

.page-services .sv-hero-visual {
  position: relative;
  aspect-ratio: 1;
  max-width: 520px;
  justify-self: center;
  border-radius: 32px;
  overflow: hidden;
  border: 2.5px solid var(--ink);
  box-shadow: 10px 10px 0 var(--ink);
}

.page-services .sv-hero-visual svg {
  width: 100%;
  height: 100%;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.page-services .sv-stats {
  background: var(--ink);
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  padding: 0;
  overflow: hidden;
}

.page-services .sv-stats-track {
  display: flex;
  animation: svScroll 20s linear infinite;
}

.page-services .sv-stats-set {
  display: flex;
  flex-shrink: 0;
}

.page-services .sv-stat-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 24px 48px;
  white-space: nowrap;
  color: var(--cream);
}

.page-services .sv-stat-item .sv-n {
  font-family: var(--display);
  font-weight: 800;
  font-size: 36px;
  letter-spacing: -0.03em;
  font-variation-settings: "opsz"72;
}

.page-services .sv-stats-set .sv-stat-item:nth-of-type(1) .sv-n {
  color: var(--coral);
}

.page-services .sv-stats-set .sv-stat-item:nth-of-type(2) .sv-n {
  color: var(--sun);
}

.page-services .sv-stats-set .sv-stat-item:nth-of-type(3) .sv-n {
  color: var(--mint);
}

.page-services .sv-stats-set .sv-stat-item:nth-of-type(4) .sv-n {
  color: var(--sky);
}

.page-services .sv-stat-item .sv-l {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  opacity: 0.7;
}

.page-services .sv-stat-sep {
  color: var(--coral);
  font-size: 10px;
  opacity: 0.5;
  padding: 0 20px;
  flex-shrink: 0;
}

@keyframes svScroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

.page-services .sv-tracks {
  padding-top: 100px;
  padding-bottom: 80px;
}

.page-services .sv-tracks-header {
  text-align: center;
  margin-bottom: 70px;
}

.page-services .sv-tracks-header .sv-kicker {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--coral);
  margin-bottom: 18px;
}

.page-services .sv-tracks-header h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(40px, 5.5vw, 80px);
  line-height: 0.92;
  letter-spacing: -0.03em;
  font-variation-settings: "opsz"96;
}

.page-services .sv-tracks-header h2 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

.page-services .sv-track-list {
  display: flex;
  flex-direction: column;
}

.page-services .sv-track {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
  margin-bottom: 60px;
  padding: 70px 50px 50px;
  border: 2.5px solid var(--ink);
  border-radius: 28px;
  transition: all 0.3s;
  position: relative;
  overflow: hidden;
}

.page-services .sv-track:hover {
  transform: translate(-3px, -3px);
  box-shadow: 10px 10px 0 var(--ink);
}

.page-services .sv-track-list .sv-track:nth-child(1) {
  background: var(--coral);
  color: var(--cream);
}

.page-services .sv-track-list .sv-track:nth-child(2) {
  background: var(--lemon);
}

.page-services .sv-track-list .sv-track:nth-child(3) {
  background: var(--cobalt);
  color: var(--cream);
}

.page-services .sv-track-list .sv-track:nth-child(even) .sv-track-visual {
  order: -1;
}

.page-services .sv-track-num {
  font-family: var(--display);
  font-weight: 800;
  font-size: 160px;
  line-height: 0.75;
  letter-spacing: -0.06em;
  color: var(--ink);
  opacity: 0.08;
  position: absolute;
  top: 20px;
  right: 40px;
  z-index: 1;
  max-width: 50%;
  text-align: right;
  font-variation-settings: "opsz"144;
  pointer-events: none;
}

.page-services .sv-track-list .sv-track:nth-child(1) .sv-track-num,
.page-services .sv-track-list .sv-track:nth-child(3) .sv-track-num {
  color: var(--cream);
  opacity: 0.15;
}

.page-services .sv-track-list .sv-track:nth-child(even) .sv-track-num {
  right: auto;
  left: 40px;
  text-align: left;
}

.page-services .sv-track-content {
  position: relative;
  z-index: 2;
}

.page-services .sv-track-label {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  opacity: 0.65;
  margin-bottom: 16px;
}

.page-services .sv-track-content h3 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(30px, 3vw, 44px);
  line-height: 0.95;
  letter-spacing: -0.025em;
  margin-bottom: 18px;
  font-variation-settings: "opsz"72;
}

.page-services .sv-track-content h3 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
}

.page-services .sv-track-content p {
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.55;
  font-weight: 300;
  margin-bottom: 28px;
  opacity: 0.9;
  max-width: 460px;
}

.page-services .sv-track-link {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  padding: 12px 22px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1.5px solid currentColor;
  border-radius: 100px;
  transition: all 0.25s;
  text-decoration: none;
  color: inherit;
}

.page-services .sv-track-link::after {
  content: '->';
  transition: transform 0.2s;
}

.page-services .sv-track-link:hover {
  background: var(--ink);
  color: var(--cream);
  border-color: var(--ink);
}

.page-services .sv-track-link:hover::after {
  transform: translateX(3px);
}

.page-services .sv-track-list .sv-track:nth-child(1) .sv-track-link:hover,
.page-services .sv-track-list .sv-track:nth-child(3) .sv-track-link:hover {
  background: var(--cream);
  color: var(--ink);
  border-color: var(--cream);
}

.page-services .sv-track-visual {
  position: relative;
  z-index: 2;
  aspect-ratio: 400 / 280;
  width: 100%;
}

.page-services .sv-track-visual svg,
.page-services .sv-track-visual img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: 20px;
  border: 2px solid var(--ink);
}

.page-services .sv-work {
  padding: 80px 40px 100px;
  background: var(--cream-2);
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
}

.page-services .sv-work-inner {}

.page-services .sv-work-header {
  text-align: center;
  margin-bottom: 60px;
}

.page-services .sv-work-header .sv-kicker {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--coral);
  margin-bottom: 18px;
}

.page-services .sv-work-header h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(36px, 5vw, 68px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  font-variation-settings: "opsz"96;
}

.page-services .sv-work-header h2 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

.page-services .sv-bento {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto auto;
  gap: 24px;
}

.page-services .sv-bento-card {
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: 24px;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.2, 0.9, 0.3, 1);
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
}

.page-services .sv-bento-card:hover {
  transform: translate(-3px, -3px) rotate(-0.5deg);
  box-shadow: 8px 8px 0 var(--ink);
}

.page-services .sv-bento-card.wide {
  grid-column: span 2;
}

.page-services .sv-bento-card .sv-bento-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-bottom: 2px solid var(--ink);
}

.page-services .sv-bento-card.wide .sv-bento-img {
  aspect-ratio: 16 / 6;
}

.page-services .sv-bento-card .sv-bento-img svg,
.page-services .sv-bento-card .sv-bento-img img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.page-services .sv-bento-card .sv-bento-body {
  padding: 24px 28px 28px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.page-services .sv-bento-tag {
  display: inline-block;
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  padding: 5px 12px;
  border: 1.5px solid var(--ink);
  border-radius: 100px;
  margin-bottom: 14px;
  align-self: flex-start;
  background: var(--sun);
}

.page-services .sv-bento-body h3 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 22px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin-bottom: 10px;
  font-variation-settings: "opsz"48;
}

.page-services .sv-bento-body p {
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-2);
  font-weight: 300;
  flex: 1;
}

.page-services .sv-bento-foot {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px dashed var(--ink);
  color: var(--ink-2);
}

.page-services .sv-bento-foot span:last-child {
  color: var(--coral);
}

.page-services .sv-engagements {
  padding-top: 100px;
  padding-bottom: 100px;
}

.page-services .sv-eng-header {
  text-align: center;
  margin-bottom: 70px;
}

.page-services .sv-eng-header .sv-kicker {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--coral);
  margin-bottom: 18px;
}

.page-services .sv-eng-header h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(40px, 5.5vw, 80px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  font-variation-settings: "opsz"96;
}

.page-services .sv-eng-header h2 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--coral);
}

.page-services .sv-eng-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  position: relative;
}

.page-services .sv-eng-row::before {
  content: '';
  position: absolute;
  top: 36px;
  left: 60px;
  right: 60px;
  height: 3px;
  background: repeating-linear-gradient(90deg,
      var(--ink) 0,
      var(--ink) 8px,
      transparent 8px,
      transparent 16px);
  opacity: 0.15;
}

.page-services .sv-eng-card {
  text-align: center;
  padding: 32px 24px 36px;
  border: 2px solid var(--ink);
  border-radius: 24px;
  background: var(--cream);
  box-shadow: 6px 6px 0 var(--ink);
  transition: all 0.25s;
  position: relative;
}

.page-services .sv-eng-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 9px 9px 0 var(--ink);
}

.page-services .sv-eng-card:nth-child(1) {
  border-color: var(--coral);
}

.page-services .sv-eng-card:nth-child(2) {
  border-color: var(--cobalt);
}

.page-services .sv-eng-card:nth-child(3) {
  border-color: var(--grass);
}

.page-services .sv-eng-card:nth-child(4) {
  border-color: var(--plum);
}

.page-services .sv-eng-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2.5px solid var(--ink);
  margin: 0 auto 24px;
}

.page-services .sv-eng-card:nth-child(1) .sv-eng-dot {
  background: var(--coral);
}

.page-services .sv-eng-card:nth-child(2) .sv-eng-dot {
  background: var(--cobalt);
}

.page-services .sv-eng-card:nth-child(3) .sv-eng-dot {
  background: var(--grass);
}

.page-services .sv-eng-card:nth-child(4) .sv-eng-dot {
  background: var(--plum);
}

.page-services .sv-eng-card h4 {
  font-family: var(--display);
  font-weight: 700;
  font-size: 22px;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 6px;
}

.page-services .sv-eng-card .sv-eng-dur {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--coral);
  margin-bottom: 14px;
}

.page-services .sv-eng-card p {
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-2);
  font-weight: 300;
}

.page-services .sv-cta-banner {
  background: var(--coral);
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  padding: 80px 40px;
  text-align: center;
  color: var(--cream);
}

.page-services .sv-cta-banner h2 {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(36px, 5vw, 72px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  margin-bottom: 20px;
  font-variation-settings: "opsz"96;
}

.page-services .sv-cta-banner h2 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
}

.page-services .sv-cta-banner p {
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 300;
  max-width: 540px;
  margin: 0 auto 36px;
  opacity: 0.9;
  line-height: 1.5;
}

.page-services .sv-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--cream);
  color: var(--ink);
  padding: 18px 36px;
  border-radius: 100px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 14px;
  border: 2px solid var(--ink);
  box-shadow: 5px 5px 0 var(--ink);
  transition: all 0.25s;
  text-decoration: none;
}

.page-services .sv-cta-btn::after {
  content: '->';
  transition: transform 0.2s;
}

.page-services .sv-cta-btn:hover {
  transform: translate(-2px, -2px);
  box-shadow: 7px 7px 0 var(--ink);
  background: var(--sun);
}

.page-services .sv-cta-btn:hover::after {
  transform: translateX(3px);
}

@media (max-width: 900px) {
  .page-services .sv-hero {
    grid-template-columns: 1fr;
    padding: 60px 24px 40px;
    gap: 40px;
  }

  .page-services .sv-hero-visual {
    max-width: 360px;
    margin: 0 auto;
  }

  .page-services .sv-track {
    grid-template-columns: 1fr;
    padding: 70px 28px 36px;
  }

  .page-services .sv-track-list .sv-track:nth-child(even) .sv-track-visual {
    order: 0;
  }

  .page-services .sv-track-num {
    font-size: 100px;
  }

  .page-services .sv-bento {
    grid-template-columns: 1fr;
  }

  .page-services .sv-bento-card.wide {
    grid-column: span 1;
  }

  .page-services .sv-eng-row {
    grid-template-columns: 1fr 1fr;
  }

  .page-services .sv-eng-row::before {
    display: none;
  }
}

@media (max-width: 720px) {

  .page-services .sv-work,
  .page-services .sv-cta-banner {
    padding-left: 20px;
    padding-right: 20px;
  }

  .page-services .sv-track {
    padding: 70px 22px 28px;
  }

  .page-services .sv-track-num {
    font-size: 80px;
    top: 10px;
    right: 16px;
  }

  .page-services .sv-track-list .sv-track:nth-child(even) .sv-track-num {
    left: 16px;
  }

  .page-services .sv-track-content h3 {
    font-size: 26px;
  }

  .page-services .sv-eng-card {
    padding: 24px 18px;
  }
}

@media (max-width: 600px) {
  .page-services .sv-eng-row {
    grid-template-columns: 1fr;
  }

  .page-services .sv-hero-text h1 {
    font-size: 44px;
  }

  .page-services .sv-tracks-header h2,
  .page-services .sv-work-header h2,
  .page-services .sv-eng-header h2,
  .page-services .sv-cta-banner h2 {
    font-size: 36px;
  }
}
