/**
 * Portal-wide typography & contrast baseline.
 * Loaded after page tokens where possible; also patches nav/shared UI.
 */
html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    scrollbar-gutter: stable;
    overflow-anchor: none;
    margin: 0;
    padding: 0;
    background: #09090b;
    color-scheme: dark;
}

body {
    margin: 0;
    overflow-x: hidden;
    overflow-anchor: none;
    background: #09090b;
    color: #f4f4f5;
}

/* Soft-nav safety: never flash browser-default blue links / underlined junk */
a {
    color: inherit;
    text-decoration: none;
}

@supports (overflow: clip) {
    body {
        overflow-x: clip;
    }
}

:root {
    --text-gray: #a8a8b8;
    --text-muted: rgba(255, 255, 255, 0.62);
    --text-subtle: rgba(255, 255, 255, 0.5);
    --z-nav: 8000;
    --z-nav-overlay: 8100;
    --z-sticky-panel: 900;
    --portal-nav-h: 72px;
    --portal-content-max: 1480px;
    --portal-gutter: clamp(12px, 2.5vw, 40px);
}

/* html.portal-has-nav survives Turbo body swaps — avoids padding collapse jump */
html.portal-has-nav body,
body.portal-has-nav,
body:has(#portal-navbar-root) {
    padding-top: var(--portal-nav-h);
}

body.portal-nav-locked {
    overflow: hidden;
}

@media (max-width: 768px) {
    :root {
        --portal-nav-h: 64px;
    }
}

#portal-turbo-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
    z-index: 1200;
    pointer-events: none;
    opacity: 0;
    transform: scaleX(0);
    transform-origin: left center;
    background: linear-gradient(90deg, #ff003c, #ff4d79);
    transition: opacity 0.15s ease;
}

#portal-turbo-progress.is-active {
    opacity: 1;
    animation: portalTurboProgress 0.9s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes portalTurboProgress {
    0% { transform: scaleX(0); }
    20% { transform: scaleX(0.25); }
    60% { transform: scaleX(0.72); }
    100% { transform: scaleX(0.95); }
}

@media (prefers-reduced-motion: reduce) {
    #portal-turbo-progress,
    #portal-turbo-progress.is-active {
        animation: none;
        transition: none;
    }
}

html.turbo-progress-bar-disabled #portal-turbo-progress {
    display: none;
}
