.jubok-prism-stage{
  position:relative;
  width:min(100%,620px);
  min-height:500px;
  margin:22px auto 14px;
  display:grid;
  place-items:center;
  overflow:hidden;
  isolation:isolate;
}
.jubok-prism-stage::before{
  content:"";
  position:absolute;
  z-index:0;
  width:82%;
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(109,63,213,.08),rgba(211,241,243,.1) 42%,transparent 72%);
  filter:blur(26px);
  animation:jbp-glow 7s ease-in-out infinite alternate;
}
.jubok-prism-mesh{
  position:absolute;
  z-index:0;
  inset:38% -20% 4%;
  width:140%;
  height:56%;
  opacity:.82;
  pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse at 50% 54%,#000 0 33%,rgba(0,0,0,.72) 54%,transparent 78%);
  mask-image:radial-gradient(ellipse at 50% 54%,#000 0 33%,rgba(0,0,0,.72) 54%,transparent 78%);
}
.jubok-prism-object{
  position:relative;
  z-index:1;
  width:min(86%,510px);
  filter:drop-shadow(0 24px 22px rgba(72,40,132,.12)) drop-shadow(0 7px 9px rgba(135,155,174,.12));
  animation:jbp-float 8s ease-in-out infinite;
}
.jubok-prism-object svg{display:block;width:100%;height:auto;overflow:visible}
.jubok-prism-object .jbp-fill-a{animation:jbp-fill-a 10s ease-in-out infinite alternate}
.jubok-prism-object .jbp-fill-b{animation:jbp-fill-b 12s ease-in-out infinite alternate}
.jubok-prism-object .jbp-fill-c{animation:jbp-fill-c 11s ease-in-out infinite alternate}
.jubok-prism-object .jbp-bloom{transform-box:fill-box;transform-origin:center;animation:jbp-bloom-drift 13.7s ease-in-out -3.8s infinite alternate}
.jubok-prism-object .jbp-pool{transform-box:fill-box;transform-origin:center}
.jubok-prism-object .jbp-pool-violet{animation:jbp-pool-violet 15.3s cubic-bezier(.45,.05,.28,.98) -5.4s infinite alternate}
.jubok-prism-object .jbp-pool-ice{animation:jbp-pool-ice 18.1s cubic-bezier(.32,.06,.22,.98) -9.1s infinite alternate}
.jubok-prism-object .jbp-pool-pearl{animation:jbp-pool-pearl 16.7s cubic-bezier(.4,.02,.24,.98) -2.7s infinite alternate}
.jubok-prism-object .jbp-pool-rose{animation:jbp-pool-rose 19.4s cubic-bezier(.36,.03,.2,.99) -11.6s infinite alternate}
.jubok-prism-object .jbp-sweep{transform-origin:260px 230px;animation:jbp-sweep 11s ease-in-out infinite}
.jubok-prism-object .jbp-rim-a{animation:jbp-rim-a 9.2s ease-in-out infinite alternate}
.jubok-prism-object .jbp-rim-b{animation:jbp-rim-b 11.8s ease-in-out -4s infinite alternate}
.jubok-prism-object .jbp-rim-c{animation:jbp-rim-c 10.6s ease-in-out -7s infinite alternate}
.jubok-prism-object .jbp-rim-d{animation:jbp-rim-d 13.4s ease-in-out -2s infinite alternate}
.jubok-prism-object .jbp-inner-shine{stroke-dasharray:82 1004;stroke-dashoffset:0;animation:jbp-border-shine 9.5s linear infinite}
@keyframes jbp-float{50%{transform:translateY(-4px)}}
@keyframes jbp-glow{to{transform:scale(1.08);opacity:.66}}
@keyframes jbp-fill-a{to{stop-color:#8460dc}}
@keyframes jbp-fill-b{to{stop-color:#f7f2f5}}
@keyframes jbp-fill-c{to{stop-color:#bce9ee}}
@keyframes jbp-bloom-drift{0%{transform:translate(-22px,8px) scale(.92)}43%{transform:translate(17px,-15px) scale(1.08)}100%{transform:translate(31px,12px) scale(.98)}}
@keyframes jbp-pool-violet{0%{transform:translate(-18px,14px) scale(1.06)}34%{transform:translate(13px,-7px) scale(.93)}68%{transform:translate(-4px,-21px) scale(1.11)}100%{transform:translate(24px,11px) scale(.97)}}
@keyframes jbp-pool-ice{0%{transform:translate(22px,-18px) scale(.94)}38%{transform:translate(-19px,9px) scale(1.08)}71%{transform:translate(8px,24px) scale(.9)}100%{transform:translate(-7px,-14px) scale(1.05)}}
@keyframes jbp-pool-pearl{0%{transform:translate(18px,16px) scale(1.08)}31%{transform:translate(-25px,-5px) scale(.91)}66%{transform:translate(4px,-20px) scale(1.03)}100%{transform:translate(-13px,13px) scale(.96)}}
@keyframes jbp-pool-rose{0%{transform:translate(-16px,19px) scale(.95)}36%{transform:translate(21px,-16px) scale(1.1)}73%{transform:translate(-9px,-3px) scale(.9)}100%{transform:translate(15px,20px) scale(1.04)}}
@keyframes jbp-rim-a{0%,100%{stop-color:#7659ae}48%{stop-color:#a88fcb}76%{stop-color:#d5d9e5}}
@keyframes jbp-rim-b{0%,100%{stop-color:#b6a4d5}42%{stop-color:#d6dae5}72%{stop-color:#c7b8dd}}
@keyframes jbp-rim-c{0%,100%{stop-color:#cfe8ea}46%{stop-color:#dde8ed}78%{stop-color:#dacfe5}}
@keyframes jbp-rim-d{0%,100%{stop-color:#d3e3e9}38%{stop-color:#c7e1e5}69%{stop-color:#d8dfe8}}
@keyframes jbp-sweep{0%,18%{transform:translateX(-145px);opacity:0}42%{opacity:.34}72%,100%{transform:translateX(175px);opacity:0}}
@keyframes jbp-border-shine{to{stroke-dashoffset:-1086}}
@media(max-width:700px){
  .jubok-prism-stage{min-height:400px;margin-block:12px 8px}
  .jubok-prism-object{width:92%}
  .jubok-prism-mesh{inset:40% -25% 3%;width:150%;height:54%}
}
@media(prefers-reduced-motion:reduce){
  .jubok-prism-stage::before,.jubok-prism-object,.jubok-prism-object *{animation:none!important}
}
