/* AI Compass — High-tech edgy website
   Extends colors_and_type.css with custom components + edgy motifs.
   colors_and_type.css is loaded as a separate <link rel="stylesheet"> in
   each HTML entry's <head> for parallel download (was blocking via @import). */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-sans);
  background: var(--bg-base);
  color: var(--fg1);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

/* ========== ATMOSPHERE ========== */
/* subtle scan-line grid that lives behind everything */
.ac-grid-bg {
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(80% 60% at 50% 40%, black 10%, transparent 80%);
  opacity: 0.8;
}

/* Vertical accent rails on far edges — the "precision-engineered" feel */
.ac-rails {
  position: fixed; top: 0; bottom: 0; width: 48px; pointer-events: none; z-index: 2;
  display: none;
}
.ac-rails--l { left: 0; border-right: 1px solid rgba(255,255,255,0.04); }
.ac-rails--r { right: 0; border-left: 1px solid rgba(255,255,255,0.04); }
.ac-rails__ticks {
  position: absolute; top: 0; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 1px; background: repeating-linear-gradient(to bottom, rgba(255,255,255,0.08) 0 1px, transparent 1px 48px);
}
.ac-rails__label {
  position: absolute; font: 500 10px/1 var(--font-mono);
  color: var(--fg3); letter-spacing: 0.18em;
  writing-mode: vertical-rl; transform: rotate(180deg);
  left: 50%; transform: translateX(-50%) rotate(180deg);
}
@media (min-width: 1400px) { .ac-rails { display: block; } }

main { position: relative; z-index: 1; }

/* ========== PRIMITIVES ========== */
.ac-eyebrow {
  font: 600 11px/1 var(--font-sans);
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--accent);
  display: inline-flex; align-items: center; gap: 10px;
}
.ac-eyebrow::before {
  content: ""; width: 24px; height: 1px; background: currentColor;
}
.ac-eyebrow--center { justify-content: center; }
.ac-eyebrow--center::before { display: none; }

.ac-display {
  font: 800 clamp(52px, 8vw, 104px)/0.98 var(--font-display);
  letter-spacing: -0.035em;
  margin: 24px 0 28px;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.ac-h1 { font: 700 clamp(36px, 4.5vw, 56px)/1.04 var(--font-display); letter-spacing: -0.028em; margin: 0; text-wrap: balance; }
.ac-h2 { font: 700 clamp(28px, 3vw, 40px)/1.12 var(--font-display); letter-spacing: -0.022em; margin: 0; }
.ac-h3 { font: 700 22px/1.2 var(--font-display); letter-spacing: -0.01em; margin: 0; }

.ac-accent { color: var(--accent); }
.ac-lede { font-size: 18px; line-height: 1.6; color: var(--fg2); max-width: 620px; margin: 0; font-weight: 400; }
.ac-underline { width: 48px; height: 2px; background: var(--grad-red-bar); border-radius: 2px; margin-top: 20px; }
.ac-arrow { font-weight: 700; transition: transform 160ms var(--ease-out); display: inline-block; }

.ac-mono { font-family: var(--font-mono); letter-spacing: 0.02em; }

/* ========== BUTTONS ========== */
.ac-btn {
  font: 600 14px/1 var(--font-sans); letter-spacing: 0.01em;
  padding: 15px 22px; border-radius: var(--radius-md);
  border: 1px solid transparent; cursor: pointer;
  display: inline-flex; align-items: center; gap: 10px;
  transition: all 180ms var(--ease-out); text-decoration: none;
  white-space: nowrap;
}
.ac-btn:hover .ac-arrow { transform: translateX(4px); }
.ac-btn--sm { padding: 10px 16px; font-size: 13px; }
.ac-btn--primary {
  background: var(--accent); color: #fff;
  box-shadow: var(--shadow-red);
  position: relative; overflow: hidden;
}
.ac-btn--primary::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.18), rgba(255,255,255,0));
  opacity: 0.8;
}
.ac-btn--primary:hover { background: var(--accent-hover); color: #fff; transform: translateY(-1px); box-shadow: 0 12px 32px rgba(227,27,35,0.45), 0 0 0 1px rgba(227,27,35,0.55) inset; }
.ac-btn--primary:active { background: var(--accent-press); color: #fff; transform: scale(0.98); }
.ac-btn--secondary {
  background: rgba(255,255,255,0.02);
  color: var(--fg1);
  border-color: var(--border-strong);
  backdrop-filter: blur(8px);
}
.ac-btn--secondary:hover { border-color: var(--accent); color: var(--fg1); background: rgba(227,27,35,0.06); }
.ac-btn--ghost { background: transparent; color: var(--fg2); }
.ac-btn--ghost:hover { color: var(--accent); }
/* "AI Products & Pricing" microsite handoff button - deliberately different from primary CTAs */
.ac-btn--products {
  background: transparent; color: var(--fg1);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  position: relative;
}
.ac-btn--products::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--accent); margin-right: 4px;
  box-shadow: 0 0 8px var(--accent);
}
.ac-btn--products:hover { border-color: var(--accent); color: var(--fg1); background: rgba(227,27,35,0.06); }

/* ========== NAV · MOBILE HAMBURGER + DRAWER ========== */
.ac-nav__toggle {
  display: none;
  background: transparent;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  width: 40px; height: 40px;
  color: var(--fg1); cursor: pointer;
  align-items: center; justify-content: center;
  transition: all 160ms var(--ease-out);
  flex-shrink: 0;
}
.ac-nav__toggle:hover { border-color: var(--accent); background: rgba(227,27,35,0.06); }
/* When the drawer is open, the toggle becomes a clear "close" affordance:
   red background, white bars (transformed to an X via .is-x rules below).
   This makes it obvious that the same button closes the menu. */
.ac-nav--menu-open .ac-nav__toggle {
  background: var(--accent);
  border-color: var(--accent);
}
.ac-nav--menu-open .ac-nav__toggle .ac-nav__bars span { background: #fff; }
.ac-nav__bars { position: relative; width: 18px; height: 12px; display: block; }
.ac-nav__bars span {
  position: absolute; left: 0; right: 0; height: 2px; background: currentColor;
  border-radius: 1px; transition: transform 220ms var(--ease-out), opacity 180ms var(--ease-out), top 220ms var(--ease-out);
}
.ac-nav__bars span:nth-child(1) { top: 0; }
.ac-nav__bars span:nth-child(2) { top: 5px; }
.ac-nav__bars span:nth-child(3) { top: 10px; }
.ac-nav__bars.is-x span:nth-child(1) { top: 5px; transform: rotate(45deg); }
.ac-nav__bars.is-x span:nth-child(2) { opacity: 0; }
.ac-nav__bars.is-x span:nth-child(3) { top: 5px; transform: rotate(-45deg); }

.ac-nav__drawer {
  position: fixed; top: 0; left: 0; right: 0;
  height: 100dvh;
  background: rgba(11,13,16,0.98);
  backdrop-filter: blur(20px);
  padding: 96px 24px 32px;
  display: flex; flex-direction: column; gap: 16px;
  z-index: 49;
  overflow-y: auto;
  transform: translateY(-8px);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 220ms var(--ease-out), transform 260ms var(--ease-out), visibility 0s linear 220ms;
  border-bottom: 1px solid var(--border-subtle);
}
.ac-nav__drawer.is-open {
  transform: translateY(0);
  opacity: 1; visibility: visible; pointer-events: auto;
  transition: opacity 220ms var(--ease-out), transform 260ms var(--ease-out), visibility 0s linear 0s;
}
.ac-nav__drawer-links { display: flex; flex-direction: column; }
.ac-nav__drawer-links a {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  font: 700 22px/1 var(--font-display); letter-spacing: -0.01em;
  color: var(--fg1); text-decoration: none;
  padding: 20px 8px;
  border-bottom: 1px solid var(--border-subtle);
  transition: color 160ms var(--ease-out);
}
.ac-nav__drawer-links a.is-active { color: var(--accent); }
.ac-nav__drawer-links a:hover { color: var(--accent); }
.ac-nav__drawer-arrow { color: var(--fg3); font-weight: 500; }
.ac-nav__drawer-links a:hover .ac-nav__drawer-arrow { color: var(--accent); }
.ac-nav__drawer-foot {
  margin-top: auto; padding-top: 24px;
  display: flex; flex-direction: column; gap: 12px;
}
.ac-nav__status--drawer {
  border-right: none; padding-right: 0; margin-bottom: 4px;
}
.ac-nav__drawer-foot .ac-btn { justify-content: center; }

/* ========== NAV ========== */
.ac-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  transition: all 240ms var(--ease-out);
}
.ac-nav--scrolled {
  background: rgba(11,13,16,0.78);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border-subtle);
}
.ac-nav__inner {
  max-width: 1360px; margin: 0 auto;
  padding: 18px 40px; display: flex; align-items: center; gap: 32px;
  /* Lift the navbar contents (logo + toggle button) above the mobile
     drawer overlay. Without explicit position+z-index, both navbar
     and drawer are children of the same .ac-nav element and the
     drawer (later in source order, z-index:49) paints over the
     toggle button - making it invisible/unclickable while the
     drawer is open. */
  position: relative;
  z-index: 60;
}
.ac-nav__brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.ac-nav__brand img { width: 34px; height: 34px; }
.ac-nav__wordmark { font: 800 14px/1 var(--font-sans); letter-spacing: 0.22em; color: var(--fg1); }
.ac-nav__wordmark span { color: var(--accent); }
.ac-nav__links { display: flex; gap: 6px; margin-left: auto; }
.ac-nav__links a {
  font: 500 13px/1 var(--font-sans); color: var(--fg2);
  text-decoration: none; padding: 10px 14px; border-radius: var(--radius-sm);
  transition: all 160ms var(--ease-out);
}
.ac-nav__links a:hover { color: var(--fg1); background: rgba(255,255,255,0.04); }
.ac-nav__links a.is-active { color: var(--fg1); background: rgba(255,255,255,0.04); position: relative; }
.ac-nav__links a.is-active::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 1px; background: var(--accent); }
.ac-nav__status {
  display: inline-flex; align-items: center; gap: 8px;
  font: 500 11px/1 var(--font-mono); color: var(--fg3);
  padding-right: 16px; border-right: 1px solid var(--border-default);
  letter-spacing: 0.08em;
}
.ac-nav__pulse {
  width: 8px; height: 8px; border-radius: 50%; background: #2BD67B;
  box-shadow: 0 0 0 0 rgba(43,214,123,0.5);
  animation: pulse 2s infinite;
}
@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(43,214,123,0.6); }
  70% { box-shadow: 0 0 0 8px rgba(43,214,123,0); }
  100% { box-shadow: 0 0 0 0 rgba(43,214,123,0); }
}

/* ========== HERO ========== */
.ac-hero {
  position: relative; min-height: 100vh;
  padding: 160px 40px 120px;
  display: flex; align-items: center;
  overflow: hidden;
}
.ac-hero__bg {
  position: absolute; inset: 0;
  background: url('assets/bg-dark-flow.jpg') center/cover no-repeat;
  filter: brightness(0.75) contrast(1.08) saturate(0.9);
}
.ac-hero__grad {
  position: absolute; inset: 0;
  background:
    radial-gradient(90% 60% at 50% 10%, rgba(11,13,16,0.0), rgba(11,13,16,0.75) 70%, rgba(11,13,16,0.98) 100%),
    linear-gradient(180deg, rgba(11,13,16,0.4) 0%, transparent 20%, transparent 70%, rgba(11,13,16,0.9) 100%);
}
.ac-hero__inner {
  position: relative; max-width: 1360px; margin: 0 auto; width: 100%;
  display: grid; grid-template-columns: 1.3fr 0.9fr; gap: 64px; align-items: center;
}
@media (max-width: 1100px) { .ac-hero__inner { grid-template-columns: 1fr; gap: 48px; } }

.ac-hero__hook { max-width: 780px; }
.ac-hero__cta { display: flex; gap: 14px; margin-top: 32px; flex-wrap: wrap; }

.ac-hero__tagline {
  margin-top: 52px;
  display: flex; align-items: center; gap: 14px;
  font: 600 12px/1 var(--font-sans); letter-spacing: 0.32em;
  text-transform: uppercase; color: var(--fg2);
}
.ac-hero__tagline .sep { color: var(--accent); font-size: 14px; }

.ac-hero__rim {
  position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: var(--grad-red-bar); opacity: 0.6;
}

/* HUD panel on right side of hero */
.ac-hud {
  position: relative;
  background: linear-gradient(180deg, rgba(42,46,51,0.55) 0%, rgba(20,23,27,0.7) 100%);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-xl);
  padding: 24px; backdrop-filter: blur(16px);
  box-shadow: var(--shadow-lg), inset 0 1px 0 rgba(255,255,255,0.06);
}
.ac-hud::before {
  content: ""; position: absolute; left: 20px; right: 20px; top: -1px; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(227,27,35,0.6), transparent);
}
.ac-hud__row {
  display: flex; justify-content: space-between; align-items: center;
  font: 500 11px/1 var(--font-mono); letter-spacing: 0.12em;
  color: var(--fg3); padding: 10px 0;
  border-bottom: 1px dashed rgba(255,255,255,0.06);
}
.ac-hud__row:last-child { border-bottom: none; }
.ac-hud__row b { color: var(--fg1); font-weight: 500; }
.ac-hud__h {
  display: flex; justify-content: space-between; align-items: center;
  padding-bottom: 16px; margin-bottom: 8px;
  border-bottom: 1px solid var(--border-subtle);
}
.ac-hud__h-title { font: 700 12px/1 var(--font-sans); letter-spacing: 0.22em; text-transform: uppercase; color: var(--fg1); }
.ac-hud__h-status { font: 500 10px/1 var(--font-mono); color: var(--accent); letter-spacing: 0.18em; display: flex; align-items: center; gap: 6px; }
.ac-hud__h-status::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 8px var(--accent);
  animation: pulse 2s infinite;
}

/* Signal bars animating */
.ac-hud__wave { display: flex; gap: 3px; align-items: flex-end; height: 40px; margin: 20px 0 16px; }
.ac-hud__wave span {
  display: block; width: 4px; background: var(--accent); border-radius: 2px;
  opacity: 0.25; animation: wave 1.4s ease-in-out infinite;
}
@keyframes wave {
  0%, 100% { height: 8%; opacity: 0.25; }
  50%      { height: 90%; opacity: 1; }
}

.ac-hud__metric {
  display: grid; grid-template-columns: 1fr auto; gap: 4px 12px;
  padding: 14px 0; border-top: 1px solid var(--border-subtle);
}
.ac-hud__metric:first-of-type { border-top: none; }
.ac-hud__metric-label { font: 500 10px/1 var(--font-mono); letter-spacing: 0.12em; color: var(--fg3); text-transform: uppercase; }
.ac-hud__metric-val { font: 800 24px/1 var(--font-display); color: var(--fg1); letter-spacing: -0.02em; grid-row: span 2; align-self: center; }
.ac-hud__metric-delta { font: 500 10px/1 var(--font-mono); color: #2BD67B; letter-spacing: 0.04em; }

/* Compass dot ring decoration */
.ac-compass {
  position: absolute; width: 320px; height: 320px;
  top: -40px; right: -80px;
  pointer-events: none; opacity: 0.3;
  animation: rotate 60s linear infinite;
}
@keyframes rotate { to { transform: rotate(360deg); } }

/* ========== MARQUEE (logo strip) ========== */
.ac-marquee {
  position: relative; padding: 32px 0;
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
  overflow: hidden;
  background: #090B0E;
}
.ac-marquee__track {
  display: flex; gap: 80px; width: max-content;
  animation: marquee 50s linear infinite;
}
@keyframes marquee { to { transform: translateX(-50%); } }
.ac-marquee__item {
  font: 700 18px/1 var(--font-display); letter-spacing: 0.08em;
  color: var(--fg3); white-space: nowrap;
  display: flex; align-items: center; gap: 16px;
}
.ac-marquee__item::after {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--accent); opacity: 0.7;
}

/* ========== SECTIONS ========== */
.ac-section {
  padding: 140px 40px; max-width: 1360px; margin: 0 auto;
  position: relative;
}
.ac-section--inset { background: #090B0E; max-width: none; padding-left: 0; padding-right: 0; border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); }
.ac-section--inset > .ac-section__inner { max-width: 1360px; margin: 0 auto; padding: 0 40px; }

.ac-section__head {
  display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 64px;
  margin-bottom: 72px; align-items: end;
}
.ac-section__head--center { grid-template-columns: 1fr; text-align: center; max-width: 780px; margin-left: auto; margin-right: auto; margin-bottom: 72px; }
.ac-section__head--center .ac-underline { margin-left: auto; margin-right: auto; }
.ac-section__head-right .ac-lede { margin-left: 0; }
@media (max-width: 900px) { .ac-section__head { grid-template-columns: 1fr; gap: 24px; } }

/* Section number marker */
.ac-section__num {
  font: 500 11px/1 var(--font-mono); color: var(--fg3);
  letter-spacing: 0.18em; display: flex; align-items: center; gap: 10px;
  margin-bottom: 20px;
}
.ac-section__num::before {
  content: ""; width: 10px; height: 10px; border: 1.5px solid var(--accent); border-radius: 50%;
}

/* ========== SERVICES GRID ========== */
.ac-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border-subtle); border: 1px solid var(--border-subtle); border-radius: var(--radius-xl); overflow: hidden; }
.ac-service {
  background: #0E1115; padding: 36px 32px;
  transition: all 280ms var(--ease-out); position: relative;
  cursor: pointer; display: flex; flex-direction: column; min-height: 320px;
  text-decoration: none; color: inherit;
}
.ac-service:hover { background: #13171C; }
.ac-service:hover .ac-service__arrow { transform: translateX(4px); color: var(--accent); }
.ac-service:hover .ac-service__icon { border-color: var(--accent); background: radial-gradient(60% 60% at 50% 40%, rgba(227,27,35,0.22), rgba(227,27,35,0) 70%); }
.ac-service__icon {
  width: 52px; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--accent); margin-bottom: 28px;
  border: 1.5px solid rgba(227,27,35,0.45);
  background: radial-gradient(60% 60% at 50% 40%, rgba(227,27,35,0.12), rgba(227,27,35,0) 70%);
  transition: all 280ms var(--ease-out);
}
.ac-service__tag { font: 500 10px/1 var(--font-mono); letter-spacing: 0.18em; text-transform: uppercase; color: var(--fg3); margin-bottom: 14px; }
.ac-service__name { font: 700 22px/1.25 var(--font-display); letter-spacing: -0.01em; margin-bottom: 10px; color: var(--fg1); }
.ac-service__copy { font-size: 14px; line-height: 1.6; color: var(--fg2); margin: 0; }
.ac-service__foot {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: auto; padding-top: 28px;
  font: 600 12px/1 var(--font-sans); letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--fg2);
}
.ac-service__arrow { transition: all 220ms var(--ease-out); color: var(--fg3); }
@media (max-width: 900px) { .ac-services { grid-template-columns: 1fr; } }

/* ========== CAPABILITIES (stats strip) ========== */
.ac-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
}
.ac-stat {
  padding: 48px 32px; border-left: 1px solid var(--border-subtle);
  position: relative;
}
.ac-stat:first-child { border-left: none; }
.ac-stat__num {
  font: 800 56px/1 var(--font-display); letter-spacing: -0.03em;
  color: var(--fg1); display: flex; align-items: baseline; gap: 4px;
  margin-bottom: 14px;
}
.ac-stat__unit { font-size: 28px; color: var(--accent); font-weight: 700; }
/* Text-mode stat tile (e.g. "Founding Member") - smaller, wraps cleanly */
.ac-stat__num--text {
  font-size: clamp(28px, 2.8vw, 38px) !important;
  line-height: 1.1;
  flex-wrap: wrap;
  display: block;
  letter-spacing: -0.02em;
}
.ac-stat__label { font: 500 11px/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg3); margin-bottom: 6px; }
.ac-stat__copy { font-size: 13px; line-height: 1.5; color: var(--fg2); margin: 0; }
@media (max-width: 1100px) {
  .ac-stats { grid-template-columns: 1fr 1fr; }
  .ac-stat { border-left: none; }
  .ac-stat:nth-child(2n) { border-left: 1px solid var(--border-subtle); }
  .ac-stat:nth-child(n+3) { border-top: 1px solid var(--border-subtle); }
}
@media (max-width: 700px) {
  .ac-stats { grid-template-columns: 1fr; }
  .ac-stat {
    padding: 36px 24px;
    border-left: none !important;
    border-top: 1px solid var(--border-subtle);
  }
  .ac-stat:first-child { border-top: none; }
  .ac-stat__num { font-size: clamp(40px, 12vw, 56px); flex-wrap: wrap; }
}

/* ========== APPROACH / STEPS ========== */
.ac-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-bottom: 80px; }
.ac-step {
  border-top: 1px solid var(--border-default);
  padding-top: 28px; position: relative;
}
.ac-step::before { content: ""; position: absolute; top: -1px; left: 0; width: 56px; height: 2px; background: var(--grad-red-bar); }
.ac-step__n { font: 500 11px/1 var(--font-mono); color: var(--accent); letter-spacing: 0.12em; margin-bottom: 18px; }
.ac-step__name { font: 700 22px/1.2 var(--font-display); letter-spacing: -0.01em; margin-bottom: 12px; color: var(--fg1); }
.ac-step__copy { font-size: 14px; line-height: 1.6; color: var(--fg2); margin: 0; }
@media (max-width: 900px) { .ac-steps { grid-template-columns: 1fr 1fr; } }

/* ========== CASE / PROOF CARDS ========== */
.ac-cases { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 24px; }
.ac-case {
  background: var(--bg-card); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-xl); padding: 40px; position: relative; overflow: hidden;
  transition: all 220ms var(--ease-out);
}
.ac-case:hover { border-color: rgba(227,27,35,0.25); transform: translateY(-2px); }
.ac-case::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: var(--grad-red-bar); opacity: 0.5;
}
.ac-case--hero { min-height: 420px; display: flex; flex-direction: column; }
.ac-case__kicker { font: 500 11px/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg3); margin-bottom: 14px; display: flex; gap: 16px; align-items: center; }
.ac-case__kicker span { color: var(--accent); }
.ac-case__title { font: 700 28px/1.15 var(--font-display); letter-spacing: -0.02em; margin: 0 0 16px; text-wrap: balance; }
.ac-case__title em { color: var(--accent); font-style: normal; }
.ac-case__body { font-size: 15px; line-height: 1.6; color: var(--fg2); margin: 0 0 24px; }
.ac-case__results {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  padding-top: 28px; margin-top: auto;
  border-top: 1px solid var(--border-subtle);
}
.ac-case__result-num { font: 800 34px/1 var(--font-display); letter-spacing: -0.02em; color: var(--accent); margin-bottom: 4px; }
.ac-case__result-label { font: 500 11px/1.3 var(--font-mono); letter-spacing: 0.06em; color: var(--fg3); text-transform: uppercase; }

.ac-case--compact .ac-case__results { grid-template-columns: 1fr 1fr; }
@media (max-width: 900px) { .ac-cases { grid-template-columns: 1fr; } }

/* ========== QUOTE ========== */
.ac-quote {
  max-width: 860px; margin: 0 auto; padding: 48px 52px;
  background: linear-gradient(180deg, #14171B 0%, #0E1115 100%);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-xl); position: relative;
  box-shadow: var(--shadow-lg);
}
.ac-quote::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--grad-red-bar); opacity: 0.7; }
.ac-quote__mark { position: absolute; top: -18px; left: 44px; font: 800 96px/0.6 var(--font-display); color: var(--accent); background: #0B0D10; padding: 0 12px; }
.ac-quote p { font: 500 22px/1.5 var(--font-display); color: var(--fg1); margin: 0; text-wrap: balance; letter-spacing: -0.01em; }
.ac-quote footer {
  margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--border-subtle);
  display: flex; justify-content: space-between; align-items: center;
  font: 500 12px/1.4 var(--font-sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--fg3);
}
.ac-quote footer b { color: var(--fg1); font-weight: 600; }

/* ========== FAQ ========== */
.ac-faq { display: grid; grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--border-default); }
.ac-faq__item { border-bottom: 1px solid var(--border-default); }
.ac-faq__q {
  width: 100%; text-align: left; background: none; border: none; cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
  padding: 28px 0; color: var(--fg1);
  font: 700 20px/1.3 var(--font-display); letter-spacing: -0.01em;
  transition: color 160ms;
}
.ac-faq__q:hover { color: var(--accent); }
.ac-faq__toggle {
  width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid var(--border-strong); display: flex; align-items: center; justify-content: center;
  color: var(--fg2); flex-shrink: 0; transition: all 220ms var(--ease-out);
}
.ac-faq__q:hover .ac-faq__toggle { border-color: var(--accent); color: var(--accent); }
.ac-faq__item--open .ac-faq__toggle { background: var(--accent); border-color: var(--accent); color: #fff; transform: rotate(45deg); }
.ac-faq__a {
  max-height: 0; overflow: hidden; transition: max-height 320ms var(--ease-out);
  font-size: 15px; line-height: 1.65; color: var(--fg2);
}
.ac-faq__item--open .ac-faq__a { max-height: 720px; padding-bottom: 28px; }
.ac-faq__p { margin: 0; }
.ac-faq__p + .ac-faq__p { margin-top: 14px; }
.ac-faq__a strong { color: var(--fg1); font-weight: 700; letter-spacing: 0.01em; }
.ac-faq__a a {
  color: var(--accent); text-decoration: underline;
  text-decoration-color: rgba(227,27,35,0.4); text-underline-offset: 3px;
}
.ac-faq__a a:hover { color: var(--accent-hover); text-decoration-color: currentColor; }
.ac-faq__divider {
  border: 0; height: 1px; margin: 22px 0;
  background: linear-gradient(90deg,
    transparent 0%,
    var(--border-default) 20%,
    var(--border-default) 80%,
    transparent 100%);
}

/* ========== INSIGHTS / POSTS ========== */
.ac-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border-subtle); border: 1px solid var(--border-subtle); border-radius: var(--radius-xl); overflow: hidden; }
.ac-post {
  background: #0E1115; padding: 36px 32px;
  display: flex; flex-direction: column; min-height: 320px;
  text-decoration: none; color: inherit;
  transition: all 280ms var(--ease-out);
}
.ac-post:hover { background: #13171C; }
.ac-post__kicker {
  font: 500 10px/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--fg3); display: flex; justify-content: space-between; gap: 12px; margin-bottom: 18px;
}
.ac-post__kicker span:first-child { color: var(--accent); }
.ac-post__title { font: 700 22px/1.25 var(--font-display); letter-spacing: -0.01em; margin: 0 0 14px; color: var(--fg1); text-wrap: balance; }
.ac-post__excerpt { font-size: 14px; line-height: 1.6; color: var(--fg2); margin: 0; }
.ac-post__foot {
  display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 28px;
  font: 600 12px/1 var(--font-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg2);
}
.ac-post:hover .ac-post__foot { color: var(--accent); }
@media (max-width: 900px) { .ac-posts { grid-template-columns: 1fr; } }

/* --- Variant: card grid with featured image (used by Insights archive) --- */
.ac-posts--grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
}
.ac-post--card {
  padding: 0;
  background: #0E1115;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 0;
}
.ac-post--card:hover {
  background: #13171C;
  border-color: rgba(227,27,35,0.35);
  transform: translateY(-2px);
}
.ac-post__img-wrap {
  position: relative;
  width: 100%; aspect-ratio: 16/10; overflow: hidden;
  background: #07090B;
}
.ac-post__img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 420ms var(--ease-out), filter 420ms var(--ease-out);
  filter: brightness(0.82) saturate(0.95);
}
.ac-post--card:hover .ac-post__img {
  transform: scale(1.04);
  filter: brightness(1) saturate(1);
}
.ac-post__img-wrap::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(11,13,16,0.6) 100%);
  pointer-events: none;
}
.ac-post__body {
  padding: 22px 24px 24px;
  display: flex; flex-direction: column;
  flex: 1;
}
.ac-post--card .ac-post__kicker { margin-bottom: 12px; }
.ac-post--card .ac-post__title { font-size: 20px; line-height: 1.3; }
.ac-post--card .ac-post__excerpt {
  font-size: 13.5px;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ac-post--card .ac-post__foot { padding-top: 20px; font-size: 11px; }

/* --- filter chips --- */
.ac-filter {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-bottom: 40px;
}
.ac-filter__chip {
  font: 500 12px/1 var(--font-mono); letter-spacing: 0.08em;
  padding: 10px 14px;
  background: rgba(255,255,255,0.02);
  color: var(--fg2);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-pill);
  cursor: pointer;
  display: inline-flex; align-items: center; gap: 8px;
  transition: all 160ms var(--ease-out);
}
.ac-filter__chip:hover {
  color: var(--fg1); border-color: var(--border-strong);
  background: rgba(255,255,255,0.04);
}
.ac-filter__chip.is-active {
  background: var(--accent); color: #fff; border-color: var(--accent);
  box-shadow: 0 4px 14px rgba(227,27,35,0.28);
}
.ac-filter__chip.is-active:hover { background: var(--accent-hover); }
.ac-filter__count {
  font: 600 10px/1 var(--font-mono); opacity: 0.7;
  padding: 2px 6px; border-radius: var(--radius-xs);
  background: rgba(255,255,255,0.08);
}
.ac-filter__chip.is-active .ac-filter__count { background: rgba(255,255,255,0.18); opacity: 1; }
.ac-filter__loading,
.ac-filter__empty,
.ac-filter__error {
  padding: 48px 32px; text-align: center;
  border: 1px dashed var(--border-default); border-radius: var(--radius-lg);
  color: var(--fg3);
}
.ac-filter__empty b { color: var(--fg1); }
.ac-filter__error {
  border-color: rgba(227,27,35,0.4); color: var(--fg2);
  background: rgba(227,27,35,0.04);
}
.ac-filter__error code {
  padding: 2px 6px; border-radius: 4px;
  background: rgba(255,255,255,0.06); color: var(--fg1);
}

@media (max-width: 1100px) { .ac-posts--grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px)  { .ac-posts--grid { grid-template-columns: 1fr; } }

/* ========== CTA ========== */
.ac-cta {
  padding: 180px 40px; text-align: center;
  background: radial-gradient(80% 80% at 50% 0%, #17191e 0%, #0B0D10 70%);
  position: relative; overflow: hidden;
}
.ac-cta__inner { max-width: 820px; margin: 0 auto; position: relative; z-index: 1; }
.ac-cta__form { display: flex; gap: 10px; max-width: 560px; margin: 36px auto 0; }
.ac-input {
  flex: 1; background: rgba(255,255,255,0.03); border: 1px solid var(--border-default); border-radius: var(--radius-md);
  padding: 16px 18px; color: var(--fg1); font: 400 15px/1.2 var(--font-sans);
  transition: all 160ms var(--ease-out);
}
.ac-input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--focus-ring); background: rgba(255,255,255,0.05); }
.ac-input::placeholder { color: var(--fg3); }
.ac-cta__sent {
  display: inline-flex; align-items: center; gap: 12px; font-size: 15px; color: var(--fg1);
  padding: 16px 22px; border: 1px solid rgba(227,27,35,0.4); border-radius: var(--radius-md);
  background: rgba(227,27,35,0.06);
}
.ac-check { width: 22px; height: 22px; border-radius: 50%; background: var(--accent); color: #fff; display: inline-flex; align-items: center; justify-content: center; font: 700 12px/1 var(--font-sans); }
.ac-cta__meta { margin-top: 40px; display: flex; gap: 32px; justify-content: center; flex-wrap: wrap; font-size: 13px; color: var(--fg3); }
.ac-cta__meta span b { color: var(--fg1); font-weight: 600; }

/* compass rings behind CTA */
.ac-cta__rings {
  position: absolute; inset: 0; pointer-events: none; display: flex; align-items: center; justify-content: center;
}
.ac-cta__rings span {
  position: absolute; border: 1px solid rgba(227,27,35,0.08); border-radius: 50%;
}
.ac-cta__rings span:nth-child(1) { width: 400px; height: 400px; }
.ac-cta__rings span:nth-child(2) { width: 700px; height: 700px; border-color: rgba(227,27,35,0.05); }
.ac-cta__rings span:nth-child(3) { width: 1000px; height: 1000px; border-color: rgba(227,27,35,0.03); }

/* ========== FOOTER ========== */
.ac-foot { border-top: 1px solid var(--border-subtle); padding: 80px 40px 32px; background: #07090B; }
.ac-foot__inner { max-width: 1360px; margin: 0 auto; display: grid; grid-template-columns: 1.2fr 2fr; gap: 80px; }
.ac-foot__brand { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.ac-foot__brand img { width: 48px; height: 48px; }
.ac-foot__name { font: 800 16px/1 var(--font-sans); letter-spacing: 0.22em; color: var(--fg1); }
.ac-foot__copy { font-size: 14px; line-height: 1.6; color: var(--fg2); max-width: 340px; margin-top: 0; }
.ac-foot__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; }
.ac-foot__h { font: 600 11px/1 var(--font-sans); letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); margin-bottom: 18px; }
.ac-foot__cols a { display: block; font: 400 14px/2 var(--font-sans); color: var(--fg2); text-decoration: none; }
.ac-foot__cols a:hover { color: var(--fg1); }
.ac-foot__rule { height: 1px; background: var(--border-subtle); max-width: 1360px; margin: 56px auto 24px; }
.ac-foot__fed {
  max-width: 1360px; margin: 0 auto 18px;
  display: flex; align-items: center; gap: 16px;
  text-decoration: none; color: var(--fg3);
  font: 500 11px/1.4 var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase;
  transition: opacity 0.2s, color 0.2s;
}
.ac-foot__fed:hover { color: var(--fg2); }
.ac-foot__fed-logo { height: 26px; width: auto; display: block; opacity: 0.78; }
.ac-foot__fed:hover .ac-foot__fed-logo { opacity: 1; }
.ac-foot__legal {
  max-width: 1360px; margin: 0 auto; font-size: 12px; color: var(--fg3);
  display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.ac-foot__legal__addr { font-family: var(--font-mono); letter-spacing: 0.04em; }
.ac-foot__legal__links { display: flex; gap: 18px; flex-wrap: wrap; }
@media (max-width: 720px) {
  .ac-foot__fed { flex-direction: column; align-items: flex-start; gap: 10px; }
  .ac-foot__fed-logo { height: 22px; }
}

/* ===== Federal listing - homepage authority strip ===== */
.ac-fed-strip {
  background: #090B0E;
  border-bottom: 1px solid var(--border-subtle);
  padding: 18px 40px;
  text-align: center;
}
.ac-fed-strip__link {
  display: inline-flex; align-items: center; gap: 22px;
  text-decoration: none; color: var(--fg2);
  transition: opacity 0.2s, color 0.2s;
}
.ac-fed-strip__link:hover { color: #fff; }
.ac-fed-strip__logo {
  height: 36px; width: auto; display: block; opacity: 0.95;
}
.ac-fed-strip__link:hover .ac-fed-strip__logo { opacity: 1; }
.ac-fed-strip__label {
  font: 500 12px/1.4 var(--font-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
@media (max-width: 720px) {
  .ac-fed-strip { padding: 16px 20px; }
  .ac-fed-strip__link { flex-direction: column; gap: 10px; }
  .ac-fed-strip__logo { height: 28px; }
  .ac-fed-strip__label { font-size: 10px; }
}

/* ===== Federal listing - About page card ===== */
.ac-fed-card {
  display: flex; align-items: center; gap: 24px;
  margin: 0 0 24px;
  padding: 22px 24px;
  background: rgba(255,255,255,0.025);
  border: 1px solid var(--border-subtle);
  border-left: 2px solid var(--accent);
  border-radius: var(--radius-md);
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
}
.ac-fed-card:hover {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.12);
  border-left-color: var(--accent);
}
.ac-fed-card__logo { height: 44px; width: auto; flex: 0 0 auto; opacity: 0.95; }
.ac-fed-card__body { flex: 1 1 auto; min-width: 0; }
.ac-fed-card__label {
  font: 500 10px/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 6px;
}
.ac-fed-card__copy { font-size: 14px; line-height: 1.55; color: var(--fg2); margin: 0; }
@media (max-width: 720px) {
  .ac-fed-card { flex-direction: column; align-items: flex-start; gap: 14px; padding: 18px; }
  .ac-fed-card__logo { height: 34px; }
}
.ac-foot__legal__links a { color: var(--fg3); text-decoration: none; transition: color .15s; }
.ac-foot__legal__links a:hover { color: var(--accent); }

@media (max-width: 900px) {
  /* Tablet (≤ 900px): 2-column grid for steps + footer cols, but services
     keeps 1 column to give each card breathing room (cards have heavier
     content - icon + tag + heading + body - and look cramped at half-width
     on tablet). */
  .ac-steps, .ac-foot__cols { grid-template-columns: 1fr 1fr; }
  .ac-services { grid-template-columns: 1fr; }
  .ac-foot__inner { grid-template-columns: 1fr; gap: 48px; }
  .ac-hero { padding: 120px 20px 80px; }
  .ac-section { padding: 80px 24px; }
  .ac-cta { padding: 120px 24px; }

  .ac-nav__inner { padding: 14px 20px; gap: 12px; }
  .ac-nav__wordmark { font-size: 13px; letter-spacing: 0.18em; }
  .ac-nav__brand img { width: 30px; height: 30px; }

  /* Hide desktop nav controls, show hamburger */
  .ac-nav__links,
  .ac-nav__status,
  .ac-nav__products { display: none; }
  .ac-nav__toggle { display: inline-flex; margin-left: auto; }
}

/* Landscape / narrow desktop - drop the inline status + products to save nav room */
@media (min-width: 901px) and (max-width: 1100px) {
  .ac-nav__inner { padding: 16px 24px; gap: 20px; }
  .ac-nav__status { display: none; }
}

@media (max-width: 600px) {
  /* Stack everything to single column on phone-width viewports.
     Two-column card grids feel cramped below ~600 px - each card needs
     to claim full viewport width to breathe and avoid right-edge
     content clipping (the "Workshops & Capabil[ity]" cut-off bug). */
  .ac-steps, .ac-foot__cols { grid-template-columns: 1fr !important; }
}

@media (max-width: 480px) {
  /* Keep the wordmark visible on mobile so visitors can identify the
     site at a glance when scrolling between pages with only the
     navbar in view. Just scale it down a touch to preserve room for
     the hamburger button on the right. */
  .ac-nav__wordmark { font-size: 12px; letter-spacing: 0.16em; }
  .ac-nav__brand { gap: 8px; }
  .ac-nav__brand img { width: 28px; height: 28px; }
}
@media (max-width: 360px) {
  /* Truly narrow viewports (oldest iPhone SE, low-end Android). Drop
     letter-spacing further to keep both wordmark and hamburger visible. */
  .ac-nav__wordmark { font-size: 11px; letter-spacing: 0.12em; }
}

/* ========== AGENT ROSTER (work page grid) ========== */
.ac-agents { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border-subtle); border: 1px solid var(--border-subtle); border-radius: var(--radius-xl); overflow: hidden; }
.ac-agent {
  background: #0E1115; padding: 32px 28px; display: flex; flex-direction: column; min-height: 280px;
  transition: all 280ms var(--ease-out);
}
.ac-agent:hover { background: #13171C; }
.ac-agent__head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; }
.ac-agent__name { font: 800 28px/1 var(--font-display); letter-spacing: -0.02em; color: var(--fg1); margin: 0; }
.ac-agent__type { font: 500 10px/1 var(--font-mono); letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); }
.ac-agent__client { font: 500 11px/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg3); margin-bottom: 14px; }
.ac-agent__copy { font-size: 13px; line-height: 1.6; color: var(--fg2); margin: 0 0 20px; }
.ac-agent__metric { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--border-subtle);
  font: 800 20px/1.1 var(--font-display); color: var(--accent); letter-spacing: -0.01em; }
.ac-agent__metric small { display: block; font: 500 10px/1.3 var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--fg3); margin-top: 6px; }
@media (max-width: 900px) { .ac-agents { grid-template-columns: 1fr; } }

/* ========== SIMPLE PAGE HERO ========== */
.ac-pagehero {
  position: relative; padding: 180px 40px 100px;
  border-bottom: 1px solid var(--border-subtle);
  background: radial-gradient(120% 90% at 50% 0%, #1b1e24 0%, #0B0D10 55%, #050607 100%);
  overflow: hidden;
}
.ac-pagehero__inner { max-width: 1360px; margin: 0 auto; position: relative; }
.ac-pagehero .ac-display { font-size: clamp(44px, 6vw, 72px); margin: 20px 0 24px; }
.ac-pagehero__rim { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--grad-red-bar); opacity: 0.5; }
@media (max-width: 900px) { .ac-pagehero { padding: 140px 24px 72px; } }

/* ========== PROSE (legal pages: privacy, terms, cookie) ========== */
.ac-prose { max-width: 760px; margin: 0 auto; color: var(--fg); font: 400 17px/1.7 var(--font-sans); }
.ac-prose h2 {
  font: 700 26px/1.25 var(--font-sans); color: var(--fg);
  margin: 56px 0 18px; letter-spacing: -0.01em;
}
.ac-prose h2:first-child { margin-top: 0; }
.ac-prose h3 {
  font: 600 18px/1.3 var(--font-sans); color: var(--fg);
  margin: 36px 0 12px; letter-spacing: -0.005em;
}
.ac-prose p { margin: 0 0 18px; color: var(--fg2); }
.ac-prose ul, .ac-prose ol { margin: 0 0 22px; padding-left: 22px; color: var(--fg2); }
.ac-prose li { margin-bottom: 8px; }
.ac-prose a { color: var(--accent); text-decoration: none; border-bottom: 1px solid rgba(227,27,35,0.3); }
.ac-prose a:hover { border-bottom-color: var(--accent); }
.ac-prose strong { color: var(--fg); font-weight: 600; }
.ac-prose hr { border: 0; border-top: 1px solid var(--border-subtle); margin: 48px 0; }

/* ========== FOUNDER BLOCK ========== */
.ac-founder { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 72px; align-items: start; }
.ac-founder__img {
  width: 100%; aspect-ratio: 4/5; object-fit: cover;
  object-position: 30% center;
  border-radius: var(--radius-xl); border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-lg);
}
.ac-founder__imgwrap { position: relative; }
.ac-founder__imgwrap::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--grad-red-bar);
  border-radius: 0 0 var(--radius-xl) var(--radius-xl);
}
.ac-founder__name { font: 800 40px/1 var(--font-display); letter-spacing: -0.025em; margin: 0 0 8px; }
.ac-founder__title { font: 500 13px/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); margin-bottom: 28px; }
.ac-founder__bio { font-size: 17px; line-height: 1.7; color: var(--fg2); margin: 0 0 28px; }
.ac-creds-list { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 0; padding: 0; list-style: none; }
.ac-creds-list li {
  padding: 16px 20px; border: 1px solid var(--border-subtle); border-radius: var(--radius-md);
  background: rgba(255,255,255,0.02);
  font-size: 14px; color: var(--fg1); display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.ac-creds-list li b { color: var(--accent); font: 500 10px/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; white-space: nowrap; }
.ac-creds-list li a { color: inherit; text-decoration: none; border-bottom: 1px dotted rgba(255,255,255,0.18); transition: border-color 0.2s, color 0.2s; }
.ac-creds-list li a:hover { color: #fff; border-bottom-color: var(--accent); }
@media (max-width: 900px) { .ac-founder { grid-template-columns: 1fr; gap: 40px; } }

/* ========== HUBSPOT INLINE FORM (contact page) ========== */
/* The wrapper just provides framing (max-width, subtle bordered card on dark
   page). The actual form-element styling (labels, inputs, button) is done in
   ContactPage.jsx's onFormReady callback - it injects a <style> tag at the
   end of <head> AFTER HubSpot's stylesheet loads, which is the only reliable
   way to win HubSpot's CSS cascade since their stylesheet loads at runtime
   and beats anything we put in site.css. */
.ac-hubspot-form {
  max-width: 760px; margin: 0 auto;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-xl);
  padding: 48px 56px;
}
@media (max-width: 600px) {
  .ac-hubspot-form { padding: 32px 22px; }
}

/* ========== CALENDLY EMBED WRAP ========== */
.ac-calendly {
  border: 1px solid var(--border-subtle); border-radius: var(--radius-xl); overflow: hidden;
  background: #0E1115;
  max-width: 1100px; margin: 0 auto;
  min-height: 760px;
}
.ac-calendly .calendly-inline-widget { width: 100%; min-height: 760px; }
.ac-calendly iframe { width: 100%; min-height: 760px; border: 0; display: block; }

/* ========== CONTACT BLOCKS ========== */
.ac-contacts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ac-contact {
  padding: 28px; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.02);
}
.ac-contact__label { font: 500 10px/1 var(--font-mono); letter-spacing: 0.18em; text-transform: uppercase; color: var(--fg3); margin-bottom: 12px; }
.ac-contact__val { font: 700 20px/1.3 var(--font-display); color: var(--fg1); letter-spacing: -0.01em; }
.ac-contact__val a { color: var(--fg1); }
.ac-contact__val a:hover { color: var(--accent); }
.ac-contact__note { font-size: 13px; color: var(--fg3); margin-top: 10px; }
@media (max-width: 900px) { .ac-contacts { grid-template-columns: 1fr; } }

/* ========== CUE POINT PODCAST BLOCK (own brand) ========== */
.ac-cuepoint {
  display: flex; align-items: center; gap: 32px;
  background: linear-gradient(180deg, #142850 0%, #0B1A36 100%);
  border: 1px solid rgba(240, 180, 0, 0.2); border-radius: var(--radius-xl);
  padding: 48px; position: relative; overflow: visible;
}
.ac-cuepoint::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #F0B400, transparent);
}
.ac-cuepoint__body { flex: 1 1 auto; min-width: 0; }
.ac-cuepoint__ball-link {
  flex: 0 0 auto;
  display: block; line-height: 0;
  margin: -80px -140px -80px 0;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.ac-cuepoint__ball-link:hover { transform: scale(1.04) rotate(-4deg); }
.ac-cuepoint__ball-link:focus-visible { outline: 2px solid #F0B400; outline-offset: 8px; border-radius: 50%; }
.ac-cuepoint__ball {
  width: 440px; height: auto; display: block;
  filter: drop-shadow(0 28px 56px rgba(240, 180, 0, 0.28));
  user-select: none;
}
.ac-cuepoint__eyebrow {
  font: 700 11px/1 var(--font-sans); letter-spacing: 0.22em; text-transform: uppercase;
  color: #F0B400; margin-bottom: 14px;
}
.ac-cuepoint__title { font: 800 36px/1.05 var(--font-display); color: #fff; letter-spacing: -0.02em; margin: 0 0 18px; text-wrap: balance; }
.ac-cuepoint__copy { font-size: 16px; line-height: 1.65; color: #C9D3E2; margin: 0 0 24px; max-width: 680px; }
.ac-cuepoint .ac-btn--primary { background: #F0B400; color: #142850; box-shadow: 0 8px 24px rgba(240,180,0,0.35); }
.ac-cuepoint .ac-btn--primary:hover { background: #FFCA2C; }
@media (max-width: 980px) {
  .ac-cuepoint__ball { width: 360px; }
  .ac-cuepoint__ball-link { margin: -60px -100px -60px 0; }
}
@media (max-width: 820px) {
  .ac-cuepoint { flex-direction: column; align-items: flex-start; gap: 24px; padding: 36px; }
  .ac-cuepoint__ball-link { margin: 0 auto; }
  .ac-cuepoint__ball { width: 220px; }
}

/* ========== SOLUTION BLOCK (solutions page) ========== */
.ac-solblock { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 64px; align-items: center; padding: 80px 0; border-top: 1px solid var(--border-subtle); }
.ac-solblock:first-of-type { border-top: none; }
/* Each grid child must allow shrinking below its intrinsic content width,
   otherwise long words / nowrap buttons overflow the viewport on mobile */
.ac-solblock > div { min-width: 0; }
.ac-solblock__num { font: 800 80px/1 var(--font-display); color: rgba(227,27,35,0.2); letter-spacing: -0.03em; margin-bottom: 16px; }
.ac-solblock h3 {
  font: 700 clamp(30px,3.2vw,44px)/1.1 var(--font-display);
  letter-spacing: -0.02em; margin: 0 0 18px; text-wrap: balance;
  overflow-wrap: anywhere;
}
.ac-solblock h3 em { color: var(--accent); font-style: normal; }
.ac-solblock p {
  font-size: 16px; line-height: 1.7; color: var(--fg2); margin: 0 0 18px;
  overflow-wrap: anywhere;
}
.ac-solblock__proof {
  padding: 20px 24px; background: rgba(227,27,35,0.06); border-left: 2px solid var(--accent);
  border-radius: var(--radius-sm); font-size: 14px; color: var(--fg1); margin: 22px 0 30px;
  overflow-wrap: anywhere;
}
.ac-solblock__proof b { color: var(--accent); }
.ac-solblock__cta { display: flex; gap: 14px; flex-wrap: wrap; }
.ac-solblock__cta .ac-btn { max-width: 100%; }
@media (max-width: 900px) { .ac-solblock { grid-template-columns: 1fr; gap: 32px; padding: 56px 0; } }
@media (max-width: 700px) {
  .ac-solblock__cta .ac-btn { white-space: normal; text-align: left; line-height: 1.3; }
}

/* ========== GLOBE SECTION (contact page) ========== */
.ac-globe-section {
  position: relative;
  padding: 120px 40px 140px;
  background: radial-gradient(120% 80% at 60% 30%, #12161c 0%, #0B0D10 55%, #05070A 100%);
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
  overflow: hidden;
}
.ac-globe-section::before {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(80% 60% at 60% 40%, black 30%, transparent 90%);
  pointer-events: none;
}
.ac-globe-section__inner {
  max-width: 1360px; margin: 0 auto;
  display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 64px; align-items: center;
  position: relative;
}
@media (max-width: 1100px) {
  .ac-globe-section__inner { grid-template-columns: 1fr; gap: 48px; }
}

.ac-globe-section__copy { position: relative; z-index: 2; }
.ac-globe-legend {
  margin-top: 36px; display: grid; gap: 10px;
  padding: 20px 24px; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.02);
  font: 500 12px/1.4 var(--font-mono); letter-spacing: 0.04em; color: var(--fg2);
}
.ac-globe-legend__row { display: flex; align-items: center; gap: 12px; }
.ac-globe-legend__dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.ac-globe-legend__dot--sc { background: var(--accent); box-shadow: 0 0 8px var(--accent); }
.ac-globe-legend__dot--cable { background: transparent; border: 1px dashed var(--accent); }
.ac-globe-legend__dot--land { background: transparent; border: 1px solid rgba(255,255,255,0.32); }

/* The globe visual */
.ac-globe {
  position: relative;
  display: flex; align-items: center; justify-content: center;
}
.ac-globe__frame {
  position: relative;
  width: 100%; max-width: 640px; aspect-ratio: 1/1;
}
.ac-globe__frame::before {
  /* outer ring cage + corner crop marks rendered via gradient */
  content: ""; position: absolute; inset: -8px;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 50%;
  pointer-events: none;
}
.ac-globe__svg {
  width: 100%; height: 100%; display: block;
  filter: drop-shadow(0 18px 40px rgba(227,27,35,0.08));
}
.ac-globe__corner {
  position: absolute;
  font: 500 10px/1 var(--font-mono); letter-spacing: 0.14em;
  color: var(--fg3); text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 8px;
  pointer-events: none;
}
.ac-globe__corner--tl { top: 12px; left: 12px; }
.ac-globe__corner--tr { top: 12px; right: 12px; }
.ac-globe__corner--bl { bottom: 12px; left: 12px; }
.ac-globe__corner--br { bottom: 12px; right: 12px; }
.ac-globe__tick { width: 18px; height: 1px; background: var(--accent); opacity: 0.7; }
.ac-globe__tick--r { }

@media (max-width: 700px) {
  .ac-globe-section { padding: 80px 20px 100px; }
  .ac-globe__corner { font-size: 9px; letter-spacing: 0.1em; }
}

/* ========== SIGNALS HERO · INSIGHTS PAGE ========== */
.ac-signals-hero {
  position: relative;
  padding: 160px 40px 100px;
  border-bottom: 1px solid var(--border-subtle);
  background: radial-gradient(130% 90% at 65% 30%, #131820 0%, #0B0D10 55%, #05070A 100%);
  overflow: hidden;
}
.ac-signals-hero::before {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(rgba(255,255,255,0.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.022) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(80% 60% at 65% 40%, black 30%, transparent 90%);
  pointer-events: none;
}
.ac-signals-hero__inner {
  position: relative; z-index: 1;
  max-width: 1360px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center;
}
/* Grid children must be allowed to shrink below their content's intrinsic
   width, otherwise long words / 3D scenes overflow on mobile */
.ac-signals-hero__inner > * { min-width: 0; }
.ac-signals-hero p,
.ac-signals-hero .ac-h1 { overflow-wrap: anywhere; }

/* The hero headline ("Outcomes, not announcements." on Impact, the long
   tagline on Insights) lives in a 2-column grid where the headline
   column is roughly half the page width. The global .ac-display clamp
   (8vw, max 104px) is sized for full-width contexts and lets long single
   words like "announcements" overflow the half-column, where they get
   chopped mid-word by the text-wrap: balance algorithm.
   Override here with a tighter clamp + hyphens: auto as a graceful
   fallback for any word still too long after the size cap. text-wrap:
   pretty respects word boundaries when picking break points. */
.ac-signals-hero .ac-display {
  font-size: clamp(40px, 5.6vw, 84px);
  line-height: 1.02;
  hyphens: auto;
  -webkit-hyphens: auto;
  text-wrap: pretty;
}

@media (max-width: 1100px) {
  .ac-signals-hero__inner { grid-template-columns: 1fr; gap: 40px; }
  /* Single-column layout has full page width, so the headline can grow
     larger again. */
  .ac-signals-hero .ac-display {
    font-size: clamp(48px, 8vw, 96px);
  }
}
@media (max-width: 700px) {
  .ac-signals-hero { padding: 140px 20px 72px; }
  .ac-signals-hero .ac-display {
    font-size: clamp(38px, 11.5vw, 64px);
    line-height: 1.02;
    margin: 16px 0 20px;
  }
}

.ac-signals-hero__copy .ac-display { margin: 20px 0 24px; }

.ac-signals-legend {
  margin-top: 36px; display: grid; gap: 10px;
  padding: 20px 24px;
  border: 1px solid var(--border-subtle); border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.02);
  font: 500 12px/1.4 var(--font-mono); letter-spacing: 0.04em;
  color: var(--fg2); max-width: 480px;
}
.ac-signals-legend__row { display: flex; align-items: center; gap: 16px; }
.ac-signals-legend__label {
  width: 56px; flex-shrink: 0;
  font-weight: 600; color: var(--accent);
  letter-spacing: 0.18em; text-transform: uppercase;
}
.ac-signals-legend__live { display: inline-flex; align-items: center; gap: 8px; color: var(--fg1); }
.ac-signals-legend__pulse {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 0 0 var(--accent);
  animation: pulse 2s infinite;
}

/* ========== 3D DOLLAR FORGE (impact page) ========== */
.ac-forge3d {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  overflow: hidden;
}
.ac-forge3d__canvas {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
}
.ac-forge3d__canvas canvas {
  width: 100% !important; height: 100% !important; display: block;
}
.ac-forge3d__overlay {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  pointer-events: none;
}

/* When the tower frame wraps the forge, use a wider aspect ratio */
.ac-tower__frame--forge { aspect-ratio: 720/680; max-width: 640px; }
/* Conveyor blueprint scene - a wider, shorter frame */
.ac-tower__frame--conv  { aspect-ratio: 720/560; max-width: 680px; }
/* Compass - square frame */
.ac-tower__frame--compass { aspect-ratio: 1/1; max-width: 620px; }

.ac-conv__svg {
  width: 100%; height: 100%; display: block;
  filter: drop-shadow(0 16px 38px rgba(227,27,35,0.08));
}

/* ========== WIREFRAME TOWER ========== */
.ac-tower {
  position: relative;
  display: flex; align-items: center; justify-content: center;
}
.ac-tower__frame {
  position: relative;
  width: 100%; max-width: 520px; aspect-ratio: 520/680;
  padding: 0;
}
.ac-tower__frame::before {
  /* subtle outer frame around the wireframe scene */
  content: ""; position: absolute; inset: -8px;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius-lg);
  pointer-events: none;
}
.ac-tower__svg {
  width: 100%; height: 100%; display: block;
  filter: drop-shadow(0 18px 40px rgba(227,27,35,0.1));
}
.ac-tower__corner {
  position: absolute;
  font: 500 10px/1 var(--font-mono); letter-spacing: 0.14em;
  color: var(--fg3); text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 8px;
  pointer-events: none;
}
.ac-tower__corner--tl { top: 4px;    left: 6px;   }
.ac-tower__corner--tr { top: 4px;    right: 6px;  }
.ac-tower__corner--bl { bottom: 4px; left: 6px;   }
.ac-tower__corner--br { bottom: 4px; right: 6px;  }
.ac-tower__tick { width: 18px; height: 1px; background: var(--accent); opacity: 0.7; }
@media (max-width: 700px) {
  .ac-tower__corner { font-size: 9px; letter-spacing: 0.1em; }
}

/* ========== MEET FUTURE (home page feature section) ========== */
.ac-future {
  position: relative;
  padding: 140px 40px;
  background: radial-gradient(130% 85% at 30% 30%, #15191f 0%, #0B0D10 55%, #06080B 100%);
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
  overflow: hidden;
}
.ac-future::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(rgba(255,255,255,0.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.022) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(75% 60% at 30% 40%, black 20%, transparent 90%);
}
.ac-future::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: var(--grad-red-bar); opacity: 0.45;
}

.ac-future__inner {
  position: relative; z-index: 1;
  max-width: 1360px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px; align-items: center;
}
@media (max-width: 1100px) {
  .ac-future__inner { grid-template-columns: 1fr; gap: 56px; }
}

/* --- media / portrait side --- */
.ac-future__media { position: relative; }
.ac-future__frame {
  position: relative;
  aspect-ratio: 4/5;
  max-width: 520px;
  margin: 0 auto;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #0A0C10;
  border: 1px solid var(--border-default);
  box-shadow: var(--shadow-xl), inset 0 0 0 1px rgba(227,27,35,0.14);
}
.ac-future__frame::before {
  /* top red rim light */
  content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(227,27,35,0.7), transparent);
  z-index: 3;
}
.ac-future__frame::after {
  /* bottom fade toward nameplate */
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 55%;
  background: linear-gradient(180deg, transparent 0%, rgba(11,13,16,0.85) 70%, rgba(11,13,16,0.98) 100%);
  pointer-events: none; z-index: 2;
}
.ac-future__img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 30%;
  display: block;
  filter: contrast(1.05) saturate(0.9) brightness(0.92);
}
/* soft scan-line overlay over the portrait */
.ac-future__scan {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background-image: repeating-linear-gradient(
    180deg, rgba(255,255,255,0) 0px, rgba(255,255,255,0) 2px,
    rgba(255,255,255,0.025) 2px, rgba(255,255,255,0.025) 3px);
  mix-blend-mode: overlay;
  opacity: 0.9;
}

/* corner HUD labels on the portrait frame */
.ac-future__corner {
  position: absolute; z-index: 4;
  font: 500 10px/1 var(--font-mono); letter-spacing: 0.14em;
  color: var(--fg3); text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 8px;
  pointer-events: none;
}
.ac-future__corner--tl { top: 14px; left: 14px; color: var(--accent); }
.ac-future__corner--tr { top: 14px; right: 14px; }
.ac-future__corner--bl { bottom: 112px; left: 14px; }
.ac-future__corner--br { bottom: 112px; right: 14px; }
.ac-future__tick { width: 16px; height: 1px; background: var(--accent); opacity: 0.7; }
.ac-future__pulse-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 0 var(--accent);
  animation: pulse 2s infinite;
}

/* nameplate + live waveform on portrait bottom */
.ac-future__nameplate {
  position: absolute; left: 20px; right: 20px; bottom: 20px; z-index: 4;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 18px;
  padding: 16px 18px;
  background: rgba(11,13,16,0.72);
  backdrop-filter: blur(10px);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}
.ac-future__name {
  font: 800 24px/1 var(--font-display); letter-spacing: -0.02em; color: var(--fg1);
}
.ac-future__role {
  font: 500 10px/1.3 var(--font-mono); letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--fg3); margin-top: 6px;
}
.ac-future__wave {
  display: flex; gap: 2px; align-items: flex-end; height: 26px; flex-shrink: 0;
}
.ac-future__wave span {
  display: block; width: 2.5px; background: var(--accent); border-radius: 2px;
  opacity: 0.3; animation: wave 1.4s ease-in-out infinite;
}

/* --- copy side --- */
.ac-future__copy {
  max-width: 620px;
}
.ac-future__cta {
  display: flex; gap: 14px; margin-top: 36px; flex-wrap: wrap;
}
.ac-future__meta {
  margin-top: 36px; display: grid; gap: 10px;
  padding: 20px 24px;
  border: 1px solid var(--border-subtle); border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.02);
  font: 500 12px/1.4 var(--font-mono); letter-spacing: 0.04em;
  color: var(--fg2);
}
.ac-future__meta-row { display: flex; align-items: flex-start; gap: 18px; }
.ac-future__meta-label {
  min-width: 100px; flex-shrink: 0;
  padding-right: 8px;
  font-weight: 600; color: var(--accent);
  letter-spacing: 0.18em; text-transform: uppercase;
}

@media (max-width: 700px) {
  .ac-future { padding: 96px 20px; }
  .ac-future__corner--bl,
  .ac-future__corner--br { bottom: 104px; }
  .ac-future__nameplate { flex-direction: column; align-items: stretch; gap: 10px; }
  .ac-future__wave { align-self: flex-start; }
}

/* ========== ARTICLE (individual blog post page) ========== */
.ac-article { position: relative; }

.ac-article__hero {
  padding: 160px 40px 56px;
  background: radial-gradient(130% 90% at 50% 0%, #131820 0%, #0B0D10 55%, #05070A 100%);
  border-bottom: 1px solid var(--border-subtle);
  position: relative;
}
.ac-article__hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: var(--grad-red-bar); opacity: 0.45;
}
.ac-article__inner {
  max-width: 880px; margin: 0 auto;
}
.ac-article__crumbs {
  font: 500 11px/1 var(--font-mono); letter-spacing: 0.18em;
  color: var(--fg3); text-transform: uppercase;
  display: flex; align-items: center; gap: 10px; margin-bottom: 32px;
}
.ac-article__crumbs a { color: var(--accent); text-decoration: none; }
.ac-article__crumbs a:hover { color: var(--accent-hover); }
.ac-article__crumbs-sep { color: var(--border-strong); }

.ac-article__meta {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
  margin-bottom: 24px;
  font: 500 11px/1 var(--font-mono); letter-spacing: 0.1em;
  color: var(--fg3); text-transform: uppercase;
}
.ac-article__meta time { color: var(--fg2); }
.ac-article__cat {
  padding: 6px 10px; border: 1px solid var(--border-subtle);
  border-radius: var(--radius-pill);
  background: rgba(255,255,255,0.02);
  color: var(--fg2);
}

.ac-article__title {
  font: 800 clamp(34px, 5vw, 60px)/1.08 var(--font-display);
  letter-spacing: -0.025em;
  margin: 0 0 24px;
  text-wrap: balance;
  color: var(--fg1);
}
.ac-article__lede {
  font-size: 18px; line-height: 1.65; color: var(--fg2);
  margin: 0; max-width: 760px;
  font-weight: 400;
}

.ac-article__featured {
  max-width: 1100px; margin: 0 auto;
  padding: 56px 40px 0;
}
.ac-article__featured img {
  width: 100%; height: auto; display: block;
  border-radius: var(--radius-xl);
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-lg);
  aspect-ratio: 16/9; object-fit: cover;
}

.ac-article__body {
  padding: 72px 40px 96px;
}
.ac-article__body-inner {
  max-width: 780px; margin: 0 auto;
  font-size: 17px;
  line-height: 1.75;
  color: var(--fg2);
}

/* inline post HTML typography (generated content) */
.ac-article__body-inner h1,
.ac-article__body-inner h2,
.ac-article__body-inner h3,
.ac-article__body-inner h4,
.ac-article__body-inner h5 {
  color: var(--fg1);
  font-family: var(--font-display);
  letter-spacing: -0.02em;
  text-wrap: balance;
  margin: 56px 0 20px;
  font-weight: 700;
}
.ac-article__body-inner h1 { font-size: 38px; line-height: 1.15; }
.ac-article__body-inner h2 { font-size: 32px; line-height: 1.18; }
.ac-article__body-inner h3 { font-size: 26px; line-height: 1.22; }
.ac-article__body-inner h4 { font-size: 20px; line-height: 1.3;  }
.ac-article__body-inner h5 { font-size: 17px; line-height: 1.4;
  text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--accent); font-family: var(--font-sans); font-weight: 600;
}
.ac-article__body-inner h3 strong,
.ac-article__body-inner h3 span { color: inherit !important; font-weight: inherit; }

.ac-article__body-inner p { margin: 0 0 22px; }
.ac-article__body-inner p:last-child { margin-bottom: 0; }

.ac-article__body-inner a {
  color: var(--accent);
  text-decoration: underline;
  text-decoration-color: rgba(227,27,35,0.4);
  text-underline-offset: 3px;
}
.ac-article__body-inner a:hover { color: var(--accent-hover); text-decoration-color: currentColor; }

.ac-article__body-inner strong,
.ac-article__body-inner b { color: var(--fg1); font-weight: 700; }
.ac-article__body-inner em { font-style: italic; color: var(--fg1); }

.ac-article__body-inner ul,
.ac-article__body-inner ol { margin: 0 0 22px; padding-left: 24px; }
.ac-article__body-inner li { margin-bottom: 8px; }
.ac-article__body-inner ul li::marker { color: var(--accent); }
.ac-article__body-inner ol li::marker { color: var(--accent); font-weight: 600; }

.ac-article__body-inner blockquote {
  border-left: 3px solid var(--accent);
  padding: 12px 0 12px 24px;
  margin: 32px 0;
  color: var(--fg1);
  font-family: var(--font-display);
  font-size: 22px; line-height: 1.45;
  font-weight: 500; font-style: italic;
}

.ac-article__body-inner code {
  padding: 2px 6px; border-radius: 4px;
  background: rgba(255,255,255,0.06); color: var(--fg1);
  font-size: 0.9em;
}
.ac-article__body-inner pre {
  padding: 20px 22px; border-radius: var(--radius-md);
  background: #07090B; border: 1px solid var(--border-subtle);
  overflow-x: auto; margin: 28px 0;
}
.ac-article__body-inner pre code { background: transparent; padding: 0; }

.ac-article__body-inner hr {
  border: 0; height: 1px; margin: 48px 0;
  background: linear-gradient(90deg, transparent, var(--border-default), transparent);
}

.ac-article__fig {
  margin: 36px 0;
}
.ac-article__fig--left   { text-align: left; }
.ac-article__fig--right  { text-align: right; }
.ac-article__fig--center { text-align: center; }
.ac-article__img {
  width: 100%; max-width: 100%;
  height: auto; display: inline-block;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-md);
}
.ac-article__fig figcaption {
  font: italic 400 14px/1.5 var(--font-sans);
  color: var(--fg2);
  text-align: center;
  margin-top: 14px;
  letter-spacing: 0.01em;
  max-width: 720px;
  margin-left: auto; margin-right: auto;
}

.ac-article__video {
  position: relative; aspect-ratio: 16/9;
  margin: 36px 0; border-radius: var(--radius-lg); overflow: hidden;
  border: 1px solid var(--border-subtle); background: #000;
}
.ac-article__video iframe { width: 100%; height: 100%; border: 0; display: block; }
.ac-article__video-link {
  margin: 24px 0; padding: 20px 22px;
  border: 1px dashed var(--border-default); border-radius: var(--radius-md);
}

/* Inline image grid (from [vc_gallery] shortcodes in WP imports). The
   --Nup modifier sets column count; we cap at 4 desktop / 2 mobile. */
.ac-article__gallery {
  display: grid; gap: 8px; margin: 36px 0; padding: 0;
  grid-template-columns: repeat(2, 1fr);
}
.ac-article__gallery--3up { grid-template-columns: repeat(3, 1fr); }
.ac-article__gallery--4up { grid-template-columns: repeat(4, 1fr); }
.ac-article__gallery-item {
  position: relative; display: block; overflow: hidden;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-subtle);
  background: #0c0e12;
  aspect-ratio: 1 / 1;
  cursor: zoom-in;
}
.ac-article__gallery-item img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 280ms var(--ease-out);
}
.ac-article__gallery-item::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.45) 100%);
  opacity: 0; transition: opacity 200ms var(--ease-out);
  pointer-events: none;
}
.ac-article__gallery-item:hover img { transform: scale(1.04); }
.ac-article__gallery-item:hover { border-color: var(--accent); }
.ac-article__gallery-item:hover::after { opacity: 1; }

/* Video card with poster background (from [nectar_video_lightbox]). */
.ac-article__video-card {
  position: relative; aspect-ratio: 16/9;
  margin: 36px 0; border-radius: var(--radius-lg); overflow: hidden;
  border: 1px solid var(--border-subtle); background: #000;
}
.ac-article__video-card iframe {
  position: relative; z-index: 2;
  width: 100%; height: 100%; border: 0; display: block;
}

/* Salient nectar_circle_images: row of overlapping round thumbs (mascots/avatars).
   Items flex-grow to fill the column width; aspect-ratio keeps them circular at
   any size; negative margin in % keeps the overlap proportional on resize. */
.ac-article__circle-strip {
  display: flex; flex-wrap: nowrap; align-items: center;
  margin: 36px 0; padding: 0;
  width: 100%;
}
.ac-article__circle-item {
  flex: 1 1 0;
  aspect-ratio: 1 / 1;
  min-width: 0;
  max-width: 240px;
  border-radius: 50%; overflow: hidden;
  border: 3px solid var(--bg);
  margin-left: -8%;
  cursor: zoom-in;
  background: #0c0e12;
  position: relative;
  transition: transform 200ms var(--ease-out), border-color 200ms;
}
.ac-article__circle-item:first-child { margin-left: 0; }
.ac-article__circle-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ac-article__circle-item:hover { transform: scale(1.08); z-index: 2; border-color: var(--accent); }

/* Salient column-background row: 2+ vc_columns with background_image, rendered
   as a flex gallery preserving the original width fractions via flex-grow. */
.ac-article__bg-row {
  display: flex; gap: 8px; margin: 36px 0; padding: 0;
  align-items: stretch;
}
.ac-article__bg-row-item {
  display: block; overflow: hidden;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-subtle);
  background: #0c0e12;
  flex-basis: 0;
  min-height: 280px;
  cursor: zoom-in;
  position: relative;
}
.ac-article__bg-row-item img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 280ms var(--ease-out);
}
.ac-article__bg-row-item:hover { border-color: var(--accent); }
.ac-article__bg-row-item:hover img { transform: scale(1.04); }

@media (max-width: 720px) {
  .ac-article__bg-row { flex-direction: column; }
  .ac-article__bg-row-item { min-height: 240px; }
  .ac-article__circle-item { margin-left: -6%; max-width: 160px; }
}

/* Click-to-enlarge lightbox overlay (mounted via inline script in post-shell.html) */
.ac-lightbox {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(8, 9, 11, 0.92);
  display: flex; align-items: center; justify-content: center;
  padding: 40px;
  opacity: 0; pointer-events: none;
  transition: opacity 200ms var(--ease-out);
  cursor: zoom-out;
}
.ac-lightbox.is-open { opacity: 1; pointer-events: auto; }
.ac-lightbox img {
  max-width: 100%; max-height: 100%;
  object-fit: contain; border-radius: var(--radius-md);
  box-shadow: 0 30px 80px rgba(0,0,0,0.6);
}
.ac-lightbox__close {
  position: absolute; top: 24px; right: 28px;
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-default);
  background: rgba(255,255,255,0.04);
  color: var(--fg1); font-size: 22px; line-height: 1;
  border-radius: 50%; cursor: pointer;
}
.ac-lightbox__close:hover { border-color: var(--accent); color: var(--accent); }

@media (max-width: 720px) {
  .ac-article__gallery,
  .ac-article__gallery--3up,
  .ac-article__gallery--4up { grid-template-columns: repeat(2, 1fr); }
}

/* article footer: prev/next + back */
.ac-article__foot {
  padding: 48px 40px 96px;
  background: #090B0E;
  border-top: 1px solid var(--border-subtle);
}
.ac-article__foot-inner { max-width: 880px; margin: 0 auto; }
.ac-article__pn {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 48px;
}
.ac-article__pn-item {
  padding: 22px 24px; border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg); background: rgba(255,255,255,0.02);
  text-decoration: none; display: flex; flex-direction: column; gap: 8px;
  transition: all 180ms var(--ease-out);
}
.ac-article__pn-item:hover {
  border-color: var(--accent); background: rgba(227,27,35,0.05);
}
.ac-article__pn-item--next { text-align: right; }
.ac-article__pn-label {
  font: 500 10px/1 var(--font-mono); letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--accent);
}
.ac-article__pn-title {
  font: 600 15px/1.3 var(--font-display); color: var(--fg1);
  text-wrap: balance;
}
.ac-article__pn-item--empty {
  visibility: hidden;
}
.ac-article__back {
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
}

@media (max-width: 700px) {
  .ac-article__hero      { padding: 140px 24px 48px; }
  .ac-article__featured  { padding: 40px 20px 0; }
  .ac-article__body      { padding: 56px 24px 72px; }
  .ac-article__body-inner { font-size: 16px; }
  .ac-article__foot      { padding: 40px 24px 72px; }
  .ac-article__pn        { grid-template-columns: 1fr; }
  .ac-article__pn-item--next { text-align: left; }
}

/* ========== TWEAKS PANEL ========== */
.tweaks-panel {
  position: fixed; bottom: 20px; right: 20px; z-index: 200;
  background: rgba(14, 17, 21, 0.92); backdrop-filter: blur(16px);
  border: 1px solid var(--border-strong); border-radius: var(--radius-lg);
  padding: 18px 20px; width: 260px;
  box-shadow: var(--shadow-xl);
  font: 500 12px/1.4 var(--font-sans);
}
.tweaks-panel__h {
  font: 700 11px/1 var(--font-sans); letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 4px;
}
.tweaks-panel__sub { font: 500 10px/1.4 var(--font-mono); color: var(--fg3); letter-spacing: 0.06em; margin-bottom: 14px; }
.tweaks-row { margin-top: 14px; }
.tweaks-row__label { display: block; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fg3); margin-bottom: 8px; }
.tweaks-row__swatches { display: flex; gap: 8px; flex-wrap: wrap; }
.tweaks-swatch {
  width: 26px; height: 26px; border-radius: 50%;
  border: 2px solid transparent; cursor: pointer; transition: all 140ms;
}
.tweaks-swatch:hover { transform: scale(1.1); }
.tweaks-swatch--active { border-color: var(--fg1); }
.tweaks-toggle {
  display: flex; gap: 6px;
}
.tweaks-toggle button {
  flex: 1; padding: 8px 10px; background: rgba(255,255,255,0.04); border: 1px solid var(--border-default);
  color: var(--fg2); font: 600 10px/1 var(--font-sans); letter-spacing: 0.1em; text-transform: uppercase;
  border-radius: var(--radius-sm); cursor: pointer; transition: all 140ms;
}
.tweaks-toggle button:hover { border-color: var(--border-strong); color: var(--fg1); }
.tweaks-toggle button.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }


/* ── 404 page ── */
.ac-404 {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-9) var(--space-5);
  text-align: center;
}
.ac-404__inner { max-width: 600px; }
.ac-404__heading {
  font: 800 clamp(2.5rem, 9vw, 5.5rem)/1.05 var(--font-display);
  letter-spacing: -0.03em;
  color: var(--fg1);
  margin: var(--space-4) 0 var(--space-5);
}
.ac-404__body {
  font-size: 18px;
  line-height: 1.65;
  color: var(--fg2);
  margin: 0 0 var(--space-7);
}
.ac-404__actions {
  display: flex;
  gap: var(--space-4);
  justify-content: center;
  flex-wrap: wrap;
}

/* =====================================================================
   VG (ConvoCore / VoiceGlow) Future widget - viewport hardening
   ---------------------------------------------------------------------
   ConvoCore's theme-settings custom CSS pins the panel to a fixed
   440 x 680 px on #vg-mother-container, with .vg-root at bottom:30 /
   right:30. On viewports narrower than ~470 px (iPhone portrait, narrow
   Android, windowed Mac browsers below desktop width), the 440 px panel
   overflows past the LEFT viewport edge - because the panel is anchored
   to the right but its width is wider than the available space.
   Specificity matters here. ConvoCore's CSS uses ID selectors at
   !important (#vg-mother-container { width: 440px !important; }).
   Attribute selectors (which I tried first) lose at the same !important
   level because IDs win on specificity. We use the same ID + a `html`
   prefix to win the specificity tie.
   Names below come directly from ConvoCore's theme-settings custom CSS
   - if VG ever rename their classes, update both this block and the
   ac-vg-loading block in vite.config.js.
   ==================================================================== */

/* Desktop / tablet: leave the native 440x680 panel intact, just make
   sure it can never be larger than the viewport. Apply only when the
   viewport is large enough to fit the native size with margin. */
@media (min-width: 600px) {
  html .vg-root {
    bottom: max(20px, env(safe-area-inset-bottom)) !important;
    right:  max(20px, env(safe-area-inset-right))  !important;
    max-width:  calc(100vw - 40px) !important;
    max-height: calc(100vh - 40px) !important;
  }
  html #vg-mother-container,
  html .vg-overlay-root-container {
    max-width:  calc(100vw - 40px) !important;
    max-height: calc(100vh - 40px) !important;
  }
}

/* Mobile (≤ 600 px): full-bleed the chat panel only.
   .vg-root is the OUTER wrapper that contains both the launcher button
   AND the chat panel. When the chat is CLOSED, .vg-root should be the
   small launcher area only. Earlier I made the mistake of applying
   width: 100vw / height: 100vh / inset: 0 to .vg-root itself - which,
   even when the chat panel inside was hidden, left an invisible 100vw
   x 100vh wrapper covering the entire viewport. That wrapper sits at
   z-index ~9999 and intercepted every tap, breaking the site's own
   hamburger menu and any other clickable element on mobile.
   Correct fix: leave .vg-root's natural positioning alone (small
   launcher in bottom-right), and only full-bleed the panel containers
   (#vg-mother-container, .vg-overlay-root-container) which VG's JS
   shows/hides based on chat state. When the panel is hidden, our
   full-bleed rules don't apply because there's nothing visible to
   apply them to. */
@media (max-width: 600px) {
  /* Keep the launcher position natural; only respect safe-area insets
     so the launcher doesn't sit under the iOS home indicator. */
  html .vg-root {
    bottom: max(20px, env(safe-area-inset-bottom)) !important;
    right:  max(20px, env(safe-area-inset-right))  !important;
  }
  /* The chat panel itself goes full-bleed. position:fixed + inset:0
     anchors it to the viewport, not to .vg-root. */
  html #vg-mother-container,
  html .vg-overlay-root-container {
    position: fixed !important;
    inset:  0 !important;
    width:  100vw !important;
    height: 100vh !important;
    max-width:  100vw !important;
    max-height: 100vh !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  /* Keep content out from under iOS notch / home indicator */
  html .vg-widget-header {
    padding-top: max(12px, env(safe-area-inset-top)) !important;
  }
  html .vg-input-container {
    padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
  }
}
