/* ============================================================
   ASAP CAPITAL · BRAND KIT v1  (Sprint 31)
   Level 2 · Assertive · Speed + Capability
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root {
  /* Palette */
  --ac-ink:        #0B1F33;   /* Ink Navy — anchor */
  --ac-ink-2:      #142B45;   /* Ink Navy elevated */
  --ac-paper:      #FAFAF7;   /* Paper White */
  --ac-paper-2:    #F1EEE7;   /* Paper elevated */
  --ac-signal:     #E5341C;   /* Signal Red — restrict to CTAs + urgency */
  --ac-signal-2:   #FF4A2E;   /* Signal Red bright hover */
  --ac-slate-90:   #1B2A3D;
  --ac-slate-70:   #3E4E63;
  --ac-slate-50:   #6B7A8F;
  --ac-slate-30:   #A9B4C2;
  --ac-slate-10:   #E1E5EC;
  --ac-live:       #10B981;   /* Live/pulse status */
  /* Sprint 33 · psychology-led additions */
  --ac-money:      #0F5132;   /* Forest Green — money, growth, prosperity (Kahneman + finance archetype) */
  --ac-money-2:    #1A6B45;   /* Forest Green hover */
  --ac-gold:       #B8863B;   /* Award Gold — earned prestige, sparingly, seals only */
  --ac-gold-2:     #D4A24E;   /* Award Gold hover */

  /* Type — real Google Fonts loaded via <link> */
  --ac-font-display: 'Inter', system-ui, -apple-system, sans-serif;
  --ac-font-body:    'Inter', system-ui, -apple-system, sans-serif;
  --ac-font-mono:    'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Scale */
  --ac-fs-display: clamp(2.75rem, 6vw, 5.25rem);
  --ac-fs-h1:      clamp(2.25rem, 4.5vw, 3.75rem);
  --ac-fs-h2:      clamp(1.75rem, 3vw, 2.5rem);
  --ac-fs-h3:      1.375rem;
  --ac-fs-body:    1.0625rem;
  --ac-fs-small:   0.875rem;
  --ac-fs-tag:     0.75rem;

  /* Rhythm */
  --ac-radius:     10px;
  --ac-radius-lg:  16px;
  --ac-line:       1px solid var(--ac-slate-10);
  --ac-line-ink:   1px solid var(--ac-ink);

  /* Motion — snappy, not slow */
  --ac-ease:       cubic-bezier(0.22, 1, 0.36, 1);
  --ac-fast:       140ms;
  --ac-med:        220ms;
}

/* ---------- 2. BASE ---------- */
.ac-scope { 
  font-family: var(--ac-font-body);
  color: var(--ac-ink);
  background: var(--ac-paper);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: 'ss01', 'cv11';
}
.ac-scope * { box-sizing: border-box; }
.ac-scope a { color: inherit; text-decoration: none; }

/* ---------- 3. LAYOUT ---------- */
.ac-container { max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }
.ac-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.ac-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.ac-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
@media (max-width: 900px) {
  .ac-grid-2, .ac-grid-3, .ac-grid-4 { grid-template-columns: 1fr; gap: 32px; }
}

/* ---------- 4. TYPOGRAPHY UTILITIES ---------- */
.ac-display {
  font-size: var(--ac-fs-display);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 0.98;
}
.ac-h1 { font-size: var(--ac-fs-h1); font-weight: 700; letter-spacing: -0.025em; line-height: 1.05; }
.ac-h2 { font-size: var(--ac-fs-h2); font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; }
.ac-h3 { font-size: var(--ac-fs-h3); font-weight: 600; letter-spacing: -0.01em; }
.ac-body { font-size: var(--ac-fs-body); color: var(--ac-slate-70); line-height: 1.6; }
.ac-tag  { 
  font-family: var(--ac-font-mono); 
  font-size: var(--ac-fs-tag);
  text-transform: uppercase; 
  letter-spacing: 0.15em;
  font-weight: 500;
}
.ac-num  { font-family: var(--ac-font-mono); font-feature-settings: 'tnum'; font-variant-numeric: tabular-nums; }

.ac-signal-underline {
  background-image: linear-gradient(var(--ac-signal), var(--ac-signal));
  background-size: 100% 4px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  padding-bottom: 2px;
}

/* Middle-dot brand signature */
.ac-dot { color: var(--ac-amber, #F2A33A); font-weight: 900; padding: 0 0.2em; }

/* ---------- 5. NAV ---------- */
.ac-nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(250,250,247,0.85);
  backdrop-filter: saturate(140%) blur(10px);
  -webkit-backdrop-filter: saturate(140%) blur(10px);
  border-bottom: var(--ac-line);
}
.ac-nav-inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 68px;
}
.ac-nav-links { display: flex; gap: 32px; }
.ac-nav-links a {
  font-size: 0.9375rem; color: var(--ac-slate-70);
  transition: color var(--ac-fast) var(--ac-ease);
}
.ac-nav-links a:hover { color: var(--ac-ink); }
@media (max-width: 720px) { .ac-nav-links { display: none; } }

/* ---------- 6. SPEED TICKER ---------- */
.ac-ticker {
  background: var(--ac-ink);
  color: var(--ac-paper);
  border-bottom: 1px solid var(--ac-ink-2);
  overflow: hidden;
  padding: 10px 0;
}
.ac-ticker-track {
  display: flex; gap: 48px; 
  white-space: nowrap;
  animation: ac-ticker-scroll 40s linear infinite;
}
.ac-ticker-item {
  font-family: var(--ac-font-mono);
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 12px;
  color: var(--ac-slate-30);
}
.ac-ticker-item strong { color: var(--ac-paper); font-weight: 600; }
.ac-ticker-item .ac-ticker-dot { color: var(--ac-signal); }
@keyframes ac-ticker-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Live pulse dot */
.ac-live-pulse {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--ac-live);
  box-shadow: 0 0 0 0 rgba(16,185,129,0.7);
  animation: ac-pulse 1.6s ease-out infinite;
  display: inline-block; margin-right: 8px;
}
@keyframes ac-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(16,185,129,0.7); }
  70%  { box-shadow: 0 0 0 8px rgba(16,185,129,0); }
  100% { box-shadow: 0 0 0 0 rgba(16,185,129,0); }
}

/* ---------- 7. HERO ---------- */
.ac-hero {
  position: relative;
  padding: clamp(64px, 10vw, 128px) 0 clamp(48px, 8vw, 96px);
  overflow: hidden;
}
/* Angled hairline pattern — signature background */
.ac-hero::before {
  content: ''; position: absolute; inset: 0;
  background-image:
    linear-gradient(115deg, transparent 0 49.5%, rgba(11,31,51,0.06) 49.5% 50%, transparent 50%),
    linear-gradient(115deg, transparent 0 74.5%, rgba(229,52,28,0.10) 74.5% 75%, transparent 75%);
  background-size: 180px 180px, 180px 180px;
  pointer-events: none;
  mask-image: linear-gradient(to bottom, black 0%, black 60%, transparent 100%);
}
.ac-hero > * { position: relative; }

.ac-hero-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 6px 14px;
  border: 1px solid var(--ac-slate-10);
  background: var(--ac-paper);
  border-radius: 999px;
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ac-slate-70);
  margin-bottom: 28px;
}
.ac-hero-cta-row { display: flex; gap: 16px; margin-top: 40px; flex-wrap: wrap; }

/* ---------- 8. BUTTONS ---------- */
.ac-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 24px;
  border-radius: var(--ac-radius);
  font-weight: 600; font-size: 0.9375rem;
  letter-spacing: -0.01em;
  border: none; cursor: pointer;
  transition: all var(--ac-fast) var(--ac-ease);
  font-family: inherit;
}
.ac-btn-primary {
  background: var(--ac-ink); color: var(--ac-paper);
}
.ac-btn-primary:hover {
  background: var(--ac-signal);
  transform: translateY(-1px);
  box-shadow: 0 8px 24px -8px rgba(229,52,28,0.5);
}
.ac-btn-secondary {
  background: transparent; color: var(--ac-ink);
  border: 1.5px solid var(--ac-ink);
}
.ac-btn-secondary:hover {
  background: var(--ac-ink); color: var(--ac-paper);
}
.ac-btn-signal {
  background: var(--ac-signal); color: var(--ac-paper);
}
.ac-btn-signal:hover {
  background: var(--ac-signal-2);
  transform: translateY(-1px);
}
.ac-btn .ac-arrow { transition: transform var(--ac-fast) var(--ac-ease); }
.ac-btn:hover .ac-arrow { transform: translateX(4px); }

/* ---------- 9. STAT BLOCKS ---------- */
.ac-stat {
  padding: 28px;
  background: var(--ac-paper);
  border: var(--ac-line);
  border-radius: var(--ac-radius);
  transition: all var(--ac-fast) var(--ac-ease);
}
.ac-stat:hover {
  border-color: var(--ac-ink);
  transform: translateY(-2px);
}
.ac-stat-num {
  font-family: var(--ac-font-mono);
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ac-ink);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.ac-stat-num .ac-unit { color: var(--ac-signal); }
.ac-stat-label {
  margin-top: 12px;
  font-size: 0.875rem;
  color: var(--ac-slate-70);
  line-height: 1.4;
}

/* ---------- 10. SECTIONS ---------- */
.ac-section {
  padding: clamp(64px, 10vw, 112px) 0;
  border-top: var(--ac-line);
}
.ac-section-eyebrow {
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ac-signal);
  margin-bottom: 16px;
  display: flex; align-items: center; gap: 12px;
}
.ac-section-eyebrow::before {
  content: ''; width: 24px; height: 2px;
  background: var(--ac-signal);
}

/* ---------- 11. DEAL FLOW DIAGRAM ---------- */
.ac-flow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
  margin-top: 48px;
}
.ac-flow-step {
  padding: 28px 24px;
  border: var(--ac-line);
  border-right: none;
  background: var(--ac-paper);
  position: relative;
}
.ac-flow-step:last-child { border-right: var(--ac-line); }
.ac-flow-step:hover { background: var(--ac-paper-2); }
.ac-flow-step::after {
  content: '';
  position: absolute; right: -8px; top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 16px; height: 16px;
  background: var(--ac-paper);
  border-top: var(--ac-line);
  border-right: var(--ac-line);
  z-index: 2;
}
.ac-flow-step:last-child::after { display: none; }
.ac-flow-num {
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  color: var(--ac-signal);
  letter-spacing: 0.15em;
  margin-bottom: 8px;
}
.ac-flow-title {
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--ac-ink);
  margin-bottom: 6px;
}
.ac-flow-time {
  font-family: var(--ac-font-mono);
  font-size: 0.8125rem;
  color: var(--ac-slate-70);
  font-variant-numeric: tabular-nums;
}
@media (max-width: 900px) {
  .ac-flow { grid-template-columns: 1fr; }
  .ac-flow-step { border-right: var(--ac-line) !important; border-bottom: none; }
  .ac-flow-step:last-child { border-bottom: var(--ac-line); }
  .ac-flow-step::after { display: none; }
}

/* ---------- 12. LIVE DEAL STRIP ---------- */
.ac-livedeal {
  padding: 20px 24px;
  background: var(--ac-ink);
  color: var(--ac-paper);
  border-radius: var(--ac-radius);
  display: flex; align-items: center; gap: 20px;
  font-family: var(--ac-font-mono);
  font-size: 0.875rem;
  overflow: hidden;
}
.ac-livedeal-item {
  display: inline-flex; align-items: center; gap: 12px;
  white-space: nowrap;
  color: var(--ac-slate-30);
}
.ac-livedeal-item strong { color: var(--ac-paper); font-weight: 600; }
.ac-livedeal-item .amt { color: var(--ac-signal); font-weight: 600; }

/* ---------- 13. CAPABILITY CARDS ---------- */
.ac-cap {
  padding: 32px 28px;
  background: var(--ac-paper);
  border: var(--ac-line);
  border-radius: var(--ac-radius);
  transition: all var(--ac-fast) var(--ac-ease);
  position: relative;
  overflow: hidden;
}
.ac-cap::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--ac-signal);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--ac-med) var(--ac-ease);
}
.ac-cap:hover { border-color: var(--ac-slate-30); transform: translateY(-3px); }
.ac-cap:hover::before { transform: scaleX(1); }
.ac-cap-icon {
  width: 40px; height: 40px;
  color: var(--ac-signal);
  margin-bottom: 20px;
}
.ac-cap h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--ac-ink);
  margin: 0 0 10px;
  letter-spacing: -0.01em;
}
.ac-cap p {
  font-size: 0.9375rem;
  color: var(--ac-slate-70);
  line-height: 1.55;
  margin: 0;
}

/* ---------- 14. SAM PROFILE (cutout portrait treatment, Sprint 31.b) ---------- */
.ac-sam {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 64px;
  align-items: start;
}
.ac-sam-photo-wrap {
  position: relative;
  aspect-ratio: 4/5;
}
/* Ink Navy stage panel behind the cutout */
.ac-sam-photo-wrap::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, var(--ac-ink) 0%, var(--ac-ink-2) 100%);
  border-radius: var(--ac-radius);
  overflow: hidden;
  z-index: 0;
}
/* Signal Red angled accent shape peeking from behind */
.ac-sam-photo-wrap::after {
  content: '';
  position: absolute;
  right: -12px; top: 24px; bottom: 40px;
  width: 18px;
  background: var(--ac-signal);
  border-radius: 2px;
  z-index: 0;
}
/* Subtle grid pattern on the navy panel */
.ac-sam-stage {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 32px 32px;
  border-radius: var(--ac-radius);
  z-index: 1;
  overflow: hidden;
}
/* The cutout portrait sits on top, extending slightly beyond the panel */
.ac-sam-photo {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex; align-items: flex-end; justify-content: center;
  overflow: visible;
}
.ac-sam-photo img {
  width: 108%;
  max-width: none;
  height: auto;
  object-fit: contain;
  object-position: bottom;
  filter: drop-shadow(0 12px 24px rgba(0,0,0,0.35));
  transform: translateY(2%);
}
/* Wordmark stamp on the stage (bottom-left corner) */
.ac-sam-stage-label {
  position: absolute;
  bottom: 20px; left: 20px;
  z-index: 3;
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  display: flex; align-items: center; gap: 8px;
  pointer-events: none;
}
.ac-sam-stage-label::before {
  content: '';
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--ac-signal);
}
.ac-sam-awards {
  display: flex; flex-direction: column; gap: 10px; margin-top: 20px;
}
.ac-sam-award {
  padding: 12px 16px;
  border: var(--ac-line);
  border-radius: var(--ac-radius);
  display: flex; align-items: center; gap: 12px;
  font-size: 0.875rem;
  color: var(--ac-slate-70);
}
.ac-sam-award::before {
  content: '★';
  color: var(--ac-signal);
  font-size: 1.125rem;
}
@media (max-width: 800px) {
  .ac-sam { grid-template-columns: 1fr; gap: 32px; }
}

/* ---------- 15. LENDER PANEL ---------- */
.ac-lenders {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
  border: var(--ac-line);
  border-radius: var(--ac-radius);
  overflow: hidden;
  background: var(--ac-paper);
}
.ac-lender {
  padding: 28px 20px;
  text-align: center;
  border-right: var(--ac-line);
  border-bottom: var(--ac-line);
  /* Sprint 35 · Inter proportional caps — reads as brand name, not code */
  font-family: var(--ac-font-body);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ac-slate-70);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: all var(--ac-fast) var(--ac-ease);
}
.ac-lender:hover {
  background: var(--ac-ink);
  color: var(--ac-paper);
  letter-spacing: 0.14em;
}
@media (max-width: 900px) { .ac-lenders { grid-template-columns: repeat(2, 1fr); } }

/* ---------- 16. CTA BLOCK ---------- */
.ac-cta-block {
  padding: clamp(48px, 8vw, 96px) clamp(32px, 6vw, 64px);
  background: var(--ac-ink);
  color: var(--ac-paper);
  border-radius: var(--ac-radius-lg);
  position: relative;
  overflow: hidden;
}
.ac-cta-block::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    linear-gradient(115deg, transparent 0 49.5%, rgba(255,255,255,0.03) 49.5% 50%, transparent 50%);
  background-size: 120px 120px;
  pointer-events: none;
}
.ac-cta-block > * { position: relative; }
.ac-cta-block .ac-body { color: var(--ac-slate-30); }

/* ---------- 17. FOOTER ---------- */
.ac-footer {
  background: var(--ac-ink);
  color: var(--ac-slate-30);
  padding: 64px 0 32px;
  font-size: 0.875rem;
}
.ac-footer a { color: var(--ac-slate-30); transition: color var(--ac-fast); }
.ac-footer a:hover { color: var(--ac-paper); }
.ac-footer-grid {
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px; margin-bottom: 48px;
}
.ac-footer h4 {
  color: var(--ac-paper);
  font-size: 0.78rem;
  font-family: var(--ac-font-mono);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin: 0 0 16px;
  font-weight: 500;
}
.ac-footer-bottom {
  border-top: 1px solid var(--ac-ink-2);
  padding-top: 24px;
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px;
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  color: var(--ac-slate-50);
}
@media (max-width: 800px) { .ac-footer-grid { grid-template-columns: 1fr 1fr; } }

/* ---------- 18. ENTRANCE ANIMATIONS ---------- */
@keyframes ac-rise {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ac-rise { animation: ac-rise 500ms var(--ac-ease) both; }
.ac-rise-1 { animation-delay: 80ms; }
.ac-rise-2 { animation-delay: 160ms; }
.ac-rise-3 { animation-delay: 240ms; }
.ac-rise-4 { animation-delay: 320ms; }

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

/* ============================================================
   SPRINT 33 · Track record + Awards + Portrait system + Testimonials
   Psychology-led: money green, award gold, evidence-first layout
   ============================================================ */

/* ---------- 19. HERO IMAGE BACKDROP ---------- */
.ac-hero-image {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 0;
}
.ac-hero-image img {
  width: 100%; height: 100%; object-fit: cover;
  opacity: 0.28;
  filter: grayscale(35%) contrast(1.05);
}
.ac-hero-image::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg,
    rgba(250,250,247,0.70) 0%,
    rgba(250,250,247,0.85) 50%,
    var(--ac-paper) 100%);
}
.ac-hero > .ac-container { position: relative; z-index: 2; }

/* ---------- 20. TRACK RECORD ---------- */
.ac-tr-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: var(--ac-line);
  border-radius: var(--ac-radius);
  overflow: hidden;
  background: var(--ac-paper);
  margin-bottom: 48px;
}
.ac-tr-stat {
  padding: 32px 28px;
  border-right: var(--ac-line);
  position: relative;
  transition: background var(--ac-fast) var(--ac-ease);
}
.ac-tr-stat:last-child { border-right: none; }
.ac-tr-stat:hover { background: var(--ac-paper-2); }
.ac-tr-stat-value {
  font-family: var(--ac-font-mono);
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  font-weight: 700;
  color: var(--ac-money);
  letter-spacing: -0.03em;
  line-height: 1;
  margin-bottom: 6px;
  font-variant-numeric: tabular-nums;
}
.ac-tr-stat-value .unit { color: var(--ac-slate-50); font-weight: 500; }
.ac-tr-stat-label {
  font-size: 0.8125rem;
  color: var(--ac-slate-70);
  line-height: 1.4;
  margin-bottom: 10px;
}
.ac-tr-stat-tag {
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.15em;
  color: var(--ac-slate-50);
  text-transform: uppercase;
}
@media (max-width: 900px) {
  .ac-tr-stats { grid-template-columns: repeat(2, 1fr); }
  .ac-tr-stat:nth-child(2) { border-right: none; }
  .ac-tr-stat:nth-child(1), .ac-tr-stat:nth-child(2) { border-bottom: var(--ac-line); }
}

/* ---------- 21. DEAL LEDGER ---------- */
/* Sprint 35 · Editorial data-table treatment
   ----------------------------------------------------------
   Rule: mono ONLY for numbers/codes (date, amount, days).
   Everything else Inter proportional. Row-stripe + hover-lift
   + Signal Red left-accent for premium magazine feel. */
.ac-ledger-wrap {
  border: var(--ac-line);
  border-radius: var(--ac-radius);
  overflow: hidden;
  background: var(--ac-paper);
  box-shadow: 0 1px 0 rgba(11,31,51,0.02), 0 4px 24px -12px rgba(11,31,51,0.08);
}
.ac-ledger-head {
  display: grid;
  grid-template-columns: 110px 1fr 150px 140px 110px 120px;
  padding: 18px 28px;
  background: var(--ac-ink);
  color: var(--ac-slate-30);
  /* Header still small-caps mono — column labels are technical metadata */
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  gap: 16px;
}
.ac-ledger-row {
  display: grid;
  grid-template-columns: 110px 1fr 150px 140px 110px 120px;
  padding: 22px 28px 22px 26px;   /* left inset for accent bar */
  border-top: var(--ac-line);
  transition: background var(--ac-fast) var(--ac-ease), box-shadow var(--ac-fast) var(--ac-ease);
  align-items: center;
  gap: 16px;
  position: relative;
}
/* Alternating zebra stripe — subtle Ink Navy wash on odd rows */
.ac-ledger-row:nth-child(odd) { background: rgba(11,31,51,0.015); }
/* Hover — lift + Signal Red left-border reveal */
.ac-ledger-row::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 2px;
  background: var(--ac-signal);
  transform: scaleY(0);
  transition: transform var(--ac-fast) var(--ac-ease);
  transform-origin: center;
}
.ac-ledger-row:hover {
  background: var(--ac-paper);
  box-shadow: inset 0 0 0 1px rgba(11,31,51,0.06);
}
.ac-ledger-row:hover::before { transform: scaleY(1); }

/* DATE — mono is correct here (numeric alignment matters) */
.ac-ledger-row .date {
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  color: var(--ac-slate-50);
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
}

/* DEAL — Inter, editorial hierarchy: bold headline + prose subtitle */
.ac-ledger-row .desc {
  color: var(--ac-ink);
  font-family: var(--ac-font-body);
  font-weight: 600;
  font-size: 0.9375rem;
  letter-spacing: -0.005em;
  line-height: 1.35;
}
.ac-ledger-row .desc small {
  display: block;
  color: var(--ac-slate-70);
  font-weight: 400;
  font-size: 0.8125rem;
  font-family: var(--ac-font-body);
  letter-spacing: 0;
  margin-top: 4px;
  line-height: 1.45;
}

/* TYPE — GitHub-style pill, Inter small-caps, NOT mono */
.ac-ledger-row .type {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border: 1px solid var(--ac-slate-10);
  border-radius: 4px;
  background: var(--ac-paper);
  font-family: var(--ac-font-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ac-slate-70);
  width: fit-content;
  transition: all var(--ac-fast) var(--ac-ease);
}
.ac-ledger-row:hover .type {
  border-color: var(--ac-ink);
  color: var(--ac-ink);
}

/* AMOUNT — mono kept (numeric alignment critical), larger + bolder */
.ac-ledger-row .amt {
  font-family: var(--ac-font-mono);
  font-weight: 600;
  font-size: 1rem;
  color: var(--ac-money);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

/* DAYS — mono kept for column alignment, but softened */
.ac-ledger-row .days {
  font-family: var(--ac-font-mono);
  font-size: 0.8125rem;
  color: var(--ac-slate-70);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}

/* STATUS — pill kept but now Inter (not mono) — feels less like a log tag */
.ac-ledger-row .status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 11px;
  border-radius: 999px;
  font-family: var(--ac-font-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(15,81,50,0.08);
  color: var(--ac-money);
  width: fit-content;
  border: 1px solid rgba(15,81,50,0.15);
}
.ac-ledger-row .status::before {
  content: '';
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--ac-money);
  box-shadow: 0 0 0 3px rgba(15,81,50,0.15);
}

/* FOOTNOTE — small-caps mono (correct — metadata) */
.ac-ledger-footnote {
  padding: 16px 28px;
  background: var(--ac-paper-2);
  border-top: var(--ac-line);
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  color: var(--ac-slate-50);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px;
}

/* Responsive — stack on tablet/mobile */
@media (max-width: 1000px) {
  .ac-ledger-head, .ac-ledger-row {
    grid-template-columns: 1fr auto;
    gap: 8px;
    padding: 18px 20px;
  }
  .ac-ledger-head .date, .ac-ledger-head .type, .ac-ledger-head .days, .ac-ledger-head .status,
  .ac-ledger-row .date, .ac-ledger-row .type, .ac-ledger-row .days, .ac-ledger-row .status { display: none; }
  .ac-ledger-row .desc { grid-column: 1; }
  .ac-ledger-row .amt { grid-column: 2; text-align: right; }
}

/* ---------- 22. PROJECT PORTFOLIO GRID ---------- */
.ac-projects {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 40px;
}
.ac-project {
  border-radius: var(--ac-radius);
  overflow: hidden;
  background: var(--ac-ink);
  position: relative;
  aspect-ratio: 4/3;
  transition: transform var(--ac-fast) var(--ac-ease);
  cursor: default;
}
.ac-project img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 300ms var(--ac-ease), filter 300ms var(--ac-ease);
}
.ac-project:hover { transform: translateY(-4px); }
.ac-project:hover img { transform: scale(1.06); filter: brightness(0.55); }
.ac-project-caption {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 16px 18px;
  background: linear-gradient(0deg, rgba(11,31,51,0.95) 0%, rgba(11,31,51,0) 100%);
  color: var(--ac-paper);
  opacity: 0; transform: translateY(6px);
  transition: all 220ms var(--ac-ease);
}
.ac-project:hover .ac-project-caption { opacity: 1; transform: translateY(0); }
.ac-project-title { font-size: 0.875rem; font-weight: 600; margin-bottom: 4px; }
.ac-project-meta { font-family: var(--ac-font-mono); font-size: 0.78rem; color: var(--ac-gold); letter-spacing: 0.1em; text-transform: uppercase; }
@media (max-width: 900px) { .ac-projects { grid-template-columns: repeat(2, 1fr); } }

/* ---------- 23. AWARD SEALS ROW ---------- */
.ac-awards-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  align-items: center;
  padding: 40px 32px;
  background: var(--ac-paper);
  border: var(--ac-line);
  border-radius: var(--ac-radius);
}
.ac-award-seal {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: 12px;
}
.ac-award-seal img { width: 88px; height: 88px; }
.ac-award-seal .lbl {
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ac-slate-70);
  line-height: 1.4;
}
@media (max-width: 800px) { .ac-awards-row { grid-template-columns: repeat(2, 1fr); gap: 24px; padding: 28px; } }

/* ---------- 24. YOUNG-GUN SOLD-SIGN OVERLAY ON PORTRAIT ---------- */
.ac-portrait-dual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: end;
  position: relative;
}
.ac-portrait-frame {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  border-radius: var(--ac-radius);
  background: var(--ac-ink);
}
.ac-portrait-frame img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 400ms var(--ac-ease);
}
.ac-portrait-frame:hover img { transform: scale(1.03); }
.ac-portrait-frame::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(11,31,51,0.45) 100%);
  pointer-events: none;
}
.ac-portrait-caption {
  position: absolute; bottom: 14px; left: 16px;
  color: var(--ac-paper);
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  display: flex; align-items: center; gap: 8px;
  z-index: 2;
}
.ac-portrait-caption::before {
  content: '';
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--ac-signal);
}
/* SOLD-sign badge floats over the suited portrait */
.ac-younggun {
  position: absolute;
  top: -12px; right: -12px;
  width: 130px;
  z-index: 3;
  transform: rotate(6deg);
  transition: transform 300ms var(--ac-ease);
  filter: drop-shadow(0 8px 20px rgba(0,0,0,0.35));
}
.ac-younggun:hover { transform: rotate(0deg) scale(1.05); }
.ac-younggun img { width: 100%; height: auto; display: block; }
@media (max-width: 800px) {
  .ac-portrait-dual { grid-template-columns: 1fr; }
  .ac-younggun { width: 100px; top: -8px; right: -8px; }
}

/* ---------- 25. TESTIMONIALS ---------- */
.ac-testimonials {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.ac-testimonial {
  padding: 32px 28px;
  background: var(--ac-paper);
  border: var(--ac-line);
  border-radius: var(--ac-radius);
  position: relative;
  display: flex; flex-direction: column;
}
.ac-testimonial::before {
  content: '“';
  position: absolute;
  top: 4px; left: 20px;
  font-size: 4rem;
  color: var(--ac-gold);
  font-family: Georgia, serif;
  line-height: 1;
  opacity: 0.4;
}
.ac-testimonial-quote {
  font-size: 0.9375rem;
  color: var(--ac-ink);
  line-height: 1.55;
  margin: 20px 0 20px;
  flex: 1;
}
.ac-testimonial-attrib {
  border-top: var(--ac-line);
  padding-top: 16px;
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  color: var(--ac-slate-70);
  line-height: 1.55;
}
.ac-testimonial-attrib strong { color: var(--ac-ink); font-weight: 600; letter-spacing: 0; font-family: var(--ac-font-body); font-size: 0.875rem; display: block; margin-bottom: 2px; }
.ac-testimonial-role { color: var(--ac-slate-50); }
.ac-testimonial-stars {
  color: var(--ac-gold);
  font-size: 0.8125rem;
  letter-spacing: 0.15em;
  margin-bottom: 8px;
}
@media (max-width: 900px) { .ac-testimonials { grid-template-columns: 1fr; } }

/* ---------- 26. SEED-DATA WATERMARK BAND ---------- */
.ac-seed-note {
  padding: 12px 18px;
  background: rgba(184,134,59,0.08);
  border: 1px dashed rgba(184,134,59,0.35);
  border-radius: 6px;
  font-family: var(--ac-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ac-slate-70);
  margin-top: 24px;
  display: flex; align-items: center; gap: 10px;
}
.ac-seed-note::before {
  content: '⚙';
  color: var(--ac-gold);
  font-size: 0.875rem;
}

/* ---------- 27. MONEY GREEN ACCENT UTILITY ---------- */
.ac-money-underline {
  background-image: linear-gradient(var(--ac-money), var(--ac-money));
  background-size: 100% 4px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  padding-bottom: 2px;
}

/* ---------- SPRINT 56 · MOBILE DENSITY + CLARITY ---------- */
.ac-hero-phone { max-width: 680px; font-size: 0.95rem; color: var(--ac-slate-70); margin: 14px 0 0; }
.ac-hero-phone a { color: var(--ac-ink); font-weight: 600; text-decoration: none; border-bottom: 1.5px solid var(--ac-signal); }
.ac-mobile-bar { display: none; }
/* Ticker: fade the cut edge instead of a hard chop */
.ac-ticker { position: relative; }
.ac-ticker-track { position: relative; z-index: 1; }
.ac-ticker::before, .ac-ticker::after { content: ""; position: absolute; top: 0; bottom: 0; width: 72px; z-index: 3; pointer-events: none; }
.ac-ticker::before { left: 0; background: linear-gradient(90deg, var(--ac-ink) 20%, rgba(11,31,51,0)); }
.ac-ticker::after { right: 0; background: linear-gradient(270deg, var(--ac-ink) 20%, rgba(11,31,51,0)); }

@media (max-width: 720px) {
  /* Nav: keep the phone number visible where the links were */
  .ac-nav-links { display: none; }
  /* Sticky action bar */
  .ac-mobile-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; gap: 8px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: rgba(250,250,247,.96); backdrop-filter: blur(8px); border-top: var(--ac-line); }
  .ac-mobile-bar .go { flex: 1; text-align: center; background: var(--ac-signal); color: #fff; font-weight: 700; padding: 14px; border-radius: 10px; text-decoration: none; }
  .ac-mobile-bar .call { flex: 0 0 auto; padding: 14px 18px; border-radius: 10px; border: 1.5px solid var(--ac-ink); color: var(--ac-ink); font-weight: 700; text-decoration: none; }
  .ac-scope { padding-bottom: 76px; }
  /* Hero: shorter, no giant vertical stat stack */
  .ac-display { font-size: clamp(2rem, 9vw, 2.6rem) !important; line-height: 1.05; }
  .ac-section { padding: 44px 0 !important; }
  .ac-grid-4 { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .ac-grid-3 { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .ac-stat { padding: 16px 14px !important; }
  .ac-stat .ac-stat-num, .ac-stat strong, .ac-stat .num { font-size: 1.6rem !important; }
  /* Capabilities: 2 x 3 compact */
  .ac-cap { padding: 14px 12px !important; }
  .ac-cap h3 { font-size: 0.95rem !important; margin: 6px 0 2px !important; }
  .ac-cap p { font-size: 0.8rem !important; line-height: 1.35 !important; margin: 0 !important; }
  .ac-cap svg, .ac-cap .ac-cap-icon { width: 24px !important; height: 24px !important; }
  /* Awards: 2 x 2 */
  .ac-awards-row { grid-template-columns: 1fr 1fr !important; gap: 14px !important; padding: 18px !important; }
  /* Testimonials: clamp to 5 lines, tap to expand */
  .ac-testimonial { padding: 18px 16px !important; }
  .ac-testimonial-quote { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; font-size: 0.95rem !important; line-height: 1.45 !important; }
  .ac-testimonial.open .ac-testimonial-quote { -webkit-line-clamp: unset; }
  .ac-testimonial::after { content: 'Read more'; display: block; margin-top: 8px; font-size: 0.8rem; font-weight: 600; color: var(--ac-signal); }
  .ac-testimonial.open::after { content: 'Show less'; }
  /* Lenders: 3 across, smaller */
  .ac-lenders { grid-template-columns: repeat(3, 1fr) !important; gap: 8px !important; }
  .ac-lenders > * { padding: 10px 6px !important; font-size: 0.78rem !important; }
  /* Projects: horizontal swipe instead of a 4-high stack */
  .ac-projects { display: flex !important; overflow-x: auto; gap: 12px; scroll-snap-type: x mandatory; padding-bottom: 6px; -webkit-overflow-scrolling: touch; }
  .ac-projects > * { flex: 0 0 78%; scroll-snap-align: start; }
  /* Ledger table: let it scroll sideways rather than squeeze */
  .ac-ledger-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .ac-ledger-head, .ac-ledger-row { min-width: 640px; }
  /* Sam section: one portrait is enough on a phone */
  .ac-portrait-dual { grid-template-columns: 1fr !important; gap: 0 !important; }
  .ac-portrait-dual > .ac-portrait-frame:nth-child(2) { display: none !important; }
  .ac-portrait-frame img { max-height: 340px; object-fit: cover; object-position: top; }
  /* Process: 4 compact rows, number left, no giant cards */
  .ac-flow { grid-template-columns: 1fr !important; }
  .ac-flow-step { padding: 12px 12px 12px 56px !important; border-right: var(--ac-line) !important; border-top: none !important; }
  .ac-flow-step:first-child { border-top: var(--ac-line) !important; }
  .ac-flow-num { position: absolute; left: 12px; top: 12px; }
  .ac-flow-step p { font-size: 0.85rem !important; line-height: 1.4 !important; margin: 4px 0 0 !important; }
  .ac-flow-title { font-size: 1rem !important; }
  /* Micro text floors */
  .ac-tag, .ac-ledger-footnote, .ac-stat small, .ac-body small { font-size: 0.78rem !important; }
}

/* ---------- SPRINT 56 · PASS 3: the four heaviest mobile sections ---------- */
@media (max-width: 720px) {
  .ac-hero { padding: 40px 0 36px !important; }
  .ac-hero .ac-body { font-size: 1.02rem !important; }
  .ac-hero .ac-body + .ac-body { display: none; }               /* second paragraph repeats the capability list below */
  .ac-hero .ac-grid-4 { margin-top: 28px !important; }
  .ac-tr-stats { grid-template-columns: 1fr 1fr !important; }
  .ac-tr-stats > * { padding: 14px 12px !important; }
  #track-record .ac-body { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  /* Ledger: show the first 4 rows, the rest behind a tap */
  .ac-ledger-row { padding: 12px 14px 12px 16px !important; }
  .ac-ledger-wrap:not(.open) .ac-ledger-row:nth-of-type(n+6) { display: none !important; }
  .ac-ledger-wrap::after { content: 'Show all deals'; display: block; padding: 12px; text-align: center; font-weight: 600; color: var(--ac-signal); cursor: pointer; }
  .ac-ledger-wrap.open::after { content: 'Show fewer'; }
  .ac-cap { padding: 12px 10px !important; }
  .ac-cap p { display: none !important; }                         /* on a phone the six titles are the message; detail is on /sam */
  .ac-cap h3 { margin: 4px 0 0 !important; }
  .ac-h1 { font-size: clamp(1.5rem, 6.5vw, 1.9rem) !important; }
  .ac-h2 { font-size: clamp(1.3rem, 5.5vw, 1.6rem) !important; }
  #contact { padding: 40px 0 !important; }
}

/* ---------- SPRINT 57 · DARK HERO (Carla's pick: the developer's own words) ---------- */
.ac-hero-dark { background: var(--ac-ink); color: var(--ac-paper); }
.ac-hero-dark .ac-hero-image img { opacity: 0.16; }
.ac-hero-dark::after { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: repeating-linear-gradient(115deg, rgba(255,255,255,0) 0 22px, rgba(255,255,255,0.025) 22px 23px); }
.ac-hero-dark .ac-container { position: relative; z-index: 1; }
.ac-hero-eyebrow-dark { color: var(--ac-paper) !important; border-color: rgba(250,250,247,0.25) !important; background: rgba(250,250,247,0.06); }
.ac-hero-lead { color: rgba(250,250,247,0.82) !important; }
.ac-hero-dark .ac-body { color: rgba(250,250,247,0.82); }
.ac-hero-phone-dark { color: rgba(250,250,247,0.7) !important; }
.ac-hero-phone-dark a { color: var(--ac-paper) !important; }
.ac-btn-ghost { background: transparent !important; color: var(--ac-paper) !important; border: 1.5px solid rgba(250,250,247,0.85) !important; }
.ac-btn-ghost:hover { background: rgba(250,250,247,0.1) !important; }
/* hero stats sit on the dark field */
.ac-hero-dark .ac-stat { background: rgba(250,250,247,0.06); border-color: rgba(250,250,247,0.14); color: var(--ac-paper); }
.ac-hero-dark .ac-stat * { color: var(--ac-paper); }
.ac-hero-dark .ac-stat small, .ac-hero-dark .ac-stat .ac-tag, .ac-hero-dark .ac-stat span { color: rgba(250,250,247,0.7); }
.ac-hero-dark .ac-signal-underline { color: var(--ac-paper); }
/* the light wash over the aerial photo is what made the dark hero grey; replace it with a navy wash */
.ac-hero-dark .ac-hero-image::after { background: linear-gradient(180deg, rgba(11,31,51,0.78) 0%, rgba(11,31,51,0.9) 55%, var(--ac-ink) 100%) !important; }
.ac-hero-dark .ac-hero-image img { opacity: 0.55 !important; }
.ac-hero-dark::before { background-image:
    linear-gradient(115deg, transparent 0 49.5%, rgba(250,250,247,0.06) 49.5% 50%, transparent 50%),
    linear-gradient(115deg, transparent 0 74.5%, rgba(229,52,28,0.18) 74.5% 75%, transparent 75%) !important; }
.ac-hero-dark .ac-hero-eyebrow-dark { background: rgba(250,250,247,0.1) !important; }
/* ticker legibility now the hero is dark too */
.ac-ticker { background: #071627 !important; border-bottom: 1px solid rgba(250,250,247,0.14) !important; }
.ac-ticker-item { color: rgba(250,250,247,0.78) !important; font-size: 0.82rem !important; letter-spacing: 0.06em; }
.ac-ticker-item strong { color: #fff !important; }
.ac-ticker::before { background: linear-gradient(90deg, #071627 20%, rgba(7,22,39,0)) !important; }
.ac-ticker::after { background: linear-gradient(270deg, #071627 20%, rgba(7,22,39,0)) !important; }

/* ============================================================
   SPRINT 69 · TYPE + COLOUR FOR BUSY PROPERTY DEVELOPERS (20 Sep 2026)
   Every rule below has a reason. Reader: a developer with a deal on a clock, usually on a phone, often stressed.
   Goal: they trust the page in one second and can act in five. Not "excitement". Competence, then one clear action.
   ============================================================ */
:root {
  /* Display voice: Inter Tight. Same skeleton as the body face (no voice clash), narrower set, taller x-height.
     Reads as engineered and certain, the voice of a term sheet. Poppins (geometric, round) read as consumer app. */
  --ac-font-display: 'Inter Tight', 'Inter', system-ui, -apple-system, sans-serif;
  /* Body stays Inter: the most legible screen sans at 15 to 17px, which is where developers actually read this. */
  --ac-font-body:    'Inter', system-ui, -apple-system, sans-serif;

  /* Scale, slightly calmer. Display drops from 84 to 72 max. Under stress, tighter leading and bigger type raise
     perceived load without raising urgency. Urgency comes from the words and the one red object. */
  --ac-fs-display: clamp(2.5rem, 5.4vw, 4.5rem);
  --ac-fs-h1:      clamp(2rem, 4vw, 3.25rem);
  --ac-fs-h2:      clamp(1.625rem, 2.8vw, 2.25rem);
  --ac-fs-body:    1.0625rem;

  /* Colour jobs. Red does ONE thing: the primary action. Everything that used to borrow red takes amber or slate.
     A single red object on a navy field is the strongest attention magnet a screen can make; five red objects are noise
     and the brain habituates inside a scroll. Amber is warm and alive without saying "act now". */
  --ac-amber:      #F2A33A;
  --ac-amber-2:    #F7B85C;
  --ac-focus:      #7CC4FF;   /* keyboard focus ring, visible on ink and on paper */
}

/* Display type: measured leading, tabular figures, no hyphenation surprises. */
.ac-scope .ac-display, .ac-scope h1.ac-display { font-family: var(--ac-font-display); font-weight: 700; letter-spacing: -0.028em; line-height: 1.04; text-wrap: balance; font-variant-numeric: tabular-nums; }
.ac-scope .ac-h1 { font-family: var(--ac-font-display); font-weight: 700; letter-spacing: -0.022em; line-height: 1.08; text-wrap: balance; }
.ac-scope .ac-h2 { font-family: var(--ac-font-display); font-weight: 700; letter-spacing: -0.018em; line-height: 1.14; text-wrap: balance; }
.ac-scope .ac-h3 { font-family: var(--ac-font-display); font-weight: 600; letter-spacing: -0.01em; line-height: 1.25; }
.ac-scope .ac-body, .ac-scope p { font-family: var(--ac-font-body); font-weight: 400; }
.ac-scope strong, .ac-scope b { font-weight: 600; }
/* Every number that is money or time is monospaced and tabular: it reads as measured and checkable, which is what a
   developer is doing when they look at it. */
.ac-scope .ac-num, .ac-scope .ac-stat-num, .ac-scope .ac-stat-value, .ac-scope .ac-ticker-item strong, .ac-scope td.ac-money, .ac-scope .ac-money-figure { font-family: var(--ac-font-mono); font-variant-numeric: tabular-nums; font-feature-settings: 'tnum'; letter-spacing: -0.01em; }

/* Red, contained. The hero underline, the ticker dots, the wordmark dot and the phone icon give up red. */
.ac-scope .ac-signal-underline { background-image: linear-gradient(var(--ac-amber), var(--ac-amber)); background-size: 100% 3px; }
.ac-scope .ac-dot { color: var(--ac-amber); }
.ac-scope .ac-ticker-item .ac-ticker-dot { color: var(--ac-slate-50); }
.ac-scope .ac-nav-phone svg, .ac-scope .ac-nav-phone i, .ac-scope .ac-phone-icon { color: var(--ac-amber); fill: var(--ac-amber); }
.ac-scope .ac-hero::before {
  background-image:
    linear-gradient(115deg, transparent 0 49.5%, rgba(250,250,247,0.05) 49.5% 50%, transparent 50%),
    linear-gradient(115deg, transparent 0 74.5%, rgba(242,163,58,0.10) 74.5% 75%, transparent 75%);
}
/* Primary action: the only red on the page. Bigger hit area for thumbs; hover deepens rather than brightens
   (brightening reads as alarm). Secondary stays a quiet outline so the eye is never asked to choose. */
.ac-scope .ac-btn { min-height: 48px; padding: 14px 22px; font-family: var(--ac-font-body); font-weight: 600; font-size: 0.9375rem; letter-spacing: 0; }
.ac-scope .ac-btn-signal { background: var(--ac-signal); color: #fff; }
.ac-scope .ac-btn-signal:hover { background: #C92B15; transform: none; box-shadow: 0 6px 20px -8px rgba(229,52,28,0.55); }
.ac-scope .ac-btn-primary:hover { background: var(--ac-ink-2); box-shadow: none; transform: none; }
.ac-scope .ac-btn:focus-visible, .ac-scope a:focus-visible, .ac-scope button:focus-visible { outline: 3px solid var(--ac-focus); outline-offset: 2px; }

/* The ticker: motion at the top of the viewport steals attention from the headline. It now scrolls slowly,
   pauses on hover or touch, and stops entirely for anyone who has asked for reduced motion. */
.ac-scope .ac-ticker-track { animation-duration: 70s; }
.ac-scope .ac-ticker:hover .ac-ticker-track, .ac-scope .ac-ticker:active .ac-ticker-track { animation-play-state: paused; }
.ac-scope .ac-ticker-item { font-size: 0.78rem; letter-spacing: 0.12em; color: var(--ac-slate-30); }
.ac-scope .ac-ticker-item strong { color: var(--ac-paper); }
@media (prefers-reduced-motion: reduce) { .ac-scope .ac-ticker-track { animation: none; } }

/* Eyebrow pill: a tag never wraps. On a phone it becomes a single line and drops the region. */
.ac-scope .ac-hero-eyebrow { white-space: nowrap; letter-spacing: 0.12em; font-size: 0.78rem; gap: 8px; padding: 6px 12px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 480px) { .ac-scope .ac-hero-eyebrow .ac-eyebrow-region, .ac-scope .ac-hero-eyebrow .ac-dot { display: none; } }

/* Lead paragraph: 20px was competing with the headline. 18px, slate-30 on ink, max 30 words a line. */
.ac-scope .ac-hero .ac-lead, .ac-scope .ac-hero p.ac-body { font-size: clamp(1rem, 1.6vw, 1.125rem); line-height: 1.55; max-width: 34em; }

/* Text on the aerial photo: a soft ink scrim behind the copy column so contrast holds down the whole hero,
   not just the top left corner. WCAG AA on every line of the lead. */
.ac-scope .ac-hero-copy { position: relative; }
.ac-scope .ac-hero-copy::before { content: ''; position: absolute; inset: -32px -40px -32px -40px; background: radial-gradient(ellipse at 30% 40%, rgba(11,31,51,0.72) 0%, rgba(11,31,51,0.45) 55%, rgba(11,31,51,0) 100%); z-index: -1; pointer-events: none; }

/* Mobile action bar: same rule, one red. */
.ac-scope .ac-mobile-bar .go { font-family: var(--ac-font-body); font-weight: 600; letter-spacing: 0; }

/* Sprint 69b · red audit of the whole page found 19 red objects; 17 were labels (section eyebrows, step numbers,
   capability icons, stat units, contact tags). A label's job is to recede so the content reads. Labels go slate;
   stat units go ink-2 so the number carries; the hero "now" underline stays amber. Red is now the two
   "Send Sam the deal" buttons and nothing else on asapcapital.dev. */
.ac-scope .ac-section-eyebrow { color: var(--ac-slate-50); }
.ac-scope .ac-section-eyebrow::before { background: var(--ac-slate-30); }
.ac-scope .ac-flow-num { color: var(--ac-slate-50); }
.ac-scope .ac-cap-icon { color: var(--ac-ink); opacity: .85; }
.ac-scope .ac-stat-num .ac-unit { color: var(--ac-slate-50); }
.ac-scope .ac-tag { color: var(--ac-slate-50); }
/* Stats on the dark hero: unit in slate-30 so it is legible on ink but still quieter than the figure. */
.ac-scope .ac-hero .ac-stat-num .ac-unit, .ac-scope .ac-hero-dark .ac-stat-num .ac-unit { color: var(--ac-slate-30); }
/* Track record table: money and dates tabular, status pills in money green / slate, never red. */
.ac-scope table td, .ac-scope table th { font-variant-numeric: tabular-nums; }
.ac-scope .ac-money-underline { background-image: linear-gradient(var(--ac-money), var(--ac-money)); background-size: 100% 3px; background-position: 0 100%; background-repeat: no-repeat; }

.ac-scope .ac-section-dark .ac-section-eyebrow, .ac-scope .ac-cta-dark .ac-section-eyebrow { color: var(--ac-slate-30); }
.ac-scope .ac-section-dark .ac-section-eyebrow::before { background: var(--ac-slate-50); }

.ac-scope .ac-section-dark .ac-section-eyebrow, .ac-scope .ac-cta-dark .ac-section-eyebrow { color: var(--ac-slate-30); }
.ac-scope .ac-section-dark .ac-section-eyebrow::before { background: var(--ac-slate-50); }

/* ============================================================
   SPRINT 70 · MONO WAS OVER-APPLIED. Carla, 20 Sep 2026: "it looks too excel spreadsheety."
   Correct. Monospace says "measured" when ONE figure stands alone (hero 4h, 48h). In a table of many figures,
   with a letterspaced mono header and mono dates and mono sub-labels, it says "data export". A developer reading
   the track record wants "real deals, real places, settled", which is the body face's job. Alignment comes from
   tabular figures in Inter, not from a typewriter. Rule now: mono for the four hero stats only. Everything else
   proportional, tabular numerals where columns need to line up.
   ============================================================ */
/* Track-record stat band: big figures in the display face (same voice as the headline above them). */
.ac-scope .ac-tr-stat-value { font-family: var(--ac-font-display); font-weight: 700; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.ac-scope .ac-tr-stat-value .unit { font-weight: 600; color: var(--ac-slate-50); }
.ac-scope .ac-tr-stat-tag { font-family: var(--ac-font-body); font-size: 0.8125rem; letter-spacing: 0; text-transform: none; color: var(--ac-slate-50); }
/* Ledger: header in the body face, small caps replaced by sentence case at 12.5px; dates, amounts and days
   proportional with tabular numerals; amount keeps money green and weight so the eye still lands on it. */
.ac-scope .ac-ledger-head { font-family: var(--ac-font-body); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.02em; text-transform: none; }
.ac-scope .ac-ledger-head > div { text-transform: none; }
.ac-scope .ac-ledger-row .date { font-family: var(--ac-font-body); font-size: 0.875rem; letter-spacing: 0; color: var(--ac-slate-50); font-variant-numeric: tabular-nums; }
.ac-scope .ac-ledger-row .amt { font-family: var(--ac-font-body); font-weight: 600; font-size: 1rem; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.ac-scope .ac-ledger-row .days { font-family: var(--ac-font-body); font-size: 0.9rem; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.ac-scope .ac-ledger-row .type { font-size: 0.78rem; letter-spacing: 0.04em; text-transform: none; font-weight: 600; }
/* Undo the Sprint 69 blanket mono on td/th and generic money classes; the hero stat rule below keeps its mono. */
.ac-scope td.ac-money, .ac-scope .ac-money-figure, .ac-scope .ac-stat-value { font-family: var(--ac-font-body); font-weight: 600; font-variant-numeric: tabular-nums; }
.ac-scope .ac-hero .ac-stat-num { font-family: var(--ac-font-mono); }

/* ============================================================
   SPRINT 71 · DEPTH, RHYTHM AND HIERARCHY (Carla, 20 Sep 2026: "too flat, too square, lacking polish")
   Nothing here touches /talk, /checkin, /pass or /call. Landing page only.
   Principles: one light source (top-left, soft), layered shadows not single drop shadows, radius 14 to 20 on
   containers, 8 to 10 on chips, motion under 220ms, hover lifts 2 to 4px, alternating section backgrounds so
   the eye gets a rhythm, generous internal padding. Premium reads as calm and consistent, not as effects.
   ============================================================ */
:root {
  --ac-radius: 14px; --ac-radius-lg: 20px; --ac-radius-sm: 9px;
  --ac-shadow-1: 0 1px 2px rgba(11,31,51,.04), 0 2px 8px rgba(11,31,51,.04);
  --ac-shadow-2: 0 1px 2px rgba(11,31,51,.05), 0 8px 24px -8px rgba(11,31,51,.12);
  --ac-shadow-3: 0 2px 4px rgba(11,31,51,.06), 0 24px 48px -16px rgba(11,31,51,.22);
  --ac-ring: 0 0 0 1px rgba(11,31,51,.06);
}
/* Section rhythm: alternate paper / paper-2 so sections read as rooms, not a scroll of white. */
.ac-scope .ac-section { border-top: 0; padding: clamp(72px, 9vw, 120px) 0; }
.ac-scope .ac-section:nth-of-type(even):not(.ac-section-dark) { background: var(--ac-paper-2); }
.ac-scope .ac-section-eyebrow { margin-bottom: 20px; }
.ac-scope .ac-h2 { margin-bottom: 18px; }

/* Cards: the capability grid, flow steps, stat cells, testimonials, lenders, awards. One system. */
.ac-scope .ac-cap, .ac-scope .ac-testimonial, .ac-scope .ac-awards-row, .ac-scope .ac-tr-stats, .ac-scope .ac-ledger-wrap, .ac-scope .ac-lender {
  border-radius: var(--ac-radius); box-shadow: var(--ac-shadow-1), var(--ac-ring); border-color: transparent; background: #fff;
  transition: transform var(--ac-med) var(--ac-ease), box-shadow var(--ac-med) var(--ac-ease);
}
.ac-scope .ac-cap:hover, .ac-scope .ac-testimonial:hover, .ac-scope .ac-lender:hover { transform: translateY(-3px); box-shadow: var(--ac-shadow-2), var(--ac-ring); }
.ac-scope .ac-cap::before { background: var(--ac-ink); height: 3px; }
.ac-scope .ac-cap { padding: 34px 30px; }
.ac-scope .ac-cap-icon { width: 44px; height: 44px; padding: 10px; box-sizing: content-box; border-radius: 12px; background: var(--ac-paper-2); color: var(--ac-ink); margin: -6px 0 22px -6px; opacity: 1; }

/* Process: four steps as one rounded rail with soft dividers, chevrons removed (they read as flowchart). */
.ac-scope .ac-flow { border-radius: var(--ac-radius); overflow: hidden; box-shadow: var(--ac-shadow-1), var(--ac-ring); background: #fff; }
.ac-scope .ac-flow-step { border: 0; border-right: 1px solid var(--ac-slate-10); padding: 34px 28px 32px; background: #fff; }
.ac-scope .ac-flow-step:last-child { border-right: 0; }
.ac-scope .ac-flow-step::after { display: none; }
.ac-scope .ac-flow-step:hover { background: var(--ac-paper-2); }
.ac-scope .ac-flow-num { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 999px; background: var(--ac-ink); color: var(--ac-paper); font-family: var(--ac-font-body); font-weight: 700; font-size: .75rem; letter-spacing: 0; margin-bottom: 14px; }
.ac-scope .ac-flow-time { font-family: var(--ac-font-body); font-size: .85rem; color: var(--ac-slate-50); letter-spacing: 0; text-transform: none; font-variant-numeric: tabular-nums; }
@media (max-width: 900px) { .ac-scope .ac-flow-step { border-right: 0; border-bottom: 1px solid var(--ac-slate-10); } .ac-scope .ac-flow-step:last-child { border-bottom: 0; } }

/* Track-record stat band and ledger: unify as one card family. */
.ac-scope .ac-tr-stats { overflow: hidden; }
.ac-scope .ac-tr-stat { border-right: 1px solid var(--ac-slate-10); }
.ac-scope .ac-ledger-wrap { overflow: hidden; }
.ac-scope .ac-ledger-head { background: var(--ac-ink); }
.ac-scope .ac-ledger-row .type { border-radius: var(--ac-radius-sm); }

/* Hero stat tiles: glass on ink. */
.ac-scope .ac-hero .ac-stat { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.10); border-radius: var(--ac-radius); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); padding: 26px 24px; }

/* Portraits: two frames, one taller than the other so the pair breathes; soft outer shadow; caption as a chip. */
.ac-scope .ac-portrait-dual { gap: 28px; align-items: start; }
.ac-scope .ac-portrait-frame { border-radius: var(--ac-radius-lg); box-shadow: var(--ac-shadow-3); aspect-ratio: 4/5; }
.ac-scope .ac-portrait-frame:last-child { aspect-ratio: 4/5; margin-top: 40px; }
.ac-scope .ac-portrait-frame::after { background: linear-gradient(180deg, transparent 55%, rgba(11,31,51,.55) 100%); }
.ac-scope .ac-portrait-caption { left: 18px; bottom: 18px; font-family: var(--ac-font-body); font-size: .8rem; font-weight: 600; letter-spacing: 0; text-transform: none; padding: 8px 12px; border-radius: 999px; background: rgba(11,31,51,.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.ac-scope .ac-portrait-caption::before { display: none; }
@media (max-width: 720px) { .ac-scope .ac-portrait-frame:last-child { margin-top: 0; } }

/* Projects: rounder, deeper, caption always present as a chip (hover-only captions are invisible on phones). */
.ac-scope .ac-project { border-radius: var(--ac-radius); box-shadow: var(--ac-shadow-2); }
.ac-scope .ac-project-caption { opacity: 1; transform: none; background: linear-gradient(180deg, transparent 40%, rgba(11,31,51,.78) 100%); }
.ac-scope .ac-project-meta { font-family: var(--ac-font-body); letter-spacing: 0; text-transform: none; color: var(--ac-amber-2); font-size: .78rem; }
.ac-scope .ac-project:hover img { filter: brightness(.85); }

/* Awards: three seals, sentence-case labels, no mono. */
.ac-scope .ac-awards-row { grid-template-columns: repeat(3, 1fr); padding: 44px 36px; gap: 36px; }
.ac-scope .ac-award-seal img { width: 96px; height: 96px; filter: drop-shadow(0 6px 14px rgba(11,31,51,.14)); }
.ac-scope .ac-award-seal .lbl { font-family: var(--ac-font-body); font-size: .85rem; letter-spacing: 0; text-transform: none; color: var(--ac-slate-70); line-height: 1.45; }
.ac-scope .ac-award-seal .lbl br { display: none; } .ac-scope .ac-award-seal .lbl { max-width: 20ch; }
@media (max-width: 800px) { .ac-scope .ac-awards-row { grid-template-columns: 1fr; } }

/* Testimonials: quote mark in amber, card family. */
.ac-scope .ac-testimonial { padding: 32px 30px; }
.ac-scope .ac-testimonial::before { color: var(--ac-amber); opacity: .9; }

/* Closing CTA: rounded ink slab with the same hairline pattern as the hero, not a hard-edged band. */
.ac-scope .ac-section-dark, .ac-scope .ac-cta-dark { border-radius: var(--ac-radius-lg); margin: 0 clamp(12px, 3vw, 40px); box-shadow: var(--ac-shadow-3); }

/* Nav: hairline and blur so it floats over the ticker. */
.ac-scope .ac-nav { box-shadow: 0 1px 0 rgba(255,255,255,.06); }

.ac-scope .ac-award-seal .lbl b { display: block; color: var(--ac-ink); font-weight: 600; margin-bottom: 2px; }

/* ============================================================
   SPRINT 72 · SCROLL (see docs/asap/RESEARCH_DEVELOPER_IN_A_HURRY.md §3)
   CSS scroll-driven animations only. No JavaScript, runs on the compositor, degrades to static where unsupported.
   Purpose: tell the eye where to land next. Small, once, reversible. Everything switches off under reduced motion.
   Intake pages are not in .ac-scope and are untouched.
   ============================================================ */
@supports (animation-timeline: view()) {
  /* Reveal on entry: 14px rise + fade across the element's first 30% of travel into the viewport. */
  .ac-scope .ac-section .ac-container > *, .ac-scope .ac-cap, .ac-scope .ac-flow-step, .ac-scope .ac-tr-stat, .ac-scope .ac-ledger-row, .ac-scope .ac-project, .ac-scope .ac-testimonial, .ac-scope .ac-award-seal, .ac-scope .ac-lender, .ac-scope .ac-portrait-frame {
    animation: ac-sda-reveal linear both; animation-timeline: view(); animation-range: entry 0% entry 32%;
  }
  /* Stagger siblings by shifting the range, not by delay (delay is meaningless on a scroll timeline). */
  .ac-scope .ac-cap:nth-child(2), .ac-scope .ac-flow-step:nth-child(2), .ac-scope .ac-tr-stat:nth-child(2), .ac-scope .ac-project:nth-child(2), .ac-scope .ac-testimonial:nth-child(2), .ac-scope .ac-award-seal:nth-child(2) { animation-range: entry 6% entry 40%; }
  .ac-scope .ac-cap:nth-child(3), .ac-scope .ac-flow-step:nth-child(3), .ac-scope .ac-tr-stat:nth-child(3), .ac-scope .ac-project:nth-child(3), .ac-scope .ac-testimonial:nth-child(3), .ac-scope .ac-award-seal:nth-child(3) { animation-range: entry 12% entry 48%; }
  .ac-scope .ac-cap:nth-child(n+4), .ac-scope .ac-flow-step:nth-child(4), .ac-scope .ac-tr-stat:nth-child(4), .ac-scope .ac-project:nth-child(4) { animation-range: entry 18% entry 56%; }
  /* Process rail: the ink line under the four steps draws left to right as the rail scrolls through the viewport. */
  .ac-scope .ac-flow { position: relative; }
  .ac-scope .ac-flow::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--ac-ink); transform-origin: left; animation: ac-sda-draw linear both; animation-timeline: view(); animation-range: entry 20% cover 55%; }
  /* Hero stat tiles and track-record figures: rise and settle so the eye lands on the number. */
  .ac-scope .ac-hero .ac-stat { animation: ac-sda-reveal linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
  /* The portraits slide in from opposite sides by 24px: the pair reads as a pair. */
  .ac-scope .ac-portrait-frame:first-child { animation-name: ac-sda-from-left; }
  .ac-scope .ac-portrait-frame:last-child { animation-name: ac-sda-from-right; animation-range: entry 8% entry 44%; }
  /* Hero image: gentle parallax on the backdrop only, never on text. */
  .ac-scope .ac-hero-image img { animation: ac-sda-parallax linear both; animation-timeline: scroll(root); animation-range: 0 100vh; }
}
@keyframes ac-sda-reveal { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes ac-sda-from-left { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: none; } }
@keyframes ac-sda-from-right { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
@keyframes ac-sda-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes ac-sda-parallax { from { transform: translateY(0) scale(1.04); } to { transform: translateY(12%) scale(1.04); } }
@media (prefers-reduced-motion: reduce) {
  .ac-scope *, .ac-scope *::before, .ac-scope *::after { animation: none !important; transition: none !important; }
}
/* Sticky section label on desktop: the eyebrow stays pinned while its section is on screen, so the reader always knows
   which question this screen is answering. */
@media (min-width: 1024px) { .ac-scope .ac-section-eyebrow { position: sticky; top: 84px; z-index: 2; width: max-content; padding: 6px 10px 6px 0; background: inherit; } }
/* Smooth anchors from ads and nav; offset for the sticky nav. */
html { scroll-behavior: smooth; } .ac-scope section[id] { scroll-margin-top: 80px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ============================================================
   SPRINT 81 · THE SITE CATCHES UP WITH THE BUTTON (20 Sep 2026)
   Audit findings, in order: five fonts → two; sticky label colliding with the closer's headline; quote mark over the
   stars; captions unreadable on light photos; 9,800px of alternating cream bands with nothing happening in them;
   no way back to the action on desktop; static numbers on a page whose whole promise is time; Sam's site photo
   hidden on the phone. Below, each fix is labelled. "Send Sam the deal" (button, wording, /talk) is untouched.
   ============================================================ */

/* --- 81.1 One ground. Two dark rooms (hero, Sam) plus the closer. No more alternating bands. --- */
.ac-scope .ac-section:nth-of-type(even):not(.ac-section-dark) { background: transparent; }
.ac-scope .ac-section { padding: clamp(56px, 7vw, 96px) 0; }
.ac-scope .ac-section + .ac-section:not(.ac-section-dark) { padding-top: clamp(8px, 2vw, 24px); }
.ac-scope .ac-section.ac-section-dark { background: var(--ac-ink); color: var(--ac-paper); border-radius: 0; margin: clamp(40px, 6vw, 80px) 0; box-shadow: none; padding: clamp(64px, 8vw, 112px) 0; position: relative; overflow: hidden; }
.ac-scope .ac-section-dark::before { content: ''; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(115deg, transparent 0 49.5%, rgba(255,255,255,0.035) 49.5% 50%, transparent 50%); background-size: 160px 160px; mask-image: linear-gradient(to bottom, black 0%, transparent 85%); }
.ac-scope .ac-section-dark > * { position: relative; }
.ac-scope .ac-section-dark .ac-body { color: rgba(250,250,247,0.78); }
.ac-scope .ac-section-dark .ac-h1, .ac-scope .ac-section-dark .ac-h2 { color: var(--ac-paper); }
.ac-scope .ac-section-dark .ac-section-eyebrow { color: var(--ac-slate-30); }
.ac-scope .ac-section-dark .ac-section-eyebrow::before { background: var(--ac-amber); }
.ac-scope .ac-btn-ghost-paper { background: transparent; color: var(--ac-paper); border: 1.5px solid rgba(250,250,247,0.4); }
.ac-scope .ac-btn-ghost-paper:hover { background: var(--ac-paper); color: var(--ac-ink); border-color: var(--ac-paper); }

/* --- 81.2 Sticky label: only on light sections, never inside a dark card or a pinned column. Fixes the closer. --- */
@media (min-width: 1024px) {
  .ac-scope .ac-cta-block .ac-section-eyebrow, .ac-scope .ac-eyebrow-static, .ac-scope .ac-process-pin .ac-section-eyebrow, .ac-scope .ac-sam-room .ac-section-eyebrow { position: static; top: auto; width: auto; padding: 0; background: transparent; }
}

/* --- 81.3 Testimonials: the quote mark had a home over the stars. Give the stars the top line and the mark its own. --- */
.ac-scope .ac-testimonial::before { position: static; display: block; font-size: 3rem; line-height: 0.6; margin: 6px 0 14px; opacity: 0.9; }
.ac-scope .ac-testimonial-stars { order: -1; margin-bottom: 10px; }

/* --- 81.4 Project captions readable on any photo. --- */
.ac-scope .ac-project-caption { background: linear-gradient(180deg, rgba(11,31,51,0) 0%, rgba(11,31,51,0.55) 45%, rgba(11,31,51,0.92) 100%); padding: 40px 18px 16px; text-shadow: 0 1px 2px rgba(0,0,0,0.35); }
.ac-scope .ac-project-title { font-size: 0.95rem; }

/* --- 81.5 Header: sticky, compresses after the hero, surfaces the action. Progress hairline underneath. --- */
.ac-page #site-header { position: sticky; top: 0; z-index: 70; transition: box-shadow var(--ac-med) var(--ac-ease); }
.ac-page #site-header > div:not(.ac-progress) { transition: padding var(--ac-med) var(--ac-ease); }
.ac-page #site-header.is-compact > div:not(.ac-progress) { padding-top: 12px; padding-bottom: 12px; }
.ac-page #site-header.is-compact { box-shadow: 0 1px 0 rgba(255,255,255,0.08), 0 12px 32px -16px rgba(0,0,0,0.5); }
.ac-page .ac-nav-cta { display: inline-flex; align-items: center; gap: 8px; background: var(--ac-signal); color: #fff; font-weight: 600; font-size: 0.875rem; padding: 10px 16px; border-radius: 8px; text-decoration: none; opacity: 0; transform: translateY(-6px); pointer-events: none; transition: opacity var(--ac-med) var(--ac-ease), transform var(--ac-med) var(--ac-ease), background var(--ac-fast); }
.ac-page #site-header.is-compact .ac-nav-cta { opacity: 1; transform: none; pointer-events: auto; }
.ac-page .ac-nav-cta:hover { background: var(--ac-signal-2); }
.ac-page .ac-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 2px !important; min-height: 0; max-height: 2px; line-height: 0; font-size: 0; padding: 0; margin: 0; width: 100%; background: var(--ac-amber); transform-origin: left; transform: scaleX(0); pointer-events: none; }
@supports (animation-timeline: scroll()) {
  .ac-page .ac-progress { animation: ac-progress linear both; animation-timeline: scroll(root); }
}
@keyframes ac-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.ac-page .ac-ticker { position: relative; z-index: 1; }

/* --- 81.6 Hero: let the aerial be seen. Real parallax on the backdrop, copy stays put. Scroll cue. --- */
.ac-scope .ac-hero-dark .ac-hero-image img { opacity: 0.72 !important; filter: saturate(0.9) contrast(1.05); }
.ac-scope .ac-hero-dark .ac-hero-image::after { background: linear-gradient(90deg, rgba(11,31,51,0.96) 0%, rgba(11,31,51,0.86) 42%, rgba(11,31,51,0.35) 75%, rgba(11,31,51,0.55) 100%), linear-gradient(180deg, rgba(11,31,51,0.2) 0%, rgba(11,31,51,0) 40%, var(--ac-ink) 100%) !important; }
.ac-scope .ac-hero-copy::before { inset: -40px -60px -40px -48px; background: radial-gradient(ellipse at 25% 45%, rgba(11,31,51,0.85) 0%, rgba(11,31,51,0.55) 55%, rgba(11,31,51,0) 100%); }
.ac-scope .ac-hero { padding-top: clamp(56px, 8vw, 104px); padding-bottom: clamp(56px, 7vw, 88px); min-height: min(92vh, 900px); display: flex; align-items: center; }
.ac-scope .ac-hero > .ac-container { width: 100%; }
@supports (animation-timeline: view()) {
  .ac-scope .ac-hero-image img { animation: ac-sda-parallax-81 linear both; animation-timeline: scroll(root); animation-range: 0 120vh; }
}
@keyframes ac-sda-parallax-81 { from { transform: translateY(0) scale(1.06); } to { transform: translateY(18%) scale(1.06); } }
.ac-scope .ac-scroll-cue { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); width: 26px; height: 42px; border: 1.5px solid rgba(250,250,247,0.35); border-radius: 14px; display: flex; justify-content: center; z-index: 3; }
.ac-scope .ac-scroll-cue span { width: 3px; height: 8px; border-radius: 2px; background: var(--ac-amber); margin-top: 7px; animation: ac-cue 1.8s var(--ac-ease) infinite; }
@keyframes ac-cue { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(14px); opacity: 0; } 100% { transform: translateY(0); opacity: 0; } }
@media (max-width: 720px) { .ac-scope .ac-scroll-cue { display: none; } .ac-scope .ac-hero { min-height: 0; display: block; } }

/* --- 81.7 Numbers count when they arrive (scroll.js; static until then, static forever under reduced motion). --- */
.ac-scope .ac-count { display: inline-block; min-width: 1ch; font-variant-numeric: tabular-nums; }

/* --- 81.8 Process as scrollytelling. Desktop: pinned left column, steps advance right. Phone: stack. --- */
.ac-scope .ac-process-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.ac-scope .ac-process-pin { position: sticky; top: 112px; align-self: start; }
.ac-scope .ac-process-clock { margin-top: 36px; padding: 20px 22px; border-radius: var(--ac-radius); background: #fff; box-shadow: var(--ac-shadow-1), var(--ac-ring); max-width: 320px; }
.ac-scope .ac-process-clock-label { font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-slate-50); font-weight: 600; }
.ac-scope .ac-process-clock-value { font-family: var(--ac-font-mono); font-size: 2.5rem; font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; color: var(--ac-ink); margin: 6px 0 12px; font-variant-numeric: tabular-nums; }
.ac-scope .ac-process-clock-track { height: 4px; border-radius: 2px; background: var(--ac-slate-10); overflow: hidden; }
.ac-scope .ac-process-clock-track span { display: block; height: 100%; width: var(--ac-clock, 0%); background: linear-gradient(90deg, var(--ac-amber), var(--ac-signal)); transition: width 500ms var(--ac-ease); }
.ac-scope .ac-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.ac-scope .ac-step { display: grid; grid-template-columns: 56px 1fr; gap: 20px; padding: 28px 28px 28px 24px; border-radius: var(--ac-radius-lg); background: #fff; box-shadow: var(--ac-shadow-1), var(--ac-ring); position: relative; min-height: 0; transition: transform var(--ac-med) var(--ac-ease), box-shadow var(--ac-med) var(--ac-ease); }
.ac-scope .ac-step::before { content: ''; position: absolute; left: 0; top: 24px; bottom: 24px; width: 3px; border-radius: 0 3px 3px 0; background: var(--ac-slate-10); transition: background var(--ac-med); }
.ac-scope .ac-step-num { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.75rem; letter-spacing: -0.03em; color: var(--ac-slate-30); line-height: 1; transition: color var(--ac-med); }
.ac-scope .ac-step-title { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.25rem; letter-spacing: -0.015em; color: var(--ac-ink); }
.ac-scope .ac-step-time { font-size: 0.85rem; color: var(--ac-slate-50); margin: 4px 0 10px; font-variant-numeric: tabular-nums; }
.ac-scope .ac-step p { font-size: 0.95rem; color: var(--ac-slate-70); margin: 0; line-height: 1.55; }
.ac-scope .ac-step.is-active { box-shadow: var(--ac-shadow-3), var(--ac-ring); transform: translateX(6px); }
.ac-scope .ac-step.is-active::before { background: var(--ac-amber); }
.ac-scope .ac-step.is-active .ac-step-num { color: var(--ac-ink); }
.ac-scope .ac-step.is-done::before { background: var(--ac-ink); }
.ac-scope .ac-step.is-done .ac-step-num { color: var(--ac-slate-50); }
@media (min-width: 1024px) {
  .ac-scope .ac-steps { padding: 12vh 0 30vh; }
  .ac-scope .ac-step { min-height: 200px; }
}
@media (max-width: 1023px) {
  .ac-scope .ac-process-grid { grid-template-columns: 1fr; gap: 28px; }
  .ac-scope .ac-process-pin { position: static; }
  .ac-scope .ac-process-clock { display: none; }
}
@media (max-width: 720px) {
  .ac-scope .ac-step { grid-template-columns: 40px 1fr; gap: 12px; padding: 18px 16px 18px 16px; }
  .ac-scope .ac-step-num { font-size: 1.25rem; }
  .ac-scope .ac-step-title { font-size: 1.05rem; }
  .ac-scope .ac-step p { font-size: 0.875rem; }
  .ac-scope .ac-step.is-active { transform: none; }
}

/* --- 81.9 Projects: one rail on every screen. Edge-to-edge, scroll-snap, arrows on desktop, drag on touch. --- */
.ac-scope .ac-projects-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.ac-scope .ac-rail-nav { display: flex; gap: 8px; flex: 0 0 auto; margin-bottom: 8px; }
.ac-scope .ac-rail-nav button { width: 44px; height: 44px; border-radius: 999px; border: 1.5px solid var(--ac-slate-10); background: #fff; color: var(--ac-ink); font-size: 1.1rem; cursor: pointer; transition: all var(--ac-fast) var(--ac-ease); }
.ac-scope .ac-rail-nav button:hover { border-color: var(--ac-ink); background: var(--ac-ink); color: var(--ac-paper); }
.ac-scope .ac-rail-nav button:disabled { opacity: 0.35; cursor: default; }
.ac-scope .ac-rail-wrap { margin-top: 32px; }
.ac-scope .ac-projects.ac-rail { display: flex !important; grid-template-columns: none; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: 6px max(calc((100vw - 1240px) / 2 + clamp(20px, 4vw, 40px)), clamp(20px, 4vw, 40px)) 28px; margin: 0; -webkit-overflow-scrolling: touch; }
.ac-scope .ac-projects.ac-rail::-webkit-scrollbar { display: none; }
.ac-scope .ac-projects.ac-rail > * { flex: 0 0 clamp(280px, 30vw, 420px); scroll-snap-align: start; aspect-ratio: 4/3; }
.ac-scope .ac-projects.ac-rail:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 4px; }
.ac-scope .ac-project-cta { display: flex; align-items: flex-end; background: var(--ac-ink); text-decoration: none; color: var(--ac-paper); }
.ac-scope .ac-project-cta-inner { padding: 22px; position: relative; z-index: 1; }
.ac-scope .ac-project-cta-kicker { font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-amber); font-weight: 600; margin-bottom: 8px; }
.ac-scope .ac-project-cta-title { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.5rem; letter-spacing: -0.02em; display: flex; gap: 10px; align-items: center; }
.ac-scope .ac-project-cta-meta { color: var(--ac-slate-30); font-size: 0.875rem; margin-top: 8px; }
.ac-scope .ac-project-cta:hover { transform: translateY(-4px); background: var(--ac-ink-2); }
.ac-scope .ac-project-cta:hover .ac-arrow { transform: translateX(4px); }
@media (max-width: 720px) {
  .ac-scope .ac-rail-nav { display: none; }
  .ac-scope .ac-projects.ac-rail > * { flex: 0 0 78%; }
}

/* --- 81.10 Sam: ink room, copy left, portraits right; both photos on phones (the audit found the site photo hidden). --- */
.ac-scope .ac-sam-room-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: center; margin-bottom: clamp(40px, 5vw, 64px); }
.ac-scope .ac-sam-room .ac-portrait-dual { max-width: none; margin: 0; gap: 20px; }
.ac-scope .ac-sam-room .ac-portrait-frame { box-shadow: 0 30px 60px -20px rgba(0,0,0,0.6); aspect-ratio: 4/5; }
.ac-scope .ac-sam-room .ac-portrait-frame:last-child { margin-top: 56px; }
.ac-scope .ac-sam-room .ac-awards-row { background: rgba(255,255,255,0.05); box-shadow: none; border: 1px solid rgba(255,255,255,0.1); }
.ac-scope .ac-sam-room .ac-award-seal .lbl, .ac-scope .ac-sam-room .ac-award-seal .lbl b { color: rgba(250,250,247,0.85); }
.ac-scope .ac-sam-room .ac-award-seal .lbl b { color: var(--ac-paper); }
.ac-scope .ac-sam-room .ac-body a { color: var(--ac-paper); }
@supports (animation-timeline: view()) {
  .ac-scope .ac-sam-room .ac-portrait-frame { animation: ac-sda-clip linear both; animation-timeline: view(); animation-range: entry 0% entry 60%; }
  .ac-scope .ac-sam-room .ac-portrait-frame:last-child { animation-range: entry 10% entry 70%; }
}
@keyframes ac-sda-clip { from { clip-path: inset(12% 0 12% 0 round 16px); opacity: 0.4; transform: translateY(24px); } to { clip-path: inset(0 0 0 0 round 16px); opacity: 1; transform: none; } }
@media (max-width: 900px) {
  .ac-scope .ac-sam-room-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .ac-scope .ac-sam-room .ac-portrait-dual { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .ac-scope .ac-sam-room .ac-portrait-dual > .ac-portrait-frame:nth-child(2) { display: block !important; margin-top: 22px; }
  .ac-scope .ac-sam-room .ac-portrait-frame img { max-height: none; }
  .ac-scope .ac-sam-room .ac-portrait-caption { font-size: 0.78rem; padding: 6px 9px; left: 10px; bottom: 10px; }
}

/* --- 81.11 Closer arrives: the ink card scales in from 96% as it enters. --- */
@supports (animation-timeline: view()) {
  .ac-scope .ac-cta-block { animation: ac-sda-arrive linear both; animation-timeline: view(); animation-range: entry 0% entry 70%; }
}
@keyframes ac-sda-arrive { from { transform: scale(0.96); opacity: 0.6; } to { transform: none; opacity: 1; } }
.ac-scope #contact { padding-top: clamp(24px, 4vw, 56px); }

/* --- 81.12 Reduced motion switches every one of these off, including the JS-driven ones (scroll.js checks too). --- */
@media (prefers-reduced-motion: reduce) {
  .ac-page #site-header > div, .ac-page .ac-nav-cta, .ac-scope .ac-step, .ac-scope .ac-process-clock-track span { transition: none !important; }
  .ac-page .ac-progress, .ac-scope .ac-scroll-cue span, .ac-scope .ac-portrait-frame, .ac-scope .ac-cta-block, .ac-scope .ac-hero-image img { animation: none !important; }
  .ac-page .ac-progress { display: none; }
}

/* ============================================================
   SPRINT 82 · THE SAVES (20 Sep 2026)
   Replaces the deals ledger. A table asks the reader to compute; this shows it. Every save is pressure → move →
   amount → a bar on one shared 31-day axis, so "how fast" is visible before a word is read. The bar draws as the
   row enters the viewport (CSS scroll timeline), the number counts (scroll.js hooks .ac-save-days b). One row is
   marked as the hero (fastest to date). Static under reduced motion.
   ============================================================ */
.ac-scope .ac-saves { background: #fff; border-radius: var(--ac-radius-lg); box-shadow: var(--ac-shadow-1), var(--ac-ring); overflow: hidden; margin-top: 8px; }
.ac-scope .ac-saves-head { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: end; padding: 28px 32px 18px; border-bottom: 1px solid var(--ac-slate-10); }
.ac-scope .ac-saves-kicker { font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-slate-50); font-weight: 600; margin-bottom: 6px; }
.ac-scope .ac-saves-title { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.35rem; letter-spacing: -0.015em; color: var(--ac-ink); }
.ac-scope .ac-saves-axis { display: flex; justify-content: space-between; font-size: 0.78rem; color: var(--ac-slate-50); font-variant-numeric: tabular-nums; padding-bottom: 4px; border-bottom: 1px dashed var(--ac-slate-10); }
.ac-scope .ac-save { display: grid; grid-template-columns: 84px minmax(0, 1fr) 96px 320px; gap: 24px; align-items: center; padding: 22px 32px; border-bottom: 1px solid var(--ac-slate-10); transition: background var(--ac-fast); }
.ac-scope .ac-save:hover { background: var(--ac-paper); }
.ac-scope .ac-save-when { font-size: 0.8rem; color: var(--ac-slate-50); font-variant-numeric: tabular-nums; }
.ac-scope .ac-save-pressure, .ac-scope .ac-save-move { font-size: 0.95rem; line-height: 1.45; color: var(--ac-ink); }
.ac-scope .ac-save-move { color: var(--ac-slate-70); margin-top: 4px; }
.ac-scope .ac-save-tag { display: inline-block; font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700; color: var(--ac-signal); margin-right: 6px; vertical-align: 1px; min-width: 64px; }
.ac-scope .ac-save-tag-move { color: var(--ac-money); }
.ac-scope .ac-save-meta { font-size: 0.8rem; color: var(--ac-slate-50); margin-top: 8px; }
.ac-scope .ac-save-amt { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.35rem; letter-spacing: -0.03em; color: var(--ac-ink); text-align: right; font-variant-numeric: tabular-nums; }
.ac-scope .ac-save-clock { display: flex; flex-direction: column; gap: 8px; }
.ac-scope .ac-save-bar { height: 10px; border-radius: 5px; background: var(--ac-slate-10); position: relative; overflow: hidden; }
.ac-scope .ac-save-bar span { position: absolute; inset: 0; width: calc(var(--days) / var(--max) * 100%); border-radius: 5px; background: linear-gradient(90deg, var(--ac-money-2), var(--ac-money)); transform-origin: left; }
.ac-scope .ac-save-days { font-size: 0.85rem; color: var(--ac-slate-70); font-variant-numeric: tabular-nums; }
.ac-scope .ac-save-days b { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.15rem; color: var(--ac-ink); letter-spacing: -0.02em; }
.ac-scope .ac-save-hero { background: var(--ac-ink); color: var(--ac-paper); }
.ac-scope .ac-save-hero:hover { background: var(--ac-ink-2); }
.ac-scope .ac-save-hero .ac-save-pressure, .ac-scope .ac-save-hero .ac-save-amt, .ac-scope .ac-save-hero .ac-save-days b { color: var(--ac-paper); }
.ac-scope .ac-save-hero .ac-save-move, .ac-scope .ac-save-hero .ac-save-days { color: rgba(250,250,247,0.8); }
.ac-scope .ac-save-hero .ac-save-when, .ac-scope .ac-save-hero .ac-save-meta { color: var(--ac-slate-30); }
.ac-scope .ac-save-hero .ac-save-tag { color: var(--ac-amber); }
.ac-scope .ac-save-hero .ac-save-tag-move { color: #6FD3A2; }
.ac-scope .ac-save-hero .ac-save-bar { background: rgba(255,255,255,0.12); }
.ac-scope .ac-save-hero .ac-save-bar span { background: linear-gradient(90deg, var(--ac-amber), var(--ac-amber-2)); }
.ac-scope .ac-saves-foot { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 20px 32px; background: var(--ac-paper); }
.ac-scope .ac-saves-sum { font-size: 0.95rem; color: var(--ac-slate-70); }
.ac-scope .ac-saves-sum b { color: var(--ac-ink); font-family: var(--ac-font-display); font-weight: 700; font-size: 1.05rem; }
.ac-scope .ac-saves-note { font-size: 0.78rem; color: var(--ac-slate-50); }
@supports (animation-timeline: view()) {
  .ac-scope .ac-save-bar span { animation: ac-sda-draw linear both; animation-timeline: view(); animation-range: entry 10% entry 90%; }
}
@media (max-width: 1023px) {
  .ac-scope .ac-saves-head { grid-template-columns: 1fr; }
  .ac-scope .ac-saves-axis { display: none; }
  .ac-scope .ac-save { grid-template-columns: minmax(0, 1fr) 84px; grid-template-areas: "when amt" "story story" "clock clock"; gap: 8px 16px; padding: 18px 20px; }
  .ac-scope .ac-save-when { grid-area: when; }
  .ac-scope .ac-save-story { grid-area: story; }
  .ac-scope .ac-save-amt { grid-area: amt; font-size: 1.15rem; }
  .ac-scope .ac-save-clock { grid-area: clock; margin-top: 4px; }
  .ac-scope .ac-save-tag { min-width: 0; }
}
@media (max-width: 720px) {
  .ac-scope .ac-saves-head { padding: 20px 18px 14px; }
  .ac-scope .ac-saves-title { font-size: 1.1rem; }
  .ac-scope .ac-save-pressure, .ac-scope .ac-save-move { font-size: 0.9rem; }
  .ac-scope .ac-saves-foot { padding: 16px 18px; flex-direction: column; gap: 6px; }
  /* first 4 saves shown; the rest behind one tap (progressive disclosure done once, for length, not for meaning) */
  .ac-scope .ac-saves:not(.open) article.ac-save:nth-of-type(n+5) { display: none; }
  .ac-scope .ac-saves-more { display: block !important; width: 100%; padding: 14px; text-align: center; font-weight: 600; color: var(--ac-ink); background: #fff; border: 0; border-top: 1px solid var(--ac-slate-10); font-family: inherit; font-size: 0.95rem; cursor: pointer; }
}
.ac-scope .ac-saves-more { display: none; }
@media (prefers-reduced-motion: reduce) { .ac-scope .ac-save-bar span { animation: none !important; } }
/* 82.1 · the pinned section label stays behind cards, and the saves card gets an opaque top so nothing shows through. */
@media (min-width: 1024px) { .ac-scope .ac-section-eyebrow { z-index: 1; } .ac-scope .ac-saves, .ac-scope .ac-credit-grid, .ac-scope .ac-steps, .ac-scope .ac-grid-3, .ac-scope .ac-testimonials, .ac-scope .ac-lenders, .ac-scope .ac-tr-stats { position: relative; z-index: 2; } }

/* ============================================================
   SPRINT 83 · HOW CREDIT READS YOUR DEAL (copy research, 20 Sep 2026)
   The costly signal. A criteria matrix a developer can verify, three mechanisms beside it. Precise about mechanism,
   ranges for anything market-set (Berkeley CMR 2024: precise-then-wrong costs more trust than a range). Tabular
   figures, one hairline per row, no zebra. Mobile: the table scrolls sideways, notes stack.
   ============================================================ */
.ac-scope .ac-credit-grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 3.6fr); gap: 28px; align-items: start; }
.ac-scope .ac-credit { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--ac-radius-lg); box-shadow: var(--ac-shadow-1), var(--ac-ring); overflow: hidden; font-size: 0.9rem; font-variant-numeric: tabular-nums; }
.ac-scope .ac-credit thead th { text-align: left; font-size: 0.78rem; white-space: nowrap; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ac-slate-50); font-weight: 600; padding: 16px 16px 12px; border-bottom: 1px solid var(--ac-slate-10); background: var(--ac-paper); }
.ac-scope .ac-credit thead th:first-child { padding-left: 22px; }
.ac-scope .ac-credit tbody th { text-align: left; font-weight: 600; color: var(--ac-ink); padding: 14px 16px 14px 22px; border-bottom: 1px solid var(--ac-slate-10); vertical-align: top; line-height: 1.35; }
.ac-scope .ac-credit tbody th small { display: block; font-weight: 400; color: var(--ac-slate-50); font-size: 0.78rem; margin-top: 2px; }
.ac-scope .ac-credit tbody td { padding: 14px 12px; border-bottom: 1px solid var(--ac-slate-10); color: var(--ac-slate-90); vertical-align: top; line-height: 1.35; white-space: nowrap; }
.ac-scope .ac-credit tbody td small { display: block; white-space: normal; color: var(--ac-slate-50); font-size: 0.78rem; margin-top: 2px; }
.ac-scope .ac-credit tbody tr:last-child th, .ac-scope .ac-credit tbody tr:last-child td { border-bottom: 0; }
.ac-scope .ac-credit tbody tr:hover { background: var(--ac-paper); }
.ac-scope .ac-credit-notes { display: flex; flex-direction: column; gap: 14px; }
.ac-scope .ac-credit-note { background: var(--ac-ink); color: var(--ac-paper); border-radius: var(--ac-radius-lg); padding: 22px 24px; }
.ac-scope .ac-credit-note-k { font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ac-amber); font-weight: 700; margin-bottom: 10px; }
.ac-scope .ac-credit-note p { margin: 0; font-size: 0.9rem; line-height: 1.55; color: rgba(250,250,247,0.86); font-variant-numeric: tabular-nums; }
.ac-scope .ac-credit-source { margin: 18px 0 0; font-size: 0.78rem; color: var(--ac-slate-50); max-width: 900px; line-height: 1.5; }
@supports (animation-timeline: view()) {
  .ac-scope .ac-credit tbody tr { animation: ac-sda-reveal linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
  .ac-scope .ac-credit-note:nth-child(2) { animation-range: entry 8% entry 44%; }
  .ac-scope .ac-credit-note:nth-child(3) { animation-range: entry 16% entry 52%; }
}
@media (max-width: 1023px) {
  .ac-scope .ac-credit-grid { grid-template-columns: 1fr; }
  .ac-scope .ac-credit { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .ac-scope .ac-credit table, .ac-scope .ac-credit thead, .ac-scope .ac-credit tbody { min-width: 720px; }
}
@media (max-width: 720px) {
  .ac-scope .ac-credit { font-size: 0.82rem; }
  .ac-scope .ac-credit tbody th { padding-left: 14px; }
  .ac-scope .ac-credit-note { padding: 18px; }
}

/* ============================================================
   SPRINT 85 · ONE STORY, THREE QUESTIONS (20 Sep 2026)
   Landing: hero carries Sam's face and one line; proof screen is four figures + the fastest save + one
   developer's sentence; process keeps the pinned clock and gains three rows of the credit matrix. The rest
   moved to /credit and /sam, which share this shell. Nothing here touches "Send Sam the deal".
   ============================================================ */
/* 85.1 Hero grid: words left, the broker right. Portrait is a link to /sam. */
.ac-scope .ac-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(240px, 26vw, 380px); gap: clamp(28px, 5vw, 72px); align-items: center; }
.ac-scope .ac-hero-portrait { display: block; position: relative; border-radius: var(--ac-radius-lg); overflow: hidden; box-shadow: var(--ac-shadow-3), 0 0 0 1px rgba(250,250,247,0.12); aspect-ratio: 4/5; background: var(--ac-ink); text-decoration: none; color: var(--ac-paper); transition: transform var(--ac-med) var(--ac-ease), box-shadow var(--ac-med) var(--ac-ease); }
.ac-scope .ac-hero-portrait:hover { transform: translateY(-3px); box-shadow: var(--ac-shadow-3), 0 0 0 1.5px rgba(250,250,247,0.35); }
.ac-scope .ac-hero-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; display: block; }
.ac-scope .ac-hero-portrait::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(11,31,51,0.88) 100%); pointer-events: none; }
.ac-scope .ac-hero-portrait-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 20px 18px; z-index: 1; display: flex; flex-direction: column; gap: 3px; }
.ac-scope .ac-hero-portrait-cap b { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.15rem; letter-spacing: -0.015em; }
.ac-scope .ac-hero-portrait-cap span { font-size: 0.8rem; color: rgba(250,250,247,0.78); line-height: 1.4; }
.ac-scope .ac-hero-portrait-cap em { font-style: normal; font-size: 0.82rem; font-weight: 600; color: var(--ac-amber); margin-top: 6px; }
.ac-scope .ac-hero .ac-hero-copy::before { inset: -40px -60px -40px -48px; }
@media (max-width: 900px) {
  .ac-scope .ac-hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .ac-scope .ac-hero-portrait { max-width: 280px; aspect-ratio: 4/4.4; }
}
@media (max-width: 720px) {
  .ac-scope .ac-hero-portrait { max-width: 100%; aspect-ratio: 16/11; }
  .ac-scope .ac-hero-portrait img { object-position: 50% 12%; }
  /* Sprint 56 hid the hero's second paragraph on phones; the new one-liner is the point, keep it. */
  .ac-hero .ac-body + .ac-body.ac-hero-phone { display: block !important; font-size: 0.9rem !important; }
}

/* 85.2 Proof screen: the one save + the pull quote. */
.ac-scope .ac-proof .ac-tr-stats { margin-bottom: 28px; }
.ac-scope .ac-saves-one { margin-top: 0; }
.ac-scope .ac-more-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 0.95rem; color: var(--ac-ink); text-decoration: none; border-bottom: 1.5px solid var(--ac-signal); padding-bottom: 1px; white-space: nowrap; }
.ac-scope .ac-more-link:hover { color: var(--ac-signal); }
.ac-scope .ac-saves-one .ac-saves-foot { align-items: center; }
.ac-scope .ac-pullquote { margin: 40px auto 0; max-width: 820px; padding: 0 0 0 28px; border-left: 3px solid var(--ac-amber); position: relative; z-index: 2; }
.ac-scope .ac-pullquote p { margin: 0 0 14px; font-family: var(--ac-font-display); font-weight: 600; font-size: clamp(1.2rem, 2vw, 1.6rem); line-height: 1.3; letter-spacing: -0.015em; color: var(--ac-ink); text-wrap: balance; }
.ac-scope .ac-pullquote footer { font-size: 0.9rem; color: var(--ac-slate-70); }
.ac-scope .ac-pullquote footer strong { color: var(--ac-ink); }
.ac-scope .ac-pullquote footer a { color: var(--ac-ink); font-weight: 600; text-decoration: none; border-bottom: 1.5px solid var(--ac-signal); }
.ac-scope .ac-pullquote footer a:hover { color: var(--ac-signal); }

/* 85.3 Process + the three tests credit runs first. */
.ac-scope .ac-process-credit { margin-top: clamp(48px, 6vw, 88px); position: relative; z-index: 2; }
.ac-scope .ac-credit-mini { background: #fff; border-radius: var(--ac-radius-lg); box-shadow: var(--ac-shadow-1), var(--ac-ring); overflow: hidden; }
.ac-scope .ac-credit-mini-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding: 28px 32px 18px; border-bottom: 1px solid var(--ac-slate-10); }
.ac-scope .ac-credit-mini .ac-saves-title { max-width: 30em; }
.ac-scope .ac-credit-mini .ac-credit { box-shadow: none; border-radius: 0; }
.ac-scope .ac-credit-mini .ac-credit thead th { background: #fff; }
.ac-scope .ac-credit-mini .ac-credit-source { padding: 14px 32px 20px; margin: 0; background: var(--ac-paper); border-top: 1px solid var(--ac-slate-10); max-width: none; }
@media (max-width: 1023px) {
  .ac-scope .ac-credit-mini .ac-credit { display: block; overflow-x: auto; }
  .ac-scope .ac-credit-mini .ac-credit thead, .ac-scope .ac-credit-mini .ac-credit tbody { min-width: 720px; }
}
@media (max-width: 720px) {
  .ac-scope .ac-credit-mini-head { flex-direction: column; align-items: flex-start; padding: 20px 18px 14px; }
  .ac-scope .ac-credit-mini .ac-credit-source { padding: 12px 18px 16px; }
  .ac-scope .ac-pullquote { padding-left: 18px; margin-top: 28px; }
}

/* 85.4 Sub-page hero (no aerial image): ink field, shorter, with an on-page contents row. */
.ac-scope .ac-page-hero { min-height: 0; padding-top: clamp(48px, 7vw, 88px); padding-bottom: clamp(40px, 5vw, 64px); display: block; }
.ac-scope .ac-page-hero .ac-hero-copy::before { display: none; }
.ac-scope .ac-page-toc { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 36px; }
.ac-scope .ac-page-toc a { font-size: 0.85rem; font-weight: 600; color: var(--ac-paper); text-decoration: none; padding: 9px 14px; border: 1px solid rgba(250,250,247,0.28); border-radius: 999px; transition: background var(--ac-fast), border-color var(--ac-fast); }
.ac-scope .ac-page-toc a:hover { background: rgba(250,250,247,0.1); border-color: rgba(250,250,247,0.6); }
.ac-scope .ac-sam-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.ac-scope .ac-sam-hero .ac-portrait-frame:last-child { margin-top: 40px; }
@media (max-width: 900px) { .ac-scope .ac-sam-hero-grid { grid-template-columns: 1fr; } .ac-scope .ac-sam-hero .ac-portrait-frame:last-child { margin-top: 0; } }
.ac-scope .ac-awards-line { max-width: 900px; margin: 20px auto 0; font-size: 0.9rem; color: var(--ac-slate-50); text-align: center; }
.ac-scope .ac-awards-line a { text-decoration: underline; color: inherit; }

/* 85.5 /sam method grid + the "will not" list, on the card system. */
.ac-scope .ac-method-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 32px; position: relative; z-index: 2; }
.ac-scope .ac-method { background: #fff; border-radius: var(--ac-radius-lg); padding: 28px 28px 24px; box-shadow: var(--ac-shadow-1), var(--ac-ring); transition: transform var(--ac-med) var(--ac-ease), box-shadow var(--ac-med) var(--ac-ease); }
.ac-scope .ac-method:hover { transform: translateY(-3px); box-shadow: var(--ac-shadow-2), var(--ac-ring); }
.ac-scope .ac-method h3 { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.15rem; letter-spacing: -0.01em; margin: 0 0 10px; color: var(--ac-ink); }
.ac-scope .ac-method p { margin: 0; font-size: 0.97rem; line-height: 1.55; color: var(--ac-slate-70); }
.ac-scope .ac-not { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; max-width: 820px; position: relative; z-index: 2; }
.ac-scope .ac-not li { padding: 16px 20px 16px 50px; position: relative; background: #fff; border-radius: 12px; font-size: 0.98rem; line-height: 1.5; color: var(--ac-slate-90); box-shadow: var(--ac-shadow-1), var(--ac-ring); }
.ac-scope .ac-not li::before { content: ''; position: absolute; left: 20px; top: 21px; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--ac-signal); background: linear-gradient(135deg, transparent 45%, var(--ac-signal) 45% 55%, transparent 55%); }
.ac-scope .ac-seed-note { margin-top: 16px; font-size: 0.8rem; color: var(--ac-slate-50); }
@media (max-width: 720px) { .ac-scope .ac-method-grid { grid-template-columns: 1fr; } }
@supports (animation-timeline: view()) {
  .ac-scope .ac-method, .ac-scope .ac-not li, .ac-scope .ac-pullquote { animation: ac-sda-reveal linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
  .ac-scope .ac-method:nth-child(2) { animation-range: entry 6% entry 44%; }
}
@media (prefers-reduced-motion: reduce) { .ac-scope .ac-method, .ac-scope .ac-not li, .ac-scope .ac-pullquote, .ac-scope .ac-hero-portrait { animation: none !important; transition: none !important; } }

/* 85.6 Landing rhythm: tighter vertical beats so the story lands inside ~4 screens on a 900px desktop. */
.ac-scope .ac-proof, .ac-scope .ac-process { padding: clamp(48px, 5.5vw, 76px) 0; }
.ac-scope .ac-proof .ac-tr-stats { margin-bottom: 20px; }
.ac-scope .ac-pullquote { margin-top: 32px; }
.ac-scope .ac-process-credit { margin-top: clamp(40px, 4.5vw, 60px); }
.ac-scope .ac-process .ac-step { padding: 22px 24px 22px 20px; }
.ac-scope .ac-steps { gap: 12px; }
.ac-scope #contact { padding: clamp(48px, 5.5vw, 76px) 0; }
@media (max-width: 720px) { .ac-scope .ac-saves-one .ac-save-hero { padding: 18px 20px; } }
