:root {
  --duration: 9s;
  --wave-duration: calc(var(--duration) * 0.25);
  --text-in-delay: calc(var(--duration) * 0.275);
  --text-in-duration: calc(var(--duration) * 0.1);
  --easing: cubic-bezier(0.5, 0, 0.5, 1);
  --dot-color: #0000ff;
  --dot-color-dark: #0000ff;
}

*,
*:before,
*:after {
  box-sizing: border-box;
  position: relative;
}


.containerlogo {
  display: grid;
  align-items: flex-end;
  justify-items: center;

}
.containerlogo > * {
  grid-area: 1/1;
}

.titlelogo {
  font-size: 9vmin;
  margin-bottom: 0px;
 font-weight: 800;
font-stretch: condensed; 
   transform: scaleX(0.94);
    
}

.titlelogo .char {
  --delay: calc(var(--text-in-delay) + (0.25s * (1 - var(--distance-percent))));
  -webkit-animation: text-in var(--text-in-duration) var(--easing) var(--delay) backwards;
          animation: text-in var(--text-in-duration) var(--easing) var(--delay) backwards;
  transform-origin: center 1em;
}
@-webkit-keyframes text-in {
  0% {
    opacity: 0;
    transform: translateX(calc(-0.4em * var(--char-offset))) scale(0);
  }
  90% {
    transform: translateX(0em) scale(1.1);
  }
}
@keyframes text-in {
  0% {
    opacity: 0;
    transform: translateX(calc(-0.4em * var(--char-offset))) scale(0);
  }
  90% {
    transform: translateX(0em) scale(1.1);
  }
}
.titlelogo .char[data-char=t], .titlelogo .char[data-char=i] {
  visibility: hidden;
  --squish-scale: 0.6;
  --squish-y: 10%;
}
.titlelogo .char[data-char=t]:before, .titlelogo .char[data-char=i]:before {
  -webkit-animation: text-squish var(--duration) var(--easing) forwards;
          animation: text-squish var(--duration) var(--easing) forwards;
  visibility: visible;
  transform-origin: center 1em;
}
.titlelogo .char[data-char=i] {
  --squish-scale: 0.9;
  --squish-y: 5%;
}
@-webkit-keyframes text-squish {
  47.5%, 52.5% {
    transform: none;
  }
  50% {
    transform: translateY(calc(var(--squish-y) * 1)) scaleY(calc(var(--squish-scale) * 1));
  }
}
@keyframes text-squish {
  47.5%, 52.5% {
    transform: none;
  }
  50% {
    transform: translateY(calc(var(--squish-y) * 1)) scaleY(calc(var(--squish-scale) * 1));
  }
}
.titlelogo .char:last-child {
  -webkit-animation: text-in var(--text-in-duration) var(--easing) var(--delay) backwards, text-bonk var(--duration) var(--easing) forwards;
          animation: text-in var(--text-in-duration) var(--easing) var(--delay) backwards, text-bonk var(--duration) var(--easing) forwards;
}
@-webkit-keyframes text-bonk {
  80%, 85%, to {
    transform: none;
  }
  82% {
    transform: translateX(-20%);
  }
}
@keyframes text-bonk {
  80%, 85%, to {
    transform: none;
  }
  82% {
    transform: translateX(-20%);
  }
}

.dot {
  font-size: 3vmin;
  width: 1em;
  height: 1em;
   -webkit-animation: dot var(--duration) var(--easing) both infinite;
  animation: dot var(--duration) var(--easing) both infinite;
}

.dot-inner {
  -webkit-animation: dot-inner var(--duration) var(--easing) both;
          animation: dot-inner var(--duration) var(--easing) both;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  display: grid;
  align-items: center;
  justify-items: center;
}
.dot-inner > * {
  grid-area: 1/1;
}

.dot-wave {
  width: 200%;
  height: 200%;
  fill: var(--dot-color);
  -webkit-animation: wave-in var(--wave-duration) var(--easing);
          animation: wave-in var(--wave-duration) var(--easing);
  --offset-x: -110%;
}
@-webkit-keyframes wave-in {
  0% {
    transform: translateY(100%) translateX(var(--offset-x));
  }
  70% {
    transform: translateY(30%) translateX(0%);
  }
}
@keyframes wave-in {
  0% {
    transform: translateY(100%) translateX(var(--offset-x));
  }
  70% {
    transform: translateY(30%) translateX(0%);
  }
}
.dot-wave.background {
  fill: var(--dot-color-dark);
  -webkit-animation-duration: calc(0.95 * var(--wave-duration));
          animation-duration: calc(0.95 * var(--wave-duration));
  --offset-x: 110%;
}

@-webkit-keyframes dot {
  from {
    opacity: 0;
    transform: scale(3);
  }
  10% {
    opacity: 1;
    transform: scale(3);
  }
  15% {
    transform: scale(3) translateY(0.5em) scaleY(1.5);
  }
  20% {
    transform: scale(1) translateY(-300%);
  }
  30% {
    transform: translateY(1em) scaleY(0.5);
  }
  40% {
    transform: translateY(-400%);
  }
  50% {
    transform: translateY(-1em);
  }
  53% {
    transform: translateY(-300%);
  }
  56% {
    transform: translateY(-1em);
  }
  59% {
    transform: translateY(-200%);
  }
  62% {
    transform: translateY(1em);
  }
  80%, 90%, to {
    transform: translateY(1em);
  }
}

@keyframes dot {
  from {
    opacity: 0;
    transform: scale(3);
  }
  10% {
    opacity: 1;
    transform: scale(3);
  }
  15% {
    transform: scale(3) translateY(0.5em) scaleY(1.5);
  }
  20% {
    transform: scale(1) translateY(-300%);
  }
  30% {
    transform: translateY(1em) scaleY(0.5);
  }
  40% {
    transform: translateY(-400%);
  }
  50% {
    transform: translateY(-1em);
  }
  53% {
    transform: translateY(-500%);
  }
  56% {
    transform: translateY(-2em);
  }
  59% {
    transform: translateY(-400%);
  }
  62% {
    transform: translateY(-2em);
  }
  80%, 90%, to {
    transform: translateY(1em);
  }
}
@-webkit-keyframes dot-inner {
  from, 45% {
    transform: none;
  }
  70% {
    transform: translateX(6em);
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 1, 0);
            animation-timing-function: cubic-bezier(0.5, 0, 1, 0);
  }
  80% {
    transform: translateX(4.3em);
    -webkit-animation-timing-function: var(--easing);
            animation-timing-function: var(--easing);
  }
  83%, to {
    transform: translateX(4.4em);
  }
}
@keyframes dot-inner {
  from, 45% {
    transform: none;
  }
  70% {
    transform: translateX(6em);
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 1, 0);
            animation-timing-function: cubic-bezier(0.5, 0, 1, 0);
  }
  80% {
    transform: translateX(4.3em);
    -webkit-animation-timing-function: var(--easing);
            animation-timing-function: var(--easing);
  }
  83%, to {
    transform: translateX(6em);
  }
}
/* Small helper to keep animation in sync */
body:not([data-play]) *,
body:not([data-play]) *:before,
body:not([data-play]) *:after {
  visibility: hidden;
  -webkit-animation: none !important;
          animation: none !important;
}
/* Recommended styles for Splitting */
.splitting .word,
.splitting .char {
  display: inline-block;
}

/* Psuedo-element chars */
.splitting .char {
  position: relative;
}

/**
 * Populate the psuedo elements with the character to allow for expanded effects
 * Set to `display: none` by default; just add `display: block` when you want
 * to use the psuedo elements
 */
.splitting .char::before,
.splitting .char::after {
  content: attr(data-char);
  position: absolute;
  top: 0;
  left: 0;
  visibility: hidden;
  transition: inherit;
  user-select: none;
}

/* Expanded CSS Variables */

.splitting {
  /* The center word index */
  --word-center: calc((var(--word-total) - 1) / 2);

  /* The center character index */
  --char-center: calc((var(--char-total) - 1) / 2);

  /* The center character index */
  --line-center: calc((var(--line-total) - 1) / 2);
}

.splitting .word {
  /* Pecent (0-1) of the word's position */
  --word-percent: calc(var(--word-index) / var(--word-total));

  /* Pecent (0-1) of the line's position */
  --line-percent: calc(var(--line-index) / var(--line-total));
}

.splitting .char {
  /* Percent (0-1) of the char's position */
  --char-percent: calc(var(--char-index) / var(--char-total));

  /* Offset from center, positive & negative */
  --char-offset: calc(var(--char-index) - var(--char-center));

  /* Absolute distance from center, only positive */
  --distance: calc(
     (var(--char-offset) * var(--char-offset)) / var(--char-center)
  );

  /* Distance from center where -1 is the far left, 0 is center, 1 is far right */
  --distance-sine: calc(var(--char-offset) / var(--char-center));

  /* Distance from center where 1 is far left/far right, 0 is center */
  --distance-percent: calc((var(--distance) / var(--char-center)));
}
