/* core/static/core/style.css */

:root {
    --primary-rose: #9c2747;
    --accent-gold: #cfa35e;
    --light-pink: #f096aa;
    --text-dark: #2c1e22;
    --text-light: #5a4a4f;
    --parchment-bg: #fffbf0; 
    --wood-dark: #3e2723; 
    --wood-light: #5d4037;
    --ink-color: #3b2a2a;
}

body {
    /*background: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url('https://images.unsplash.com/photo-1494972308805-463bc619d34e?ixlib=rb-1.2.1&auto=format&fit=crop&w=1920&q=80');*/
    background: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url('https://images.unsplash.com/photo-1507525428034-b723cf961d3e?ixlib=rb-1.2.1&auto=format&fit=crop&w=1920&q=80');
    /*background: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url('https://images.unsplash.com/photo-1419242902214-272b3f66ee7a?ixlib=rb-1.2.1&auto=format&fit=crop&w=1920&q=80');*/

    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    font-family: 'Montserrat', sans-serif;
    overflow-x: hidden; 
    padding-top: 50px;
    padding-bottom: 80px; 
    -webkit-tap-highlight-color: transparent;
}

/* --- FALLING ROSES ANIMATION (Optimized) --- */
.falling-rose-container {
    position: fixed;
    top: -150px; 
    z-index: 9999;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    
    /* GPU Acceleration to prevent main-thread lag */
    transform: translate3d(0,0,0);
    will-change: transform, opacity;
    
    animation: roseFall linear forwards;
    opacity: 0.9;
}

.rose-head {
    font-size: 2.5rem; 
    line-height: 1;
    z-index: 20;
    filter: drop-shadow(0 2px 3px rgba(0,0,0,0.3));
}

.rose-stem {
    width: 4px;
    height: 70px; 
    background: linear-gradient(to bottom, #2e7d32, #558b2f);
    margin-top: -5px; 
    border-radius: 2px;
    position: relative;
    z-index: 19;
    box-shadow: 1px 1px 2px rgba(0,0,0,0.2);
}

.rose-stem::after {
    content: "🍃";
    position: absolute;
    top: 20px;
    left: 2px;
    font-size: 1.2rem;
    transform: rotate(-20deg);
}

@keyframes roseFall {
    0% { transform: translateY(0) rotate(0deg); opacity: 1; }
    50% { transform: translateY(55vh) rotate(15deg); }
    100% { transform: translateY(120vh) rotate(-15deg); opacity: 0; }
}

/* --- GLASS CONTAINER (Visuals Preserved) --- */
.glass-container {
    background-color: rgba(255, 255, 255, 0.88);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 150 150'%3E%3Ctext x='50%25' y='50%25' font-family='Playfair Display, serif' font-weight='700' font-style='italic' font-size='32' fill='%23cfa35e' opacity='0.12' text-anchor='middle' dominant-baseline='middle' transform='rotate(-25 75 75)'%3EN%26amp;M%3C/text%3E%3C/svg%3E");
    background-repeat: repeat;
    
    /* Animation Active */
    animation: hologramShift 80s linear infinite;
    
    /* Frosted Glass Effect */
    backdrop-filter: blur(8px); 
    -webkit-backdrop-filter: blur(8px);
    
    padding: 3rem 2.5rem 6rem 2.5rem;
    border-radius: 25px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.4), 0 0 0 2px rgba(207, 163, 94, 0.3) inset;
    max-width: 850px;
    width: 90%;
    text-align: center;
    border: 1px solid rgba(255, 255, 255, 0.5);
    position: relative;
    z-index: 10;
    margin-bottom: 5rem;
    overflow: hidden;
    
    /* Performance Optimizations */
    contain: content; /* Stops internal changes from triggering page re-layout */
    transform: translate3d(0,0,0); /* Force GPU */
    will-change: background-position; /* Hint to browser to optimize animation */
}

@keyframes hologramShift {
    0% { background-position: 0% 0%; }
    100% { background-position: 100% 100%; }
}

.initials-header {
    font-family: 'Playfair Display', serif;
    font-size: 4.5rem;
    font-weight: 700;
    color: var(--primary-rose);
    line-height: 0.9;
    margin-bottom: 0.5rem;
    position: relative;
    z-index: 2;
    text-shadow: 2px 2px 4px rgba(255,255,255,0.8);
}


.ampersand { font-style: italic; color: var(--accent-gold); font-size: 3rem; }

h2 {
    font-size: 1.2rem;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: var(--text-light);
    margin: 0 0 1rem 0;
    position: relative;
    z-index: 2;
}

.sub-text {
    font-family: 'Great Vibes', cursive; 
    font-size: 2.8rem; 
    color: var(--primary-rose); 
    margin-bottom: 2.5rem;
    position: relative;
    z-index: 2;
    line-height: 1.2;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.1); 
    padding: 0 10px;
}

/* --- TIMER --- */
.timer {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px;
    margin-bottom: 2rem; 
    position: relative;
    z-index: 2;
}

.time-box {
    background: #fff;
    border: 1px solid rgba(207, 163, 94, 0.4);
    border-radius: 12px;
    padding: 15px 10px;
    min-width: 85px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 5px 15px rgba(156, 39, 71, 0.08);
    position: relative; 
    overflow: visible; 
}

.count { font-size: 1.8rem; font-weight: 700; color: var(--primary-rose); }
.label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 1px; color: var(--accent-gold); margin-top: 5px; font-weight: 600; }

/* --- QUOTE BOX --- */
.quote-box {
    margin: 2rem auto 2rem auto; 
    padding: 2rem;
    background: rgba(255, 255, 255, 0.90); 
    border-left: 4px solid var(--primary-rose); 
    border-radius: 8px;
    max-width: 80%;
    position: relative;
    z-index: 5;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.quote-label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 2px; color: var(--accent-gold); margin-bottom: 12px; font-weight: 700; }
.dynamic-quote-text { font-family: 'Playfair Display', serif; font-style: italic; font-size: 1.2rem; color: var(--text-dark); line-height: 1.6; }

/* --- BUTTON GROUP --- */
.buttons-container {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 2rem;
    flex-wrap: 100%;
    position: relative;
    z-index: 20;
}

.action-btn {
    border: none;
    padding: 14px 35px;
    border-radius: 50px;
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden; 
}

/* WORDLE BUTTON */
.wordle-btn {
    background: linear-gradient(135deg, var(--accent-gold) 0%, #b88e4d 100%);
    color: white;
    box-shadow: 0 4px 15px rgba(207, 163, 94, 0.4);
}
.wordle-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(207, 163, 94, 0.6); }
.wordle-btn::after {
    content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%;
    background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0) 100%);
    transform: skewX(-25deg); animation: sheen 6s infinite;
}
@keyframes sheen { 0% { left: -100%; } 40% { left: 200%; } 100% { left: 200%; } }

/* MUSIC BUTTON */
.music-btn {
    background: var(--primary-rose); color: white;
    box-shadow: 0 5px 15px rgba(156, 39, 71, 0.3); animation: pulse-glow 2s infinite;
}
.music-btn:hover { background: #7d1f39; transform: translateY(-2px); animation: none; }
.music-btn.playing { animation: none; background: #7d1f39; }
@keyframes pulse-glow {
    0% { box-shadow: 0 0 0 0 rgba(156, 39, 71, 0.7); }
    70% { box-shadow: 0 0 0 15px rgba(156, 39, 71, 0); }
    100% { box-shadow: 0 0 0 0 rgba(156, 39, 71, 0); }
}

/* --- EQUALIZER --- */
.equalizer-container { position: absolute; bottom: 0; left: 0; width: 100%; height: 80px; display: flex; justify-content: center; align-items: flex-end; gap: 6px; z-index: 0; pointer-events: none; opacity: 0.3; padding-bottom: 0; }
.bar { width: 14px; background: linear-gradient(to top, #5e1742, var(--primary-rose), var(--accent-gold), #ffc107); border-radius: 5px 5px 0 0; animation: bounce 1s infinite ease-in-out; height: 5px; }
.bar:nth-child(odd) { animation-duration: 1.2s; } .bar:nth-child(even) { animation-duration: 0.9s; } .bar:nth-child(3n) { animation-duration: 1.5s; } .bar:nth-child(4n) { animation-duration: 1.1s; }
@keyframes bounce { 0%, 100% { height: 5px; } 50% { height: 100%; } }
.paused .bar { animation-play-state: paused; height: 5px !important; transition: height 0.5s ease; }

/* --- MODAL MAIN STRUCTURE --- */
.modal-overlay {
    display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(44, 30, 34, 0.85); backdrop-filter: blur(8px); z-index: 1000;
    justify-content: center; align-items: center; flex-direction: column;
}
.modal-content {
    background: #fff; padding: 20px; border-radius: 20px; width: 90%; max-width: 450px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.5); position: relative; text-align: center;
    border: 2px solid var(--accent-gold); animation: bounceIn 0.6s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}
@keyframes bounceIn { 
    0% { transform: scale(0.3); opacity: 0; } 50% { transform: scale(1.05); opacity: 1; } 
    70% { transform: scale(0.9); } 100% { transform: scale(1); } 
}
.modal-close {
    position: absolute; top: 10px; right: 15px; font-size: 1.8rem; cursor: pointer;
    color: var(--text-light); font-weight: bold; z-index: 10;
}

/* --- WORDLE OPTIMIZED STYLES --- */
#game-message { height: 25px; margin: 10px 0; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 1rem; color: var(--primary-rose); opacity: 0; transition: opacity 0.2s ease; }

.wordle-grid { 
    display: grid; 
    grid-template-columns: repeat(5, 1fr); 
    gap: 5px; 
    margin: 10px auto; 
    max-width: 280px; 
    
    /* OPTIMIZATION: Separate layer for grid */
    transform: translate3d(0,0,0);
}

.tile { 
    aspect-ratio: 1; 
    border: 2px solid #d3d6da; 
    display: flex; 
    justify-content: center; 
    align-items: center; 
    font-size: 1.8rem; 
    font-weight: 800; 
    text-transform: uppercase; 
    background: white; 
    color: var(--text-dark); 
    border-radius: 4px; 
    
    /* OPTIMIZATION: Only animate specific properties to avoid full repaints */
    will-change: transform, background-color, border-color;
    transition: background-color 0.4s, border-color 0.4s, color 0.4s, transform 0.1s;
    backface-visibility: hidden;
}

.tile.correct { background-color: var(--primary-rose); color: white; border-color: var(--primary-rose); }
.tile.present { background-color: var(--accent-gold); color: white; border-color: var(--accent-gold); }
.tile.absent { background-color: #787c7e; color: white; border-color: #787c7e; }
.tile.filled { border-color: #878a8c; animation: pop 0.1s ease-in-out; }
@keyframes pop { 50% { transform: scale(1.1); } }

.shake { animation: shake 0.5s; }
@keyframes shake { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-5px); } 80% { transform: translateX(5px); } }

.keyboard { display: flex; flex-direction: column; gap: 6px; align-items: center; width: 100%; margin-top: 15px; transform: translate3d(0,0,0); }
.key-row { display: flex; gap: 4px; width: 100%; justify-content: center; }
.key { height: 50px; flex: 1; max-width: 40px; background: #d3d6da; border-radius: 4px; font-weight: bold; cursor: pointer; text-transform: uppercase; user-select: none; font-size: 0.9rem; display: flex; justify-content: center; align-items: center; touch-action: manipulation; transition: background-color 0.2s; }
.key:active { background: #bbb; transform: translateY(1px); }
.key.big { max-width: 55px; font-size: 0.75rem; }
.game-controls { display: flex; justify-content: center; gap: 15px; margin-top: 20px; border-top: 1px solid #eee; padding-top: 15px; }
.control-btn { padding: 8px 20px; border-radius: 20px; font-size: 0.9rem; font-weight: 700; cursor: pointer; border: none; font-family: 'Montserrat', sans-serif; }
.btn-new { background: var(--accent-gold); color: white; }
.btn-giveup { background: #e0e0e0; color: #555; }

/* --- JOKE MODAL REDESIGNED --- */
.joke-content-redesigned {
    background: radial-gradient(circle at center, #fff5e6 0%, #ffe0e9 100%);
    padding: 35px 25px; border: 4px solid var(--accent-gold); border-radius: 35px;
    box-shadow: 0 10px 30px rgba(156, 39, 71, 0.3), inset 0 0 20px rgba(255,255,255,0.8); overflow: visible;
}

/* --- FEEDBACK MODAL STYLES --- */
.feedback-content {
    background: #fffbf0;
    border: 3px solid var(--primary-rose);
    border-radius: 30px;
    padding: 30px;
    text-align: center;
}
.feedback-icon { font-size: 4rem; display: block; margin-bottom: 10px; animation: pulse 2s infinite; }
@keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }

.feedback-input {
    width: 100%;
    padding: 15px;
    border: 2px solid var(--accent-gold);
    border-radius: 15px;
    margin: 15px 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    background: rgba(255, 255, 255, 0.9);
    box-sizing: border-box;
    resize: vertical;
    min-height: 80px;
}
.feedback-input:focus { outline: none; border-color: var(--primary-rose); box-shadow: 0 0 5px rgba(156, 39, 71, 0.3); }

.btn-love { background: var(--primary-rose); color: white; border: none; padding: 10px 25px; border-radius: 20px; font-weight: bold; cursor: pointer; font-size: 1rem; margin: 5px; }
.btn-love:hover { background: #7d1f39; transform: translateY(-2px); }

.btn-submit { background: var(--accent-gold); color: white; border: none; padding: 12px 30px; border-radius: 25px; font-weight: bold; cursor: pointer; font-size: 1rem; width: 100%; margin-top: 5px; }
.btn-submit:hover { background: #b88e4d; }

/* EMOJI STYLES (Joke Modal) */
.joke-emoji {
    font-size: 5rem; display: block; margin: 0 auto 10px auto;
    animation: floatBouncy 3s ease-in-out infinite; filter: drop-shadow(0 5px 5px rgba(0,0,0,0.1));
}
@keyframes floatBouncy {
    0%, 100% { transform: translateY(0) rotate(-5deg); }
    50% { transform: translateY(-12px) rotate(5deg); }
}

.joke-headline { font-family: 'Great Vibes', cursive; color: var(--primary-rose); font-size: 2rem; margin-bottom: 10px; line-height: 1; }
.joke-question-playful { font-family: 'Montserrat', sans-serif; font-size: 1.2rem; color: var(--text-dark); margin-bottom: 30px; line-height: 1.5; }
.joke-url-pop {
    display: block; margin-top: 10px; font-family: 'Playfair Display', serif; font-weight: 800; font-style: italic;
    font-size: 1.6rem; color: var(--primary-rose);
    text-shadow: 2px 2px 0px var(--accent-gold), 4px 4px 10px rgba(0,0,0,0.1);
    transform: rotate(-2deg); display: inline-block;
}
.joke-actions-playful { display: flex; justify-content: center; gap: 15px; }
.joke-btn-playful {
    padding: 14px 32px; border: none; border-radius: 50px;
    font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 1rem; text-transform: uppercase;
    cursor: pointer; transition: all 0.2s; position: relative; top: 0;
    box-shadow: 0 6px 0px rgba(0,0,0,0.1);
}
.joke-btn-playful:active { top: 4px; box-shadow: 0 2px 0px rgba(0,0,0,0.1); }
.joke-yes-playful { background: linear-gradient(45deg, var(--primary-rose), #d65a7f); color: white; }
.joke-no-playful { background: linear-gradient(45deg, #fff, #f0f0f0); color: var(--text-light); border: 2px solid #e0e0e0; }

/* --- SCROLLS --- */
.scrolls-wrapper { display: flex; flex-direction: row; justify-content: center; gap: 80px; max-width: 1000px; width: 90%; margin-top: 20px; }
.ancient-scroll { display: flex; flex-direction: column; width: 100%; min-width: 320px; position: relative; filter: drop-shadow(0 15px 25px rgba(0,0,0,0.5)); }
.scroll-roll { height: 45px; width: 100%; background: linear-gradient(to bottom, #d7c59a 0%, #f7ecd1 30%, #f7ecd1 70%, #c4b083 100%); border-radius: 4px; position: relative; z-index: 5; box-shadow: 0 2px 5px rgba(0,0,0,0.3); border: 1px solid #c4b083; }
.scroll-body { background: var(--parchment-bg); background: linear-gradient(to right, #e8dcb5 0%, #f7ecd1 10%, #f7ecd1 90%, #e8dcb5 100%); padding: 2rem; margin: -15px 10px; position: relative; z-index: 4; color: var(--ink-color); text-align: center; box-shadow: inset 0 0 30px rgba(0,0,0,0.05); }
.scroll-finial { position: absolute; top: 50%; transform: translateY(-50%); width: 25px; height: 35px; background: linear-gradient(to right, var(--wood-dark), var(--wood-light), var(--wood-dark)); border-radius: 4px; box-shadow: 2px 2px 5px rgba(0,0,0,0.6); z-index: 3; }
.scroll-finial::after { content: ''; position: absolute; top: 2px; bottom: 2px; width: 4px; background: #ffd700; box-shadow: 0 0 2px rgba(0,0,0,0.5); }
.scroll-finial.left { left: -15px; border-top-left-radius: 8px; border-bottom-left-radius: 8px; } .scroll-finial.left::after { right: 4px; }
.scroll-finial.right { right: -15px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; } .scroll-finial.right::after { left: 4px; }
.tassel { position: absolute; top: 25px; width: 2px; height: 0; z-index: 2; }
.tassel-string { width: 2px; height: 100px; background: #8b0000; position: absolute; top: 0; left: 0; box-shadow: 1px 0 2px rgba(0,0,0,0.3); }
.tassel-knot { width: 10px; height: 25px; background: var(--primary-rose); position: absolute; bottom: -125px; left: -4px; border-radius: 3px 3px 10px 10px; box-shadow: 0 3px 5px rgba(0,0,0,0.4); }
.tassel-knot::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 10px; border-top: 1px solid rgba(0,0,0,0.2); background: repeating-linear-gradient(90deg, transparent, transparent 1px, rgba(0,0,0,0.1) 1px, rgba(0,0,0,0.1) 2px); }
.scroll-inner-border { border: 1px solid rgba(207, 163, 94, 0.4); padding: 15px; position: relative; }
.scroll-inner-border::before, .scroll-inner-border::after { content: '✦'; position: absolute; color: var(--accent-gold); font-size: 1.2rem; }
.scroll-inner-border::before { top: -10px; left: 50%; transform: translateX(-50%); } .scroll-inner-border::after { bottom: -10px; left: 50%; transform: translateX(-50%); }
.scroll-title { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 2rem; color: #7a2e40; margin-bottom: 1rem; text-decoration: underline wavy rgba(207, 163, 94, 0.5); }
.poem-content { font-family: 'Playfair Display', serif; font-style: italic; font-size: 1.15rem; line-height: 1.9; white-space: pre-line; }

/* Floating Hearts */
.floating-heart { position: absolute; bottom: -30px; color: var(--light-pink); opacity: 0; pointer-events: none; animation: floatUp linear forwards; z-index: 10; text-shadow: 0 0 5px rgba(240, 150, 170, 0.6); }
@keyframes floatUp { 0% { transform: translateY(0) scale(0.5); opacity: 0; } 10% { opacity: 0.8; } 100% { transform: translateY(-800px) scale(1.5); opacity: 0; } }

@media (max-width: 850px) {
    .scrolls-wrapper { flex-direction: column; align-items: center; gap: 60px; }
    .ancient-scroll { width: 95%; }
    .initials-header { font-size: 3rem; }
}

/* --- WINNING CONFETTI --- */
.confetti-piece {
    position: fixed;
    top: -20px;
    width: 10px;
    height: 20px;
    background: #ffd700;
    z-index: 10001; /* Highest priority */
    opacity: 0;
    pointer-events: none;
    animation: confetti-fall linear forwards;
}

@keyframes confetti-fall {
    0% { transform: translateY(0) rotate(0deg); opacity: 1; }
    25% { transform: translateY(25vh) rotate(90deg); opacity: 1; }
    50% { transform: translateY(50vh) rotate(180deg); opacity: 1; }
    100% { transform: translateY(110vh) rotate(720deg); opacity: 0; }
}

/* --- SONG SELECTOR STYLES --- */
.song-select {
    padding: 10px 15px;
    border-radius: 25px;
    border: 2px solid var(--accent-gold);
    background-color: rgba(255, 255, 255, 0.9);
    color: var(--primary-rose);
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.9rem;
    outline: none;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    min-width: 250px;
    text-align: center;
    appearance: none; /* Removes default browser arrow */
    background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23cfa35e%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
    background-repeat: no-repeat;
    background-position: right 15px top 50%;
    background-size: 12px auto;
}

.song-select:hover {
    background-color: #fff;
    box-shadow: 0 6px 15px rgba(207, 163, 94, 0.3);
}

/* --- CUSTOM GLASS DROPDOWN --- */
.custom-dropdown {
    position: relative;
    width: 280px;
    margin: 0 auto;
    font-family: 'Montserrat', sans-serif;
    z-index: 100; /* Ensure it floats above other elements */
}

/* The Box you click */
.dropdown-trigger {
    background-color: rgba(255, 255, 255, 0.9);
    border: 2px solid var(--accent-gold);
    border-radius: 25px;
    padding: 12px 20px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--primary-rose);
    font-weight: 700;
    font-size: 0.95rem;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
}

.dropdown-trigger:hover {
    background-color: #fff;
    box-shadow: 0 6px 15px rgba(207, 163, 94, 0.3);
    transform: translateY(-1px);
}

.dropdown-arrow {
    font-size: 0.8rem;
    transition: transform 0.3s ease;
}

/* The List that opens */
.dropdown-menu {
    position: absolute;
    top: 110%; /* Just below the trigger */
    left: 0;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.95);
    border: 1px solid var(--accent-gold);
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
    overflow: hidden;
    
    /* Animation setup */
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    
    /* Glass blur for the menu itself */
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

/* Active State (Open) */
.custom-dropdown.active .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.custom-dropdown.active .dropdown-arrow {
    transform: rotate(180deg);
}

/* The Song Items */
.dropdown-item {
    padding: 12px 20px;
    color: var(--text-dark);
    font-size: 0.9rem;
    cursor: pointer;
    transition: background 0.2s;
    
    /* --- THE SEPARATOR LINE --- */
    border-bottom: 1px solid rgba(207, 163, 94, 0.3); /* Gold Line */
}

/* Remove line from last item */
.dropdown-item:last-child {
    border-bottom: none;
}

.dropdown-item:hover {
    background-color: rgba(207, 163, 94, 0.15); /* Light Gold Highlight */
    color: var(--primary-rose);
    font-weight: 600;
}

/* --- AMBIENT ROOM DIMMER --- */
#ambient-overlay {
    position: fixed;
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%;
    
    /* Start transparent */
    background-color: #000;
    opacity: 0;
    
    /* Sit between the wallpaper (body) and the Glass Card (z-index 5) */
    z-index: 2; 
    
    /* Very slow, smooth transition for the "Room Dimming" effect */
    transition: opacity 3s ease-in-out;
    pointer-events: none; /* Let clicks pass through */
}

/* When the lights go down */
body.lights-out #ambient-overlay {
    opacity: 0.65; /* 65% Darkness - Adjust this if you want it darker/lighter */
}

/* Optional: Make the glass card glow slightly more when lights are out */
body.lights-out .glass-background {
    box-shadow: 0 0 50px rgba(255, 255, 255, 0.3), 0 0 0 2px rgba(207, 163, 94, 0.5) inset;
    transition: box-shadow 3s ease-in-out;
}