.flywheel-page {
  --flywheel-ink: #141414;
  --flywheel-copy: #595959;
  --flywheel-rule: rgba(20, 20, 20, .16);
  --flywheel-rust: #CB6D51;
  --flywheel-rust-light: #e29578;
  background: var(--flywheel-ink);
}

.flywheel-experience {
  padding: 110px 18px 18px;
  background: var(--flywheel-ink);
}

.flywheel-surface {
  max-width: 1460px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 8px;
  background: #f7f5f0;
  color: var(--flywheel-copy);
}

.flywheel-hero,
.flywheel-stages,
.flywheel-principle,
.flywheel-dark-section,
.flywheel-contexts,
.flywheel-cta {
  padding: clamp(60px, 8vw, 128px) clamp(24px, 7vw, 112px);
}

.flywheel-eyebrow,
.flywheel-stage-kicker,
.flywheel-panel-label,
.flywheel-context-number {
  margin: 0;
  font-family: Montserrat, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .18em;
  line-height: 1.4;
  text-transform: uppercase;
}

.flywheel-eyebrow,
.flywheel-stage-kicker,
.flywheel-context-number { color: var(--flywheel-rust); }

.flywheel-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, .82fr);
  gap: clamp(48px, 8vw, 128px);
  align-items: center;
}

.flywheel-title {
  max-width: 780px;
  margin: 22px 0 28px;
  color: var(--flywheel-ink);
  font-family: "Playfair Display", serif;
  font-size: clamp(52px, 6.4vw, 100px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .96;
}

.flywheel-deck {
  max-width: 660px;
  margin: 0;
  font-family: Raleway, sans-serif;
  font-size: clamp(18px, 1.45vw, 23px);
  line-height: 1.62;
  color: var(--flywheel-copy);
}

.flywheel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 24px;
  align-items: center;
  margin-top: 38px;
}

.flywheel-button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border: 1px solid var(--flywheel-rust);
  border-radius: 22px;
  background: var(--flywheel-rust);
  color: #fff;
  font-family: Montserrat, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.2;
  text-transform: uppercase;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.flywheel-button:hover,
.flywheel-button:focus-visible {
  border-color: var(--flywheel-ink);
  background: var(--flywheel-ink);
  color: #fff;
}

.flywheel-text-link {
  border-bottom: 1px solid currentColor;
  color: var(--flywheel-ink);
  font-family: Raleway, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  text-underline-offset: 4px;
}

.flywheel-figure {
  position: relative;
  width: min(100%, 570px);
  margin: 0 auto;
}

.flywheel-figure img {
  display: block;
  width: 100%;
  height: auto;
}

.flywheel-hotspot {
  position: absolute;
  z-index: 2;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 50%;
  background: rgba(20,20,20,.88);
  color: #fff;
  font-family: Montserrat, sans-serif;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transform: translate(-50%, -50%);
  transition: transform .2s ease, background-color .2s ease;
}

.flywheel-hotspot:hover,
.flywheel-hotspot:focus-visible,
.flywheel-hotspot.is-active {
  background: var(--flywheel-rust);
  transform: translate(-50%, -50%) scale(1.08);
}

.wheel-hotspot-1 { left: 43%; top: 57%; }
.wheel-hotspot-2 { left: 63%; top: 7%; }
.wheel-hotspot-3 { left: 96%; top: 51%; }
.wheel-hotspot-4 { left: 47%; top: 95%; }
.wheel-hotspot-5 { left: 4%; top: 48%; }
.wheel-hotspot-6 { left: 44%; top: 35%; }

.flywheel-caption {
  max-width: 390px;
  margin: 20px auto 0;
  font-family: Raleway, sans-serif;
  font-size: 12px;
  line-height: 1.55;
  text-align: center;
}

.flywheel-section-header {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1fr);
  gap: 40px;
  margin-bottom: 46px;
}

.flywheel-section-header h2,
.flywheel-principle h2,
.flywheel-dark-section h2,
.flywheel-contexts h2,
.flywheel-cta h2 {
  margin: 12px 0 0;
  color: var(--flywheel-ink);
  font-family: "Playfair Display", serif;
  font-size: clamp(38px, 4.3vw, 68px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1.02;
}

.flywheel-section-intro {
  align-self: end;
  max-width: 660px;
  margin: 0;
  font-family: Raleway, sans-serif;
  font-size: 17px;
  line-height: 1.65;
}

.flywheel-stage-list { border-top: 1px solid var(--flywheel-rule); }
.flywheel-stage-item { border-bottom: 1px solid var(--flywheel-rule); }

.flywheel-stage-toggle {
  display: grid;
  width: 100%;
  min-height: 98px;
  grid-template-columns: 72px minmax(0, 1fr) 30px;
  gap: 24px;
  align-items: center;
  padding: 16px 0;
  border: 0;
  background: transparent;
  color: var(--flywheel-ink);
  text-align: left;
  cursor: pointer;
  border-radius: 0;
  font-size: inherit;
  letter-spacing: 0;
  line-height: inherit;
  text-transform: none;
}

.flywheel-stage-toggle:hover,
.flywheel-stage-toggle:focus,
.flywheel-stage-toggle:focus-visible {
  border-color: transparent;
  background: transparent;
  color: var(--flywheel-ink);
  outline: 0;
}

.flywheel-stage-number {
  color: rgba(203,109,81,.78);
  font-family: "Playfair Display", serif;
  font-size: clamp(38px, 4vw, 54px);
  font-style: italic;
  line-height: 1;
}

.flywheel-stage-title {
  font-family: "Playfair Display", serif;
  font-size: clamp(21px, 2vw, 30px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0;
  text-transform: none;
}

.flywheel-stage-icon {
  color: var(--flywheel-rust);
  font-size: 14px;
  text-align: right;
}

.flywheel-stage-panel[hidden] { display: none; }
.flywheel-stage-panel { padding: 2px 54px 42px 96px; }
.flywheel-stage-thesis {
  max-width: 830px;
  margin: 0 0 28px;
  color: var(--flywheel-ink);
  font-family: "Playfair Display", serif;
  font-size: clamp(22px, 2.4vw, 34px);
  line-height: 1.32;
}

.flywheel-stage-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.flywheel-stage-grid > div {
  padding-top: 15px;
  border-top: 1px solid var(--flywheel-rule);
}

.flywheel-panel-label { color: var(--flywheel-rust); }
.flywheel-stage-grid p:not(.flywheel-panel-label) {
  margin: 9px 0 0;
  font-family: Raleway, sans-serif;
  font-size: 14px;
  line-height: 1.58;
}

.flywheel-next {
  margin-top: 28px;
  padding: 0 0 4px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: var(--flywheel-ink);
  font-family: Raleway, sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  height: auto;
  min-height: 34px;
  border-radius: 0;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none;
}

.flywheel-next:hover,
.flywheel-next:focus,
.flywheel-next:focus-visible {
  border-color: var(--flywheel-ink);
  background: transparent;
  color: var(--flywheel-ink);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

.flywheel-principle {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
  gap: clamp(48px, 8vw, 120px);
  border-top: 1px solid var(--flywheel-rule);
}

.flywheel-principle-copy {
  align-self: center;
}

.flywheel-principle-copy > p:not(.flywheel-stage-kicker) {
  max-width: 610px;
  margin: 28px 0 0;
  font-family: Raleway, sans-serif;
  font-size: 17px;
  line-height: 1.68;
}

.flywheel-association-stack {
  display: grid;
  gap: 12px;
  align-content: center;
}

.flywheel-association-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 18px;
  align-items: baseline;
  padding: 22px 0;
  border-bottom: 1px solid var(--flywheel-rule);
}

.flywheel-association-card:first-child { border-top: 1px solid var(--flywheel-rule); }
.flywheel-association-card span {
  color: var(--flywheel-rust);
  font-family: "Playfair Display", serif;
  font-size: 25px;
  font-style: italic;
}

.flywheel-association-card p {
  margin: 0;
  color: var(--flywheel-ink);
  font-family: "Playfair Display", serif;
  font-size: clamp(20px, 2vw, 28px);
  line-height: 1.25;
}

.flywheel-dark-section {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: clamp(48px, 8vw, 120px);
  background: var(--flywheel-ink);
  color: rgba(255,255,255,.72);
}

.flywheel-dark-section h2 { color: #fff; }
.flywheel-dark-copy {
  align-self: end;
  font-family: Raleway, sans-serif;
  font-size: 17px;
  line-height: 1.7;
}

.flywheel-dark-copy p { margin: 0 0 18px; }
.flywheel-dark-copy p:last-child { margin-bottom: 0; }

.flywheel-contexts-header {
  max-width: 860px;
  margin-bottom: 58px;
}

.flywheel-contexts-header > p:not(.flywheel-stage-kicker) {
  max-width: 660px;
  margin: 24px 0 0;
  font-family: Raleway, sans-serif;
  font-size: 17px;
  line-height: 1.65;
}

.flywheel-context-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--flywheel-rule);
}

.flywheel-context-card {
  min-height: 300px;
  padding: 30px 30px 18px 0;
  border-bottom: 1px solid var(--flywheel-rule);
}

.flywheel-context-card + .flywheel-context-card {
  padding-left: 30px;
  border-left: 1px solid var(--flywheel-rule);
}

.flywheel-context-card h3 {
  margin: 54px 0 20px;
  color: var(--flywheel-ink);
  font-family: "Playfair Display", serif;
  font-size: clamp(25px, 2.5vw, 36px);
  font-weight: 400;
  line-height: 1.15;
}

.flywheel-context-card p:last-child {
  margin: 0;
  font-family: Raleway, sans-serif;
  font-size: 14px;
  line-height: 1.65;
}

.flywheel-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 40px;
  align-items: end;
  background: #ece9e2;
}

.flywheel-cta h2 {
  max-width: 850px;
  margin-top: 0;
}

.flywheel-status { margin: 0; }

@media (max-width: 1050px) {
  .flywheel-hero-grid { grid-template-columns: 1fr; }
  .flywheel-copy { max-width: 820px; }
  .flywheel-figure { width: min(100%, 620px); }
  .flywheel-section-header,
  .flywheel-principle,
  .flywheel-dark-section { grid-template-columns: 1fr; }
  .flywheel-section-intro { max-width: 760px; }
}

@media (max-width: 760px) {
  .flywheel-experience { padding: 82px 10px 10px; }
  .flywheel-hero,
  .flywheel-stages,
  .flywheel-principle,
  .flywheel-dark-section,
  .flywheel-contexts,
  .flywheel-cta { padding: 54px 22px; }
  .flywheel-hero-grid { gap: 48px; }
  .flywheel-title { margin-top: 18px; font-size: clamp(45px, 15vw, 66px); }
  .flywheel-deck { font-size: 17px; }
  .flywheel-actions { align-items: stretch; }
  .flywheel-button { width: 100%; }
  .flywheel-text-link { margin: 0 auto; }
  .flywheel-figure { width: calc(100% - 8px); }
  .flywheel-hotspot { width: 38px; height: 38px; }
  .flywheel-section-header { gap: 22px; margin-bottom: 34px; }
  .flywheel-stage-toggle {
    min-height: 82px;
    grid-template-columns: 48px minmax(0, 1fr) 22px;
    gap: 12px;
    padding: 14px 0;
  }
  .flywheel-stage-number { font-size: 37px; }
  .flywheel-stage-title { font-size: 21px; }
  .flywheel-stage-panel { padding: 2px 0 36px 60px; }
  .flywheel-stage-thesis { font-size: 22px; }
  .flywheel-stage-grid,
  .flywheel-context-grid { grid-template-columns: 1fr; }
  .flywheel-context-card,
  .flywheel-context-card + .flywheel-context-card {
    min-height: 0;
    padding: 26px 0 32px;
    border-left: 0;
  }
  .flywheel-context-card h3 { margin-top: 28px; }
  .flywheel-cta { grid-template-columns: 1fr; align-items: start; }
}

/* V3: black editorial introduction + white learning surface */
.flywheel-experience {
  padding: 0 18px 18px;
  background: var(--flywheel-ink);
}

.flywheel-hero-v2 {
  padding: clamp(135px, 11vw, 165px) 0 clamp(72px, 8vw, 108px);
  color: #fff;
}

.flywheel-hero-inner {
  display: grid;
  width: min(100%, 1120px);
  margin: 0 auto;
  grid-template-columns: minmax(0, .96fr) minmax(460px, 1.04fr);
  gap: clamp(50px, 7vw, 96px);
  align-items: center;
}

.flywheel-hero-v2 .flywheel-intro h1 {
  max-width: 650px;
  margin: 22px 0 28px;
  color: #fff;
  font-size: clamp(54px, 6.1vw, 84px);
  line-height: .96;
}

.flywheel-hero-v2 .flywheel-deck {
  max-width: 570px;
  color: #b4b4b4;
  font-size: clamp(17px, 1.45vw, 20px);
}

.flywheel-hero-v2 .flywheel-secondary { color: #fff; }
.flywheel-hero-v2 .flywheel-primary:hover,
.flywheel-hero-v2 .flywheel-primary:focus-visible {
  border-color: #fff;
  background: #fff;
  color: var(--flywheel-ink);
}

.flywheel-hero-v2 .flywheel-figure-title {
  margin-bottom: 8px;
  color: rgba(255,255,255,.76);
  font-family: Montserrat, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.flywheel-diagram {
  position: relative;
  width: min(100%, 570px);
  aspect-ratio: 1;
  margin: 0 auto;
}

.flywheel-loop {
  position: absolute;
  inset: 6%;
  width: 88%;
  height: 88%;
  object-fit: contain;
  filter: invert(1);
  opacity: .42;
  transition: opacity .25s ease, transform .5s cubic-bezier(.2,.8,.2,1);
}

.flywheel-diagram:hover .flywheel-loop { opacity: .62; transform: scale(1.015); }

.flywheel-node {
  position: absolute;
  z-index: 2;
  display: flex;
  width: 154px;
  height: auto;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 5px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(255,255,255,.58);
  font: inherit;
  letter-spacing: 0;
  line-height: 1;
  text-align: left;
  text-transform: none;
  white-space: normal;
  cursor: pointer;
  transform: translate(-50%, -50%);
  transition: color .2s ease, transform .2s ease, opacity .18s ease;
}

.flywheel-node:hover,
.flywheel-node:focus,
.flywheel-node:focus-visible {
  border: 0;
  background: transparent;
  color: #fff;
  outline: 0;
  transform: translate(-50%, -50%) scale(1.04);
}

.flywheel-node:focus-visible .flywheel-node-number { outline: 1px solid var(--flywheel-rust-light); outline-offset: 4px; }

.flywheel-node-number {
  display: inline-flex;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 50%;
  color: #fff;
  font-family: Montserrat, sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .08em;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.flywheel-node-label {
  font-family: Montserrat, sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .13em;
  line-height: 1.28;
  text-transform: uppercase;
}

.flywheel-node-label small { display: block; font: inherit; }
.flywheel-node.is-active { color: var(--flywheel-rust-light); }
.flywheel-node.is-active .flywheel-node-number {
  border-color: var(--flywheel-rust);
  background: var(--flywheel-rust);
}

.flywheel-node-1 { left: 50%; top: 65%; }
.flywheel-node-2 { left: 50%; top: 8%; }
.flywheel-node-3 { left: 85%; top: 55%; }
.flywheel-node-4 { left: 50%; top: 94%; }
.flywheel-node-5 { left: 15%; top: 55%; }
.flywheel-node-6 { left: 50%; top: 39%; }

.flywheel-hero-v2 .flywheel-visual figcaption {
  display: flex;
  max-width: 440px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 4px;
  color: #9e9e9e;
}

.flywheel-hero-v2 .flywheel-visual figcaption span {
  color: var(--flywheel-rust-light);
  font-family: Montserrat, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
}

.flywheel-learning-surface {
  width: min(100%, 1170px);
  margin: 0 auto;
  overflow: hidden;
  border-radius: 8px 8px 0 0;
  background: #f7f5f0;
  color: var(--flywheel-copy);
}

.flywheel-learning-inner { padding: clamp(68px, 8vw, 112px) clamp(24px, 7vw, 88px) 0; }
.flywheel-stages-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, .7fr);
  gap: clamp(32px, 6vw, 80px);
  align-items: end;
  margin-bottom: clamp(42px, 6vw, 70px);
}

.flywheel-stages-intro h2 {
  max-width: 720px;
  margin: 14px 0 0;
  color: var(--flywheel-ink);
  font-family: "Playfair Display", serif;
  font-size: clamp(40px, 4.7vw, 64px);
  font-weight: 400;
  letter-spacing: -.03em;
  line-height: 1.02;
}

.flywheel-stages-intro > p {
  margin: 0;
  color: var(--flywheel-copy);
  font-family: Raleway, sans-serif;
  font-size: 16px;
  line-height: 1.7;
}

.flywheel-learning-surface .flywheel-stage-list { border-top-color: var(--flywheel-rule); }
.flywheel-learning-surface .flywheel-principle {
  margin: clamp(70px, 9vw, 118px) calc(clamp(24px, 7vw, 88px) * -1) 0;
  padding-top: clamp(64px, 8vw, 104px);
  padding-bottom: clamp(64px, 8vw, 104px);
  background: #ece9e2;
}

.flywheel-dark-section,
.flywheel-contexts,
.flywheel-cta {
  width: min(100%, 1170px);
  margin-right: auto;
  margin-left: auto;
  box-sizing: border-box;
}

.flywheel-contexts { max-width: 1170px; }
.flywheel-cta { border-radius: 0 0 8px 8px; }

@media (max-width: 1000px) {
  .flywheel-hero-inner { grid-template-columns: 1fr; }
  .flywheel-intro { max-width: 760px; }
  .flywheel-visual { width: min(100%, 660px); justify-self: center; }
  .flywheel-stages-intro { grid-template-columns: 1fr; align-items: start; }
  .flywheel-stages-intro > p { max-width: 680px; }
}

@media (max-width: 760px) {
  .flywheel-experience { padding: 0 10px 10px; }
  .flywheel-hero-v2 { padding: 122px 12px 70px; }
  .flywheel-hero-v2 .flywheel-intro h1 { font-size: clamp(44px, 14vw, 62px); }
  .flywheel-hero-v2 .flywheel-actions { align-items: stretch; }
  .flywheel-diagram { width: min(100%, 470px); }
  .flywheel-node { width: 48px; min-height: 48px; padding: 0; }
  .flywheel-node-label { display: none; }
  .flywheel-node-number { width: 38px; height: 38px; flex-basis: 38px; }
  .flywheel-node-1 { top: 65%; }
  .flywheel-node-2 { top: 8%; }
  .flywheel-node-3 { left: 88%; }
  .flywheel-node-5 { left: 12%; }
  .flywheel-learning-inner { padding: 58px 22px 0; }
  .flywheel-stages-intro h2 { font-size: clamp(36px, 11vw, 50px); }
  .flywheel-learning-surface .flywheel-principle {
    margin-right: -22px;
    margin-left: -22px;
    padding: 58px 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .flywheel-loop,
  .flywheel-node { transition: none; }
}

@media (max-width: 420px) {
  .flywheel-hero,
  .flywheel-stages,
  .flywheel-principle,
  .flywheel-dark-section,
  .flywheel-contexts,
  .flywheel-cta { padding-right: 18px; padding-left: 18px; }
  .flywheel-stage-panel { padding-left: 0; }
  .flywheel-stage-grid { gap: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .flywheel-button,
  .flywheel-hotspot { transition: none; }
  html { scroll-behavior: auto; }
}

/* Page-specific composition */
.flywheel-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
  gap: 70px 80px;
  padding: clamp(60px, 8vw, 112px) clamp(24px, 7vw, 88px);
}

.flywheel-intro { align-self: center; }
.flywheel-intro h1 {
  max-width: 680px;
  margin: 22px 0 28px;
  color: var(--flywheel-ink);
  font-family: "Playfair Display", serif;
  font-size: clamp(54px, 6.4vw, 88px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .96;
}

.flywheel-primary {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12px 24px;
  border: 1px solid var(--flywheel-rust);
  border-radius: 22px;
  background: var(--flywheel-rust);
  color: #fff;
  font-family: Montserrat, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.flywheel-primary:hover,
.flywheel-primary:focus-visible {
  border-color: var(--flywheel-ink);
  background: var(--flywheel-ink);
  color: #fff;
}

.flywheel-secondary,
.flywheel-related a {
  border-bottom: 1px solid currentColor;
  color: inherit;
  text-decoration: none;
  text-underline-offset: 4px;
}

.flywheel-secondary {
  color: var(--flywheel-ink);
  font-family: Raleway, sans-serif;
  font-size: 14px;
  font-weight: 600;
}

.flywheel-visual { align-self: center; margin: 0; }
.flywheel-figure-title {
  margin: 0 0 18px;
  color: var(--flywheel-ink);
  font-family: "Playfair Display", serif;
  font-size: 20px;
  text-align: center;
}

.flywheel-image-wrap { position: relative; width: min(100%, 520px); margin: 0 auto; }
.flywheel-image-wrap img { display: block; width: 100%; height: auto; }
.wheel-hotspot {
  position: absolute;
  z-index: 2;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.76);
  border-radius: 50%;
  background: rgba(20,20,20,.9);
  color: #fff;
  font-family: Montserrat, sans-serif;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transform: translate(-50%, -50%);
  transition: transform .2s ease, background-color .2s ease;
}

.wheel-hotspot:hover,
.wheel-hotspot:focus-visible,
.wheel-hotspot.is-active {
  background: var(--flywheel-rust);
  transform: translate(-50%, -50%) scale(1.08);
}

.flywheel-visual figcaption {
  max-width: 390px;
  margin: 18px auto 0;
  font-family: Raleway, sans-serif;
  font-size: 12px;
  line-height: 1.55;
  text-align: center;
}

.flywheel-stage-list { grid-column: 1 / -1; }
.flywheel-stage-details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
  margin: 0;
}

.flywheel-stage-details > div { padding-top: 15px; border-top: 1px solid var(--flywheel-rule); }
.flywheel-stage-details dt {
  color: var(--flywheel-rust);
  font-family: Montserrat, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}

.flywheel-stage-details dd {
  margin: 9px 0 0;
  font-family: Raleway, sans-serif;
  font-size: 14px;
  line-height: 1.58;
}

.flywheel-principle-copy p {
  max-width: 620px;
  margin: 0 0 22px;
  font-family: Raleway, sans-serif;
  font-size: 17px;
  line-height: 1.7;
}

.flywheel-principle-copy p,
.flywheel-contexts-head > p:last-child,
.flywheel-context-list p,
.flywheel-cta > div:last-child > p {
  color: var(--flywheel-copy);
}

.flywheel-dark-section { display: block; border-radius: 0; }
.flywheel-dark-inner { max-width: 1170px; margin: 0 auto; }
.flywheel-dark-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 46px;
  margin-top: 40px;
}
.flywheel-dark-grid p,
.flywheel-related {
  margin: 0;
  font-family: Raleway, sans-serif;
  font-size: 17px;
  line-height: 1.7;
}
.flywheel-related { margin-top: 42px; font-size: 13px; }

.flywheel-contexts { max-width: 1170px; margin: 0 auto; background: #f7f5f0; }
.flywheel-contexts-head { max-width: 820px; }
.flywheel-contexts-head > p:last-child {
  margin: 24px 0 0;
  font-family: Raleway, sans-serif;
  font-size: 17px;
  line-height: 1.65;
}
.flywheel-context-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 56px;
  border-top: 1px solid var(--flywheel-rule);
}
.flywheel-context-list article {
  padding: 30px 30px 28px 0;
  border-bottom: 1px solid var(--flywheel-rule);
}
.flywheel-context-list article + article { padding-left: 30px; border-left: 1px solid var(--flywheel-rule); }
.flywheel-context-list span {
  color: var(--flywheel-rust);
  font-family: Montserrat, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .15em;
}
.flywheel-context-list h3 {
  margin: 46px 0 18px;
  color: var(--flywheel-ink);
  font-family: "Playfair Display", serif;
  font-size: clamp(25px, 2.5vw, 35px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0;
  text-transform: none;
}
.flywheel-context-list p {
  margin: 0;
  font-family: Raleway, sans-serif;
  font-size: 14px;
  line-height: 1.65;
}

.flywheel-cta > div:last-child > p {
  max-width: 600px;
  margin: 0 0 28px;
  font-family: Raleway, sans-serif;
  font-size: 16px;
  line-height: 1.65;
}
.flywheel-cta-actions { display: flex; flex-wrap: wrap; gap: 18px 24px; align-items: center; }

@media (max-width: 1050px) {
  .flywheel-grid { grid-template-columns: 1fr; }
  .flywheel-stage-list { grid-column: auto; }
}

@media (max-width: 760px) {
  .flywheel-grid { gap: 46px; padding: 54px 22px; }
  .flywheel-intro h1 { font-size: clamp(45px, 15vw, 66px); }
  .flywheel-primary { width: 100%; }
  .flywheel-secondary { margin: 0 auto; }
  .wheel-hotspot { width: 38px; height: 38px; }
  .flywheel-stage-details,
  .flywheel-dark-grid,
  .flywheel-context-list { grid-template-columns: 1fr; }
  .flywheel-context-list article,
  .flywheel-context-list article + article { padding: 26px 0 32px; border-left: 0; }
  .flywheel-context-list h3 { margin-top: 26px; }
  .flywheel-cta-actions { align-items: stretch; }
}

/* Annotated interaction refinements */
.flywheel-primary,
.flywheel-primary:hover,
.flywheel-primary:focus,
.flywheel-primary:focus-visible {
  text-decoration: none !important;
}

.flywheel-node-5 {
  left: 8%;
  top: 52%;
  flex-direction: row-reverse;
  text-align: right;
}

.flywheel-node-6 { left: 61%; top: 30%; }

.flywheel-hero-v2 .flywheel-visual figcaption strong {
  color: #d3d3d3;
  font-family: Raleway, sans-serif;
  font-size: 12px;
  font-weight: 500;
}

.flywheel-hero-v2 .flywheel-visual figcaption small {
  color: #8f8f8f;
  font-family: Raleway, sans-serif;
  font-size: 11px;
}

.flywheel-tip {
  position: absolute;
  z-index: 8;
  bottom: calc(100% + 10px);
  left: 50%;
  width: 210px;
  padding: 13px 15px;
  border: 1px solid rgba(226,149,120,.38);
  border-radius: 8px;
  background: #24201e;
  box-shadow: 0 12px 30px rgba(0,0,0,.3);
  color: #d2d2d2;
  font-family: Raleway, sans-serif;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.45;
  text-align: left;
  text-transform: none;
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, 6px);
  transition: opacity .18s ease, transform .18s ease;
}

.flywheel-tip strong {
  display: block;
  margin-bottom: 4px;
  color: var(--flywheel-rust-light);
  font-family: Montserrat, sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.flywheel-tip em {
  display: block;
  margin-top: 10px;
  margin-bottom: 3px;
  color: #aaa;
  font-family: Montserrat, sans-serif;
  font-size: 8px;
  font-style: normal;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.flywheel-loop.is-pulsing,
.flywheel-diagram:has(.flywheel-node.show-tip) .flywheel-loop {
  animation: flywheel-loop-pulse 720ms ease-in-out;
}

.flywheel-node-number.is-pulsing,
.flywheel-node.show-tip .flywheel-node-number {
  animation: flywheel-node-pulse 420ms cubic-bezier(.2, .8, .2, 1);
}

@keyframes flywheel-loop-pulse {
  0%, 100% { opacity: .42; }
  48% { opacity: .7; }
}

@keyframes flywheel-node-pulse {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(203, 109, 81, 0);
  }
  50% {
    transform: scale(1.24);
    box-shadow: 0 0 0 8px rgba(203, 109, 81, .18);
    background-color: #CB6D51;
    border-color: #CB6D51;
  }
}

.flywheel-node-2 .flywheel-tip,
.flywheel-node-6 .flywheel-tip { top: calc(100% + 8px); bottom: auto; }
.flywheel-node-3 .flywheel-tip { right: calc(100% + 8px); bottom: auto; left: auto; top: 50%; transform: translate(6px, -50%); }
.flywheel-node-5 .flywheel-tip { bottom: auto; left: calc(100% + 8px); top: 50%; transform: translate(-6px, -50%); }

@media (hover: hover) and (pointer: fine) {
  .flywheel-node:hover .flywheel-tip,
  .flywheel-node:focus-visible .flywheel-tip {
    opacity: 1;
    transform: translate(-50%, 0);
  }
  .flywheel-node-3:hover .flywheel-tip,
  .flywheel-node-3:focus-visible .flywheel-tip,
  .flywheel-node-5:hover .flywheel-tip,
  .flywheel-node-5:focus-visible .flywheel-tip { transform: translate(0, -50%); }
}

.flywheel-node.show-tip .flywheel-tip { opacity: 1; transform: translate(-50%, 0); }
.flywheel-node-3.show-tip .flywheel-tip,
.flywheel-node-5.show-tip .flywheel-tip { transform: translate(0, -50%); }

@media (max-width: 760px) {
  .flywheel-tip { display: none; }
  .flywheel-node-5 { left: 12%; }
  .flywheel-node-6 { left: 57%; top: 30%; }
  .flywheel-hero-v2 .flywheel-visual figcaption {
    display: grid;
    grid-template-columns: auto 1fr;
    text-align: left;
  }
  .flywheel-hero-v2 .flywheel-visual figcaption span {
    grid-row: 1 / 3;
    align-self: start;
  }
  .flywheel-hero-v2 .flywheel-visual figcaption small { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  .flywheel-tip { transition: none; }
}

/* Annotation pass: cleaner V5 surfaces, CTA rhythm, and tooltip clearance */
.flywheel-learning-surface,
.flywheel-contexts {
  background: #fff;
}

.flywheel-node-6 {
  left: 61%;
  top: 34%;
}

.flywheel-node-2 .flywheel-tip {
  top: 50%;
  bottom: auto;
  left: calc(100% + 10px);
  transform: translate(-6px, -50%);
}

@media (hover: hover) and (pointer: fine) {
  .flywheel-node-2:hover .flywheel-tip,
  .flywheel-node-2:focus-visible .flywheel-tip {
    transform: translate(0, -50%);
  }
}

.flywheel-node-2.show-tip .flywheel-tip {
  transform: translate(0, -50%);
}

.flywheel-cta {
  grid-template-columns: minmax(300px, .86fr) minmax(0, 1.14fr);
  gap: clamp(48px, 7vw, 90px);
  align-items: center;
  padding: clamp(68px, 7vw, 92px) clamp(28px, 7vw, 88px);
}

.flywheel-cta h2 {
  max-width: 480px;
  margin: 16px 0 0;
  font-size: clamp(46px, 4.5vw, 62px);
  line-height: 1.02;
}

.flywheel-cta > div:last-child {
  max-width: 610px;
}

@media (max-width: 900px) {
  .flywheel-cta {
    grid-template-columns: 1fr;
    gap: 30px;
    align-items: start;
  }
  .flywheel-cta h2 { max-width: 720px; }
}

@media (max-width: 760px) {
  .flywheel-node-6 { left: 57%; top: 33%; }
  .flywheel-cta { padding: 58px 22px; }
  .flywheel-cta h2 { font-size: clamp(38px, 11vw, 50px); }
}

/* Momentum trace: prior stages remain visible without continuous animation */
.flywheel-diagram::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 6%;
  background: url("../images/positioning-flywheel-loop-v2.png") center / contain no-repeat;
  filter: invert(48%) sepia(28%) saturate(1045%) hue-rotate(326deg) brightness(101%) contrast(88%);
  opacity: var(--flywheel-trace-opacity, 0);
  pointer-events: none;
  transition: opacity .35s ease;
}

.flywheel-diagram[data-progress="1"] { --flywheel-trace-opacity: .035; }
.flywheel-diagram[data-progress="2"] { --flywheel-trace-opacity: .055; }
.flywheel-diagram[data-progress="3"] { --flywheel-trace-opacity: .075; }
.flywheel-diagram[data-progress="4"] { --flywheel-trace-opacity: .095; }
.flywheel-diagram[data-progress="5"] { --flywheel-trace-opacity: .12; }

.flywheel-node.is-traveled {
  color: rgba(226, 149, 120, .76);
}

.flywheel-node.is-traveled .flywheel-node-number {
  border-color: rgba(203, 109, 81, .72);
  background: rgba(203, 109, 81, .08);
  box-shadow: 0 0 0 3px rgba(203, 109, 81, .045);
}

.flywheel-node-1 .flywheel-tip {
  top: calc(100% + 10px);
  bottom: auto;
  left: calc(50% - 195px);
}

.flywheel-node.show-tip,
.flywheel-node:hover,
.flywheel-node:focus-visible {
  z-index: 20;
}

.flywheel-diagram:has(.flywheel-node.show-tip) .flywheel-node:not(.show-tip) {
  opacity: .42;
}

@media (min-width: 1001px) and (max-width: 1250px) {
  .flywheel-node-2 .flywheel-tip {
    right: calc(100% + 10px);
    left: auto;
    transform: translate(6px, -50%);
  }
  .flywheel-node-2.show-tip .flywheel-tip { transform: translate(0, -50%); }
}

@media (prefers-reduced-motion: reduce) {
  .flywheel-diagram::before { transition: none; }
}

/* Scientific principle + full-width close */
.flywheel-principle-heading {
  align-self: center;
  min-width: 0;
}

.flywheel-principle-copy {
  min-width: 0;
}

.flywheel-principle-heading h2 {
  margin-top: 0;
}

.flywheel-principle-copy .flywheel-hypothesis-label {
  margin: 0 0 20px;
  color: var(--flywheel-rust);
  font-family: Montserrat, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}

.flywheel-hypothesis-label sub {
  font-size: .7em;
  vertical-align: sub;
}

.flywheel-equation {
  display: grid;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  grid-template-columns: auto min-content auto min-content auto min-content auto;
  gap: clamp(6px, .8vw, 12px);
  align-items: center;
  padding: 24px 0;
  border-top: 1px solid var(--flywheel-ink);
  border-bottom: 1px solid var(--flywheel-ink);
  color: var(--flywheel-ink);
  font-family: "Playfair Display", serif;
  font-size: clamp(17px, 1.55vw, 22px);
  line-height: 1.15;
}

.flywheel-equation-operator {
  color: var(--flywheel-rust);
  font-family: Montserrat, sans-serif;
  font-size: .8em;
}

.flywheel-principle-copy .flywheel-hypothesis-note {
  max-width: 570px;
  margin: 22px 0 0;
  color: var(--flywheel-copy);
  font-size: 15px;
  line-height: 1.65;
}

.flywheel-cta {
  width: min(100%, 1170px);
  max-width: 1170px;
  border-radius: 0 0 8px 8px;
}

.flywheel-cta h2 {
  margin-top: 0;
}

.flywheel-learning-surface {
  border-radius: 8px;
}

.flywheel-contexts {
  overflow: hidden;
  border-radius: 8px 8px 0 0;
}

@media (max-width: 760px) {
  .flywheel-equation {
    grid-template-columns: 1fr;
    gap: 8px;
    font-size: 21px;
    text-align: center;
  }

  .flywheel-equation-operator {
    transform: rotate(90deg);
  }
}
