@import url(fonts.css);
@import url(keyframes.css);

:root {
    --background-shadow: hsla(210, 50%, 5%, 66%);
    --dialog-background: hsla(0, 0%, 18%, 80%);
    --dialog-background-active: hsla(0, 0%, 8%, 80%);
    --dialog-border: hsl(0, 0%, 30%);
    --light-blue: hsl(180, 90%, 60%);
    --dark-blue: hsl(180, 90%, 30%);
    --active-blue: hsla(180, 40%, 25%, 50%);
    --dialog-width: 770px;
    --dialog-padding-bottom: 120px;
    --details-button-width: 395px;
    --details-button-height: 65px;
    --keyframe-dialog-size-diff: 50px;
    --keyframe-show-dialog-width: calc(var(--dialog-width) - var(--keyframe-dialog-size-diff));
    --keyframe-hide-dialog-width: calc(var(--dialog-width) + var(--keyframe-dialog-size-diff));
    --keyframe-show-dialog-padding-bottom: calc(var(--dialog-padding-bottom) - var(--keyframe-dialog-size-diff));
    --keyframe-hide-dialog-padding-bottom: calc(var(--dialog-padding-bottom) + var(--keyframe-dialog-size-diff));
}

.background-image {
    position: fixed;
    height: 100vh;
    width: 100vw;
    margin-top: -8px;
    margin-left: -8px;
    background: url(/assets/webp/Urchin_Underpass.webp);
    background-size: cover;
    animation: 750ms forwards ease-out onload-background-blur;
    transform: scale(1.1);
    z-index: -1;
}

p, button {
    color: white;
    font-family: Nintendo, sans-serif;
    font-weight: bold;
    font-size: 24px;
    line-height: 40px;
    letter-spacing: -0.025em;
}

.error-code {
    color: lightgray;
    font-size: 16px;
}

.dialog {
    position: absolute;
    animation: 1250ms forwards ease-out onload-dialog;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background-color: var(--dialog-background);
    backdrop-filter: blur(4px);
    border: 1px solid var(--dialog-border);
    border-radius: 4px;
}

.dialog-content {
    animation: 1300ms forwards onload-visibility;
}

.dialog .error-code {
    margin-top: 40px;
    margin-left: 60px;
}

.dialog .description > p {
    margin: 12px 32px 0 64px;
}

.dialog button {
    position: absolute;
    bottom: 0;
    background-color: transparent;
    border: 0;
    border-top: 2px solid var(--dialog-border);
    width: 100%;
    height: 74px;
}

.dialog button.left, .dialog button.right {
    width: 50%;
}

.dialog button.left {
    border-right: 1px solid var(--dialog-border);
}

.dialog button.right {
    border-left: 1px solid var(--dialog-border);
    left: 50%;
}

.details {
    display: none;
    opacity: 0;
    width: 100%;
}

.details-content {
    margin: 65px 15% 0;
    height: calc(100vh - var(--details-button-height) * 3.75);
    overflow-y: scroll;
}

.details .description > p {
    font-size: 20px;
    line-height: 36px;
}

.details button {
    position: absolute;
    background-color: var(--dialog-background);
    width: var(--details-button-width);
    height: var(--details-button-height);
    left: 50%;
    top: calc(100% - var(--details-button-height) * 1.25);
    transform: translate(-50%, -50%);
    border: 1px solid var(--dialog-border);
    border-radius: 4px;
}

button:focus, button:hover {
    background-color: var(--dialog-background-active);
    border-radius: 4px;
    outline: 5px solid;
    box-shadow: 0 0 12px var(--light-blue);
    animation: 500ms infinite alternate ease-out hover-outline;
}

button:active {
    outline: none;
    box-shadow: none;
    transition: none;
    background-color: var(--active-blue);
}