* {
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    background: var(--ls-color-bg-neutral-backdrop);
    font-family: sans-serif;
    padding: 1rem;
    min-height: 100dvh;
    position: relative;
    margin: 0;
    font-size: 0.9rem;
    color: var(--ls-color-fg-neutral-default);
    display: grid;
    grid-template-rows: auto 1fr;
}

main {
    display: grid;
    gap: 1rem;
    width: 100%;
    max-width: 900px;
    margin: 1rem auto 0 auto;
    padding-bottom: 1rem;
    grid-template-columns: auto 320px;
    grid-template-rows: auto 1fr auto auto;
    grid-template-areas:
        'main toast'
        'main floor'
        'sidebar sidebar'
        'footer footer';

}

@media screen and (max-width: 675px) {
    main {
        grid-template-columns: auto;
        grid-template-rows: auto auto 1fr auto auto;
        grid-template-areas:
			'main'
			'toast'
            'floor'
			'sidebar'
			'footer';
    }
}

aside {
    grid-area: sidebar;

    article {
        background: var(--ls-color-bg-neutral-edge);
        border: 1px solid var(--ls-color-border-neutral-strong);
        box-shadow: 0 0 4px var(--ls-color-gray-0-a5);
        color: var(--ls-color-fg-neutral-dark-soft);
    }
}

article,
button,
input[type=submit],
header,
footer,
.error {
    border-radius: 4px;
}

article {
    background: var(--ls-color-bg-neutral-top);
    border: 1px solid var(--ls-color-border-neutral-soft);
    box-shadow: 0 0 4px var(--ls-color-gray-0-a5);
    padding: 1rem;
    position: relative;
    overflow: hidden;
}

article:has(summary) {
    box-shadow: 0 0 0 var(--ls-color-gray-200);
    transform: scale(1);
    transition: all 100ms ease-out;

    &:has(summary:hover) {
        box-shadow: 0 2px 8px var(--ls-color-gray-210);
        transform: scale(1.01);
    }
}

.cols {
    display: flex;
    gap: 1rem;
    align-items: center;
    vertical-align: middle;
}

details {
    &[open] summary::before {
        transform: rotate(180deg);
    }

    summary {
        cursor: pointer;

        &::before {
            content: '';
            display: block;
            background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAABb2lDQ1BJQ0MgUHJvZmlsZQAAKJF1kc9KAlEUxj8l+k9UtGjRYnYVjFGjkLmzKUIoGMYJshYxXk0DtWFmJITeIGhfK3uEoBa9gdAyihaCO2lXELmSbufOWCrRuRzOj49zv3vmDBCUC6zoDAAollxb31qX9lL70lATATpemMyx4pq2Lfin9kfr2e99DAmv6mf12lTuU7NrjY/B85vDv/19MZrJOoxqm9Jglu0CAY1YO3UtwVXiGZuGIr4VnPO5Jjjtc93rMXSV+J14kuXNDBAU/nK6R8/1cLFQZp0ZxPTj2dJukmqUcg5J7ECDgU1I0IkkRBDGCkJQvFyms0rqBlQkqC5QTxiL/3hGPE8VJ7BQgY1j5JCHS/fipFgoIEucQAkMS5CJxQsKFPEvOjt+6uxY7mpnZSA2zDl/6Gr6K3D3AoxNdbX5Cn0ucU2zTNv83Xzw8so5Civ+tNNNYOSN89YFMBGj92qctw3Ov8gvcADUG9/OsGqie72/SQAAANhlWElmTU0AKgAAAAgABgESAAMAAAABAAEAAAEaAAUAAAABAAAAVgEbAAUAAAABAAAAXgEoAAMAAAABAAIAAAEyAAIAAAAUAAAAZodpAAQAAAABAAAAegAAAAAAAAEsAAAAAQAAASwAAAABMjAyNTowMjowMyAxMjowNToxOAAABJADAAIAAAAUAAAAsJAEAAIAAAAUAAAAxKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAAAyMDI1OjAyOjAzIDExOjU0OjU0ADIwMjU6MDI6MDMgMTE6NTQ6NTQAV/KSoAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAB1VpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4xMDAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjEwMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8dGlmZjpJbWFnZUxlbmd0aD4xMDAwPC90aWZmOkltYWdlTGVuZ3RoPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpJbWFnZVdpZHRoPjEwMDA8L3RpZmY6SW1hZ2VXaWR0aD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4zMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDxwaG90b3Nob3A6RGF0ZUNyZWF0ZWQ+MjAyNS0wMi0wM1QxMTo1NDo1NC0wNTAwPC9waG90b3Nob3A6RGF0ZUNyZWF0ZWQ+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmls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) no-repeat;
            background-size: contain;
            height: 32px;
            aspect-ratio: 1 / 1;
            flex: 0 1 auto;
            filter: drop-shadow(0 1px 3px var(--ls-color-gray-0-a50));
            transform: rotate(0deg);
            transition: transform 0.15s ease-out;
        }

        & > .spacer {
            flex: 1 0 auto;
        }

        h2 {
            display: inline-block;
            vertical-align: middle;
            padding: 0.2rem 0.5rem;
            margin-bottom: 0;
            flex: 1 0 max-content;
            position: relative;
            background: var(--ls-color-bg-ai-default);
            color: var(--ls-color-fg-ai-ondark-default);
            border-radius: .1em;

            &::after {
                content: '';
                position: absolute;
                left: 0;
                top: 50%;
                width: 0;
                height: 0;
                border: 0.19em solid transparent;
                border-right-color: var(--ls-color-bg-ai-default);
                border-left: 0;
                margin-top: -0.19em;
                margin-left: -0.19em;
            }
        }

        aside {
            flex: 0 1 max-content;
            margin: 0;
            padding: 0.4rem 0.7rem;
            background: var(--ls-color-bg-neutral-top);
        }
    }
}

form {
    display: flex;
    flex-direction: column;
    gap: 1rem;

    & label,
    .form-row {
        display: flex;
        gap: 0.5rem;

        &:empty {
            display: none;
        }
    }

    & label {
        flex-direction: column;
    }

    & input[type=password],
    & input[type=text] {
        background: var(--ls-color-bg-neutral-sunken);
        border: 1px solid var(--ls-color-border-neutral-soft);
        box-shadow: inset 0 0 12px var(--ls-color-gray-0-a5);
        padding: 5px 7px;
        border-radius: 4px;
    }
}

button,
input[type=submit] {
    border-radius: 4px;
    font-size: 1.1em;
    padding: 0.5rem 0.75rem;
    background: var(--ls-color-bg-neutral-backdrop);
    color: var(--ls-color-fg-neutral-default);
    border: 1px solid var(--ls-color-border-neutral-soft);
    cursor: pointer;

    &[type=submit] {
        background: var(--ls-color-bg-go-default);
        color: var(--ls-color-blue-240);
        border: 1px solid var(--ls-color-border-go-default);
    }
}

header, footer {
    padding: 0.8rem 1rem;
}

header {
    background: var(--ls-color-bg-neutral-topmost);
    border: 1px solid var(--ls-color-border-neutral-soft);
    box-shadow: 0 0 12px var(--ls-color-gray-0-a5);
    display: flex;
    align-items: center;
    gap: 1rem;
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    border-radius: 4px;

    & i {
        flex: 0 1 auto;
        font-size: 2rem;
    }

    & h1 {
        flex: 1 1 auto;
        margin: 0 auto;
        font-weight: normal;
    }
}

footer {
    grid-area: footer;
    background: var(--ls-color-bg-neutral-sunken);
    border: 1px solid var(--ls-color-border-neutral-strong);
    box-shadow: inset 0 0 12px var(--ls-color-gray-0-a5);
    color: var(--ls-color-fg-neutral-soft);
}

.error {
    background: var(--ls-color-bg-no-default);
    border: 1px solid var(--ls-color-border-no-default);
    box-shadow: 0 0 12px var(--ls-color-gray-0-a5);
    color: var(--ls-color-fg-neutral-ondark-default);
    padding: 0.4rem 0.6rem;
    animation: ease-out 0.15s forwards errorin;
}

@keyframes errorin {
    0% {
        opacity: 0;
        transform: translateY(-100%);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

h2, h3, h4, h5, h6, p {
    margin: 0.8rem 0;

    &:first-child {
        margin-top: 0;
    }

    &:last-child {
        margin-bottom: 0;
    }
}

article + article {
    margin-top: 1rem;
}

p, label {
    line-height: 3ex;
}

.charm {
    position: absolute;
    bottom: 0;
    right: 0;
    opacity: 0.3;
    transition: all 0.15s ease-out;

    & > img {
        height: 65px;
        z-index: 0;
        display: block;
    }

    &::before {
        content: '☕️';
        display: block;
        position: absolute;
        bottom: -2px;
        right: 0;
        font-size: 1.1em;
        opacity: 0;
        transform: translate(0, -100%);
    }
}

.charm:hover {
    opacity: 1;

    &::before {
        animation: ease-out 2s forwards coffeein;
    }
}

@keyframes coffeein {
    0% {
        opacity: 0;
        transform: translate(4px, -100%);
    }
    25% {
        opacity: 1;
        transform: translate(-4px, -55%);
    }
    50% {
        opacity: 1;
        transform: translate(4px, -30%);
    }
    75% {
        opacity: 1;
        transform: translate(-4px, -15%);
    }
    100% {
        opacity: 1;
        transform: translate(0, 0);
    }
}

code {
    color: var(--ls-color-red-80);
    background: var(--ls-color-red-230);
    padding: 0 0.3ch;
}

i {
    font-style: normal;
}

hr {
    border: none;
    border-top: 1px solid var(--ls-color-border-neutral-soft);
}

.floor {
    grid-area: floor;
    text-align: right;

    img {
        max-width: 300px;
        display: none;

        &.open {
            display: inline-block;
        }
    }
}

.toast {
    box-shadow: 0 0 4px var(--ls-color-gray-0-a5);
    background: var(--ls-color-bg-neutral-edge);
    color: var(--ls-color-fg-neutral-default);
    border: 1px solid var(--ls-color-border-neutral-strong);
    text-align: center;
    transition: background 0.5s ease-in-out;
    height: min-content;

    &.open {
        background: radial-gradient(ellipse at top, var(--ls-color-bg-success-highlight-default), transparent 95%), var(--ls-color-bg-success-soft);
        color: var(--ls-color-fg-success-strong);
        border: 1px solid var(--ls-color-border-success-default);
    }

    &.closed {
        background: radial-gradient(ellipse at top, var(--ls-color-bg-no-highlight-default), transparent 95%), var(--ls-color-bg-no-soft);
        color: var(--ls-color-fg-neutral-ondark-soft);
        border: 1px solid var(--ls-color-border-no-default);
    }
}

h3 {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-weight: normal;
    color: var(--ls-color-fg-neutral-default);
    padding: 0.4rem 0.5ex;
    border-bottom: 1px solid var(--ls-color-border-neutral-stronger);

    small {
        font-size: 0.7em;
    }
}

.loader {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: block;
    margin: 2px auto;
    position: relative;
    color: #FFF;
    box-sizing: border-box;
    animation: animloader 2s linear infinite;
}

@keyframes animloader {
    0% {
        box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
    }
    25% {
        box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 2px;
    }
    50% {
        box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 2px, -38px 0 0 -2px;
    }
    75% {
        box-shadow: 14px 0 0 2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
    }
    100% {
        box-shadow: 14px 0 0 -2px, 38px 0 0 2px, -14px 0 0 -2px, -38px 0 0 -2px;
    }
}
