.material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; }
html {
    scrollbar-gutter: stable;
    background-color: #fdfaf1;
}

::-webkit-scrollbar {
    width: 12px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background-color: #dbc0c1;
    border-radius: 10px;
    border: 3px solid #faf9f8;
}

::-webkit-scrollbar-thumb:hover {
    background-color: #9e3e4d;
}

* {
    scrollbar-width: thin;
    scrollbar-color: #dbc0c1 #faf9f8;
}

body { cursor: none; }
a, button, select, input, textarea, .gallery-item { cursor: none !important; }

.mandala-bg { background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M50 0c2.2 0 4 1.8 4 4s-1.8 4-4 4-4-1.8-4-4 1.8-4 4-4zm0 92c2.2 0 4 1.8 4 4s-1.8 4-4 4-4-1.8-4-4 1.8-4 4-4zm42-42c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4zm-92 0c0-2.2 1.8-4 4-4s4 1.8 4 4-1.8 4-4 4-4-1.8-4-4z' fill='%23ffdea5' fill-opacity='0.15'/%3E%3C/svg%3E"); }
.floral-watermark { background-image: url("data:image/svg+xml,%3Csvg width='120' height='120' viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M60 0 C 65 15 75 25 90 30 C 75 35 65 45 60 60 C 55 45 45 35 30 30 C 45 25 55 15 60 0' fill='%23E9D7A5' fill-opacity='0.08'/%3E%3C/svg%3E"); }
.ornate-bg { background-color: #faf9f8; background-image: radial-gradient(#dbc0c1 0.5px, transparent 0.5px); background-size: 24px 24px; background-attachment: fixed; }

#custom-cursor { width: 20px; height: 20px; border: 4px solid #004d00; background: transparent; border-radius: 50%; position: fixed; pointer-events: none; z-index: 10000; transition: border-color 0.3s ease, transform 0.1s ease-out; transform: translate(-50%, -50%); }
#custom-cursor.menu-active, #custom-cursor.dark-bg { border-color: #E9D7A5 !important; }
#custom-cursor.globe-hover { border-color: #5E0B1F !important; }

.petal { position: fixed; pointer-events: none; z-index: 9998; user-select: none; animation: fall 3s ease-out forwards; }
@keyframes fall { 0% { transform: translate(0, 0) rotate(0deg); opacity: 1; } 100% { transform: translate(var(--tx), var(--ty)) rotate(var(--tr)); opacity: 0; } }

.ornate-border { border: 1px solid #E9D7A5; outline: 4px double #E9D7A5; outline-offset: 4px; padding: 3rem; }
.btn-gilded { background: linear-gradient(135deg, #E9D7A5 0%, #C4A45A 50%, #E9D7A5 100%); box-shadow: 0 4px 15px rgba(233, 215, 165, 0.3); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); }

#menu-overlay { clip-path: circle(0% at 100% 0%); transition: clip-path 0.8s cubic-bezier(0.77, 0, 0.175, 1), opacity 0.5s ease; }
#menu-overlay.active { clip-path: circle(150% at 100% 0%) !important; opacity: 1 !important; pointer-events: auto !important; }

.mandala-divider::before, .mandala-divider::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, #ffdea5, transparent); }
#main-gallery { display: flex; flex-direction: column; gap: 0 !important; font-size: 0; }
#main-gallery > div { margin-bottom: -1px; } /* Ensures 0 sub-pixel gaps */

.reveal-item { opacity: 0; transform: translateY(50px); transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1), transform 1.2s cubic-bezier(0.16, 1, 0.3, 1), filter 0.5s ease; will-change: opacity, transform, filter; margin: 0 !important; padding: 0 !important; border: none !important; line-height: 0; display: block; }
.reveal-item.revealed { opacity: 1; transform: translateY(0); }

/* Randomized Effects - Filter is resting state, Hover restores normal color */
.reveal-item.effect-exposure { filter: brightness(0.5) contrast(1.2); }
.reveal-item.effect-exposure:hover { filter: brightness(1) contrast(1); }

.reveal-item.effect-saturation { filter: grayscale(100%) sepia(30%); }
.reveal-item.effect-saturation:hover { filter: grayscale(0%) sepia(0%); }

.reveal-item.effect-blur { filter: blur(15px) brightness(0.8); }
.reveal-item.effect-blur:hover { filter: blur(0px) brightness(1); }

.reveal-item.effect-contrast { filter: contrast(1.8) saturate(0); }
.reveal-item.effect-contrast:hover { filter: contrast(1) saturate(1); }

/* Upload Loading Cursor */
#custom-cursor.is-loading {
    border-color: transparent !important;
    background: conic-gradient(from 0deg, #ffd1dc, #fff0f3, #ffebef, #ffffff, #E9D7A5, #ffd1dc);
    animation: cursor-spin 1s linear infinite;
}

@keyframes cursor-spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

/* Seamless Velvet-Red Page Transitions */
body:not(.is-intercept)::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 99999;
    background-color: #5E0B1F; /* Royal Maroon */
    pointer-events: none;
    opacity: 1;
    transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

body.page-loaded:not(.is-intercept)::after {
    opacity: 0;
}