@layer utilities {

    /* Mobile header and drawer */
    .js-header-search-mobile-button,
    .navigation-games-platform-mobile,
    .navigation-login-mobile,
    .navigation-loggedin-mobile,
    .navigation-switch-mobile {
        @media (min-width: 1200px) {
            display: none;
        }
    }

    nav .navigation-item .discord::before,
    nav .navigation-theme .switch::before,
    nav .navigation-login .login::before,
    nav .navigation-notification .notification::before {
        @media (min-width: 1200px) {
            padding-right: 0;
        }
    }

    .site-header-mobile,
    .mobile-drawer {
        display: none;
    }

    .site-header {

        @media (max-width: 1200px) {
            overflow: visible;
            height: 3.375rem;
        }
    }

    .site-header__inner {

        @media (max-width: 1200px) {
            display: none;
        }
    }

    .site-header-mobile {

        @media (max-width: 1200px) {
            position: relative;
            z-index: 3;
            display: grid;
            grid-template-columns: 3rem minmax(0, 1fr) 3rem;
            align-items: center;
            height: 100%;
            padding-inline: 0;
            background: var(--color-header-bg);
        }
    }

    .site-header-mobile__brand,
    .site-header-mobile__logo-link,
    .site-header-mobile__actions,
    .site-header-mobile__button {

        @media (max-width: 1200px) {
            display: flex;
            align-items: center;
        }
    }

    .site-header-mobile__brand,
    .site-header-mobile__logo-link {

        @media (max-width: 1200px) {
            justify-content: center;
            min-width: 0;
        }
    }

    .site-header-mobile__actions {

        @media (max-width: 1200px) {
            justify-content: flex-end;
        }
    }

    .site-header-mobile__button {

        @media (max-width: 1200px) {
            position: relative;
            justify-content: center;
            width: var(--space-40);
            height: var(--space-40);
            border: 0;
            border-radius: var(--radius-round);
            background: var(--color-bg-on-dark-muted);
            color: var(--color-dropdown-text);
        }
    }

    .site-header-mobile__button:hover,
    .site-header-mobile__button:focus-visible {

        @media (max-width: 1200px) {
            border-color: transparent;
            background: var(--color-bg-on-dark-hover);
            color: var(--color-dropdown-text);
        }
    }

    .site-header-mobile__button .svg-sprite {

        @media (max-width: 1200px) {
            width: var(--space-18);
            height: var(--space-18);
            fill: currentColor;
        }
    }

    .site-header-mobile__avatar-wrap,
    .mobile-drawer__avatar-wrap {

        @media (max-width: 1200px) {
            position: relative;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
    }

    .site-header-mobile__avatar-wrap .avatar.small,
    .mobile-drawer__avatar-wrap .avatar.small {

        @media (max-width: 1200px) {
            width: var(--space-32);
            height: var(--space-32);
            border-radius: var(--radius-round);
        }
    }


    .mobile-drawer {

        @media (max-width: 1200px) {
            position: fixed;
            inset: 0;
            z-index: 5000;
            display: block;
            pointer-events: none;
        }
    }

    .mobile-drawer[hidden] {

        @media (max-width: 1200px) {
            display: none;
        }
    }

    .mobile-drawer.is-open {

        @media (max-width: 1200px) {
            pointer-events: auto;
        }
    }

    .mobile-drawer__backdrop {

        @media (max-width: 1200px) {
            position: absolute;
            inset: 0;
            border: 0;
            background: var(--color-bg-overlay);
            cursor: pointer;
            opacity: 0;
            transition: opacity .22s ease;
        }
    }

    .mobile-drawer.is-open .mobile-drawer__backdrop {

        @media (max-width: 1200px) {
            opacity: 1;
        }
    }

    .mobile-drawer__panel {

        @media (max-width: 1200px) {
            position: absolute;
            inset-block: 0;
            right: 0;
            display: grid;
            overflow: hidden;
            grid-template-rows: auto minmax(0, 1fr);
            width: min(24rem, calc(100vw - var(--space-32)));
            max-width: 100%;
            padding: var(--space-16);
            padding-bottom: calc(var(--space-16) + env(safe-area-inset-bottom, 0rem));
            border-left: var(--border-width-hairline) solid var(--color-ink-alpha-08);
            background: var(--color-dropdown-bg);
            color: var(--color-text);
            box-shadow: none;
            transform: translateX(105%);
            transition: transform .24s ease;
        }
    }

    .mobile-drawer.is-open .mobile-drawer__panel:not([hidden]) {

        @media (max-width: 1200px) {
            transform: translateX(0);
        }
    }

    .mobile-drawer__panel--submenu {

        @media (max-width: 1200px) {
            z-index: 2;
        }
    }

    .mobile-drawer__header {

        @media (max-width: 1200px) {
            display: grid;
            grid-template-columns: var(--space-40) minmax(0, 1fr) var(--space-40);
            align-items: center;
            gap: var(--space-8);
            min-height: var(--space-48);
            margin-bottom: var(--space-18);
            padding-bottom: var(--space-14);
            border-bottom: var(--border-width-hairline) solid var(--color-ink-alpha-08);
        }
    }

    .mobile-drawer__title {

        @media (max-width: 1200px) {
            grid-column: 2;
            justify-self: center;
            font-size: var(--text-lg);
            line-height: var(--leading-title);
            text-align: center;
        }
    }

    .mobile-drawer__header>.mobile-drawer__title:first-child {

        @media (max-width: 1200px) {
            grid-column: 1 / 3;
            justify-self: start;
        }
    }

    .mobile-drawer__close,
    .mobile-drawer__back {

        @media (max-width: 1200px) {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: var(--space-40);
            height: var(--space-40);
            border: var(--border-width-hairline) solid var(--color-ink-alpha-08);
            border-radius: var(--radius-round);
            background: var(--color-control-bg);
            color: var(--color-text);
            transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
        }
    }

    .mobile-drawer__close {

        @media (max-width: 1200px) {
            grid-column: 3;
        }
    }

    .mobile-drawer__close:hover,
    .mobile-drawer__close:focus-visible,
    .mobile-drawer__back:hover,
    .mobile-drawer__back:focus-visible {

        @media (max-width: 1200px) {
            border-color: var(--color-ink-alpha-12);
            outline: none;
            background: var(--color-dropdown-bg);
            transform: translateY(-0.0625rem);
        }
    }

    .mobile-drawer__body {

        @media (max-width: 1200px) {
            display: flex;
            overflow-y: auto;
            overscroll-behavior: contain;
            -webkit-overflow-scrolling: touch;
            flex-direction: column;
            gap: var(--space-10);
            min-height: 0;
            padding-bottom: var(--space-16);
        }
    }

    .mobile-drawer__item {

        @media (max-width: 1200px) {
            display: grid;
            grid-template-columns: minmax(0, 1fr);
            align-items: center;
            gap: var(--space-12);
            width: 100%;
            min-height: 3.25rem;
            padding: var(--space-10) var(--space-14);
            border: var(--border-width-hairline) solid var(--color-ink-alpha-08);
            border-radius: var(--radius-corner);
            background: var(--color-dropdown-bg);
            color: var(--color-text);
            font: inherit;
            text-align: left;
            appearance: none;
            cursor: pointer;
            box-shadow: 0 0.25rem 1rem color-mix(in oklch, var(--color-black) 4%, transparent);
            transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease, transform .18s ease;
        }
    }

    .mobile-drawer__item--icon {

        @media (max-width: 1200px) {
            grid-template-columns: var(--space-40) minmax(0, 1fr);
        }
    }

    .mobile-drawer__item--submenu {

        @media (max-width: 1200px) {
            grid-template-columns: minmax(0, 1fr) var(--space-24);
        }
    }

    .mobile-drawer__item--icon.mobile-drawer__item--submenu {

        @media (max-width: 1200px) {
            grid-template-columns: var(--space-40) minmax(0, 1fr) var(--space-24);
        }
    }

    .mobile-drawer__item--news {

        @media (max-width: 1200px) {
            color: var(--color-content-news);
        }
    }

    .mobile-drawer__item--reviews {

        @media (max-width: 1200px) {
            color: var(--color-content-review);
        }
    }

    .mobile-drawer__item--features {

        @media (max-width: 1200px) {
            color: var(--color-content-article);
        }
    }

    .mobile-drawer__item--videos {

        @media (max-width: 1200px) {
            color: var(--color-content-video);
        }
    }

    .mobile-drawer__item:not(.mobile-drawer__item--submenu) .mobile-drawer__chevron {

        @media (max-width: 1200px) {
            display: none;
        }
    }

    .mobile-drawer__item:hover,
    .mobile-drawer__item:focus-visible {

        @media (max-width: 1200px) {
            border-color: var(--color-ink-alpha-12);
            outline: none;
            background: var(--color-control-bg);
            color: var(--color-dropdown-text);
            box-shadow: 0 0.5rem 1.25rem var(--color-black-alpha-08);
            transform: translateY(-0.0625rem);
        }
    }

    .mobile-drawer__icon {

        @media (max-width: 1200px) {
            position: relative;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: var(--color-brand-primary);
        }
    }


    .mobile-drawer__item:hover .mobile-drawer__icon,
    .mobile-drawer__item:focus-visible .mobile-drawer__icon {

        @media (max-width: 1200px) {
            color: var(--color-brand-primary);
        }
    }

    :root[data-theme="dark"] .mobile-drawer__item {

        @media (max-width: 1200px) {
            border-color: rgb(255 255 255 / 0.12);
            background: color-mix(in oklch, var(--color-control-bg) 88%, var(--color-white) 4%);
            color: var(--color-white);
            box-shadow: inset 0 0 0 var(--border-width-hairline) rgb(255 255 255 / 0.035);
        }
    }

    :root[data-theme="dark"] .mobile-drawer__item:hover,
    :root[data-theme="dark"] .mobile-drawer__item:focus-visible {

        @media (max-width: 1200px) {
            border-color: rgb(255 255 255 / 0.2);
            background: color-mix(in oklch, var(--color-bg-surface-alt) 78%, var(--color-white) 5%);
            color: var(--color-white);
            box-shadow: inset 0 0 0 var(--border-width-hairline) rgb(255 255 255 / 0.06);
        }
    }

    .mobile-drawer__icon .svg-sprite,
    .mobile-drawer__chevron .svg-sprite,
    .mobile-drawer__close .svg-sprite,
    .mobile-drawer__back .svg-sprite {

        @media (max-width: 1200px) {
            position: static;
            display: block;
            width: var(--space-18);
            height: var(--space-18);
            fill: currentColor;
        }
    }

    .mobile-drawer__label {

        @media (max-width: 1200px) {
            min-width: 0;
            font-weight: var(--font-weight-bold);
            line-height: var(--leading-title);
        }
    }

    .mobile-drawer__chevron {

        @media (max-width: 1200px) {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            justify-self: end;
            width: var(--space-24);
            height: var(--space-24);
            font-size: var(--text-2xl);
            line-height: var(--leading-none);
        }
    }

    .mobile-drawer__section-title {

        @media (max-width: 1200px) {
            margin: var(--space-18) 0 var(--space-4);
            color: var(--color-text-muted);
            font-size: var(--text-xs);
            font-weight: var(--font-weight-bold);
            letter-spacing: 0;
            text-transform: uppercase;
        }
    }




    .mobile-drawer-search {

        @media (max-width: 1200px) {
            width: 100%;
        }
    }

    .mobile-drawer-search__row {

        @media (max-width: 1200px) {
            display: grid;
            grid-template-columns: minmax(var(--space-96), auto) minmax(0, 1fr) var(--space-48);
            align-items: stretch;
            gap: var(--space-8);
            width: 100%
        }

        @media (max-width: 576px) {
            grid-template-columns: minmax(0, 1fr) var(--space-48);
        }
    }

    .mobile-drawer-search__toggle,
    .mobile-drawer-search__field,
    .mobile-drawer-search__submit {

        @media (max-width: 1200px) {
            min-height: var(--space-56);
            border: var(--border-width-hairline) solid var(--color-border);
            border-radius: var(--radius-corner);
            background: var(--color-bg-surface-alt);
            color: var(--color-text);
        }
    }

    .mobile-drawer-search__toggle {

        @media (max-width: 1200px) {
            position: relative;
            display: inline-flex;
            align-items: center;
            padding-inline: var(--space-12);
            font-weight: var(--font-weight-bold);
            white-space: nowrap;
            cursor: pointer
        }

        @media (max-width: 576px) {
            grid-column: 1 / -1;
        }
    }

    .mobile-drawer-search__toggle .angle-down,
    .mobile-drawer-search__toggle .angle-up {

        @media (max-width: 1200px) {
            display: inline-flex;
            align-items: center;
        }
    }

    .mobile-drawer-search__toggle .angle-down::after,
    .mobile-drawer-search__toggle .angle-up::after {

        @media (max-width: 1200px) {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: var(--space-16);
            height: var(--space-16);
            line-height: var(--leading-none);
        }
    }

    .mobile-drawer-search__toggle .angle-down::after {

        @media (max-width: 1200px) {
            margin-left: var(--space-4);
            padding: 0;
        }
    }

    .mobile-drawer-search__toggle .angle-up::after {

        @media (max-width: 1200px) {
            padding: 0 0 0 var(--space-6);
        }
    }

    .mobile-drawer-search__menu:not([hidden]) {

        @media (max-width: 1200px) {
            top: calc(100% + var(--space-6));
            z-index: 3;
            gap: var(--space-16);
            min-width: 100%;
            padding: var(--space-16);
            border-radius: var(--radius-corner);
        }
    }

    .mobile-drawer-search__menu div {

        @media (max-width: 1200px) {
            padding-block: var(--space-6);
            line-height: var(--leading-snug);
        }
    }

    .mobile-drawer-search__field {

        @media (max-width: 1200px) {
            display: grid;
            grid-template-columns: var(--space-24) minmax(0, 1fr) var(--space-32);
            align-items: center;
            gap: var(--space-8);
            padding-inline: var(--space-14);
        }
    }

    .mobile-drawer-search__field:focus-within {

        @media (max-width: 1200px) {
            background: var(--color-bg-surface-alt);
        }
    }

    .mobile-drawer-search__field input {

        @media (max-width: 1200px) {
            width: 100%;
            min-width: 0;
            background: transparent !important;
            background-color: transparent !important;
            background-image: none !important;
            color: var(--color-text) !important;
            -webkit-text-fill-color: var(--color-text) !important;
            appearance: none;
            -webkit-appearance: none;
            box-shadow: none !important;
            all: unset;
        }
    }

    .mobile-drawer-search__field input::-webkit-search-cancel-button,
    .mobile-drawer-search__field input::-webkit-search-decoration {

        @media (max-width: 1200px) {
            display: none;
            -webkit-appearance: none;
        }
    }

    .mobile-drawer-search__field .search-clear-button {

        @media (max-width: 1200px) {
            position: static;
            justify-self: end;
            width: var(--space-32);
            height: var(--space-32);
        }
    }

    .mobile-drawer-search__field input:focus,
    .mobile-drawer-search__field input:active {

        @media (max-width: 1200px) {
            outline: 0;
            background: transparent !important;
            background-color: transparent !important;
            background-image: none !important;
            color: var(--color-text) !important;
            -webkit-text-fill-color: var(--color-text) !important;
            box-shadow: none !important;
        }
    }

    #mobile-search-input,
    #mobile-search-input:focus,
    #mobile-search-input:active {

        @media (max-width: 1200px) {
            border: 0 !important;
            border-radius: 0 !important;
            outline: 0 !important;
            background: transparent !important;
            background-color: transparent !important;
            background-image: none !important;
            appearance: none !important;
            -webkit-appearance: none !important;
            box-shadow: 0 0 0 var(--space-40) var(--color-bg-surface-alt) inset !important;
        }
    }

    .mobile-drawer-search__field input:-webkit-autofill,
    .mobile-drawer-search__field input:-webkit-autofill:hover,
    .mobile-drawer-search__field input:-webkit-autofill:focus {

        @media (max-width: 1200px) {
            -webkit-text-fill-color: var(--color-text) !important;
            box-shadow: 0 0 0 var(--space-40) var(--color-bg-surface-alt) inset !important;
        }
    }

    .mobile-drawer-search__field .svg-sprite,
    .mobile-drawer-search__submit .svg-sprite {

        @media (max-width: 1200px) {
            position: static;
            display: block;
            width: var(--space-18);
            height: var(--space-18);
            fill: currentColor;
        }
    }

    .mobile-drawer-search__submit {

        @media (max-width: 1200px) {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            color: var(--color-brand-primary);
            appearance: none;
            cursor: pointer;
        }
    }

    .mobile-drawer-search__submit:hover,
    .mobile-drawer-search__submit:focus-visible {

        @media (max-width: 1200px) {
            background: var(--color-brand-primary);
            color: var(--color-dropdown-text);
        }
    }

    .site-header-mobile,
    .mobile-drawer {

        @media (min-width: 1200px) {
            display: none !important;
        }
    }

    .mobile-drawer__backdrop,
    .mobile-drawer__panel {

        @media (prefers-reduced-motion: reduce) {
            transition: none;
        }
    }

    /* Mobile header helpers (moved from core in step 23) */
    .navigation-switch {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .js-header-navigation-mobile-button,
    .js-header-search-mobile-button {
        display: block;
        width: 1.05rem;
        color: var(--color-text-inverse);

        @media (min-width: 1200px) {
            display: none;
        }
    }

    .js-header-navigation-mobile-button.sluiten,
    .js-header-search-mobile-button.sluiten {
        color: var(--color-ui-contrast);
    }

    .js-header-navigation-mobile-button {
        position: relative;
        margin-left: var(--space-4);
    }

    .js-header-search-mobile-button {
        margin-right: var(--space-4);
    }

    .header-menu__search .dropdown-search-input .search::before {
        position: absolute;
        right: 0;
        padding: var(--space-80p);
        color: var(--color-brand-primary);
    }

    .dropdown-search-input .angle-down::after,
    .sidebar-filter-rubrieken-select .angle-down::after {
        color: var(--color-control-text);
    }
}