/* ============================================================================
   LUNAPUNK - "Ephemeris"
   ----------------------------------------------------------------------------
   Identity: the quiet one. Where every other family adds, this one removes.
   Almost no borders, no fills, no glow - separation comes from space alone.
   Enormous vertical rhythm, a very narrow measure, lowercase old-style display
   set light and huge. Low contrast on a deep indigo that never goes fully black.
   Axis of difference: near-zero chrome · vast rhythm · lowercase · low contrast
   ============================================================================ */

body.family-lunapunk {
    --f-bg:            #0b0b16;
    --f-bg-alt:        #0e0e1c;
    --f-bg-panel:      #121222;
    --f-bg-deep:       #070710;

    --f-text:          #a7a7c0;
    --f-text-dim:      #6a6a86;
    --f-head:          #e6e3f2;

    --f-accent:        #c9bfe8;   /* moon violet */
    --f-accent-2:      #e0d8f5;
    --f-accent-ink:    #0b0b16;
    --f-second:        #8fb6ff;   /* cold starlight */
    --f-second-2:      #b4d0ff;
    --f-alert:         #d9a7c7;

    --f-line:          rgba(201, 191, 232, 0.16);
    --f-line-soft:     rgba(201, 191, 232, 0.07);
    --f-rule-w:        1px;

    --f-display:       'Cormorant Garamond', Georgia, serif;
    --f-body:          'Space Grotesk', system-ui, sans-serif;
    --f-mono:          'Space Grotesk', system-ui, sans-serif;

    --f-display-w:     300;
    --f-display-track: 0em;
    --f-display-case:  lowercase;      /* nothing shouts here */

    --f-h1-size:       clamp(3.4em, 12vw, 10em);
    --f-h2-size:       clamp(2.2em, 4.4vw, 3.6em);
    --f-hero-track:    0.01em;
    --f-hero-justify:  center;
    --f-hero-text:     center;

    --f-body-size:     0.98em;
    --f-leading:       2.05;          /* very open */
    --f-measure:       54ch;          /* very narrow */

    --f-tag-font:      'Space Grotesk', system-ui, sans-serif;
    --f-tag-size:      0.7em;
    --f-tag-track:     0.5em;
    --f-tag-w:         400;
    --f-mono-track:    0.2em;

    --f-page:          980px;         /* the narrowest page in the set */
    --f-gutter:        60px;
    --f-rhythm:        168px;         /* the largest rhythm in the set */
    --f-align:         center;

    --f-r: 0px; --f-r-lg: 0px; --f-r-frame: 0px; --f-r-pill: 0px;

    --f-split:         1fr 1fr;
    --f-split-gap:     80px;
    --f-card-cols:     repeat(6, 1fr);
    --f-card-pad:      0 0 0 0;
    --f-card-gap:      64px;
    --f-tl-gutter:     90px;

    --f-glow:          none;
    --f-text-glow:     0 0 40px rgba(201, 191, 232, 0.35);
    --f-panel-shadow:  none;
    --f-lift:          0px;

    --f-img-filter:        contrast(0.92) saturate(0.55) brightness(0.72) hue-rotate(200deg);
    --f-img-filter-hover:  contrast(1) saturate(0.75) brightness(0.85) hue-rotate(200deg);
    --f-img-scale:         1.02;

    --f-vignette:      radial-gradient(ellipse at 50% 38%, transparent 40%, rgba(0,0,0,0.66) 100%);
    /* a faint halo and dust - nothing structural */
    --f-veil:
        radial-gradient(ellipse 60% 40% at 50% 22%, rgba(201, 191, 232, 0.10), transparent 70%),
        radial-gradient(circle at 24% 64%, rgba(143, 182, 255, 0.07), transparent 46%);
    --f-veil-blend:    screen;
    --f-veil-opacity:  1;

    font-family: var(--f-body);
}

body.family-lunapunk #hero-image-wrapper::after {
    content: "";
    position: absolute; inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(11,11,22,0.62) 0%, rgba(11,11,22,0.25) 40%, var(--f-bg) 100%);
    z-index: 2;
}
body.family-lunapunk .hero-title span { text-shadow: 0 0 60px rgba(201,191,232,0.45); }
body.family-lunapunk .hero-subtitle span { color: var(--f-second) !important; letter-spacing: 0.62em; opacity: 0.75; }
body.family-lunapunk .lp-hero-badge {
    border: none;
    background: none;
    color: var(--f-text-dim);
    letter-spacing: 0.6em;
    padding: 0;
    font-size: 0.7em;
}
body.family-lunapunk .lp-hero-meta { color: var(--f-text-dim); opacity: 0.8; }
body.family-lunapunk .lp-hero-meta b { color: var(--f-accent); }

/* - section tag: a whispered line - */
body.family-lunapunk .lp-section-tag {
    color: var(--f-text-dim);
    border: none;
    padding: 0;
    margin-bottom: 44px;
    opacity: 0.75;
}
body.family-lunapunk .lp-h2 { margin-bottom: 0.7em; }
body.family-lunapunk .lp-section-lede,
body.family-lunapunk .lp-lede {
    margin-inline: auto;
    border: none;
    padding: 0;
    opacity: 0.9;
}

/* - manifesto: stacked, huge, soft - */
body.family-lunapunk .lp-manifesto-grid { flex-direction: column; align-items: center; gap: 0; line-height: 0.95; }
body.family-lunapunk .lp-manifesto-word { text-shadow: 0 0 70px rgba(201,191,232,0.45); }
body.family-lunapunk .lp-manifesto-word.lp-glow { color: var(--f-accent); text-shadow: 0 0 80px rgba(201,191,232,0.75); }
body.family-lunapunk .lp-manifesto-amp { color: var(--f-second); font-size: 0.3em; opacity: 0.7; }

/* - plates: no frame at all, just a faded edge - */
body.family-lunapunk .lp-img-frame {
    border: none;
    box-shadow: none;
    -webkit-mask-image: radial-gradient(ellipse at center, #000 58%, transparent 100%);
            mask-image: radial-gradient(ellipse at center, #000 58%, transparent 100%);
}
body.family-lunapunk .lp-img-frame.lp-img-frame-violet { border: none; }
body.family-lunapunk .lp-img-frame figcaption {
    position: static;
    background: none;
    border: none;
    padding: 14px 0 0;
    text-align: center;
    color: var(--f-text-dim);
    letter-spacing: 0.4em;
}
body.family-lunapunk .lp-data-stack { justify-content: center; gap: 30px; }
body.family-lunapunk .lp-data-pill {
    border: none;
    padding: 0;
    color: var(--f-text-dim);
    font-size: 0.74em;
    letter-spacing: 0.26em;
}
body.family-lunapunk .lp-data-pill b { color: var(--f-accent); }
body.family-lunapunk .lp-callout {
    background: none;
    border: none;
    border-top: 1px solid var(--f-line);
    border-bottom: 1px solid var(--f-line);
    padding: 30px 0;
    text-align: center;
    font-style: italic;
}
body.family-lunapunk .lp-callout-tag { color: var(--f-accent); font-style: normal; }

/* - chronology: no rail, phases floating - */
body.family-lunapunk .lp-timeline::before { background: var(--f-line); width: 1px; }
body.family-lunapunk .lp-timeline li { padding-bottom: 74px; }
body.family-lunapunk .lp-timeline li::before {
    border-radius: 50%;
    width: 14px; height: 14px;
    background: var(--f-accent);
    border: none;
    left: calc(var(--f-tl-gutter) - 6px);
    top: 15px;
    /* a crescent: the dot is eclipsed by the page ground */
    box-shadow: inset -5px 0 0 var(--f-bg), 0 0 24px rgba(201,191,232,0.55);
}
body.family-lunapunk .lp-tl-highlight::before { box-shadow: 0 0 30px rgba(201,191,232,0.85) !important; }
body.family-lunapunk .lp-tl-year {
    font-family: var(--f-display);
    font-size: 1.9em;
    font-weight: 300;
    color: var(--f-accent);
    letter-spacing: 0;
}
body.family-lunapunk .lp-tl-body h4 { font-family: var(--f-display); font-size: 1.6em; font-weight: 300; text-transform: lowercase; }

/* - pillars: no boxes. just entries separated by air. - */
body.family-lunapunk .lp-cards-grid { grid-template-columns: 1fr; gap: 78px; }
body.family-lunapunk .lp-card {
    grid-column: 1 / -1 !important;
    background: none;
    border: none;
    padding: 0;
    max-width: 58ch;
    margin-inline: auto;
    text-align: center;
}
body.family-lunapunk .lp-card:hover { transform: none; box-shadow: none; }
body.family-lunapunk .lp-card::before { content: none; }
body.family-lunapunk .lp-card-num {
    font-family: var(--f-display);
    font-size: 2.6em;
    font-weight: 300;
    color: var(--f-accent);
    letter-spacing: 0;
    opacity: 0.6;
    margin-bottom: 4px;
}
body.family-lunapunk .lp-card h3 { font-family: var(--f-display); font-size: 2em; font-weight: 300; text-transform: lowercase; }
body.family-lunapunk .lp-card-tag { border-top: none; color: var(--f-text-dim); letter-spacing: 0.4em; }

body.family-lunapunk .lp-pullquote {
    background: none;
    border-top: 1px solid var(--f-line);
    border-bottom: 1px solid var(--f-line);
    padding-block: 150px;
}
body.family-lunapunk .lp-pullquote-marks { display: none; }
body.family-lunapunk .lp-pullquote blockquote { font-size: clamp(1.7em, 4vw, 2.8em); line-height: 1.45; }
body.family-lunapunk .lp-pullquote-accent { color: var(--f-accent); }
body.family-lunapunk .lp-pullquote cite { color: var(--f-text-dim); letter-spacing: 0.45em; }

body.family-lunapunk .lp-pills { justify-content: center; }
body.family-lunapunk .lp-pills li { border: none; color: var(--f-text-dim); padding: 6px 4px !important; }
body.family-lunapunk .lp-gallery { gap: 34px; }
body.family-lunapunk .lp-gallery figure { border: none; background: none; }
body.family-lunapunk .lp-gallery figcaption { color: var(--f-text-dim); letter-spacing: 0.34em; }

/* - architects: no cartouche, just a portrait and a column of text - */
body.family-lunapunk .lp-author {
    background: none;
    border: none;
    border-top: 1px solid var(--f-line-soft);
    padding: 64px 0;
    margin: 0;
    gap: 60px;
}
body.family-lunapunk .lp-author:hover { box-shadow: none; border-color: var(--f-line); }
body.family-lunapunk .lp-author-avatar { opacity: 0.75; }
body.family-lunapunk .lp-author h3 { font-family: var(--f-display); font-size: 2.4em; font-weight: 300; text-transform: lowercase; }
body.family-lunapunk .lp-author-handle { color: var(--f-second); letter-spacing: 0.3em; }
body.family-lunapunk .lp-author-quote {
    border-left: none;
    border-top: 1px solid var(--f-line-soft);
    background: none;
    font-style: italic;
    padding: 20px 0 0;
}

body.family-lunapunk .lp-works-cat { border-bottom: 1px solid var(--f-line-soft); letter-spacing: 0.55em; color: var(--f-text-dim) !important; }
body.family-lunapunk .lp-works-grid { gap: 44px; }
body.family-lunapunk .lp-work { background: none; border: none; }
body.family-lunapunk .lp-work:hover { transform: none; box-shadow: none; }
body.family-lunapunk .lp-work-cover { border-bottom: none; background: none; opacity: 0.85; }
body.family-lunapunk .lp-work-meta { padding: 16px 0 0; }
body.family-lunapunk .lp-work-meta h4 { font-family: var(--f-display); font-size: 1.4em; font-weight: 300; text-transform: lowercase; }
body.family-lunapunk .lp-work-byline { color: var(--f-second); letter-spacing: 0.24em; }

/* --- SIGNATURE: the ephemeris ---
   A lunar phase table: eight phase discs above a column of observations. */
body.family-lunapunk .lp-ephemeris {
    background: none;
    border: none;
    border-top: 1px solid var(--f-line);
    border-bottom: 1px solid var(--f-line);
    box-shadow: none;
    margin-top: 60px;
}
body.family-lunapunk .lp-ephemeris-bar {
    border-bottom: 1px solid var(--f-line-soft);
    padding: 22px 0;
    justify-content: center;
    gap: 14px;
}
/* each lamp becomes a moon phase */
body.family-lunapunk .lp-ephemeris-dot {
    width: 15px; height: 15px;
    border-radius: 50%;
    background: var(--f-accent);
    box-shadow: none;
}
body.family-lunapunk .lp-ephemeris-dot:nth-child(1) { box-shadow: inset -15px 0 0 var(--f-bg); }   /* new */
body.family-lunapunk .lp-ephemeris-dot:nth-child(2) { box-shadow: inset -7px 0 0 var(--f-bg); }    /* first quarter */
body.family-lunapunk .lp-ephemeris-dot:nth-child(3) { box-shadow: 0 0 20px rgba(201,191,232,0.7); }/* full */
body.family-lunapunk .lp-ephemeris-title {
    margin-left: 16px;
    font-family: var(--f-display);
    font-size: 1.2em;
    text-transform: lowercase;
    letter-spacing: 0.08em;
    color: var(--f-accent);
}
body.family-lunapunk .lp-ephemeris-body {
    padding: 40px 0;
    max-width: 58ch;
    margin-inline: auto;
    font-size: 1em;
}
body.family-lunapunk .lp-line { padding: 6px 0; }
body.family-lunapunk .lp-prompt { color: var(--f-second); letter-spacing: 0.24em; font-size: 0.8em; }
body.family-lunapunk .lp-out { color: var(--f-text-dim); padding-left: 0; }
body.family-lunapunk .lp-cursor { color: var(--f-accent); }

body.family-lunapunk .lp-compare { gap: 0; }
body.family-lunapunk .lp-compare-row {
    background: none;
    border-top: 1px solid var(--f-line-soft);
    border-bottom: none;
    padding: 34px 0;
}
body.family-lunapunk .lp-compare-arrow { color: var(--f-accent); opacity: 0.6; }
body.family-lunapunk .lp-tag-fic,
body.family-lunapunk .lp-tag-real { border: none; padding: 3px 0; letter-spacing: 0.32em; }

body.family-lunapunk .lp-questions li {
    background: none;
    border: none;
    border-bottom: 1px solid var(--f-line-soft);
    font-family: var(--f-display);
    font-size: 1.7em;
    font-weight: 300;
    text-transform: lowercase;
    color: var(--f-accent);
    text-align: center;
    padding: 34px 0 !important;
}
body.family-lunapunk .lp-questions li::before { content: "" !important; }

body.family-lunapunk .lp-banner {
    background: none;
    border-top: 1px solid var(--f-line);
    border-bottom: 1px solid var(--f-line);
    padding-block: 150px 120px;
}
body.family-lunapunk .lp-banner-line-1 { text-shadow: 0 0 60px rgba(201,191,232,0.4); }
body.family-lunapunk .lp-banner-line-2 { color: var(--f-accent); text-shadow: 0 0 70px rgba(201,191,232,0.6); }
body.family-lunapunk .lp-banner-line-3 { color: var(--f-text-dim); letter-spacing: 0.5em; }
body.family-lunapunk .lp-banner-footer { color: var(--f-text-dim); letter-spacing: 0.45em; }

body.family-lunapunk #clapat-logo .black-logo { filter: invert(1) brightness(0.9) saturate(0.4); }
body.family-lunapunk ::-webkit-scrollbar-thumb { background: var(--f-line); }

@media (max-width: 900px) {
    body.family-lunapunk { --f-rhythm: 92px; --f-card-gap: 52px; --f-tl-gutter: 56px; }
    body.family-lunapunk .lp-author { padding: 40px 0; gap: 26px; }
}
