.project-appearance-scope {
    --project-accent: #6c63ff;
    --project-accent-2: #9c92ff;
    --project-accent-rgb: 108, 99, 255;
    --project-canvas: transparent;
    --project-background-image: none;
    --project-background-overlay: rgba(9, 13, 32, 0.64);
    --project-background-fade: rgba(9, 13, 32, 0.98);
    position: relative;
    isolation: isolate;
    background: var(--project-canvas);
    transition: background 0.25s ease;
}

.project-bg-midnight {
    --project-canvas:
        radial-gradient(circle at 12% 8%, rgba(79, 70, 229, 0.2), transparent 27%),
        radial-gradient(circle at 88% 28%, rgba(14, 165, 233, 0.1), transparent 24%),
        linear-gradient(180deg, #090d20 0%, #11162c 52%, #090d1b 100%);
}

.project-bg-ocean {
    --project-canvas:
        radial-gradient(circle at 85% 10%, rgba(34, 211, 238, 0.18), transparent 29%),
        radial-gradient(circle at 10% 45%, rgba(37, 99, 235, 0.16), transparent 28%),
        linear-gradient(180deg, #071827 0%, #0b2636 52%, #081622 100%);
}

.project-bg-warm {
    --project-canvas:
        radial-gradient(circle at 78% 8%, rgba(251, 146, 60, 0.18), transparent 28%),
        radial-gradient(circle at 12% 48%, rgba(244, 63, 94, 0.1), transparent 27%),
        linear-gradient(180deg, #231412 0%, #2a1b1a 52%, #181111 100%);
}

.project-bg-paper {
    --project-canvas:
        linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px),
        linear-gradient(180deg, #22231f 0%, #292a25 52%, #1d1e1b 100%);
    background-size: 26px 26px, 26px 26px, auto;
}

.project-accent-violet {
    --project-accent: #6c63ff;
    --project-accent-2: #a78bfa;
    --project-accent-rgb: 108, 99, 255;
}

.project-accent-ocean {
    --project-accent: #1677ff;
    --project-accent-2: #38d8ff;
    --project-accent-rgb: 22, 119, 255;
}

.project-accent-mint {
    --project-accent: #0f9f78;
    --project-accent-2: #57e5b7;
    --project-accent-rgb: 15, 159, 120;
}

.project-accent-coral {
    --project-accent: #e6574f;
    --project-accent-2: #ff9b75;
    --project-accent-rgb: 230, 87, 79;
}

.project-accent-amber {
    --project-accent: #c57b00;
    --project-accent-2: #ffd166;
    --project-accent-rgb: 197, 123, 0;
}

.project-appearance-scope .sp-project-intro-kicker,
.project-appearance-scope .sp-mode-badge,
.project-appearance-scope .sp-section-kicker {
    color: var(--project-accent-2) !important;
    border-color: rgba(var(--project-accent-rgb), 0.28) !important;
    background: rgba(var(--project-accent-rgb), 0.11) !important;
}

.project-appearance-scope .cmr-tab-link.cmr-active {
    color: #fff !important;
    background: linear-gradient(135deg, var(--project-accent), var(--project-accent-2)) !important;
    box-shadow: 0 10px 24px rgba(var(--project-accent-rgb), 0.24) !important;
}

.project-appearance-scope .cmr-tab-link:hover,
.project-appearance-scope .sp-stats-highlight,
.project-appearance-scope .sp-supporter-name-link:hover {
    color: var(--project-accent-2) !important;
}

.project-appearance-scope .sp-project-gallery__thumb.is-active {
    border-color: var(--project-accent) !important;
    box-shadow: 0 0 0 2px rgba(var(--project-accent-rgb), 0.14) !important;
}

.project-appearance-scope .sp-project-gallery__nav:hover {
    border-color: rgba(var(--project-accent-rgb), 0.55) !important;
    background: var(--project-accent) !important;
}

.project-media-fit-cover .sp-project-gallery__stage img,
.project-media-fit-cover .project-appearance-preview__media img {
    object-fit: cover !important;
}

.project-media-fit-contain .sp-project-gallery__stage img,
.project-media-fit-contain .project-appearance-preview__media img {
    object-fit: contain !important;
    background: rgba(4, 7, 16, 0.92);
}

html[data-theme="light"] .project-bg-midnight,
.preview-theme-light.project-bg-midnight {
    --project-canvas:
        radial-gradient(circle at 12% 8%, rgba(99, 102, 241, 0.14), transparent 27%),
        radial-gradient(circle at 88% 28%, rgba(14, 165, 233, 0.08), transparent 24%),
        linear-gradient(180deg, #eef1ff 0%, #e7ebfa 52%, #f5f7ff 100%);
}

html[data-theme="light"] .project-bg-ocean,
.preview-theme-light.project-bg-ocean {
    --project-canvas:
        radial-gradient(circle at 85% 10%, rgba(6, 182, 212, 0.15), transparent 29%),
        radial-gradient(circle at 10% 45%, rgba(37, 99, 235, 0.1), transparent 28%),
        linear-gradient(180deg, #edfaff 0%, #e5f5fa 52%, #f4fbfd 100%);
}

html[data-theme="light"] .project-bg-warm,
.preview-theme-light.project-bg-warm {
    --project-canvas:
        radial-gradient(circle at 78% 8%, rgba(251, 146, 60, 0.14), transparent 28%),
        radial-gradient(circle at 12% 48%, rgba(244, 63, 94, 0.07), transparent 27%),
        linear-gradient(180deg, #fff7ed 0%, #fdf0e8 52%, #fffaf5 100%);
}

html[data-theme="light"] .project-bg-paper,
.preview-theme-light.project-bg-paper {
    --project-canvas:
        linear-gradient(rgba(120, 113, 90, 0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(120, 113, 90, 0.055) 1px, transparent 1px),
        linear-gradient(180deg, #faf7ef 0%, #f4f0e5 52%, #fdfbf6 100%);
}

@media (prefers-reduced-motion: reduce) {
    .project-appearance-scope {
        transition: none;
    }
}

/* Custom Background Image Upload Customizations */

body.projects-showproject-page .sp-page-wrap.project-appearance-scope.project-has-background-image,
.project-appearance-preview__page.project-appearance-scope.project-has-background-image {
    background: var(--project-canvas) !important;
}

body.projects-showproject-page .sp-page-wrap.project-appearance-scope.project-has-background-image::before,
.project-appearance-preview__page.project-appearance-scope.project-has-background-image::before {
    z-index: 0;
    content: "";
    pointer-events: none;
    background-image:
        linear-gradient(180deg, var(--project-background-overlay) 0%, var(--project-background-overlay) 58%, var(--project-background-fade) 100%),
        var(--project-background-image);
    background-repeat: no-repeat, no-repeat;
}

/* Background Fit: Cover */
body.projects-showproject-page .sp-page-wrap.project-appearance-scope.project-has-background-image.project-background-fit-cover::before {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    background-size: cover, cover;
}

/* Background Fit: Contain */
body.projects-showproject-page .sp-page-wrap.project-appearance-scope.project-has-background-image.project-background-fit-contain::before {
    position: absolute;
    inset: 0 0 auto;
    height: clamp(560px, 68vw, 980px);
    background-size: cover, contain;
}

/* Background Fit: Tile */
body.projects-showproject-page .sp-page-wrap.project-appearance-scope.project-has-background-image.project-background-fit-tile::before {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-size: cover, auto !important;
    background-repeat: no-repeat, repeat !important;
}

/* Ensure children sit above the absolute/fixed ::before pseudo-element */
body.projects-showproject-page .sp-page-wrap.project-appearance-scope.project-has-background-image > *,
.project-appearance-preview__page.project-appearance-scope.project-has-background-image > * {
    position: relative;
    z-index: 1;
}

/* Preview editor overrides */
.project-appearance-preview__page.project-appearance-scope.project-has-background-image::before {
    position: absolute;
    inset: 0;
    width: auto;
    height: 100%;
    border-radius: inherit;
}
.project-appearance-preview__page.project-appearance-scope.project-has-background-image.project-background-fit-cover::before {
    background-size: cover, cover;
}
.project-appearance-preview__page.project-appearance-scope.project-has-background-image.project-background-fit-contain::before {
    background-size: cover, contain;
}
.project-appearance-preview__page.project-appearance-scope.project-has-background-image.project-background-fit-tile::before {
    background-size: cover, auto !important;
    background-repeat: no-repeat, repeat !important;
}

/* Background Position alignments */
.project-appearance-scope.project-background-position-top::before {
    background-position: center, center top;
}
.project-appearance-scope.project-background-position-center::before {
    background-position: center, center center;
}
.project-appearance-scope.project-background-position-bottom::before {
    background-position: center, center bottom;
}

/* Dark Mode Overlay Masks */
.project-appearance-scope.project-overlay-soft {
    --project-background-overlay: rgba(5, 10, 20, 0.44);
}
.project-appearance-scope.project-overlay-balanced {
    --project-background-overlay: rgba(5, 10, 20, 0.64);
}
.project-appearance-scope.project-overlay-strong {
    --project-background-overlay: rgba(5, 10, 20, 0.8);
}

/* Light Mode Overlay Masks */
html[data-theme="light"] .project-appearance-scope.project-has-background-image.project-overlay-soft,
.preview-theme-light.project-appearance-scope.project-has-background-image.project-overlay-soft {
    --project-background-overlay: rgba(244, 248, 252, 0.2);
    --project-background-fade: rgba(244, 248, 252, 0.98);
}
html[data-theme="light"] .project-appearance-scope.project-has-background-image.project-overlay-balanced,
.preview-theme-light.project-appearance-scope.project-has-background-image.project-overlay-balanced {
    --project-background-overlay: rgba(244, 248, 252, 0.38);
    --project-background-fade: rgba(244, 248, 252, 0.98);
}
html[data-theme="light"] .project-appearance-scope.project-has-background-image.project-overlay-strong,
.preview-theme-light.project-appearance-scope.project-has-background-image.project-overlay-strong {
    --project-background-overlay: rgba(244, 248, 252, 0.56);
    --project-background-fade: rgba(244, 248, 252, 0.99);
}

/* Card Transparency when Project Has Background Image (Frosted Glass Look) */
.project-has-background-image .sp-card {
    background: linear-gradient(180deg, rgba(20, 23, 41, 0.45), rgba(17, 19, 34, 0.45)) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
}

.project-has-background-image .sp-latest-supporters,
.project-has-background-image .sp-owner-card,
.project-has-background-image .sp-details,
.project-has-background-image .sp-owner-closure-card,
.project-has-background-image .sp-rewards,
.project-has-background-image .sp-desc,
.project-has-background-image .sp-social-links-card,
.project-has-background-image .pc-form-card,
.project-has-background-image .pc-feed-card,
.project-has-background-image .pc-card {
    background: linear-gradient(180deg, rgba(20, 23, 41, 0.45), rgba(17, 19, 34, 0.45)) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}

/* Light Theme Card overrides */
html[data-theme="light"] .project-has-background-image .sp-card,
.preview-theme-light.project-has-background-image .sp-card,
html[data-theme="light"] .project-has-background-image .sp-latest-supporters,
.preview-theme-light.project-has-background-image .sp-latest-supporters,
html[data-theme="light"] .project-has-background-image .sp-owner-card,
.preview-theme-light.project-has-background-image .sp-owner-card,
html[data-theme="light"] .project-has-background-image .sp-details,
.preview-theme-light.project-has-background-image .sp-details,
html[data-theme="light"] .project-has-background-image .sp-owner-closure-card,
.preview-theme-light.project-has-background-image .sp-owner-closure-card,
html[data-theme="light"] .project-has-background-image .sp-rewards,
.preview-theme-light.project-has-background-image .sp-rewards,
html[data-theme="light"] .project-has-background-image .sp-desc,
.preview-theme-light.project-has-background-image .sp-desc,
html[data-theme="light"] .project-has-background-image .sp-social-links-card,
.preview-theme-light.project-has-background-image .sp-social-links-card,
html[data-theme="light"] .project-has-background-image .pc-form-card,
.preview-theme-light.project-has-background-image .pc-form-card,
html[data-theme="light"] .project-has-background-image .pc-feed-card,
.preview-theme-light.project-has-background-image .pc-feed-card,
html[data-theme="light"] .project-has-background-image .pc-card,
.preview-theme-light.project-has-background-image .pc-card {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.45), rgba(245, 245, 245, 0.45)) !important;
    border-color: rgba(0, 0, 0, 0.08) !important;
    color: #333 !important;
}

/* Option Colors and Select Customizations for Appearance controls */
.project-appearance-custom-bg-controls select.form-select {
    background-color: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: #fff !important;
    font-size: 0.85rem !important;
    border-radius: 6px !important;
    padding: 0.4rem 2rem 0.4rem 0.8rem !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
}
.project-appearance-custom-bg-controls select.form-select:focus {
    border-color: var(--project-accent) !important;
    box-shadow: 0 0 0 3px rgba(var(--project-accent-rgb), 0.25) !important;
}
.project-appearance-custom-bg-controls select.form-select option {
    background-color: #11162c !important;
    color: #fff !important;
}
/* Light theme preview select overrides */
.preview-theme-light select.form-select {
    background-color: rgba(0, 0, 0, 0.04) !important;
    border: 1px solid rgba(0, 0, 0, 0.15) !important;
    color: #11162c !important;
}
.preview-theme-light select.form-select option {
    background-color: #fff !important;
    color: #11162c !important;
}

/* Footer solid layering protection */
body.projects-showproject-page #footer-4 {
    position: relative;
    z-index: 2;
    color: var(--dark-text) !important;
    background-color: var(--dark-bg) !important;
}

html[data-theme="light"] body.projects-showproject-page #footer-4 {
    background-color: var(--dark-card) !important;
}
