* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --primary: #1fd9f7;
}

header {
  --x: 0;
  --w: 0;

  position: relative;
  display: flex;

  &::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: var(--w);
    height: 2px;
    background: var(--primary);
    transform: translateX(var(--x));
    transition: .3s;
  }
}

.btn {
  --x: 0;
  --y: 0;
  --r: 0;

  position: relative;
  flex: 1;
  text-align: center;
  overflow: hidden;
  height: 40px;
  line-height: 40px;
  container-type: inline-size;

  &.active {
    color: var(--primary);
  }

  & .btn-text {
    position: relative;
    z-index: 2;
    font-size: 25cqw;
  }

  & .ripple {
    position: absolute;
    /* top: var(--y); */
    /* left: var(--x); */
    top:50%;
    left:50%;
    margin-left: calc(var(--r) / 2 * -1);
    margin-top: calc(var(--r) / 2 * -1);
    width: var(--r);
    height: var(--r);
    border-radius: 50%;
    background: rgba(0, 0, 0, .2);
    opacity: 0;
    transform-origin: var(--x) var(--y);
    transform: scale(0);
    transition: .2s;

    &.show {
      transform: scale(1);
      opacity: 1;
    }

    &.leave {
      opacity: 0;
    }
  }
}

main {
  position: relative;
  overflow: auto;
  height: calc(100dvh - 40px);
  font-size: 0;

  & #marker {
    position: absolute;
    top: -100vmax;
    left: -100vmax;
    width: 32px;
    height: 32px;
    background-color: var(--primary);
    mask: url("images/marker.svg");
    mask-size: 100% 100%;
    animation: debounce .5s infinite alternate ease-in-out;
  }
}

@keyframes debounce {
  0% {
    transform: translateY(10px) scale(0.9);
  }
  100% {
    transform: translateY(-10px) scale(1.1);
  }
}
