/*! Estilo dos componentes do React Bits (https://reactbits.dev), de David Haz.
 * MIT + Commons Clause: a licença inteira está no topo de reactbits-puro.js.
 * As regras de cada componente são as do arquivo .css original. As que terminam
 * em "--efeito" são nossas: só o necessário pra luz entrar num elemento que já
 * tem fundo, borda e espaçamento próprios. */

/* DotGrid */
.dot-grid { position: relative; width: 100%; height: 100%; }
.dot-grid__canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; pointer-events: none; }

/* SpotlightCard */
.spotlight-card {
  position: relative; isolation: isolate; overflow: hidden; padding: 2rem; border-radius: 1.5rem;
  background-color: var(--spotlight-card-surface); box-shadow: var(--spotlight-card-shadow);
}
.spotlight-card--efeito { position: relative; isolation: isolate; overflow: hidden; }
.spotlight-card__light,
.spotlight-card__grain,
.spotlight-card__border,
.spotlight-card__edge { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; }
.spotlight-card__light,
.spotlight-card__grain { z-index: -1; opacity: 0; }
.spotlight-card__grain { background-size: 160px 160px; mix-blend-mode: overlay; }
.spotlight-card__border,
.spotlight-card__edge {
  z-index: 1; padding: 1px;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
.spotlight-card__border { background: var(--spotlight-card-border); }
.spotlight-card__edge { opacity: 0; }

/* StarBorder */
.star-border {
  position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center;
  gap: 0.5rem; margin: 0; padding: 0.875rem 1.5rem; border: 0; border-radius: var(--star-border-radius);
  background: var(--star-border-surface); color: var(--star-border-text); font: inherit; font-weight: 500;
  line-height: 1.25; text-decoration: none; -webkit-tap-highlight-color: transparent;
}
.star-border::before {
  content: ''; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  box-shadow: inset 0 0 0 var(--star-border-thickness) var(--star-border-track); pointer-events: none;
}
.star-border--efeito { position: relative; isolation: isolate; }
.star-border__light {
  position: absolute; top: -48px; left: -48px; z-index: -1;
  width: calc(100% + 96px); height: calc(100% + 96px); pointer-events: none;
}
button.star-border, a.star-border { cursor: pointer; }
.star-border:focus-visible { outline: 2px solid var(--star-border-track); outline-offset: 3px; }
.star-border:disabled { cursor: not-allowed; opacity: 0.5; }

/* ShinyText */
.shiny-text {
  position: relative; display: inline-block; background-repeat: no-repeat; background-size: 100% 100%;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.shiny-text__glow {
  position: absolute; inset: 0; background-repeat: no-repeat; background-size: 100% 100%;
  -webkit-background-clip: text; background-clip: text; filter: blur(0.14em); pointer-events: none; user-select: none;
}
