/* Six live-text stages: clockwise lifecycle outside, shared data context inside. */
.flywheel-example{padding:76px var(--gutter) 48px;display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.4fr);gap:20px clamp(32px,4vw,68px);align-items:center;background:radial-gradient(ellipse at 72% 42%,rgba(255,255,255,.65),transparent 62%)}
.flywheel-copy h3{font:400 clamp(56px,5.1vw,88px)/1.02 var(--font-display);margin:26px 0}
.flywheel-copy .lead{font-size:clamp(20px,1.5vw,25px);max-width:450px}
.flywheel-return{margin-top:38px;padding-top:23px;border-top:1px solid var(--line);max-width:430px}
.flywheel-return>.eyebrow{font-size:13px}.flywheel-return>p{font-size:17px;color:var(--graphite);margin-top:12px}
.flywheel-figure{margin:0;min-width:0;width:100%;max-width:880px;justify-self:center}
.flywheel-diagram{position:relative;aspect-ratio:1;isolation:isolate;container-type:inline-size}
.flywheel-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;pointer-events:none}
.flywheel-orbit{stroke:var(--ink);stroke-opacity:.12;stroke-width:1;stroke-dasharray:3 9}
.flywheel-spokes{stroke:var(--ink);stroke-opacity:.25;stroke-width:1}.flywheel-spokes circle{fill:var(--ink);stroke:none;fill-opacity:.45}
.flywheel-arrows{stroke:var(--ink);stroke-opacity:.55;stroke-width:1.6}.flywheel-arrows .flywheel-feedback{stroke-opacity:.9;stroke-width:2.4}
#flywheel-arrow path{stroke:var(--ink);stroke-width:1.5;stroke-opacity:.8}
.flywheel-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:35%;aspect-ratio:1;border:1px solid rgba(255,255,255,.85);border-radius:50%;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.9),rgba(255,255,255,.15) 80%);box-shadow:0 12px 36px rgba(11,14,20,.045),inset 0 0 18px rgba(255,255,255,.7);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.flywheel-core>.eyebrow{font-size:clamp(8px,1.2cqw,12px);letter-spacing:.02em}
.flywheel-core h3{font:400 clamp(25px,5.5cqw,50px)/1.03 var(--font-display);margin:13px 0}
.flywheel-core>p{font-size:clamp(10px,1.65cqw,15px);line-height:1.5;color:var(--graphite)}
.flywheel-stages{list-style:none;padding:0;margin:0}
.flywheel-stages li{position:absolute;transform:translate(-50%,-50%);width:27%;text-align:center}
.flywheel-stages .step-number{font-size:clamp(10px,1.6cqw,14px)}
.flywheel-stages h3{font:400 clamp(28px,5.4cqw,46px)/1.12 var(--font-display);margin:5px 0 8px}
.flywheel-stages p{font-size:clamp(13px,1.95cqw,17px);line-height:1.4;color:var(--graphite);max-width:180px;margin:auto;text-wrap:balance}
.stage-ideate{left:50%;top:8%}.stage-design{left:85%;top:29.5%}.stage-develop{left:85%;top:70.5%}.stage-source{left:50%;top:92%}.stage-produce{left:15%;top:70.5%}.stage-sell{left:15%;top:29.5%}
.flywheel-figure figcaption{max-width:570px;margin:32px auto 0;text-align:center;font-size:16px;color:var(--graphite)}
.flywheel-note{grid-column:1/-1;margin-top:22px;max-width:none}
@media(min-width:1800px){.flywheel-example{padding-top:90px;padding-bottom:60px}.flywheel-copy h3{font-size:96px}}
@media(max-width:1100px){.flywheel-example{grid-template-columns:1fr;padding-top:64px;gap:30px}.flywheel-copy{max-width:720px}.flywheel-copy h3{font-size:72px}.flywheel-copy .lead{max-width:650px}.flywheel-return{max-width:600px;margin-top:25px}.flywheel-figure{max-width:720px}.flywheel-note{margin-top:0}}
@media(max-width:600px){.flywheel-example{padding:54px var(--gutter) 40px;gap:38px}.flywheel-copy h3{font-size:59px}.flywheel-return>p{font-size:16px}.flywheel-diagram{margin:10px -8px;width:calc(100% + 16px)}.flywheel-core{width:35%}.flywheel-core>.eyebrow{display:none}.flywheel-core h3{font-size:clamp(22px,6.4cqw,30px);margin:0}.flywheel-core>p{display:none}.flywheel-stages li{width:28%}.flywheel-stages h3{font-size:clamp(25px,7.5cqw,33px);margin:3px 0 5px}.flywheel-stages p{font-size:12px;line-height:1.35}.flywheel-stages .step-number{font-size:10px}.flywheel-figure figcaption{margin-top:27px;font-size:15px;text-align:left}.flywheel-note{font-size:12px}}
@media(max-width:600px){.flywheel-copy h3{font-size:clamp(48px,13.5vw,59px)}.flywheel-stages p{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


/* Approved flywheel layout; the shared two-layer scroll adapter is unchanged. */
.has-flywheel .cycle {
  grid-template-columns: minmax(280px,.78fr) minmax(0,1.3fr);
  grid-template-rows: auto auto;
  min-height: 112svh;
  gap: 36px clamp(26px,3.3vw,64px);
  align-items:center;
  overflow:visible;
  padding-top:clamp(116px,14vh,160px);
  padding-bottom:90px;
}
.has-flywheel .cycle-copy { grid-column:1;grid-row:1; }
.has-flywheel .cycle-copy h2 {font-size:clamp(64px,6.2vw,106px);max-width:600px;line-height:1;}
.has-flywheel .cycle-copy>p:not(.section-code) {font-size:clamp(19px,1.5vw,24px);max-width:480px;line-height:1.55;}
.agent-flywheel {grid-column:2;grid-row:1/3;position:relative;min-width:0;width:100%;max-width:780px;justify-self:center;display:flex;flex-direction:column;}
.flywheel-figure {max-width: min(100%, 68svh);margin-inline:auto;}
.flywheel-core {background:rgba(255,255,255,.52);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:rgba(255,255,255,.92);}
.flywheel-core h3,.flywheel-stages h3 {text-transform:none;letter-spacing:-.025em;}
.flywheel-core>.eyebrow {font-family:var(--font-mono);font-weight:400;text-transform:uppercase;letter-spacing:.025em;}
.flywheel-core h3{margin:12px 0;font-weight:400;}
.flywheel-stages h3{font-weight:400;}
.flywheel-stages .step-number {font-family:var(--font-mono);color:var(--graphite);}
.flywheel-stages li {text-shadow:0 0 16px var(--parchment),0 0 5px var(--parchment);}
.flywheel-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;margin:0 0 16px;order:-1;font:12px/1.5 var(--font-mono);color:var(--graphite);}
.flywheel-phase{display:flex;flex-direction:column;gap:3px;min-width:0;}
.flywheel-phase>span{font-size:10px;}
.flywheel-phase>strong{font:400 19px/1.25 var(--font-text);color:var(--ink);}
.flywheel-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.flywheel-controls button{color:var(--ink);font:inherit;padding:10px 14px;min-height:44px;border:1px solid var(--line);border-radius:30px;background:rgba(255,255,255,.5);cursor:pointer;backdrop-filter:blur(10px);}
.flywheel-controls button:hover{background:rgba(255,255,255,.8);}
.flywheel-controls button:focus-visible{outline:2px solid var(--ink);outline-offset:4px;}
.flywheel-controls button:disabled{cursor:default;color:var(--graphite);}
.flywheel-controls button[hidden]{display:none;}
.flywheel-figure figcaption strong{display:block;font:12px/1.5 var(--font-mono);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;color:var(--ink);}
.flywheel-figure figcaption small{display:block;font-size:12px;line-height:1.5;margin-top:12px;}
.flywheel-core{transition:background-color 2s ease,box-shadow 2s ease;}
[data-momentum="reuse"] .flywheel-core{background-color:rgba(255,255,255,.63);box-shadow:0 12px 36px rgba(11,14,20,.065),inset 0 0 24px rgba(255,255,255,.8);}
[data-momentum="compound"] .flywheel-core{background-color:rgba(255,255,255,.76);box-shadow:0 12px 40px rgba(11,14,20,.09),inset 0 0 28px rgba(255,255,255,.9);}
.flywheel-feedback-copy{grid-column:1;grid-row:2;align-self:start;max-width:420px;border-top:1px solid var(--line);padding-top:26px;}
.flywheel-feedback-copy .section-code{font-size:13px;margin-bottom:14px;display:block;}
.flywheel-feedback-copy p{font-size:17px;line-height:1.55;color:var(--graphite);margin:0;}
.flywheel-feedback-copy a{font:11px/1.5 var(--font-mono);display:inline-block;margin-top:30px;text-underline-offset:4px;}
.has-flywheel .cycle-machine{opacity:.24;bottom:-14vh;}
/* Motion lives on data paths only. The six stages and typography never rotate. */
.flywheel-orbit-motion{transform-origin:500px 500px;animation:flywheel-circulate 20s linear infinite;animation-play-state:paused;}
.flywheel-orbit-motion circle{stroke:var(--ink);stroke-width:6;stroke-linecap:round;stroke-dasharray:.2 33.1333;fill:none;opacity:.74;}
.flywheel-data-motion path{stroke:var(--ink);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:8 130;stroke-opacity:.55;animation:flywheel-context-flow 5s linear infinite;animation-play-state:paused;}
[data-motion="running"] .flywheel-orbit-motion,[data-motion="running"] .flywheel-data-motion path{animation-play-state:running;}
@keyframes flywheel-circulate{to{transform:rotate(360deg);}}
@keyframes flywheel-context-flow{to{stroke-dashoffset:-138;}}
@media(max-width:1150px){
 .has-flywheel .cycle{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:42px;min-height:auto;}
 .has-flywheel .cycle-copy{max-width:720px;grid-row:1;}
 .has-flywheel .cycle-copy h2{font-size:clamp(60px,7.8vw,88px);}
 .has-flywheel .cycle-copy>p:not(.section-code){max-width:640px;}
 .agent-flywheel{grid-column:1;grid-row:2;max-width:720px;}
 .flywheel-feedback-copy{grid-column:1;grid-row:3;max-width:600px;}
 .flywheel-figure{max-width:100%;}
 .has-flywheel .cycle-machine{opacity:.18;}
}
@media(max-width:600px){
 .has-flywheel .cycle{padding-top:110px;padding-left:62px;padding-right:22px;padding-bottom:70px;gap:36px;}
 .has-flywheel .cycle-copy h2{font-size:clamp(49px,13vw,72px);}
 .has-flywheel .cycle-copy>p:not(.section-code){font-size:19px;}
 .agent-flywheel{width:calc(100% + 24px);margin-left:-24px;}
 .flywheel-core h3{font-size:clamp(22px,6.4cqw,30px);margin:0;}
 .flywheel-stages h3{font-size:clamp(25px,7.5cqw,33px);margin:3px 0 5px;}
 .flywheel-stages p{font-size:12px;}
 .flywheel-figure figcaption{font-size:15px;text-shadow:0 0 12px var(--parchment);margin-left:24px;}
 .flywheel-controls{flex-wrap:wrap;gap:14px;font-size:11px;padding-left:24px;margin-bottom:24px;}
 .flywheel-phase{width:100%;}
 .flywheel-buttons{justify-content:flex-start;}
 .flywheel-controls>[data-flywheel-status]{max-width:150px;}
 .flywheel-feedback-copy{margin-top:10px;}
 .has-flywheel .cycle-machine{opacity:.15;}
}
@media(prefers-reduced-motion:reduce){
 .flywheel-orbit-motion,.flywheel-data-motion path{animation:none!important;}
 .flywheel-core{transition:none;}
}
