/* version: 1.3.0 */

:root {
    --primary-dark-color-shadow: #081018;
    --primary-dark-color-shadow-contrast: #060d1a;
    --primary-dark-color-midtone: #182038;
    --primary-dark-color-midtone-contrast: #141b3b;
    --primary-dark-color-bright: #304074;
    --primary-dark-color-bright-contrast: #283680;
    --primary-light-color-shadow: #c0d0e0;
    --primary-light-color-shadow-contrast: #dbcbe4;
    --primary-light-color-midtone: #c8d8e0;
    --primary-light-color-midtone-contrast: #c4d4e4;
    --primary-light-color-highlight: #d0e0e0;
    --primary-light-color-highlight-contrast: #cbdbe4;
    --overlay-light-color-double: #d0d0f0c0;
    --overlay-light-color: #d0d0f080;
    --overlay-light-color-soft: #d0d0f040;
    --overlay-light-color-muted: #d0d0f018;
    --overlay-light-color-vanishing: #d0d0f00b;
    --overlay-dark-color-double: #0b0820c0;
    --overlay-dark-color: #0b082080;
    --overlay-dark-color-soft: #0b082040;
    --overlay-dark-color-muted: #0b082018;
    --overlay-dark-color-vanishing: #0b08200b;
    --accent-color-1-shadow: #582838;
    --accent-color-1-midtone: #704050;
    --accent-color-1-highlight: #885868;
    --accent-color-2-shadow: #402850;
    --accent-color-2-midtone: #584068;
    --accent-color-2-highlight: #705880;
    --accent-color-3-shadow: #583028;
    --accent-color-3-midtone: #704840;
    --accent-color-3-highlight: #886058;
    --accent-color-4-shadow: #305020;
    --accent-color-4-midtone: #486838;
    --accent-color-4-highlight: #688050;
    --accent-color-5-shadow: #285058;
    --accent-color-5-midtone: #407070;
    --accent-color-5-highlight: #588088;
    --corner-panel-button-height: 54px;
    --corner-panel-button-width: 54px;
    --secret-panel-button-height: 60px;
    --secret-panel-button-width: 60px;
}

body {
    font-family: "Open Sans", "Segoe UI", "Helvetica", sans-serif;
}

div.generic-block {
    margin: .4em;
}

div.generic-column {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-content: safe center;
    justify-content: flex-start;
    align-items: safe center;
}

div.generic-row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: safe center;
    justify-content: safe center;
}

div.generic-column,
div.generic-row {
    border-radius: .4em;
}

div.generic-column {
    margin: 0 .4em;
}

div.generic-row {
    margin: .4em 0;
}

div.generic-grid {
    display: grid;
    justify-content: stretch;
    align-items: stretch;
    justify-items: start;
}

div.generic-grid-item {}

div#notification-box {
    position: absolute;
    height: 2.6em;
    top: 1em;
    right: 1em;
    vertical-align: top;
    text-align: right;
    visibility: hidden;
}

div#notification-box div {
    position: absolute;
    height: 1.5em;
    width: auto;
    max-width: 32em;
    top: 0;
    right: 0;
    border: 1px solid black;
    border-radius: 1em;
    padding: .6em;
    margin-top: -5em;
    vertical-align: middle;
    text-align: right;
    text-wrap: nowrap;
    font-size: .8em;
    font-weight: 300;
    color: #000818;
    background-color: #b8d8e8;
    visibility: visible;
    transition: all 0.5s ease
}

div.loading-spinner-container {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    vertical-align: middle;
    font-size: 0.64em;
}

div.loading-spinner {
    display: block;
    position: relative;
    top: 50%;
    color: #ffffffe0;
    animation-name: spin;
    animation-duration: 1200ms;
    animation-iteration-count: infinite;
    animation-timing-function: steps(8, end);
}

@keyframes spin {
    from {
        transform:rotate(0deg);
    }
    to {
        transform:rotate(360deg);
    }
}

div.corner-panel {
    z-index: 666;
    position: fixed;
    top: 0;
    left: 0;
    margin: .5em;
    opacity: 0.33;
    transition: all .25s ease-out;
}

div#secret-panel {
    opacity: 0.05;
}

div#secret-panel div.corner-panel-button {
    width: var(--secret-panel-button-width);
    height: var(--secret-panel-button-height);
}

div.corner-panel:hover {
    opacity: 1;
}

div#secret-panel:hover {
    opacity: 1;
}

div.corner-panel-button {
    position: relative;
    line-height: var(--corner-panel-button-height);
    background-color: var(--overlay-light-color-double);
    margin: 0;
    border: 1px solid var(--primary-dark-color-midtone);
    border-radius: .6em;
    font-size: 2.4em;
    color: var(--overlay-dark-color-double);
    transition: all .25s ease-out;
}

div.corner-panel-button {
    width: var(--corner-panel-button-width);
    height: var(--corner-panel-button-height);
}

div.corner-panel-button:hover {
    z-index: 36;
    background-color: var(--primary-light-color-midtone-contrast);
    box-shadow: 0 0 .2em .05em var(--overlay-light-color);
    border-color: 1px solid var(--primary-dark-color-bright);
    color: var(--primary-dark-color-bright-contrast);
    animation-name: wiggle;
    animation-duration: 0.33s;
    animation-fill-mode: forwards;
    animation-iteration-count: infinite;
    animation-timing-function: cubic-bezier(.75, 0, .25, 1.0);
}

div.corner-panel-button-icon {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: safe center;
    justify-content: safe center;
    align-items: safe center;
}

a:has(div.corner-panel-button),
a:has(div.corner-panel-button):hover,
a:has(div.corner-panel-button):active {
    color: unset;
    text-decoration: unset;
}

div#return-to-top-button {
    cursor: pointer;
    position: fixed;
    bottom: .8em;
    right: .45em;
    display: none;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: safe center;
    justify-content: flex-end;
    align-items: flex-end;
    text-shadow: 0 0 .7em var(--overlay-dark-color-muted),
                 0 0 .9em var(--overlay-dark-color-vanishing),
                 0 0 2px var(--primary-dark-color-midtone-contrast),
                 0 0 2px var(--primary-dark-color-midtone-contrast),
                 0 0 2px var(--primary-dark-color-midtone-contrast),
                 0 0 2px var(--primary-dark-color-midtone-contrast),
                 0 0 2px var(--primary-dark-color-midtone-contrast),
                 0 0 1px var(--primary-light-color-midtone-contrast),
                 0 0 1px var(--primary-light-color-midtone-contrast),
                 0 0 1px var(--primary-light-color-midtone-contrast),
                 0 0 1px var(--primary-light-color-midtone-contrast),
                 0 0 1px var(--primary-light-color-midtone-contrast);
    font-family: "Alumni Sans", "Open Sans", "Segoe UI", "Helvetica", sans-serif;
    font-size: 1.8em;
    font-weight: 800;
    color: var(--primary-light-color-midtone-contrast);
}

div#return-to-top-icon {
    padding-bottom: .24em;
    margin-left: .24em;
}
