body {
    background-color: black;
    color: white;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    min-height: 100vh;
    overflow-y: auto;
}

.container {
    background-color: #222;
    padding: 2em;
    border-radius: 1em;
    width: 100%;
    max-width: 50em;
    box-sizing: border-box;
}

h1 {
    text-align: center;
    font-size: 2em;
}

a {
    color: white;
}

input, select {
    width: 100%;
    margin: 1em 0;
    padding: 1em;
    border: 1px solid #444;
    border-radius: 0.5em;
    box-sizing: border-box;
    background-color: #333;
    color: #e1e1e1;
}

input[type="button"] {
    background-color: #393;
    color: white;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

input.invalid {
    background-color: #663333;
}

input[type="button"]:hover {
    background-color: #5b5;
}

.output {
    margin-top: 2em;
}

.output input {
    background: linear-gradient(to right, #333 0%, #333 60%, #444 70%, #333 80%);
    background-size: 200%;
}

@keyframes shine {
    to {
        background-position-x: -200%;
    }
    from {
        background-position-x: 200%;
    }
}