/* Shared public shell for the presentation and privacy pages. */
html.public-shell-page {
    background: #09111f !important;
    overscroll-behavior: none;
}

body.public-shell {
    background-color: #09111f !important;
    background-image: linear-gradient(100deg,
        transparent 0%,
        transparent 34%,
        rgba(59,130,246,0.22) 44%,
        rgba(14,165,233,0.24) 49%,
        rgba(139,92,246,0.24) 54%,
        transparent 66%,
        transparent 100%);
    background-size: 330% 330%;
    background-repeat: no-repeat;
    animation: publicWaveShift 10s linear infinite;
    overflow-x: hidden;
    overscroll-behavior: none;
}

body.public-shell::before {
    position: fixed;
    inset: 0;
    content: "";
    background-image: radial-gradient(rgba(255,255,255,0.055) 1px, transparent 1px);
    background-size: 26px 26px;
    mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, black 40%, transparent 90%);
    pointer-events: none;
    z-index: 0;
}

body.public-shell > * {
    position: relative;
    z-index: 1;
}

body.public-shell > header {
    background: rgba(9,17,31,0.72) !important;
}

body.public-shell .glass {
    background: linear-gradient(135deg, rgba(255,255,255,0.10), rgba(255,255,255,0.035));
    backdrop-filter: blur(20px) saturate(130%);
    -webkit-backdrop-filter: blur(20px) saturate(130%);
    border-color: rgba(255,255,255,0.14);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), 0 28px 70px -35px rgba(0,0,0,0.70);
}

@keyframes publicWaveShift {
    0%   { background-position: -10% -10%; }
    100% { background-position: 110% 110%; }
}

@media (prefers-reduced-motion: reduce) {
    body.public-shell { animation: none; background-position: 50% 50%; }
}
