.gh-nav-dock.gh-nav-dock--docked {
    position: fixed !important;
    top: var(--gh-nav-dock-effective-top, 0px) !important;
    left: var(--gh-nav-dock-fixed-left, 0px) !important;
    width: var(--gh-nav-dock-fixed-width, auto) !important;
    z-index: var(--gh-nav-dock-z, 1000) !important;
    background-color: var(--gh-nav-dock-background-color) !important;
    box-shadow: var(--gh-nav-dock-box-shadow) !important;
    box-sizing: border-box;
    margin: 0 !important;
    opacity: 1;
    visibility: visible;
    will-change: opacity;
    transition-property: opacity, background-color, box-shadow, visibility;
    transition-duration: var(--gh-nav-dock-duration, 200ms), var(--gh-nav-dock-duration, 200ms), var(--gh-nav-dock-duration, 200ms), 0ms;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1), cubic-bezier(0.4, 0, 0.2, 1), cubic-bezier(0.4, 0, 0.2, 1), linear;
    transition-delay: 0ms, 0ms, 0ms, 0ms;
}

/* Softens only the instant in which the element becomes fixed.
 * No slide, no scale and no visible travel. */
.gh-nav-dock.gh-nav-dock--docked.gh-nav-dock--entering {
    opacity: 0.97;
}

/* Hide-on-scroll is a pure fade. Moving the whole header to a negative top
 * made the interaction read as a layout bug rather than a transition. */
.gh-nav-dock.gh-nav-dock--docked.gh-nav-dock--hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition-delay: 0ms, 0ms, 0ms, var(--gh-nav-dock-duration, 200ms);
}

.gh-nav-dock-placeholder {
    display: none;
    box-sizing: border-box;
    visibility: hidden;
    pointer-events: none;
    user-select: none;
}

@media (prefers-reduced-motion: reduce) {
    .gh-nav-dock.gh-nav-dock--docked {
        transition-duration: 0ms;
    }
}
