.fjl-stage{aspect-ratio:1;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;max-width:20rem;margin-inline:auto;position:relative;overflow:visible}@media (min-width:768px){.fjl-stage{max-width:27rem}}.fjl-glow{animation:fjl-glow 1.4s ease-out var(--fjl-settled) both;background:radial-gradient(closest-side at 50% 52%,#3b82f62e,#60a5fa12 58%,#0000);position:absolute;inset:-6%}.fjl-sphere{left:var(--x);top:var(--y);width:var(--size);aspect-ratio:1;margin:calc(var(--size) * -.5) 0 0 calc(var(--size) * -.5);animation:fjl-arrive var(--arrive,.9s) cubic-bezier(.22, .61, .36, 1) var(--in-delay) both;position:absolute}.fjl-float{width:100%;height:100%;animation:fjl-bob var(--bob-ms) cubic-bezier(.45, 0, .55, 1) var(--bob-phase) infinite alternate, fjl-sway var(--sway-ms) cubic-bezier(.45, 0, .55, 1) var(--sway-phase) infinite alternate}.fjl-ball{isolation:isolate;border-radius:50%;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 18px 30px -16px #0f172a73,0 4px 10px -6px #0f172a2e}.fjl-logo{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;rotate:var(--tilt);scale:var(--zoom,1);animation:fjl-turn var(--turn-ms) cubic-bezier(.45, 0, .55, 1) var(--turn-phase) infinite alternate;display:block}.fjl-ball:after{content:"";pointer-events:none;background:radial-gradient(circle at 32% 24%,#ffffffe6 0,#ffffff59 9%,#fff0 26%),radial-gradient(circle,#0f172a00 55%,#0f172a52 100%),radial-gradient(circle at 64% 88%,#ffffff40 0,#fff0 34%);border-radius:50%;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff47,inset 0 -10px 16px -6px #0f172a4d}@keyframes fjl-arrive{0%{opacity:0;translate:0 calc(var(--rise) * 1%);scale:.94}to{opacity:1;translate:0;scale:1}}@keyframes fjl-bob{0%{translate:0 calc(var(--bob) * 1%)}to{translate:0 calc(var(--bob) * -1%)}}@keyframes fjl-sway{0%{transform:translateX(calc(var(--sway) * -1%))}to{transform:translateX(calc(var(--sway) * 1%))}}@keyframes fjl-turn{0%{rotate:calc(var(--tilt) - var(--turn))}to{rotate:calc(var(--tilt) + var(--turn))}}@keyframes fjl-glow{0%{opacity:.55}to{opacity:1}}.fjl-caption{animation:fjl-rise .7s cubic-bezier(.2, .7, .2, 1) var(--fjl-settled) both}@keyframes fjl-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.fjl-sphere,.fjl-float,.fjl-logo,.fjl-glow,.fjl-caption{animation:none!important}}
