:root {
    /* Colors */
    --gold-light: #FFF5D6;
    --gold: #E6C888;
    --gold-dark: #C4A059;
    --gold-shadow: #8C6E30;
    --gold-dim: rgba(196, 160, 89, 0.4);
    --charcoal: #151515;
    --royal: #050505;
    --obsidian: #050505;

    /* Standardized Text Colors (Aliases) */
    --lightgold: var(--gold-light);
    --subgold: var(--gold-dark);
    --white: #FFFFFF;
    --gray: #9CA3AF;
    /* Cool Gray 400 */
    --gray-medium: #6B7280;
    /* Cool Gray 500 */
    --gray-light: #D1D5DB;
    /* Cool Gray 300 */
    --gray-dark: #4B5563;
    /* Cool Gray 600 */
    --gray-warm: #A8A29E;
    /* Warm Gray 400 */

    /* Fonts */
    --font-serif: "Playfair Display", serif;
    --font-cinzel: "Cinzel", serif;
    --font-script: "Pinyon Script", cursive;
    --font-sans: "Lato", sans-serif;

    /* Backgrounds */
    --gold-gradient: linear-gradient(120deg, #FDFBF0 0%, #EEDC9A 30%, #D4B264 70%, #F0D695 100%);
    --gold-text: linear-gradient(to right, #FDFBF0, #EEDC9A, #FDFBF0);
    --dark-texture: linear-gradient(to bottom, #111, #000);
    --spotlight: radial-gradient(circle at 50% 0%, rgba(230, 200, 136, 0.08) 0%, transparent 70%);

    /* Shadows */
    --shadow-elegant: 0 20px 50px -12px rgba(0, 0, 0, 0.5);
    --shadow-inner-gold: inset 0 0 0 1px rgba(26, 26, 26, 0.1);
    --shadow-glow: 0 0 25px rgba(196, 160, 89, 0.1);
}

/* Global Reset & Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border-radius: 0 !important;
    /* Strict Royal Rule */
}

html {
    scroll-behavior: smooth;
}

body {
    background-color: var(--royal);
    color: var(--gold);
    font-family: var(--font-sans);
    line-height: 1.6;
    overflow-x: hidden;
}

input,
select,
textarea {
    font-family: var(--font-cinzel);
}

::selection {
    background-color: var(--gold-dark);
    color: white;
}

/* Typography Utilities */
.text-gold-light {
    color: var(--gold-light);
}

.text-gold-dark {
    color: var(--gold-dark);
}

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

.text-lightgold {
    color: var(--lightgold);
}

.text-subgold {
    color: var(--subgold);
}

.text-white {
    color: var(--white);
}

.text-gray {
    color: var(--gray);
}

.text-gray-medium {
    color: var(--gray-medium);
}

.text-gray-light {
    color: var(--gray-light);
}

.text-gray-dark {
    color: var(--gray-dark);
}

.text-gray-warm {
    color: var(--gray-warm);
}

.font-serif {
    font-family: var(--font-serif);
}

.font-cinzel {
    font-family: var(--font-cinzel);
}

.font-script {
    font-family: var(--font-script);
}

.font-sans {
    font-family: var(--font-sans);
}

.tracking-widest-royal {
    letter-spacing: 0.25em;
}

.tracking-widest {
    letter-spacing: 0.2em;
}

/* Background Utilities */
.bg-gold-light {
    background-color: var(--gold-light);
}

.bg-gold-dark {
    background-color: var(--gold-dark);
}

.bg-gold {
    background-color: var(--gold);
}

.bg-royal {
    background-color: var(--royal);
}

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

.bg-obsidian {
    background-color: var(--obsidian);
}

.bg-gold-gradient {
    background-image: var(--gold-gradient);
}

.bg-gold-text {
    background-image: var(--gold-text);
}

.bg-dark-texture {
    background-image: var(--dark-texture);
}

.bg-spotlight {
    background-image: var(--spotlight);
}

.bg-gold-dark\/10 {
    background-color: rgba(196, 160, 89, 0.1);
}

.bg-gold-dark\/20 {
    background-color: rgba(196, 160, 89, 0.2);
}

.bg-gold-dark\/30 {
    background-color: rgba(196, 160, 89, 0.3);
}

.bg-gold-dark\/40 {
    background-color: rgba(196, 160, 89, 0.4);
}

/* Opacity Border Variants - Common across pages */
.border-gold-dark\/5 {
    border-color: rgba(196, 160, 89, 0.05);
}

.border-gold-dark\/10 {
    border-color: rgba(196, 160, 89, 0.1);
}

.border-gold-dark\/20 {
    border-color: rgba(196, 160, 89, 0.2);
}

.border-gold-dark\/30 {
    border-color: rgba(196, 160, 89, 0.3);
}

.border-gold-dark\/40 {
    border-color: rgba(196, 160, 89, 0.4);
}

.border-gold-dark\/50 {
    border-color: rgba(196, 160, 89, 0.5);
}

/* Animations */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.fade-in-section {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1s ease-out, transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.fade-in-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Shine effect for gold text */
.shine-text {
    background: linear-gradient(to right, #bf953f, #fcf6ba, #b38728, #fbf5b7, #aa771c);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    background-size: 200% auto;
    animation: shine 5s linear infinite;
}

@keyframes shine {
    to {
        background-position: 200% center;
    }
}

/* Hover Utilities */
.hover\:bg-gold-light:hover {
    background-color: var(--gold-light);
}

.hover\:text-royal:hover {
    color: var(--royal);
}

/* Floating Dust Animation (Common) */
.gold-dust {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    overflow: hidden;
    z-index: 1;
}

.dust-particle {
    position: absolute;
    background: rgba(230, 200, 136, 0.4);
    border-radius: 50%;
    pointer-events: none;
    z-index: 15;
}

@keyframes float-rise {
    0% {
        transform: translateY(100vh) translateX(0);
        opacity: 0;
    }

    50% {
        opacity: 0.6;
    }

    100% {
        transform: translateY(-20vh) translateX(20px);
        opacity: 0;
    }
}

/* Opacity Text Variants (Matches HTML classes) */
.text-gold-dark\/80 {
    color: rgba(196, 160, 89, 0.8);
}

.text-gold-dark\/60 {
    color: rgba(196, 160, 89, 0.6);
}