:root {
    --width: 1080px !important;
}

.header {
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
    width: 100% !important;
    background-color: rgba(255, 255, 255, 0.95) !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06) !important;
    overflow-anchor: none;
}

.header-wrapper {
    background-color: transparent !important;
}

.menu-item a {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
}

.menu-item.active a::after {
    position: absolute;
    right: 0;
    bottom: -0.35rem;
    left: 0;
    height: 2px;
    border-radius: 1px;
    background: currentColor;
    content: "";
}

@media (min-width: 769px) {
    .header-inner {
        width: 100% !important;
        max-width: 1080px !important;
        padding-right: 16px;
        padding-left: 16px;
        box-sizing: border-box;
    }
}

.main {
    width: 100% !important;
    max-width: 1080px !important;
    padding-top: 2rem !important;
}

.main-inner {
    width: 100% !important;
    max-width: 900px !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

.memos-container {
    max-width: 900px;
    margin-right: auto;
    margin-left: auto;
}

.main.recommendations-page {
    padding-top: 2rem !important;
}

.main.gallery-page {
    max-width: 1080px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-top: 0 !important;
}

.waterfall-container {
    max-width: 1080px;
}

html[data-theme='dark'] .header,
html.dark .header {
    background-color: rgba(30, 30, 30, 0.95) !important;
    border-bottom-color: rgba(255, 255, 255, 0.05) !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4) !important;
    color: #e0e0e0 !important;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme='light']) .header {
        background-color: rgba(30, 30, 30, 0.95) !important;
        border-bottom-color: rgba(255, 255, 255, 0.05) !important;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4) !important;
        color: #e0e0e0 !important;
    }
}

@media (max-width: 768px) {
    .header-wrapper {
        padding: calc(0.35rem + env(safe-area-inset-top, 0px)) 0 0 !important;
        box-sizing: border-box;
        min-height: calc(5.6rem + env(safe-area-inset-top, 0px));
    }

    .header-inner {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100% !important;
    }

    .site-brand {
        display: flex;
        align-items: center;
        min-height: 2.5rem;
        margin: 0 !important;
        padding: 0 15px;
    }

    .nav {
        max-width: 100%;
        margin: 0 !important;
        overflow-x: auto;
        overflow-y: hidden;
        text-align: left;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .nav::-webkit-scrollbar {
        display: none;
    }

    .menu {
        display: flex;
        width: max-content;
        min-width: 100%;
        padding: 0 15px;
        box-sizing: border-box;
        white-space: nowrap;
    }

    .menu-item {
        flex: 0 0 4rem;
        margin: 0 !important;
    }

    .menu-item a {
        min-height: 2.75rem;
        width: 100%;
        justify-content: center;
        padding: 0;
    }

    .menu-item.active a::after {
        bottom: 0;
    }

    .main {
        padding-top: 1.5rem !important;
    }

    .main.gallery-page {
        padding-top: 0 !important;
    }
}

@media (max-width: 640px) {
    .main.recommendations-page {
        padding-top: 1.5rem !important;
    }
}
