:root {
    --primary-color: #667eea;
    --secondary-color: #764ba2;
    --text-color: #333;
    --muted-color: #777;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    min-height: 100dvh;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 20px;

    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--secondary-color)
    );

    font-family: Tahoma, Arial, sans-serif;
}

.box {
    width: min(100%, 380px);
    padding: 40px 30px;

    text-align: center;

    background-color: #fff;
    border-radius: 20px;
    box-shadow: 0 12px 35px rgb(0 0 0 / 30%);
}

.icon {
    font-size: 64px;
    line-height: 1;
}

h1 {
    margin: 22px 0 12px;

    color: var(--text-color);
    font-size: 22px;
    font-weight: bold;
}

p {
    margin: 0;

    color: var(--muted-color);
    font-size: 15px;
}

small {
    display: block;
    margin-top: 15px;

    color: #999;
    font-size: 12px;
}

.loader {
    width: 52px;
    height: 52px;
    margin: 28px auto 0;

    border: 5px solid #e1e1e1;
    border-top-color: var(--primary-color);
    border-radius: 50%;

    animation: spin 0.9s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 420px) {
    .box {
        padding: 30px 22px;
        border-radius: 16px;
    }

    .icon {
        font-size: 55px;
    }

    h1 {
        font-size: 19px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .loader {
        animation-duration: 2.5s;
    }
}
