/* Masjid and Madrassah Revival */

:root {
    --revival-black: #050504;
    --revival-charcoal: #12100b;
    --revival-ink: #15120d;
    --revival-gold: #f2a900;
    --revival-gold-bright: #ffc21c;
    --revival-gold-pale: #ffd76a;
    --revival-paper: #fffdf7;
    --revival-paper-deep: #f4f0e6;
    --revival-muted: #a69d8c;
    --revival-line: rgba(255, 194, 28, 0.34);
    --revival-side: 5vw;
}

html {
    background: var(--revival-black);
}

body.revival-page {
    margin: 0;
    overflow-x: clip;
    background: var(--revival-black);
    color: var(--revival-paper);
    font-family: "DM Sans", sans-serif;
}

.revival-page *,
.revival-page *::before,
.revival-page *::after {
    box-sizing: border-box;
}

.revival-page .scroll-progress {
    background: rgba(242, 169, 0, 0.14);
}

.revival-page .scroll-progress-bar {
    background: var(--revival-gold-bright);
}

.revival-shell {
    width: min(100% - (var(--revival-side) * 2), 1440px);
    margin-inline: auto;
}

.revival-navbar {
    border-color: rgba(255, 179, 0, 0.3);
    background: rgba(7, 6, 4, 0.9);
    color: var(--revival-paper);
}

.revival-navbar .logo,
.revival-navbar .nav-links a[aria-current="page"],
.revival-navbar .nav-links a:hover {
    color: var(--revival-gold-pale);
}

.revival-navbar .nav-links a[aria-current="page"]::after,
.revival-navbar .nav-links a:hover::after {
    background: var(--revival-gold-bright);
}

.revival-navbar .nav-cta {
    background: var(--revival-gold-bright);
    color: var(--revival-ink) !important;
}

.revival-navbar .menu-toggle span {
    background: var(--revival-gold-pale);
}

.revival-hero {
    position: relative;
    min-height: 100svh;
    margin-top: -96px;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 76% 48%, rgba(242, 169, 0, 0.14), transparent 28%),
        linear-gradient(135deg, #050504 0%, #090703 62%, #160d02 100%);
}

.revival-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0.13;
    background-image: repeating-linear-gradient(90deg, rgba(255, 194, 28, 0.16) 0 1px, transparent 1px 8.333%);
    pointer-events: none;
}

.revival-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 100svh;
    padding-top: 190px;
    padding-bottom: 72px;
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, 0.92fr);
    align-items: center;
    gap: 72px;
}

.revival-hero-copy {
    position: relative;
    z-index: 2;
}

.revival-kicker,
.revival-eyebrow,
.revival-index {
    margin: 0;
    color: var(--revival-gold-bright);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
}

.revival-hero h1,
.revival-heading h2,
.revival-final-mantra h2 {
    margin: 0;
    font-family: "Bebas Neue", sans-serif;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: uppercase;
}

.revival-hero h1 {
    display: flex;
    width: min(100%, 800px);
    margin-top: 44px;
    font-size: 104px;
    line-height: 0.82;
    flex-direction: column;
    text-shadow: 0 4px 36px rgba(0, 0, 0, 0.42);
}

.revival-hero h1 span {
    display: block;
}

.revival-hero h1 .revival-gold-word,
.revival-heading h2 em {
    color: var(--revival-gold-bright);
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-style: italic;
    text-transform: uppercase;
}

.revival-hero h1 .revival-gold-word {
    font-size: 0.72em;
    line-height: 1.05;
}

.revival-hero-bottom {
    display: grid;
    margin-top: 42px;
    padding-top: 26px;
    border-top: 1px solid rgba(234, 211, 153, 0.45);
    grid-template-columns: minmax(0, 600px) auto;
    align-items: end;
    justify-content: space-between;
    gap: 32px;
}

.revival-hero-mark {
    position: relative;
    width: min(100%, 500px);
    margin: 0 auto;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
}

.revival-hero-mark img {
    position: relative;
    z-index: 2;
    width: 86%;
    aspect-ratio: 1;
    border-radius: 50%;
    object-fit: cover;
    filter: brightness(1.1) saturate(1.12) drop-shadow(0 0 46px rgba(242, 169, 0, 0.5));
}

.revival-mark-ring {
    position: absolute;
    border: 1px solid rgba(255, 194, 28, 0.48);
    border-radius: 50%;
}

.revival-mark-ring-one { inset: 4%; }
.revival-mark-ring-two { inset: -4%; border-style: dashed; opacity: 0.5; }

.revival-hero-bottom strong {
    display: block;
    margin-bottom: 10px;
    color: var(--revival-gold-pale);
    font-size: 13px;
}

.revival-hero-bottom p {
    margin: 0;
    color: rgba(243, 234, 214, 0.78);
    font-size: 19px;
    line-height: 1.55;
}

.revival-round-link {
    display: grid;
    width: 64px;
    height: 64px;
    border: 1px solid var(--revival-gold-bright);
    border-radius: 50%;
    color: var(--revival-ink);
    background: var(--revival-gold-bright);
    place-items: center;
    transition: color 180ms ease, background-color 180ms ease;
}

.revival-round-link:hover {
    color: var(--revival-gold-bright);
    background: transparent;
}

.revival-round-link iconify-icon {
    font-size: 24px;
}

.revival-marquee {
    position: relative;
    z-index: 2;
    height: 72px;
    display: flex;
    align-items: center;
    overflow: hidden;
    border-block: 1px solid rgba(23, 19, 14, 0.42);
    background: var(--revival-gold-bright);
    color: var(--revival-ink);
}

.revival-marquee-track {
    display: flex;
    width: max-content;
    animation: revival-marquee 24s linear infinite;
    will-change: transform;
}

.revival-marquee-set {
    display: flex;
    min-width: 100vw;
    height: 72px;
    padding: 0;
    align-items: center;
    justify-content: space-around;
    flex: none;
}

.revival-marquee-set i {
    display: none;
}

.revival-marquee-set span {
    display: flex;
    align-items: center;
    font-family: "Bebas Neue", sans-serif;
    font-size: 28px;
    white-space: nowrap;
}

.revival-marquee-set span::after {
    content: "◆";
    margin: 0 32px;
    font-family: sans-serif;
    font-size: 10px;
}

@keyframes revival-marquee {
    to { transform: translateX(-50%); }
}

.revival-section {
    position: relative;
    min-height: 680px;
    padding: 124px 0;
    scroll-margin-top: 112px;
    overflow: clip;
}

.revival-dark {
    background-color: var(--revival-black);
    color: var(--revival-paper);
}

.revival-charcoal {
    background-color: var(--revival-charcoal);
    color: var(--revival-paper);
}

.revival-paper {
    background-color: var(--revival-paper);
    color: var(--revival-ink);
}

.revival-gold {
    background-color: var(--revival-gold-bright);
    color: var(--revival-ink);
}

.revival-dark::before,
.revival-charcoal::before,
.revival-paper::before,
.revival-gold::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.revival-section > .revival-shell {
    position: relative;
    z-index: 1;
}

.revival-heading {
    display: grid;
    margin-bottom: 76px;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: start;
    column-gap: 24px;
}

.revival-heading .revival-index {
    grid-row: 1 / span 2;
    padding-top: 3px;
}

.revival-heading .revival-index::after {
    content: "";
    display: block;
    width: 44px;
    height: 2px;
    margin-top: 14px;
    background: currentColor;
}

.revival-heading h2 {
    max-width: 1120px;
    margin-top: 24px;
    font-size: 80px;
    line-height: 0.96;
}

.revival-dark-heading .revival-index,
.revival-dark-heading .revival-eyebrow {
    color: rgba(23, 19, 14, 0.62);
}

.revival-dark-heading h2 em {
    color: #8b5d0a;
}

.revival-copy {
    font-size: 20px;
    line-height: 1.72;
}

.revival-copy p {
    margin: 0 0 18px;
}

.revival-copy strong {
    color: var(--revival-gold-pale);
}

.revival-paper .revival-copy strong,
.revival-gold .revival-copy strong {
    color: var(--revival-ink);
}

.revival-lead,
.revival-display {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-style: italic;
    line-height: 1.18;
}

.revival-lead { font-size: 40px; }
.revival-display { font-size: 46px; }

.centers-lead {
    width: 62%;
    margin-left: auto;
    margin-bottom: 58px;
    color: var(--revival-gold-pale);
}

.center-pillars {
    display: grid;
    border-top: 1px solid var(--revival-line);
    border-left: 1px solid var(--revival-line);
    grid-template-columns: repeat(12, 1fr);
}

.center-pillars article { grid-column: span 3; }
.center-pillars article:nth-child(n + 5) { grid-column: span 4; }

.center-pillars article,
.both-grid article,
.needs-grid article,
.member-entry article {
    min-height: 184px;
    padding: 28px;
    border-right: 1px solid var(--revival-line);
    border-bottom: 1px solid var(--revival-line);
}

.center-pillars iconify-icon,
.both-grid iconify-icon,
.needs-grid iconify-icon,
.member-entry iconify-icon {
    color: var(--revival-gold-bright);
    font-size: 34px;
}

.center-pillars p,
.both-grid p,
.needs-grid p,
.member-entry p {
    margin: 42px 0 0;
    font-size: 17px;
    line-height: 1.45;
}

.centers-disconnect {
    width: 64%;
    margin: 110px 0 58px auto;
}

.routine-sequence {
    display: flex;
    border-block: 1px solid var(--revival-line);
    flex-wrap: wrap;
}

.routine-sequence p {
    margin: 0;
    padding: 20px 26px;
    border-right: 1px solid var(--revival-line);
    color: var(--revival-gold-pale);
}

.learning-gap {
    display: grid;
    margin-top: 82px;
    grid-template-columns: 1.3fr 1fr 1.3fr;
    gap: 1px;
    background: var(--revival-line);
}

.learning-gap article {
    min-height: 330px;
    padding: 38px;
    background: var(--revival-charcoal);
}

.learning-gap p,
.learning-gap strong,
.learning-gap em {
    display: block;
    margin: 0 0 22px;
    font-size: 18px;
    line-height: 1.55;
}

.learning-gap strong { color: var(--revival-gold-bright); }
.learning-gap em { font-family: "Playfair Display", serif; font-size: 26px; }

.respect-statement {
    width: 72%;
    margin: 110px 0 52px;
}

.respect-boundaries {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

.respect-boundaries p,
.respect-boundaries strong {
    margin: 0;
    padding: 22px 28px;
    border-top: 1px solid var(--revival-line);
    font-size: 17px;
}

.respect-boundaries strong { grid-column: 1 / -1; color: var(--revival-gold-pale); font-size: 22px; }

.purpose-layout,
.approach-layout,
.solution-layout,
.appeals-layout,
.members-layout,
.preparation-layout,
.local-revival-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 42px 86px;
}

.purpose-layout .revival-heading,
.approach-layout .revival-heading,
.solution-layout .revival-heading,
.appeals-layout .revival-heading,
.members-layout .revival-heading,
.preparation-layout .revival-heading,
.local-revival-layout .revival-heading {
    grid-column: 1 / -1;
}

.purpose-copy,
.approach-boundary,
.solution-copy,
.appeals-copy,
.members-copy {
    grid-column: 2;
}

.continue-track {
    display: grid;
    grid-column: 1;
    grid-row: 2 / span 2;
    align-content: start;
}

.continue-track article {
    display: grid;
    min-height: 112px;
    padding: 24px 0;
    border-top: 1px solid rgba(23, 19, 14, 0.32);
    grid-template-columns: 58px 1fr;
    gap: 18px;
}

.continue-track article span {
    color: #8b5d0a;
    font-family: "Bebas Neue", sans-serif;
    font-size: 30px;
}

.continue-track article p { margin: 5px 0 0; font-size: 18px; line-height: 1.5; }

.alongside-block {
    grid-column: 2;
    margin-top: 28px;
    padding-top: 46px;
    border-top: 4px solid var(--revival-ink);
}

.alongside-block > div {
    display: grid;
    margin: 42px 0;
    grid-template-columns: repeat(2, 1fr);
}

.alongside-block > div p {
    margin: 0;
    padding: 18px;
    border: 1px solid rgba(23, 19, 14, 0.24);
    font-size: 16px;
    line-height: 1.45;
}

.alongside-block > p:not(.revival-lead) { font-size: 19px; line-height: 1.65; }
.alongside-block > strong { display: block; margin-top: 22px; font-size: 22px; }

.problem-opening { width: 48%; margin-left: auto; }

.existing-work {
    display: grid;
    margin: 62px 0 28px;
    border-top: 1px solid rgba(23, 19, 14, 0.38);
    border-left: 1px solid rgba(23, 19, 14, 0.38);
    grid-template-columns: repeat(3, 1fr);
}

.existing-work p {
    min-height: 112px;
    margin: 0;
    padding: 30px;
    border-right: 1px solid rgba(23, 19, 14, 0.38);
    border-bottom: 1px solid rgba(23, 19, 14, 0.38);
    font-size: 18px;
}

.problem-respect { width: max-content; max-width: 100%; margin: 0 0 108px auto; font-weight: 700; }

.gap-panel {
    width: 88%;
    margin-left: auto;
    padding: 70px;
    background: var(--revival-black);
    color: var(--revival-paper);
}

.gap-panel .revival-display { margin-bottom: 42px; color: var(--revival-gold-bright); }
.gap-panel > div { display: grid; grid-template-columns: repeat(2, 1fr); }
.gap-panel > div p { margin: 0; padding: 24px; border: 1px solid var(--revival-line); font-size: 17px; line-height: 1.55; }

.structure-diagnosis {
    width: 60%;
    margin: 88px 0 0;
}

.solution-watermark,
.vision-watermark {
    position: absolute;
    top: 48%;
    left: -3%;
    color: rgba(255, 194, 28, 0.06);
    font-family: "Bebas Neue", sans-serif;
    font-size: 190px;
    line-height: 0.8;
    white-space: nowrap;
    pointer-events: none;
}

.solution-copy { padding-top: 24px; }
.both-grid { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--revival-line); border-left: 1px solid var(--revival-line); }
.solution-closing { grid-column: 2; padding: 42px; border-left: 5px solid var(--revival-gold-bright); background: rgba(255, 194, 28, 0.08); font-size: 20px; line-height: 1.6; }

.approach-boundary p,
.approach-boundary strong {
    display: block;
    margin: 0;
    padding: 19px 0;
    border-bottom: 1px solid rgba(23, 19, 14, 0.25);
    font-size: 18px;
    line-height: 1.5;
}

.approach-boundary strong { color: #8b5d0a; font-size: 24px; }
.approach-principle { grid-column: 1; grid-row: 3; align-self: center; }
.approach-pairs { display: grid; grid-column: 2; grid-row: 3; grid-template-columns: repeat(2, 1fr); }
.approach-pairs article { min-height: 170px; padding: 30px; border: 1px solid rgba(23, 19, 14, 0.28); }
.approach-pairs strong, .approach-pairs span { display: block; font-size: 18px; line-height: 1.4; }
.approach-pairs span { margin-top: 24px; color: #8b5d0a; font-family: "Playfair Display", serif; font-style: italic; }
.approach-goal { grid-column: 2; margin: 28px 0 0; font-size: 19px; line-height: 1.65; }

.process-layout,
.build-layout {
    display: grid;
    grid-template-columns: minmax(360px, 0.85fr) minmax(0, 1.15fr);
    gap: 96px;
}

.revival-sticky-heading {
    position: sticky;
    top: 132px;
    align-self: start;
}

.process-layout .revival-heading,
.build-layout .revival-heading { display: block; margin: 0; }
.process-layout .revival-index,
.build-layout .revival-index { display: block; width: 48px; margin-bottom: 36px; }
.process-layout .revival-eyebrow,
.build-layout .revival-eyebrow { margin-bottom: 20px; }
.process-layout .revival-heading h2,
.build-layout .revival-heading h2 { margin-top: 0; font-size: 66px; }
.process-layout .revival-heading h2 em,
.build-layout .revival-heading h2 em { display: block; }

@media (min-width: 821px) {
    .revival-page .process-layout > .revival-sticky-heading,
    .revival-page .build-layout > .revival-sticky-heading {
        padding: 18px 22px;
    }

    .revival-page .process-layout > .revival-sticky-heading h2,
    .revival-page .build-layout > .revival-sticky-heading h2 {
        font-size: 58px;
    }
}

.process-flow { min-width: 0; }
.process-flow > .revival-lead { margin-bottom: 58px; color: var(--revival-gold-pale); }
.process-steps { counter-reset: revival-step; border-top: 1px solid var(--revival-line); }
.process-steps article {
    display: grid;
    min-height: 135px;
    padding: 28px 30px;
    border-bottom: 1px solid var(--revival-line);
    grid-template-columns: 78px 1fr;
    align-items: start;
    gap: 24px;
}
.process-steps span { color: var(--revival-gold-bright); font-family: "Bebas Neue", sans-serif; font-size: 34px; }
.process-steps p { margin: 5px 0 0; font-size: 18px; line-height: 1.55; }
.process-goal { margin-top: 74px; padding: 48px; border: 1px solid var(--revival-line); }
.process-goal .revival-display { color: var(--revival-gold-bright); }
.one-at-time { display: grid; margin-top: 52px; grid-template-columns: repeat(4, 1fr); }
.one-at-time strong { grid-column: 1 / -1; margin-bottom: 20px; color: var(--revival-gold-pale); font-size: 20px; }
.one-at-time p { margin: 0; padding: 22px; border: 1px solid var(--revival-line); text-align: center; }

.revival-action-band {
    display: grid;
    grid-column: 1 / -1;
    margin-top: 40px;
    border-block: 1px solid rgba(23, 19, 14, 0.62);
    grid-template-columns: 1fr auto;
    align-items: center;
}
.revival-action-band > div { padding: 30px 28px; }
.revival-action-band > div span { font-size: 12px; font-weight: 700; }
.revival-action-band > div p { margin: 8px 0 0; font-family: "Playfair Display", serif; font-size: 26px; font-style: italic; }
.revival-action-band a { display: flex; min-width: 118px; min-height: 106px; padding: 0 34px; border-left: 1px solid rgba(23, 19, 14, 0.62); color: inherit; align-items: center; justify-content: center; gap: 28px; font-weight: 700; }
.revival-action-band a iconify-icon { font-size: 30px; transition: transform 180ms ease; }
.revival-action-band a:hover iconify-icon { transform: translate(5px, -5px); }

.needs-opening { width: 48%; margin: 0 0 54px auto; font-family: "Playfair Display", serif; font-size: 32px; font-style: italic; }
.needs-grid,
.member-entry { display: grid; border-top: 1px solid rgba(23, 19, 14, 0.28); border-left: 1px solid rgba(23, 19, 14, 0.28); grid-template-columns: repeat(3, 1fr); }
.needs-grid article,
.member-entry article { border-color: rgba(23, 19, 14, 0.28); }
.needs-grid iconify-icon,
.member-entry iconify-icon { color: #8b5d0a; }
.one-laptop { display: grid; width: 72%; margin: 88px 0 66px auto; padding: 38px; border: 1px solid rgba(23, 19, 14, 0.3); grid-template-columns: 62px 1fr; align-items: center; gap: 28px; }
.one-laptop iconify-icon { color: #8b5d0a; font-size: 46px; }
.one-laptop p { margin: 0; font-size: 20px; line-height: 1.6; }
.team-capabilities { display: grid; grid-template-columns: repeat(5, 1fr); }
.team-capabilities p { min-height: 180px; margin: 0; padding: 24px; border: 1px solid rgba(23, 19, 14, 0.25); font-size: 16px; line-height: 1.5; }
.noise-contrast { display: flex; margin-top: 58px; justify-content: flex-end; gap: 32px; font-size: 24px; }
.noise-contrast p, .noise-contrast strong { margin: 0; }
.noise-contrast strong { color: #8b5d0a; }

.preparation-layout .cannot-grid { grid-column: 1; }
.cannot-grid { display: grid; gap: 1px; background: var(--revival-line); }
.cannot-grid p { margin: 0; padding: 30px; background: var(--revival-charcoal); font-size: 17px; line-height: 1.55; }
.preparation-must { grid-column: 2; padding: 48px; border-left: 1px solid var(--revival-line); }
.preparation-must .revival-display { color: var(--revival-gold-bright); }

.member-sequence { display: grid; grid-column: 1; grid-row: 2 / span 2; }
.member-sequence p { margin: 0; padding: 27px 30px; border-top: 1px solid rgba(23, 19, 14, 0.34); font-family: "Playfair Display", serif; font-size: 28px; font-style: italic; }
.member-protection { grid-column: 2; }
.member-entry { grid-column: 1 / -1; grid-template-columns: repeat(4, 1fr); margin-top: 36px; }
.member-registration { grid-column: 1 / -1; }

.do-not-grid { display: grid; margin-left: 18%; grid-template-columns: repeat(3, 1fr); }
.do-not-grid p { min-height: 170px; margin: 0; padding: 28px; border: 1px solid var(--revival-line); font-size: 17px; line-height: 1.52; }
.boundaries-wisdom { width: 70%; margin: 96px 0 56px auto; color: var(--revival-gold-bright); }
.response-code { display: grid; grid-template-columns: repeat(2, 1fr); }
.response-code article { display: grid; min-height: 138px; padding: 26px; border: 1px solid var(--revival-line); grid-template-columns: 140px 1fr; gap: 24px; }
.response-code span { color: var(--revival-gold-bright); font-size: 12px; font-weight: 700; }
.response-code p { margin: 0; font-size: 18px; line-height: 1.5; }
.argument-contrast { display: flex; margin-top: 58px; justify-content: flex-end; gap: 24px; font-size: 22px; }
.argument-contrast p, .argument-contrast strong { margin: 0; }
.argument-contrast strong { color: var(--revival-gold-pale); }

.build-statements { counter-reset: build-line; }
.build-statements p,
.build-statements strong { display: block; margin: 0; padding: 28px 0; border-top: 1px solid rgba(23, 19, 14, 0.28); font-size: 21px; line-height: 1.5; }
.build-statements p::before { content: "0" counter(build-line); counter-increment: build-line; display: inline-block; width: 58px; color: #8b5d0a; font-family: "Bebas Neue", sans-serif; font-size: 24px; vertical-align: top; }
.build-statements strong { color: #8b5d0a; font-family: "Playfair Display", serif; font-size: 38px; font-style: italic; }

.vision-watermark { top: 22%; left: auto; right: -2%; }
.growth-pairs { display: grid; margin-left: 15%; grid-template-columns: repeat(5, 1fr); }
.growth-pairs article { min-height: 250px; padding: 28px; border: 1px solid var(--revival-line); }
.growth-pairs p, .growth-pairs strong { display: block; margin: 0 0 24px; font-size: 17px; line-height: 1.5; }
.growth-pairs strong { color: var(--revival-gold-bright); font-family: "Playfair Display", serif; font-size: 22px; font-style: italic; }
.growth-outcomes { display: grid; width: 84%; margin: 80px 0 0; grid-template-columns: repeat(5, 1fr); }
.growth-outcomes p { margin: 0; padding: 24px; border-top: 2px solid var(--revival-gold-bright); font-size: 16px; line-height: 1.5; }
.vision-model { width: 65%; margin: 100px 0 0 auto; }
.vision-model .revival-display { color: var(--revival-gold-bright); }

.support-front-lead { width: 52%; margin: 0 0 48px auto; font-family: "Playfair Display", serif; font-size: 34px; font-style: italic; }
.support-needs { display: grid; grid-template-columns: repeat(3, 1fr); }
.support-needs p { margin: 0; padding: 28px; border: 1px solid rgba(23, 19, 14, 0.38); font-family: "Bebas Neue", sans-serif; font-size: 30px; }
.support-link-row { display: grid; margin-top: 64px; padding-top: 36px; border-top: 4px solid var(--revival-ink); grid-template-columns: 1fr auto; align-items: center; gap: 32px; }
.support-link-row p { margin: 0; font-size: 19px; }
.support-link-row a { display: flex; padding: 18px 24px; color: var(--revival-paper); background: var(--revival-ink); align-items: center; gap: 16px; font-weight: 700; }

.not-only { grid-column: 2; }
.not-only p, .not-only strong { display: block; margin: 0; padding: 20px 0; border-bottom: 1px solid var(--revival-line); font-size: 19px; }
.not-only strong { color: var(--revival-gold-bright); font-size: 26px; }
.from-sequence { display: grid; grid-column: 1 / -1; margin-top: 70px; grid-template-columns: repeat(5, 1fr); }
.from-sequence p { margin: 0; padding: 28px; border: 1px solid var(--revival-line); color: var(--revival-gold-pale); font-family: "Bebas Neue", sans-serif; font-size: 28px; }
.core-front { grid-column: 1 / -1; width: 70%; margin: 78px auto; font-family: "Playfair Display", serif; font-size: 34px; font-style: italic; text-align: center; }
.final-facts { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); }
.final-facts p { margin: 0; padding: 28px; border-top: 1px solid var(--revival-line); text-align: center; }
.final-directions { display: grid; grid-column: 1 / -1; margin-top: 80px; grid-template-columns: repeat(4, 1fr); }
.final-directions p { margin: 0; padding: 34px 20px; color: var(--revival-gold-bright); font-family: "Bebas Neue", sans-serif; font-size: 34px; text-align: center; }
.revival-final-mantra {
    grid-column: 1 / -1;
    margin-top: 120px;
    padding: 92px 0 78px;
    border-block: 1px solid var(--revival-line);
    text-align: center;
}

.revival-final-mantra > p {
    margin: 0 0 8px;
    color: rgba(243, 234, 214, 0.66);
    font-family: "Playfair Display", serif;
    font-size: 36px;
    font-style: italic;
    line-height: 1.25;
}

.revival-final-mantra h2 {
    display: flex;
    margin-top: 54px;
    color: var(--revival-paper);
    font-size: 124px;
    line-height: 0.9;
    align-items: baseline;
    justify-content: center;
    flex-wrap: wrap;
    column-gap: 20px;
    row-gap: 10px;
}

.revival-final-mantra h2 em {
    color: var(--revival-gold-bright);
    font-family: "Playfair Display", serif;
    font-size: 0.62em;
    font-weight: 600;
    font-style: italic;
}

.revival-final-mantra .final-brand-flag {
    width: 1.06em;
    height: 0.8em;
    margin-left: 0.04em;
    object-fit: contain;
}

/* Solid surfaces keep cards distinct from every section background. */
.revival-dark .center-pillars article,
.revival-dark .both-grid article,
.revival-dark .growth-pairs article,
.revival-dark .growth-outcomes p,
.revival-dark .routine-sequence p,
.revival-dark .respect-boundaries p,
.revival-dark .respect-boundaries strong,
.revival-dark .gap-panel > div p,
.revival-dark .solution-closing {
    background: #17130e;
}

.revival-dark .center-pillars article:nth-child(even),
.revival-dark .both-grid article:nth-child(even),
.revival-dark .growth-pairs article:nth-child(even),
.revival-dark .growth-outcomes p:nth-child(even),
.revival-dark .routine-sequence p:nth-child(even),
.revival-dark .respect-boundaries p:nth-child(even),
.revival-dark .gap-panel > div p:nth-child(even) {
    background: #1d1810;
}

.revival-charcoal .process-steps article,
.revival-charcoal .do-not-grid p,
.revival-charcoal .response-code article,
.revival-charcoal .from-sequence p,
.revival-charcoal .final-facts p,
.revival-charcoal .final-directions p {
    background: #090806;
}

.revival-charcoal .process-steps article:nth-child(even),
.revival-charcoal .do-not-grid p:nth-child(even),
.revival-charcoal .response-code article:nth-child(even),
.revival-charcoal .from-sequence p:nth-child(even),
.revival-charcoal .final-facts p:nth-child(even),
.revival-charcoal .final-directions p:nth-child(even) {
    background: #1c170f;
}

.revival-charcoal .process-goal,
.revival-charcoal .one-at-time p {
    background: #0b0906;
}

.revival-paper .continue-track article,
.revival-paper .alongside-block > div p,
.revival-paper .approach-boundary p,
.revival-paper .approach-boundary strong,
.revival-paper .approach-pairs article,
.revival-paper .needs-grid article,
.revival-paper .one-laptop,
.revival-paper .team-capabilities p,
.revival-paper .build-statements p,
.revival-paper .build-statements strong {
    background: #e6d7b7;
}

.revival-paper .continue-track article:nth-child(even),
.revival-paper .alongside-block > div p:nth-child(even),
.revival-paper .approach-boundary p:nth-child(even),
.revival-paper .approach-pairs article:nth-child(even),
.revival-paper .needs-grid article:nth-child(even),
.revival-paper .team-capabilities p:nth-child(even),
.revival-paper .build-statements p:nth-child(even) {
    background: #eee3cc;
}

.revival-paper .continue-track article,
.revival-paper .approach-boundary p,
.revival-paper .approach-boundary strong,
.revival-paper .build-statements p,
.revival-paper .build-statements strong {
    padding-inline: 24px;
}

.revival-gold .existing-work p,
.revival-gold .member-sequence p,
.revival-gold .member-entry article,
.revival-gold .support-needs p,
.revival-gold .revival-action-band {
    background: #e8c66f;
}

.revival-gold .gap-panel > div p {
    background: #17130e;
}

.revival-gold .gap-panel > div p:nth-child(even) {
    background: #1d1810;
}

.revival-gold .existing-work p:nth-child(even),
.revival-gold .member-sequence p:nth-child(even),
.revival-gold .member-entry article:nth-child(even),
.revival-gold .support-needs p:nth-child(even) {
    background: #c9973b;
}

.revival-gold .structure-diagnosis,
.revival-gold .members-copy,
.revival-gold .member-protection,
.revival-gold .support-link-row {
    padding: 34px;
    background: rgba(243, 234, 214, 0.34);
}

.revival-footer {
    position: relative;
    border-top: 1px solid var(--revival-line);
    background: #030302;
    color: var(--revival-paper);
}
.revival-footer .revival-shell { display: flex; min-height: 122px; align-items: center; justify-content: space-between; gap: 32px; }
.revival-footer-brand { display: flex; color: var(--revival-gold-pale); align-items: center; gap: 14px; font-size: 20px; font-weight: 700; }
.revival-footer-brand img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.revival-back-top { display: flex; color: var(--revival-gold-pale); align-items: center; gap: 10px; font-size: 14px; font-weight: 700; }

.revival-js [data-hero-reveal],
.revival-js [data-revival-heading] > *,
.revival-js [data-revival-reveal],
.revival-js [data-stagger] > * {
    opacity: 0;
}

.revival-js .revival-sticky-heading > * {
    opacity: 1;
    transform: none;
}

.revival-motion-ready [data-hero-reveal],
.revival-motion-ready [data-revival-heading] > *,
.revival-motion-ready [data-revival-reveal],
.revival-motion-ready [data-stagger] > * {
    will-change: transform, opacity;
}

@media (max-width: 1100px) {
    :root { --revival-side: 4vw; }
    .revival-hero-inner { grid-template-columns: minmax(0, 1fr) 390px; gap: 44px; }
    .revival-hero h1 { font-size: 82px; }
    .revival-heading h2 { font-size: 66px; }
    .center-pillars { grid-template-columns: repeat(3, 1fr); }
    .center-pillars article,
    .center-pillars article:nth-child(n + 5) { grid-column: auto; }
    .center-pillars article:last-child:nth-child(3n + 1) { grid-column: 1 / -1; }
    .team-capabilities { grid-template-columns: repeat(3, 1fr); }
    .growth-pairs { margin-left: 0; grid-template-columns: repeat(3, 1fr); }
    .growth-outcomes { width: 100%; grid-template-columns: repeat(3, 1fr); }
    .process-layout, .build-layout { gap: 52px; }
    .process-layout .revival-heading h2, .build-layout .revival-heading h2 { font-size: 52px; }
}

@media (max-width: 800px) {
    :root { --revival-side: 22px; }

    .revival-navbar {
        top: 12px;
        width: calc(100% - 24px);
        min-height: 76px;
        padding: 12px 16px;
    }

    .revival-navbar .logo { font-size: 16px; white-space: nowrap; }
    .revival-navbar .logo-img { width: 48px; height: 48px; }

    .revival-hero {
        min-height: max(100svh, 720px);
        margin-top: -88px;
    }

    .revival-hero-inner { min-height: inherit; padding-top: 132px; padding-bottom: 52px; grid-template-columns: 1fr; align-items: start; }
    .revival-kicker { margin-top: 0; }
    .revival-hero h1 { width: 100%; margin-top: 32px; font-size: 66px; }
    .revival-hero-bottom { margin-top: 28px; }
    .revival-hero-mark { position: absolute; right: 0; bottom: 28px; left: 0; z-index: 1; width: min(56vw, 250px); margin: auto; display: grid; opacity: 0.97; pointer-events: none; }
    .revival-hero-bottom { grid-template-columns: 1fr auto; gap: 18px; }
    .revival-hero-bottom strong { font-size: 11px; }
    .revival-hero-bottom p { font-size: 15px; }
    .revival-round-link { width: 52px; height: 52px; }
    .revival-marquee { height: 58px; }
    .revival-marquee-set { height: 58px; }
    .revival-marquee-set span { font-size: 23px; }

    .revival-section { min-height: 0; padding: 86px 0; }
    .revival-heading { margin-bottom: 50px; grid-template-columns: 38px 1fr; gap: 14px; }
    .revival-heading h2 { margin-top: 16px; font-size: 52px; }
    .revival-heading .revival-index::after { width: 32px; }
    .revival-copy { font-size: 17px; }
    .revival-lead { font-size: 30px; }
    .revival-display { font-size: 34px; }

    .centers-lead,
    .centers-disconnect,
    .respect-statement,
    .problem-opening,
    .structure-diagnosis,
    .needs-opening,
    .one-laptop,
    .boundaries-wisdom,
    .vision-model,
    .support-front-lead,
    .core-front { width: 100%; margin-left: 0; }

    .center-pillars,
    .existing-work,
    .needs-grid,
    .member-entry,
    .team-capabilities,
    .do-not-grid,
    .growth-pairs,
    .growth-outcomes,
    .support-needs { grid-template-columns: repeat(2, 1fr); }

    .center-pillars article:last-child:nth-child(odd) { grid-column: 1 / -1; }

    .center-pillars article, .both-grid article, .needs-grid article, .member-entry article { min-height: 156px; padding: 22px; }
    .center-pillars p, .both-grid p, .needs-grid p, .member-entry p { margin-top: 28px; font-size: 15px; }
    .learning-gap { grid-template-columns: 1fr; }
    .learning-gap article { min-height: 0; }
    .respect-boundaries { grid-template-columns: 1fr; }

    .purpose-layout,
    .approach-layout,
    .solution-layout,
    .appeals-layout,
    .members-layout,
    .preparation-layout,
    .local-revival-layout,
    .process-layout,
    .build-layout { display: block; }

    .purpose-copy, .approach-boundary, .solution-copy, .appeals-copy, .members-copy { margin-bottom: 44px; }
    .continue-track { margin-bottom: 52px; }
    .alongside-block > div { grid-template-columns: 1fr; }
    .gap-panel { width: 100%; padding: 38px 24px; }
    .gap-panel > div { grid-template-columns: 1fr; }
    .both-grid { grid-template-columns: repeat(2, 1fr); }
    .solution-closing { margin-top: 40px; }
    .approach-principle { margin: 50px 0; }
    .approach-pairs { grid-template-columns: 1fr; }
    .approach-goal { margin-top: 38px; }

    .revival-sticky-heading { position: static; }
    .process-layout .revival-heading,
    .build-layout .revival-heading { display: grid; margin-bottom: 50px; }
    .process-layout .revival-index,
    .build-layout .revival-index { margin: 0; }
    .process-layout .revival-heading h2,
    .build-layout .revival-heading h2 { margin-top: 16px; font-size: 52px; }
    .process-steps article { grid-template-columns: 54px 1fr; }
    .process-goal { padding: 30px 24px; }
    .one-at-time { grid-template-columns: repeat(2, 1fr); }

    .revival-action-band { grid-template-columns: 1fr auto; }
    .revival-action-band a { padding: 0 20px; }
    .revival-action-band a span { display: none; }
    .preparation-must { margin-top: 48px; padding: 32px 0 0; border-top: 4px solid var(--revival-gold-bright); border-left: 0; }
    .member-sequence { margin-bottom: 48px; }
    .do-not-grid { margin-left: 0; }
    .response-code { grid-template-columns: 1fr; }
    .argument-contrast { flex-direction: column; }
    .build-statements p::before { width: 45px; }
    .growth-outcomes p { border: 1px solid var(--revival-line); }
    .support-link-row { grid-template-columns: 1fr; }
    .support-link-row a { width: max-content; }
    .not-only { margin-bottom: 60px; }
    .from-sequence { grid-template-columns: repeat(2, 1fr); }
    .final-directions { grid-template-columns: repeat(2, 1fr); }
    .revival-final-mantra > p { font-size: 28px; }
    .revival-final-mantra h2 { font-size: 76px; }
}

@media (max-width: 520px) {
    :root { --revival-side: 18px; }
    .revival-navbar .navbar-brand { gap: 9px; }
    .revival-navbar .logo { font-size: 14px; }
    .revival-navbar .logo-img { width: 44px; height: 44px; }

    .revival-hero { min-height: max(100svh, 700px); }
    .revival-hero-inner { min-height: inherit; padding-top: 136px; padding-bottom: 42px; }
    .revival-kicker { margin-top: 0; font-size: 10px; }
    .revival-hero h1 { margin-top: 28px; font-size: 52px; line-height: 0.86; }
    .revival-hero h1 .revival-gold-word { font-size: 0.67em; }
    .revival-hero-bottom p { max-width: 270px; font-size: 14px; }
    .revival-round-link { width: 46px; height: 46px; }
    .revival-hero-mark { bottom: 20px; width: min(58vw, 220px); }

    .revival-section { padding: 72px 0; }
    .revival-heading { grid-template-columns: 34px 1fr; }
    .revival-heading h2,
    .process-layout .revival-heading h2,
    .build-layout .revival-heading h2 { font-size: 44px; line-height: 0.98; }
    .revival-lead { font-size: 27px; }
    .revival-display { font-size: 30px; }

    .center-pillars,
    .existing-work,
    .needs-grid,
    .member-entry,
    .team-capabilities,
    .do-not-grid,
    .growth-pairs,
    .growth-outcomes,
    .support-needs { grid-template-columns: 1fr; }

    .center-pillars article:last-child:nth-child(odd) { grid-column: auto; }

    .center-pillars article, .both-grid article, .needs-grid article, .member-entry article { min-height: 136px; }
    .routine-sequence p { width: 50%; padding: 16px 12px; font-size: 14px; }
    .learning-gap { margin-top: 58px; }
    .respect-statement { margin-top: 72px; }
    .respect-boundaries strong { font-size: 18px; }
    .alongside-block > div p { padding-inline: 20px; border-inline: 0; }
    .gap-panel { padding: 32px 18px; }
    .both-grid { grid-template-columns: 1fr; }
    .solution-watermark, .vision-watermark { display: none; }
    .approach-pairs article { min-height: 140px; }
    .process-steps p { font-size: 16px; }
    .one-at-time { grid-template-columns: 1fr; }
    .revival-action-band > div p { font-size: 20px; }
    .revival-action-band > div { padding-inline: 20px; }
    .revival-action-band a { min-width: 72px; padding-inline: 18px; }
    .one-laptop { grid-template-columns: 44px 1fr; padding: 26px 20px; }
    .one-laptop iconify-icon { font-size: 36px; }
    .one-laptop p { font-size: 16px; }
    .noise-contrast { align-items: flex-start; flex-direction: column; font-size: 20px; }
    .member-sequence p { font-size: 23px; }
    .response-code article { grid-template-columns: 1fr; }
    .build-statements p, .build-statements strong { font-size: 18px; }
    .build-statements strong { font-size: 30px; }
    .from-sequence { grid-template-columns: 1fr; }
    .final-facts { grid-template-columns: 1fr; }
    .final-directions { grid-template-columns: 1fr; }
    .final-directions p { padding: 18px; font-size: 30px; }
    .revival-final-mantra { margin-top: 72px; padding: 58px 0 50px; }
    .revival-final-mantra > p { font-size: 23px; }
    .revival-final-mantra h2 { margin-top: 38px; font-size: 52px; align-items: baseline; }
    .revival-footer .revival-shell { min-height: 104px; }
    .revival-footer-brand { font-size: 16px; }
    .revival-back-top { font-size: 0; }
    .revival-back-top iconify-icon { font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
    .revival-marquee-track { animation-play-state: paused; }
    .revival-js [data-hero-reveal],
    .revival-js [data-revival-heading] > *,
    .revival-js [data-revival-reveal],
    .revival-js [data-stagger] > * { opacity: 1; }
}
