html,
body {
    margin: 0;
    height: 100%;
    overflow: hidden;
    background: #000;
    font-family: "Friz Quadrata", Georgia, serif;
    color: #f0d27a;
    user-select: none;
}

#view {
    display: block;
    width: 100vw;
    height: 100vh;
    cursor: default;
}

#loading {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    background: #000 center / contain no-repeat;
    transition: opacity 0.6s;
}

#loading.done {
    opacity: 0;
    pointer-events: none;
}

.loading-inner {
    width: min(720px, 80vw);
    margin-bottom: 12vh;
    text-align: center;
}

#loading-title {
    font-size: 22px;
    letter-spacing: 1px;
    margin-bottom: 10px;
    text-shadow: 0 0 6px #000;
}

/* A WoW-style loading bar: dark trough, gold frame, red-to-gold fill. */
.bar {
    height: 18px;
    border: 2px solid #8a6d2b;
    border-radius: 3px;
    background: #120c06;
    box-shadow:
        0 0 0 1px #000,
        inset 0 0 6px #000;
    overflow: hidden;
}

#loading-fill {
    width: 0;
    height: 100%;
    background: linear-gradient(#e0b34a, #9a5b12 55%, #6e3a08);
    transition: width 0.15s;
}

#loading-detail {
    margin-top: 8px;
    font-size: 12px;
    color: #a99a74;
    font-family: system-ui, sans-serif;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#fullscreen {
    position: fixed;
    right: 12px;
    bottom: 12px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    color: #f0d27a;
    background: rgba(0, 0, 0, 0.45);
    border: 1px solid rgba(240, 210, 122, 0.4);
    border-radius: 4px;
    cursor: pointer;
    opacity: 0.55;
    transition: opacity 0.2s;
}

#fullscreen:hover {
    opacity: 1;
}

#error {
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 40px;
    background: #05070b;
    color: #e66;
    font-family: system-ui, sans-serif;
    white-space: pre-wrap;
    text-align: center;
}

#error[hidden] {
    display: none;
}
