.portal-stage {
    position: relative;
    overflow: hidden;
    width: 100%;
    min-height: calc(100vh - var(--site-header-min-height, 88px));
    background: #0b1120;
}

.portal-panel {
    width: 100%;
    min-height: calc(100vh - var(--site-header-min-height, 88px));
}

.portal-panel.is-exiting {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1;
    pointer-events: none;
}

.portal-panel.is-entering {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2;
}

.portal-panel.exit-left {
    animation: portalExitLeft 0.48s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.portal-panel.exit-right {
    animation: portalExitRight 0.48s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.portal-panel.from-right {
    transform: translateX(100%);
}

.portal-panel.from-left {
    transform: translateX(-100%);
}

.portal-panel.enter-active {
    transform: translateX(0);
    transition: transform 0.48s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes portalExitLeft {
    from { transform: translateX(0); }
    to { transform: translateX(-100%); }
}

@keyframes portalExitRight {
    from { transform: translateX(0); }
    to { transform: translateX(100%); }
}

body.portal-switching {
    overflow-x: hidden;
}

.ent-portal-shell {
    min-height: calc(100vh - var(--site-header-min-height, 88px));
}

.ref-portal-shell {
    min-height: calc(100vh - var(--site-header-min-height, 88px));
    background: #0b1120;
}

.ref-portal-shell.ref-theme-light {
    background: #f8fafc;
}

.portal-panel[data-portal="referral"] {
    background: #f8fafc;
}
