/* Celebration widget (bottom-left corner) and MM showcase. */
.fe-fest{position:fixed;left:1rem;bottom:1rem;z-index:1040;width:168px;display:flex;flex-direction:column;align-items:center;pointer-events:auto;
  animation:fe-fest-in .6s cubic-bezier(.2,1.6,.4,1) both}
.fe-fest-canvas{width:168px;height:168px;display:block}
.fe-fest-label{position:relative;margin:-.4rem 0 0;padding:.3rem .6rem;border-radius:999px;background:rgba(8,8,8,.85);border:1px solid rgba(255,193,7,.35);
  color:#fff;font-weight:900;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;text-align:center;line-height:1.2;
  box-shadow:-2px 0 0 rgba(255,42,60,.6),2px 0 0 rgba(0,229,255,.6)}
.fe-fest.is-eve .fe-fest-label{font-weight:700;color:#ffc107}
.fe-fest-label::before,.fe-fest-label::after{content:attr(data-text);position:absolute;inset:0;padding:inherit;pointer-events:none;mix-blend-mode:screen;opacity:.75}
.fe-fest-label::before{color:#ff2a3c;animation:fe-fest-r 3.1s steps(1) infinite}
.fe-fest-label::after{color:#00e5ff;animation:fe-fest-c 3.1s steps(1) infinite}
.fe-fest-close{position:absolute;top:0;right:0;width:28px;height:28px;border:0;border-radius:50%;background:rgba(8,8,8,.75);color:#fff;font-size:1.1rem;line-height:1;
  opacity:0;transition:opacity .2s ease}
.fe-fest:hover .fe-fest-close,.fe-fest:focus-within .fe-fest-close{opacity:1}
.fe-fest-close:focus-visible{opacity:1;outline:2px solid #ffc107;outline-offset:2px}
@keyframes fe-fest-in{from{transform:scale(.2) rotate(-8deg);opacity:0}to{transform:none;opacity:1}}
@keyframes fe-fest-r{0%,86%,100%{transform:none}88%{transform:translate(-2px,1px)}92%{transform:translate(2px,-1px)}}
@keyframes fe-fest-c{0%,86%,100%{transform:none}88%{transform:translate(2px,-1px)}92%{transform:translate(-2px,1px)}}
@media (max-width:575.98px){.fe-fest{width:112px;left:.5rem;bottom:.5rem}.fe-fest-canvas{width:112px;height:112px}.fe-fest-label{font-size:.66rem}.fe-fest-close{opacity:1}}
@media (prefers-reduced-motion:reduce){.fe-fest{animation:none}.fe-fest-label::before,.fe-fest-label::after{animation:none;opacity:0}}
:root[data-effects="off"] .fe-fest-label::before,:root[data-effects="off"] .fe-fest-label::after{animation:none;opacity:0}

/* MM showcase */
.fe-showcase{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.fe-showcase-card{background:#0b0b0b;border:1px solid rgba(255,193,7,.22);border-radius:.75rem;padding:.75rem;color:#e5e7eb;text-align:center}
.fe-showcase-card canvas{width:100%;aspect-ratio:1;display:block;background:radial-gradient(circle at 50% 40%,#2a2117,#0b0b0b 70%);border-radius:.5rem}
.fe-showcase-card h2{font-size:1rem;font-weight:800;margin:.6rem 0 .15rem;color:#ffc107}
.fe-showcase-card .fe-meta{font-size:.78rem;color:#9ca3af}
.fe-showcase-card .fe-greet{font-weight:900;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;margin-top:.35rem}
