@font-face {
    font-family: FiraSans;
    src: url("public/FiraSans-Regular.ttf");
}

@font-face {
    font-family: FiraMono;
    src: url("public/FiraMono-Regular.ttf");
}

body {
    background-color: #121212;
    margin: 0;
    padding: 0;
    text-align: center;
    color: #FFFFFF;
    font-family: FiraSans;
    padding: 100px;
}

.subtitle {
    color: #CCCCCC;
}

.terminal {
    display: inline-block;
    background-color: #121212;
    color: #FFFFFF;
    width: 290px;
    font-family: FiraMono;
    text-align: left;
}

.terminal::selection, .terminal *::selection {
    color: #121212;
    background-color: #FFFFFF;
}

.terminal .cmd {
    position: relative;
    margin-right: 0;
    animation-name: type-cmd;
    animation-duration: 0.4s;
    animation-delay: 0.5s;
    animation-fill-mode: backwards;
    animation-timing-function: steps(5);
}
.terminal .cmd::after {
    background-color: #121212;
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 5ch;
    animation-name: type-cmd-after;
    animation-duration: 0.4s;
    animation-delay: 0.5s;
    animation-fill-mode: backwards;
    animation-timing-function: steps(5);
}

.terminal .output {
    animation-name: pulse;
    animation-duration: 0s;
    animation-delay: 1.2s;
    animation-fill-mode: backwards;
}

a {
    color: #61AFEF;
}

.terminal .cursor {
    background-color: #FFFFFF;
    animation-name: pulse;
    animation-duration: 0.6s;
    animation-direction: alternate;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
    user-select: none;
}

.terminal .cursor.first {
    animation-iteration-count: 2;
    animation-fill-mode: forwards;
}

@keyframes type-cmd {
    from {
        margin-right: -5ch;
    }
    to {
        margin-right: 0;
    }
}

@keyframes type-cmd-after {
    from {
        left: 0;
    }
    to {
        left: 5ch;
    }
}

@keyframes pulse {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
