:root {
    color-scheme: dark;
    --site-bg-color: #111111;
    --site-text-color: #f2f2f2;
    --site-text-secondary: #b7b7b7;
    --site-border-color: #333333;
    --site-header-border-color: #f2f2f2;
    --site-card-bg: #1d1d1d;
    --site-table-header-bg: #1a1a1a;
    --site-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.25' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.22'/%3E%3C/svg%3E");
}

@media (prefers-color-scheme: light) {
    html:not([data-theme]) {
        color-scheme: light;
        --site-bg-color: #fcfcfc;
        --site-text-color: #111111;
        --site-text-secondary: #555555;
        --site-border-color: #e0e0e0;
        --site-header-border-color: #111111;
        --site-card-bg: #f1f1f1;
        --site-table-header-bg: #f7f7f7;
        --site-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.05' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.12'/%3E%3C/svg%3E");
    }
}

html[data-theme="light"] {
    color-scheme: light;
    --site-bg-color: #fcfcfc;
    --site-text-color: #111111;
    --site-text-secondary: #555555;
    --site-border-color: #e0e0e0;
    --site-header-border-color: #111111;
    --site-card-bg: #f1f1f1;
    --site-table-header-bg: #f7f7f7;
    --site-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.05' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.12'/%3E%3C/svg%3E");
}

html[data-theme="dark"] {
    color-scheme: dark;
}

.site-page {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 100vh;
    padding: 36px 24px;
    caret-color: transparent;
}

.site-page-wrapper {
    width: 100%;
    max-width: 680px;
}

.site-content-narrow {
    max-width: 600px;
    margin-right: auto;
    margin-left: auto;
}

.site-content-wide {
    max-width: 680px;
    margin-right: auto;
    margin-left: auto;
}

.site-theme-toggle {
    position: fixed;
    top: 0;
    left: calc(50% - 11px);
    z-index: 10;
    display: block;
    width: 22px;
    height: 18px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--site-text-color);
    font: inherit;
    font-size: 12px;
    line-height: 16px;
    text-align: center;
    cursor: pointer;
    clip-path: polygon(0 0, 100% 0, 68% 100%, 32% 100%);
}

.site-theme-toggle:hover {
    background: var(--site-text-color);
    color: var(--site-bg-color);
}

.site-header {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 12px 24px;
    align-items: start;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--site-header-border-color);
    padding-bottom: 12px;
}

.site-header h1 {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 8px;
    letter-spacing: -0.5px;
}

.site-header-main {
    min-width: 0;
}

.site-header-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px 12px;
    padding-top: 2px;
    font-size: 12px;
}

.site-header-nav a {
    color: var(--site-text-color);
    text-decoration: underline;
}

.site-header-nav a:hover {
    color: var(--site-text-secondary);
}

.site-tagline {
    font-size: 13px;
    color: var(--site-text-secondary);
}

.site-badge {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.site-badge:hover {
    opacity: 0.72;
}

.site-badge-image {
    display: block;
    height: 20px;
    image-rendering: auto;
    filter: grayscale(1) contrast(1.15);
}

.site-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    margin-top: 36px;
    padding-top: 16px;
    border-top: 1px solid var(--site-border-color);
    color: var(--site-text-secondary);
    font-size: 12px;
}

.site-footer-groups {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px 12px;
}

.site-footer-heart {
    display: block;
    width: 20px;
    height: 20px;
    object-fit: contain;
    opacity: 0.82;
}

.site-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
}

.site-footer a {
    color: var(--site-text-color);
    text-decoration: underline;
}

.site-footer a:hover {
    color: var(--site-text-secondary);
}

.site-footer-credit {
    opacity: 0.8;
    font-size: 11px;
}

@media (max-width: 600px) {
    .site-header {
        grid-template-columns: 1fr;
    }

    .site-header-nav {
        justify-content: flex-start;
    }

    .site-footer {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .site-footer-groups {
        justify-content: center;
    }
}
