/* Base */
body.gb-shell {
    min-height: 100vh;
    width: 100vw;
    overflow: hidden;
    background: var(--gb-bg);
    color: var(--gb-text);
    font-family: var(--gb-font-ui);
    letter-spacing: 0;
}

.gb-shell *,
.gb-shell *::before,
.gb-shell *::after {
    box-sizing: border-box;
}

.gb-shell * {
    letter-spacing: 0;
}

.gb-shell img,
.gb-shell svg {
    flex-shrink: 0;
}

.gb-shell button,
.gb-shell input,
.gb-shell textarea,
.gb-shell select {
    font: inherit;
}

.gb-shell button,
.gb-shell a,
.gb-shell input,
.gb-shell textarea,
.gb-shell select {
    transition-property: background-color, border-color, color, opacity;
    transition-duration: var(--gb-ease);
}

.gb-shell button {
    transform: none;
}

.gb-shell button:hover,
.gb-shell a:hover {
    transform: none;
}

.gb-shell :focus {
    outline: none;
}

.gb-shell :focus-visible {
    outline: 2px solid rgba(166, 184, 255, 0.78);
    outline-offset: 2px;
}

.gb-shell .hidden {
    display: none;
}

.gb-shell .ambient-shell {
    position: fixed;
    inset: auto 0 0;
    height: 34vh;
    pointer-events: none;
    background:
        radial-gradient(60% 120% at 18% 100%, rgba(255, 216, 107, 0.18), transparent 70%),
        radial-gradient(70% 140% at 82% 100%, rgba(155, 124, 255, 0.24), transparent 72%),
        radial-gradient(34% 92% at 52% 100%, rgba(124, 255, 178, 0.08), transparent 78%);
    opacity: 0.92;
    z-index: 0;
}

.gb-shell ::selection {
    background: rgba(170, 149, 255, 0.33);
    color: var(--gb-text);
}

.gb-shell ::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.gb-shell ::-webkit-scrollbar-track {
    background: transparent;
}

.gb-shell ::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.14);
    border-radius: var(--gb-radius-pill);
}
