.zre-root,
.zre-root * {
  box-sizing: border-box;
}

.zre-root {
  overflow: hidden;
  border-radius: 24px;
}

.zre-root.zre-root--background {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  border-radius: inherit;
  z-index: var(--zre-bg-z, 0);
}

.zre-has-background-layer {
  isolation: isolate;
}

.zre-background-source-collapsed {
  display: none !important;
}

.zre-has-background-layer > *:not(.zre-root--background) {
  position: relative;
  z-index: 1;
}

.zre-has-background-layer > .e-con-inner,
.zre-has-background-layer > .elementor-container,
.zre-has-background-layer > .elementor-widget-wrap,
.zre-has-background-layer > .elementor-column-wrap,
.zre-has-background-layer > .elementor-element-populated {
  position: relative;
  z-index: 1;
}

.zre-root--background .zre-spotlight-card,
.zre-root--background .zre-antigravity,
.zre-root--background .zre-floating-lines,
.zre-root--background .zre-liquid-ether,
.zre-root--background .zre-split-text,
.zre-root--background .zre-orb,
.zre-root--background .zre-magic-bento-grid,
.zre-root--background .zre-carousel,
.zre-root--background .zre-tilted-card-figure,
.zre-root--background .zre-border-glow-card,
.zre-root--background .zre-glass-surface,
.zre-root--background .zre-shiny-text-wrap,
.zre-root--background .zre-text-type-wrap {
  min-height: 0;
  height: 100%;
  border-radius: inherit;
}

.zre-disabled-message {
  padding: 16px;
  border: 1px solid #dcdcde;
  background: #fff;
}

.zre-spotlight-card {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 24px;
  overflow: hidden;
  padding: 24px;
  background:
    radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--zre-accent) 85%, white 15%) 0%, rgba(0,0,0,0) 28%),
    radial-gradient(circle at 50% 55%, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0) 36%),
    linear-gradient(180deg, #15161b 0%, #0d0f14 100%);
}

.zre-spotlight-glow {
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(circle at 50% 35%, color-mix(in srgb, var(--zre-accent) 60%, transparent 40%) 0%, transparent 36%);
  filter: blur(14px);
  opacity: 0.9;
}

.zre-spotlight-text {
  position: relative;
  z-index: 1;
  color: #fff;
  font-size: clamp(24px, 4vw, 42px);
  line-height: 1.1;
  font-weight: 700;
  text-align: center;
  max-width: 820px;
}

.zre-antigravity {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
  overflow: hidden;
  background:
    radial-gradient(circle at var(--zre-mx) var(--zre-my), color-mix(in srgb, var(--zre-accent) 55%, white 8%) 0%, rgba(0,0,0,0) 18%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0) 28%),
    linear-gradient(180deg, #10131a 0%, #090b10 100%);
}

.zre-antigravity-field {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at var(--zre-mx) var(--zre-my), color-mix(in srgb, var(--zre-accent) 36%, transparent 64%) 0%, transparent 24%);
  filter: blur(12px);
}

.zre-antigravity-core {
  position: absolute;
  left: var(--zre-mx);
  top: var(--zre-my);
  width: 84px;
  height: 84px;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background:
    radial-gradient(circle at 35% 35%, #fff 0%, color-mix(in srgb, var(--zre-accent) 65%, white 35%) 32%, color-mix(in srgb, var(--zre-accent) 80%, black 20%) 62%, rgba(0,0,0,0) 74%);
  filter: blur(1px);
  box-shadow:
    0 0 24px color-mix(in srgb, var(--zre-accent) 50%, transparent 50%),
    0 0 48px color-mix(in srgb, var(--zre-accent) 30%, transparent 70%);
}

.zre-antigravity-particles {
  position: absolute;
  inset: 0;
}

.zre-antigravity-particle {
  position: absolute;
  display: block;
  background: color-mix(in srgb, var(--zre-accent) 70%, white 30%);
  box-shadow: 0 0 12px color-mix(in srgb, var(--zre-accent) 50%, transparent 50%);
  transform: translate(-50%, -50%);
}

.zre-antigravity-particle.is-capsule {
  width: 10px;
  height: 24px;
  border-radius: 999px;
}

.zre-antigravity-particle.is-sphere {
  width: 14px;
  height: 14px;
  border-radius: 999px;
}

.zre-antigravity-particle.is-box {
  width: 12px;
  height: 12px;
  border-radius: 2px;
}

.zre-antigravity-particle.is-diamond {
  width: 12px;
  height: 12px;
  transform: translate(-50%, -50%) rotate(45deg);
  border-radius: 2px;
}

.zre-antigravity-particle.is-animated {
  animation-name: zre-float;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

@keyframes zre-float {
  0%, 100% {
    transform: translate(-50%, -50%) translate3d(0, 0, 0) scale(1);
  }
  25% {
    transform: translate(-50%, -50%) translate3d(14px, -20px, 0) scale(1.05);
  }
  50% {
    transform: translate(-50%, -50%) translate3d(-12px, 16px, 0) scale(0.96);
  }
  75% {
    transform: translate(-50%, -50%) translate3d(8px, -10px, 0) scale(1.02);
  }
}

.zre-floating-lines {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
  overflow: hidden;
  background: #000;
}

.zre-liquid-ether {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
  overflow: hidden;
  touch-action: none;
}

.zre-split-text {
  position: relative;
  display: block;
  width: 100%;
}

.zre-split-line {
  display: block;
  overflow: hidden;
}

.zre-split-word,
.zre-split-char {
  display: inline-block;
  will-change: transform, opacity;
}

.zre-target-cursor-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  pointer-events: none;
  z-index: 9999;
  mix-blend-mode: difference;
  transform: translate(-50%, -50%);
}

.zre-target-cursor-dot {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 4px;
  height: 4px;
  background: #fff;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  will-change: transform;
}

.zre-target-cursor-corner {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 12px;
  border: 3px solid #fff;
  will-change: transform;
}

.zre-corner-tl {
  transform: translate(-150%, -150%);
  border-right: none;
  border-bottom: none;
}

.zre-corner-tr {
  transform: translate(50%, -150%);
  border-left: none;
  border-bottom: none;
}

.zre-corner-br {
  transform: translate(50%, 50%);
  border-left: none;
  border-top: none;
}

.zre-corner-bl {
  transform: translate(-150%, 50%);
  border-right: none;
  border-top: none;
}

.zre-orb {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 100%;
  min-height: 220px;
}

.zre-magic-bento-grid {
  display: grid;
  gap: 0.5em;
  padding: 0.75em;
  width: 100%;
  max-width: 100%;
  min-height: 220px;
  font-size: clamp(1rem, 0.9rem + 0.5vw, 1.5rem);
  position: relative;
  user-select: none;
}

.zre-root--background .zre-magic-bento-grid {
  min-height: 0;
  height: 100%;
  align-content: stretch;
}

.zre-magic-bento-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  aspect-ratio: 4 / 3;
  min-height: 200px;
  width: 100%;
  padding: 1.25em;
  border-radius: 20px;
  border: 1px solid #392e4e;
  background: #060010;
  overflow: hidden;
  color: #fff;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  --zre-magic-glow-x: 50%;
  --zre-magic-glow-y: 50%;
  --zre-magic-glow-intensity: 0;
  --zre-magic-glow-radius: 220px;
}

.zre-magic-bento-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.16);
}

.zre-magic-bento-card__header,
.zre-magic-bento-card__content {
  display: flex;
  position: relative;
  z-index: 2;
}

.zre-magic-bento-card__header {
  gap: 0.75em;
  justify-content: space-between;
}

.zre-magic-bento-card__content {
  flex-direction: column;
}

.zre-magic-bento-card__label {
  font-size: 16px;
}

.zre-magic-bento-card__title {
  margin: 0 0 0.25em;
  font-weight: 400;
  font-size: 16px;
}

.zre-magic-bento-card__description {
  margin: 0;
  font-size: 12px;
  line-height: 1.2;
  opacity: 0.9;
}

.zre-magic-bento-card--text-autohide .zre-magic-bento-card__title,
.zre-magic-bento-card--text-autohide .zre-magic-bento-card__description {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.zre-magic-bento-card--text-autohide .zre-magic-bento-card__title {
  -webkit-line-clamp: 1;
  line-clamp: 1;
}

.zre-magic-bento-card--text-autohide .zre-magic-bento-card__description {
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.zre-magic-bento-card--border-glow::after {
  content: '';
  position: absolute;
  inset: 0;
  padding: 6px;
  border-radius: inherit;
  background: radial-gradient(
    var(--zre-magic-glow-radius) circle at var(--zre-magic-glow-x) var(--zre-magic-glow-y),
    rgba(var(--zre-magic-glow-color, 132, 0, 255), calc(var(--zre-magic-glow-intensity) * 0.8)) 0%,
    rgba(var(--zre-magic-glow-color, 132, 0, 255), calc(var(--zre-magic-glow-intensity) * 0.4)) 30%,
    transparent 60%
  );
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}

.zre-magic-particle {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 3;
}

.zre-magic-ripple {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 4;
}

.zre-magic-global-spotlight {
  position: fixed;
  width: 800px;
  height: 800px;
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%);
  opacity: 0;
  mix-blend-mode: screen;
  z-index: 200 !important;
  will-change: transform, opacity;
}

@media (max-width: 599px) {
  .zre-magic-bento-grid {
    grid-template-columns: 1fr;
    padding: 0.5em;
  }

  .zre-magic-bento-card {
    min-height: 180px;
  }
}

@media (min-width: 600px) {
  .zre-magic-bento-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .zre-magic-bento-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .zre-magic-bento-card:nth-child(3) {
    grid-column: span 2;
    grid-row: span 2;
  }

  .zre-magic-bento-card:nth-child(4) {
    grid-column: 1 / span 2;
    grid-row: 2 / span 2;
  }

  .zre-magic-bento-card:nth-child(6) {
    grid-column: 4;
    grid-row: 3;
  }
}

.zre-carousel {
  position: relative;
  overflow: hidden;
  border: 1px solid #555;
  border-radius: 24px;
  background: #0b0812;
  padding: 16px;
  min-height: 220px;
  touch-action: pan-y;
}

.zre-carousel.is-round {
  border-radius: 999px;
}

.zre-root--background .zre-carousel {
  border-radius: inherit;
  min-height: 0;
  height: 100%;
}

.zre-carousel-viewport {
  width: 100%;
  height: calc(100% - 28px);
  overflow: hidden;
}

.zre-carousel-track {
  display: flex;
  will-change: transform;
  cursor: grab;
  perspective: 1000px;
  transform-style: preserve-3d;
}

.zre-carousel-track.is-dragging,
.zre-carousel-track:active {
  cursor: grabbing;
}

.zre-carousel-item {
  position: relative;
  display: flex;
  flex-shrink: 0;
  flex-direction: column;
  justify-content: space-between;
  border: 1px solid #555;
  border-radius: 16px;
  background-color: #0d0716;
  overflow: hidden;
  transform-origin: center center;
  transition: box-shadow 150ms ease;
}

.zre-carousel-item:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
}

.zre-carousel-item.is-round {
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.zre-carousel-item-header {
  margin-bottom: 16px;
  padding: 20px 20px 0;
}

.zre-carousel-item-header.is-round {
  margin-bottom: 10px;
  padding-top: 16px;
}

.zre-carousel-icon-container {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background-color: #fff;
}

.zre-carousel-icon {
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  color: #060010;
}

.zre-carousel-item-content {
  padding: 0 20px 20px;
}

.zre-carousel-item-title {
  margin-bottom: 4px;
  font-weight: 900;
  font-size: 18px;
  color: #fff;
}

.zre-carousel-item-description {
  margin: 0;
  font-size: 14px;
  color: #fff;
  opacity: 0.9;
}

.zre-carousel-indicators-container {
  display: flex;
  width: 100%;
  justify-content: center;
}

.zre-carousel-indicators {
  margin-top: 16px;
  display: flex;
  width: 150px;
  justify-content: space-between;
  padding: 0 32px;
}

.zre-carousel-indicator {
  width: 8px;
  height: 8px;
  border: 0;
  border-radius: 50%;
  background-color: #555;
  padding: 0;
  cursor: pointer;
  transition: transform 150ms ease, background-color 150ms ease;
}

.zre-carousel-indicator:hover {
  transform: scale(1.12);
}

.zre-carousel-indicator.is-active {
  background-color: #fff;
  transform: scale(1.2);
}

.zre-tilted-card-figure {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
  perspective: 800px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.zre-root--background .zre-tilted-card-figure {
  min-height: 0;
  height: 100%;
  width: 100%;
}

.zre-tilted-card-mobile-alert {
  position: absolute;
  top: 1rem;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  font-size: 0.875rem;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  display: none;
  z-index: 4;
}

.zre-tilted-card-inner {
  position: relative;
  transform-style: preserve-3d;
  transition: transform 180ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.zre-tilted-card-img {
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  border-radius: 15px;
  will-change: transform;
  transform: translateZ(0);
  user-select: none;
}

.zre-tilted-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 16px;
  border-radius: 15px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, 0.55) 100%);
  transform: translateZ(30px);
}

.zre-tilted-card-overlay-text {
  margin: 0;
  color: #fff;
  font-size: 14px;
  line-height: 1.3;
  text-align: center;
}

.zre-tilted-card-caption {
  pointer-events: none;
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 4px;
  background-color: #fff;
  padding: 4px 10px;
  font-size: 10px;
  color: #2d2d2d;
  opacity: 0;
  z-index: 3;
  white-space: nowrap;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
  transition: opacity 160ms ease;
}

@media (max-width: 640px) {
  .zre-tilted-card-mobile-alert {
    display: block;
  }

  .zre-tilted-card-caption {
    display: none;
  }
}

.zre-border-glow-card {
  --zre-edge-proximity: 0;
  --zre-cursor-angle: 45deg;
  --zre-edge-sensitivity: 30;
  --zre-color-sensitivity: calc(var(--zre-edge-sensitivity) + 20);
  --zre-border-radius: 28px;
  --zre-glow-padding: 40px;
  --zre-cone-spread: 25;
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
  border-radius: var(--zre-border-radius);
  isolation: isolate;
  transform: translate3d(0, 0, 0.01px);
  display: grid;
  border: 1px solid rgb(255 255 255 / 15%);
  background: var(--zre-card-bg, #060010);
  overflow: visible;
  box-shadow:
    rgb(0 0 0 / 10%) 0 1px 2px,
    rgb(0 0 0 / 10%) 0 2px 4px,
    rgb(0 0 0 / 10%) 0 4px 8px,
    rgb(0 0 0 / 10%) 0 8px 16px,
    rgb(0 0 0 / 10%) 0 16px 32px,
    rgb(0 0 0 / 10%) 0 32px 64px;
}

.zre-root--background .zre-border-glow-card {
  min-height: 0;
  height: 100%;
  width: 100%;
}

.zre-border-glow-card::before,
.zre-border-glow-card::after,
.zre-border-glow-card > .zre-edge-light {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  transition: opacity 0.25s ease-out;
}

.zre-border-glow-card::before,
.zre-border-glow-card::after {
  z-index: -1;
}

.zre-border-glow-card:not(:hover):not(.zre-sweep-active)::before,
.zre-border-glow-card:not(:hover):not(.zre-sweep-active)::after,
.zre-border-glow-card:not(:hover):not(.zre-sweep-active) > .zre-edge-light {
  opacity: 0;
  transition: opacity 0.75s ease-in-out;
}

.zre-border-glow-card::before {
  border: 1px solid transparent;
  background:
    linear-gradient(var(--zre-card-bg, #060010) 0 100%) padding-box,
    linear-gradient(rgb(255 255 255 / 0%) 0% 100%) border-box,
    var(--zre-gradient-one, radial-gradient(at 80% 55%, hsl(268deg 100% 76% / 1) 0px, transparent 50%)) border-box,
    var(--zre-gradient-two, radial-gradient(at 69% 34%, hsl(349deg 100% 74% / 1) 0px, transparent 50%)) border-box,
    var(--zre-gradient-three, radial-gradient(at 8% 6%, hsl(136deg 100% 78% / 1) 0px, transparent 50%)) border-box,
    var(--zre-gradient-four, radial-gradient(at 41% 38%, hsl(192deg 100% 64% / 1) 0px, transparent 50%)) border-box,
    var(--zre-gradient-five, radial-gradient(at 86% 85%, hsl(186deg 100% 74% / 1) 0px, transparent 50%)) border-box,
    var(--zre-gradient-six, radial-gradient(at 82% 18%, hsl(52deg 100% 65% / 1) 0px, transparent 50%)) border-box,
    var(--zre-gradient-seven, radial-gradient(at 51% 4%, hsl(12deg 100% 72% / 1) 0px, transparent 50%)) border-box,
    var(--zre-gradient-base, linear-gradient(#c299ff 0 100%)) border-box;
  opacity: calc((var(--zre-edge-proximity) - var(--zre-color-sensitivity)) / (100 - var(--zre-color-sensitivity)));
  mask-image: conic-gradient(
    from var(--zre-cursor-angle) at center,
    black calc(var(--zre-cone-spread) * 1%),
    transparent calc((var(--zre-cone-spread) + 15) * 1%),
    transparent calc((100 - var(--zre-cone-spread) - 15) * 1%),
    black calc((100 - var(--zre-cone-spread)) * 1%)
  );
}

.zre-border-glow-card::after {
  border: 1px solid transparent;
  background:
    var(--zre-gradient-one, radial-gradient(at 80% 55%, hsl(268deg 100% 76% / 1) 0px, transparent 50%)) padding-box,
    var(--zre-gradient-two, radial-gradient(at 69% 34%, hsl(349deg 100% 74% / 1) 0px, transparent 50%)) padding-box,
    var(--zre-gradient-three, radial-gradient(at 8% 6%, hsl(136deg 100% 78% / 1) 0px, transparent 50%)) padding-box,
    var(--zre-gradient-four, radial-gradient(at 41% 38%, hsl(192deg 100% 64% / 1) 0px, transparent 50%)) padding-box,
    var(--zre-gradient-five, radial-gradient(at 86% 85%, hsl(186deg 100% 74% / 1) 0px, transparent 50%)) padding-box,
    var(--zre-gradient-six, radial-gradient(at 82% 18%, hsl(52deg 100% 65% / 1) 0px, transparent 50%)) padding-box,
    var(--zre-gradient-seven, radial-gradient(at 51% 4%, hsl(12deg 100% 72% / 1) 0px, transparent 50%)) padding-box,
    var(--zre-gradient-base, linear-gradient(#c299ff 0 100%)) padding-box;
  mask-image:
    linear-gradient(to bottom, black, black),
    radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%),
    radial-gradient(ellipse at 66% 66%, black 5%, transparent 40%),
    radial-gradient(ellipse at 33% 33%, black 5%, transparent 40%),
    radial-gradient(ellipse at 66% 33%, black 5%, transparent 40%),
    radial-gradient(ellipse at 33% 66%, black 5%, transparent 40%),
    conic-gradient(from var(--zre-cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);
  mask-composite: subtract, add, add, add, add, add;
  opacity: calc(var(--zre-fill-opacity, 0.5) * (var(--zre-edge-proximity) - var(--zre-color-sensitivity)) / (100 - var(--zre-color-sensitivity)));
  mix-blend-mode: soft-light;
}

.zre-border-glow-card > .zre-edge-light {
  inset: calc(var(--zre-glow-padding) * -1);
  pointer-events: none;
  z-index: 1;
  mask-image: conic-gradient(
    from var(--zre-cursor-angle) at center,
    black 2.5%,
    transparent 10%,
    transparent 90%,
    black 97.5%
  );
  opacity: calc((var(--zre-edge-proximity) - var(--zre-edge-sensitivity)) / (100 - var(--zre-edge-sensitivity)));
  mix-blend-mode: plus-lighter;
}

.zre-border-glow-card > .zre-edge-light::before {
  content: '';
  position: absolute;
  inset: var(--zre-glow-padding);
  border-radius: inherit;
  box-shadow:
    inset 0 0 0 1px var(--zre-glow-color, hsl(40deg 80% 80% / 100%)),
    inset 0 0 1px 0 var(--zre-glow-color-60, hsl(40deg 80% 80% / 60%)),
    inset 0 0 3px 0 var(--zre-glow-color-50, hsl(40deg 80% 80% / 50%)),
    inset 0 0 6px 0 var(--zre-glow-color-40, hsl(40deg 80% 80% / 40%)),
    inset 0 0 15px 0 var(--zre-glow-color-30, hsl(40deg 80% 80% / 30%)),
    inset 0 0 25px 2px var(--zre-glow-color-20, hsl(40deg 80% 80% / 20%)),
    inset 0 0 50px 2px var(--zre-glow-color-10, hsl(40deg 80% 80% / 10%)),
    0 0 1px 0 var(--zre-glow-color-60, hsl(40deg 80% 80% / 60%)),
    0 0 3px 0 var(--zre-glow-color-50, hsl(40deg 80% 80% / 50%)),
    0 0 6px 0 var(--zre-glow-color-40, hsl(40deg 80% 80% / 40%)),
    0 0 15px 0 var(--zre-glow-color-30, hsl(40deg 80% 80% / 30%)),
    0 0 25px 2px var(--zre-glow-color-20, hsl(40deg 80% 80% / 20%)),
    0 0 50px 2px var(--zre-glow-color-10, hsl(40deg 80% 80% / 10%));
}

.zre-border-glow-inner {
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: auto;
  z-index: 1;
  border-radius: inherit;
}

.zre-border-glow-content {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.zre-border-glow-title {
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.2;
  color: #fff;
}

.zre-border-glow-text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: rgb(255 255 255 / 86%);
}

.zre-glass-surface {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  isolation: isolate;
  transition: opacity 0.26s ease-out;
}

.zre-root--background .zre-glass-surface {
  min-height: 0;
  height: 100%;
  width: 100%;
  border-radius: inherit;
}

.zre-glass-surface__filter {
  width: 100%;
  height: 100%;
  pointer-events: none;
  position: absolute;
  inset: 0;
  opacity: 0;
  z-index: -1;
}

.zre-glass-surface__content {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem;
  border-radius: inherit;
  position: relative;
  z-index: 1;
  text-align: center;
}

.zre-glass-surface__default {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.zre-glass-surface__title {
  margin: 0;
  color: #fff;
  font-size: clamp(1.1rem, 2vw, 1.6rem);
  line-height: 1.2;
}

.zre-glass-surface__text {
  margin: 0;
  color: rgb(255 255 255 / 88%);
  font-size: 0.95rem;
  line-height: 1.4;
}

.zre-glass-surface--svg {
  background: light-dark(hsl(0 0% 100% / var(--zre-glass-frost, 0)), hsl(0 0% 0% / var(--zre-glass-frost, 0)));
  backdrop-filter: var(--zre-glass-filter-id, url(#glass-filter)) saturate(var(--zre-glass-saturation, 1));
  box-shadow:
    0 0 2px 1px light-dark(color-mix(in oklch, black, transparent 85%), color-mix(in oklch, white, transparent 65%))
      inset,
    0 0 10px 4px light-dark(color-mix(in oklch, black, transparent 90%), color-mix(in oklch, white, transparent 85%))
      inset,
    0 4px 16px rgb(17 17 26 / 5%),
    0 8px 24px rgb(17 17 26 / 5%),
    0 16px 56px rgb(17 17 26 / 5%),
    0 4px 16px rgb(17 17 26 / 5%) inset,
    0 8px 24px rgb(17 17 26 / 5%) inset,
    0 16px 56px rgb(17 17 26 / 5%) inset;
}

.zre-glass-surface--fallback {
  background: rgb(255 255 255 / 25%);
  backdrop-filter: blur(12px) saturate(1.8) brightness(1.1);
  -webkit-backdrop-filter: blur(12px) saturate(1.8) brightness(1.1);
  border: 1px solid rgb(255 255 255 / 30%);
  box-shadow:
    0 8px 32px 0 rgb(31 38 135 / 20%),
    0 2px 16px 0 rgb(31 38 135 / 10%),
    inset 0 1px 0 0 rgb(255 255 255 / 40%),
    inset 0 -1px 0 0 rgb(255 255 255 / 20%);
}

@media (prefers-color-scheme: dark) {
  .zre-glass-surface--fallback {
    background: rgb(255 255 255 / 10%);
    backdrop-filter: blur(12px) saturate(1.8) brightness(1.2);
    -webkit-backdrop-filter: blur(12px) saturate(1.8) brightness(1.2);
    border: 1px solid rgb(255 255 255 / 20%);
    box-shadow:
      inset 0 1px 0 0 rgb(255 255 255 / 20%),
      inset 0 -1px 0 0 rgb(255 255 255 / 10%);
  }
}

@supports not (backdrop-filter: blur(10px)) {
  .zre-glass-surface--fallback {
    background: rgb(255 255 255 / 40%);
    box-shadow:
      inset 0 1px 0 0 rgb(255 255 255 / 50%),
      inset 0 -1px 0 0 rgb(255 255 255 / 30%);
  }

  .zre-glass-surface--fallback::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgb(255 255 255 / 15%);
    border-radius: inherit;
    z-index: -1;
  }
}

@supports not (backdrop-filter: blur(10px)) {
  @media (prefers-color-scheme: dark) {
    .zre-glass-surface--fallback {
      background: rgb(0 0 0 / 40%);
    }

    .zre-glass-surface--fallback::before {
      background: rgb(255 255 255 / 5%);
    }
  }
}

.zre-glass-surface:focus-visible {
  outline: 2px solid light-dark(#007aff, #0a84ff);
  outline-offset: 2px;
}

.zre-shiny-text-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  text-align: center;
}

.zre-root--background .zre-shiny-text-wrap {
  min-height: 0;
  height: 100%;
  width: 100%;
}

.zre-shiny-text {
  display: inline-block;
  font-size: clamp(24px, 4vw, 56px);
  line-height: 1.1;
  font-weight: 700;
  white-space: pre-wrap;
}

.zre-text-type-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  text-align: center;
}

.zre-root--background .zre-text-type-wrap {
  min-height: 0;
  height: 100%;
  width: 100%;
}

.zre-text-type {
  display: inline-block;
  white-space: pre-wrap;
  font-size: clamp(22px, 4vw, 52px);
  line-height: 1.1;
  font-weight: 700;
}

.zre-text-type__content {
  color: inherit;
}

.zre-text-type__cursor {
  margin-left: 0.25rem;
  display: inline-block;
  opacity: 1;
  animation: zre-text-type-cursor-blink var(--zre-text-type-cursor-blink, 0.5s) infinite alternate ease-in-out;
}

.zre-text-type__cursor--hidden {
  display: none;
}

@keyframes zre-text-type-cursor-blink {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
