*,
*::before,
*::after {
    box-sizing: border-box;
}

* {
    margin: 0;
}

body {
    line-height: 1.5;
}

img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

input,
button,
textarea,
select {
    font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: break-word;
}

p {
    text-wrap: pretty;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-wrap: balance;
}

:root {
    /* Primary Colors */
    --clr-blue-200: hsl(193, 38%, 86%);
    --clr-green-300: hsl(150, 100%, 66%);

    /* Neutral Colors */
    --clr-blue-600: hsl(217, 19%, 38%);
    --clr-blue-900: hsl(217, 19%, 24%);
    --clr-blue-950: hsl(218, 23%, 16%);

    /* Font */
    --ff-main: Manrope, sans-serif;
    --fw-bold: 800;
}

.page {
    color: var(--clr-blue-200);
    background-color: var(--clr-blue-950);
    font-family: var(--ff-main);
    font-weight: var(--fw-bold);
    font-size: 1.75rem;
}

.layout {
    min-height: 100dvh;
    display: grid;
    align-content: center;
}

.advice-card {
    background-color: var(--clr-blue-900);
    width: min(100%, 33.75rem);
    padding: 2.8125rem;
    margin-inline: auto;
    border-radius: 0.8125rem;
    text-align: center;
    position: relative;
}

.advice-card__id {
    color: var(--clr-green-300);
    font-size: 0.9375rem;
    text-transform: uppercase;
    letter-spacing: 0.25rem;
}

.advice-card__content {
    margin-top: 1.25rem;
    margin-bottom: 2.5rem;
}

.advice-card__divider {
    width: 100%;
    margin-bottom: 1.25rem;
}

.advice-card__dice {
    color: var(--clr-blue-950);
    background-color: var(--clr-green-300);
    padding: 1.25rem;
    border-radius: 999px;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 50%);
    border: none;
    cursor: pointer;
}

.advice-card__dice:hover,
.advice-card__dice:focus-visible {
    box-shadow: 0px 0px 1.875rem 0.3125rem var(--clr-green-300);
}

.advice-card__dice:focus {
    outline: none;
}

.advice-card__dice-icon {
    width: 1.875rem;
}

.skeleton {
    animation: skeleton-loading 1000ms infinite alternate;
}

@keyframes skeleton-loading {
    from {
        background-color: var(--clr-skeleton);
    }
    to {
        background-color: var(transparent);
    }
}

.skeleton-text {
    display: inline-block;
    height: 1em;
    border-radius: 0.25rem;
}

.skeleton-text--advice-id {
    --clr-skeleton: var(--clr-green-300);
    width: 3em;
    position: relative;
    top: 0.125em;
    border-radius: 999px;
}

.skeleton-text--advice-content {
    --clr-skeleton: var(--clr-blue-200);
    width: 85%;
}

.rotate-infinite {
    animation: rotate 1000ms ease infinite;
}

@keyframes rotate {
    from {
        rotate: 0;
    }

    to {
        rotate: 1turn;
    }
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

@media screen and (max-width: 37.5rem) {
    .page {
        font-size: 1.5rem;
    }

    .layout {
        margin-inline: 0.9375rem;
    }

    .advice-card {
        padding: 1.5625rem;
    }

    .advice-card__id {
        font-size: 0.6875rem;
    }

    .advice-card__content {
        margin-bottom: 1.25rem;
    }

    .advice-card__divider {
        margin-bottom: 2.5rem;
    }
}
