/* --- GLOBAL STYLES & VARIABLES --- */
:root {
    --primary-color: #ff7800;
    --secondary-color: #9932cc;
    --dark-color: #1a1a1a;
    --light-color: #f4f4f4;
    --font-display: 'Creepster', cursive;
}

/* --- KEYFRAME ANIMATIONS --- */
@keyframes title-glow {
    0%, 100% { text-shadow: 2px 2px 4px rgba(0,0,0,0.7), 0 0 10px #ff7800, 0 0 20px #ff7800; }
    50% { text-shadow: 2px 2px 6px rgba(0,0,0,0.8), 0 0 15px #ff9839, 0 0 30px #ff9839; }
}

@keyframes flicker {
  0%, 100% { opacity: 1; text-shadow: 0 0 8px #ff7800, 0 0 16px #ff7800; }
  50% { opacity: 0.8; text-shadow: 0 0 8px #ff7800, 0 0 12px #ff7800; }
  75% { opacity: 0.8; text-shadow: 0 0 8px #ff7800, 0 0 14px #ff7800; }
}
.flicker-text {
  animation: flicker 1.5s infinite;
}

body {
    font-family: 'Inter', sans-serif;
    margin: 0;
    padding-top: 80px;
    line-height: 1.6;
    color: #eee;
    height: 100%;
}

.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

a {
    color: var(--primary-color);
    text-decoration: none;
}

/* --- YOUR STYLES (MERGED & INTEGRATED) --- */
.halloween-title {
    font-family: 'Creepster', cursive;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7), 0 0 10px #ff7800, 0 0 20px #ff7800;
    animation: title-glow 4s ease-in-out infinite;
}

.creepy-bg {
    background-color: #1a1a1a;
    background-image: radial-gradient(circle at 80% 20%, rgba(128, 0, 128, 0.4) 0%, transparent 40%), radial-gradient(circle at 20% 80%, rgba(255, 120, 0, 0.4) 0%, transparent 40%);
}

.message { padding: 15px; margin-bottom: 20px; border-radius: 8px; text-align: center; }
.message.success { background-color: rgba(4, 120, 87, 0.8); border: 1px solid #059669; color: #d1fae5; }
.message.error { background-color: rgba(185, 28, 28, 0.8); border: 1px solid #ef4444; color: #fecaca; }


/* --- HEADER & NAVIGATION --- */
.main-header {
    background: rgba(26, 26, 26, 0.8);
    backdrop-filter: blur(10px);
    padding: 10px 0;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    border-bottom: 1px solid #333;
}

.main-header .container { display: flex; justify-content: space-between; align-items: center; }
.logo { font-size: 2.5rem; color: var(--primary-color); text-decoration: none; }
.logo:hover { text-decoration: none; }
.nav-links { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; }
.nav-links li { margin-left: 25px; }
.nav-links a { color: #fff; font-weight: 500; font-size: 1rem; transition: color 0.3s ease; }
.nav-links a:hover { color: var(--primary-color); text-decoration: none; }
.hamburger-menu { display: none; cursor: pointer; flex-direction: column; gap: 4px; }
.hamburger-menu .bar { width: 25px; height: 3px; background-color: #fff; border-radius: 5px; transition: all 0.3s ease-in-out; }


/* --- FORMS --- */
.form-container { max-width: 450px; margin: 50px auto; padding: 40px; background-color: rgba(30, 30, 30, 0.8); border: 1px solid #444; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.5); backdrop-filter: blur(10px); }
.form-container h2 { font-family: var(--font-display); font-size: 3rem; color: #eee; text-align: center; margin-top: 0; margin-bottom: 10px; }
.form-container p { text-align: center; color: #aaa; margin-bottom: 30px; }
.input-group { margin-bottom: 20px; }
.input-group label { display: block; font-weight: 500; margin-bottom: 5px; color: #ccc; }
.input-group input { width: 100%; background-color: #333; border: 1px solid #555; border-radius: 8px; color: #eee; padding: 12px; transition: border-color 0.3s; }
.input-group input:focus { outline: none; border-color: var(--primary-color); }
.form-options { text-align: right; margin-bottom: 20px; }
.separator { display: flex; align-items: center; text-align: center; color: #aaa; margin: 30px 0; }
.separator::before, .separator::after { content: ''; flex: 1; border-bottom: 1px solid #555; }
.separator:not(:empty)::before { margin-right: .25em; }
.separator:not(:empty)::after { margin-left: .25em; }
.form-footer { text-align: center; margin-top: 20px; }


/* --- BUTTONS --- */
.btn { padding: 12px 24px; border-radius: 8px; border: none; cursor: pointer; font-weight: bold; display: inline-block; text-align: center; }
.btn-primary { background: linear-gradient(45deg, #ff7800, #ff4500); color: white; transition: transform 0.2s, box-shadow 0.2s; }
.btn-primary:hover { transform: scale(1.05); box-shadow: 0 0 15px #ff7800; color: white; text-decoration: none; }
.btn-secondary { background: transparent; border: 2px solid var(--primary-color); color: var(--primary-color); }
.btn-secondary:hover { background-color: var(--primary-color); color: #fff; text-decoration: none; }
.btn-block { width: 100%; display: block; }
.vote-btn { background: linear-gradient(45deg, #8a2be2, #9932cc); color: white; transition: transform 0.2s, box-shadow 0.2s; }
.vote-btn:hover { transform: scale(1.05); box-shadow: 0 0 15px #8a2be2; color: white; text-decoration: none; }
.social-login .social-btn { width: 100%; padding: 12px; margin-bottom: 10px; border-radius: 5px; font-size: 1rem; font-weight: 500; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 10px; transition: background-color 0.3s ease; }
.social-btn.google { background-color: #fff; border: 1px solid #ddd; color: #333; }
.social-btn.google:hover { background-color: #f9f9f9; }
.social-btn.apple { background-color: #000; border: 1px solid #000; color: #fff; }
.social-btn.apple:hover { background-color: #333; }
.social-btn.microsoft { background-color: #f2f2f2; border: 1px solid #ddd; color: #333; }
.social-btn.microsoft:hover { background-color: #e5e5e5; }

.auth-logo {
  width: 24px;
  height: 24px;
}

/* --- RESPONSIVE STYLES --- */
@media (max-width: 768px) {
    .nav-links { display: none; flex-direction: column; width: 100%; position: absolute; top: 65px; left: 0; background-color: var(--dark-color); padding: 20px 0; }
    .nav-links.show { display: flex; }
    .nav-links li { margin: 10px 0; text-align: center; }
    .hamburger-menu { display: flex; }
}

/* --- VOTE/SUBMISSION CARD STYLES --- */
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 25px; padding: 20px 0; }
.submission-card { background-color: rgba(30, 30, 30, 0.8); border: 1px solid #444; border-radius: 8px; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.submission-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(138, 43, 226, 0.3); }
.card-image-container { height: 200px; overflow: hidden; }
.card-image-container img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.submission-card:hover .card-image-container img { transform: scale(1.05); }
.card-content { padding: 20px; }
.card-content h3 { margin-top: 0; font-size: 1.25rem; color: #eee; }
.card-content p { color: #aaa; margin-bottom: 20px; }

/* --- FOOTER STYLES --- */
.site-footer { 
    color: #FFF; 
    position: fixed;
    bottom: 0;
    text-align: center; 
    padding: 20px; 
    margin-top: 40px; 
    width: 100%;
}