/**
 * Pneuma public marketing site — minimal Material Design 3 expressive layer
 * Scoped to body.pneuma-public-md — subtle polish only; layout unchanged.
 */
body.pneuma-public-md {
    --pub-md-radius-xl: 28px;
    --pub-md-radius-lg: 20px;
    --pub-md-radius-md: 14px;
    --pub-md-radius-sm: 10px;
    --pub-md-shadow-1: 0 1px 2px rgba(15, 23, 42, 0.04), 0 6px 18px rgba(15, 23, 42, 0.06);
    --pub-md-shadow-2: 0 2px 8px rgba(15, 23, 42, 0.06), 0 16px 36px rgba(15, 23, 42, 0.08);
    --pub-md-shadow-3: 0 8px 24px rgba(15, 23, 42, 0.1), 0 24px 48px rgba(15, 23, 42, 0.06);
    --pub-md-outline: rgba(15, 23, 42, 0.08);
    --pub-md-surface-dim: #f6f8fc;
}

@media (prefers-reduced-motion: no-preference) {
    html:has(body.pneuma-public-md) {
        scroll-behavior: smooth;
    }
}

body.pneuma-public-md {
    background:
        radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, var(--accent, #3358d8) 4%, transparent) 0%, transparent 55%),
        radial-gradient(90% 60% at 0% 100%, color-mix(in srgb, var(--accent, #3358d8) 3%, #fff) 0%, transparent 50%),
        #ffffff;
}

/* ── Navigation ── */
body.pneuma-public-md .site-nav-wrap {
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(14px) saturate(1.15);
    border-bottom-color: var(--pub-md-outline);
}

body.pneuma-public-md.nav-scrolled .site-nav-wrap {
    box-shadow: var(--pub-md-shadow-1);
}

body.pneuma-public-md .brand img {
    border-radius: 12px;
    box-shadow: var(--pub-md-shadow-1);
}

body.pneuma-public-md .menu-item > a,
body.pneuma-public-md .menu-parent-link,
body.pneuma-public-md .menu-caret-btn {
    border-radius: 999px;
}

body.pneuma-public-md .mega-panel {
    border-radius: var(--pub-md-radius-lg);
    box-shadow: var(--pub-md-shadow-2);
    border-color: var(--pub-md-outline);
    overflow: hidden;
}

body.pneuma-public-md .icon-btn,
body.pneuma-public-md .mobile-menu-toggle {
    border-radius: 999px;
    box-shadow: var(--pub-md-shadow-1);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

body.pneuma-public-md .icon-btn:hover,
body.pneuma-public-md .mobile-menu-toggle:hover {
    transform: translateY(-1px);
    box-shadow: var(--pub-md-shadow-2);
}

body.pneuma-public-md .utility-links a {
    font-weight: 600;
    letter-spacing: 0.01em;
}

/* ── Hero & home banner ── */
body.pneuma-public-md .home-hero-banner,
body.pneuma-public-md .hero-shell {
    border-radius: var(--pub-md-radius-xl);
    box-shadow: var(--pub-md-shadow-3);
}

body.pneuma-public-md .hero-shell.hero-shell-involved {
    border-radius: var(--pub-md-radius-lg);
}

body.pneuma-public-md .hero-chip,
body.pneuma-public-md .pill,
body.pneuma-public-md .home-hero-kicker,
body.pneuma-public-md .home-slider-badge {
    font-weight: 700;
    letter-spacing: 0.04em;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

body.pneuma-public-md .hero-float {
    border-radius: var(--pub-md-radius-md);
    box-shadow: var(--pub-md-shadow-2);
}

body.pneuma-public-md .home-hero-content h1,
body.pneuma-public-md .hero h1 {
    letter-spacing: -0.03em;
}

/* ── Buttons (subtle pill + elevation on primary) ── */
body.pneuma-public-md .btn.primary,
body.pneuma-public-md .home-hero-content .hero-actions .btn.primary,
body.pneuma-public-md .hero-actions .btn.primary {
    border-radius: 999px;
    box-shadow: 0 6px 18px color-mix(in srgb, var(--accent, #3358d8) 28%, transparent);
}

body.pneuma-public-md .btn.primary:hover,
body.pneuma-public-md .home-hero-content .hero-actions .btn.primary:hover {
    box-shadow: 0 10px 24px color-mix(in srgb, var(--accent, #3358d8) 34%, transparent);
}

body.pneuma-public-md .btn.secondary,
body.pneuma-public-md .hero-actions .btn.secondary {
    border-radius: 999px;
}

body.pneuma-public-md .btn.secondary:hover {
    border-color: color-mix(in srgb, var(--accent, #3358d8) 24%, var(--line, #e6eaf5));
    background: color-mix(in srgb, var(--accent-soft, #eaf0ff) 40%, #fff);
}

/* ── Cards & sections ── */
body.pneuma-public-md .card,
body.pneuma-public-md .section-card-block,
body.pneuma-public-md .involved-intro-card,
body.pneuma-public-md .involved-section-card,
body.pneuma-public-md .teams-interest-card,
body.pneuma-public-md .store-feature-card,
body.pneuma-public-md .store-checkout-section-card,
body.pneuma-public-md .give-band,
body.pneuma-public-md .resource-band,
body.pneuma-public-md .legal-page-shell .card,
body.pneuma-public-md .section-card-wrap {
    border-radius: var(--pub-md-radius-lg);
    border-color: var(--pub-md-outline);
}

body.pneuma-public-md .card:hover,
body.pneuma-public-md .store-feature-card:hover {
    box-shadow: var(--pub-md-shadow-2);
}

body.pneuma-public-md .section-title h2 {
    letter-spacing: -0.025em;
}

body.pneuma-public-md .section-card-mark,
body.pneuma-public-md .involved-intro-meta-item {
    border-radius: var(--pub-md-radius-md);
}

body.pneuma-public-md .store-showcase {
    border-radius: var(--pub-md-radius-xl);
}

/* ── Forms (give, store, resources) ── */
body.pneuma-public-md .give-form-grid input,
body.pneuma-public-md .give-form-grid select,
body.pneuma-public-md .store-checkout-form input,
body.pneuma-public-md .store-checkout-form textarea,
body.pneuma-public-md .store-checkout-form select,
body.pneuma-public-md .resource-filter-field input,
body.pneuma-public-md .resource-filter-field select,
body.pneuma-public-md .global-search-input {
    border-radius: var(--pub-md-radius-md);
    border-color: var(--pub-md-outline);
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

body.pneuma-public-md .give-form-grid input:focus,
body.pneuma-public-md .give-form-grid select:focus,
body.pneuma-public-md .store-checkout-form input:focus,
body.pneuma-public-md .store-checkout-form textarea:focus,
body.pneuma-public-md .store-checkout-form select:focus,
body.pneuma-public-md .resource-filter-field input:focus,
body.pneuma-public-md .resource-filter-field select:focus,
body.pneuma-public-md .global-search-input:focus {
    border-color: color-mix(in srgb, var(--accent, #3358d8) 42%, transparent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #3358d8) 12%, transparent);
    outline: none;
}

/* ── Mobile drawer ── */
body.pneuma-public-md .mobile-drawer {
    border-top-left-radius: var(--pub-md-radius-xl);
    border-bottom-left-radius: var(--pub-md-radius-xl);
}

body.pneuma-public-md .mobile-links a {
    border-radius: var(--pub-md-radius-md);
}

/* ── Footer ── */
body.pneuma-public-md .footer-shell {
    border-radius: var(--pub-md-radius-xl);
    backdrop-filter: blur(10px);
}

body.pneuma-public-md .footer-socials a {
    border-radius: 999px;
    box-shadow: var(--pub-md-shadow-1);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

body.pneuma-public-md .footer-socials a:hover {
    transform: translateY(-2px);
    box-shadow: var(--pub-md-shadow-2);
}

body.pneuma-public-md .footer-contact-button {
    border-radius: 999px;
}

/* ── Page reveal (subtle) ── */
@media (prefers-reduced-motion: no-preference) {
    body.pneuma-public-md .page-shell,
    body.pneuma-public-md .home-hero-banner,
    body.pneuma-public-md .hero {
        animation: pubMdReveal 0.55s cubic-bezier(0.2, 0, 0, 1);
    }
}

@keyframes pubMdReveal {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

/* ── Focus visibility ── */
body.pneuma-public-md a:focus-visible,
body.pneuma-public-md button:focus-visible,
body.pneuma-public-md input:focus-visible,
body.pneuma-public-md select:focus-visible,
body.pneuma-public-md textarea:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--accent, #3358d8) 55%, transparent);
    outline-offset: 2px;
}

body.pneuma-public-md ::selection {
    background: color-mix(in srgb, var(--accent, #3358d8) 22%, #fff);
    color: #0f172a;
}
