* { outline: none !important; box-sizing: border-box; } :root { --border-radius-xs: 0.0625rem; --border-radius-sm: 0.125rem; --border-radius-md: 0.25rem; --border-radius-lg: 0.5rem; --border-radius-full: 99rem; --scrollbar-width: 0.5rem; --button-regular-height: 2.5rem; --button-small-height: 2rem; --button-tiny-height: 1.5rem; --global-header-height: 3.5rem; --global-left-sidebar-width: 20rem; --global-right-sidebar-width: 22.5rem; } html { height: 100%; overflow-y: scroll; -ms-overflow-style: scrollbar; -webkit-tap-highlight-color: transparent; scrollbar-gutter: stable; } /* Repo views fill the viewport and scroll their own content region, so the body never scrolls. Don't reserve a body scrollbar gutter there, otherwise an empty scrollbar track is shown. */ html[data-repo-view="true"] { overflow-y: auto; scrollbar-gutter: auto; } body { height: 100%; margin: 0; padding: 0; color: var(--color-text-primary); text-align: left; background-color: var(--color-surface-base); scrollbar-width: thin; scrollbar-height: thin; scrollbar-color: var(--color-border-subtle) transparent; overscroll-behavior: none; } /* Chrome/Edge/Safari scrollbar */ *::-webkit-scrollbar { width: var(--scrollbar-width); height: var(--scrollbar-width); } *::-webkit-scrollbar-track { background: transparent; } *::-webkit-scrollbar-thumb { background: transparent; border-radius: var(--border-radius-lg); } *::-webkit-scrollbar-corner { background: transparent; } *:hover::-webkit-scrollbar-thumb, body::-webkit-scrollbar-thumb { background-color: var(--color-border-subtle); } a { color: inherit; text-decoration: none; } pre { margin: 0; } .global-counter { border-radius: var(--border-radius-sm); background-color: var(--color-surface-mid); color: var(--color-text-tertiary); padding: 0 0.25rem; display: block; min-width: 1.25rem; text-align: center; } .global-spacer { width: 1px; height: 100%; background-color: var(--color-surface-mid); } .global-flex-item { display: flex; gap: 0.5rem; align-items: center; } /* Breakpoints =========== mobile 0px - 719.98px small desktop 720px - 1010.98px medium desktop 1011px - 1349.98px desktop 1350px - ∞ px */ @media (max-width: 719.98px) { body { min-width: 0; } .global-hide-on-mobile-down { display: none !important; } } @media (max-width: 1010.98px) { .global-hide-on-small-desktop-down { display: none !important; } } @media (max-width: 1349.98px) { .global-hide-on-medium-desktop-down { display: none !important; } } @media (min-width: 720px) { .global-hide-on-small-desktop-up { display: none !important; } } @media (min-width: 1011px) { .global-hide-on-medium-desktop-up { display: none !important; } } @media (min-width: 1350px) { .global-hide-on-desktop-up { display: none !important; } } /* Page content swaps instantly on client-side navigation; entrance motion is handled per-section (see marketing.css section-rise). Elements with their own view-transition-name (e.g. the marketing sidebar dot, the header logo) still animate independently via their own transition groups. */ ::view-transition-old(root), ::view-transition-new(root) { animation: none; } /* Don't let the transition snapshot intercept clicks mid-animation. */ ::view-transition { pointer-events: none; }