
.tbs-cursor-on,
.tbs-cursor-on *,
.tbs-cursor-on *::before,
.tbs-cursor-on *::after { cursor: none !important; }

.tbs-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  pointer-events: none;
  z-index: 2147483647;
  mix-blend-mode: normal;
}
@media (pointer: coarse), (hover: none) {
  .tbs-cursor { display: none !important; }
}

.tbs-cursor__ring {
  position: absolute;
  top: 0;
  left: 0;
  width: 28px;
  height: 28px;
  margin-left: -14px;
  margin-top: -14px;
  border-radius: 999px;
    background: rgba(0, 71, 157, 0.16);
  border: 1px solid var(--tbs-blue);
  filter: drop-shadow(0 3px 9.6px rgba(0, 47, 104, 0.20));
  display: flex;
  align-items: center;
  justify-content: center;
  transform-origin: 50% 50%;
  will-change: transform, width, height;
  transition:
    width   .28s cubic-bezier(.34, 1.4, .4, 1),
    height  .28s cubic-bezier(.34, 1.4, .4, 1),
    margin-left  .28s cubic-bezier(.34, 1.4, .4, 1),
    margin-top   .28s cubic-bezier(.34, 1.4, .4, 1),
    filter  .28s ease;
}

.tbs-cursor.is-hover .tbs-cursor__ring,
.tbs-cursor.is-video .tbs-cursor__ring {
  width: 48px;
  height: 48px;
  margin-left: -24px;
  margin-top: -24px;
  filter:
    drop-shadow(0 7px 20px rgba(0, 47, 104, 0.20))
    drop-shadow(0 3px 6.7px rgba(0, 0, 0, 0.07));
}

.tbs-cursor__dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--tbs-blue);
  opacity: 1;
  transition: opacity .18s ease;
}
.tbs-cursor.is-hover .tbs-cursor__dot,
.tbs-cursor.is-video .tbs-cursor__dot {
  opacity: 0;
}

.tbs-cursor__icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tbs-blue);
  font-family: 'Material Symbols Rounded';
  font-size: 48px;
  font-weight: normal;
  font-variation-settings:
    'FILL' 0,
    'wght' 200,
    'GRAD' 0,
    'opsz' 48;
  line-height: 1;
  opacity: 0;
  transform: scale(.6);
  transition: opacity .18s ease, transform .2s ease;
  user-select: none;
}
.tbs-cursor.is-hover .tbs-cursor__icon,
.tbs-cursor.is-video .tbs-cursor__icon {
  opacity: 1;
  transform: scale(1);
}

.tbs-cursor.is-dark .tbs-cursor__ring {
  background: rgba(255, 255, 255, 0.16);
  border-color: #fff;
  filter: drop-shadow(0 3px 9.6px rgba(0, 0, 0, 0.35));
}
.tbs-cursor.is-dark.is-hover .tbs-cursor__ring,
.tbs-cursor.is-dark.is-video .tbs-cursor__ring {
  filter:
    drop-shadow(0 7px 20px rgba(0, 0, 0, 0.35))
    drop-shadow(0 3px 6.7px rgba(0, 0, 0, 0.2));
}
.tbs-cursor.is-dark .tbs-cursor__dot { background: #fff; }
.tbs-cursor.is-dark .tbs-cursor__icon { color: #fff; }

.tbs-cursor.is-hidden { opacity: 0; }
.tbs-cursor { transition: opacity .2s ease; }
