.mini-singularity {
    position: relative;
    display: block;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    overflow: visible;
    background: transparent;
    filter: drop-shadow(0 5px 8px rgba(155, 35, 91, .2));
}

.mini-singularity i {
    position: absolute;
    display: block;
    pointer-events: none;
}

.mini-core {
    z-index: 5;
    inset: 29%;
    border: 1px solid rgba(255, 199, 220, .9);
    border-radius: 50%;
    background: radial-gradient(circle at 38% 32%, #27202b, #09070c 52%, #000 78%);
    box-shadow: 0 0 4px #fff, 0 0 9px rgba(239, 77, 145, .72);
    animation: mini-core-pulse 3s ease-in-out infinite;
}

.mini-shell {
    z-index: 3;
    inset: 12%;
    border-radius: 48% 52% 44% 56% / 58% 43% 57% 42%;
    background: conic-gradient(
        from 20deg,
        transparent 0 7%,
        #f45f9a 17%,
        #ffd6e4 28%,
        #fff 34%,
        #ef4b91 49%,
        transparent 61%,
        #9f3cf0 76%,
        #53d9ff 88%,
        transparent 100%
    );
    opacity: .92;
    -webkit-mask: radial-gradient(circle, transparent 39%, #000 44% 73%, transparent 78%);
    mask: radial-gradient(circle, transparent 39%, #000 44% 73%, transparent 78%);
}

.mini-shell-one { animation: mini-spin 5.8s linear infinite; }
.mini-shell-two {
    inset: 18%;
    opacity: .75;
    animation: mini-spin-reverse 4.6s linear infinite;
}

.mini-ribbon {
    z-index: 4;
    top: 35%;
    left: 8%;
    width: 84%;
    height: 34%;
    border: 2px solid transparent;
    border-top-color: #ffb9d3;
    border-right-color: #f4488c;
    border-radius: 50%;
    filter: drop-shadow(0 0 3px rgba(240, 55, 132, .9));
    transform: rotate(14deg);
    animation: mini-ribbon-sweep 3.2s ease-in-out infinite;
}

.mini-orbit {
    z-index: 2;
    border: 1px solid rgba(202, 52, 112, .38);
    border-right-color: rgba(255, 255, 255, .95);
    border-bottom-color: rgba(236, 76, 141, .78);
    border-radius: 50%;
}

.mini-orbit-one {
    inset: 3%;
    animation: mini-spin 8s linear infinite;
}

.mini-orbit-two {
    inset: 8% 1%;
    transform: rotate(63deg);
    animation: mini-spin-reverse 10s linear infinite;
}

.mini-particle {
    z-index: 7;
    top: 8%;
    right: 12%;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: white;
    box-shadow: 0 0 5px #f44c91, 0 0 8px #ff9ec1;
    animation: mini-particle-drift 2.8s ease-in-out infinite;
}

@keyframes mini-spin { to { transform: rotate(360deg); } }
@keyframes mini-spin-reverse { to { transform: rotate(-360deg); } }
@keyframes mini-core-pulse {
    0%, 100% { transform: scale(.92); }
    50% { transform: scale(1.08); }
}
@keyframes mini-ribbon-sweep {
    0%, 100% { transform: rotate(10deg) scaleX(.94); }
    50% { transform: rotate(22deg) scaleX(1.06); }
}
@keyframes mini-particle-drift {
    0%, 100% { transform: translate(0, 0); opacity: .45; }
    50% { transform: translate(2px, -3px); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .mini-singularity i { animation: none; }
}
