/* Astronomy page: the content sits on a night sky. The stars and shooting
   stars are drawn by js/starfield.js on a fixed canvas behind the
   sections, which are made see-through here. Header and footer keep the
   site's look. */
body.night-sky {
    --night-bg: #060a1f;
    --night-glow-1: rgba(48, 72, 170, 0.45);
    --night-glow-2: rgba(92, 52, 150, 0.30);
    --night-card: rgba(13, 20, 54, 0.82);
    --night-card-hover: rgba(19, 29, 74, 0.9);
    --night-line: rgba(168, 188, 255, 0.18);
    --night-heading: #ffffff;
    --night-text: #d3daf6;
    --night-muted: #aeb8df;
    --night-accent: #5fd39a;
    --night-star: #ffd98a;
    background:
        radial-gradient(ellipse 80% 50% at 75% 0%, var(--night-glow-1), transparent 70%),
        radial-gradient(ellipse 60% 45% at 0% 85%, var(--night-glow-2), transparent 70%),
        var(--night-bg);
    background-attachment: fixed;
    color: var(--night-text);
}

.night-sky__canvas {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
}

/* content above the sky; the header keeps its own z-index */
body.night-sky > section,
body.night-sky > footer {
    position: relative;
    z-index: 1;
}

body.night-sky .program-intro,
body.night-sky .program-programs,
body.night-sky .program-features,
body.night-sky .cta {
    background: transparent;
}

body.night-sky .program-intro::before,
body.night-sky .program-programs::before,
body.night-sky .program-features::before {
    display: none;
}

/* Page header: a faint Milky Way band instead of the green gradient */
body.night-sky .page-header {
    background: transparent;
    padding: 110px 0 90px;
    overflow: visible;
    isolation: isolate;
}

body.night-sky .page-header::before {
    content: '';
    position: absolute;
    inset: 0 0 -160px;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(115deg, transparent 28%, rgba(150, 140, 255, 0.10) 44%, rgba(140, 190, 255, 0.14) 52%, rgba(150, 140, 255, 0.08) 60%, transparent 74%);
    -webkit-mask-image: linear-gradient(to bottom, #000 45%, transparent);
    mask-image: linear-gradient(to bottom, #000 45%, transparent);
}

body.night-sky .page-header::after {
    display: none;
}

body.night-sky .page-header h1 {
    text-shadow: 0 0 24px rgba(140, 180, 255, 0.45);
}

body.night-sky .page-header p {
    color: var(--night-text);
}

/* Headings and body text */
body.night-sky .section-title,
body.night-sky .program-text h2 {
    color: var(--night-heading);
}

body.night-sky .program-text p {
    color: var(--night-text);
}

body.night-sky .image-plate--night {
    border: 1px solid var(--night-line);
    box-shadow: 0 0 40px rgba(90, 130, 255, 0.18);
}

/* Activity cards */
body.night-sky .program-card {
    background-color: var(--night-card);
    border: 1px solid var(--night-line);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

body.night-sky .program-card:hover {
    background-color: var(--night-card-hover);
    border-color: var(--night-accent);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45), 0 0 24px rgba(95, 211, 154, 0.15);
}

body.night-sky .program-content h3 {
    color: var(--night-accent);
}

body.night-sky .program-content p {
    color: var(--night-text);
}

body.night-sky .program-details {
    background-color: rgba(255, 255, 255, 0.05);
    border-top-color: var(--night-line);
    box-shadow: none;
}

body.night-sky .program-details li {
    color: var(--night-text);
}

/* Feature cards */
body.night-sky .feature-card {
    background-color: var(--night-card);
    border: 1px solid var(--night-line);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

body.night-sky .feature-card .icon {
    color: var(--night-star);
    text-shadow: 0 0 18px rgba(255, 217, 138, 0.45);
}

body.night-sky .feature-card h3 {
    color: var(--night-heading);
}

body.night-sky .feature-card p {
    color: var(--night-muted);
}

body.night-sky .feature-card:hover p,
body.night-sky .feature-card:hover h3 {
    color: var(--white-color);
}

body.night-sky .feature-card:hover .icon {
    color: var(--white-color);
    text-shadow: none;
}

/* Call to action: on the sky, with the button kept bright */
body.night-sky .cta {
    --cta-band: transparent;
    --cta-on-band: #ffffff;
    --cta-on-band-muted: var(--night-text);
    padding-bottom: 110px;
}

body.night-sky .cta::before {
    display: none;
}

body.night-sky .cta .btn-primary {
    background-color: var(--night-accent);
    border-color: var(--night-accent);
    color: #06281a;
}

body.night-sky .cta .btn-primary:hover {
    background-color: #ffffff;
    border-color: #ffffff;
    color: #06281a;
}
