/* Culture cycle (widgets/cycle/cycle.js); the coral of the original drawing for the arrows. */
.cy { --cy-c: #f0602b; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 10px 24px; padding: 12px 26px 12px 12px; }
.cy__svg { width: 100%; height: 100%; min-height: 0; overflow: visible; }
.cy__arr { fill: none; stroke: color-mix(in srgb, var(--cy-c) 45%, transparent); stroke-width: 2; transition: stroke .35s ease, stroke-width .35s ease; }
.cy__arr--dash { stroke-dasharray: 6 6; }
.cy marker path { fill: var(--cy-c); }
.cy__arr.is-lit { stroke: var(--cy-c); stroke-width: 3; }
.cy__dots circle { fill: var(--ink); pointer-events: none; }
.cy__box { cursor: pointer; outline: none; }
.cy__box rect { fill: var(--a-card); stroke: var(--cy-c); stroke-width: 2; transition: fill .3s ease; }
.cy__box text { font: 700 17px var(--font); fill: var(--ink); text-anchor: middle; }
.cy__box .cy__sub { font-weight: 400; font-size: 11px; fill: var(--muted); }
.cy__box .aha-i { color: var(--cy-c); stroke-width: 1.5; }
.cy__box:hover rect, .cy__box:focus-visible rect { fill: color-mix(in srgb, var(--cy-c) 10%, var(--a-card)); }
.cy__box.is-on rect { fill: var(--cy-c); }
.cy__box.is-on text, .cy__box.is-on .cy__sub { fill: #fff; }
.cy__box.is-on .aha-i { color: #fff; }
.cy__side { align-self: center; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.cy__modes { display: flex; flex-wrap: wrap; gap: 5px; }
.cy__panel { display: flex; flex-direction: column; gap: 8px; }
.cy__panel h3 { margin: 0; font-size: clamp(16px, 5.4cqh, 22px); line-height: 1.15; font-weight: 700; }
.cy__panel p { margin: 0; color: var(--ink-2); }
.cy__panel blockquote { margin: 0; padding: 8px 12px; border-radius: 10px; background: color-mix(in srgb, var(--cy-c) 10%, transparent); font-size: 13px; line-height: 1.35; }
.cy__panel cite { display: block; margin-top: 4px; font-style: normal; font-size: 11.5px; color: var(--muted); }
.cy__aha { font-size: 12.5px; }
.cy__aha b { color: var(--a-teal); font-weight: 600; }
.cy__src { margin: 0; font-size: 11px; color: var(--muted); }
/* Narrow frames (≤ 640px; class set by widgets/aha-kit/kit.js). */
.cy.aha--w640 { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; padding: 12px 14px; }
.is-vertical .cy { grid-template-rows: auto auto; align-content: start; }
.is-vertical .cy__svg { height: auto; aspect-ratio: 590 / 450; }
