/* Christian Easter theme shared by the public app and admin panel */

:root {
    --easter-dawn-top: #120f1f;
    --easter-dawn-mid: #2a2143;
    --easter-dawn-bottom: #5a3e2d;
    --easter-gold: #f2c66d;
    --easter-gold-deep: #d79b3f;
    --easter-gold-soft: rgba(242, 198, 109, 0.18);
    --easter-sky: rgba(125, 178, 255, 0.12);
    --easter-lily: rgba(244, 239, 224, 0.9);
    --easter-hill: #171b22;
    --easter-hill-edge: rgba(255, 255, 255, 0.06);
}

body {
    position: relative;
    background:
        radial-gradient(circle at 50% 10%, rgba(255, 218, 145, 0.28) 0%, rgba(255, 215, 140, 0.10) 18%, transparent 40%),
        radial-gradient(circle at 20% 22%, rgba(129, 174, 255, 0.12) 0%, transparent 26%),
        radial-gradient(circle at 80% 18%, rgba(176, 137, 255, 0.10) 0%, transparent 24%),
        linear-gradient(180deg, #110f1d 0%, #2d2245 40%, #3f2c2a 62%, #17151f 82%, #0c1018 100%);
}

body.easter-shell {
    background:
        radial-gradient(circle at 50% 6%, rgba(255, 225, 166, 0.34) 0%, rgba(255, 215, 140, 0.12) 18%, transparent 42%),
        radial-gradient(circle at 12% 20%, rgba(149, 184, 255, 0.14) 0%, transparent 28%),
        radial-gradient(circle at 88% 16%, rgba(255, 180, 133, 0.12) 0%, transparent 26%),
        linear-gradient(180deg, #130f1d 0%, #2c2143 38%, #563923 64%, #17151f 84%, #0b0f16 100%);
}

.easter-shell::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        linear-gradient(180deg, rgba(255, 236, 197, 0.06), transparent 14%),
        linear-gradient(90deg, transparent 0%, rgba(255, 230, 172, 0.035) 48%, transparent 100%);
}

.easter-backdrop {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.easter-glow {
    position: absolute;
    top: -12vh;
    left: 50%;
    width: 68vw;
    height: 52vw;
    min-width: 520px;
    min-height: 520px;
    transform: translateX(-50%);
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(255, 235, 186, 0.28) 0%, rgba(255, 211, 118, 0.13) 28%, rgba(255, 211, 118, 0.03) 48%, transparent 68%);
    filter: blur(28px);
    opacity: 1;
    animation: easterGlowPulse 12s ease-in-out infinite;
}

.resurrection-rays {
    position: absolute;
    top: -10vh;
    left: 50%;
    width: 1200px;
    height: 900px;
    transform: translateX(-50%);
    background:
        linear-gradient(90deg, transparent 0%, rgba(255, 240, 192, 0.14) 48%, transparent 52%),
        repeating-conic-gradient(from 258deg at 50% 22%, rgba(255, 220, 143, 0.16) 0deg 5deg, transparent 5deg 18deg);
    mask-image: radial-gradient(circle at center 16%, black 0%, black 40%, transparent 74%);
    opacity: 0.62;
    animation: easterRays 18s linear infinite;
}

.faith-particles {
    position: absolute;
    inset: 0;
}

.faith-particle {
    position: absolute;
    opacity: 0;
    animation: easterParticle 13s ease-in-out infinite;
}

.faith-particle.dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: rgba(255, 226, 163, 0.86);
    box-shadow: 0 0 10px rgba(255, 214, 122, 0.28);
}

.faith-particle.cross {
    width: 14px;
    height: 14px;
}

.faith-particle.cross::before,
.faith-particle.cross::after {
    content: "";
    position: absolute;
    background: linear-gradient(180deg, rgba(255, 240, 205, 0.92), rgba(242, 198, 109, 0.62));
    border-radius: 999px;
}

.faith-particle.cross::before {
    top: 0;
    left: 50%;
    width: 2px;
    height: 14px;
    transform: translateX(-50%);
}

.faith-particle.cross::after {
    top: 50%;
    left: 50%;
    width: 12px;
    height: 2px;
    transform: translate(-50%, -50%);
}

.faith-particle:nth-child(1) { left: 10%; top: 18%; animation-delay: 0s; }
.faith-particle:nth-child(2) { left: 22%; top: 34%; animation-delay: 1.5s; }
.faith-particle:nth-child(3) { left: 34%; top: 16%; animation-delay: 3s; }
.faith-particle:nth-child(4) { left: 48%; top: 28%; animation-delay: 4.5s; }
.faith-particle:nth-child(5) { left: 61%; top: 14%; animation-delay: 6s; }
.faith-particle:nth-child(6) { left: 73%; top: 30%; animation-delay: 7.5s; }
.faith-particle:nth-child(7) { left: 84%; top: 20%; animation-delay: 9s; }
.faith-particle:nth-child(8) { left: 92%; top: 38%; animation-delay: 10.5s; }

.resurrection-scene {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    height: 180px;
}

.resurrection-hill {
    position: absolute;
    bottom: 0;
    left: -10%;
    width: 120%;
    height: 135px;
    background:
        linear-gradient(180deg, rgba(65, 47, 34, 0.84), rgba(22, 19, 23, 0.98));
    border-top: 1px solid rgba(255, 223, 163, 0.1);
    clip-path: ellipse(64% 100% at 50% 100%);
}

.resurrection-cross {
    position: absolute;
    bottom: 78px;
    width: 10px;
    background: linear-gradient(180deg, rgba(132, 88, 46, 0.96), rgba(52, 35, 22, 0.98));
    border-radius: 8px;
    box-shadow:
        0 0 18px rgba(255, 205, 117, 0.12),
        0 0 0 1px rgba(255, 224, 168, 0.08);
}

.resurrection-cross::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 26%;
    height: 9px;
    border-radius: 8px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, rgba(145, 96, 49, 0.98), rgba(60, 40, 24, 1));
}

.resurrection-cross.center {
    left: 50%;
    height: 88px;
    transform: translateX(-50%);
}

.resurrection-cross.center::before {
    width: 44px;
}

.resurrection-cross.left {
    left: calc(50% - 88px);
    height: 64px;
    transform: rotate(-9deg);
}

.resurrection-cross.left::before {
    width: 34px;
}

.resurrection-cross.right {
    left: calc(50% + 78px);
    height: 64px;
    transform: rotate(9deg);
}

.resurrection-cross.right::before {
    width: 34px;
}

.easter-ribbon {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1.4rem;
    border-radius: 999px;
    color: #fff4d5;
    background:
        linear-gradient(90deg, rgba(141, 88, 34, 0.28), rgba(244, 197, 108, 0.16), rgba(141, 88, 34, 0.28));
    border: 1px solid rgba(246, 204, 126, 0.35);
    box-shadow:
        0 20px 50px rgba(9, 5, 20, 0.28),
        inset 0 1px 0 rgba(255, 244, 209, 0.12);
    backdrop-filter: blur(14px);
}

.easter-ribbon .icon-wrap {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(255, 231, 176, 0.12);
    color: #ffd98d;
}

.easter-shell .btn-primary-premium,
.easter-shell .btn-gold-premium,
.easter-shell .btn-premium {
    box-shadow: 0 18px 44px rgba(8, 5, 18, 0.28);
}

.easter-brand-mark {
    width: 2.75rem;
    height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 1rem;
    background:
        radial-gradient(circle at 30% 30%, rgba(255, 239, 199, 0.28), transparent 36%),
        linear-gradient(135deg, rgba(126, 77, 30, 0.94), rgba(242, 198, 109, 0.92));
    border: 1px solid rgba(255, 228, 171, 0.22);
    box-shadow:
        0 16px 36px rgba(0, 0, 0, 0.32),
        inset 0 1px 0 rgba(255, 245, 212, 0.24);
    color: #fff8e6;
}

.easter-brand-text {
    color: #fff6de;
}

.easter-brand-text strong {
    color: var(--easter-gold);
}

.easter-nav {
    position: sticky;
    top: 0;
    z-index: 40;
    backdrop-filter: blur(18px);
    background:
        linear-gradient(180deg, rgba(27, 22, 34, 0.96), rgba(22, 20, 28, 0.92));
    border-bottom: 1px solid rgba(246, 204, 126, 0.14);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.22);
}

.easter-nav::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 223, 155, 0.42), transparent);
    pointer-events: none;
}

.easter-nav-link {
    color: rgba(229, 229, 236, 0.84);
    border: 1px solid transparent;
    transition: 180ms ease;
}

.easter-nav-link:hover {
    color: #fff6df;
    background: rgba(255, 233, 187, 0.06);
    border-color: rgba(246, 204, 126, 0.14);
}

.easter-nav-link-active {
    color: #fff0c9;
    background:
        linear-gradient(180deg, rgba(246, 204, 126, 0.12), rgba(246, 204, 126, 0.05));
    border-color: rgba(246, 204, 126, 0.2);
    box-shadow: inset 0 1px 0 rgba(255, 247, 225, 0.08);
}

.easter-cta-link {
    color: #1b130b;
    background: linear-gradient(135deg, #f0c56a, #d79b3f);
    border: 1px solid rgba(255, 241, 205, 0.28);
    box-shadow:
        0 14px 34px rgba(115, 77, 29, 0.24),
        inset 0 1px 0 rgba(255, 247, 225, 0.22);
}

.easter-cta-link:hover {
    filter: brightness(1.04);
}

.easter-season-bar {
    position: relative;
    z-index: 1;
    border-bottom: 1px solid rgba(246, 204, 126, 0.12);
    background:
        linear-gradient(90deg, rgba(49, 33, 21, 0.88), rgba(95, 62, 28, 0.78) 45%, rgba(37, 28, 25, 0.88));
}

.easter-season-layout {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.85rem 1.25rem;
    padding: 0.8rem 1rem;
    text-align: center;
}

.easter-nav-panel {
    position: relative;
    z-index: 1;
}

.easter-season-bar::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 230, 172, 0.16), transparent 42%),
        linear-gradient(90deg, transparent 0%, rgba(255, 234, 194, 0.08) 50%, transparent 100%);
    pointer-events: none;
}

.easter-season-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 1rem;
    border-radius: 999px;
    color: #fff4d3;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: rgba(255, 240, 207, 0.08);
    border: 1px solid rgba(255, 227, 167, 0.18);
}

.easter-season-copy {
    color: rgba(255, 239, 210, 0.86);
}

.easter-inline-verse {
    color: rgba(255, 214, 129, 0.92);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 0.74rem;
}

.easter-content-shell {
    position: relative;
    z-index: 1;
}

.easter-hero-section {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(15, 12, 23, 0.18), rgba(15, 12, 23, 0.34) 58%, rgba(15, 12, 23, 0.56) 100%);
}

.easter-hero-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 50% 8%, rgba(255, 228, 168, 0.14), transparent 34%),
        linear-gradient(90deg, transparent 0%, rgba(255, 222, 152, 0.06) 50%, transparent 100%);
    pointer-events: none;
}

.easter-marketing-section {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(14, 12, 21, 0.52), rgba(14, 12, 21, 0.66));
}

.easter-marketing-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 228, 168, 0.08), transparent 30%),
        linear-gradient(180deg, rgba(255, 214, 127, 0.04), transparent 22%, transparent 78%, rgba(255, 214, 127, 0.04));
    pointer-events: none;
}

.easter-marketing-section-alt {
    background:
        linear-gradient(180deg, rgba(17, 14, 25, 0.34), rgba(17, 14, 25, 0.54));
}

.easter-page-banner {
    position: relative;
    overflow: hidden;
    margin: 1.25rem 1rem 0;
    border-radius: 1.5rem;
    border: 1px solid rgba(246, 204, 126, 0.18);
    background:
        linear-gradient(135deg, rgba(53, 36, 26, 0.88), rgba(103, 69, 38, 0.46) 46%, rgba(23, 21, 31, 0.92));
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.22);
}

.easter-page-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 10% 20%, rgba(255, 233, 183, 0.16), transparent 24%),
        radial-gradient(circle at 88% 0%, rgba(255, 206, 117, 0.14), transparent 24%);
    pointer-events: none;
}

.easter-page-banner-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
}

.easter-page-banner-title {
    color: #fff5da;
    font-weight: 800;
}

.easter-page-banner-copy {
    color: rgba(255, 237, 206, 0.78);
}

.easter-footer {
    position: relative;
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(16, 16, 22, 0.94), rgba(9, 10, 15, 0.98));
    border-top: 1px solid rgba(246, 204, 126, 0.12);
}

.easter-footer-note {
    color: rgba(255, 230, 172, 0.72);
}

.easter-scripture-panel {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    border: 1px solid rgba(246, 204, 126, 0.24);
    background:
        linear-gradient(135deg, rgba(255, 248, 232, 0.08), rgba(234, 185, 97, 0.06) 40%, rgba(255, 248, 232, 0.04));
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.easter-scripture-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at top center, rgba(255, 221, 155, 0.18), transparent 40%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.03), transparent 45%);
    pointer-events: none;
}

.easter-scripture-panel::after {
    content: "";
    position: absolute;
    right: -30px;
    bottom: -30px;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(248, 205, 118, 0.18), transparent 68%);
    filter: blur(8px);
}

.easter-highlight-section {
    position: relative;
    overflow: hidden;
}

.easter-highlight-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(241, 196, 111, 0.06), transparent 24%, transparent 76%, rgba(241, 196, 111, 0.04)),
        radial-gradient(circle at 50% 0%, rgba(255, 225, 158, 0.10), transparent 34%);
    pointer-events: none;
}

.easter-cross-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.9rem;
    color: rgba(255, 222, 154, 0.9);
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-size: 0.72rem;
    font-weight: 700;
}

.easter-cross-divider::before,
.easter-cross-divider::after {
    content: "";
    width: 90px;
    max-width: 18vw;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(246, 204, 126, 0.6), transparent);
}

.easter-admin-banner {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    border: 1px solid rgba(246, 204, 126, 0.24);
    background:
        linear-gradient(135deg, rgba(56, 38, 26, 0.75), rgba(84, 52, 31, 0.36) 45%, rgba(26, 22, 31, 0.88));
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
}

.easter-admin-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 14% 18%, rgba(255, 231, 176, 0.16), transparent 24%),
        radial-gradient(circle at 84% 0%, rgba(255, 204, 117, 0.12), transparent 28%);
    pointer-events: none;
}

.admin-sidebar-easter {
    background:
        linear-gradient(180deg, rgba(24, 21, 31, 0.98), rgba(29, 23, 29, 0.96) 42%, rgba(18, 17, 24, 0.98));
    border-right-color: rgba(246, 204, 126, 0.12);
    box-shadow: inset -1px 0 0 rgba(255, 240, 206, 0.03);
}

.admin-sidebar-header-easter {
    background:
        linear-gradient(135deg, rgba(57, 36, 24, 0.92), rgba(24, 22, 32, 0.94));
    border-bottom-color: rgba(246, 204, 126, 0.14);
}

.admin-header-easter {
    background:
        linear-gradient(180deg, rgba(28, 23, 33, 0.94), rgba(23, 21, 29, 0.9));
    border-bottom-color: rgba(246, 204, 126, 0.12);
    backdrop-filter: blur(16px);
}

.admin-main-easter {
    position: relative;
    background:
        linear-gradient(180deg, rgba(255, 229, 169, 0.03), transparent 12%),
        transparent;
}

.admin-quick-button {
    color: #1b130b;
    background: linear-gradient(135deg, #f0c56a, #d79b3f);
    border: 1px solid rgba(255, 241, 205, 0.24);
    box-shadow: 0 14px 32px rgba(93, 63, 26, 0.18);
}

.admin-side-note {
    color: rgba(255, 226, 163, 0.76);
}

.orb-1 {
    background: radial-gradient(circle, rgba(246, 199, 108, 0.34) 0%, transparent 70%);
}

.orb-2 {
    background: radial-gradient(circle, rgba(108, 148, 224, 0.18) 0%, transparent 70%);
}

.orb-3 {
    background: radial-gradient(circle, rgba(248, 225, 171, 0.18) 0%, transparent 70%);
}

.orb-4 {
    background: radial-gradient(circle, rgba(136, 202, 168, 0.14) 0%, transparent 70%);
}

.sparkle {
    background: rgba(246, 203, 117, 0.92);
}

.shooting-star {
    background: linear-gradient(90deg, transparent 0%, rgba(255, 226, 163, 0.75) 50%, transparent 100%);
}

.shooting-star::before {
    background: rgba(255, 240, 204, 0.94);
    box-shadow: 0 0 8px 2px rgba(255, 221, 153, 0.38);
}

.admin-easter::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(255, 226, 163, 0.06) 0%, transparent 14%),
        radial-gradient(circle at 50% 8%, rgba(255, 220, 143, 0.12) 0%, transparent 24%);
    z-index: 0;
}

.admin-easter aside,
.admin-easter nav,
.admin-easter .admin-shell-card {
    position: relative;
    z-index: 1;
}

@keyframes easterGlowPulse {
    0%, 100% { transform: translateX(-50%) scale(1); opacity: 0.92; }
    50% { transform: translateX(-50%) scale(1.04); opacity: 1; }
}

@keyframes easterRays {
    0% { transform: translateX(-50%) rotate(0deg); }
    100% { transform: translateX(-50%) rotate(360deg); }
}

@keyframes easterParticle {
    0%, 100% {
        opacity: 0;
        transform: translateY(0) scale(0.7);
    }
    15% {
        opacity: 0.72;
    }
    50% {
        opacity: 0.32;
        transform: translateY(-20px) scale(1);
    }
    85% {
        opacity: 0.68;
    }
}

@media (max-width: 768px) {
    .easter-season-layout {
        padding: 0.75rem 0.9rem;
        align-items: center;
        justify-content: center;
    }

    .easter-season-pill {
        font-size: 0.72rem;
        letter-spacing: 0.06em;
        padding: 0.5rem 0.85rem;
    }

    .easter-season-copy {
        width: 100%;
        font-size: 0.9rem;
        line-height: 1.45;
    }

    .easter-inline-verse {
        display: inline-block;
        margin-top: 0.2rem;
    }

    .easter-page-banner {
        margin-left: 0.75rem;
        margin-right: 0.75rem;
    }

    .easter-page-banner-content {
        padding: 0.9rem 1rem;
    }

    .resurrection-scene {
        height: 130px;
    }

    .resurrection-hill {
        height: 92px;
    }

    .resurrection-cross.center {
        height: 64px;
        bottom: 54px;
    }

    .resurrection-cross.left,
    .resurrection-cross.right {
        height: 48px;
        bottom: 50px;
    }

    .resurrection-cross.left {
        left: calc(50% - 62px);
    }

    .resurrection-cross.right {
        left: calc(50% + 52px);
    }

    .easter-brand-mark {
        width: 2.45rem;
        height: 2.45rem;
        border-radius: 0.9rem;
    }
}
