/* Thin soap-film rims, open centers and small companion bubbles. */
.mirror-home .role-bubble,.mirror-home .soap-satellite{
 border:0;border-radius:50%;isolation:isolate;
 background:radial-gradient(ellipse at 27% 19%,#fff9 0%,#fff0 36%),radial-gradient(ellipse at 76% 82%,#8ddfff38 0%,#b7b9f015 32%,#fff0 58%),radial-gradient(circle,#ffffff05 49%,#eec8ed24 73%,#ceeaff54 91%,#ffffff26 100%);
 box-shadow:inset 3px 4px 9px #ffffff70,inset -2px -4px 8px #80bddd30,0 9px 16px -12px #5678ae80;
 backdrop-filter:none;-webkit-backdrop-filter:none;
 animation:soap-drift var(--bubble-speed,11s) ease-in-out infinite;
 animation-delay:var(--bubble-delay,-2s);
}
.mirror-home .role-bubble::before,.mirror-home .soap-satellite::before{
 content:"";position:absolute;inset:0;width:auto;height:auto;padding:1.5px;border:0;border-radius:50%;filter:none;transform:none;box-shadow:none;
 background:conic-gradient(from 20deg,#efffffbb,#86b4d588 12%,#dbb3eaaa 25%,#fff2bcaa 39%,#82cff1dd 53%,#9bbbeac9 64%,#e7b6dbbb 78%,#ffffffee 92%,#efffffbb);
 -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;
 z-index:2;pointer-events:none;
}
.mirror-home .role-bubble::after,.mirror-home .soap-satellite::after{
 content:"";position:absolute;inset:5%;border:0;border-radius:50%;transform:rotate(-26deg);box-shadow:none;pointer-events:none;z-index:3;
 background:radial-gradient(ellipse 42% 9% at 42% 7%,#ffffffe8 0%,#ffffff82 42%,#fff0 74%),radial-gradient(ellipse 24% 5% at 52% 94%,#c3f5ffab 0%,#fff0 90%);
}
.mirror-home .role-bubble img{position:absolute;inset:6%;z-index:1;width:88%;height:88%;object-fit:contain;filter:drop-shadow(0 5px 4px #485a7b24)}
.mirror-home .role-bubble span{font-size:10px;bottom:-17px;color:#505c79;text-shadow:0 1px 3px #fff}
.mirror-home .bubble-bear{--bubble-speed:12s;--bubble-delay:-3s;left:43%;top:11%}
.mirror-home .bubble-cat{--bubble-speed:10s;--bubble-delay:-6s;right:5%;top:17%}
.mirror-home .bubble-qs{--bubble-speed:13s;--bubble-delay:-8s;left:29%;top:17%}
.mirror-home .bubble-mss{--bubble-speed:11s;--bubble-delay:-5s;left:36%;top:42%}
.mirror-home .bubble-qbt{--bubble-speed:14s;--bubble-delay:-10s;right:3%;top:48%}
.mirror-home .bubble-lw{--bubble-speed:12s;--bubble-delay:-4s;right:1%;top:34%;bottom:auto;width:clamp(72px,6vw,90px)}
.mirror-home .bubble-jz{--bubble-speed:10s;--bubble-delay:-7s;left:47%;bottom:7%}
.mirror-home .bubble-dz{--bubble-speed:13s;--bubble-delay:-1s;right:17%;bottom:5%}
.mirror-home .soap-satellite{position:absolute;display:block;aspect-ratio:1;pointer-events:none;width:26px;--bubble-speed:14s}
.mirror-home .soap-satellite:nth-last-child(1){left:39%;top:16%;width:23px;--bubble-delay:-5s}
.mirror-home .soap-satellite:nth-last-child(2){left:34%;top:39%;width:35px;--bubble-delay:-9s}
.mirror-home .soap-satellite:nth-last-child(3){right:3%;top:39%;width:19px;--bubble-delay:-2s}
.mirror-home .soap-satellite:nth-last-child(4){right:13%;bottom:12%;width:30px;--bubble-delay:-11s}
.mirror-home .soap-satellite:nth-last-child(5){left:44%;bottom:23%;width:17px;--bubble-delay:-4s}
@keyframes soap-drift{0%,100%{transform:translate3d(0,0,0) rotate(-2deg)}35%{transform:translate3d(6px,-12px,0) rotate(1deg)}70%{transform:translate3d(-4px,-5px,0) rotate(2deg)}}
.mirror-home.bubbles-resting .role-bubble,.mirror-home.bubbles-resting .soap-satellite{animation-play-state:paused!important}
@media(max-width:760px){
 .mirror-home .bubble-bear{left:7%;top:19%}.mirror-home .bubble-cat{right:3%;top:13%}
 .mirror-home .bubble-mss{left:5%;top:53%}.mirror-home .bubble-qbt{right:1%;top:47%}
 .mirror-home .bubble-jz{left:20%;bottom:3%}.mirror-home .bubble-dz{right:7%;bottom:2%}
 .mirror-home .role-bubble span{font-size:9px}
 .mirror-home .motion-toggle{bottom:-44px;right:3%}
 .mirror-home .soap-satellite:nth-last-child(1){left:43%;top:21%;width:16px}
 .mirror-home .soap-satellite:nth-last-child(2){left:5%;top:45%;width:23px}
 .mirror-home .soap-satellite:nth-last-child(3){right:3%;top:38%;width:13px}
 .mirror-home .soap-satellite:nth-last-child(4){right:3%;bottom:25%;width:20px}
 .mirror-home .soap-satellite:nth-last-child(5){display:none}
}
@media(prefers-reduced-motion:reduce){.mirror-home .role-bubble,.mirror-home .soap-satellite{animation:none!important}}

/* Enlarged magician portrait and the supplied magic animation. */
.mirror-home .bubble-mss{width:clamp(150px,14vw,208px);left:35%;top:39%}
.mirror-home .magician-video{position:absolute;inset:4%;width:92%;height:92%;object-fit:cover;object-position:50% 5%;border-radius:50%;z-index:1}
@media(max-width:760px){.mirror-home .bubble-mss{width:112px;left:1%;top:48%}}
