/* Shared by the main shell, the archive frame, and the news admin page. */
.rainbow-cursor-layer {
  position:fixed; inset:0; width:100%; height:100%;
  max-width:none; max-height:none; margin:0; padding:0; border:0;
  overflow:visible; background:transparent; pointer-events:none; z-index:2147483647;
}
.rainbow-cursor-layer::backdrop {display:none; pointer-events:none}
.shooting-star-layer .rainbow-cursor-aura {
  position:fixed; display:block; width:30px; height:30px;
  transform:translate(-50%,-50%); opacity:0; pointer-events:none; z-index:2;
  transition:width .12s ease,height .12s ease;
}
.shooting-star-pointer {
  display:block; width:100%; height:100%; overflow:visible;
  filter:drop-shadow(0 0 2px #b496ff88); pointer-events:none;
}
.shooting-star-layer .rainbow-cursor-aura.is-link {width:36px; height:36px}
.shooting-star-layer .rainbow-cursor-aura.is-pressed {width:26px; height:26px}
.shooting-star-layer .rainbow-cursor-core {
  position:absolute; left:50%; top:50%; width:2px; height:2px;
  transform:translate(-50%,-50%); border-radius:50%;
  background:#fff; box-shadow:0 0 3px #fff; transition:width .12s ease,height .12s ease;
}
.shooting-star-layer .rainbow-cursor-aura:is(.is-text,.is-disabled) .shooting-star-pointer {display:none}
.shooting-star-layer .rainbow-cursor-aura.is-text .rainbow-cursor-core {
  width:2px; height:17px; background:#6d28d9; border-radius:1px; box-shadow:0 0 0 1px #fff;
}
.shooting-star-layer .rainbow-cursor-aura.is-text .rainbow-cursor-core::before,
.shooting-star-layer .rainbow-cursor-aura.is-text .rainbow-cursor-core::after {
  content:""; position:absolute; left:-3px; width:8px; height:2px;
  background:#6d28d9; box-shadow:0 0 0 1px #fff;
}
.shooting-star-layer .rainbow-cursor-aura.is-text .rainbow-cursor-core::before {top:0}
.shooting-star-layer .rainbow-cursor-aura.is-text .rainbow-cursor-core::after {bottom:0}
.shooting-star-layer .rainbow-cursor-aura.is-disabled .rainbow-cursor-core {
  width:14px; height:2px; background:#ad486f; box-shadow:0 0 0 1px #fff;
}
.shooting-star-trail {
  position:fixed; inset:0; display:block; width:100%; height:100%;
  overflow:visible; pointer-events:none; z-index:1; opacity:0;
}
.shooting-star-layer .rainbow-cursor-spark {
  position:fixed; display:block; width:var(--spark-size,6px); height:var(--spark-size,6px);
  clip-path:polygon(50% 0%,61.8% 36.2%,100% 38.2%,69.1% 61.8%,80.9% 100%,50% 76.4%,19.1% 100%,30.9% 61.8%,0% 38.2%,38.2% 36.2%);
  background:linear-gradient(135deg,#8050e5,#ddcaff 46%,#65d6ef);
  pointer-events:none; z-index:1; animation:shootingStarFade .48s ease-out forwards;
}
.shooting-star-layer .rainbow-cursor-spark.shooting-star-burst {
  animation:shootingStarBurst .55s ease-out forwards;
}
.shooting-star-layer .rainbow-cursor-pulse {
  position:fixed; width:18px; height:18px; border:1px solid #b597f3;
  border-radius:50%; transform:translate(-50%,-50%); box-shadow:0 0 4px #c3aaff55;
  pointer-events:none; z-index:1; animation:shootingStarPulse .46s ease-out forwards;
}
@keyframes shootingStarFade {
  from {opacity:.8; transform:translate(-50%,-50%) scale(1)}
  to {opacity:0; transform:translate(-50%,-50%) scale(.2)}
}
@keyframes shootingStarBurst {
  from {opacity:0; transform:translate(-50%,-50%) scale(.35)}
  18% {opacity:.9}
  to {opacity:0; transform:translate(calc(-50% + var(--spark-dx)),calc(-50% + var(--spark-dy))) scale(.6)}
}
@keyframes shootingStarPulse {
  from {width:18px; height:18px; opacity:.8}
  to {width:78px; height:78px; opacity:0}
}
@media(any-hover:hover) and (any-pointer:fine) {
  html.rainbow-cursor-active,
  html.rainbow-cursor-active *,
  html.rainbow-cursor-active *::before,
  html.rainbow-cursor-active *::after,
  html.rainbow-cursor-active dialog::backdrop {cursor:none!important}
}
@media(prefers-reduced-motion:reduce),(forced-colors:active) {
  .rainbow-cursor-layer {display:none!important}
}
