:root{
  --ppm-red:     var(--color-red,       #c00d0d);
  --ppm-light:   var(--color-red-light, #cd665c);
  --ppm-pale:    var(--color-red-pale,  #e08082);
  --ppm-line:    var(--border,          #e6ddd7);
  --ppm-surface: var(--surface,         #f7f3ef);
  --ppm-spd:1;
  --ppm-size:72px;
}

:root[data-theme="dark"]{
  --ppm-red:   #ff9a90;
  --ppm-light: #e08b81;
  --ppm-pale:  #c97b74;
}

.ppm-sprite{position:absolute;width:0;height:0;overflow:hidden}
.ppm-a{fill:var(--ppm-pale)}
.ppm-b{fill:var(--ppm-red)}
.ppm-c{fill:var(--ppm-light)}

.ppm-l{display:inline-flex;align-items:center;justify-content:center;line-height:0}
.ppm-l svg{width:var(--ppm-size);height:auto;overflow:visible}
.ppm-l g{transform-box:fill-box;transform-origin:center}
.ppm-l--on-dark svg{filter:brightness(0) invert(1)}

.ppm-loading{display:inline-flex;align-items:center;gap:10px}
.ppm-loading__label{font-size:1em}

.ppm-l--fill g{animation:ppm-fill calc(1.5s / var(--ppm-spd)) cubic-bezier(.33,1,.68,1) infinite}
.ppm-l--fill .ppm-g1{transform-origin:bottom right}
.ppm-l--fill .ppm-g2{transform-origin:bottom left;animation-delay:calc(.18s / var(--ppm-spd))}
.ppm-l--fill .ppm-g3{transform-origin:top center;animation-delay:calc(.36s / var(--ppm-spd))}
@keyframes ppm-fill{0%{opacity:.14;transform:scale(.84)}28%,62%{opacity:1;transform:scale(1)}92%,100%{opacity:.14;transform:scale(.84)}}

.ppm-l--pulse g{animation:ppm-petal calc(1.2s / var(--ppm-spd)) ease-in-out infinite}
.ppm-l--pulse .ppm-g2{animation-delay:calc(.16s / var(--ppm-spd))}
.ppm-l--pulse .ppm-g3{animation-delay:calc(.32s / var(--ppm-spd))}
@keyframes ppm-petal{0%,100%{transform:scale(.68);opacity:.3}40%{transform:scale(1.1);opacity:1}}

.ppm-l--bloom svg{animation:ppm-spin calc(6s / var(--ppm-spd)) linear infinite}
.ppm-l--bloom g{animation:ppm-bloom calc(2.2s / var(--ppm-spd)) ease-in-out infinite}
.ppm-l--bloom .ppm-g2{animation-delay:calc(.2s / var(--ppm-spd))}
.ppm-l--bloom .ppm-g3{animation-delay:calc(.4s / var(--ppm-spd))}
@keyframes ppm-bloom{0%,100%{transform:rotate(0deg) scale(.5);opacity:.45}50%{transform:rotate(120deg) scale(1);opacity:1}}
@keyframes ppm-spin{to{transform:rotate(360deg)}}

.ppm-l--gather .ppm-g1{animation:ppm-gather-a calc(1.7s / var(--ppm-spd)) cubic-bezier(.45,0,.55,1) infinite}
.ppm-l--gather .ppm-g2{animation:ppm-gather-b calc(1.7s / var(--ppm-spd)) cubic-bezier(.45,0,.55,1) infinite}
.ppm-l--gather .ppm-g3{animation:ppm-gather-c calc(1.7s / var(--ppm-spd)) cubic-bezier(.45,0,.55,1) infinite}
@keyframes ppm-gather-a{0%,100%{transform:translate(11px,-10px) scale(.92);opacity:.4}44%,56%{transform:translate(0,0) scale(1);opacity:1}}
@keyframes ppm-gather-b{0%,100%{transform:translate(-11px,-9px) scale(.92);opacity:.4}44%,56%{transform:translate(0,0) scale(1);opacity:1}}
@keyframes ppm-gather-c{0%,100%{transform:translate(0,12px) scale(.92);opacity:.4}44%,56%{transform:translate(0,0) scale(1);opacity:1}}

.ppm-l--dots{gap:10px}
.ppm-l--dots svg{width:calc(var(--ppm-size) / 2.9)}
.ppm-l--dots svg{animation:ppm-dot calc(1s / var(--ppm-spd)) ease-in-out infinite}
.ppm-l--dots svg:nth-child(2){animation-delay:calc(.14s / var(--ppm-spd))}
.ppm-l--dots svg:nth-child(3){animation-delay:calc(.28s / var(--ppm-spd))}
@keyframes ppm-dot{0%,100%{transform:translateY(0) scale(.9);opacity:.35}40%{transform:translateY(-7px) scale(1);opacity:1}}

.ppm-l--fold g{animation:ppm-fold calc(1.5s / var(--ppm-spd)) cubic-bezier(.85,0,.15,1) infinite}
.ppm-l--fold .ppm-g1{transform-origin:bottom right}
.ppm-l--fold .ppm-g2{transform-origin:bottom left;animation-delay:calc(.12s / var(--ppm-spd))}
.ppm-l--fold .ppm-g3{transform-origin:top center;animation-delay:calc(.24s / var(--ppm-spd))}
@keyframes ppm-fold{0%,100%{transform:rotate(0deg) scale(1)}50%{transform:rotate(180deg) scale(.62)}}

.ppm-l--beat svg{animation:ppm-beat calc(1.6s / var(--ppm-spd)) cubic-bezier(.4,0,.2,1) infinite;transform-box:fill-box;transform-origin:center}
@keyframes ppm-beat{0%,100%{transform:scale(1)}10%{transform:scale(1.14)}22%{transform:scale(.97)}34%{transform:scale(1.07)}48%{transform:scale(1)}}

.ppm-progress{height:6px;border-radius:3px;background:var(--ppm-line);overflow:hidden}
.ppm-progress > span{display:block;width:34%;height:100%;background:linear-gradient(90deg,var(--ppm-red),var(--ppm-pale));animation:ppm-sweep calc(1.9s / var(--ppm-spd)) cubic-bezier(.5,0,.5,1) infinite}
@keyframes ppm-sweep{0%{transform:translateX(-110%)}100%{transform:translateX(320%)}}

.ppm-skel{height:11px;border-radius:2px;background:linear-gradient(90deg,var(--ppm-line) 0%,var(--ppm-surface) 40%,var(--ppm-line) 80%);background-size:220% 100%;animation:ppm-shim calc(1.8s / var(--ppm-spd)) linear infinite}
.ppm-skel + .ppm-skel{margin-top:9px}
@keyframes ppm-shim{0%{background-position:-160% 0}100%{background-position:280% 0}}

.ppm-preloader{position:fixed;inset:0;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:var(--ppm-surface);color:var(--text,#222);transition:opacity .45s ease,visibility .45s ease}
.ppm-preloader__text{font-size:1.1rem;margin:0}
.ppm-preloader.is-done{opacity:0;visibility:hidden}

.ppm-segment-nav__cta button.is-loading,
.wp-block-button__link.is-loading,
.ppm-btn.is-loading{position:relative;pointer-events:none;cursor:progress}
.ppm-segment-nav__cta button .ppm-l,
.wp-block-button__link .ppm-l,
.ppm-btn .ppm-l{--ppm-size:18px}

@media (prefers-reduced-motion:reduce){
  .ppm-l svg,.ppm-l g,.ppm-progress > span,.ppm-skel{animation:none !important}
  .ppm-l g{opacity:1}
}
:root[data-motion="off"] .ppm-l svg,
:root[data-motion="off"] .ppm-l g,
:root[data-motion="off"] .ppm-progress > span,
:root[data-motion="off"] .ppm-skel{animation:none !important}
:root[data-motion="off"] .ppm-l g{opacity:1}
