@use '../../../assets/sass/settings/v7/colors.tokens' as *;
@use '../../../assets/sass/settings/v7/layout-standard' as *;
@use '../../../assets/sass/settings/v7/global' as *;
@use '../../../assets/sass/settings/v7/spacing.tokens' as *;
@use '../../../assets/sass/tools/v7/mq' as *;
@use '../../../assets/sass/tools/v7/zindex' as *;
@use '../../../assets/sass/tools/v7/typography' as *;


@property --progress {
  syntax: "<integer>";
  initial-value: 0;
  inherits: false;
}

.component {
  --size: 12vmin;
  display: grid;
  grid-template-areas:
    "timer"
    "caption";
  place-items: center;
  place-content: center;
  gap: 0.2em;
  position: sticky;
  right: 0;
  bottom: 0;
  width: fit-content;
  @include z(cover);
  @include bp(md){
    --size: 8vmin;
  }
}

.timer-wrapper {
  grid-area: timer;
  display: grid;
  place-items: center;
  place-content: center;
  grid-template-areas: "container";
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  background: conic-gradient(
    from 45deg,
    var(--theme-color-lighter) calc(var(--progress) * 1%),
    transparent 0
  );
}

.timer-wrapper > * {
  grid-area: container;
  filter: drop-shadow(2px 4px 6px var(--background-color-negative));
}

.timer {
  width: calc(var(--size) / 1.2);
  height: calc(var(--size) / 1.2);
}

.caption {
  grid-area: caption;
}

.caption::before,
.caption::after {
  margin-inline: auto;
  content: counter(progress);
  font-size: calc(0.6em + var(--size) / 6);
  font-weight: bold;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.caption::after {
  content: "%";
}


@supports (animation-timeline: scroll()) {

  :is(.component, .timer-wrapper, .timer, .timer-hand, .timer-switch) {
    animation-timeline: view();
    // animation-range: entry 0% exit 10%;
  }

  .component {
    --plunge-offset: 10rem;
    --plunge-start: calc(100% - var(--plunge-offset) * 2);
    --plunge-end: calc(100% - var(--plunge-offset));

    animation-name: progress;
    //animation-range: 0 var(--plunge-start);
    counter-reset: progress var(--progress);


    
  }

  .timer-wrapper {
    animation-name: progress, turn-upright;
    //animation-range: 0 var(--plunge-start),var(--plunge-start) var(--plunge-end);
  }

  .timer {
    --plunge-depth: 0.25em;
    transform-origin: 50% 0;
    animation-name: plunge;
    //animation-range: var(--plunge-start) var(--plunge-end);
  }

  .timer-switch {
    --plunge-depth: 1em;
    transform-origin: 50% 0;
    animation-name: plunge;
    //animation-range: var(--plunge-start) var(--plunge-end);
  }

  .timer-hand {
    transform-origin: 50%;
    rotate: calc((var(--progress) / 100) * 360deg);
    animation-name: progress;
    //animation-range: 0 var(--plunge-start);
  }

  @keyframes progress {
    to {
      --progress: 100;
    }
  }

  @keyframes turn-upright {
    from {
      rotate: -10deg;
    }
    to {
      rotate: 0;
    }
  }

  @keyframes plunge {
    50% {
      translate: 0 var(--plunge-depth);
    }
  }

  @keyframes fade-out {
    from {
      opacity: 1;
    }
    to {
      opacity: 0;
    }
  }
}


