/* Blackmint v1.58 "pfx": extra animated detail for the Pink Circuit Dark theme (pink-tech) ONLY (JS in app/pinkfx.js).
   Same pattern as v1.57 arcfx: every rule is scoped to html[data-theme-id=pink-tech]; decor nodes (.pfx-*) are display:none in every
   other theme. Motion needs html[data-pfx] (set by pinkfx.js only when prefers-reduced-motion is off) AND the no-preference media query.
   Transform + opacity only (plus one tiny background-position on title underlines); all decor is aria-hidden + pointer-events:none and
   absolutely/fixed positioned, so nothing moves content or shifts layout. Cards are never transformed (Minty's hop lines stay put).
   Paused while the tab is hidden (pfx-hid / bmz-hid). Lighter on phones. */
.pfx-sky,.pfx-fx,.pfx-d,.pfx-hs,.pfx-bl,.pfx-ul{display:none;pointer-events:none!important}
html[data-theme-id=pink-tech] .pfx-rel{position:relative}
/* ---------- background: soft pink bokeh, rising hearts, twinkling sparkles (behind everything) ---------- */
/* body goes transparent so the fixed z-index:-1 sky (and the theme's own circuit grid) show between <html>'s colour and the content */
html:not(#_p1):not(#_p2):not(#_p3):not(#_p4):not(#_p5)[data-theme-id=pink-tech].pfx-on body{background:transparent!important}
html[data-theme-id=pink-tech] .pfx-sky{display:block;position:fixed;inset:0;z-index:-1;overflow:hidden;contain:strict}
.pfx-sky i,.pfx-sky u,.pfx-sky b{position:absolute;display:block;opacity:0;will-change:transform,opacity}
.pfx-sky i{border-radius:50%}
.pfx-sky u{background-repeat:no-repeat;background-size:100% 100%}
.pfx-sky b{width:12px;height:12px;background:no-repeat center/100% 100%}
.pfx-sky i:nth-of-type(1){left:6%;top:18%;width:120px;height:120px;margin:-60px 0 0 -60px;background:radial-gradient(circle,rgba(255,62,165,0.16) 0,rgba(255,62,165,0.088) 38%,rgba(255,62,165,0) 70%);--pd:46s;--pl:-4s}
.pfx-sky i:nth-of-type(2){left:22%;top:70%;width:80px;height:80px;margin:-40px 0 0 -40px;background:radial-gradient(circle,rgba(194,91,255,0.14) 0,rgba(194,91,255,0.077) 38%,rgba(194,91,255,0) 70%);--pd:38s;--pl:-12s}
.pfx-sky i:nth-of-type(3){left:38%;top:32%;width:150px;height:150px;margin:-75px 0 0 -75px;background:radial-gradient(circle,rgba(255,124,196,0.1) 0,rgba(255,124,196,0.055) 38%,rgba(255,124,196,0) 70%);--pd:58s;--pl:-20s}
.pfx-sky i:nth-of-type(4){left:55%;top:82%;width:96px;height:96px;margin:-48px 0 0 -48px;background:radial-gradient(circle,rgba(255,62,165,0.13) 0,rgba(255,62,165,0.072) 38%,rgba(255,62,165,0) 70%);--pd:42s;--pl:-7s}
.pfx-sky i:nth-of-type(5){left:68%;top:12%;width:70px;height:70px;margin:-35px 0 0 -35px;background:radial-gradient(circle,rgba(255,209,232,0.12) 0,rgba(255,209,232,0.066) 38%,rgba(255,209,232,0) 70%);--pd:34s;--pl:-25s}
.pfx-sky i:nth-of-type(6){left:82%;top:58%;width:140px;height:140px;margin:-70px 0 0 -70px;background:radial-gradient(circle,rgba(194,91,255,0.11) 0,rgba(194,91,255,0.061) 38%,rgba(194,91,255,0) 70%);--pd:52s;--pl:-15s}
.pfx-sky i:nth-of-type(7){left:92%;top:26%;width:60px;height:60px;margin:-30px 0 0 -30px;background:radial-gradient(circle,rgba(255,62,165,0.15) 0,rgba(255,62,165,0.083) 38%,rgba(255,62,165,0) 70%);--pd:30s;--pl:-3s}
.pfx-sky i:nth-of-type(8){left:14%;top:92%;width:64px;height:64px;margin:-32px 0 0 -32px;background:radial-gradient(circle,rgba(255,124,196,0.12) 0,rgba(255,124,196,0.066) 38%,rgba(255,124,196,0) 70%);--pd:40s;--pl:-30s}
.pfx-sky i:nth-of-type(9){left:46%;top:56%;width:46px;height:46px;margin:-23px 0 0 -23px;background:radial-gradient(circle,rgba(255,209,232,0.14) 0,rgba(255,209,232,0.077) 38%,rgba(255,209,232,0) 70%);--pd:28s;--pl:-9s}
.pfx-sky i:nth-of-type(10){left:74%;top:90%;width:110px;height:110px;margin:-55px 0 0 -55px;background:radial-gradient(circle,rgba(255,62,165,0.1) 0,rgba(255,62,165,0.055) 38%,rgba(255,62,165,0) 70%);--pd:48s;--pl:-33s}
.pfx-sky i:nth-of-type(11){left:30%;top:8%;width:54px;height:54px;margin:-27px 0 0 -27px;background:radial-gradient(circle,rgba(194,91,255,0.13) 0,rgba(194,91,255,0.072) 38%,rgba(194,91,255,0) 70%);--pd:36s;--pl:-18s}
.pfx-sky i:nth-of-type(12){left:60%;top:40%;width:36px;height:36px;margin:-18px 0 0 -18px;background:radial-gradient(circle,rgba(255,124,196,0.16) 0,rgba(255,124,196,0.088) 38%,rgba(255,124,196,0) 70%);--pd:26s;--pl:-5s}
.pfx-sky u:nth-of-type(1){left:18%;top:88%;width:14px;height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7-4.6-9.5-9A5.5 5.5 0 0 1 12 5.5 5.5 5.5 0 0 1 21.5 12C19 16.4 12 21 12 21z' fill='%23ff7cc4'/%3E%3C/svg%3E");--pd:34s;--pl:-6s}
.pfx-sky u:nth-of-type(2){left:64%;top:94%;width:10px;height:10px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7-4.6-9.5-9A5.5 5.5 0 0 1 12 5.5 5.5 5.5 0 0 1 21.5 12C19 16.4 12 21 12 21z' fill='%23ff3ea5'/%3E%3C/svg%3E");--pd:41s;--pl:-19s}
.pfx-sky u:nth-of-type(3){left:84%;top:80%;width:12px;height:12px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7-4.6-9.5-9A5.5 5.5 0 0 1 12 5.5 5.5 5.5 0 0 1 21.5 12C19 16.4 12 21 12 21z' fill='%23ffd1e8'/%3E%3C/svg%3E");--pd:37s;--pl:-28s}
.pfx-sky u:nth-of-type(4){left:40%;top:96%;width:9px;height:9px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7-4.6-9.5-9A5.5 5.5 0 0 1 12 5.5 5.5 5.5 0 0 1 21.5 12C19 16.4 12 21 12 21z' fill='%23c25bff'/%3E%3C/svg%3E");--pd:45s;--pl:-12s}
.pfx-sky b:nth-of-type(1){left:11%;top:24%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C13 8 16 11 24 12 16 13 13 16 12 24 11 16 8 13 0 12 8 11 11 8 12 0z' fill='%23ffe2f0'/%3E%3C/svg%3E");--pd:7s;--pl:0s}
.pfx-sky b:nth-of-type(2){left:79%;top:16%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C13 8 16 11 24 12 16 13 13 16 12 24 11 16 8 13 0 12 8 11 11 8 12 0z' fill='%23ff7cc4'/%3E%3C/svg%3E");--pd:9s;--pl:-1.8s}
.pfx-sky b:nth-of-type(3){left:61%;top:64%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C13 8 16 11 24 12 16 13 13 16 12 24 11 16 8 13 0 12 8 11 11 8 12 0z' fill='%23ffffff'/%3E%3C/svg%3E");--pd:8s;--pl:-3.4s}
.pfx-sky b:nth-of-type(4){left:27%;top:80%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C13 8 16 11 24 12 16 13 13 16 12 24 11 16 8 13 0 12 8 11 11 8 12 0z' fill='%23ff3ea5'/%3E%3C/svg%3E");--pd:11s;--pl:-5.1s}
.pfx-sky b:nth-of-type(5){left:91%;top:46%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C13 8 16 11 24 12 16 13 13 16 12 24 11 16 8 13 0 12 8 11 11 8 12 0z' fill='%23ffd1e8'/%3E%3C/svg%3E");--pd:10s;--pl:-6.3s}
.pfx-sky b:nth-of-type(6){left:48%;top:12%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C13 8 16 11 24 12 16 13 13 16 12 24 11 16 8 13 0 12 8 11 11 8 12 0z' fill='%23c25bff'/%3E%3C/svg%3E");--pd:9s;--pl:-2.6s}

/* ---------- click ripple layer (fixed, above content, never intercepts clicks) ---------- */
html[data-theme-id=pink-tech] .pfx-fx{display:block;position:fixed;inset:0;z-index:2147482980;overflow:hidden;contain:strict}
.pfx-fx i{pointer-events:none !important;position:absolute;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;opacity:0;transform:scale(.1);
 box-shadow:0 0 0 2px rgba(255,62,165,.7),0 0 14px 2px rgba(255,62,165,.45),inset 0 0 12px rgba(255,124,196,.5)}

/* ---------- cards: gradient chase light on the top + bottom edges, holographic sweep, corner glint, hover glow ---------- */
html[data-theme-id=pink-tech] .pfx-d{display:block;position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:inherit}
.pfx-d b{position:absolute;display:block;opacity:0;height:2px;width:34%;border-radius:2px;will-change:transform}
.pfx-d b:nth-of-type(1){left:0;top:0;transform:translate3d(-110%,0,0);
 background:linear-gradient(90deg,transparent,#c25bff 25%,#ff3ea5 55%,#ffe2f0 80%,transparent);box-shadow:0 0 8px rgba(255,62,165,.85)}
.pfx-d b:nth-of-type(2){right:0;bottom:0;transform:translate3d(110%,0,0);
 background:linear-gradient(270deg,transparent,#ff7cc4 25%,#ff3ea5 55%,#ffe2f0 80%,transparent);box-shadow:0 0 8px rgba(255,62,165,.85)}
.pfx-d s{position:absolute;top:-20%;bottom:-20%;left:0;width:38%;display:block;opacity:0;transform:translate3d(-130%,0,0) skewX(-18deg);will-change:transform;
 background:linear-gradient(90deg,transparent,rgba(255,62,165,.06) 25%,rgba(194,91,255,.075) 42%,rgba(255,226,240,.10) 50%,rgba(120,220,255,.06) 60%,rgba(255,124,196,.05) 75%,transparent);mix-blend-mode:screen}
.pfx-d em{position:absolute;top:5px;right:6px;width:10px;height:10px;display:block;opacity:0;background:no-repeat center/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C13 8 16 11 24 12 16 13 13 16 12 24 11 16 8 13 0 12 8 11 11 8 12 0z' fill='%23ffe2f0'/%3E%3C/svg%3E");filter:drop-shadow(0 0 3px #ff3ea5)}
.pfx-d::after{content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .25s ease;
 box-shadow:inset 0 0 0 1px rgba(255,62,165,.7),inset 0 0 24px rgba(255,62,165,.16),inset 0 -10px 22px -14px rgba(194,91,255,.5)}
html[data-theme-id=pink-tech] .pfx-rel:hover>.pfx-d::after{opacity:1}
html[data-theme-id=pink-tech] .pfx-rel:hover>.pfx-d em{opacity:1}

/* ---------- animated gradient underline under section titles (sits just below the title text; JS sizes it) ---------- */
html[data-theme-id=pink-tech] .pfx-ul{display:block;position:absolute;height:2px;border-radius:2px;opacity:.85;transform-origin:0 50%;
 background:linear-gradient(90deg,#ff3ea5,#c25bff,#ff7cc4,#ffe2f0,#ff3ea5) 0 0/200% 100%;box-shadow:0 0 6px rgba(255,62,165,.55)}
html[data-theme-id=pink-tech] #glD .pfx-ul{background-image:linear-gradient(90deg,#ff5468,#ff3ea5,#ff9aa8,#ff5468)}

/* ---------- header shimmer ---------- */
html[data-theme-id=pink-tech] .pfx-hs{display:block;position:absolute;inset:0;overflow:hidden;z-index:0}
.pfx-hs i{position:absolute;top:-20%;bottom:-20%;left:0;width:140px;display:block;opacity:0;transform:translate3d(-180px,0,0) skewX(-20deg);
 background:linear-gradient(90deg,transparent,rgba(255,62,165,.10) 30%,rgba(255,226,240,.16) 50%,rgba(194,91,255,.10) 70%,transparent)}

/* ---------- soft reveal for sections arriving on scroll (overlay fades away with a pink light line; content never moves) ---------- */
html[data-theme-id=pink-tech] .pfx-bl{display:block;position:absolute;inset:0;z-index:4;opacity:0;border-radius:inherit;
 background:linear-gradient(180deg,rgba(20,10,18,.96),rgba(20,10,18,.96)) no-repeat,linear-gradient(90deg,transparent,#ff3ea5,#ffe2f0,#c25bff,transparent) no-repeat;
 background-size:100% 100%,100% 2px;background-position:0 0,0 0}

/* ---------- buttons: pink glow on hover, soft press ---------- */
html:not(#_p1):not(#_p2):not(#_p3):not(#_p4):not(#_p5)[data-theme-id=pink-tech] nav.tabs button:hover,html:not(#_p1):not(#_p2):not(#_p3):not(#_p4):not(#_p5)[data-theme-id=pink-tech] .vh button:hover,html:not(#_p1):not(#_p2):not(#_p3):not(#_p4):not(#_p5)[data-theme-id=pink-tech] .glass button:hover,html:not(#_p1):not(#_p2):not(#_p3):not(#_p4):not(#_p5)[data-theme-id=pink-tech] header button:hover{filter:brightness(1.12) drop-shadow(0 0 5px rgba(255,62,165,.6))}

/* ---------- counting stat digits ---------- */
html[data-theme-id=pink-tech] .pfx-cnt{font-variant-numeric:tabular-nums;text-shadow:0 0 8px rgba(255,62,165,.6)}

@media (prefers-reduced-motion:no-preference){
 html[data-theme-id=pink-tech][data-pfx] .pfx-sky i{animation:pfxBok var(--pd,40s) ease-in-out infinite var(--pl,0s)}
 html[data-theme-id=pink-tech][data-pfx] .pfx-sky u{animation:pfxHeart var(--pd,36s) linear infinite var(--pl,0s)}
 html[data-theme-id=pink-tech][data-pfx] .pfx-sky b{animation:pfxTw var(--pd,8s) ease-in-out infinite var(--pl,0s)}
 html[data-theme-id=pink-tech][data-pfx] .pfx-fx i.go{animation:pfxRip .6s cubic-bezier(.2,.7,.3,1) both}
 html[data-theme-id=pink-tech][data-pfx] .pfx-rel.pfx-in>.pfx-d b:nth-of-type(1){animation:pfxChase 7s cubic-bezier(.45,.05,.55,.95) infinite;animation-delay:var(--pq,0s)}
 html[data-theme-id=pink-tech][data-pfx] .pfx-rel.pfx-in>.pfx-d b:nth-of-type(2){animation:pfxChaseR 7s cubic-bezier(.45,.05,.55,.95) infinite;animation-delay:calc(var(--pq,0s) - 3.5s)}
 html[data-theme-id=pink-tech][data-pfx] .pfx-rel.pfx-in>.pfx-d s{animation:pfxHolo 11s ease-in-out infinite;animation-delay:var(--ph,0s)}
 html[data-theme-id=pink-tech][data-pfx] .pfx-rel.pfx-in>.pfx-d em{animation:pfxGlint 6.5s ease-in-out infinite;animation-delay:var(--pq,0s)}
 html[data-theme-id=pink-tech][data-pfx] .pfx-rel:hover>.pfx-d em{animation:pfxSpin 1.6s linear infinite}
 html[data-theme-id=pink-tech][data-pfx] .pfx-ul{animation:pfxUl 6s linear infinite,pfxUlB 4.5s ease-in-out infinite}
 html[data-theme-id=pink-tech][data-pfx] .pfx-hs i{animation:pfxShine 10s ease-in-out infinite 1.5s}
 html[data-theme-id=pink-tech][data-pfx] .pfx-bl.go{animation:pfxRev .75s ease-out both}
 html:not(#_p1):not(#_p2):not(#_p3):not(#_p4):not(#_p5)[data-theme-id=pink-tech][data-pfx] nav.tabs button:active,html:not(#_p1):not(#_p2):not(#_p3):not(#_p4):not(#_p5)[data-theme-id=pink-tech][data-pfx] .vh button:active,html:not(#_p1):not(#_p2):not(#_p3):not(#_p4):not(#_p5)[data-theme-id=pink-tech][data-pfx] .glass button:active,html:not(#_p1):not(#_p2):not(#_p3):not(#_p4):not(#_p5)[data-theme-id=pink-tech][data-pfx] header button:active{transform:scale(.96);transition:transform .08s ease}
}
html.pfx-hid [class^=pfx-],html.pfx-hid [class^=pfx-] *,html.pfx-hid [class*=" pfx-"],html.pfx-hid [class*=" pfx-"] *,
html.bmz-hid [class^=pfx-],html.bmz-hid [class^=pfx-] *,html.bmz-hid [class*=" pfx-"],html.bmz-hid [class*=" pfx-"] *{animation-play-state:paused!important}

/* phones: lighter (half the bokeh, 2 hearts, 3 sparkles, no holo sweep on small cards, no corner glint, slower) */
@media (max-width:600px),(pointer:coarse){
 .pfx-sky i:nth-of-type(n+7),.pfx-sky u:nth-of-type(n+3),.pfx-sky b:nth-of-type(n+4),.pfx-d.s s,.pfx-d em{display:none!important}
 html[data-theme-id=pink-tech] .pfx-d b{width:46%}
}

@keyframes pfxBok{0%{opacity:0;transform:translate3d(0,40px,0) scale(.85)}20%{opacity:1}50%{opacity:.75;transform:translate3d(26px,-60px,0) scale(1.08)}80%{opacity:1}100%{opacity:0;transform:translate3d(-14px,-150px,0) scale(.9)}}
@keyframes pfxHeart{0%{opacity:0;transform:translate3d(0,0,0) rotate(-8deg)}8%{opacity:.55}50%{transform:translate3d(18px,-45vh,0) rotate(8deg)}85%{opacity:.4}100%{opacity:0;transform:translate3d(-10px,-90vh,0) rotate(-6deg)}}
@keyframes pfxTw{0%,62%,100%{opacity:0;transform:scale(.3) rotate(0)}72%{opacity:.95;transform:scale(1) rotate(45deg)}84%{opacity:.4;transform:scale(.6) rotate(80deg)}}
@keyframes pfxRip{0%{opacity:.9;transform:scale(.1)}100%{opacity:0;transform:scale(1.4)}}
@keyframes pfxChase{0%{opacity:0;transform:translate3d(-110%,0,0)}3%{opacity:1}32%{opacity:1}36%{opacity:0;transform:translate3d(300%,0,0)}100%{opacity:0;transform:translate3d(300%,0,0)}}
@keyframes pfxChaseR{0%{opacity:0;transform:translate3d(110%,0,0)}3%{opacity:1}32%{opacity:1}36%{opacity:0;transform:translate3d(-300%,0,0)}100%{opacity:0;transform:translate3d(-300%,0,0)}}
@keyframes pfxHolo{0%{opacity:0;transform:translate3d(-130%,0,0) skewX(-18deg)}4%{opacity:1}26%{opacity:1}30%{opacity:0;transform:translate3d(330%,0,0) skewX(-18deg)}100%{opacity:0;transform:translate3d(330%,0,0) skewX(-18deg)}}
@keyframes pfxGlint{0%,70%,100%{opacity:0;transform:scale(.2) rotate(0)}80%{opacity:1;transform:scale(1) rotate(60deg)}90%{opacity:.3;transform:scale(.5) rotate(110deg)}}
@keyframes pfxSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes pfxUl{from{background-position:0 0}to{background-position:200% 0}}
@keyframes pfxUlB{0%,100%{opacity:.6;transform:scaleX(.55)}45%,70%{opacity:1;transform:scaleX(1)}}
@keyframes pfxShine{0%{opacity:0;transform:translate3d(-180px,0,0) skewX(-20deg)}3%{opacity:1}24%{opacity:1}27%{opacity:0;transform:translate3d(calc(100vw + 60px),0,0) skewX(-20deg)}100%{opacity:0;transform:translate3d(calc(100vw + 60px),0,0) skewX(-20deg)}}
@keyframes pfxRev{0%{opacity:1;background-position:0 0,0 0}70%{opacity:.35;background-position:0 0,0 100%}100%{opacity:0;background-position:0 0,0 100%}}
