@font-face {
    font-family: "shakies";
    src: url(Revamped.otf);
}
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    block-size: 100vh;
    display: grid;
    place-content: center;
    gap: 1rem;
    font-family: "shakies";
    background-color: #36374e;
}

.text-container {
    display: flex;
    justify-content: center;
    block-size: min(10rem, 23vw);
    min-inline-size: 22.5rem;
}

.text-stroke {
    font-size: 72px;
    letter-spacing: 4px;
    fill: none;
    stroke: #18ff05;
    stroke-width: 2;
    stroke-dasharray: 100%;
    stroke-dashoffset: 100%;
    animation: textStrokeAnim 13000ms linear both;
    animation-iteration-count: 1;
    /**/animation-iteration-count: infinite;
}

.reset {
    /**/visibility: hidden;
    width: max-content;
    margin-inline: auto;
    padding: 0.5em 1.25em;
    font-size: 1.5rem;
    border-radius: 1rem;
    border: 0;
    position: relative;
    background-color: hsl(49deg, 100%, 62%);
    color: #555;
}

.reset::after,
.reset::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    transition: all 66ms ease;
}

.reset::after {
    box-shadow: 0 0.25rem 0.5rem #0003, -0.124rem 0.5rem 0.45rem #0002;
    opacity: 1;
}

.reset::before {
    box-shadow: inset 0 1px 0.5px 0px #777, inset 0 -2px 0.5px 0px #fff9,
        inset 0 4px 10px 0px #0007, inset 0 -4px 16px 0px #fff7;
    opacity: 0;
}

.reset:focus-visible {
    outline: 2px solid #0ebeff;
    outline-offset: 1px;
}

.reset:active {
    scale: 0.98;
}

.reset:is(:active, :focus-visible)::after {
    opacity: 0;
}

.reset:active::before {
    opacity: 1;
}

@keyframes textStrokeAnim {
    0% {
        stroke-dasharray: 100%;
        stroke-dashoffset: 100%;
        fill: #0000;
    }
    15% {
        stroke-dasharray: 70%;
        stroke-dashoffset: 100%;
        fill: #0000;
    }
    55% {
        stroke-dasharray: 35%;
        stroke-dashoffset: 100%;
        fill: #0000;
    }
    75% {
        stroke-dasharray: 6%;
        stroke-dashoffset: 100%;
        fill: #0000;
    }
    90% {
        stroke-dasharray: -150%;
        stroke-dashoffset: 90%;
        fill: #18ff05;
        filter: drop-shadow(2px 2px 10px #0cff0c77);
    }
    100% {
        stroke-dasharray: -100%;
        stroke-dashoffset: 100%;
        fill: #18ff05;
        filter: drop-shadow(2px 2px 10px #0cff0c77);
    }
}