/* ============================================================================
   ASAP Capital · Sprint 88 · PREMIUM SCROLL LAYER (YDT.OS web dev)
   Layered ON TOP of brand.css. Adds motion and depth only: transforms, opacity,
   clip-path, box-shadow. No layout property changes, no copy changes, and
   nothing here touches "Send Sam the deal", /talk or /checkin (those anchors are
   byte-identical to Sprint 85). Every motion here switches off under
   prefers-reduced-motion, and the page reads perfectly with JS disabled because
   .ac-js gates every hidden-until-revealed state.

   Vocabulary (shared with mattpunter.com so the family moves as one):
     .ac-reveal            hidden until in view, then rises (JS adds .in)
     [data-stagger] > *    children rise one after another (--i set by JS)
     .ac-underline-draw    heading underline draws left to right when in view
     .ac-connector         vertical line that draws down the process steps
   ============================================================================ */

:root {
  --ac-prem-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ac-prem-dur: 720ms;
  --ac-prem-rise: 22px;
}

/* --- 1. Universal reveal (JS-gated so no-JS visitors see everything) ------ */
html.ac-js .ac-scope .ac-reveal {
  opacity: 0;
  transform: translateY(var(--ac-prem-rise));
  transition: opacity var(--ac-prem-dur) var(--ac-prem-ease) var(--ac-d, 0ms),
              transform var(--ac-prem-dur) var(--ac-prem-ease) var(--ac-d, 0ms);
  will-change: opacity, transform;
}
html.ac-js .ac-scope .ac-reveal.in { opacity: 1; transform: none; will-change: auto; }

html.ac-js .ac-scope [data-stagger] > * {
  opacity: 0;
  transform: translateY(var(--ac-prem-rise));
  transition: opacity var(--ac-prem-dur) var(--ac-prem-ease) calc(var(--i, 0) * 70ms),
              transform var(--ac-prem-dur) var(--ac-prem-ease) calc(var(--i, 0) * 70ms);
}
html.ac-js .ac-scope [data-stagger].in > * { opacity: 1; transform: none; }

/* --- 2. Hero cinema --------------------------------------------------------- */
/* Slow ken burns on the aerial in addition to the scroll parallax already there. */
.ac-scope .ac-hero-dark .ac-hero-image { overflow: hidden; }
.ac-scope .ac-hero-dark .ac-hero-image picture { display: block; height: 100%; }
@keyframes ac-prem-kb { from { transform: scale(1); } to { transform: scale(1.06); } }

/* Headline: each line rises with a soft clip so it reads as typeset, not faded. */
html.ac-js .ac-scope .ac-hero h1 .ac-line { display: inline-block; clip-path: inset(0 0 100% 0); transform: translateY(0.35em); animation: ac-prem-line 900ms var(--ac-prem-ease) both; animation-delay: calc(140ms + var(--i, 0) * 110ms); }
@keyframes ac-prem-line { to { clip-path: inset(-10% 0 -10% 0); transform: none; } }

/* The signal underline under "now" draws after the line lands. */
html.ac-js .ac-scope .ac-hero .ac-signal-underline { background-size: 0% 3px; background-repeat: no-repeat; background-position: 0 100%; animation: ac-prem-ul 640ms var(--ac-prem-ease) 720ms both; }
@keyframes ac-prem-ul { to { background-size: 100% 3px; } }

/* Portrait: depth. A gentle 3D tilt that follows the pointer (JS sets --rx/--ry), lifts on hover. */
.ac-scope .ac-hero-portrait { transform-style: preserve-3d; perspective: 900px; transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform 420ms var(--ac-prem-ease), box-shadow 420ms var(--ac-prem-ease); }
.ac-scope .ac-hero-portrait:hover { box-shadow: 0 40px 90px -30px rgba(0,0,0,0.65), 0 0 0 1px rgba(250,250,247,0.18); }
.ac-scope .ac-hero-portrait img { transition: transform 900ms var(--ac-prem-ease); }
.ac-scope .ac-hero-portrait:hover img { transform: scale(1.03); }
.ac-scope .ac-hero-portrait::after { content: ''; position: absolute; inset: 0; background: linear-gradient(115deg, rgba(255,255,255,0) 40%, rgba(255,255,255,0.10) 50%, rgba(255,255,255,0) 60%); transform: translateX(-120%); transition: transform 1100ms var(--ac-prem-ease); pointer-events: none; }
.ac-scope .ac-hero-portrait:hover::after { transform: translateX(120%); }

/* Hero stat cards: arrive after the copy, lift on hover, unit glows. */
.ac-scope .ac-hero-dark .ac-stat { transition: transform 360ms var(--ac-prem-ease), background 360ms, border-color 360ms; }
.ac-scope .ac-hero-dark .ac-stat:hover { transform: translateY(-4px); background: rgba(250,250,247,0.10); border-color: rgba(250,250,247,0.26); }

/* --- 3. Track record ---------------------------------------------------------- */
/* Figures: a hairline in forest green draws under each value as it counts. */
.ac-scope .ac-tr-stat-value { position: relative; display: inline-block; }
.ac-scope .ac-tr-stat-value::after { content: ''; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: var(--ac-money); transform: scaleX(0); transform-origin: left; transition: transform 900ms var(--ac-prem-ease) 200ms; }
.ac-scope .in .ac-tr-stat-value::after, .ac-scope .ac-tr-stat.in .ac-tr-stat-value::after { transform: scaleX(1); }
.ac-scope .ac-tr-stat { transition: background 300ms, transform 360ms var(--ac-prem-ease); }
.ac-scope .ac-tr-stat:hover { transform: translateY(-2px); }

/* Heading underlines draw in when the heading is in view (money green and signal). */
html.ac-js .ac-scope .ac-underline-draw .ac-money-underline,
html.ac-js .ac-scope .ac-underline-draw .ac-signal-underline { background-size: 0% 3px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size 900ms var(--ac-prem-ease) 260ms; }
html.ac-js .ac-scope .ac-underline-draw.in .ac-money-underline,
html.ac-js .ac-scope .ac-underline-draw.in .ac-signal-underline { background-size: 100% 3px; }

/* Section eyebrow rule draws in. */
html.ac-js .ac-scope .ac-section-eyebrow::before { transform: scaleX(0); transform-origin: left; transition: transform 700ms var(--ac-prem-ease) 80ms; }
html.ac-js .ac-scope .in .ac-section-eyebrow::before, html.ac-js .ac-scope .ac-section-eyebrow.in::before { transform: scaleX(1); }

/* Pull quote: the amber rule draws down as the words arrive. */
html.ac-js .ac-scope .ac-pullquote { border-left-color: transparent; background: linear-gradient(var(--ac-amber), var(--ac-amber)) 0 0 / 3px 0% no-repeat; transition: background-size 900ms var(--ac-prem-ease) 120ms; }
html.ac-js .ac-scope .ac-pullquote.in { background-size: 3px 100%; }

/* --- 4. Process --------------------------------------------------------------- */
/* A connector line down the left of the steps that draws as you scroll (JS sets --ac-progress 0..1). */
.ac-scope .ac-steps { position: relative; }
.ac-scope .ac-steps::before { content: ''; position: absolute; left: 27px; top: 40px; bottom: 60px; width: 2px; z-index: 0; background: linear-gradient(to bottom, var(--ac-signal) 0%, var(--ac-signal) calc(var(--ac-progress, 0) * 100%), var(--ac-slate-10) calc(var(--ac-progress, 0) * 100%), var(--ac-slate-10) 100%); border-radius: 2px; transition: background 200ms linear; pointer-events: none; }
@media (max-width: 1023px) { .ac-scope .ac-steps::before { display: none; } }
.ac-scope .ac-step { transition: transform 420ms var(--ac-prem-ease), box-shadow 420ms var(--ac-prem-ease), background 300ms; z-index: 1; }
.ac-scope .ac-step.is-active { transform: translateX(6px) scale(1.01); box-shadow: 0 24px 60px -30px rgba(11,31,51,0.45), 0 0 0 1px rgba(229,52,28,0.22); }
.ac-scope .ac-step.is-active .ac-step-num { color: var(--ac-signal); }
.ac-scope .ac-step.is-done .ac-step-num { color: var(--ac-money); }
.ac-scope .ac-step.is-done .ac-step-num::after { content: ' ✓'; font-size: 0.6em; vertical-align: super; color: var(--ac-money); }
.ac-scope .ac-step.is-done::before { background: var(--ac-money); }
.ac-scope .ac-step.is-active::before { background: var(--ac-signal); }

/* The pinned clock: value ticks with a soft flash when it changes. */
.ac-scope .ac-process-clock-value { transition: color 240ms; }
.ac-scope .ac-process-clock-value.tick { color: var(--ac-signal); }
.ac-scope .ac-process-clock { transition: box-shadow 420ms var(--ac-prem-ease); }
.ac-scope .ac-process-clock.live { box-shadow: 0 20px 50px -30px rgba(229,52,28,0.35), var(--ac-ring); }

/* --- 5. Credit mini and closer --------------------------------------------------- */
.ac-scope .ac-process-credit > * { transition: transform 420ms var(--ac-prem-ease), box-shadow 420ms var(--ac-prem-ease); }
.ac-scope .ac-process-credit > *:hover { transform: translateY(-3px); }

/* Closer: slow gradient drift behind the CTA so the dark block breathes. */
.ac-scope .ac-cta-block { position: relative; isolation: isolate; overflow: hidden; }
.ac-scope .ac-cta-block::before { content: ''; position: absolute; inset: -40%; z-index: -1; background: radial-gradient(ellipse at 30% 30%, rgba(229,52,28,0.16) 0%, rgba(229,52,28,0) 45%), radial-gradient(ellipse at 75% 70%, rgba(242,163,58,0.12) 0%, rgba(242,163,58,0) 50%); animation: ac-prem-drift 22s ease-in-out infinite alternate; pointer-events: none; }
@keyframes ac-prem-drift { from { transform: translate(0, 0) rotate(0deg); } to { transform: translate(6%, -4%) rotate(6deg); } }

/* --- 6. Nav: active section highlight as you scroll (JS toggles .is-current) ------- */
.ac-page #site-header nav a { position: relative; transition: opacity 240ms; }
.ac-page #site-header nav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -8px; height: 2px; background: #F2A33A; transform: scaleX(0); transform-origin: left; transition: transform 360ms var(--ac-prem-ease); }
.ac-page #site-header nav a.is-current::after { transform: scaleX(1); }
.ac-page #site-header nav:hover a:not(:hover) { opacity: 0.6; }

/* --- 7. Buttons: the arrow leads, the button lifts. Anchors untouched, CSS only. ----- */
.ac-scope .ac-btn { transition: transform 260ms var(--ac-prem-ease), box-shadow 260ms var(--ac-prem-ease), background 200ms; }
.ac-scope .ac-btn:hover { transform: translateY(-2px); }
.ac-scope .ac-btn-signal:hover { box-shadow: 0 16px 36px -14px rgba(229,52,28,0.6); }
.ac-scope .ac-btn .ac-arrow { display: inline-block; transition: transform 260ms var(--ac-prem-ease); }
.ac-scope .ac-btn:hover .ac-arrow { transform: translateX(4px); }
.ac-page .ac-nav-cta { transition: transform 240ms var(--ac-prem-ease), box-shadow 240ms var(--ac-prem-ease); }
.ac-page .ac-nav-cta:hover { transform: translateY(-1px); box-shadow: 0 12px 28px -12px rgba(229,52,28,0.6); }

/* --- 8. Reduced motion: everything above goes still. ------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html.ac-js .ac-scope .ac-reveal, html.ac-js .ac-scope [data-stagger] > * { opacity: 1 !important; transform: none !important; transition: none !important; }
  html.ac-js .ac-scope .ac-hero h1 .ac-line { animation: none !important; clip-path: none !important; transform: none !important; }
  html.ac-js .ac-scope .ac-hero .ac-signal-underline, html.ac-js .ac-scope .ac-underline-draw .ac-money-underline, html.ac-js .ac-scope .ac-underline-draw .ac-signal-underline { animation: none !important; background-size: 100% 3px !important; transition: none !important; }
  .ac-scope .ac-hero-dark .ac-hero-image picture, .ac-scope .ac-cta-block::before { animation: none !important; }
  .ac-scope .ac-hero-portrait { transform: none !important; transition: none !important; }
  .ac-scope .ac-hero-portrait::after { display: none; }
  .ac-scope .ac-tr-stat-value::after, .ac-scope .ac-section-eyebrow::before { transform: scaleX(1) !important; transition: none !important; }
  html.ac-js .ac-scope .ac-pullquote { background-size: 3px 100% !important; transition: none !important; }
  .ac-scope .ac-step, .ac-scope .ac-btn, .ac-scope .ac-btn .ac-arrow, .ac-page .ac-nav-cta, .ac-page #site-header nav a::after { transition: none !important; }
  .ac-scope .ac-step.is-active { transform: none !important; }
}

/* --- 9. Sprint 89 · Hero film. Explicit stacking inside .ac-hero-image: poster 0, film 1, brand gradient 2.
   The poster shows until the film has a playing frame, then fades out so the film is what you see. --- */
.ac-scope .ac-hero-video { position: absolute; inset: 0; }
.ac-scope .ac-hero-video .ac-hero-poster { position: absolute; inset: 0; z-index: 0; transition: opacity 1200ms var(--ac-prem-ease); }
.ac-scope .ac-hero-video .ac-hero-poster img { width: 100%; height: 100%; object-fit: cover; }
.ac-scope .ac-hero-video .ac-hero-film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; opacity: 0; transition: opacity 1200ms var(--ac-prem-ease); filter: saturate(0.92) contrast(1.04); }
.ac-scope .ac-hero-video .ac-hero-film.is-playing { opacity: 1; }
.ac-scope .ac-hero-video.film-on .ac-hero-poster { opacity: 0; }
.ac-scope .ac-hero-dark .ac-hero-video::after { z-index: 2; }
@media (prefers-reduced-motion: reduce) { .ac-scope .ac-hero-video .ac-hero-film { display: none; } .ac-scope .ac-hero-video .ac-hero-poster { opacity: 1 !important; } }
/* Let the film be seen: lighter wash on the left so the copy still reads, clear on the right where Sam's portrait sits. */
.ac-scope .ac-hero-dark .ac-hero-video::after { background: linear-gradient(90deg, rgba(11,31,51,0.88) 0%, rgba(11,31,51,0.66) 38%, rgba(11,31,51,0.18) 70%, rgba(11,31,51,0.35) 100%), linear-gradient(180deg, rgba(11,31,51,0.15) 0%, rgba(11,31,51,0) 45%, var(--ac-ink) 100%) !important; }

/* --- 10. Sprint 89 · /sam "The desk" frame. --- */
.ac-scope .ac-sam-desk { padding-top: 0; }
.ac-scope .ac-desk-frame { margin: 0; position: relative; border-radius: var(--ac-radius-lg); overflow: hidden; box-shadow: var(--ac-shadow-3), var(--ac-ring); background: var(--ac-ink); }
.ac-scope .ac-desk-frame img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }
.ac-scope .ac-desk-frame figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: clamp(18px, 3vw, 36px); display: grid; gap: 6px; color: var(--ac-paper); background: linear-gradient(180deg, rgba(11,31,51,0) 0%, rgba(11,31,51,0.82) 55%, rgba(11,31,51,0.94) 100%); }
.ac-scope .ac-desk-frame figcaption .ac-section-eyebrow { color: #F2A33A; margin: 0; }
.ac-scope .ac-desk-frame figcaption b { font-family: var(--ac-font-display); font-weight: 700; font-size: clamp(1.15rem, 2.2vw, 1.6rem); letter-spacing: -0.015em; max-width: 30ch; }
.ac-scope .ac-desk-frame figcaption span:last-child { font-size: 0.95rem; color: rgba(250,250,247,0.82); max-width: 62ch; line-height: 1.5; }
@media (max-width: 720px) { .ac-scope .ac-desk-frame img { aspect-ratio: 4/3; } .ac-scope .ac-desk-frame figcaption span:last-child { display: none; } }

/* --- 11. Sprint 89 · Speed is the lever. The red button is in the header from the first frame; the phone
   number leaves the header (it stays in the footer for compliance). Send, not call. --- */
.ac-page .ac-nav-cta { opacity: 1 !important; transform: none !important; pointer-events: auto !important; padding: 11px 18px; font-size: 0.9rem; box-shadow: 0 10px 26px -12px rgba(229,52,28,0.55); }
.ac-page #site-header a[href^="tel:"] { display: none !important; }
.ac-page #site-header .ac-nav-cta { margin-left: 4px; }

/* --- 12. Sprint 89c · Steady film. No transform on the film, ever. Kill the poster animations while the film is on
   (they were fighting object-fit: cover and jittering the frame on scroll). Portrait leaves the hero for /sam. --- */
.ac-scope .ac-hero-video .ac-hero-film { animation: none !important; transform: none !important; will-change: opacity; backface-visibility: hidden; }
.ac-scope .ac-hero-video.film-on .ac-hero-poster, .ac-scope .ac-hero-video.film-on .ac-hero-poster img, .ac-scope .ac-hero-video.film-on picture { animation: none !important; transform: none !important; }
.ac-scope .ac-hero-dark .ac-hero-video picture { animation: none !important; }
.ac-scope .ac-hero-grid { grid-template-columns: minmax(0, 1fr) !important; }
.ac-scope .ac-hero-who { display: inline-flex; align-items: center; gap: 12px; margin-top: 22px; text-decoration: none; color: var(--ac-paper); }
.ac-scope .ac-hero-who img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px rgba(250,250,247,0.25); }
.ac-scope .ac-hero-who > span { display: grid; line-height: 1.25; }
.ac-scope .ac-hero-who b { font-family: var(--ac-font-display); font-weight: 700; font-size: 0.98rem; }
.ac-scope .ac-hero-who > span > span { font-size: 0.82rem; color: #F2A33A; }
.ac-scope .ac-hero-who:hover > span > span { text-decoration: underline; }

/* --- 13. Sprint 90 · The home page is the sales enquiry. Three proof cards under the four hours; the detail lives on
   /sam and /credit. Static step list on /credit (no pinned clock there). --- */
.ac-scope .ac-enquiry-proof { margin-top: clamp(40px, 5vw, 72px); position: relative; z-index: 2; }
.ac-scope .ac-enquiry-proof-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ac-scope .ac-enquiry-card { display: grid; gap: 10px; align-content: start; padding: 26px 26px 24px; border-radius: var(--ac-radius-lg); background: #fff; box-shadow: var(--ac-shadow-1), var(--ac-ring); text-decoration: none; color: var(--ac-ink); transition: transform var(--ac-med, 320ms) var(--ac-ease, ease), box-shadow var(--ac-med, 320ms) var(--ac-ease, ease); }
.ac-scope .ac-enquiry-card:hover { transform: translateY(-3px); box-shadow: var(--ac-shadow-3, 0 24px 48px -24px rgba(11,31,51,0.35)), var(--ac-ring); }
.ac-scope .ac-enquiry-card b { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.2rem; letter-spacing: -0.015em; line-height: 1.2; }
.ac-scope .ac-enquiry-card > span { font-size: 0.95rem; color: var(--ac-slate-70); line-height: 1.55; }
.ac-scope .ac-enquiry-card em { font-style: normal; font-weight: 700; font-size: 0.9rem; color: var(--ac-signal); margin-top: 6px; }
.ac-scope .ac-enquiry .ac-step-time { color: var(--ac-signal); }
.ac-scope .ac-steps-static { padding: 0; }
.ac-scope .ac-steps-static .ac-step { min-height: 0; }
@media (max-width: 900px) { .ac-scope .ac-enquiry-proof-grid { grid-template-columns: 1fr; } }

/* --- 14. Sprint 91 · Inline hero film. Copy left, framed film card right, stats under both (Carla: like yourdigitalteam.ai).
   The full-bleed background film and its poster are gone; the hero is solid ink. --- */
.ac-scope .ac-hero-dark { background: var(--ac-ink); }
.ac-scope .ac-hero-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 6fr) !important; gap: clamp(28px, 5vw, 72px); align-items: center; }
.ac-scope .ac-hero-card { position: relative; margin: 0; border-radius: 22px; overflow: hidden; background: #08172a; box-shadow: 0 40px 80px -32px rgba(0,0,0,0.65), 0 0 0 1px rgba(250,250,247,0.10), inset 0 0 0 1px rgba(250,250,247,0.04); aspect-ratio: 16 / 9; isolation: isolate; }
.ac-scope .ac-hero-card .ac-hero-film { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 1; animation: none !important; transform: none !important; }
.ac-scope .ac-hero-card-pill { position: absolute; z-index: 2; top: 14px; left: 14px; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 10px; border-radius: 999px; background: rgba(11,31,51,0.82); color: var(--ac-paper); font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; backdrop-filter: blur(6px); box-shadow: 0 0 0 1px rgba(250,250,247,0.12); }
.ac-scope .ac-hero-card-cap { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; margin: 0; padding: 40px 18px 14px; font-size: 0.82rem; color: rgba(250,250,247,0.86); background: linear-gradient(180deg, rgba(8,23,42,0) 0%, rgba(8,23,42,0.85) 100%); }
.ac-scope .ac-hero-stats { margin-top: clamp(40px, 5vw, 64px) !important; }
@media (max-width: 960px) {
  .ac-scope .ac-hero-grid { grid-template-columns: 1fr !important; gap: 28px; }
  .ac-scope .ac-hero-card { border-radius: 16px; }
  .ac-scope .ac-hero-card-cap { display: none; }
}

/* --- 15. Sprint 92 · The browse layer. Content scrolls on the left, the red button stays pinned on the right.
   (Carla: "the scroll through needs to be sticky on parts where there is a hero line on the right and the steps to view
   scroll through on the left ... the main reason the visitor is there is to hit that red button".) --- */
.ac-scope .ac-browse-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(300px, 4fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.ac-scope .ac-browse-pin { position: sticky; top: 104px; align-self: start; }
.ac-scope .ac-pin-card { background: var(--ac-ink); color: var(--ac-paper); border-radius: 22px; padding: clamp(24px, 3vw, 36px); box-shadow: 0 30px 60px -30px rgba(11,31,51,0.6), 0 0 0 1px rgba(11,31,51,0.08); display: grid; gap: 0; }
.ac-scope .ac-pin-card .ac-h2 { font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.15; letter-spacing: -0.02em; }
.ac-scope .ac-btn-wide { justify-content: center; width: 100%; }
.ac-scope .ac-pin-link { display: inline-block; margin-top: 16px; color: #F2A33A; font-weight: 600; font-size: 0.92rem; text-decoration: none; }
.ac-scope .ac-pin-link:hover { text-decoration: underline; }
.ac-scope .ac-browse-alt { background: #F3F4F1; }

/* Interactive video cards (seed projects). Poster at rest; the site moves on hover, focus or tap. */
.ac-scope .ac-vcards { display: grid; grid-template-columns: 1fr; gap: 22px; max-width: 720px; }
.ac-scope .ac-vcard { display: grid; grid-template-columns: minmax(0, 11fr) minmax(0, 9fr); }
.ac-scope .ac-vcard-media { aspect-ratio: 4 / 3; height: 100%; }
.ac-scope .ac-vcard-body { align-content: center; padding: 22px 24px; }
.ac-scope .ac-vcard { background: #fff; border-radius: 20px; overflow: hidden; box-shadow: var(--ac-shadow-1), var(--ac-ring); transition: transform var(--ac-med, 320ms) var(--ac-ease, ease), box-shadow var(--ac-med, 320ms) var(--ac-ease, ease); }
.ac-scope .ac-vcard:hover, .ac-scope .ac-vcard.is-playing { transform: translateY(-4px); box-shadow: 0 30px 50px -28px rgba(11,31,51,0.45), var(--ac-ring); }
.ac-scope .ac-vcard-media { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; padding: 0; margin: 0; background: var(--ac-ink); cursor: pointer; overflow: hidden; text-align: left; }
.ac-scope .ac-vcard-film { display: block; width: 100%; height: 100%; object-fit: cover; transform: none !important; animation: none !important; }
.ac-scope .ac-vcard-pill { position: absolute; top: 12px; left: 12px; z-index: 2; padding: 5px 10px; border-radius: 999px; background: rgba(11,31,51,0.82); color: var(--ac-paper); font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; }
.ac-scope .ac-vcard-demo { position: absolute; top: 12px; right: 12px; z-index: 2; padding: 4px 9px; border-radius: 6px; background: #F2A33A; color: var(--ac-ink); font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700; }
.ac-scope .ac-vcard-play { position: absolute; left: 50%; top: 50%; z-index: 2; width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 50%; background: rgba(250,250,247,0.92); box-shadow: 0 10px 30px -10px rgba(0,0,0,0.6); transition: opacity 240ms ease, transform 240ms ease; }
.ac-scope .ac-vcard-play::after { content: ""; position: absolute; left: 22px; top: 17px; border-style: solid; border-width: 11px 0 11px 18px; border-color: transparent transparent transparent var(--ac-signal); }
.ac-scope .ac-vcard.is-playing .ac-vcard-play { opacity: 0; transform: scale(0.8); }
.ac-scope .ac-vcard-body { padding: 18px 20px 20px; display: grid; gap: 8px; }
.ac-scope .ac-vcard-title { margin: 0; font-family: var(--ac-font-display); font-weight: 700; font-size: 1.1rem; letter-spacing: -0.015em; color: var(--ac-ink); }
.ac-scope .ac-vcard-meta { font-size: 0.86rem; color: var(--ac-slate-70); }
.ac-scope .ac-vcard-meta b { font-family: var(--ac-font-mono); color: var(--ac-ink); }
.ac-scope .ac-vcard-meta em { font-style: normal; color: var(--ac-signal); font-weight: 600; }
.ac-scope .ac-vcard-meta > span { color: var(--ac-slate-30); padding: 0 4px; }
.ac-scope .ac-vcard-story { margin: 0; font-size: 0.92rem; line-height: 1.55; color: var(--ac-slate-70); }

/* Awards flashcard deck: one card in front, the rest fanned behind; loops on a timer, taps advance. */
.ac-scope .ac-flashdeck { position: relative; max-width: 460px; }
.ac-scope .ac-flash-stack { list-style: none; margin: 0; padding: 0; position: relative; height: 320px; }
.ac-scope .ac-flash { position: absolute; inset: 0; display: grid; grid-template-columns: 96px 1fr; grid-template-rows: auto auto auto auto; column-gap: 20px; align-content: center; padding: 28px 30px; border-radius: 22px; background: #fff; box-shadow: 0 30px 60px -30px rgba(11,31,51,0.4), var(--ac-ring); transform: translateY(calc(var(--k, 1) * 14px)) scale(calc(1 - var(--k, 1) * 0.04)); opacity: calc(1 - var(--k, 1) * 0.28); z-index: calc(10 - var(--k, 1)); transition: transform 600ms var(--ac-ease, ease), opacity 600ms var(--ac-ease, ease); cursor: pointer; }
.ac-scope .ac-flash.is-front { --k: 0; }
.ac-scope .ac-flash.is-leaving { transform: translateX(-40px) rotate(-4deg) scale(0.96); opacity: 0; z-index: 11; }
.ac-scope .ac-flash img { grid-row: 1 / 5; width: 96px; height: 96px; align-self: center; }
.ac-scope .ac-flash-year { font-family: var(--ac-font-mono); font-size: 0.8rem; letter-spacing: 0.12em; color: var(--ac-slate-50); }
.ac-scope .ac-flash-title { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.35rem; letter-spacing: -0.02em; line-height: 1.15; color: var(--ac-ink); margin: 4px 0; }
.ac-scope .ac-flash-body { font-size: 0.95rem; color: var(--ac-slate-70); }
.ac-scope .ac-flash-result { justify-self: start; margin-top: 12px; padding: 5px 11px; border-radius: 999px; font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; }
.ac-scope .ac-flash-result.winner { background: #E7F6EC; color: #14532d; }
.ac-scope .ac-flash-result.finalist { background: #FFF4E0; color: #8a4b00; }
.ac-scope .ac-flash-result.profiled { background: #EEF2F7; color: var(--ac-ink); }
.ac-scope .ac-flash-dots { display: flex; gap: 8px; margin-top: 18px; padding-left: 4px; }
.ac-scope .ac-flash-dots span { width: 8px; height: 8px; border-radius: 50%; background: var(--ac-slate-30); transition: background 300ms ease, transform 300ms ease; }
.ac-scope .ac-flash-dots span.on { background: var(--ac-signal); transform: scale(1.25); }

@media (max-width: 960px) {
  .ac-scope .ac-browse-grid { grid-template-columns: 1fr; }
  .ac-scope .ac-browse-pin { position: static; order: -1; }
  .ac-scope .ac-vcards { grid-template-columns: 1fr; max-width: none; }
  .ac-scope .ac-vcard { grid-template-columns: 1fr; }
  .ac-scope .ac-vcard-media { aspect-ratio: 16 / 9; height: auto; }
  .ac-scope .ac-flash-stack { height: 360px; }
  .ac-scope .ac-flash { grid-template-columns: 72px 1fr; padding: 22px; }
  .ac-scope .ac-flash img { width: 72px; height: 72px; }
}
@media (prefers-reduced-motion: reduce) { .ac-scope .ac-flash { transition: none; } }

/* --- 16. Sprint 92 · Same rhythm everywhere: steps scroll on the left, the pinned line and the red button sit on the right. --- */
.ac-scope .ac-enquiry .ac-process-grid { grid-template-columns: minmax(0, 7fr) minmax(300px, 4fr); }
.ac-scope .ac-enquiry .ac-process-pin { order: 2; }
.ac-scope .ac-enquiry .ac-steps { order: 1; }
.ac-scope .ac-enquiry .ac-process-pin .ac-pin-red { margin-top: 22px; }
@media (max-width: 960px) { .ac-scope .ac-enquiry .ac-process-grid { grid-template-columns: 1fr; } .ac-scope .ac-enquiry .ac-process-pin { order: 0; } }

/* --- 17. Sprint 93 · Trust list card under the hero. One card, four cells, in place of four tiles. Saves space. --- */
.ac-scope .ac-trust-list { margin-top: clamp(36px, 4.5vw, 56px); background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.10); border-radius: 18px; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.ac-scope .ac-trust-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr) minmax(0, 1fr) minmax(0, 1.7fr); }
.ac-scope .ac-trust-cell { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: center; padding: 18px 22px; border-left: 1px solid rgba(255,255,255,0.10); }
.ac-scope .ac-trust-cell:first-child { border-left: 0; }
.ac-scope .ac-trust-cell b { font-family: var(--ac-font-mono); font-weight: 700; font-size: clamp(1.4rem, 2vw, 1.85rem); letter-spacing: -0.03em; color: var(--ac-paper); font-variant-numeric: tabular-nums; white-space: nowrap; line-height: 1; }
.ac-scope .ac-trust-cell > span { font-size: 0.82rem; line-height: 1.4; color: rgba(250,250,247,0.74); }
.ac-scope .ac-trust-awards > span { font-size: 0.78rem; line-height: 1.5; }
.ac-scope .ac-trust-awards em { font-style: normal; font-weight: 600; color: var(--ac-paper); }
@media (max-width: 960px) {
  .ac-scope .ac-trust-row { grid-template-columns: 1fr 1fr; }
  .ac-scope .ac-trust-cell { border-left: 0; border-top: 1px solid rgba(255,255,255,0.10); }
  .ac-scope .ac-trust-cell:nth-child(-n+2) { border-top: 0; }
  .ac-scope .ac-trust-cell:nth-child(even) { border-left: 1px solid rgba(255,255,255,0.10); }
  .ac-scope .ac-trust-awards { grid-column: 1 / -1; border-left: 0 !important; }
}
@media (max-width: 560px) { .ac-scope .ac-trust-row { grid-template-columns: 1fr; } .ac-scope .ac-trust-cell { border-left: 0 !important; } .ac-scope .ac-trust-cell:nth-child(2) { border-top: 1px solid rgba(255,255,255,0.10); } }

/* --- 18. Sprint 94 · Carla: "swap these around have the sticky scroll on the right hand side always". The pinned line and
   red button sit on the LEFT; the scrolling content (steps, deal cards, flashcards) is on the RIGHT, in every browse section. --- */
.ac-scope .ac-browse-grid { grid-template-columns: minmax(300px, 4fr) minmax(0, 7fr); }
.ac-scope .ac-browse-pin { order: 1; }
.ac-scope .ac-browse-scroll { order: 2; }
.ac-scope .ac-enquiry .ac-process-grid { grid-template-columns: minmax(300px, 4fr) minmax(0, 7fr); }
.ac-scope .ac-enquiry .ac-process-pin { order: 1; }
.ac-scope .ac-enquiry .ac-steps { order: 2; }
.ac-scope .ac-vcards { max-width: none; }
@media (max-width: 960px) {
  .ac-scope .ac-browse-pin, .ac-scope .ac-enquiry .ac-process-pin { order: 0; }
  .ac-scope .ac-browse-scroll, .ac-scope .ac-enquiry .ac-steps { order: 1; }
}

/* --- 19. Sprint 95 · /credit: the four stoppers with hierarchy; facility cards with hierarchy; saves as a short strip
   beside a huge pinned line. /sam: one awards surface, the deck. --- */
.ac-scope .ac-stoppers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ac-scope .ac-stopper { position: relative; display: grid; grid-template-columns: 72px 1fr; gap: 0 22px; padding: 30px 30px 26px; border-radius: 22px; background: #fff; box-shadow: var(--ac-shadow-1), var(--ac-ring); overflow: hidden; transition: transform var(--ac-med, 320ms) var(--ac-ease, ease), box-shadow var(--ac-med, 320ms) var(--ac-ease, ease); }
.ac-scope .ac-stopper::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: linear-gradient(180deg, var(--ac-signal), #F2A33A); }
.ac-scope .ac-stopper:hover { transform: translateY(-4px); box-shadow: var(--ac-shadow-3), var(--ac-ring); }
.ac-scope .ac-stopper-n { font-family: var(--ac-font-display); font-weight: 700; font-size: 2.6rem; letter-spacing: -0.04em; line-height: 0.9; color: var(--ac-slate-30); }
.ac-scope .ac-stopper h3 { margin: 0 0 12px; font-family: var(--ac-font-display); font-weight: 700; font-size: 1.55rem; letter-spacing: -0.02em; color: var(--ac-ink); line-height: 1.1; }
.ac-scope .ac-stopper p { margin: 0 0 10px; font-size: 0.95rem; line-height: 1.55; color: var(--ac-slate-70); }
.ac-scope .ac-stopper p b { display: block; font-family: var(--ac-font-mono); font-weight: 700; font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 3px; }
.ac-scope .ac-stopper-what b { color: var(--ac-signal); }
.ac-scope .ac-stopper-why b { color: #14532d; }
.ac-scope .ac-stopper-why { color: var(--ac-ink); }
.ac-scope .ac-stopper-kicker { grid-column: 2; justify-self: start; margin-top: 6px; padding: 5px 11px; border-radius: 999px; background: var(--ac-paper-2, #F3F4F1); font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ac-slate-70); }

.ac-scope .ac-facilities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.ac-scope .ac-facility { position: relative; display: grid; align-content: start; gap: 8px; padding: 26px 26px 24px; border-radius: 20px; background: linear-gradient(180deg, #fff 0%, #FBFBF9 100%); box-shadow: var(--ac-shadow-1), var(--ac-ring); transition: transform var(--ac-med, 320ms) var(--ac-ease, ease), box-shadow var(--ac-med, 320ms) var(--ac-ease, ease); }
.ac-scope .ac-facility:hover { transform: translateY(-4px); box-shadow: var(--ac-shadow-3), var(--ac-ring); }
.ac-scope .ac-facility-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.ac-scope .ac-facility-n { font-family: var(--ac-font-mono); font-weight: 700; font-size: 0.8rem; letter-spacing: 0.1em; color: var(--ac-signal); }
.ac-scope .ac-facility-binds { font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ac-slate-50); text-align: right; }
.ac-scope .ac-facility-binds b { color: var(--ac-ink); font-weight: 700; }
.ac-scope .ac-facility h3 { margin: 0; font-family: var(--ac-font-display); font-weight: 700; font-size: 1.45rem; letter-spacing: -0.02em; color: var(--ac-ink); line-height: 1.1; }
.ac-scope .ac-facility-promise { margin: 0; font-size: 1.02rem; font-weight: 600; line-height: 1.4; color: var(--ac-ink); }
.ac-scope .ac-facility-detail { margin: 4px 0 0; font-size: 0.9rem; line-height: 1.55; color: var(--ac-slate-70); }

.ac-scope .ac-pin-huge .ac-display { font-size: clamp(2.6rem, 4.6vw, 4.2rem); line-height: 0.98; }
.ac-scope .ac-hits { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.ac-scope .ac-hit { display: grid; grid-template-columns: 84px 1fr; gap: 18px; align-items: center; padding: 18px 22px 18px 18px; border-radius: 16px; background: #fff; box-shadow: var(--ac-shadow-1), var(--ac-ring); }
.ac-scope .ac-hit.is-hero { background: var(--ac-ink); color: var(--ac-paper); }
.ac-scope .ac-hit-days { display: grid; justify-items: center; align-content: center; height: 84px; border-radius: 14px; background: var(--ac-paper-2, #F3F4F1); }
.ac-scope .ac-hit.is-hero .ac-hit-days { background: var(--ac-signal); color: #fff; }
.ac-scope .ac-hit-days b { font-family: var(--ac-font-mono); font-weight: 700; font-size: 1.9rem; letter-spacing: -0.04em; line-height: 1; }
.ac-scope .ac-hit-days span { font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.7; margin-top: 4px; }
.ac-scope .ac-hit-pressure { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.05rem; letter-spacing: -0.01em; line-height: 1.25; }
.ac-scope .ac-hit-move { margin-top: 4px; font-size: 0.92rem; line-height: 1.45; color: var(--ac-slate-70); }
.ac-scope .ac-hit.is-hero .ac-hit-move { color: rgba(250,250,247,0.82); }
.ac-scope .ac-hit-meta { margin-top: 8px; font-size: 0.78rem; color: var(--ac-slate-50); }
.ac-scope .ac-hit-meta b { font-family: var(--ac-font-mono); color: var(--ac-ink); }
.ac-scope .ac-hit.is-hero .ac-hit-meta, .ac-scope .ac-hit.is-hero .ac-hit-meta b { color: rgba(250,250,247,0.7); }
.ac-scope .ac-hit-meta > span { padding: 0 4px; }
.ac-scope .ac-hits-foot { margin-top: 18px; font-size: 0.82rem; color: var(--ac-slate-50); }
.ac-scope .ac-hits-foot b { font-family: var(--ac-font-mono); color: var(--ac-ink); }
@media (max-width: 960px) { .ac-scope .ac-stoppers, .ac-scope .ac-facilities { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .ac-scope .ac-stopper { grid-template-columns: 1fr; } .ac-scope .ac-stopper-kicker { grid-column: 1; } .ac-scope .ac-hit { grid-template-columns: 64px 1fr; } .ac-scope .ac-hit-days { height: 64px; } .ac-scope .ac-hit-days b { font-size: 1.4rem; } }

/* --- 20. Sprint 96 · Symmetrical hero. The film card top-aligns with the eyebrow and bottom-aligns with the clock line, so the
   two columns read as one block (Carla: "the container for the hero video needs to be symetrical"). --- */
.ac-scope .ac-hero-grid { align-items: stretch !important; }
.ac-scope .ac-hero-copy { display: flex; flex-direction: column; justify-content: center; }
.ac-scope .ac-hero-card { aspect-ratio: auto; height: 100%; min-height: 360px; display: block; }
.ac-scope .ac-hero-card .ac-hero-film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 960px) { .ac-scope .ac-hero-card { height: auto; aspect-ratio: 16 / 9; min-height: 0; } }
/* 20c · Sprint 96b. Two cuts of the same reel: a 9:10 cut framed shot by shot for the tall desktop card (cover, no letterbox),
   and the 16:9 cut for narrow screens where the card is 16:9. Order C A B D E G, 8 s, loops. */
.ac-scope .ac-hero-card { background: #08172a; display: block; }
.ac-scope .ac-hero-card .ac-hero-film { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 50% 50%; }
@media (max-width: 960px) { .ac-scope .ac-hero-card .ac-hero-film { position: relative; inset: auto; height: auto; aspect-ratio: 16 / 9; } }

/* --- 21 · Sprint 97b · /sam hero stage. Carla: "the polish 2 images of sam i love them and all his awards on flashcards in the
   right hand side on loop but the hero still frame at the right". The approved headshot is the still frame. The awards deck
   rides on its lower third and loops. The two portraits follow in their own band under the hero. --- */
.ac-scope .ac-sam-hero-grid { grid-template-columns: minmax(0, 11fr) minmax(0, 10fr); align-items: center; }
.ac-scope .ac-sam-stage { position: relative; margin: 0; border-radius: 22px; overflow: hidden; background: #08172a; isolation: isolate; aspect-ratio: 21 / 20;
  box-shadow: 0 40px 80px -32px rgba(0,0,0,0.65), 0 0 0 1px rgba(250,250,247,0.10), inset 0 0 0 1px rgba(250,250,247,0.04); }
.ac-scope .ac-sam-stage picture, .ac-scope .ac-sam-stage-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 58% 22%; display: block; }
.ac-scope .ac-sam-stage::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(8,23,42,0) 42%, rgba(8,23,42,0.55) 72%, rgba(8,23,42,0.86) 100%); }
.ac-scope .ac-sam-stage .ac-hero-card-pill { z-index: 3; }
.ac-scope .ac-sam-stage-deck { position: absolute; z-index: 3; left: 18px; right: 18px; bottom: 18px; }
.ac-scope .ac-sam-stage-deck .ac-flashdeck { max-width: none; }
.ac-scope .ac-sam-stage-deck .ac-flash-stack { height: 158px; }
.ac-scope .ac-sam-stage-deck .ac-flash { grid-template-columns: 64px 1fr; column-gap: 16px; padding: 16px 20px; border-radius: 16px;
  background: rgba(250,250,247,0.96); backdrop-filter: blur(8px); box-shadow: 0 24px 48px -24px rgba(0,0,0,0.6), 0 0 0 1px rgba(11,31,51,0.06);
  transform: translateY(calc(var(--k, 1) * -10px)) scale(calc(1 - var(--k, 1) * 0.035)); opacity: calc(1 - var(--k, 1) * 0.35); }
.ac-scope .ac-sam-stage-deck .ac-flash.is-leaving { transform: translateX(-32px) rotate(-3deg) scale(0.96); opacity: 0; }
.ac-scope .ac-sam-stage-deck .ac-flash img { width: 64px; height: 64px; }
.ac-scope .ac-sam-stage-deck .ac-flash-year { font-size: 0.78rem; }
.ac-scope .ac-sam-stage-deck .ac-flash-title { font-size: 1.05rem; margin: 2px 0; }
.ac-scope .ac-sam-stage-deck .ac-flash-body { font-size: 0.82rem; }
.ac-scope .ac-sam-stage-deck .ac-flash-result { margin-top: 8px; padding: 3px 9px; font-size: 0.78rem; }
.ac-scope .ac-sam-stage-deck .ac-flash-dots { justify-content: center; margin-top: 12px; padding: 0; }
.ac-scope .ac-sam-stage-deck .ac-flash-dots span { background: rgba(250,250,247,0.35); }
.ac-scope .ac-sam-stage-deck .ac-flash-dots span.on { background: var(--ac-amber, #F2A33A); }
.ac-scope .ac-sam-portraits { padding-top: 0; margin-top: -8px; }
.ac-scope .ac-sam-portraits .ac-portrait-dual { grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
.ac-scope .ac-sam-portraits .ac-portrait-frame { aspect-ratio: 4 / 3; border-radius: 22px; }
.ac-scope .ac-sam-portraits .ac-portrait-caption::before { background: var(--ac-amber, #F2A33A); }
@media (max-width: 900px) {
  .ac-scope .ac-sam-hero-grid { grid-template-columns: 1fr; }
  .ac-scope .ac-sam-stage { aspect-ratio: 4 / 5; border-radius: 16px; }
  .ac-scope .ac-sam-stage-deck .ac-flash-stack { height: 150px; }
}
@media (max-width: 720px) { .ac-scope .ac-sam-portraits .ac-portrait-dual { grid-template-columns: 1fr; } .ac-scope .ac-sam-portraits .ac-portrait-frame { aspect-ratio: 4 / 3; } }
.ac-scope .ac-sam-portraits .ac-portrait-frame:last-child { margin-top: 0; }
.ac-scope .ac-sam-portraits .ac-portrait-frame img { object-position: 50% 30%; }

/* --- 22 · Sprint 97c · Mobile first. Carla: "every site visitor is the busy prop.developer racing between meeting and
   phone calls that need to get the deal over to sam in voice asap". Phone is the primary surface. Rules:
   one column under 960px, nothing wider than the screen, the red button reachable with a thumb at every scroll
   position, 44px targets, 16px minimum body type, media that does not fight the page. --- */

/* 22.1 Structural: the sticky "browse" and "enquiry" grids kept a 300px pinned column under 960px, squeezing the
   scrolling column to 18 to 22px (steps, hits and deal cards rendered off the right edge). One column, pin first. */
@media (max-width: 960px) {
  .ac-scope .ac-browse-grid, .ac-scope .ac-enquiry .ac-process-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 24px; }
  .ac-scope .ac-browse-pin, .ac-scope .ac-enquiry .ac-process-pin { position: static; order: 0; min-width: 0; }
  .ac-scope .ac-browse-scroll, .ac-scope .ac-enquiry .ac-steps { order: 1; min-width: 0; }
  .ac-scope .ac-vcards { max-width: none; }
  .ac-scope .ac-step { transform: none !important; }
}
/* Anything that can still push wide is clipped at the page, not the viewport. */
.ac-scope { overflow-x: clip; }
html, body { overflow-x: clip; max-width: 100%; }

/* 22.2 Credit matrix: a 720px table is not readable on a phone. Stack each lender as a card: the row header on top,
   every cell labelled by its column head (data-th is set by premium.js). */
@media (max-width: 720px) {
  .ac-scope .ac-credit, .ac-scope .ac-credit table, .ac-scope .ac-credit thead, .ac-scope .ac-credit tbody { min-width: 0 !important; width: 100%; }
  .ac-scope .ac-credit { overflow: visible; }
  .ac-scope .ac-credit thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ac-scope .ac-credit table, .ac-scope .ac-credit tbody, .ac-scope .ac-credit tr, .ac-scope .ac-credit th, .ac-scope .ac-credit td { display: block; }
  .ac-scope .ac-credit tr { margin: 0 0 12px; border-radius: 14px; background: #fff; box-shadow: var(--ac-shadow-1), var(--ac-ring); padding: 6px 0 8px; }
  .ac-scope .ac-credit tbody th { padding: 12px 16px 8px !important; font-size: 1rem; border-bottom: 1px solid var(--ac-slate-10); }
  .ac-scope .ac-credit td { display: grid; grid-template-columns: 44% 1fr; gap: 12px; padding: 8px 16px !important; border: 0 !important; white-space: normal !important; font-size: 0.92rem; text-align: left !important; }
  .ac-scope .ac-credit td::before { content: attr(data-th); font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ac-slate-50); align-self: center; }
}

/* 22.3 The thumb bar. The red button lives at the bottom of the screen on every page, always the same two actions.
   Bigger, with a phone icon on the second action so it reads as "voice" before the word does. */
@media (max-width: 720px) {
  .ac-mobile-bar { gap: 10px; padding: 10px 14px calc(12px + env(safe-area-inset-bottom)); box-shadow: 0 -12px 30px -18px rgba(11,31,51,0.35); }
  .ac-mobile-bar .go { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.02rem; border-radius: 14px; letter-spacing: -0.01em; }
  .ac-mobile-bar .go::after { content: '→'; margin-left: 10px; }
  .ac-mobile-bar .call { min-height: 54px; display: inline-flex; align-items: center; gap: 8px; border-radius: 14px; padding: 0 16px; }
  .ac-mobile-bar .call::before { content: ''; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.5 15.5 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25c1.1.37 2.3.57 3.6.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1L6.6 10.8z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.5 15.5 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25c1.1.37 2.3.57 3.6.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1L6.6 10.8z'/%3E%3C/svg%3E") center / contain no-repeat; }
  .ac-scope { padding-bottom: 88px; }
}

/* 22.4 Hero on a phone: headline, one line of copy, the red button, the reel. The desk-typing alternative drops to a
   text link so the red button is the only button above the fold. Copy under the buttons goes; the pill says it. */
@media (max-width: 720px) {
  .ac-scope .ac-hero-copy .ac-display { font-size: clamp(2.3rem, 11.5vw, 3rem); line-height: 1.02; }
  .ac-scope .ac-hero-lead { font-size: 1.02rem; line-height: 1.5; }
  .ac-scope .ac-hero-cta-row { margin-top: 22px; gap: 10px; flex-direction: column; align-items: stretch; }
  .ac-scope .ac-hero-cta-row .ac-btn-signal { min-height: 56px; justify-content: center; font-size: 1.05rem; }
  .ac-scope .ac-hero-cta-row .ac-btn-ghost { border: 0 !important; background: transparent !important; padding: 8px 0 !important; justify-content: center; font-weight: 600; color: rgba(250,250,247,0.78) !important; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(250,250,247,0.35); }
  .ac-scope .ac-hero-phone-dark { display: none; }
  .ac-scope .ac-hero-grid { gap: 22px; }
  .ac-scope .ac-hero-card { border-radius: 16px; }
  .ac-scope .ac-page-toc { display: none; }
}

/* 22.5 Type and targets. 16px body minimum on a phone, no sub-14px running text, 44px tap targets. */
@media (max-width: 720px) {
  .ac-scope .ac-body, .ac-scope p, .ac-scope li { font-size: max(1rem, 1em); }
  .ac-scope .ac-step p, .ac-scope .ac-hit-move, .ac-scope .ac-flash-body, .ac-scope .ac-method p, .ac-scope .ac-not li, .ac-scope .ac-portrait-caption, .ac-scope .ac-hit-meta { font-size: 0.95rem; }
  .ac-scope .ac-btn, .ac-scope .ac-pin-link, .ac-scope .ac-project-cta, .ac-scope .ac-rail-nav button, .ac-scope .ac-saves-more, .ac-scope .ac-flash-dots span { min-height: 44px; }
  .ac-scope .ac-flash-dots span { min-height: 0; width: 10px; height: 10px; padding: 0; position: relative; }
  .ac-scope .ac-flash-dots span::after { content: ''; position: absolute; inset: -17px; }
  .ac-scope .ac-rail-nav { display: none; }
  .ac-scope .ac-section { padding-top: clamp(40px, 10vw, 56px); padding-bottom: clamp(40px, 10vw, 56px); }
  .ac-scope .ac-h1 { font-size: clamp(1.7rem, 7.5vw, 2.2rem); }
  .ac-scope .ac-h2 { font-size: clamp(1.45rem, 6.2vw, 1.8rem); }
}

/* 22.6 Media on a phone: the projects rail snaps one card per screen; deal films only play in view (premium.js). */
@media (max-width: 720px) {
  .ac-scope .ac-projects.ac-rail { gap: 12px; padding-left: 20px; padding-right: 20px; scroll-padding-left: 20px; }
  .ac-scope .ac-projects.ac-rail > * { flex: 0 0 min(84vw, 340px); scroll-snap-align: start; }
  .ac-scope .ac-sam-stage-deck { left: 12px; right: 12px; bottom: 12px; }
  .ac-scope .ac-sam-stage-deck .ac-flash { padding: 14px 16px; grid-template-columns: 52px 1fr; column-gap: 12px; }
  .ac-scope .ac-sam-stage-deck .ac-flash img { width: 52px; height: 52px; }
  .ac-scope .ac-sam-stage-deck .ac-flash-title { font-size: 0.98rem; }
  .ac-scope .ac-sam-stage-deck .ac-flash-body { font-size: 0.82rem; }
}
@media (max-width: 720px) { .ac-scope .ac-credit td small { display: block; grid-column: 2; margin-top: -6px; font-size: 0.78rem; color: var(--ac-slate-50); } .ac-scope .ac-credit td { grid-template-columns: 44% 1fr; grid-auto-flow: row; } .ac-scope .ac-credit td::before { grid-column: 1; grid-row: 1; } }

/* --- 23 · Sprint 98 · Progressive disclosure. Carla: "its incredible rich in content but its all buried ... reshape it so it
   makes more of a logical progressive disclosure". One line first, the whole thing on a tap. Native <details>, no JS. --- */
.ac-scope details.ac-more { margin-top: 10px; }
.ac-scope details.ac-more > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; font-size: 0.86rem; font-weight: 600; color: var(--ac-ink); padding: 6px 0; min-height: 32px; }
.ac-scope details.ac-more > summary::-webkit-details-marker { display: none; }
.ac-scope details.ac-more > summary::after { content: ''; width: 8px; height: 8px; border-right: 2px solid var(--ac-amber, #F2A33A); border-bottom: 2px solid var(--ac-amber, #F2A33A); transform: rotate(45deg) translateY(-2px); transition: transform 200ms ease; }
.ac-scope details.ac-more[open] > summary::after { transform: rotate(225deg) translateY(-1px); }
.ac-scope details.ac-more > p { margin: 8px 0 0; color: var(--ac-slate-70); font-size: 0.95rem; line-height: 1.55; }

/* Big disclosure for the reference blocks (matrix, panel). */
.ac-scope details.ac-disclose { border-radius: 18px; background: #fff; box-shadow: var(--ac-shadow-1), var(--ac-ring); overflow: clip; }
.ac-scope details.ac-disclose > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; font-family: var(--ac-font-display); font-weight: 700; font-size: 1.05rem; letter-spacing: -0.01em; color: var(--ac-ink); min-height: 64px; }
.ac-scope details.ac-disclose > summary::-webkit-details-marker { display: none; }
.ac-scope details.ac-disclose > summary .ac-disclose-hint { font-family: var(--ac-font-mono); font-weight: 500; font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-slate-50); white-space: nowrap; display: inline-flex; align-items: center; gap: 12px; }
.ac-scope details.ac-disclose > summary .ac-disclose-hint::after { content: ''; width: 9px; height: 9px; border-right: 2px solid var(--ac-amber, #F2A33A); border-bottom: 2px solid var(--ac-amber, #F2A33A); transform: rotate(45deg) translateY(-2px); transition: transform 200ms ease; }
.ac-scope details.ac-disclose[open] > summary .ac-disclose-hint::after { transform: rotate(225deg) translateY(-1px); }
.ac-scope details.ac-disclose[open] > summary { border-bottom: 1px solid var(--ac-slate-10); }
.ac-scope .ac-disclose-body { padding: 24px; }
@media (max-width: 720px) { .ac-scope details.ac-disclose > summary { padding: 16px 18px; font-size: 0.98rem; flex-wrap: wrap; } .ac-scope .ac-disclose-body { padding: 14px; } }

/* Home · Why Sam: the four stoppers as one-line rows that open. */
.ac-scope .ac-stoppers-mini { display: grid; gap: 10px; max-width: 920px; }
.ac-scope .ac-stopper-mini { border-radius: 16px; background: #fff; box-shadow: var(--ac-shadow-1), var(--ac-ring); }
.ac-scope .ac-stopper-mini > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 14px; padding: 16px 20px; min-height: 60px; }
.ac-scope .ac-stopper-mini > summary::-webkit-details-marker { display: none; }
.ac-scope .ac-stopper-mini .ac-stopper-n { font-family: var(--ac-font-mono); font-weight: 700; font-size: 0.9rem; color: var(--ac-amber, #F2A33A); }
.ac-scope .ac-stopper-mini-name { font-family: var(--ac-font-display); font-weight: 700; font-size: 1.15rem; letter-spacing: -0.015em; color: var(--ac-ink); }
.ac-scope .ac-stopper-mini .ac-stopper-kicker { font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ac-slate-50); position: static; }
.ac-scope .ac-stopper-mini > p { margin: 0 20px 14px 78px; font-size: 0.95rem; line-height: 1.55; color: var(--ac-slate-70); }
.ac-scope .ac-stopper-mini > p:last-child { margin-bottom: 20px; }
.ac-scope .ac-stopper-mini > p b { color: var(--ac-ink); }
@media (max-width: 720px) { .ac-scope .ac-stopper-mini > summary { grid-template-columns: 36px 1fr; } .ac-scope .ac-stopper-mini .ac-stopper-kicker { grid-column: 2; } .ac-scope .ac-stopper-mini > p { margin-left: 20px; } }

/* Home · six deal types as chips. */
.ac-scope .ac-chips-row { margin: 36px 0 24px; }
.ac-scope .ac-chips-label { font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ac-slate-50); margin-bottom: 12px; }
.ac-scope .ac-chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ac-scope .ac-chip { display: grid; gap: 3px; padding: 14px 16px; border-radius: 14px; background: #fff; box-shadow: var(--ac-ring); text-decoration: none; color: var(--ac-ink); transition: box-shadow 200ms ease, transform 200ms ease; min-height: 44px; }
.ac-scope .ac-chip:hover { box-shadow: var(--ac-shadow-1), var(--ac-ring); transform: translateY(-1px); }
.ac-scope .ac-chip b { font-family: var(--ac-font-display); font-weight: 700; font-size: 1rem; letter-spacing: -0.01em; }
.ac-scope .ac-chip span { font-size: 0.85rem; color: var(--ac-slate-70); line-height: 1.4; }
@media (max-width: 900px) { .ac-scope .ac-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ac-scope .ac-chips { grid-template-columns: 1fr; } }
.ac-scope .ac-pin-link-ink { color: var(--ac-ink); display: inline-flex; margin-top: 8px; }

/* Home · Sam card. */
.ac-scope .ac-section.ac-sam-card-section, .ac-scope .ac-sam-card-section { background: var(--ac-ink) !important; color: var(--ac-paper); }
.ac-scope .ac-sam-card { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 56px); align-items: center; text-decoration: none; color: inherit; border-radius: 24px; }
.ac-scope .ac-sam-card picture { display: block; border-radius: 22px; overflow: hidden; aspect-ratio: 1 / 1; box-shadow: 0 40px 80px -32px rgba(0,0,0,0.65), 0 0 0 1px rgba(250,250,247,0.10); }
.ac-scope .ac-sam-card img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; display: block; transition: transform 500ms var(--ac-ease, ease); }
.ac-scope .ac-sam-card:hover img { transform: scale(1.03); }
.ac-scope .ac-sam-card .ac-section-eyebrow { color: var(--ac-slate-30); }
.ac-scope .ac-sam-card .ac-h1 { color: var(--ac-paper); }
.ac-scope .ac-sam-card .ac-body { color: rgba(250,250,247,0.8); }
.ac-scope .ac-sam-card-awards { list-style: none; margin: 22px 0 18px; padding: 0; display: grid; gap: 10px; }
.ac-scope .ac-sam-card-awards li { display: flex; align-items: center; gap: 12px; font-size: 0.92rem; color: rgba(250,250,247,0.8); }
.ac-scope .ac-sam-card-awards li b { color: var(--ac-paper); }
.ac-scope .ac-sam-card-awards img { width: 40px; height: 40px; flex: 0 0 40px; }
.ac-scope .ac-sam-card .ac-pin-link-ink { color: var(--ac-amber, #F2A33A); }
@media (max-width: 900px) { .ac-scope .ac-sam-card { grid-template-columns: 1fr; } .ac-scope .ac-sam-card picture { aspect-ratio: 4 / 3; } }

/* Home · proof strip carries the pull quote under the three saves. */
.ac-scope #proof .ac-pullquote { margin-top: 28px; }
.ac-scope .ac-enquiry-proof { display: none; }

/* --- 24 · Sprint 98b · /sam as a 2 by 4 grid. Carla: "text in one box photo in the next and then reverse that order the next time".
   Text | photo, photo | text, text | photo, photo | text. Every cell the same height in its row; photos cover. --- */
.ac-scope .ac-sam-grid-section { padding-top: clamp(40px, 5vw, 64px); }
.ac-scope .ac-sam-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ac-scope .ac-sam-cell { border-radius: 22px; min-height: 520px; }
.ac-scope .ac-sam-text { background: #fff; box-shadow: var(--ac-shadow-1), var(--ac-ring); padding: clamp(28px, 3.4vw, 48px); display: flex; flex-direction: column; justify-content: center; }
.ac-scope .ac-sam-text .ac-display { font-size: clamp(2.2rem, 3.6vw, 3.4rem); line-height: 1.02; }
.ac-scope .ac-sam-photo { position: relative; margin: 0; overflow: hidden; background: var(--ac-ink); box-shadow: var(--ac-shadow-1), var(--ac-ring); }
.ac-scope .ac-sam-photo picture, .ac-scope .ac-sam-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; display: block; }
.ac-scope .ac-sam-photo figcaption { position: absolute; left: 18px; bottom: 16px; z-index: 2; padding: 7px 12px; border-radius: 999px; background: rgba(11,31,51,0.78); color: var(--ac-paper); font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; backdrop-filter: blur(6px); }
.ac-scope .ac-sam-awards-inline { margin-top: 26px; }
.ac-scope .ac-sam-awards-inline .ac-flashdeck { max-width: none; }
.ac-scope .ac-sam-awards-inline .ac-flash-stack { height: 150px; }
.ac-scope .ac-sam-awards-inline .ac-flash { padding: 16px 20px; grid-template-columns: 60px 1fr; column-gap: 16px; border-radius: 16px; background: var(--ac-paper-2, #F3F4F1); box-shadow: var(--ac-ring); }
.ac-scope .ac-sam-awards-inline .ac-flash img { width: 60px; height: 60px; }
.ac-scope .ac-sam-awards-inline .ac-flash-title { font-size: 1.05rem; }
.ac-scope .ac-sam-awards-inline .ac-flash-body { font-size: 0.85rem; }
.ac-scope .ac-sam-awards-inline .ac-flash-dots { margin-top: 12px; }
.ac-scope .ac-sam-moves { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; counter-reset: mv; }
.ac-scope .ac-sam-moves li { position: relative; padding-left: 44px; font-size: 0.98rem; line-height: 1.55; color: var(--ac-slate-70); counter-increment: mv; }
.ac-scope .ac-sam-moves li::before { content: '0' counter(mv); position: absolute; left: 0; top: 2px; font-family: var(--ac-font-mono); font-weight: 700; font-size: 0.85rem; color: var(--ac-amber, #F2A33A); }
.ac-scope .ac-sam-moves li b { color: var(--ac-ink); }
.ac-scope .ac-sam-text .ac-not { margin: 0; }
.ac-scope .ac-sam-text .ac-testimonials { display: grid; gap: 12px; grid-template-columns: 1fr; }
.ac-scope .ac-sam-text .ac-testimonial { padding: 16px 18px; }
.ac-scope .ac-sam-text .ac-testimonial-quote { font-size: 0.95rem; }
@media (max-width: 900px) {
  .ac-scope .ac-sam-grid { grid-template-columns: 1fr; gap: 14px; }
  .ac-scope .ac-sam-cell { min-height: 0; border-radius: 16px; }
  .ac-scope .ac-sam-photo { aspect-ratio: 4 / 3; }
  .ac-scope .ac-sam-text { padding: 24px 20px; }
  .ac-scope .ac-sam-text .ac-display { font-size: clamp(2rem, 9.5vw, 2.6rem); }
}
/* Row four: one testimonial in view, the other two open on a tap, so the desk frame keeps a sane height. */
.ac-scope .ac-sam-text .ac-testimonial:nth-child(n+2) { display: none; }
.ac-scope .ac-sam-text .ac-testimonials.is-open .ac-testimonial { display: block; }
.ac-scope .ac-sam-more-btn { margin-top: 12px; align-self: flex-start; background: none; border: 0; padding: 8px 0; min-height: 44px; font: inherit; font-weight: 600; color: var(--ac-ink); cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.ac-scope .ac-sam-more-btn::after { content: ''; width: 8px; height: 8px; border-right: 2px solid var(--ac-amber, #F2A33A); border-bottom: 2px solid var(--ac-amber, #F2A33A); transform: rotate(45deg) translateY(-2px); }
.ac-scope .ac-sam-text .ac-testimonial-stars { font-size: 0.8rem; }
/* Sprint 99b · the desk frame high on the home page, tight to the steps above it. Desk photo in the /sam grid keeps the screen in frame. */
.ac-scope .ac-home-desk { padding-top: 0; }
.ac-scope .ac-home-desk .ac-desk-frame img { aspect-ratio: 21 / 9; object-position: 50% 40%; }
@media (max-width: 720px) { .ac-scope .ac-home-desk .ac-desk-frame img { aspect-ratio: 4 / 3; object-position: 60% 30%; } .ac-scope .ac-home-desk .ac-desk-frame figcaption b { font-size: 1.05rem; } .ac-scope .ac-home-desk .ac-desk-frame figcaption > span:last-child { display: none; } }
.ac-scope .ac-sam-grid #the-desk img { object-position: 45% 30%; }

/* 101b · holding line where developers' words will go once consented */
.ac-testimonials-holding{color:var(--ac-slate,#3E4E63);border-left:3px solid #F2A33A;padding:10px 16px;margin:0;font-size:1rem}

/* 101e · hero proof points under the lead */
.ac-hero-points{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:10px;max-width:640px}
.ac-hero-points li{position:relative;padding-left:26px;color:rgba(250,250,247,.86);font-size:1.02rem;line-height:1.5}
.ac-hero-points li::before{content:"";position:absolute;left:0;top:.58em;width:12px;height:12px;border-radius:50%;background:#F2A33A}
.ac-hero-points b{color:#FAFAF7}
@media (max-width:960px){.ac-hero-points li{font-size:.98rem}}

/* 101g · the reel is composed for the card; show it whole, never crop */
.ac-scope .ac-hero-card .ac-hero-film { object-fit: contain; object-position: 50% 50%; background: #0B1F33; }
@media (max-width: 960px) { .ac-scope .ac-hero-card .ac-hero-film { object-fit: contain; } }

/* ---- Sprint 152 · hero still + tap to play. The film is under the still; the still lifts when a frame is playing. ---- */
.ac-scope .ac-hero-card .ac-hero-still { position: absolute; inset: 0; z-index: 2; margin: 0; transition: opacity 900ms var(--ac-prem-ease); }
.ac-scope .ac-hero-card .ac-hero-still img { width: 100%; height: 100%; object-fit: contain; object-position: 50% 50%; background: #0B1F33; display: block; }
.ac-scope .ac-hero-card.film-on .ac-hero-still { opacity: 0; pointer-events: none; }
.ac-scope .ac-hero-card .ac-hero-play { position: absolute; z-index: 3; left: 14px; top: 14px; display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px 10px 12px; border: 0; border-radius: 999px; background: rgba(11,31,51,0.78); color: var(--ac-paper); font: 600 0.8125rem/1 var(--ac-font-body); letter-spacing: -0.01em; white-space: nowrap; cursor: pointer; backdrop-filter: blur(6px); box-shadow: 0 0 0 1px rgba(250,250,247,0.14), 0 14px 30px -14px rgba(0,0,0,0.7); transition: opacity 400ms var(--ac-prem-ease), background 200ms; }
.ac-scope .ac-hero-card .ac-hero-play span { width: 26px; height: 26px; border-radius: 50%; background: var(--ac-signal); position: relative; flex: 0 0 auto; }
.ac-scope .ac-hero-card .ac-hero-play span::after { content: ''; position: absolute; left: 10px; top: 7px; border-style: solid; border-width: 6px 0 6px 9px; border-color: transparent transparent transparent #fff; }
.ac-scope .ac-hero-card .ac-hero-play:hover { background: rgba(11,31,51,0.92); }
.ac-scope .ac-hero-card.film-on .ac-hero-play, .ac-scope .ac-hero-card.film-loading .ac-hero-play { opacity: 0; pointer-events: none; }
@media (min-width: 961px) { .ac-scope .ac-hero-card .ac-hero-play { display: none; } }
@media (prefers-reduced-motion: reduce) { .ac-scope .ac-hero-card .ac-hero-play { display: none; } }
@media (max-width: 960px) { .ac-scope .ac-hero-card { position: relative; aspect-ratio: 16 / 9; } .ac-scope .ac-hero-card .ac-hero-film { position: absolute; inset: 0; height: 100%; } }

/* ---- Sprint 155 · The short home on a phone. One URL, one canonical; under 720 px the long read folds behind
   "in full" links to /credit and /sam. Desktop is untouched. Home was 11,663 px tall on an iPhone. ---- */
.ac-m-only { display: none; }
@media (max-width: 720px) {
  .ac-m-only { display: inline-flex; margin-top: 18px; }
  .ac-scope .ac-hero-points li:nth-child(n+2) { display: none; }
  .ac-scope .ac-hero-points { margin-bottom: 8px; }
  .ac-scope .ac-process-pin p.ac-body + p.ac-body { display: none; }
  .ac-scope .ac-step details.ac-more { display: none; }
  .ac-scope .ac-step p { margin-bottom: 0; }
  .ac-scope .ac-hits li:nth-child(n+2) { display: none; }
  .ac-scope .ac-pin-huge .ac-body { display: none; }
  .ac-scope #stoppers .ac-stoppers-mini, .ac-scope #stoppers .ac-chips-row, .ac-scope #stoppers > .ac-container > p.ac-body { display: none; }
  .ac-scope #stoppers h2 { margin-bottom: 18px !important; }
  .ac-scope .ac-vcards article:nth-child(n+2) { display: none; }
  .ac-scope #projects .ac-browse-pin { display: none; }
  .ac-scope #projects > .ac-container > .ac-browse-scroll > p.ac-body { display: none; }
  .ac-scope .ac-sam-card-body > p.ac-body { display: none; }
  .ac-scope .ac-cta-block > p.ac-body { display: none; }
}
@media (max-width: 720px) {
  .ac-scope .ac-step p, .ac-scope .ac-step .ac-step-time { display: none; }
  .ac-scope .ac-steps { gap: 8px; }
  .ac-scope .ac-step { padding: 10px 12px; }
  .ac-scope .ac-process-pin p.ac-body { font-size: 1rem; }
}

/* ===== Sprint 161 · ASAP Sprint D · "one screen and a video". Home page only (.ac-home-d). ===== */
.ac-scope.ac-home-d .ac-hero { padding-bottom: clamp(28px, 4vw, 48px); }
.ac-scope.ac-home-d .ac-hero-grid { align-items: start; }
.ac-scope.ac-home-d .ac-hero-card { aspect-ratio: auto; height: auto; min-height: 0; overflow: visible; box-shadow: none; background: transparent; }
.ac-scope.ac-home-d .ac-hero-card .ac-hero-still, .ac-scope.ac-home-d .ac-hero-card .ac-hero-film { border-radius: 18px; overflow: hidden; }
.ac-scope.ac-home-d .ac-hero-card .ac-hero-still img { width: 100%; height: auto; display: block; }
.ac-scope.ac-home-d .ac-film-cap { margin: 12px 2px 0; font-size: 0.875rem; line-height: 1.5; color: rgba(250,250,247,0.72); }
.ac-scope.ac-home-d .ac-trust-list { margin-top: clamp(28px, 4vw, 44px); }
.ac-scope.ac-home-d .ac-trust-row-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ac-scope.ac-home-d .ac-trust-cell b { font-variant-numeric: tabular-nums; }
.ac-scope.ac-home-d .ac-ask-line { padding: clamp(40px, 6vw, 72px) 0; background: var(--ac-paper); border-bottom: 1px solid var(--ac-slate-10); }
.ac-scope.ac-home-d .ac-btn-ink { color: var(--ac-ink) !important; border-color: var(--ac-ink) !important; background: transparent !important; }
.ac-scope.ac-home-d .ac-btn-ink:hover { background: var(--ac-ink) !important; color: var(--ac-paper) !important; }
.ac-scope.ac-home-d .ac-sam-card-body > p.ac-body { display: block !important; }
.ac-scope.ac-home-d .ac-awards-line { font-size: 0.9375rem; margin: 14px 0 0; opacity: 0.9; }
.ac-scope.ac-home-d .ac-licence-line { font-size: 0.8125rem; margin: 12px 0 18px; opacity: 0.7; font-family: var(--ac-font-mono); line-height: 1.6; }
.ac-scope.ac-home-d .ac-legal-links { margin: 22px 0 0; font-size: 0.8125rem; opacity: 0.7; }
.ac-scope.ac-home-d .ac-legal-links a { color: inherit; }
@media (max-width: 960px) {
  .ac-scope.ac-home-d .ac-hero-card { aspect-ratio: auto; }
  .ac-scope.ac-home-d .ac-hero-card .ac-hero-still { aspect-ratio: 16 / 9; }
  .ac-scope.ac-home-d .ac-hero-card .ac-hero-film { position: absolute; inset: 0; height: auto; aspect-ratio: 16 / 9; }
  .ac-scope.ac-home-d .ac-trust-row-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .ac-scope.ac-home-d .ac-trust-cell b { font-size: 1.35rem; }
  .ac-scope.ac-home-d .ac-trust-cell span { font-size: 0.78rem; }
}
/* Sprint 161 · nothing on the home page fades, rises or counts. What is there is there. */
.ac-scope.ac-home-d *, .ac-scope.ac-home-d *::before, .ac-scope.ac-home-d *::after { animation: none !important; }
.ac-scope.ac-home-d .ac-hero-film { transition: opacity 600ms ease; }
html.ac-js .ac-scope.ac-home-d .ac-hero h1 .ac-line { clip-path: none !important; transform: none !important; opacity: 1 !important; }
.ac-scope.ac-home-d .ac-hero h1, .ac-scope.ac-home-d .ac-hero-copy > * { opacity: 1 !important; transform: none !important; }
/* the thumb bar covers the last 72px on a phone; give the page that room once, after the last section */
@media (max-width: 720px) { .ac-home-d ~ footer, .ac-page footer { padding-bottom: calc(24px + 72px) !important; } }
.ac-scope.ac-home-d { padding-bottom: 0 !important; }
.ac-scope.ac-home-d .ac-sam-card-section { margin-bottom: 0 !important; }

/* ===== Sprint 166 · ASAP Sprint E · the premium front door in the nine move grammar. Home page only (.ac-home-e). =====
   Cream and ink bands, one signal colour for every action, eyebrow labels, footnoted figures, generous air.
   Nothing on this page fades, rises or counts. */
.ac-scope.ac-home-e *, .ac-scope.ac-home-e *::before, .ac-scope.ac-home-e *::after { animation: none !important; }
.ac-scope.ac-home-e .ac-hero-film { transition: opacity 600ms ease; }
html.ac-js .ac-scope.ac-home-e .ac-hero h1 .ac-line { clip-path: none !important; transform: none !important; opacity: 1 !important; }
.ac-scope.ac-home-e .ac-hero h1, .ac-scope.ac-home-e .ac-hero-copy > * { opacity: 1 !important; transform: none !important; }
.ac-scope.ac-home-e { padding-bottom: 0 !important; }
.ac-scope.ac-home-e sup { font-size: 0.55em; line-height: 0; vertical-align: super; margin-left: 2px; font-weight: 500; }
.ac-scope.ac-home-e sup a { color: var(--ac-slate-50); text-decoration: none; }
.ac-scope.ac-home-e sup a:hover { color: var(--ac-signal); }

/* top bar */
.ac-scope.ac-home-e .ac-e-topbar { background: #08172a; color: rgba(250,250,247,0.72); font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.04em; border-bottom: 1px solid rgba(250,250,247,0.08); }
.ac-scope.ac-home-e .ac-e-topbar .ac-container { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 9px; padding-bottom: 9px; }
.ac-scope.ac-home-e .ac-e-topbar a { color: var(--ac-paper); text-decoration: none; font-weight: 600; white-space: nowrap; }
.ac-scope.ac-home-e .ac-e-topbar a:hover { color: #FF8A73; }
@media (max-width: 720px) { .ac-scope.ac-home-e .ac-e-topbar .ac-container > span { display: none; } .ac-scope.ac-home-e .ac-e-topbar .ac-container { justify-content: center; } }

/* hero */
.ac-scope.ac-home-e .ac-e-hero { min-height: 0; padding-top: clamp(48px, 7vw, 96px); padding-bottom: clamp(40px, 6vw, 80px); }
.ac-scope.ac-home-e .ac-e-eyebrow { margin: 0 0 18px; font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase; color: #FF8A73; font-weight: 600; }
.ac-scope.ac-home-e .ac-e-h1 { margin: 0 0 22px; max-width: 880px; color: var(--ac-paper); }
.ac-scope.ac-home-e .ac-e-lead { max-width: 620px; margin: 0 0 28px; color: rgba(250,250,247,0.86); }
.ac-scope.ac-home-e .ac-e-trustline { margin: 26px 0 0; font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.03em; color: rgba(250,250,247,0.6); }
/* Sprint 167d · the card is one fixed frame; still and film both fill it edge to edge (object-fit: cover), the caption
   sits below it. Desktop frame is 9:10 (the tall poster and tall reel), phone frame is 16:9 (the wide poster and wide reel). */
.ac-scope.ac-home-e .ac-hero-card { display: block; height: auto; min-height: 0; overflow: visible; box-shadow: none; background: transparent; aspect-ratio: auto; }
.ac-scope.ac-home-e .ac-hero-card .ac-hero-still { position: relative; inset: auto; display: block; width: 100%; aspect-ratio: 9 / 10; border-radius: 18px; overflow: hidden; background: #08172a; box-shadow: 0 40px 80px -32px rgba(0,0,0,0.65), 0 0 0 1px rgba(250,250,247,0.10); z-index: 1; }
.ac-scope.ac-home-e .ac-hero-card .ac-hero-still img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; display: block; }
.ac-scope.ac-home-e .ac-hero-card .ac-hero-film { position: absolute; left: 0; top: 0; width: 100%; aspect-ratio: 9 / 10; height: auto; object-fit: cover; border-radius: 18px; overflow: hidden; z-index: 0; }
.ac-scope.ac-home-e .ac-hero-card.film-on .ac-hero-still { opacity: 0; pointer-events: none; }
.ac-scope.ac-home-e .ac-hero-card .ac-film-cap { position: static; margin: 12px 2px 0; padding: 0; background: none; font-size: 0.875rem; line-height: 1.5; color: rgba(250,250,247,0.72); }
@media (max-width: 960px) {
  .ac-scope.ac-home-e .ac-hero-card .ac-hero-still, .ac-scope.ac-home-e .ac-hero-card .ac-hero-film { aspect-ratio: 16 / 9; }
}
/* Sprint 167e · with autoplay off the play button must show on every screen, and sit inside the frame, not on the caption. */
.ac-scope.ac-home-e .ac-hero-card .ac-hero-play { display: inline-flex !important; z-index: 3; }
.ac-scope.ac-home-e .ac-hero-card.film-on .ac-hero-play, .ac-scope.ac-home-e .ac-hero-card.film-loading .ac-hero-play { opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .ac-scope.ac-home-e .ac-hero-card .ac-hero-play { display: inline-flex !important; } }
.ac-scope.ac-home-e .ac-pin-link span[aria-hidden] { margin-left: 8px; }
/* the result column before a result exists: what the visitor will get, not a hole */
.ac-scope.ac-home-e .ac-check-empty { border: 1px dashed var(--ac-slate-30); border-radius: 18px; padding: clamp(22px, 2.6vw, 32px); color: var(--ac-slate-70); }
.ac-scope.ac-home-e .ac-check-empty h3 { margin: 0 0 14px; font-size: 1.15rem; font-weight: 700; color: var(--ac-ink); letter-spacing: -0.015em; }
.ac-scope.ac-home-e .ac-check-empty ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.ac-scope.ac-home-e .ac-check-empty li { display: grid; grid-template-columns: 28px 1fr; gap: 10px; font-size: 0.9375rem; line-height: 1.5; }
.ac-scope.ac-home-e .ac-check-empty li i { font-style: normal; font-family: var(--ac-font-mono); color: var(--ac-signal); font-size: 0.8rem; font-weight: 600; padding-top: 3px; }
.ac-scope.ac-home-e .ac-check-empty p { margin: 16px 0 0; font-size: 0.8125rem; color: var(--ac-slate-50); line-height: 1.55; }
.ac-scope.ac-home-e .ac-check-empty[hidden] { display: none; }
@media (max-width: 960px) { .ac-scope.ac-home-e .ac-check-empty { display: none; } }

/* proof strip */
.ac-scope.ac-home-e .ac-e-proof { background: var(--ac-paper); border-bottom: 1px solid var(--ac-slate-10); }
.ac-scope.ac-home-e .ac-e-proof-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ac-scope.ac-home-e .ac-e-proof-cell { padding: clamp(22px, 3vw, 36px) clamp(12px, 2vw, 28px); border-left: 1px solid var(--ac-slate-10); }
.ac-scope.ac-home-e .ac-e-proof-cell:first-child { border-left: 0; padding-left: 0; }
.ac-scope.ac-home-e .ac-e-proof-cell b { display: block; font-family: var(--ac-font-display); font-size: clamp(1.7rem, 3vw, 2.6rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1; color: var(--ac-ink); font-variant-numeric: tabular-nums; }
.ac-scope.ac-home-e .ac-e-proof-cell span { display: block; margin-top: 10px; font-size: 0.875rem; line-height: 1.45; color: var(--ac-slate-70); max-width: 22ch; }
@media (max-width: 720px) { .ac-scope.ac-home-e .ac-e-proof-row { grid-template-columns: 1fr 1fr; } .ac-scope.ac-home-e .ac-e-proof-cell:nth-child(3) { border-left: 0; padding-left: 0; } .ac-scope.ac-home-e .ac-e-proof-cell:nth-child(n+3) { border-top: 1px solid var(--ac-slate-10); } }

/* bands and headings */
.ac-scope.ac-home-e .ac-e-band { padding: clamp(56px, 8vw, 112px) 0; }
.ac-scope.ac-home-e .ac-e-band-paper2 { background: var(--ac-paper-2); }
.ac-scope.ac-home-e .ac-e-kicker { margin: 0 0 14px; font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ac-slate-50); font-weight: 600; }
.ac-scope.ac-home-e .ac-e-kicker-light { color: rgba(250,250,247,0.6); }
.ac-scope.ac-home-e .ac-e-h2 { margin: 0 0 22px; max-width: 820px; }
.ac-scope.ac-home-e .ac-e-soft { color: var(--ac-slate-50); font-weight: 600; }
.ac-scope.ac-home-e .ac-section-dark .ac-e-soft { color: rgba(250,250,247,0.55); }
.ac-scope.ac-home-e .ac-e-para { max-width: 720px; margin: 0 0 30px; }
.ac-scope.ac-home-e .ac-e-fine { font-size: 0.8125rem; color: var(--ac-slate-50); margin: 16px 0 0; line-height: 1.55; }
.ac-scope.ac-home-e .ac-e-fine a { color: inherit; }

/* doors */
.ac-scope.ac-home-e .ac-e-doors { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 34px; }
.ac-scope.ac-home-e .ac-e-door { background: #fff; border: 1px solid var(--ac-slate-10); border-radius: 18px; padding: clamp(22px, 2.6vw, 34px); box-shadow: 0 24px 48px -36px rgba(11,31,51,0.35); display: flex; flex-direction: column; }
.ac-scope.ac-home-e .ac-e-door h3 { margin: 0 0 12px; font-size: 1.35rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1.15; }
.ac-scope.ac-home-e .ac-e-door p { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: var(--ac-slate-70); }
.ac-scope.ac-home-e .ac-e-door-line { margin-top: auto !important; padding-top: 18px; font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.04em; color: var(--ac-ink) !important; border-top: 1px solid var(--ac-slate-10); margin-top: 18px; }
.ac-scope.ac-home-e .ac-e-not { margin: 26px 0 0; font-size: 0.9375rem; color: var(--ac-slate-70); max-width: 720px; }
.ac-scope.ac-home-e .ac-e-not a { color: var(--ac-ink); font-weight: 600; }
@media (max-width: 960px) { .ac-scope.ac-home-e .ac-e-doors { grid-template-columns: 1fr; } }

/* steps */
.ac-scope.ac-home-e .ac-e-steps { list-style: none; margin: 34px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--ac-slate-30); }
.ac-scope.ac-home-e .ac-e-step { padding: 26px 26px 26px 0; border-right: 1px solid var(--ac-slate-10); display: flex; flex-direction: column; gap: 14px; }
.ac-scope.ac-home-e .ac-e-step:not(:first-child) { padding-left: 26px; }
.ac-scope.ac-home-e .ac-e-step:last-child { border-right: 0; }
.ac-scope.ac-home-e .ac-e-step-n { font-family: var(--ac-font-mono); font-size: 0.8rem; color: var(--ac-signal); font-weight: 600; letter-spacing: 0.08em; }
.ac-scope.ac-home-e .ac-e-step-when { font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ac-slate-50); margin-bottom: 8px; }
.ac-scope.ac-home-e .ac-e-step h3 { margin: 0 0 10px; font-size: 1.15rem; font-weight: 700; letter-spacing: -0.015em; line-height: 1.2; }
.ac-scope.ac-home-e .ac-e-step p { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: var(--ac-slate-70); }
.ac-scope.ac-home-e .ac-e-inline-cta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 36px; }
.ac-scope.ac-home-e .ac-e-inline-cta span { font-size: 0.9375rem; color: var(--ac-slate-70); }
@media (max-width: 960px) { .ac-scope.ac-home-e .ac-e-steps { grid-template-columns: 1fr 1fr; } .ac-scope.ac-home-e .ac-e-step:nth-child(2) { border-right: 0; } .ac-scope.ac-home-e .ac-e-step:nth-child(3) { padding-left: 0; } .ac-scope.ac-home-e .ac-e-step:nth-child(n+3) { border-top: 1px solid var(--ac-slate-10); } }
@media (max-width: 600px) { .ac-scope.ac-home-e .ac-e-steps { grid-template-columns: 1fr; } .ac-scope.ac-home-e .ac-e-step { padding-left: 0 !important; padding-right: 0; border-right: 0; } .ac-scope.ac-home-e .ac-e-step:nth-child(n+2) { border-top: 1px solid var(--ac-slate-10); } }

/* check your deal */
.ac-scope.ac-home-e .ac-e-check { background: var(--ac-paper); }
.ac-scope.ac-home-e .ac-e-check-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.ac-scope.ac-home-e .ac-check-form { background: #fff; border: 1px solid var(--ac-slate-10); border-radius: 18px; padding: clamp(22px, 2.6vw, 32px); box-shadow: 0 24px 48px -36px rgba(11,31,51,0.35); position: sticky; top: 24px; }
.ac-scope.ac-home-e .ac-check-grid { display: grid; gap: 16px; }
.ac-scope.ac-home-e .ac-check-form label > span { display: block; font-size: 0.8125rem; font-weight: 600; color: var(--ac-slate-70); margin-bottom: 6px; }
.ac-scope.ac-home-e .ac-check-money { display: flex; align-items: center; border: 1.5px solid var(--ac-slate-10); border-radius: 10px; background: var(--ac-paper); overflow: hidden; transition: border-color 160ms; }
.ac-scope.ac-home-e .ac-check-money:focus-within { border-color: var(--ac-ink); }
.ac-scope.ac-home-e .ac-check-money i { font-style: normal; font-family: var(--ac-font-mono); color: var(--ac-slate-50); padding: 0 12px; font-size: 0.9rem; }
.ac-scope.ac-home-e .ac-check-money input { flex: 1; min-width: 0; border: 0; background: transparent; padding: 13px 12px 13px 0; font-family: var(--ac-font-mono); font-size: 1.05rem; color: var(--ac-ink); outline: none; font-variant-numeric: tabular-nums; }
.ac-scope.ac-home-e .ac-check-money input[name=presale] { padding-left: 14px; }
.ac-scope.ac-home-e .ac-check-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 20px; }
.ac-scope.ac-home-e .ac-check-tick { display: flex; align-items: center; gap: 8px; font-size: 0.875rem; color: var(--ac-slate-70); }
.ac-scope.ac-home-e .ac-check-tick input { width: 18px; height: 18px; accent-color: var(--ac-ink); }
.ac-scope.ac-home-e .ac-check-fine { margin: 16px 0 0; font-size: 0.78rem; color: var(--ac-slate-50); line-height: 1.5; }
.ac-scope.ac-home-e .ac-check-result[hidden] { display: none; }
.ac-scope.ac-home-e .ac-check-verdict { border-radius: 18px; padding: clamp(22px, 2.6vw, 32px); background: var(--ac-ink); color: var(--ac-paper); }
.ac-scope.ac-home-e .ac-check-verdict .ac-section-eyebrow { color: rgba(250,250,247,0.6); }
.ac-scope.ac-home-e .ac-check-verdict.is-go { background: #0F3D2E; }
.ac-scope.ac-home-e .ac-check-verdict.is-care { background: var(--ac-ink); }
.ac-scope.ac-home-e .ac-check-verdict.is-stop { background: #4A1610; }
.ac-scope.ac-home-e .ac-check-verdict h3 { margin: 6px 0 12px; font-size: clamp(1.35rem, 2.2vw, 1.75rem); font-weight: 700; letter-spacing: -0.02em; line-height: 1.15; }
.ac-scope.ac-home-e .ac-check-verdict p { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: rgba(250,250,247,0.86); }
.ac-scope.ac-home-e .ac-check-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.ac-scope.ac-home-e .ac-check-facts > div { background: #fff; border: 1px solid var(--ac-slate-10); border-radius: 12px; padding: 14px 16px; }
.ac-scope.ac-home-e .ac-check-facts b { display: block; font-family: var(--ac-font-mono); font-size: 1.15rem; font-weight: 600; color: var(--ac-ink); font-variant-numeric: tabular-nums; }
.ac-scope.ac-home-e .ac-check-facts span { display: block; font-size: 0.78rem; color: var(--ac-slate-50); margin-top: 4px; line-height: 1.4; }
.ac-scope.ac-home-e .ac-check-bands { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.ac-scope.ac-home-e .ac-check-band { background: #fff; border: 1px solid var(--ac-slate-10); border-radius: 14px; padding: 18px; }
.ac-scope.ac-home-e .ac-check-band.is-short { opacity: 0.72; }
.ac-scope.ac-home-e .ac-check-band-head h4 { margin: 0; font-size: 0.95rem; font-weight: 700; }
.ac-scope.ac-home-e .ac-check-band-head span { display: block; margin-top: 4px; font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.04em; color: var(--ac-slate-50); }
.ac-scope.ac-home-e .ac-check-band.is-ok .ac-check-band-head span { color: #1F7A5A; }
.ac-scope.ac-home-e .ac-check-band-num { margin: 14px 0 12px; font-size: 0.8rem; color: var(--ac-slate-70); }
.ac-scope.ac-home-e .ac-check-band-num b { display: block; font-family: var(--ac-font-display); font-size: 1.6rem; font-weight: 700; letter-spacing: -0.03em; color: var(--ac-ink); font-variant-numeric: tabular-nums; }
.ac-scope.ac-home-e .ac-check-band dl { margin: 0; display: grid; gap: 6px; }
.ac-scope.ac-home-e .ac-check-band dl > div { display: flex; justify-content: space-between; gap: 8px; font-size: 0.78rem; border-top: 1px solid var(--ac-slate-10); padding-top: 6px; }
.ac-scope.ac-home-e .ac-check-band dt { color: var(--ac-slate-50); }
.ac-scope.ac-home-e .ac-check-band dd { margin: 0; color: var(--ac-ink); font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
.ac-scope.ac-home-e .ac-check-next { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 18px; padding: 18px 20px; background: var(--ac-paper-2); border-radius: 14px; }
.ac-scope.ac-home-e .ac-check-next p { margin: 0; font-size: 0.9375rem; color: var(--ac-slate-70); }
@media (max-width: 960px) { .ac-scope.ac-home-e .ac-e-check-grid { grid-template-columns: 1fr; } .ac-scope.ac-home-e .ac-check-form { position: static; } .ac-scope.ac-home-e .ac-check-facts { grid-template-columns: 1fr 1fr; } .ac-scope.ac-home-e .ac-check-bands { grid-template-columns: 1fr; } }

/* sam */
.ac-scope.ac-home-e .ac-e-sam { background: var(--ac-ink); color: var(--ac-paper); }
.ac-scope.ac-home-e .ac-e-sam-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.ac-scope.ac-home-e .ac-e-sam-photo img { width: 100%; height: auto; border-radius: 18px; display: block; }
.ac-scope.ac-home-e .ac-e-sam .ac-e-h2, .ac-scope.ac-home-e .ac-e-sam .ac-body { color: var(--ac-paper); }
.ac-scope.ac-home-e .ac-e-sam .ac-body { color: rgba(250,250,247,0.86); }
.ac-scope.ac-home-e .ac-e-promises { list-style: none; margin: 28px 0 26px; padding: 0; display: grid; gap: 0; border-top: 1px solid rgba(250,250,247,0.14); }
.ac-scope.ac-home-e .ac-e-promises li { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid rgba(250,250,247,0.14); font-size: 0.9375rem; line-height: 1.5; }
.ac-scope.ac-home-e .ac-e-promises b { font-weight: 700; color: var(--ac-paper); }
.ac-scope.ac-home-e .ac-e-promises span { color: rgba(250,250,247,0.74); }
.ac-scope.ac-home-e .ac-e-sam .ac-pin-link-ink { color: var(--ac-paper); }
@media (max-width: 960px) { .ac-scope.ac-home-e .ac-e-sam-grid { grid-template-columns: 1fr; } .ac-scope.ac-home-e .ac-e-sam-photo { max-width: 420px; } }
@media (max-width: 600px) { .ac-scope.ac-home-e .ac-e-promises li { grid-template-columns: 1fr; gap: 4px; } }

/* questions and the honesty box */
.ac-scope.ac-home-e .ac-e-q-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.ac-scope.ac-home-e .ac-e-faq { border-top: 1px solid var(--ac-slate-30); margin-top: 26px; }
.ac-scope.ac-home-e .ac-e-faq-item { border-bottom: 1px solid var(--ac-slate-10); }
.ac-scope.ac-home-e .ac-e-faq-item summary { cursor: pointer; list-style: none; padding: 20px 40px 20px 0; font-size: 1.1rem; font-weight: 700; letter-spacing: -0.01em; position: relative; }
.ac-scope.ac-home-e .ac-e-faq-item summary::-webkit-details-marker { display: none; }
.ac-scope.ac-home-e .ac-e-faq-item summary::after { content: '+'; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-family: var(--ac-font-mono); font-size: 1.3rem; color: var(--ac-slate-50); font-weight: 400; }
.ac-scope.ac-home-e .ac-e-faq-item[open] summary::after { content: '\2013'; }
.ac-scope.ac-home-e .ac-e-faq-item p { margin: 0 0 22px; font-size: 0.9375rem; line-height: 1.65; color: var(--ac-slate-70); max-width: 62ch; }
.ac-scope.ac-home-e .ac-e-honest { background: var(--ac-paper-2); border: 1px solid var(--ac-slate-10); border-left: 4px solid var(--ac-signal); border-radius: 18px; padding: clamp(22px, 2.6vw, 34px); position: sticky; top: 24px; }
.ac-scope.ac-home-e .ac-e-honest h3 { margin: 0 0 12px; font-size: clamp(1.6rem, 2.4vw, 2.1rem); font-weight: 700; letter-spacing: -0.025em; }
.ac-scope.ac-home-e .ac-e-honest p { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: var(--ac-slate-70); }
.ac-scope.ac-home-e .ac-e-honest-line { margin-top: 16px !important; padding-top: 14px; border-top: 1px solid var(--ac-slate-10); font-family: var(--ac-font-mono); font-size: 0.78rem !important; color: var(--ac-ink) !important; }
@media (max-width: 960px) { .ac-scope.ac-home-e .ac-e-q-grid { grid-template-columns: 1fr; } .ac-scope.ac-home-e .ac-e-honest { position: static; } }

/* research and recent deals */
.ac-scope.ac-home-e .ac-e-research { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 30px 0 30px; }
.ac-scope.ac-home-e .ac-e-research-cell { background: #fff; border: 1px solid var(--ac-slate-10); border-radius: 14px; padding: 22px 24px; }
.ac-scope.ac-home-e .ac-e-research-cell b { display: block; font-family: var(--ac-font-display); font-size: clamp(1.6rem, 2.6vw, 2.2rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1; color: var(--ac-ink); font-variant-numeric: tabular-nums; }
.ac-scope.ac-home-e .ac-e-research-cell span { display: block; margin-top: 10px; font-size: 0.875rem; line-height: 1.45; color: var(--ac-slate-70); }
.ac-scope.ac-home-e .ac-e-recent { margin-top: 40px; }
.ac-scope.ac-home-e .ac-e-deals { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--ac-slate-10); border-radius: 14px; overflow: hidden; font-size: 0.9rem; }
.ac-scope.ac-home-e .ac-e-deals th { text-align: left; font-family: var(--ac-font-mono); font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ac-slate-50); font-weight: 600; padding: 12px 16px; border-bottom: 1px solid var(--ac-slate-10); background: var(--ac-paper); }
.ac-scope.ac-home-e .ac-e-deals td { padding: 14px 16px; border-bottom: 1px solid var(--ac-slate-10); color: var(--ac-slate-70); vertical-align: top; }
.ac-scope.ac-home-e .ac-e-deals td:nth-child(3), .ac-scope.ac-home-e .ac-e-deals td:nth-child(4) { font-family: var(--ac-font-mono); color: var(--ac-ink); font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ac-scope.ac-home-e .ac-e-deals tr:last-child td { border-bottom: 0; }
@media (max-width: 960px) { .ac-scope.ac-home-e .ac-e-research { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .ac-scope.ac-home-e .ac-e-deals th:nth-child(1), .ac-scope.ac-home-e .ac-e-deals td:nth-child(1) { display: none; } }

/* close */
.ac-scope.ac-home-e .ac-e-close { background: var(--ac-ink); color: var(--ac-paper); text-align: left; }
.ac-scope.ac-home-e .ac-e-close-h { margin: 0 0 18px; max-width: 900px; color: var(--ac-paper); }
.ac-scope.ac-home-e .ac-e-close .ac-e-lead { margin-bottom: 30px; }
.ac-scope.ac-home-e .ac-e-close-links { margin: 26px 0 0; font-size: 0.875rem; color: rgba(250,250,247,0.7); }
.ac-scope.ac-home-e .ac-e-close-links a { color: var(--ac-paper); }

/* notes */
.ac-scope.ac-home-e .ac-e-notes { background: var(--ac-paper-2); padding: clamp(40px, 5vw, 64px) 0 clamp(40px, 5vw, 64px); border-top: 1px solid var(--ac-slate-10); }
.ac-scope.ac-home-e .ac-e-notes h2 { margin: 0 0 16px; font-size: 1rem; font-family: var(--ac-font-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-slate-50); font-weight: 600; }
.ac-scope.ac-home-e .ac-e-notes ol { margin: 0; padding: 0 0 0 1.4em; columns: 2; column-gap: 40px; font-size: 0.8125rem; line-height: 1.6; color: var(--ac-slate-70); }
.ac-scope.ac-home-e .ac-e-notes li { break-inside: avoid; margin-bottom: 10px; padding-left: 4px; }
.ac-scope.ac-home-e .ac-e-whatwe { margin-top: 32px; padding-top: 26px; border-top: 1px solid var(--ac-slate-30); max-width: 900px; }
.ac-scope.ac-home-e .ac-e-whatwe h3 { margin: 0 0 10px; font-size: 1.05rem; font-weight: 700; }
.ac-scope.ac-home-e .ac-e-whatwe p { margin: 0; font-size: 0.875rem; line-height: 1.65; color: var(--ac-slate-70); }
.ac-scope.ac-home-e .ac-e-whatwe a { color: var(--ac-ink); font-weight: 600; }
@media (max-width: 720px) { .ac-scope.ac-home-e .ac-e-notes ol { columns: 1; } .ac-home-e ~ footer, .ac-page footer { padding-bottom: calc(24px + 72px) !important; } }

/* ===== Sprint 170 · ASAP Sprint F · the Hormozi audit applied. Headline unchanged. =====
   One action above the fold, the send ask on the result, the problem in slot two, badges at badge weight,
   a two step check in a dialog, Sam visible in the phone fold, no header navigation. Nothing animates. */
.ac-scope.ac-home-e .ac-e-lead { max-width: 560px; }
.ac-scope.ac-home-e .ac-e-cta-one { margin-bottom: 10px; }
.ac-scope.ac-home-e .ac-e-cta-one .ac-btn { font-size: 1.05rem; padding: 18px 28px; }
.ac-scope.ac-home-e .ac-e-nostore { margin: 0 0 22px; font-size: 0.875rem; color: rgba(250,250,247,0.66); }
.ac-scope.ac-home-e .ac-e-badges { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ac-scope.ac-home-e .ac-e-badges li { display: inline-flex; flex-direction: column; gap: 1px; padding: 8px 12px; border: 1px solid rgba(250,250,247,0.18); border-radius: 10px; background: rgba(250,250,247,0.05); }
.ac-scope.ac-home-e .ac-e-badges b { font-family: var(--ac-font-mono); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.02em; color: var(--ac-paper); }
.ac-scope.ac-home-e .ac-e-badges span { font-size: 0.78rem; color: rgba(250,250,247,0.6); }
.ac-scope.ac-home-e .ac-e-alt { margin: 22px 0 0; font-size: 0.9375rem; color: rgba(250,250,247,0.72); }
.ac-scope.ac-home-e .ac-e-alt a { color: var(--ac-paper); text-decoration: underline; text-decoration-color: #FF8A73; text-underline-offset: 3px; font-weight: 600; }
.ac-scope.ac-home-e .ac-e-alt a:hover { color: #FF8A73; }

/* the problem in slot two: tighter band than the others */
.ac-scope.ac-home-e .ac-e-why { padding: clamp(44px, 6vw, 80px) 0; }
.ac-scope.ac-home-e .ac-e-why .ac-e-para { margin-top: 28px; }

/* the three questions live inside the doors now */
.ac-scope.ac-home-e .ac-e-door-q { margin-top: 16px; border-top: 1px solid var(--ac-slate-10); }
.ac-scope.ac-home-e .ac-e-door-q summary { cursor: pointer; list-style: none; padding: 14px 28px 4px 0; font-size: 0.95rem; font-weight: 700; color: var(--ac-ink); position: relative; }
.ac-scope.ac-home-e .ac-e-door-q summary::-webkit-details-marker { display: none; }
.ac-scope.ac-home-e .ac-e-door-q summary::after { content: '+'; position: absolute; right: 2px; top: 12px; font-family: var(--ac-font-mono); color: var(--ac-signal); font-weight: 600; }
.ac-scope.ac-home-e .ac-e-door-q[open] summary::after { content: '\2013'; }
.ac-scope.ac-home-e .ac-e-door-q p { margin: 8px 0 0; font-size: 0.9rem; line-height: 1.55; color: var(--ac-slate-70); }

/* recent settlements beside the honesty box */
.ac-scope.ac-home-e #questions .ac-e-recent { margin-top: 0; }
.ac-scope.ac-home-e .ac-check-next-fine { display: block; margin-top: 10px; font-size: 0.8125rem; color: var(--ac-slate-50); }

/* the two step dialog */
.ac-scope.ac-home-e .ac-e-modal { border: 0; border-radius: 22px; padding: 0; width: min(920px, calc(100vw - 32px)); max-height: calc(100vh - 32px); background: var(--ac-paper); color: var(--ac-ink); box-shadow: 0 30px 80px rgba(8,23,42,0.45); }
.ac-scope.ac-home-e .ac-e-modal::backdrop { background: rgba(8,23,42,0.72); }
.ac-scope.ac-home-e .ac-e-modal-close-form { position: absolute; right: 14px; top: 12px; margin: 0; z-index: 2; }
.ac-scope.ac-home-e .ac-e-modal-close { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--ac-slate-10); background: var(--ac-paper); color: var(--ac-ink); font-size: 1.4rem; line-height: 1; cursor: pointer; }
.ac-scope.ac-home-e .ac-e-modal-close:hover { border-color: var(--ac-signal); color: var(--ac-signal); }
.ac-scope.ac-home-e .ac-e-modal-body { padding: clamp(28px, 4vw, 44px); }
.ac-scope.ac-home-e .ac-e-modal-step { margin-left: 10px; color: var(--ac-slate-50); text-transform: none; letter-spacing: 0; font-weight: 500; }
.ac-scope.ac-home-e .ac-e-modal-h { margin: 0 0 22px; font-family: var(--ac-font-display); font-size: clamp(1.8rem, 3.2vw, 2.4rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1.05; }
.ac-scope.ac-home-e .ac-e-modal-form { max-width: none; }
.ac-scope.ac-home-e .ac-e-modal-s1 { display: grid; gap: 16px; max-width: 460px; }
.ac-scope.ac-home-e .ac-e-modal-s1 .ac-check-money input { font-size: 1.4rem; padding: 16px 14px; }
.ac-scope.ac-home-e .ac-e-modal-s1 .ac-btn { justify-self: start; }
.ac-scope.ac-home-e .ac-e-modal-form[hidden], .ac-scope.ac-home-e .ac-e-modal-s1[hidden], .ac-scope.ac-home-e .ac-e-modal-s2[hidden], .ac-scope.ac-home-e .ac-e-modal-result[hidden] { display: none; }
.ac-scope.ac-home-e .ac-e-modal-result { margin-top: 4px; }

/* phone: Sam in the first screen. The card comes before the copy, cropped to a short band, so the proof asset is seen by everyone. */
@media (max-width: 960px) {
  .ac-scope.ac-home-e .ac-e-hero { padding-top: 18px; }
  .ac-scope.ac-home-e .ac-e-hero-grid { display: flex; flex-direction: column; gap: 18px; }
  .ac-scope.ac-home-e .ac-e-hero-grid .ac-hero-card { order: -1; }
  .ac-scope.ac-home-e .ac-hero-card .ac-hero-still, .ac-scope.ac-home-e .ac-hero-card .ac-hero-film { aspect-ratio: 21 / 9; }
  .ac-scope.ac-home-e .ac-hero-card .ac-film-cap { display: none; }
  .ac-scope.ac-home-e .ac-e-eyebrow { margin-bottom: 10px; }
  .ac-scope.ac-home-e .ac-e-h1 { margin-bottom: 14px; }
  .ac-scope.ac-home-e .ac-e-lead { margin-bottom: 18px; font-size: 1rem; }
  .ac-scope.ac-home-e .ac-e-cta-one .ac-btn { width: 100%; justify-content: center; }
  .ac-scope.ac-home-e .ac-e-badges li { padding: 6px 10px; }
  .ac-scope.ac-home-e .ac-e-alt { margin-top: 14px; font-size: 0.875rem; }
}

/* Sprint 203 · audit fixes. Kicker is now the H1 (keyword for engines, same look for people). Footnotes are plain marks,
   not tap targets. The lower half folds: recent settlements and the notes open on request. Font floor 12.5px. */
.ac-scope.ac-home-e h1.ac-e-eyebrow { font-weight: 600; line-height: 1.5; max-width: 640px; }
.ac-scope.ac-home-e p.ac-e-h1 { font-family: var(--ac-font-display); font-weight: 700; letter-spacing: -0.028em; line-height: 1.04; text-wrap: balance; }
.ac-scope.ac-home-e sup { font-size: 0.62em; }
.ac-scope.ac-home-e details.ac-e-fold > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; min-height: 44px; padding: 10px 0; }
.ac-scope.ac-home-e details.ac-e-fold > summary::-webkit-details-marker { display: none; }
.ac-scope.ac-home-e details.ac-e-fold > summary .ac-e-kicker { margin: 0; }
.ac-scope.ac-home-e details.ac-e-fold > summary h2 { margin: 0; }
.ac-scope.ac-home-e .ac-e-fold-hint { font-family: var(--ac-font-mono); font-size: 0.78rem; color: var(--ac-slate-50); }
.ac-scope.ac-home-e .ac-e-fold-hint::before { content: '+ '; color: var(--ac-signal); font-weight: 700; }
.ac-scope.ac-home-e details.ac-e-fold[open] > summary .ac-e-fold-hint::before { content: '\2212  '; }
.ac-scope.ac-home-e details.ac-e-fold > :not(summary) { margin-top: 12px; }
.ac-scope.ac-home-e .ac-e-notes-fold ol { margin-top: 12px; }

/* Sprint 203 · phone length. The audit measured 14.1 screens on a 390px phone; a developer on site will not scroll that.
   Research cells and the proof row become compact rows, bands breathe less, the second and third door cards fold behind
   one line, the step paragraphs tighten. Nothing is removed; it is nearer to hand. Target under 10 screens. */
@media (max-width: 720px) {
  .ac-scope.ac-home-e .ac-e-band { padding: 44px 0; }
  .ac-scope.ac-home-e .ac-e-h2 { font-size: clamp(1.55rem, 7vw, 2rem); margin-bottom: 14px; }
  .ac-scope.ac-home-e .ac-e-research { gap: 8px; margin: 18px 0 18px; }
  .ac-scope.ac-home-e .ac-e-research-cell { display: grid; grid-template-columns: 96px 1fr; align-items: center; gap: 12px; padding: 12px 14px; }
  .ac-scope.ac-home-e .ac-e-research-cell b { font-size: 1.35rem; }
  .ac-scope.ac-home-e .ac-e-research-cell span { margin-top: 0; font-size: 0.8125rem; }
  .ac-scope.ac-home-e .ac-e-para { margin-bottom: 0; font-size: 0.95rem; }
  .ac-scope.ac-home-e .ac-e-proof-cell { padding: 14px 10px; }
  .ac-scope.ac-home-e .ac-e-proof-cell b { font-size: 1.5rem; }
  .ac-scope.ac-home-e .ac-e-proof-cell span { margin-top: 4px; font-size: 0.78rem; }
  .ac-scope.ac-home-e .ac-e-doors { gap: 10px; }
  .ac-scope.ac-home-e .ac-e-door { padding: 18px 18px 14px; }
  .ac-scope.ac-home-e .ac-e-door p { font-size: 0.9rem; }
  .ac-scope.ac-home-e .ac-e-door-line { padding-top: 10px; }
  .ac-scope.ac-home-e .ac-e-door:nth-child(n+2) { display: none; }
  .ac-scope.ac-home-e .ac-e-doors.open .ac-e-door:nth-child(n+2) { display: block; }
  .ac-scope.ac-home-e .ac-e-doors-more { display: inline-flex; align-items: center; min-height: 44px; margin-top: 4px; font-family: var(--ac-font-mono); font-size: 0.78rem; color: var(--ac-ink); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
  .ac-scope.ac-home-e .ac-e-doors.open + .ac-e-doors-more { display: none; }
  .ac-scope.ac-home-e .ac-e-not { margin-top: 14px; font-size: 0.875rem; }
  .ac-scope.ac-home-e .ac-e-steps { margin-top: 18px; }
  .ac-scope.ac-home-e .ac-e-step { padding: 16px 0; }
  .ac-scope.ac-home-e .ac-e-step p { font-size: 0.9rem; }
  .ac-scope.ac-home-e .ac-e-sam-photo { max-width: 200px; }
  .ac-scope.ac-home-e .ac-e-close-h { font-size: clamp(1.7rem, 8vw, 2.3rem); }
}
@media (min-width: 721px) { .ac-scope.ac-home-e .ac-e-doors-more { display: none; } }

/* Sprint 203 · touch targets. Inline sentence links and footer links keep their type size but gain a 44px hit area on
   touch screens (padding on an inline-block, negative margin so the line does not move). */
@media (pointer: coarse) {
  .ac-page p a:not(.ac-btn), .ac-page li a:not(.ac-btn), .ac-page footer a:not(.ac-btn), .ac-page .ac-e-close-links a, .ac-page .ac-e-topbar a, .ac-page dd a, .ac-page address a { display: inline-block; padding: 12px 4px; margin: -12px -4px; }
  .ac-scope nav a, .ac-scope header a, .ac-page header a, .ac-page nav a { display: inline-flex; align-items: center; min-height: 44px; }
  .ac-scope sup { font-size: 0.62em; }
}
