/* CRITICAL: enable container queries on the page root */
.psl-method { container-type: inline-size; container-name: pslmethod; }

/* PSL Method Page — locked spec (April 2026 update)
   Scoped under .psl-method to keep its colour palette / type system isolated
   from the rest of the project. The brief specifies a slightly different
   palette (Dark Navy #0D0042, Primary Blue #4644B9, Turquoise #2EE0B0) and a
   stricter type scale than the homepage, so we don't overwrite global tokens. */

.psl-method {
  --m-dark-navy:   #0D0042;
  --m-blue:        #4644B9;
  --m-blue-hover:  #3835A6;
  --m-turquoise:   #2EE0B0;
  --m-white:       #FFFFFF;
  --m-light-grey:  #F4F4F4;
  --m-dark-grey:   #374151;
  --m-mid-grey:    #6B7280;
  --m-border:      #E5E7EB;

  --m-container:   1200px;
  --m-pad:         24px;

  font-family: "Mona Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: var(--m-dark-grey);
  background: var(--m-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.psl-method *,
.psl-method *::before,
.psl-method *::after { box-sizing: border-box; }

.psl-method .m-container {
  max-width: var(--m-container);
  margin: 0 auto;
  padding-left: var(--m-pad);
  padding-right: var(--m-pad);
}

/* ---------- Type ---------- */
.psl-method .m-overline {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--m-blue);
  margin-bottom: 16px;
}
.psl-method .m-h2 {
  font-size: 30px;
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: var(--m-dark-navy);
  margin: 0;
  text-wrap: balance;
}
/* Canonical emphasis helpers (match Home). */
.psl-method .m-h-accent {
  background: linear-gradient(120deg, #0FB388 0%, #2563EB 55%, #8936FF 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  font-style: italic; font-weight: inherit;
}
.psl-method .m-accent-blue { color: #1F4DD8; font-style: italic; font-weight: inherit; }
.psl-method .m-section-intro {
  font-size: 18px;
  line-height: 1.7;
  color: var(--m-dark-grey);
  margin: 24px 0 0;
  max-width: 820px;
}

/* ---------- Section rhythm ---------- */
.psl-method .m-section { padding: 72px 0; }
.psl-method .m-foundations {
  background:
    radial-gradient(720px 420px at 100% 0%, rgba(124,58,237,0.05), transparent 60%),
    radial-gradient(720px 420px at 0% 100%, rgba(37,99,235,0.05), transparent 60%),
    linear-gradient(180deg, #FFFFFF 0%, #FAFBFE 100%);
}
.psl-method .m-system {
  background:
    radial-gradient(900px 520px at 12% 0%, rgba(70,68,185,0.07) 0%, transparent 60%),
    radial-gradient(820px 520px at 100% 100%, rgba(25,230,196,0.06) 0%, transparent 62%),
    linear-gradient(180deg, #F7F8FC 0%, #EDF1F8 100%);
}
.psl-method .m-steps  { background: var(--m-light-grey); }
.psl-method .m-cta    { background: var(--m-dark-navy); padding: 96px 0; }

/* =====================================================================
   NAV
   ===================================================================== */
.psl-method .m-nav {
  background: var(--m-white);
  border-bottom: 1px solid var(--m-border);
  position: sticky; top: 0; z-index: 50;
}
.psl-method .m-nav-inner {
  height: 80px;
  display: flex; align-items: center; justify-content: space-between;
}
.psl-method .m-nav-logo img { height: 32px; display: block; }
.psl-method .m-nav-links {
  display: flex; align-items: center; gap: 32px;
}
.psl-method .m-nav-link {
  font-size: 15px;
  font-weight: 500;
  color: var(--m-dark-navy);
  transition: color 0.2s ease;
}
.psl-method .m-nav-link:hover { color: var(--m-blue); }
.psl-method .m-nav-link.active {
  color: var(--m-blue);
  font-weight: 600;
}
.psl-method .m-nav-cta {
  background: var(--m-blue);
  color: var(--m-white);
  font-size: 15px;
  font-weight: 600;
  padding: 12px 22px;
  border-radius: 8px;
  transition: background 0.2s ease, transform 0.2s ease;
}
.psl-method .m-nav-cta:hover {
  background: var(--m-blue-hover);
  transform: translateY(-1px);
}

/* =====================================================================
   HERO
   ===================================================================== */
.psl-method .m-hero {
  background: var(--m-white);
  padding: 96px 0 80px;
  border-bottom: 1px solid var(--m-border);
}
.psl-method .m-hero .m-overline { color: var(--m-blue); }
.psl-method .m-hero-h {
  font-size: 48px;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--m-dark-navy);
  margin: 0 0 32px;
  max-width: 960px;
  /* Brief: SemiExpanded SemiBold for hero — Mona Sans ships standard width
     in this project, so we approximate with a touch of horizontal stretch
     and the SemiBold weight. */
  font-stretch: 110%;
  text-wrap: balance;
}
.psl-method .m-hero-sub {
  font-size: 22px;
  line-height: 1.55;
  color: var(--m-dark-grey);
  font-weight: 500;
  margin: 0 0 40px;
  max-width: 880px;
}
.psl-method .m-hero-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1px solid var(--m-border);
}
.psl-method .m-hero-body p {
  font-size: 18px;
  line-height: 1.7;
  color: var(--m-dark-grey);
  margin: 0;
}

/* =====================================================================
   PERFORMANCE SYSTEM (rings + content)
   ===================================================================== */
.psl-method .m-system-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 48px;
  align-items: center;
  margin-top: 48px;
}

/* Rings — left column */
.psl-method .m-rings {
  display: flex; flex-direction: column;
  gap: 32px;
}
/* Enlarged embedded animation — fills the (wider) left column so the rings
   read as large and tightly fit, like the home page. */
.psl-method .m-rings .psl-perf-anim { max-width: 100%; width: 100%; margin: 0 auto; }
.psl-method .m-rings-art {
  position: relative;
  width: 100%;
  max-width: 480px;
  aspect-ratio: 1 / 1;
  margin: 0 auto;
}
.psl-method .m-rings-img {
  width: 100%; height: 100%;
  display: block;
  user-select: none;
}
.psl-method .m-rings-hits {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
}

/* Active turquoise marker — small dot positioned over the active ring band.
   Coordinates are tuned to the Rings-Graphic.svg layout. */
.psl-method .m-rings-marker {
  position: absolute;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--m-turquoise);
  box-shadow: 0 0 0 6px rgba(25, 230, 196, 0.18),
              0 0 18px rgba(25, 230, 196, 0.45);
  transform: translate(-50%, -50%);
  transition: top 0.4s cubic-bezier(0.2,0.7,0.2,1),
              left 0.4s cubic-bezier(0.2,0.7,0.2,1);
  pointer-events: none;
}
.psl-method .m-rings-marker-0 { top: 50%; left: 50%; }
.psl-method .m-rings-marker-1 { top: 50%; left: 78%; }
.psl-method .m-rings-marker-2 { top: 16%; left: 50%; }
.psl-method .m-rings-marker-dot {
  display: block;
  width: 6px; height: 6px;
  margin: 5px;
  border-radius: 50%;
  background: var(--m-white);
}

/* Ring legend (mirrors active state) */
.psl-method .m-rings-legend {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex; flex-direction: column;
  gap: 4px;
}
.psl-method .m-rings-legend-item {
  display: flex; align-items: flex-start; gap: 16px;
  width: 100%;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 12px 16px;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.psl-method .m-rings-legend-item:hover {
  background: rgba(70, 68, 185, 0.04);
}
.psl-method .m-rings-legend-item.active {
  background: var(--m-white);
  border-color: var(--m-border);
  box-shadow: 0 1px 3px rgba(13, 0, 66, 0.04);
}
.psl-method .m-rings-legend-num {
  font-size: 13px;
  font-weight: 600;
  color: var(--m-mid-grey);
  letter-spacing: 0.06em;
  font-variant-numeric: tabular-nums;
  padding-top: 2px;
}
.psl-method .m-rings-legend-item.active .m-rings-legend-num { color: var(--m-blue); }
.psl-method .m-rings-legend-text {
  display: flex; flex-direction: column;
  gap: 2px;
}
.psl-method .m-rings-legend-label {
  font-size: 16px;
  font-weight: 600;
  color: var(--m-dark-navy);
}
.psl-method .m-rings-legend-desc {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m-mid-grey);
}
.psl-method .m-rings-legend-item.active .m-rings-legend-desc { color: var(--m-blue); }

/* Content panel — right column */
.psl-method .m-system-panel {
  background: var(--m-white);
  border: 1px solid var(--m-border);
  border-radius: 12px;
  padding: 40px;
  animation: m-panel-fade 0.35s cubic-bezier(0.2,0.7,0.2,1);
}
@keyframes m-panel-fade {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.psl-method .m-system-panel-meta {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 16px;
}
.psl-method .m-system-panel-num {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--m-blue);
  font-variant-numeric: tabular-nums;
}
.psl-method .m-system-panel-rule {
  flex: 0 0 24px;
  height: 1px;
  background: var(--m-blue);
  opacity: 0.5;
}
.psl-method .m-system-panel-desc {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m-blue);
}
.psl-method .m-system-panel-h {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--m-blue);
  margin: 0 0 16px;
}
.psl-method .m-system-panel-body {
  font-size: 16px;
  line-height: 1.7;
  color: var(--m-dark-grey);
  margin: 0;
}
/* "When it's missing" — inline labelled section (no left-accent callout box). */
.psl-method .m-failure {
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid var(--m-border);
}
.psl-method .m-failure-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #C2410C;
  margin-bottom: 10px;
}
.psl-method .m-failure-label svg { color: #C2410C; }
.psl-method .m-failure-body {
  font-size: 15px;
  line-height: 1.65;
  color: var(--m-dark-grey);
  margin: 0;
}

.psl-method .m-system-panel-tabs {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--m-border);
}
.psl-method .m-system-panel-tab {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--m-white);
  border: 1px solid var(--m-border);
  border-radius: 999px;
  padding: 8px 14px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--m-mid-grey);
  cursor: pointer;
  transition: all 0.2s ease;
}
.psl-method .m-system-panel-tab:hover {
  border-color: var(--m-blue);
  color: var(--m-blue);
}
.psl-method .m-system-panel-tab.active {
  background: var(--m-blue);
  border-color: var(--m-blue);
  color: var(--m-white);
}
.psl-method .m-system-panel-tab-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--m-mid-grey);
  display: inline-block;
}
.psl-method .m-system-panel-tab:hover .m-system-panel-tab-dot { background: var(--m-blue); }
.psl-method .m-system-panel-tab.active .m-system-panel-tab-dot { background: var(--m-turquoise); }

/* Closing line below the rings/panel block */
.psl-method .m-system-foot {
  margin-top: 48px;
  padding: 26px 32px;
  background:
    radial-gradient(600px 200px at 0% -40%, rgba(70,68,185,0.07), transparent 70%),
    linear-gradient(180deg, #FFFFFF 0%, #F5F7FC 100%);
  border: 1px solid var(--m-border);
  border-radius: 16px;
  text-align: left;
}
.psl-method .m-system-foot-head {
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 12px;
}
.psl-method .m-system-foot-chain {
  display: flex; align-items: center; gap: 0; flex-shrink: 0;
}
.psl-method .m-system-foot-node {
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--c);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--c) 16%, transparent);
}
.psl-method .m-system-foot-link {
  width: 28px; height: 2px;
  background: rgba(13,0,66,0.18);
}
.psl-method .m-system-foot-eyebrow {
  font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--m-dark-navy);
}
.psl-method .m-system-foot-text {
  margin: 0;
  max-width: 820px;
  font-size: 16px;
  line-height: 1.65;
  color: var(--m-dark-grey);
}
.psl-method .m-system-foot-text strong { font-weight: 700; }

/* =====================================================================
   FOUNDATIONS — three cards
   ===================================================================== */
.psl-method .m-foundations-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 56px;
}
.psl-method .m-card {
  background: var(--m-white);
  border: 1px solid var(--m-border);
  border-radius: 12px;
  padding: 32px;
  display: flex; flex-direction: column;
  gap: 20px;
}
.psl-method .m-card-label {
  font-size: 16px;
  font-weight: 600;
  color: var(--m-dark-navy);
  /* 3px solid #4644B9 left border, 12px left padding — label only */
  border-left: 3px solid var(--m-blue);
  padding-left: 12px;
  line-height: 1.3;
}
.psl-method .m-card-body { display: flex; flex-direction: column; gap: 16px; }
.psl-method .m-card-body p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--m-dark-grey);
  margin: 0;
}

/* =====================================================================
   PRACTICE AREAS — five numbered cards on white
   ===================================================================== */
.psl-method .m-practice { background: var(--m-white); }
.psl-method .m-practice-grid {
  list-style: none;
  margin: 56px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  border-top: 1px solid var(--m-border);
  border-bottom: 1px solid var(--m-border);
}
.psl-method .m-practice-card {
  display: flex; flex-direction: column;
  gap: 16px;
  padding: 32px 24px;
  border-right: 1px solid var(--m-border);
  position: relative;
}
.psl-method .m-practice-card:last-child { border-right: none; }
.psl-method .m-practice-num {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--m-blue);
  font-variant-numeric: tabular-nums;
}
.psl-method .m-practice-rule {
  height: 2px;
  width: 24px;
  background: var(--m-blue);
  opacity: 0.4;
  border-radius: 1px;
}
.psl-method .m-practice-label {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--m-dark-navy);
  margin: 0;
}
.psl-method .m-practice-body {
  font-size: 15px;
  line-height: 1.6;
  color: var(--m-dark-grey);
  margin: 0;
}

/* =====================================================================
   SOURCES LEDGER — four-up below the body paragraph in Sources section
   ===================================================================== */
.psl-method .m-sources-grid {
  list-style: none;
  margin: 48px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--m-border);
}
.psl-method .m-source {
  padding: 28px 24px 0 0;
  display: flex; flex-direction: column;
  gap: 8px;
  border-right: 1px solid var(--m-border);
  padding-right: 24px;
}
.psl-method .m-source:not(:first-child) { padding-left: 24px; }
.psl-method .m-source:last-child { border-right: none; padding-right: 0; }
.psl-method .m-source-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--p-c, var(--m-blue));
}
.psl-method .m-source-label {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--m-dark-navy);
  margin: 0;
}
.psl-method .m-source-meta {
  font-size: 13px;
  font-weight: 500;
  color: var(--m-mid-grey);
  letter-spacing: 0.01em;
}

/* =====================================================================
   SIGNATURE INSIGHT — Recovery is inevitable. Editorial dark panel.
   ===================================================================== */
.psl-method .m-insight {
  background: var(--m-dark-navy);
  padding: 120px 0;
  position: relative;
  overflow: hidden;
}
.psl-method .m-insight::before {
  /* Subtle vertical separator down the centre of the editorial spread */
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(255, 255, 255, 0.06);
  pointer-events: none;
}
.psl-method .m-insight-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 80px;
  align-items: start;
  position: relative;
}
.psl-method .m-overline-on-dark {
  color: var(--m-turquoise);
}
.psl-method .m-insight-head {
  position: sticky;
  top: 112px;
}
.psl-method .m-insight-h {
  font-size: 40px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--m-white);
  margin: 16px 0 0;
  text-wrap: balance;
}
.psl-method .m-insight-body {
  display: flex; flex-direction: column;
  gap: 24px;
  padding-top: 8px;
}
.psl-method .m-insight-body p {
  font-size: 18px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.78);
  margin: 0;
}
.psl-method .m-insight-body p strong {
  color: var(--m-white);
  font-weight: 600;
}

/* =====================================================================
   WHAT CHANGES — two horizons side-by-side
   ===================================================================== */
.psl-method .m-changes { background: var(--m-white); }
.psl-method .m-changes-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin-top: 56px;
}
.psl-method .m-horizon {
  background: var(--m-light-grey);
  border-radius: 12px;
  padding: 40px;
  display: flex; flex-direction: column;
  gap: 20px;
}
.psl-method .m-horizon-window {
  display: inline-flex; align-items: baseline;
  gap: 12px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--m-border);
}
.psl-method .m-horizon-window-num {
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
  color: var(--m-blue);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.psl-method .m-horizon-window-label {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m-dark-navy);
}
.psl-method .m-horizon-h {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--m-dark-navy);
  margin: 0;
}
.psl-method .m-horizon-body {
  font-size: 16px;
  line-height: 1.7;
  color: var(--m-dark-grey);
  margin: 0;
}

/* =====================================================================
   FROM DIAGNOSIS TO INTERVENTION — four numbered steps
   ===================================================================== */
.psl-method .m-steps-grid {
  list-style: none;
  margin: 56px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  align-items: start;
}
.psl-method .m-step {
  display: flex; flex-direction: column;
  gap: 16px;
}
.psl-method .m-step-num {
  font-size: 40px;
  font-weight: 700;
  line-height: 1;
  color: var(--m-blue);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.psl-method .m-step-rule {
  height: 2px;
  background: var(--m-blue);
  width: 32px;
  border-radius: 1px;
  opacity: 0.35;
}
.psl-method .m-step-label {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--m-dark-navy);
  margin: 0;
}
.psl-method .m-step-body {
  font-size: 16px;
  line-height: 1.7;
  color: var(--m-dark-grey);
  margin: 0;
}

/* =====================================================================
   CLOSING CTA — full-bleed dark navy
   ===================================================================== */
.psl-method .m-cta-inner {
  display: flex; flex-direction: column;
  align-items: center;
  text-align: center;
}
.psl-method .m-cta-h {
  font-size: 40px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--m-white);
  max-width: 720px;
  margin: 0 0 24px;
  font-stretch: 110%;
}
.psl-method .m-cta-body {
  font-size: 18px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.72);
  max-width: 560px;
  margin: 0 0 40px;
}
.psl-method .m-cta-primary-row {
  margin-bottom: 32px;
}
.psl-method .m-cta-supporting {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.6);
  max-width: 560px;
  margin: 0 0 16px;
}
.psl-method .m-cta-secondary-row {
  margin-top: 0;
}

/* Buttons */
.psl-method .m-btn {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1;
  padding: 16px 32px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  border: 1.5px solid transparent;
  white-space: nowrap;
}
.psl-method .m-btn-primary {
  background: var(--m-blue);
  color: var(--m-white);
  border-color: var(--m-blue);
}
.psl-method .m-btn-primary:hover {
  background: var(--m-blue-hover);
  border-color: var(--m-blue-hover);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(70, 68, 185, 0.35);
}
/* On the dark CTA panel the secondary stays open — white border + white text */
.psl-method .m-cta .m-btn-primary {
  background: var(--m-blue);
  border-color: var(--m-blue);
}
.psl-method .m-btn-secondary {
  background: transparent;
  color: var(--m-white);
  border-color: rgba(255, 255, 255, 0.4);
}
.psl-method .m-btn-secondary:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--m-white);
}

/* =====================================================================
   FOOTER — dark navy, PSL logo only
   ===================================================================== */
.psl-method .m-footer {
  background: var(--m-dark-navy);
  color: rgba(255, 255, 255, 0.72);
  padding: 64px 0 32px;
}
.psl-method .m-footer-top {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 64px;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.psl-method .m-footer-brand {
  display: flex; flex-direction: column;
  gap: 20px;
  max-width: 480px;
}
.psl-method .m-footer-logo {
  height: 36px;
  width: auto;
  display: block;
}
.psl-method .m-footer-tag {
  font-size: 14px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.6);
  margin: 0;
}
.psl-method .m-footer-nav {
  display: flex; flex-wrap: wrap;
  gap: 28px;
  align-items: center;
  justify-content: flex-end;
  align-self: flex-start;
}
.psl-method .m-footer-nav a {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.72);
  transition: color 0.2s ease;
}
.psl-method .m-footer-nav a:hover { color: var(--m-white); }
.psl-method .m-footer-bottom {
  margin-top: 32px;
  display: flex; justify-content: space-between; align-items: center;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
}
.psl-method .m-footer-legal {
  display: flex; gap: 24px;
}
.psl-method .m-footer-legal a {
  color: rgba(255, 255, 255, 0.5);
  transition: color 0.2s ease;
}
.psl-method .m-footer-legal a:hover { color: var(--m-white); }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1023px) {
  .psl-method .m-hero { padding: 64px 0 56px; }
  .psl-method .m-section { padding: 64px 0; }
  .psl-method .m-cta { padding: 72px 0; }
  .psl-method .m-hero-h { font-size: 40px; }
  .psl-method .m-h2 { font-size: 28px; }
  .psl-method .m-cta-h { font-size: 32px; }
  .psl-method .m-system-grid { grid-template-columns: 1fr; gap: 48px; }
  .psl-method .m-foundations-grid { grid-template-columns: 1fr; gap: 16px; }
  .psl-method .m-steps-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .psl-method .m-hero-body { grid-template-columns: 1fr; gap: 24px; }
  .psl-method .m-practice-grid { grid-template-columns: repeat(2, 1fr); }
  .psl-method .m-practice-card { border-right: none; border-bottom: 1px solid var(--m-border); }
  .psl-method .m-practice-card:nth-child(odd) { border-right: 1px solid var(--m-border); }
  .psl-method .m-sources-grid { grid-template-columns: repeat(2, 1fr); }
  .psl-method .m-source { border-bottom: 1px solid var(--m-border); padding-bottom: 24px; }
  .psl-method .m-source:nth-child(2) { border-right: none; padding-right: 0; }
  .psl-method .m-insight { padding: 80px 0; }
  .psl-method .m-insight-shell { grid-template-columns: 1fr; gap: 32px; }
  .psl-method .m-insight::before { display: none; }
  .psl-method .m-insight-head { position: static; }
  .psl-method .m-insight-h { font-size: 32px; }
  .psl-method .m-changes-grid { grid-template-columns: 1fr; }
  .psl-method .m-footer-top { grid-template-columns: 1fr; gap: 32px; }
  .psl-method .m-footer-nav { justify-content: flex-start; }
}
@media (max-width: 640px) {
  .psl-method .m-hero-h { font-size: 32px; }
  .psl-method .m-hero-sub { font-size: 18px; }
  .psl-method .m-h2 { font-size: 24px; }
  .psl-method .m-cta-h { font-size: 26px; }
  .psl-method .m-steps-grid { grid-template-columns: 1fr; }
  .psl-method .m-practice-grid { grid-template-columns: 1fr; }
  .psl-method .m-practice-card { border-right: none !important; }
  .psl-method .m-sources-grid { grid-template-columns: 1fr; }
  .psl-method .m-source { border-right: none; padding-left: 0 !important; padding-right: 0; }
  .psl-method .m-horizon { padding: 28px; }
  .psl-method .m-insight-h { font-size: 26px; }
  .psl-method .m-system-panel { padding: 28px; }
  .psl-method .m-card { padding: 24px; }
  .psl-method .m-nav-links { gap: 16px; }
  .psl-method .m-nav-link { display: none; }
  .psl-method .m-footer-bottom { flex-direction: column; gap: 16px; align-items: flex-start; }
}


/* =====================================================================
   V5 — interactivity & animation layer
   Scoped under .psl-method-v5 so v4 tight (in v3 backup) is unaffected.
   ===================================================================== */

/* ---------- shared anim primitives ---------- */
.psl-method-v5 .m-anim-fade,
.psl-method-v5 .m-anim-fadeup {
  opacity: 0;
  display: inline-block;
  transition: opacity 0.7s cubic-bezier(0.2,0.7,0.2,1),
              transform 0.7s cubic-bezier(0.2,0.7,0.2,1);
}
.psl-method-v5 .m-anim-fadeup { transform: translateY(14px); }
.psl-method-v5 .is-in .m-anim-fade,
.psl-method-v5 .is-in .m-anim-fadeup {
  opacity: 1;
  transform: translateY(0);
}
.psl-method-v5 .m-anim-d0 { transition-delay: 0.0s; }
.psl-method-v5 .m-anim-d1 { transition-delay: 0.08s; }
.psl-method-v5 .m-anim-d2 { transition-delay: 0.16s; }
.psl-method-v5 .m-anim-d3 { transition-delay: 0.24s; }
.psl-method-v5 .m-anim-d4 { transition-delay: 0.42s; }
.psl-method-v5 .m-anim-d5 { transition-delay: 0.6s; }
@media (prefers-reduced-motion: reduce) {
  .psl-method-v5 .m-anim-fade,
  .psl-method-v5 .m-anim-fadeup { opacity: 1; transform: none; transition: none; }
}

/* ---------- HERO ---------- */
.psl-method-v5 .m-hero-v5 {
  position: relative;
  overflow: hidden;
  margin-top: -55px;
  padding: 150px 0 80px;
}
/* Method hero: the image strip bleeds to the very top behind a transparent
   nav (no white band / seam). The nav turns solid only once scrolled. */
.psl-method .psl-nav--light:not(.is-scrolled) {
  background: transparent;
  border-bottom-color: transparent;
  box-shadow: none;
}
.psl-method-v5 .m-hero-aurora {
  position: absolute; inset: 0;
  pointer-events: none; z-index: 0;
}
/* Hero section index — consistent section names, clickable jump-to. */
.psl-method-v5 .m-hero-nav { margin-top: 36px; }
.psl-method-v5 .m-hero-nav-label {
  display: block;
  font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--m-blue); margin-bottom: 14px;
}
.psl-method-v5 .m-hero-nav-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px;
  max-width: 860px;
}
.psl-method-v5 .m-hero-nav-link {
  appearance: none; background: rgba(255,255,255,0.55); cursor: pointer;
  font-family: "Mona Sans", sans-serif; text-align: left; width: 100%;
  display: inline-flex; align-items: baseline; gap: 10px;
  padding: 12px 14px;
  border: 1px solid rgba(13,0,66,0.10); border-radius: 10px;
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}
.psl-method-v5 .m-hero-nav-link:hover {
  border-color: rgba(31,77,216,0.45); background: #fff; transform: translateY(-2px);
}
.psl-method-v5 .m-hero-nav-num {
  font-size: 11px; font-weight: 700; color: var(--m-blue);
  font-variant-numeric: tabular-nums; flex-shrink: 0;
}
.psl-method-v5 .m-hero-nav-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.psl-method-v5 .m-hero-nav-name { font-size: 14px; font-weight: 700; color: var(--m-dark-navy); letter-spacing: -0.01em; }
.psl-method-v5 .m-hero-nav-desc { font-size: 11.5px; color: var(--m-mid-grey); }
@container pslmethod (max-width: 720px) {
  .psl-method-v5 .m-hero-nav-list { grid-template-columns: 1fr 1fr; }
}
@container pslmethod (max-width: 460px) {
  .psl-method-v5 .m-hero-nav-list { grid-template-columns: 1fr; }
}
.psl-method-v5 .m-hero-aurora .m-aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.55;
  animation: m-aurora-drift 18s ease-in-out infinite;
}
.psl-method-v5 .m-aurora-1 {
  width: 520px; height: 520px;
  top: -180px; left: -120px;
  background: radial-gradient(circle, rgba(70,68,185,0.32), transparent 60%);
}
.psl-method-v5 .m-aurora-2 {
  width: 460px; height: 460px;
  top: 40px; right: -120px;
  background: radial-gradient(circle, rgba(25,230,196,0.18), transparent 60%);
  animation-delay: -6s;
}
.psl-method-v5 .m-aurora-3 {
  width: 380px; height: 380px;
  bottom: -160px; left: 30%;
  background: radial-gradient(circle, rgba(70,68,185,0.18), transparent 60%);
  animation-delay: -12s;
}
@keyframes m-aurora-drift {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%      { transform: translate(40px, -30px) scale(1.08); }
}
.psl-method-v5 .m-hero-v5 .m-container { position: relative; z-index: 1; }
.psl-method-v5 .m-hero-v5 .m-hero-h {
  font-size: 56px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-weight: 700;
  color: var(--m-dark-navy);
  max-width: 1080px;
  margin: 0 0 36px;
}
.psl-method-v5 .m-hero-mark {
  position: relative;
  white-space: nowrap;
  background: linear-gradient(180deg, transparent 62%, rgba(25,230,196,0.55) 62%, rgba(25,230,196,0.55) 96%, transparent 96%);
  background-size: 0% 100%;
  background-repeat: no-repeat;
  transition: background-size 1.1s cubic-bezier(0.2,0.7,0.2,1) 0.7s;
}
.psl-method-v5 .is-in .m-hero-mark { background-size: 100% 100%; }

.psl-method-v5 .m-hero-sub {
  font-size: 22px;
  color: var(--m-dark-grey);
  max-width: 880px;
  margin: 0 0 48px;
  font-weight: 500;
  line-height: 1.55;
}

.psl-method-v5 .m-hero-meta {
  display: flex; align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m-mid-grey);
  font-weight: 500;
}
.psl-method-v5 .m-hero-meta strong {
  font-size: 28px;
  font-weight: 700;
  color: var(--m-blue);
  font-variant-numeric: tabular-nums;
  margin-right: 8px;
  letter-spacing: -0.01em;
}
.psl-method-v5 .m-hero-meta-sep {
  width: 32px; height: 1px;
  background: var(--m-border);
}
.psl-method-v5 .m-hero-scroll {
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  display: flex; flex-direction: column;
  align-items: center; gap: 10px;
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--m-mid-grey);
  z-index: 3;
}
.psl-method-v5 .m-hero-scroll-line {
  width: 1px; height: 48px;
  background: linear-gradient(180deg, var(--m-blue), transparent);
  animation: m-scroll-tick 1.8s ease-in-out infinite;
}
@keyframes m-scroll-tick {
  0%   { transform: scaleY(0); transform-origin: top; opacity: 0.7; }
  50%  { transform: scaleY(1); transform-origin: top; opacity: 1; }
  51%  { transform: scaleY(1); transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
}

/* ---------- SYSTEM rings pulse + marker glow ---------- */
.psl-method-v5 .m-rings-art { position: relative; }
.psl-method-v5 .m-rings-pulse {
  position: absolute; inset: 0;
  pointer-events: none;
  border-radius: 50%;
}
.psl-method-v5 .m-rings-pulse::before,
.psl-method-v5 .m-rings-pulse::after {
  content: "";
  position: absolute;
  left: 50%; top: 50%;
  border-radius: 50%;
  border: 1.5px solid var(--m-turquoise);
  transform: translate(-50%, -50%) scale(0.5);
  opacity: 0;
  animation: m-rings-pulse-anim 2.6s ease-out infinite;
}
.psl-method-v5 .m-rings-pulse::after { animation-delay: 1.3s; }
.psl-method-v5 .m-rings-pulse-0::before,
.psl-method-v5 .m-rings-pulse-0::after { width: 38%; height: 38%; }
.psl-method-v5 .m-rings-pulse-1::before,
.psl-method-v5 .m-rings-pulse-1::after { width: 66%; height: 66%; }
.psl-method-v5 .m-rings-pulse-2::before,
.psl-method-v5 .m-rings-pulse-2::after { width: 96%; height: 96%; }
@keyframes m-rings-pulse-anim {
  0%   { transform: translate(-50%, -50%) scale(0.85); opacity: 0; }
  20%  { opacity: 0.85; }
  100% { transform: translate(-50%, -50%) scale(1.18); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .psl-method-v5 .m-rings-pulse::before,
  .psl-method-v5 .m-rings-pulse::after { animation: none; opacity: 0.4; transform: translate(-50%, -50%) scale(1); }
}

.psl-method-v5 .m-rings-marker {
  transition: top 0.6s cubic-bezier(0.5,1.6,0.4,1),
              left 0.6s cubic-bezier(0.5,1.6,0.4,1);
}

.psl-method-v5 .m-rings-legend-arrow {
  margin-left: auto;
  align-self: center;
  font-size: 16px;
  color: var(--m-blue);
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.psl-method-v5 .m-rings-legend-item.active .m-rings-legend-arrow,
.psl-method-v5 .m-rings-legend-item:hover .m-rings-legend-arrow {
  opacity: 1; transform: translateX(0);
}

/* ---------- PRACTICE cards ---------- */
.psl-method-v5 .m-practice-grid {
  border-top: none;
  border-bottom: none;
  gap: 16px;
  margin-top: 64px;
}
.psl-method-v5 .m-practice-card {
  position: relative;
  background: var(--m-white);
  border: 1px solid var(--m-border);
  border-radius: 12px;
  padding: 28px 24px;
  overflow: hidden;
  transition: transform 0.32s cubic-bezier(0.2,0.7,0.2,1),
              box-shadow 0.32s ease, border-color 0.32s ease;
  opacity: 0;
  transform: translateY(18px);
}
.psl-method-v5.is-mounted .m-practice-card,
.psl-method-v5 .is-in .m-practice-card {
  opacity: 1;
  transform: translateY(0);
  transition-delay: calc(var(--m-i) * 80ms);
}
.psl-method-v5 .m-practice-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(13,0,66,0.08);
  border-color: var(--m-blue);
}
.psl-method-v5 .m-practice-card:hover .m-practice-rule {
  width: 56px;
  opacity: 1;
}
.psl-method-v5 .m-practice-rule {
  transition: width 0.35s ease, opacity 0.3s ease;
}
.psl-method-v5 .m-practice-foot {
  margin-top: auto;
  padding-top: 20px;
  border-top: 1px dashed var(--m-border);
  display: flex; align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.psl-method-v5 .m-practice-domain-label {
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--m-mid-grey);
}
.psl-method-v5 .m-practice-domain-value {
  font-size: 12px; font-weight: 600;
  color: var(--m-blue);
  text-align: right;
}
.psl-method-v5 .m-practice-shine {
  position: absolute;
  top: 0; left: -100%;
  width: 60%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(25,230,196,0.18), transparent);
  transform: skewX(-18deg);
  pointer-events: none;
  transition: left 0.9s cubic-bezier(0.2,0.7,0.2,1);
}
.psl-method-v5 .m-practice-card:hover .m-practice-shine { left: 140%; }

/* ---------- SOURCES grid bar ---------- */
.psl-method-v5 .m-source {
  position: relative;
  padding-top: 32px;
  padding-bottom: 8px;
}
/* Photo removed — render as a citation card: named reference under the label. */
.psl-method-v5 .m-source-meta {
  position: relative;
  padding-left: 14px;
  color: var(--p-c, var(--m-blue));
}
.psl-method-v5 .m-source-meta::before {
  content: "";
  position: absolute; left: 0; top: 4px; bottom: 4px; width: 2px;
  background: var(--p-c, var(--m-blue)); border-radius: 1px; opacity: 0.6;
}
.psl-method-v5 .m-source-bar {
  display: block;
  width: 0;
  height: 2px;
  background: var(--p-c, var(--m-blue));
  margin-top: 16px;
  transition: width 1s cubic-bezier(0.2,0.7,0.2,1);
  transition-delay: calc(var(--m-i) * 120ms + 0.2s);
}
.psl-method-v5 .is-in .m-source-bar { width: 56px; }

/* ---------- JOURNEY (merged steps + pattern of change) ---------- */
.psl-method-v5 .m-journey { background: var(--m-light-grey); padding: 120px 0; }
.psl-method-v5 .m-journey-track {
  position: relative;
  margin: 56px 0 0;
  height: 2px;
}
.psl-method-v5 .m-journey-track-line {
  position: absolute; left: 0; right: 0; top: 0;
  height: 2px;
  background: var(--m-border);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.6s cubic-bezier(0.2,0.7,0.2,1) 0.2s;
}
.psl-method-v5 .is-in .m-journey-track-line { transform: scaleX(1); }
.psl-method-v5 .m-journey-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 36px;
  margin-top: -8px;
}
.psl-method-v5 .m-journey-stop {
  position: relative;
  padding-top: 14px;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.2,0.7,0.2,1);
  transition-delay: calc(var(--m-i) * 140ms + 0.3s);
}
.psl-method-v5 .is-in .m-journey-stop { opacity: 1; transform: translateY(0); }
.psl-method-v5 .m-journey-dot {
  position: absolute; top: -5px; left: 0;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--m-white);
  border: 2px solid var(--m-blue);
  box-shadow: 0 0 0 4px rgba(70,68,185,0.08);
}
.psl-method-v5 .m-journey-num {
  font-family: var(--font-display, inherit);
  font-size: 40px;
  font-weight: 700;
  font-style: italic;
  line-height: 1;
  color: var(--m-blue);
  margin-top: 18px;
}
.psl-method-v5 .m-journey-window {
  display: inline-block;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--m-mid-grey);
  margin-top: 12px;
}
.psl-method-v5 .m-journey-label {
  font-size: 20px; font-weight: 700;
  color: var(--m-dark-navy);
  margin: 6px 0 14px;
  line-height: 1.3;
}
.psl-method-v5 .m-journey-bar {
  position: relative;
  height: 4px; width: 100%;
  background: rgba(13,0,66,0.08);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 16px;
}
.psl-method-v5 .m-journey-bar-fill {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, var(--m-blue), var(--m-turquoise, #5BC8C2));
  transform-origin: left;
  transform: scaleX(0);
  transition: transform 1.4s cubic-bezier(0.2,0.7,0.2,1);
  transition-delay: calc(var(--m-i) * 140ms + 0.6s);
}
.psl-method-v5 .is-in .m-journey-bar-fill {
  transform: scaleX(var(--fill, 1));
}
.psl-method-v5 .m-journey-body {
  font-size: 14px; line-height: 1.6;
  color: var(--m-dark-grey);
  margin: 0 0 14px;
}
.psl-method-v5 .m-journey-tags {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 6px;
}
.psl-method-v5 .m-journey-tags li {
  font-size: 11px; font-weight: 600;
  color: var(--m-blue);
  background: rgba(70,68,185,0.10);
  padding: 5px 10px;
  border-radius: 999px;
}
@media (max-width: 1023px) {
  .psl-method-v5 .m-journey-grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  .psl-method-v5 .m-journey-track { display: none; }
  .psl-method-v5 .m-journey-dot { display: none; }
}
@media (max-width: 640px) {
  .psl-method-v5 .m-journey-grid { grid-template-columns: 1fr; }
}

/* ---------- SOURCES — research imagery ---------- */
.psl-method-v5 .m-source-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 18px 0 22px;
  border-radius: 8px;
  overflow: hidden;
  background: var(--m-light-grey);
  border: 1px solid var(--m-border);
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.2,0.7,0.2,1);
  transition-delay: calc(var(--m-i) * 120ms + 0.15s);
}
.psl-method-v5 .is-in .m-source-frame { opacity: 1; transform: translateY(0); }
.psl-method-v5 .m-source-frame img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transform: scale(1.06);
  filter: grayscale(15%) contrast(1.02);
  transition: transform 1.2s cubic-bezier(0.2,0.7,0.2,1), filter 0.6s ease;
}
.psl-method-v5 .m-source:hover .m-source-frame img {
  transform: scale(1.12);
  filter: grayscale(0%) contrast(1.05);
}
.psl-method-v5 .m-source-frame::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(13,0,66,0) 55%, rgba(13,0,66,0.65) 100%);
  pointer-events: none;
}
.psl-method-v5 .m-source-caption {
  position: absolute;
  left: 14px; right: 14px; bottom: 12px;
  z-index: 1;
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.06em;
  color: rgba(255,255,255,0.92);
  text-transform: uppercase;
}
.psl-method-v5 .m-source-frame-empty {
  display: grid; place-items: center;
  background:
    repeating-linear-gradient(135deg, rgba(13,0,66,0.04) 0 8px, rgba(13,0,66,0) 8px 16px),
    var(--m-light-grey);
}
.psl-method-v5 .m-source-frame-empty::after { display: none; }
.psl-method-v5 .m-source-frame-mark {
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--m-mid-grey);
  border: 1px solid var(--m-border);
  padding: 8px 14px;
  border-radius: 999px;
  background: var(--m-white);
}

/* ---------- SIGNATURE INSIGHT v5 ---------- */
.psl-method-v5 .m-insight-v5 {
  position: relative;
  overflow: hidden;
  padding: 140px 0;
}
.psl-method-v5 .m-insight-v5::before { display: none; }
.psl-method-v5 .m-insight-bg {
  position: absolute; inset: 0;
  pointer-events: none;
  z-index: 0;
}
.psl-method-v5 .m-bloom {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  opacity: 0.55;
  animation: m-bloom-drift 22s ease-in-out infinite;
}
.psl-method-v5 .m-bloom-1 {
  width: 640px; height: 640px;
  top: -200px; left: -160px;
  background: radial-gradient(circle, rgba(70,68,185,0.85), transparent 60%);
}
.psl-method-v5 .m-bloom-2 {
  width: 540px; height: 540px;
  top: 30%; right: -200px;
  background: radial-gradient(circle, rgba(25,230,196,0.45), transparent 60%);
  animation-delay: -8s;
}
.psl-method-v5 .m-bloom-3 {
  width: 480px; height: 480px;
  bottom: -180px; left: 35%;
  background: radial-gradient(circle, rgba(70,68,185,0.6), transparent 60%);
  animation-delay: -14s;
}
@keyframes m-bloom-drift {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%      { transform: translate(50px, -40px) scale(1.1); }
}
.psl-method-v5 .m-insight-v5 .m-container { position: relative; z-index: 1; }

.psl-method-v5 .m-insight-h {
  font-size: 48px;
  line-height: 1.18;
  letter-spacing: -0.015em;
  margin: 20px 0 0;
}
.psl-method-v5 .m-insight-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.2,0.7,0.2,1);
  transition-delay: calc(var(--m-i) * 35ms + 0.15s);
}
.psl-method-v5 .is-in .m-insight-word {
  opacity: 1;
  transform: translateY(0);
}

/* Dialed-back headline: a single clean fade-up instead of word-by-word. */
.psl-method-v5 .m-insight-h--fade {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.7s ease 0.1s, transform 0.7s cubic-bezier(0.2,0.7,0.2,1) 0.1s;
}
.psl-method-v5 .is-in .m-insight-h--fade {
  opacity: 1;
  transform: translateY(0);
}
.psl-method-v5 .m-insight-openinglabel {
  display: inline-block;
  margin-top: 18px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(127,231,200,0.85);
}

/* Article-snapshot attribution — names the source piece and links to it,
   so the spread reads as a published excerpt, not a marketing pull-quote. */
.psl-method-v5 .m-insight-source {
  margin-top: 30px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
  padding: 18px 22px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 14px;
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.psl-method-v5 .m-insight-source:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(167,139,250,0.5);
  transform: translateY(-1px);
}
.psl-method-v5 .m-insight-source-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.psl-method-v5 .m-insight-source-eyebrow {
  font-size: 10px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  color: rgba(255,255,255,0.5);
}
.psl-method-v5 .m-insight-source-title {
  font-size: 15px; font-weight: 600; line-height: 1.35; color: #fff; text-wrap: balance;
}
.psl-method-v5 .m-insight-source-read {
  font-size: 12px; color: rgba(255,255,255,0.55);
}
.psl-method-v5 .m-insight-source-cta {
  display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0;
  font-size: 13px; font-weight: 700; letter-spacing: 0.04em;
  color: #8936FF; white-space: nowrap;
}
.psl-method-v5 .m-insight-source:hover .m-insight-source-cta svg { transform: translateX(3px); }
.psl-method-v5 .m-insight-source-cta svg { transition: transform 0.2s ease; }

.psl-method-v5 .m-insight-stat {
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,0.14);
  display: flex; align-items: flex-start;
  gap: 20px;
}
.psl-method-v5 .m-insight-stat-num {
  font-size: 64px;
  font-weight: 700;
  line-height: 1;
  color: var(--m-turquoise);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
  display: inline-flex;
  align-items: baseline;
}
.psl-method-v5 .m-insight-stat-pct {
  font-size: 28px;
  margin-left: 4px;
  color: #8936FF;
}
.psl-method-v5 .m-insight-stat-label {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255,255,255,0.7);
  max-width: 320px;
  padding-top: 6px;
}

.psl-method-v5 .m-insight-body p strong { color: #8936FF; }

/* ---------- WHAT CHANGES v5 ---------- */
.psl-method-v5 .m-horizon {
  position: relative;
  overflow: hidden;
  background: var(--m-white);
  border: 1px solid var(--m-border);
  padding: 36px 36px 32px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.2,0.7,0.2,1);
  transition-delay: calc(var(--m-i) * 140ms + 0.1s);
}
.psl-method-v5 .is-in .m-horizon {
  opacity: 1; transform: translateY(0);
}
.psl-method-v5 .m-horizon::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 4px;
  background: linear-gradient(90deg, var(--m-blue), var(--m-turquoise));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.9s cubic-bezier(0.2,0.7,0.2,1);
  transition-delay: calc(var(--m-i) * 140ms + 0.4s);
}
.psl-method-v5 .is-in .m-horizon::before { transform: scaleX(1); }

.psl-method-v5 .m-horizon-track {
  margin: 4px 0 12px;
}
.psl-method-v5 .m-horizon-track-bar {
  position: relative;
  height: 6px;
  background: var(--m-light-grey);
  border-radius: 999px;
  overflow: hidden;
}
.psl-method-v5 .m-horizon-track-bar::after {
  content: "";
  position: absolute; left: 0; top: 0; bottom: 0;
  width: calc(var(--fill) * 100%);
  background: linear-gradient(90deg, var(--m-blue), var(--m-turquoise));
  border-radius: 999px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.4s cubic-bezier(0.2,0.7,0.2,1);
  transition-delay: calc(var(--m-i) * 160ms + 0.6s);
}
.psl-method-v5 .is-in .m-horizon-track-bar::after { transform: scaleX(1); }
.psl-method-v5 .m-horizon-track-meta {
  display: flex; justify-content: space-between;
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--m-mid-grey);
  margin-top: 10px;
}
.psl-method-v5 .m-horizon-tags {
  list-style: none; padding: 0;
  margin: 20px 0 0;
  display: flex; flex-wrap: wrap; gap: 8px;
}
.psl-method-v5 .m-horizon-tags li {
  font-size: 12px; font-weight: 600;
  color: var(--m-blue);
  background: rgba(70,68,185,0.08);
  padding: 6px 12px;
  border-radius: 999px;
}

/* ---------- STEPS v5 — connecting line ---------- */
.psl-method-v5 .m-steps-track {
  position: relative;
  margin-top: 56px;
  height: 1px;
  background: var(--m-border);
  margin-bottom: -1px;
}
.psl-method-v5 .m-steps-track-line {
  display: block;
  position: absolute;
  left: 0; top: 0;
  width: 0;
  height: 1px;
  background: var(--m-blue);
  transition: width 1.6s cubic-bezier(0.2,0.7,0.2,1) 0.2s;
}
.psl-method-v5 .is-in .m-steps-track-line { width: 100%; }
.psl-method-v5 .m-steps-grid { margin-top: 0; padding-top: 24px; }
.psl-method-v5 .m-step {
  position: relative;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.2,0.7,0.2,1);
  transition-delay: calc(var(--m-i) * 140ms + 0.5s);
}
.psl-method-v5 .is-in .m-step { opacity: 1; transform: translateY(0); }
.psl-method-v5 .m-step-dot {
  position: absolute;
  top: -29px; left: 0;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--m-white);
  border: 2px solid var(--m-blue);
  box-shadow: 0 0 0 4px rgba(70,68,185,0.12);
  transform: scale(0);
  transition: transform 0.4s cubic-bezier(0.5,1.6,0.4,1);
  transition-delay: calc(var(--m-i) * 140ms + 0.7s);
}
.psl-method-v5 .is-in .m-step-dot { transform: scale(1); }

/* ---------- CTA v5 ---------- */
.psl-method-v5 .m-cta-v5 {
  position: relative;
  overflow: hidden;
}
.psl-method-v5 .m-cta-bg {
  position: absolute; inset: 0;
  pointer-events: none;
}
.psl-method-v5 .m-bloom-cta-1 {
  position: absolute;
  width: 600px; height: 600px;
  top: -260px; left: -160px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(70,68,185,0.7), transparent 60%);
  filter: blur(90px);
  animation: m-bloom-drift 24s ease-in-out infinite;
}
.psl-method-v5 .m-bloom-cta-2 {
  position: absolute;
  width: 500px; height: 500px;
  bottom: -220px; right: -160px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(25,230,196,0.4), transparent 60%);
  filter: blur(90px);
  animation: m-bloom-drift 22s ease-in-out infinite -10s;
}
.psl-method-v5 .m-cta-v5 .m-cta-inner { position: relative; z-index: 1; }

.psl-method-v5 .m-btn { gap: 10px; }
.psl-method-v5 .m-btn-arrow {
  display: inline-block;
  transition: transform 0.3s cubic-bezier(0.2,0.7,0.2,1);
}
.psl-method-v5 .m-btn:hover .m-btn-arrow { transform: translateX(4px); }
.psl-method-v5 .m-btn-shine {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.psl-method-v5 .m-btn-shine::after {
  content: "";
  position: absolute;
  top: 0; left: -120%;
  width: 60%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.32), transparent);
  transform: skewX(-18deg);
  transition: left 0.85s cubic-bezier(0.2,0.7,0.2,1);
  z-index: -1;
}
.psl-method-v5 .m-btn-shine:hover::after { left: 140%; }

/* ---------- HERO image strip ---------- */
.psl-method-v5 .m-hero-strip {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  z-index: 0;
  pointer-events: none;
}
.psl-method-v5 .m-hero-strip-tile {
  background-size: cover;
  background-position: center;
  opacity: 0;
  filter: grayscale(35%) contrast(1.05);
  transform: scale(1.06);
  transition: opacity 1.6s ease, transform 18s ease;
}
.psl-method-v5 .is-in .m-hero-strip-tile-1 { opacity: 0.42; transform: scale(1); transition-delay: 0.1s; animation: m-strip-pan-1 28s ease-in-out 2s infinite alternate; }
.psl-method-v5 .is-in .m-hero-strip-tile-2 { opacity: 0.38; transform: scale(1); transition-delay: 0.25s; animation: m-strip-pan-2 32s ease-in-out 2.2s infinite alternate; }
.psl-method-v5 .is-in .m-hero-strip-tile-3 { opacity: 0.42; transform: scale(1); transition-delay: 0.4s; animation: m-strip-pan-3 30s ease-in-out 2.4s infinite alternate; }
@keyframes m-strip-pan-1 { from { transform: scale(1) translate(0,0); } to { transform: scale(1.12) translate(-3%, -2%); } }
@keyframes m-strip-pan-2 { from { transform: scale(1.04) translate(0,0); } to { transform: scale(1.14) translate(2%, -3%); } }
@keyframes m-strip-pan-3 { from { transform: scale(1) translate(0,0); } to { transform: scale(1.12) translate(-2%, 2%); } }
.psl-method-v5 .m-hero-strip-veil {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.32) 0%, rgba(255,255,255,0.62) 55%, rgba(255,255,255,0.88) 100%),
    linear-gradient(90deg, rgba(255,255,255,0.22), rgba(255,255,255,0) 28%, rgba(255,255,255,0) 72%, rgba(255,255,255,0.22));
}

/* ---------- ORIGINS — sport & corporate references ---------- */
.psl-method-v5 .m-origins { background: var(--m-white); padding: 120px 0; }
.psl-method-v5 .m-origins-grid {
  list-style: none; padding: 0;
  margin: 64px 0 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.psl-method-v5 .m-origin {
  display: flex; flex-direction: column;
  gap: 20px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.2,0.7,0.2,1);
  transition-delay: calc(var(--m-i) * 140ms + 0.1s);
}
.psl-method-v5 .is-in .m-origin { opacity: 1; transform: translateY(0); }
.psl-method-v5 .m-origin-frame {
  position: relative;
  aspect-ratio: 5 / 4;
  overflow: hidden;
  border-radius: 12px;
  background: var(--m-light-grey);
}
.psl-method-v5 .m-origin-frame img,
.psl-method-v5 .m-origin-video {
  /* Unify three differently-graded clips: stronger desaturate + cool navy
     wash so the trio reads as one consistent, on-brand set. */
  filter: saturate(0.68) contrast(1.06) brightness(0.95);
}
.psl-method-v5 .m-origin-frame img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transform: scale(1.08);
  transition: transform 1.4s cubic-bezier(0.2,0.7,0.2,1), filter 0.4s ease;
}
.psl-method-v5 .is-in .m-origin-frame img { transform: scale(1); }
.psl-method-v5 .m-origin-frame::after {
  content: "";
  position: absolute; inset: 0;
  /* full cohesive navy tint + stronger foot gradient for caption legibility */
  background:
    linear-gradient(180deg, rgba(13,0,66,0.10) 0%, rgba(13,0,66,0) 30%, rgba(13,0,66,0.62) 100%);
}
.psl-method-v5 .m-origin:hover .m-origin-frame img { transform: scale(1.04); }
/* Origin video — sits over the still poster, fades in once it starts. */
.psl-method-v5 .m-origin-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  opacity: 0;
  transition: opacity 0.8s ease;
  z-index: 0;
}
.psl-method-v5 .m-origin-video.is-playing { opacity: 1; }
.psl-method-v5 .m-origin-tag {
  position: absolute;
  left: 20px; bottom: 20px;
  z-index: 1;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--m-turquoise);
  background: rgba(13,0,66,0.55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.18);
}
.psl-method-v5 .m-origin-h {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--m-dark-navy);
  margin: 0;
  letter-spacing: -0.01em;
}
.psl-method-v5 .m-origin-body {
  font-size: 15px;
  line-height: 1.65;
  color: var(--m-dark-grey);
  margin: 0;
}
.psl-method-v5 .m-origin-foot {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--m-border);
  display: flex; justify-content: space-between;
  gap: 12px;
}
.psl-method-v5 .m-origin-foot-label {
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--m-mid-grey);
}
.psl-method-v5 .m-origin-foot-value {
  font-size: 12px; font-weight: 600;
  color: var(--m-blue);
  text-align: right;
}
/* Real-source caption on the video (what the footage actually is). */
.psl-method-v5 .m-origin-source {
  position: absolute;
  left: 16px; right: 16px; bottom: 14px;
  z-index: 1;
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 600;
  line-height: 1.3;
  color: rgba(255,255,255,0.92);
  letter-spacing: 0.01em;
}
.psl-method-v5 .m-origin-source-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--m-turquoise);
  box-shadow: 0 0 0 3px rgba(46,224,176,0.25);
  flex-shrink: 0;
}
/* Move the category tag to the TOP so the source caption owns the bottom. */
.psl-method-v5 .m-origins-grid .m-origin-tag {
  bottom: auto; top: 16px; left: 16px;
}

/* Workshops & guest-speakers callout — the live sport↔PSL link. */
.psl-method-v5 .m-origins-speakers {
  margin-top: 40px;
  display: grid; grid-template-columns: 48px 1fr;
  gap: 20px; align-items: start;
  padding: 26px 30px;
  background: linear-gradient(135deg, rgba(70,68,185,0.06), rgba(25,230,196,0.06));
  border: 1px solid rgba(13,0,66,0.08);
  border-radius: 14px;
}
.psl-method-v5 .m-origins-speakers-mark {
  width: 48px; height: 48px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  background: #FFFFFF;
  border: 1px solid rgba(13,0,66,0.10);
  color: var(--m-blue);
}
.psl-method-v5 .m-origins-speakers-eyebrow {
  display: block;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--m-blue);
  margin-bottom: 8px;
}
.psl-method-v5 .m-origins-speakers-body p {
  margin: 0;
  font-size: 15px; line-height: 1.6;
  color: var(--m-dark-grey);
  max-width: 760px;
}
@media (max-width: 700px) {
  .psl-method-v5 .m-origins-speakers { grid-template-columns: 1fr; gap: 14px; }
}
@media (max-width: 1023px) {
  .psl-method-v5 .m-origins-grid { grid-template-columns: 1fr; gap: 24px; }
  .psl-method-v5 .m-origin-frame { aspect-ratio: 16 / 10; }
}

/* responsive overrides for v5 hero */
@media (max-width: 1023px) {
  .psl-method-v5 .m-hero-v5 .m-hero-h { font-size: 40px; }
  .psl-method-v5 .m-insight-h { font-size: 34px; }
  .psl-method-v5 .m-insight-v5 { padding: 88px 0; }
  .psl-method-v5 .m-hero-v5 { padding: 80px 0 64px; }
  .psl-method-v5 .m-hero-scroll { display: none; }
}
/* =====================================================================
   CONTAINER-QUERY MIRROR — same rules as the @media queries above,
   but using @container so they fire inside mobile artboards (where
   the viewport is desktop-sized but the container is 375px wide).
   Unnamed @container matches whichever container ancestor is closest
   (so this works for both .psl-method and .psl-teams scopes).
   ===================================================================== */
@container (max-width: 1023px) {
  .psl-method .m-hero { padding: 64px 0 56px; }
  .psl-method .m-section { padding: 64px 0; }
  .psl-method .m-cta { padding: 72px 0; }
  .psl-method .m-hero-h { font-size: 40px; }
  .psl-method .m-h2 { font-size: 28px; }
  .psl-method .m-cta-h { font-size: 32px; }
  .psl-method .m-system-grid { grid-template-columns: 1fr; gap: 48px; }
  .psl-method .m-foundations-grid { grid-template-columns: 1fr; gap: 16px; }
  .psl-method .m-steps-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .psl-method .m-hero-body { grid-template-columns: 1fr; gap: 24px; }
  .psl-method .m-practice-grid { grid-template-columns: repeat(2, 1fr); }
  .psl-method .m-practice-card { border-right: none; border-bottom: 1px solid var(--m-border); }
  .psl-method .m-practice-card:nth-child(odd) { border-right: 1px solid var(--m-border); }
  .psl-method .m-sources-grid { grid-template-columns: repeat(2, 1fr); }
  .psl-method .m-source { border-bottom: 1px solid var(--m-border); padding-bottom: 24px; }
  .psl-method .m-source:nth-child(2) { border-right: none; padding-right: 0; }
  .psl-method .m-insight { padding: 80px 0; }
  .psl-method .m-insight-shell { grid-template-columns: 1fr; gap: 32px; }
  .psl-method .m-insight::before { display: none; }
  .psl-method .m-insight-head { position: static; }
  .psl-method .m-insight-h { font-size: 32px; }
  .psl-method .m-changes-grid { grid-template-columns: 1fr; }
  .psl-method .m-footer-top { grid-template-columns: 1fr; gap: 32px; }
  .psl-method .m-footer-nav { justify-content: flex-start; }

  .psl-method-v5 .m-journey-grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  .psl-method-v5 .m-journey-track { display: none; }
  .psl-method-v5 .m-journey-dot { display: none; }
  .psl-method-v5 .m-origins-grid { grid-template-columns: 1fr; gap: 24px; }
  .psl-method-v5 .m-origin-frame { aspect-ratio: 16 / 10; }
  .psl-method-v5 .m-hero-v5 .m-hero-h { font-size: 40px; }
  .psl-method-v5 .m-insight-h { font-size: 34px; }
  .psl-method-v5 .m-hero-strip { display: none; }
  .psl-method-v5 .m-hero-scroll { display: none; }
}
@container (max-width: 640px) {
  .psl-method .m-hero-h { font-size: 32px; }
  .psl-method .m-hero-sub { font-size: 18px; }
  .psl-method .m-h2 { font-size: 24px; }
  .psl-method .m-cta-h { font-size: 26px; }
  .psl-method .m-steps-grid { grid-template-columns: 1fr; }
  .psl-method .m-practice-grid { grid-template-columns: 1fr; }
  .psl-method .m-practice-card { border-right: none !important; }
  .psl-method .m-sources-grid { grid-template-columns: 1fr; }
  .psl-method .m-source { border-right: none; padding-left: 0 !important; padding-right: 0; }
  .psl-method .m-horizon { padding: 28px; }
  .psl-method .m-insight-h { font-size: 26px; }
  .psl-method .m-system-panel { padding: 28px; }
  .psl-method .m-card { padding: 24px; }
  .psl-method .m-nav-links { gap: 16px; }
  .psl-method .m-nav-link { display: none; }
  .psl-method .m-footer-bottom { flex-direction: column; gap: 16px; align-items: flex-start; }

  .psl-method-v5 .m-journey-grid { grid-template-columns: 1fr; }
  .psl-method-v5 .m-hero-v5 .m-hero-h { font-size: 30px; }
  .psl-method-v5 .m-hero-meta { gap: 12px; }
}
  .psl-method-v5 .m-hero-meta strong { font-size: 22px; }
  .psl-method-v5 .m-insight-h { font-size: 26px; }
  .psl-method-v5 .m-insight-stat-num { font-size: 48px; }
}


/* ============================================================
   PSL Performance System — animated rings (matches home page).
   Mirrors .psl-perf-system block from styles.css so the Method
   page renders the identical animated logo.
   ============================================================ */
@font-face {
  font-family: "Mona Sans Custom";
  src: url("assets/fonts/MonaSans-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
.psl-method .psl-perf-system {
  width: 100%;
  max-width: 560px;
  aspect-ratio: 1 / 1;
  margin: 0 auto;
  position: relative;
}
.psl-method .psl-perf-system svg {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}
.psl-method .psl-perf-system .pps-ring {
  transform-box: fill-box;
  transform-origin: 50% 50%;
  opacity: 0;
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='34' height='34' viewBox='0 0 34 34'><circle cx='17' cy='17' r='11' fill='rgba(15,23,42,0.55)' stroke='white' stroke-width='2.5'/></svg>") 17 17, pointer;
  transition: filter 520ms ease-out, scale 320ms cubic-bezier(.2,.8,.3,1);
}
.psl-method .psl-perf-system .pps-ring .pps-hit {
  fill: none;
  stroke: transparent;
  pointer-events: stroke;
}
.psl-method .psl-perf-system .pps-ring--outer .pps-hit { stroke-width: 48; }
.psl-method .psl-perf-system .pps-ring--mid   .pps-hit { stroke-width: 44; }
.psl-method .psl-perf-system .pps-ring--inner .pps-hit { stroke-width: 42; }
.psl-method .psl-perf-system .pps-ring .pps-stroke,
.psl-method .psl-perf-system .pps-ring .pps-text { pointer-events: none; }
.psl-method .psl-perf-system .pps-ring .pps-text {
  font-family: "Mona Sans Custom", "Mona Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 700;
  fill: #ffffff;
  letter-spacing: 2.4px;
  dominant-baseline: middle;
}
.psl-method .psl-perf-system.is-in .pps-ring--outer { animation: m-ppsRingSpin 1.0s cubic-bezier(.18,.85,.28,1.05) 0s forwards; }
.psl-method .psl-perf-system.is-in .pps-ring--mid   { animation: m-ppsRingSpin .95s cubic-bezier(.18,.85,.28,1.05) .12s forwards; }
.psl-method .psl-perf-system.is-in .pps-ring--inner { animation: m-ppsRingSpin .9s cubic-bezier(.18,.85,.28,1.05) .24s forwards; }
.psl-method .psl-perf-system.is-in .pps-core        { animation: m-ppsCoreSpin 1.2s cubic-bezier(.18,.85,.28,1.02) 0s both; }

@keyframes m-ppsRingSpin {
  0%   { transform: rotate(-360deg) scale(.55); opacity: 0; }
  35%  { opacity: 1; }
  78%  { transform: rotate(8deg) scale(1.035); opacity: 1; }
  88%  { transform: rotate(-3deg) scale(.992); }
  95%  { transform: rotate(1deg) scale(1.005); }
  100% { transform: rotate(0deg) scale(1); opacity: 1; }
}
@keyframes m-ppsCoreSpin {
  0%   { transform: rotate(0deg)   scale(.35); opacity: 0; }
  20%  { opacity: 1; }
  100% { transform: rotate(720deg) scale(1);   opacity: 1; }
}

.psl-method .psl-perf-system.is-in .pps-ring:focus { outline: none; }
.psl-method .psl-perf-system.is-in .pps-ring:focus-visible {
  filter: drop-shadow(0 2px 6px rgba(15, 23, 42, .35));
}
.psl-method .psl-perf-system.is-in .pps-ring:hover {
  filter: drop-shadow(0 4px 10px rgba(15, 23, 42, .35));
  scale: 1.03;
}

.psl-method .psl-perf-system .pps-core {
  transform-box: fill-box;
  transform-origin: 50% 50%;
  opacity: 0;
}
.psl-method .psl-perf-system .pps-bubble {
  fill: #1a1a2e;
  transform-box: fill-box;
  transform-origin: center;
  opacity: 0;
  will-change: transform, opacity;
}
@keyframes m-ppsBubble {
  0%   { transform: translateY(4px)    scale(.5);  opacity: 0; }
  8%   {                                            opacity: .95; }
  50%  { transform: translateY(-44px)  scale(1);   opacity: .9; }
  85%  { transform: translateY(-82px)  scale(.85); opacity: .35; }
  100% { transform: translateY(-95px)  scale(.65); opacity: 0; }
}
.psl-method .psl-perf-system.is-in .pps-bubble       { animation: m-ppsBubble 3.6s linear infinite; }
.psl-method .psl-perf-system.is-in .pps-bubble.b1    { animation-duration: 3.1s; animation-delay: -0.05s; }
.psl-method .psl-perf-system.is-in .pps-bubble.b2    { animation-duration: 3.7s; animation-delay: -0.55s; }
.psl-method .psl-perf-system.is-in .pps-bubble.b3    { animation-duration: 2.9s; animation-delay: -1.10s; }
.psl-method .psl-perf-system.is-in .pps-bubble.b4    { animation-duration: 3.4s; animation-delay: -1.65s; }
.psl-method .psl-perf-system.is-in .pps-bubble.b5    { animation-duration: 3.2s; animation-delay: -2.20s; }
.psl-method .psl-perf-system.is-in .pps-bubble.b6    { animation-duration: 3.9s; animation-delay: -2.75s; }
.psl-method .psl-perf-system.is-in .pps-bubble.b7    { animation-duration: 3.0s; animation-delay: -0.30s; }
.psl-method .psl-perf-system.is-in .pps-bubble.b8    { animation-duration: 3.5s; animation-delay: -0.85s; }
.psl-method .psl-perf-system.is-in .pps-bubble.b9    { animation-duration: 3.8s; animation-delay: -1.40s; }
.psl-method .psl-perf-system.is-in .pps-bubble.b10   { animation-duration: 3.3s; animation-delay: -1.95s; }
.psl-method .psl-perf-system.is-in .pps-bubble.b11   { animation-duration: 3.6s; animation-delay: -2.50s; }
.psl-method .psl-perf-system.is-in .pps-bubble.b12   { animation-duration: 3.1s; animation-delay: -3.05s; }

@media (prefers-reduced-motion: reduce) {
  .psl-method .psl-perf-system.is-in .pps-ring--outer,
  .psl-method .psl-perf-system.is-in .pps-ring--mid,
  .psl-method .psl-perf-system.is-in .pps-ring--inner,
  .psl-method .psl-perf-system.is-in .pps-core { animation-duration: .01ms; animation-delay: 0s; }
  .psl-method .psl-perf-system.is-in .pps-bubble { animation: none; opacity: 0; }
}


/* =====================================================================
   METHOD PAGE — Audit revisions
   - Source finding line under each source card
   - "Read all Insights" pill link
   - Rings → Pillars bridge band
   - Journey deliverable row
   ===================================================================== */
.psl-method .m-source-finding {
  margin: 12px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--m-dark-grey);
  font-style: normal;
}
/* Headline data point per source — the credible scale figure. */
.psl-method .m-source-stat {
  display: block;
  margin-top: 14px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--m-dark-navy);
  font-variant-numeric: tabular-nums;
}
/* Connective lead-in into the dark article — navy card that previews the
   tonal shift, so the article reads as the next beat of the evidence story. */
.psl-method .m-evidence-next {
  margin-top: 44px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 22px 26px;
  background: linear-gradient(135deg, #0A0030 0%, #120A52 100%);
  border-radius: 14px 14px 0 0;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.psl-method .m-evidence-next:hover { transform: translateY(-1px); box-shadow: 0 14px 34px -20px rgba(13,0,66,0.5); }
.psl-method .m-evidence-next-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.psl-method .m-evidence-next-label {
  font-size: 12.5px; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase;
  color: #8936FF;
}
.psl-method .m-evidence-next-title { font-size: 16px; font-weight: 600; color: #fff; letter-spacing: -0.01em; }
.psl-method .m-evidence-next-cta {
  flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.1); color: #8936FF; font-size: 16px;
}
/* Hug the article to this lead-in — no light gap between them. */
.psl-method-v5 .m-foundations.m-foundations-v5 { padding-bottom: 0 !important; }
.psl-method-v5 .m-insight-v5 { border-radius: 0 0 16px 16px; }
.psl-method .m-sources-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 32px;
  padding: 12px 18px;
  border-radius: 999px;
  background: rgba(70,68,185,0.06);
  border: 1px solid rgba(70,68,185,0.18);
  color: var(--m-blue);
  text-decoration: none;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.psl-method .m-sources-link:hover {
  background: var(--m-blue);
  border-color: var(--m-blue);
  color: #fff;
  transform: translateY(-1px);
}

/* Rings → Pillars bridge */
.psl-method .m-system-pillars {
  margin-top: 32px;
  padding: 22px 26px;
  background: linear-gradient(135deg, rgba(70,68,185,0.05), rgba(25,230,196,0.05));
  border-left: 3px solid var(--m-blue);
  border-radius: 0 12px 12px 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.psl-method .m-system-pillars-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--m-blue);
}
.psl-method .m-system-pillars-body {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--m-dark-navy);
}
.psl-method .m-system-pillars-body strong {
  font-weight: 600;
  color: var(--m-blue);
}

/* Journey deliverable row */
.psl-method .m-journey-deliverable {
  margin: 14px 0 0;
  padding: 12px 14px;
  background: rgba(70,68,185,0.06);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.psl-method .m-journey-deliverable-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--m-blue);
}
.psl-method .m-journey-deliverable-value {
  font-size: 13px;
  line-height: 1.5;
  font-weight: 500;
  color: var(--m-dark-navy);
}


/* =====================================================================
   METHOD MOBILE — final pass. Force the remaining 2-column grids and
   decorative overflows to behave inside artboards.
   ===================================================================== */
@container (max-width: 1023px) {
  /* Sources, Journey, Practice supporting — collapse 2-col grids */
  .psl-method-v5 .m-sources-grid { grid-template-columns: 1fr 1fr !important; }
  .psl-method-v5 .m-journey-grid { grid-template-columns: 1fr 1fr !important; }
  .psl-method-v5 .m-practice-layout { grid-template-columns: 1fr !important; }
  .psl-method-v5 .m-practice-supporting { grid-template-columns: 1fr 1fr !important; }
  .psl-method-v5 .m-practice-lead { grid-template-columns: 1fr !important; min-height: 0 !important; }
}
@container (max-width: 640px) {
  .psl-method-v5 .m-sources-grid { grid-template-columns: 1fr !important; }
  .psl-method-v5 .m-journey-grid { grid-template-columns: 1fr !important; }
  .psl-method-v5 .m-practice-supporting { grid-template-columns: 1fr !important; }
  .psl-method-v5 .m-practice-lead-content { padding: 28px 24px 24px !important; }

  /* Decorative hero strip auroras — hide so they don't overflow */
  .psl-method-v5 .m-hero-aurora,
  .psl-method-v5 .m-aurora { display: none !important; }

  /* Hero typography mark — let it wrap rather than overflow */
  .psl-method-v5 .m-hero-mark,
  .psl-method-v5 .m-hero-h .__om-t {
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    max-width: 100% !important;
  }

  /* Step strip — already simple but ensure cells don't overflow */
  .psl-method .m-strip-current-label { font-size: 11px !important; }
  .psl-method .m-strip-cell-label { display: none !important; }

  /* Bridge — let the body wrap properly */
  .psl-method .m-bridge-inner { flex-wrap: wrap !important; }
  .psl-method .m-bridge-body { font-size: 13px !important; }
}


/* =====================================================================
   METHOD MOBILE — emergency catch-all. Force every multi-column grid
   on the page to single column inside narrow containers.
   ===================================================================== */
@container (max-width: 760px) {
  .psl-method .m-system-grid,
  .psl-method .m-rings,
  .psl-method .m-system-content,
  .psl-method .m-system-head,
  .psl-method .m-system-head-right,
  .psl-method-v5 .m-origins-grid,
  .psl-method-v5 .m-sources-grid,
  .psl-method-v5 .m-journey-grid,
  .psl-method-v5 .m-practice-layout,
  .psl-method-v5 .m-practice-supporting,
  .psl-method-v5 .m-practice-lead,
  .psl-method-v5 .m-changes-grid,
  .psl-method-v5 .m-hero-body {
    grid-template-columns: 1fr !important;
    display: grid !important;
    gap: 16px !important;
  }
  /* Sources frame — image stretches full width */
  .psl-method-v5 .m-source { padding-right: 0 !important; }
  .psl-method-v5 .m-source-frame { aspect-ratio: 16 / 10 !important; }
  /* System rings — shrink to fit */
  .psl-method .m-rings { max-width: 280px; margin: 0 auto; }
  .psl-method .psl-perf-system svg { max-width: 100% !important; height: auto !important; }
  /* Origin frame full width */
  .psl-method-v5 .m-origin-frame { aspect-ratio: 4 / 3 !important; }
  /* Domain switcher — stack */
  .psl-method .m-domains { display: flex !important; flex-direction: column !important; }
  .psl-method .m-domain-panel { width: 100% !important; max-width: 100% !important; }
  /* All h1/h2 wrap */
  .psl-method h1, .psl-method h2 { overflow-wrap: anywhere !important; }
  /* Bridge body — wrap fully */
  .psl-method .m-bridge-content { width: 100% !important; }
  .psl-method .m-bridge-inner { gap: 12px !important; }
}


/* =====================================================================
   MOTION DIAL-BACK — credibility pass
   The three infinite drift loops (hero aurora, Signature-Insight blooms,
   closing-CTA blooms) read as decorative for a research-backed page.
   Freeze them to static ambient glows: the colour stays, the perpetual
   motion goes. One signature motion per section.
   ===================================================================== */
.psl-method-v5 .m-aurora-1,
.psl-method-v5 .m-aurora-2,
.psl-method-v5 .m-bloom,
.psl-method-v5 .m-bloom-cta-1,
.psl-method-v5 .m-bloom-cta-2 {
  animation: none !important;
}

/* =====================================================================
   ORIGINS — what elite sport teaches (boxing lead + three sport cards)
   ===================================================================== */
.psl-method-v5 .m-elite {
  margin-top: 56px;
  padding-top: 44px;
  border-top: 1px solid var(--m-border);
}
.psl-method-v5 .m-principles-head { max-width: 760px; margin-bottom: 32px; }
.psl-method-v5 .m-principles-eyebrow {
  display: inline-block;
  font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--m-blue); margin-bottom: 12px;
}
.psl-method-v5 .m-principles-lead { margin: 0; font-size: 16px; line-height: 1.6; color: var(--m-dark-grey); }

.psl-method-v5 .m-elite-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: stretch;
}
.psl-method-v5 .m-elite-right { display: flex; flex-direction: column; gap: 16px; }

/* Shared card look — coloured tint wash + filled tag (no left rule). */
.psl-method-v5 .m-elite-lead,
.psl-method-v5 .m-elite-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--m-border);
  border-radius: 16px;
  opacity: 0; transform: translateY(16px);
  transition: opacity 0.6s ease, transform 0.55s cubic-bezier(0.2,0.7,0.2,1), box-shadow 0.25s ease, border-color 0.25s ease;
}
.psl-method-v5 .is-in .m-elite-lead { opacity: 1; transform: translateY(0); transition-delay: 0.1s; }
.psl-method-v5 .is-in .m-elite-card { opacity: 1; transform: translateY(0); transition-delay: calc(var(--m-i) * 90ms + 0.18s); }
.psl-method-v5 .m-elite-lead:hover,
.psl-method-v5 .m-elite-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px -22px rgba(13,0,66,0.3);
  border-color: color-mix(in srgb, var(--p-c) 38%, var(--m-border));
}
.psl-method-v5 .m-elite-tag {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--p-c);
}
.psl-method-v5 .m-elite-tag::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%;
  background: var(--p-c); flex-shrink: 0;
}

/* Left — boxing, the deep example */
.psl-method-v5 .m-elite-lead { padding: 26px 26px 12px; display: flex; flex-direction: column; }
.psl-method-v5 .m-elite-lead-h {
  margin: 16px 0 4px; font-size: 20px; font-weight: 700; line-height: 1.25;
  color: var(--m-dark-navy); letter-spacing: -0.015em; text-wrap: balance;
}
.psl-method-v5 .m-elite-points { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; }
.psl-method-v5 .m-elite-point {
  display: grid; grid-template-columns: 32px 1fr; gap: 12px;
  padding: 16px 0; border-top: 1px solid color-mix(in srgb, var(--p-c) 14%, var(--m-border));
}
.psl-method-v5 .m-elite-point:first-child { border-top: 0; }
.psl-method-v5 .m-elite-point-n {
  font-size: 13px; font-weight: 700; color: var(--p-c);
  font-variant-numeric: tabular-nums; padding-top: 2px;
}
.psl-method-v5 .m-elite-point-text { display: flex; flex-direction: column; gap: 8px; }
.psl-method-v5 .m-elite-point-body { margin: 0; font-size: 13.5px; line-height: 1.6; color: var(--m-dark-grey); }
.psl-method-v5 .m-elite-lead-in { font-weight: 700; color: var(--m-dark-navy); }

/* Right — three sport cards */
.psl-method-v5 .m-elite-card { padding: 20px 22px; flex: 1; display: flex; flex-direction: column; }
.psl-method-v5 .m-elite-card-h {
  margin: 14px 0 6px; font-size: 16.5px; font-weight: 700; line-height: 1.3;
  color: var(--m-dark-navy); letter-spacing: -0.01em; text-wrap: balance;
}
.psl-method-v5 .m-elite-card-body { margin: 0; font-size: 13.5px; line-height: 1.6; color: var(--m-dark-grey); }
/* Sport tag (left) + subtle ring-mapping dots (right) on one row. */
.psl-method-v5 .m-elite-taghead {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
/* Larger sport name heading. */
.psl-method-v5 .m-elite-sport {
  font-size: 24px; font-weight: 700; letter-spacing: -0.015em;
  color: var(--m-dark-navy);
}
/* Boxing lead card — sport name (left) with the "why" line beside it (right). */
.psl-method-v5 .m-elite-lead-header {
  display: flex; align-items: baseline; justify-content: space-between; gap: 28px;
  padding-bottom: 16px; margin-bottom: 18px; border-bottom: 1px solid var(--m-border);
}
.psl-method-v5 .m-elite-lead-header .m-elite-taghead { flex: 0 0 auto; gap: 10px; }
.psl-method-v5 .m-elite-lead-header .m-elite-why { margin: 0; flex: 1; text-align: right; max-width: 60%; }
@container pslmethod (max-width: 720px) {
  .psl-method-v5 .m-elite-lead-header { flex-direction: column; align-items: stretch; gap: 8px; }
  .psl-method-v5 .m-elite-lead-header .m-elite-why { text-align: left; max-width: none; }
}
/* "Why this sport" one-liner. */
.psl-method-v5 .m-elite-why {
  margin: 6px 0 0; font-size: 13px; line-height: 1.45; font-style: italic;
  color: color-mix(in srgb, var(--p-c) 75%, var(--m-dark-grey));
}
.psl-method-v5 .m-elite-card .m-elite-why { margin: 8px 0 14px; padding-bottom: 14px; border-bottom: 1px solid var(--m-border); }
.psl-method-v5 .m-elite-lead .m-elite-why { margin: 8px 0 18px; padding-bottom: 16px; border-bottom: 1px solid var(--m-border); text-align: left; max-width: none; }
/* "How this translates" — labeled crossover, set apart from the description. */
.psl-method-v5 .m-elite-card .m-elite-translate { margin-top: auto; padding-top: 12px; }
.psl-method-v5 .m-elite-translate {
  display: block; margin-top: 10px;
  font-size: 13.5px; line-height: 1.55; color: var(--m-dark-navy);
}
.psl-method-v5 .m-elite-point .m-elite-translate { font-size: 13px; }
.psl-method-v5 .m-elite-translate-label {
  display: block; margin-bottom: 3px;
  font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: color-mix(in srgb, var(--p-c) 80%, #000);
}
/* Glossary term highlight + hover tooltip. */
.psl-method-v5 .m-term {
  position: relative;
  color: #1F4DD8; font-weight: 700;
  border-bottom: 1.5px dashed rgba(31,77,216,0.5);
  cursor: help;
}
.psl-method-v5 .m-term:hover, .psl-method-v5 .m-term:focus { color: #15399c; outline: none; }
.psl-method-v5 .m-term-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 13px; height: 13px; margin-left: 3px;
  vertical-align: super; font-size: 8.5px; font-weight: 700; font-style: italic;
  line-height: 1; border-radius: 50%;
  background: #1F4DD8; color: #fff;
  transition: transform 0.15s ease, background 0.15s ease;
}
.psl-method-v5 .m-term:hover .m-term-icon, .psl-method-v5 .m-term:focus .m-term-icon { transform: scale(1.15); background: #15399c; }
.psl-method-v5 .m-term-pop {
  position: absolute; bottom: calc(100% + 10px); left: 0;
  width: 280px; max-width: 78vw;
  background: #0D0042; color: #fff;
  border: 1px solid rgba(127,231,200,0.35);
  text-transform: none;
  padding: 13px 15px; border-radius: 10px;
  box-shadow: 0 14px 34px -12px rgba(13,0,66,0.55);
  opacity: 0; visibility: hidden; transform: translateY(4px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
  z-index: 60; pointer-events: none;
}
.psl-method-v5 .m-term-pop-label {
  display: block; margin-bottom: 5px;
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  color: #7FE7C8;
}
.psl-method-v5 .m-term-pop-def {
  display: block;
  font-size: 12.5px; font-weight: 500; line-height: 1.5; letter-spacing: 0;
  color: rgba(255,255,255,0.9);
}
.psl-method-v5 .m-term-pop::after {
  content: ""; position: absolute; top: 100%; left: 22px;
  border: 6px solid transparent; border-top-color: #0D0042;
}
.psl-method-v5 .m-term:hover .m-term-pop,
.psl-method-v5 .m-term:focus .m-term-pop,
.psl-method-v5 .m-term:focus-within .m-term-pop { opacity: 1; visibility: visible; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  .psl-method-v5 .m-elite-lead, .psl-method-v5 .m-elite-card { opacity: 1 !important; transform: none !important; }
}
@container (max-width: 900px) {
  .psl-method-v5 .m-elite-grid { grid-template-columns: 1fr !important; }
}


/* =====================================================================
   ORIGINS — partners (icon pills bouncing off each other + central CTA)
   ===================================================================== */
.psl-method.psl-method-v5 .m-section.m-partners-section { padding-top: 40px !important; padding-bottom: 40px !important; }
.psl-method-v5 .m-partners-section .m-partners { margin-top: 0; }
.psl-method-v5 .m-partners {
  position: relative;
  margin-top: 56px;
  border-radius: 22px;
  overflow: hidden;
  background:
    radial-gradient(110% 95% at 100% 0%, rgba(124,93,240,0.55) 0%, rgba(33,26,115,0) 55%),
    radial-gradient(95% 130% at 0% 100%, rgba(25,230,196,0.20) 0%, rgba(33,26,115,0) 52%),
    linear-gradient(135deg, #1A1466 0%, #3B2E9E 58%, #5D5BE6 125%);
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  isolation: isolate;
  box-shadow: 0 30px 80px -30px rgba(13,0,66,0.55);
}
.psl-method-v5 .m-partners::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(140% 120% at 50% 50%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.28) 100%);
  z-index: 5;
}
.psl-method-v5 .m-partners-copy { padding: 28px 18px 28px 44px; position: relative; z-index: 6; }
.psl-method-v5 .m-partners-eyebrow {
  display: block;
  font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: #2EE0B0; margin: 0 0 10px;
}
.psl-method-v5 .m-partners-h {
  margin: 0 0 14px; font-size: 31px; font-weight: 700; line-height: 1.14;
  letter-spacing: -0.02em; color: #fff; text-wrap: balance;
}
.psl-method-v5 .m-partners-p {
  margin: 0; font-size: 15.5px; line-height: 1.62; color: rgba(255,255,255,0.74); max-width: 520px;
}

/* Invisible bounce box. */
.psl-method-v5 .m-partners-stage {
  position: relative; width: 100%; height: 286px;
  align-self: stretch; overflow: hidden; z-index: 6;
}

/* Profile pill */
.psl-method-v5 .pp {
  position: absolute; top: 0; left: 0;
  will-change: transform;
  display: inline-flex; align-items: center; gap: 9px;
  padding: 7px 15px 7px 7px;
  border-radius: 999px; white-space: nowrap; color: #fff;
  background: linear-gradient(180deg, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0.05) 100%);
  border: 1px solid rgba(255,255,255,0.20);
  box-shadow: 0 6px 18px -6px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.22);
  backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px);
}
.psl-method-v5 .pp-chip {
  width: 32px; height: 32px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: linear-gradient(145deg, var(--c) 0%, var(--c2) 100%);
  box-shadow: 0 3px 9px -2px color-mix(in srgb, var(--c) 65%, transparent), inset 0 1px 0 rgba(255,255,255,0.40), inset 0 0 0 1px rgba(255,255,255,0.12);
}
.psl-method-v5 .pp-chip svg { width: 18px; height: 18px; display: block; color: #fff; }
.psl-method-v5 .pp-label { font-size: 12.5px; font-weight: 600; letter-spacing: 0.01em; }

/* Central CTA squircle */
.psl-method-v5 .pp-cta {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%); z-index: 7;
  width: 96px; height: 96px; border-radius: 26px; text-decoration: none;
  background: linear-gradient(150deg, #6ff9e2 0%, #2EE0B0 50%, #0fbfa3 100%);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 7px; padding: 10px; border: 1px solid rgba(255,255,255,0.45);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.45), 0 2px 4px rgba(13,0,66,0.18), 0 14px 26px -12px rgba(13,0,66,0.42), 0 6px 14px -8px rgba(15,191,163,0.45);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.psl-method-v5 .pp-cta:hover {
  transform: translate(-50%, -50%) scale(1.05);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.45), 0 3px 6px rgba(13,0,66,0.22), 0 20px 34px -12px rgba(13,0,66,0.50), 0 10px 20px -8px rgba(15,191,163,0.55);
}
.psl-method-v5 .pp-cta-label { font-size: 12.5px; font-weight: 800; line-height: 1.12; letter-spacing: -0.01em; text-align: center; color: #0D0042; }
.psl-method-v5 .pp-cta-badge {
  width: 28px; height: 28px; border-radius: 50%; background: #0D0042;
  display: inline-flex; align-items: center; justify-content: center; transition: transform 0.2s ease;
}
.psl-method-v5 .pp-cta-badge svg { width: 14px; height: 14px; display: block; stroke: #2EE0B0; fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.psl-method-v5 .pp-cta:hover .pp-cta-badge { transform: translate(2px, -2px); }

@media (max-width: 900px) {
  .psl-method-v5 .m-partners { grid-template-columns: 1fr; }
  .psl-method-v5 .m-partners-copy { padding: 30px 28px 8px; }
  .psl-method-v5 .m-partners-stage { height: 290px; }
  .psl-method-v5 .pp-cta { width: 86px; height: 86px; border-radius: 22px; padding: 9px; gap: 6px; }
  .psl-method-v5 .pp-cta-label { font-size: 11.5px; }
  .psl-method-v5 .pp-cta-badge { width: 26px; height: 26px; }
  .psl-method-v5 .m-partners-h { font-size: 27px; }
}

/* =====================================================================
   SIGNATURE INSIGHT — article-extract framing
   ===================================================================== */
.psl-method-v5 .m-insight-kicker {
  display: inline-flex; align-items: center; gap: 9px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255,255,255,0.62);
  margin-bottom: 18px;
  padding: 6px 13px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 999px;
}
.psl-method-v5 .m-insight-article-title {
  margin: 10px 0 14px;
  font-size: 26px; font-weight: 700; line-height: 1.25; letter-spacing: -0.015em;
  color: #fff; text-wrap: balance; max-width: 620px;
}
.psl-method-v5 .m-insight-dateline {
  display: flex; align-items: center; flex-wrap: wrap; gap: 12px;
  font-size: 12.5px; font-weight: 500; letter-spacing: 0.02em;
  color: rgba(255,255,255,0.55);
  padding-bottom: 26px;
  border-bottom: 1px solid rgba(255,255,255,0.14);
}
.psl-method-v5 .m-insight-dateline-dot {
  width: 3px; height: 3px; border-radius: 50%; background: rgba(255,255,255,0.4);
}
/* Pull-quote — the opening line, framed as a lifted excerpt. */
.psl-method-v5 .m-insight-pullquote {
  position: relative;
  margin-top: 28px;
  padding-left: 40px;
}
.psl-method-v5 .m-insight-quotemark {
  position: absolute; left: -6px; top: -22px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 90px; line-height: 1; color: #8936FF; opacity: 0.5;
  pointer-events: none;
}
.psl-method-v5 .m-insight-pullquote .m-insight-h {
  margin: 0;
}
