/* SITE EFFECTS */
/* ---------- FX ---------- */
.fx-thread{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:2147483000;display:none}
body.fx-1 .fx-thread{display:block}
@media (pointer:fine){body.fx-1:not(.fx-1-off),body.fx-1:not(.fx-1-off) a,body.fx-1:not(.fx-1-off) button,body.fx-1:not(.fx-1-off) label,body.fx-1:not(.fx-1-off) summary{cursor:none}}
body.fx-1 input,body.fx-1 textarea,body.fx-1 select{cursor:text}
body.fx-1 input[type=checkbox],body.fx-1 input[type=radio]{cursor:pointer}
body.fx-1-off .fx-thread{display:none}
.fx-ribbon{position:fixed;left:0;right:0;top:0;height:5px;z-index:2147482000;pointer-events:none;display:none}
body.fx-2 .fx-ribbon{display:block}
.fx-ribbon .fill{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p,0)*100%);background:linear-gradient(90deg,#5a1424,#8e2236 30%,#c4566a 60%,#7a1c2c);box-shadow:0 1px 4px rgba(90,20,36,.4)}
.fx-ribbon .fill:after{content:"";position:absolute;left:0;right:0;top:1px;height:1px;background:rgba(246,201,209,.7)}
.fx-ribbon .knot{position:absolute;top:-5px;left:calc(var(--p,0)*100%);width:15px;height:15px;margin-left:-8px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#c4566a,#7a1c2c);box-shadow:0 2px 6px rgba(0,0,0,.3);transition:transform .5s}
.fx-ribbon.done .knot{transform:scale(1.5);background:radial-gradient(circle at 35% 30%,#f3d58f,#c9a46a)}
.fx-glint{display:none}
body.fx-3 .button,body.fx-3 .cart-pill,body.fx-3 .fb-cta,body.fx-3 .go,body.fx-3 .rx-go,body.fx-3 .pc-btn{transition:translate .35s cubic-bezier(.2,.8,.2,1),box-shadow .3s;position:relative;overflow:hidden}
body.fx-3 .fx-near>.fx-glint{display:block;position:absolute;top:0;bottom:0;left:-60%;width:45%;background:linear-gradient(100deg,transparent,rgba(255,236,190,.55),transparent);transform:skewX(-20deg);pointer-events:none;animation:glint3 1.6s ease-in-out infinite}
@keyframes glint3{0%{left:-60%}70%,100%{left:130%}}
body.fx-3 .fx-near{box-shadow:0 10px 26px -8px rgba(138,41,70,.6)}
body.fx-4 .fx-rv{opacity:0;transform:translateY(26px);filter:blur(5px);transition:opacity .9s ease var(--fxd,0ms),transform 1s cubic-bezier(.2,.8,.2,1) var(--fxd,0ms),filter .9s ease var(--fxd,0ms)}
body.fx-4 .fx-rv.fx-in{opacity:1;transform:none;filter:none}
.fx-nudge{position:fixed;left:24px;bottom:86px;z-index:9000;display:flex;align-items:center;gap:12px;background:#fffaf0;color:#2a111e;border:1px solid #e3c9ac;border-radius:18px;padding:14px 42px 14px 14px;box-shadow:0 22px 44px -18px rgba(42,17,30,.55);transform:translateY(30px);opacity:0;pointer-events:none;transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1)}
.fx-nudge.show{opacity:1;transform:none;pointer-events:auto}
.fx-nudge img{width:44px;height:44px;border-radius:10px;animation:hpbob2 2.4s ease-in-out infinite}
@keyframes hpbob2{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
.fx-nudge b{display:block;font:400 21px/1.1 'Instrument Serif',Georgia,serif}
.fx-nudge a{font:600 14px 'DM Sans',sans-serif;color:#8a2946;text-decoration:none;border-bottom:1px solid}
.fx-nudge button{position:absolute;right:8px;top:8px;width:26px;height:26px;border:0;border-radius:50%;background:transparent;color:#8a6a70;font-size:18px;cursor:pointer}
body:not(.fx-5) .fx-nudge{display:none}

body.motion-off .fx-glint,body.motion-off .fx-nudge img{animation:none}
@media (prefers-reduced-motion:reduce){body.fx-4 .fx-rv{opacity:1;transform:none;filter:none;transition:none}.fx-glint{display:none!important}}
@media(max-width:700px){.fx-nudge{left:12px;right:12px;bottom:78px}}
