:root {
    --gold: #D9A441; --gold-bright: #EFC36A; --gold-deep: #B8862E;
    --ink: #0C0B09; --ink-2: #13110E; --paper: #F4F2EC;
}

/* ============ MOOD: NOIR (default — kept by base styles) ============ */

/* ============ MOOD: DAYLIGHT ============ */
body.mood-daylight {
    background: #F4F2EC;
    color: #0C0B09;
}
body.mood-daylight .bg-ink,
body.mood-daylight .bg-ink-700,
body.mood-daylight .bg-ink-800,
body.mood-daylight .bg-ink-900 {
    background-color: #F4F2EC !important;
}
body.mood-daylight .hero-bg {
    background:
        radial-gradient(ellipse at 70% 0%, rgba(217,164,65,0.25) 0%, transparent 55%),
        radial-gradient(ellipse at 20% 80%, rgba(217,164,65,0.12) 0%, transparent 50%),
        linear-gradient(180deg, #FBFAF5 0%, #ECE7DA 100%);
}
body.mood-daylight .text-paper { color: #0C0B09 !important; }
body.mood-daylight .text-ink-100 { color: #2A2620 !important; }
body.mood-daylight .text-ink-200 { color: #4A4538 !important; }
body.mood-daylight .text-ink-300 { color: #8C8472 !important; }
body.mood-daylight .border-ink-500\/40,
body.mood-daylight .border-ink-500\/30,
body.mood-daylight .divide-ink-500\/40 > :not([hidden]) ~ :not([hidden]),
body.mood-daylight .divide-ink-500\/30 > :not([hidden]) ~ :not([hidden]) {
    border-color: rgba(140, 132, 114, 0.25) !important;
}
body.mood-daylight header.bg-ink\/85,
body.mood-daylight header { background: rgba(244, 242, 236, 0.85) !important; }
body.mood-daylight .bg-ink-800\/60 { background: rgba(255,255,255,0.6) !important; }
body.mood-daylight ::selection { background: var(--gold); color: #0C0B09; }
body.mood-daylight .num-display.text-paper { color: #0C0B09 !important; }
body.mood-daylight .text-gold-300 { color: #8E6722 !important; }

/* ============ MOOD: BLUEPRINT ============ */
body.mood-blueprint {
    background: #0a1530;
    color: #cfe3ff;
    --gold: #7CC4FF;
    --gold-bright: #B8E0FF;
    --gold-deep: #4A8FD9;
}
body.mood-blueprint .bg-ink,
body.mood-blueprint .bg-ink-700,
body.mood-blueprint .bg-ink-800,
body.mood-blueprint .bg-ink-900 {
    background-color: #0a1530 !important;
    background-image:
        linear-gradient(rgba(124,196,255,0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(124,196,255,0.06) 1px, transparent 1px) !important;
    background-size: 40px 40px !important;
}
body.mood-blueprint .hero-bg {
    background:
        radial-gradient(ellipse at 70% 0%, rgba(124,196,255,0.18) 0%, transparent 55%),
        linear-gradient(180deg, #0a1530 0%, #050A1A 100%) !important;
}
body.mood-blueprint .bg-gold-400 { background-color: #7CC4FF !important; }
body.mood-blueprint .bg-gold-300 { background-color: #B8E0FF !important; }
body.mood-blueprint .text-gold-400, body.mood-blueprint .text-gold-300 { color: #7CC4FF !important; }
body.mood-blueprint .border-gold-400, body.mood-blueprint .border-gold-400\/40, body.mood-blueprint .border-gold-400\/60 {
    border-color: rgba(124,196,255,0.5) !important;
}
body.mood-blueprint .text-ink-800 { color: #0a1530 !important; }
body.mood-blueprint .shimmer-gold {
    background: linear-gradient(90deg, #4A8FD9 0%, #7CC4FF 30%, #E8F4FF 50%, #7CC4FF 70%, #4A8FD9 100%) !important;
    background-size: 200% auto !important;
    -webkit-background-clip: text; background-clip: text;
    color: transparent;
}
body.mood-blueprint .spire-glow { filter: drop-shadow(0 0 18px rgba(184,224,255,0.55)) !important; }
body.mood-blueprint #goldGrad stop:nth-child(1) { stop-color: #E8F4FF; }
body.mood-blueprint #goldGrad stop:nth-child(2) { stop-color: #B8E0FF; }
body.mood-blueprint #goldGrad stop:nth-child(3) { stop-color: #7CC4FF; }
body.mood-blueprint #goldGrad stop:nth-child(4) { stop-color: #4A8FD9; }

/* ============ VOICE: ENGINEERED ============ */
body.voice-engineered {
    font-family: 'Space Grotesk', sans-serif;
}
body.voice-engineered .font-display {
    font-family: 'Space Grotesk', sans-serif !important;
    font-style: normal !important;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    font-weight: 700 !important;
}
body.voice-engineered .italic {
    font-style: normal !important;
    text-decoration: underline;
    text-decoration-color: var(--gold);
    text-decoration-thickness: 3px;
    text-underline-offset: 8px;
}
body.voice-engineered h1, body.voice-engineered h2, body.voice-engineered h3, body.voice-engineered h4 {
    text-transform: uppercase;
    letter-spacing: -0.015em;
}

/* ============ DENSITY ============ */
body.density-compact section .p-8,
body.density-compact section .md\:p-12,
body.density-compact section .md\:p-14,
body.density-compact section .md\:p-16 { padding: 1.5rem !important; }
body.density-compact .py-7 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; }
body.density-compact section .text-6xl, body.density-compact section .md\:text-6xl { font-size: 2.5rem !important; line-height: 1 !important; }
body.density-compact section .text-8xl, body.density-compact section .md\:text-8xl { font-size: 4rem !important; line-height: 0.95 !important; }
body.density-compact .min-h-\[92vh\] { min-height: 70vh !important; }
body.density-compact .gap-10 { gap: 1.25rem !important; }
body.density-compact .mt-12, body.density-compact .mt-10 { margin-top: 1.5rem !important; }

body.density-airy .p-8 { padding: 3rem !important; }
body.density-airy .md\:p-14 { padding: 5rem !important; }
body.density-airy section .text-6xl, body.density-airy section .md\:text-6xl { font-size: 5rem !important; line-height: 1 !important; }
body.density-airy section .text-8xl, body.density-airy section .md\:text-8xl { font-size: 9rem !important; line-height: 0.85 !important; }
body.density-airy .min-h-\[92vh\] { min-height: 110vh !important; }
body.density-airy .gap-10 { gap: 4rem !important; }
html { scroll-behavior: smooth; }
body {
    font-family: 'Inter', sans-serif;
    background: var(--ink);
    color: var(--paper);
    overflow-x: hidden;
}

.reveal { opacity: 0; transform: translateY(2rem); transition: all 1s cubic-bezier(0.16,1,0.3,1); }
.reveal.active { opacity: 1; transform: translateY(0); }

.text-reveal-wrapper { overflow: hidden; display: inline-block; vertical-align: bottom; }
.text-reveal-content {
    transform: translateY(110%); opacity: 0;
    transition: transform 1.2s cubic-bezier(0.16,1,0.3,1), opacity 1.2s ease;
    display: block;
}
.reveal-active .text-reveal-content { transform: translateY(0); opacity: 1; }
.delay-100 { transition-delay: 0.1s; }
.delay-200 { transition-delay: 0.2s; }
.delay-300 { transition-delay: 0.3s; }
.delay-500 { transition-delay: 0.5s; }
.delay-700 { transition-delay: 0.7s; }

.marquee-container { display: flex; overflow: hidden; user-select: none; }
.marquee-content {
    flex-shrink: 0; display: flex; align-items: center;
    justify-content: space-around; min-width: 100%;
    animation: scroll 35s linear infinite;
}
@keyframes scroll { from { transform: translateX(0); } to { transform: translateX(-100%); } }

.nav-load { opacity: 0; transform: translateY(-10px); transition: all 0.8s ease-out; }
.nav-load.loaded { opacity: 1; transform: translateY(0); }

.btn-beam { position: relative; overflow: hidden; }
.btn-beam::before {
    content: ""; position: absolute; top: 0; left: -100%;
    width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,225,160,0.45), transparent);
    transition: left 0.6s;
}
.btn-beam:hover::before { left: 100%; }

.shimmer-gold {
    background: linear-gradient(90deg, #8E6722 0%, #EFC36A 30%, #FBF3DC 50%, #EFC36A 70%, #8E6722 100%);
    background-size: 200% auto;
    color: transparent;
    -webkit-background-clip: text; background-clip: text;
    animation: shimmer 5s linear infinite;
}
@keyframes shimmer { from { background-position: 0 0; } to { background-position: -200% 0; } }

.flashlight { background: rgba(255,255,255,0.02); position: relative; overflow: hidden; }
.flashlight::before {
    content: ""; position: absolute; inset: 0;
    background: radial-gradient(500px circle at var(--mouse-x) var(--mouse-y),
        rgba(217,164,65,0.18), transparent 40%);
    opacity: 0; transition: opacity 0.5s;
    pointer-events: none; z-index: 2;
}
.flashlight:hover::before { opacity: 1; }

.hero-bg {
    background:
        radial-gradient(ellipse at 70% 0%, rgba(217,164,65,0.18) 0%, transparent 55%),
        radial-gradient(ellipse at 20% 80%, rgba(217,164,65,0.08) 0%, transparent 50%),
        linear-gradient(180deg, #0C0B09 0%, #060604 100%);
}
.grain {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.35 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
    opacity: 0.18; mix-blend-mode: overlay;
}
.spire-glow { filter: drop-shadow(0 0 18px rgba(239,195,106,0.55)); }
.gold-rule {
    height: 1px;
    background: linear-gradient(90deg, transparent, #B8862E 20%, #EFC36A 50%, #B8862E 80%, transparent);
}
::selection { background: var(--gold); color: #0C0B09; }

/* counter ticker number style */
.num-display { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }

/* step connector */
.step-line {
    background: linear-gradient(180deg, #B8862E 0%, transparent 100%);
}

/* faq toggle */
details[open] summary .faq-icon { transform: rotate(45deg); }
.faq-icon { transition: transform 0.3s ease; }
details summary::-webkit-details-marker { display: none; }
details summary { list-style: none; cursor: pointer; }

/* card border glow on hover */
.card-glow { transition: all 0.5s ease; }
.card-glow:hover {
    border-color: rgba(217,164,65,0.5);
    box-shadow: 0 20px 60px -20px rgba(217,164,65,0.25);
}

/* simulator */
.slider-gold {
    -webkit-appearance: none; appearance: none;
    width: 100%; height: 4px; background: rgba(217,164,65,0.25);
    border-radius: 999px; outline: none;
}
.slider-gold::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none;
    width: 22px; height: 22px; background: #EFC36A;
    border-radius: 50%; cursor: pointer;
    border: 3px solid #0C0B09;
    box-shadow: 0 0 0 1px #D9A441, 0 0 16px rgba(239,195,106,0.6);
}
.slider-gold::-moz-range-thumb {
    width: 22px; height: 22px; background: #EFC36A;
    border-radius: 50%; cursor: pointer; border: 3px solid #0C0B09;
    box-shadow: 0 0 0 1px #D9A441, 0 0 16px rgba(239,195,106,0.6);
}