.flow-loop{padding:var(--section-spacing) var(--gutter);background:var(--blue);color:var(--aubergine)}.flow-loop__inner{max-width:1240px;margin:auto}.flow-loop h2{font:300 clamp(40px,5vw,72px)/1.04 var(--heading-family);letter-spacing:-.03em;margin:0 0 clamp(40px,5vw,64px)}.flow-loop__stage{grid-template-columns:minmax(280px,420px) minmax(0,1fr);align-items:center;gap:clamp(40px,7vw,110px);display:grid}.flow-loop__ring{justify-items:center;gap:22px;margin:0;display:grid}.flow-loop__ring svg{width:100%;height:auto;overflow:visible}.flow-loop__ring figcaption{opacity:.7;text-align:center;font-size:14px}.flow-loop__track{fill:none;stroke:var(--aubergine);stroke-opacity:.18;stroke-width:1.3px}.flow-loop__seg{fill:none;stroke:var(--aubergine);stroke-width:1.6px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 1.3s var(--ease-out)}.flow-loop__seg.is-lit{stroke-dashoffset:0}.flow-loop__node{fill:var(--blue);stroke:var(--aubergine);stroke-width:1.3px;transform-box:fill-box;transform-origin:50%;transition:fill .4s,stroke .4s,scale .5s var(--ease-out)}.flow-loop__node.is-visited{fill:var(--cream)}.flow-loop__node.is-active{fill:var(--red);stroke:var(--red);transition-delay:1.05s;scale:1.3}.flow-loop__core{fill:var(--cream);stroke:var(--aubergine);stroke-width:1.3px;transform-box:fill-box;transform-origin:50%;animation:4s ease-in-out infinite flow-core}.flow-loop__count{font:300 58px/1 var(--heading-family);letter-spacing:-.03em;fill:var(--aubergine);text-anchor:middle;dominant-baseline:central;opacity:0;transition:opacity .35s}.flow-loop__count.is-active{opacity:1;transition-delay:1.05s}.flow-loop__runner{opacity:0;offset-rotate:auto;fill:var(--red)}.flow-loop__wake{stroke:var(--red);stroke-width:1.5px;stroke-linecap:round}.flow-loop__runner.is-run{animation:flow-run 1.3s var(--ease-out) forwards}@keyframes flow-run{0%{offset-distance:0%;opacity:0}10%{opacity:1}85%{offset-distance:100%;opacity:1}to{offset-distance:100%;opacity:0}}@keyframes flow-core{0%,to{scale:1}50%{scale:1.05}}.flow-loop__list{border-top:1px solid #32161b2e;margin:0;padding:0;list-style:none}.flow-loop__list li{border-bottom:1px solid #32161b2e;position:relative}.flow-loop__list button{width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;grid-template-columns:52px minmax(0,1fr);align-items:baseline;padding:22px 0;display:grid}.flow-loop__list button:focus-visible{outline:2px solid var(--aubergine);outline-offset:6px;border-radius:6px}.flow-loop__num{opacity:.55;font-size:14px;transition:color .3s,opacity .3s}.flow-loop__list strong{font:300 clamp(26px,2.8vw,40px)/1.1 var(--heading-family);letter-spacing:-.02em}.flow-loop__body{transition:grid-template-rows .55s var(--ease-out);grid-template-rows:0fr;display:grid}.flow-loop__body>div{min-height:0;overflow:hidden}.flow-loop__body p{opacity:0;max-width:46ch;transition:opacity .4s,translate .5s var(--ease-out);margin:0;padding:0 0 26px 52px;font-size:clamp(17px,1.5vw,20px);line-height:1.5;translate:0 8px}.flow-loop__list li.is-active .flow-loop__num{color:var(--red);opacity:1}.flow-loop__list li.is-active .flow-loop__body,.flow-loop:not(.is-ready) .flow-loop__body{grid-template-rows:1fr}.flow-loop__list li.is-active .flow-loop__body p,.flow-loop:not(.is-ready) .flow-loop__body p{opacity:.85;transition-delay:.12s;translate:none}.flow-loop__bar{background:var(--red);transform-origin:0;width:100%;height:2px;position:absolute;bottom:-1px;left:0;scale:0 1}.flow-loop__list li.is-active .flow-loop__bar{animation:4.6s linear forwards flow-progress}@keyframes flow-progress{0%{scale:0 1}to{scale:1}}.flow-loop__list:hover .flow-loop__bar,.flow-loop__list:focus-within .flow-loop__bar,.flow-loop:not(.is-live) .flow-loop__bar{animation-play-state:paused}@media (width<=800px){.flow-loop__stage{grid-template-columns:1fr;gap:36px}.flow-loop__ring{max-width:260px;margin:0 auto}.flow-loop__count{font-size:54px}.flow-loop__list button{grid-template-columns:40px minmax(0,1fr);padding:18px 0}.flow-loop__body p{padding-left:40px}}@media (prefers-reduced-motion:reduce){.flow-loop__seg,.flow-loop__node,.flow-loop__count,.flow-loop__body,.flow-loop__body p,.flow-loop__num{transition:none!important}.flow-loop__runner,.flow-loop__core{animation:none!important}.flow-loop__bar{display:none}}
