/* craft signature "petals" (Flower Workshops): 3-format switcher + bloomreveal SVG builds + capped petalfall.
   Compositor-only (opacity/transform). One IO (engine). Panels are all readable without JS (stacked); `.ps-js` (added by the module) turns on the switcher. */
.ps-defs{position:absolute;width:0;height:0;overflow:hidden}
.ps-tabs{display:none}
.ps-js .ps-tabs{display:grid;position:relative;grid-template-columns:repeat(3,1fr);width:min(100%,600px);margin:0 auto 40px;padding:5px;border:1px solid var(--line);border-radius:999px;background:var(--paper)}
.ps-ink{position:absolute;left:5px;top:5px;bottom:5px;width:calc((100% - 10px)/3);border-radius:999px;background:var(--ink);transform:translateX(calc(var(--k,0)*100%));transition:transform .55s var(--ease)}
.ps-tab{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:56px;padding:6px 8px;border:0;border-radius:999px;background:none;color:var(--ink);font:700 16px/1.2 var(--f-body);cursor:pointer;transition:color .25s}
.ps-tab small{font:600 12px/1.2 var(--f-body);letter-spacing:.04em;opacity:.8}
.ps-tab[aria-selected=true]{color:#fff}
.ps-tab:focus-visible{outline:3px solid var(--accent-ink);outline-offset:2px}
@media (max-width:560px){.ps-tab small{display:none}.ps-tab{font-size:15px;min-height:48px}}
.ps-panels{position:relative}
.ps-panel{display:grid;gap:30px;align-items:center;padding:6px 0 34px}
@media (min-width:900px){.ps-panel{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:70px}.ps-p1 .ps-art{order:2}.ps-p1 .ps-txt{order:1}}
.ps-art{position:relative;width:100%;max-width:440px;aspect-ratio:10/11;margin:0 auto;border-radius:220px 220px 30px 30px;background:var(--sig-bg)}
.ps-p1 .ps-art{background:#F6E5E2}.ps-p2 .ps-art{background:#F3E8D5}
.ps-svg{position:absolute;left:6%;top:5%;width:88%;height:90%;display:block;overflow:visible}
.ps-ph{position:absolute;right:-5%;bottom:-6%;width:44%;margin:0;overflow:hidden;border:5px solid var(--paper);border-radius:16px;box-shadow:0 16px 28px -16px rgba(47,74,58,.55)}
.ps-p1 .ps-ph{right:auto;left:-5%}
.ps-ph img{width:100%;aspect-ratio:1;object-fit:cover}
@media (max-width:560px){.ps-ph{right:-2%;width:40%}.ps-p1 .ps-ph{right:auto;left:-2%}}
.ps-no{margin:0 0 6px;font:600 13px/1 var(--f-body);letter-spacing:.2em;color:var(--accent-ink)}
.ps-txt h3{font-size:clamp(28px,3.6vw,42px);line-height:1.12;font-weight:500;margin-bottom:14px}
.ps-lede{max-width:52ch;color:var(--mute);font-size:18px}
.ps-pts{display:grid;gap:12px;margin:6px 0 18px;padding:0}
.ps-pts li{position:relative;padding-left:34px;font-weight:600}
.ps-pts li::before{content:"";position:absolute;left:3px;top:.38em;width:12px;height:16px;border-radius:70% 0 70% 0;background:var(--pop);transform:rotate(-12deg)}
.ps-pts li:nth-child(2)::before{background:var(--pop2)}.ps-pts li:nth-child(3)::before{background:var(--pop3)}
.ps-fnote{font-size:15px;color:var(--mute);max-width:56ch}
.ps-ill{margin:0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.ps-note{margin:10px auto 0;max-width:62ch;text-align:center;font-size:15px;color:var(--mute)}
/* switcher (JS only): all panels stacked in one grid cell, crossfade via opacity+transform */
.ps-js .ps-panels{display:grid}
.ps-js .ps-panel{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .5s var(--ease),transform .6s var(--ease),visibility 0s linear .5s}
.ps-js .ps-panel.ps-on{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.cf-sig:not(.ps-js) .ps-panel+.ps-panel{margin-top:30px;padding-top:44px;border-top:1px solid var(--line)}
/* bloomreveal: pieces appear one by one when a panel is built (.ps-go). Hidden state is JS-only. */
.ps-pc{transform-box:fill-box;transform-origin:50% 50%}
.ps-st{transform-origin:50% 100%}.ps-lf{transform-origin:50% 100%}
.ps-js .ps-panel:not(.ps-go) .ps-pc{opacity:0}
.ps-js .ps-panel:not(.ps-go) .ps-st{transform:scaleY(0)}
.ps-js .ps-panel:not(.ps-go) .ps-lf{transform:scale(.2)}
.ps-js .ps-panel:not(.ps-go) .ps-bl{transform:scale(.2) rotate(-40deg)}
.ps-js .ps-panel:not(.ps-go) .ps-rb{transform:scale(.1) rotate(-20deg)}
.ps-js .ps-go .ps-pc{transition:opacity .35s ease calc(var(--i)*105ms),transform .7s var(--ease) calc(var(--i)*105ms)}
.ps-js .ps-go .ps-st{transition-duration:.35s,.85s}
.ps-js .ps-go .ps-bl,.ps-js .ps-go .ps-lf,.ps-js .ps-go .ps-rb{transition-timing-function:ease,var(--bounce)}
/* petalfall: 12 petals, compositor-only, running only while the section is on screen (.ps-live) */
.cf-sigsec>.cf-wrap{position:relative;z-index:1}
.ps-petals{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.ps-pt{position:absolute;left:var(--x);top:-24px;width:14px;height:18px;border-radius:70% 0 70% 0;background:#EBC1BC;opacity:0;scale:var(--s,1);animation:ps-fall var(--d,12s) linear infinite var(--dl,0s) paused}
.ps-pt:nth-child(4n+2){background:#F5DAD6}.ps-pt:nth-child(4n+3){background:#C5D3BE;border-radius:0 70% 0 70%}.ps-pt:nth-child(4n){background:#F1E3C8}
.ps-live .ps-pt{animation-play-state:running}
@keyframes ps-fall{0%{opacity:0;transform:translate3d(0,0,0) rotate(0)}8%{opacity:.85}50%{transform:translate3d(calc(var(--dx,30px)*.3),460px,0) rotate(calc(var(--r,200deg)*.5))}92%{opacity:.85}100%{opacity:0;transform:translate3d(var(--dx,30px),960px,0) rotate(var(--r,200deg))}}
@media (prefers-reduced-motion:reduce){
  .ps-petals{display:none}.ps-ink,.ps-tab,.ps-js .ps-panel{transition:none!important}
  .ps-js .ps-panel .ps-pc,.ps-js .ps-panel:not(.ps-go) .ps-pc{opacity:1!important;transform:none!important;transition:none!important}
}
.cf-sig:not(.ps-js) .ps-petals{display:none}
