/* ============================================
   SPOTLE - Premium Music Guessing Game
   Mobile-First | Dark + Light Theme | Glassmorphism
   ============================================ */

/* ---- CSS Variables ---- */
:root {
  /* Dark Theme (Premium & Vibrant) */
  --bg-primary: #0a0a12;
  --bg-secondary: #13131d;
  --bg-tertiary: #1e1e2a;
  --bg-card: rgba(255,255,255,0.06);
  --bg-glass: rgba(255,255,255,0.08);
  --bg-glass-hover: rgba(255,255,255,0.13);
  --bg-input: rgba(255,255,255,0.09);
  --text-primary: #f5f5ff;
  --text-secondary: rgba(255,255,255,0.78);
  --text-muted: rgba(255,255,255,0.48);
  --text-inverse: #000000;
  --border-color: rgba(255,255,255,0.1);
  --border-strong: rgba(255,255,255,0.2);
  --accent-green: #16a34a;
  --accent-green-bright: #34d399;
  --accent-green-glow: rgba(22, 163, 74, 0.3);
  --accent-yellow: #eab308;
  --accent-yellow-bright: #fde047;
  --accent-yellow-glow: rgba(234, 179, 8, 0.3);
  --accent-red: #ef4444;
  --accent-blue: #6366f1;
  --accent-purple: #8b5cf6;
  --accent-purple-deep: #7c3aed;
  --accent-pink: #ec4899;
  --accent-orange: #f97316;
  --accent-gradient: linear-gradient(135deg, #8b5cf6, #d946ef, #f43f5e);
  --accent-gradient-2: linear-gradient(135deg, #6366f1, #8b5cf6);
  --accent-gradient-3: linear-gradient(135deg, #ec4899, #f97316);
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.4);
  --shadow-md: 0 4px 20px rgba(0,0,0,0.5);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.6);
  --shadow-glow-purple: 0 0 25px rgba(124,58,237,0.25);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;
  --font-main: 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-heading: 'Plus Jakarta Sans','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --transition-fast: 0.15s ease;
  --transition-normal: 0.3s ease;
  --transition-slow: 0.5s cubic-bezier(0.4,0,0.2,1);
  --max-width: 500px;
  --header-bg: rgba(10,10,18,0.85);
  --overlay-bg: rgba(0,0,0,0.6);
  --modal-bg: #16161f;
}

/* ---- Light Theme ---- */
body.light-mode {
  --bg-primary: #f0f0f7;
  --bg-secondary: #ffffff;
  --bg-tertiary: #e8e8f0;
  --bg-card: rgba(0,0,0,0.04);
  --bg-glass: rgba(0,0,0,0.05);
  --bg-glass-hover: rgba(0,0,0,0.08);
  --bg-input: rgba(0,0,0,0.06);
  --text-primary: #1a1a2e;
  --text-secondary: rgba(26,26,46,0.65);
  --text-muted: rgba(26,26,46,0.38);
  --text-inverse: #ffffff;
  --border-color: rgba(0,0,0,0.1);
  --border-strong: rgba(0,0,0,0.18);
  --accent-green: #4caf50;
  --accent-green-bright: #6aaa64;
  --accent-green-glow: rgba(76,175,80,0.18);
  --accent-yellow: #c9b458;
  --accent-yellow-bright: #eab308;
  --accent-yellow-glow: rgba(201,180,88,0.18);
  --accent-purple: #7c3aed;
  --accent-purple-deep: #6d28d9;
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.08);
  --shadow-md: 0 4px 20px rgba(0,0,0,0.12);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.15);
  --shadow-glow-purple: 0 0 25px rgba(124,58,237,0.12);
  --header-bg: rgba(255,255,255,0.88);
  --overlay-bg: rgba(0,0,0,0.4);
  --modal-bg: #ffffff;
}

/* ---- Reset & Base ---- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{
  font-family:var(--font-main);
  background:var(--bg-primary);
  color:var(--text-primary);
  min-height:100vh;
  overflow-x:hidden;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  transition:background 0.3s ease, color 0.3s ease;
}
body::after{
  content:'';position:fixed;top:0;left:0;right:0;bottom:0;
  background:linear-gradient(180deg, rgba(10,10,18,0) 0%, rgba(20,20,35,0.4) 40%, rgba(10,10,18,0) 100%);
  pointer-events:none;z-index:0;
}
body.light-mode::after{opacity:0.3;background:linear-gradient(180deg, rgba(240,240,247,0) 0%, rgba(200,200,220,0.3) 40%, rgba(240,240,247,0) 100%)}

body::before{
  content:'';position:fixed;top:0;left:0;right:0;bottom:0;
  background:
    radial-gradient(ellipse at 10% 40%,rgba(124,58,237,0.12) 0%,transparent 50%),
    radial-gradient(ellipse at 85% 15%,rgba(244,114,182,0.08) 0%,transparent 50%),
    radial-gradient(ellipse at 50% 90%,rgba(99,102,241,0.06) 0%,transparent 50%),
    radial-gradient(ellipse at 70% 50%,rgba(139,92,246,0.05) 0%,transparent 40%);
  pointer-events:none;z-index:0;
  transition:opacity 0.3s;
}
body.light-mode::before{
  background:
    radial-gradient(ellipse at 10% 40%,rgba(124,58,237,0.06) 0%,transparent 50%),
    radial-gradient(ellipse at 85% 15%,rgba(244,114,182,0.04) 0%,transparent 50%),
    radial-gradient(ellipse at 50% 90%,rgba(99,102,241,0.03) 0%,transparent 50%);
  opacity:1;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{cursor:pointer;border:none;background:none;font:inherit;color:inherit;font-family:var(--font-main)}
input,textarea,select{font:inherit;color:inherit;font-family:var(--font-main)}

.container{max-width:var(--max-width);margin:0 auto;padding:0 16px;position:relative;z-index:1}
.hidden{display:none!important}

/* ---- Header / Navbar ---- */
.header{
  position:sticky;top:0;z-index:100;
  background:var(--header-bg);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid var(--border-color);
  padding:10px 0;
  transition:background 0.3s, border-color 0.3s;
}
.header .container{display:flex;align-items:center;gap:12px}

/* Prevent auto ads from expanding sticky header */
.header ins.adsbygoogle,
.header .adsbygoogle,
.header [id*="google_ads"],
.header [id*="aswift"]{display:none!important;height:0!important;overflow:hidden!important}

/* Header Ad Slot - dedicated space below sticky header for auto ads */
.header-ad-slot{
  width:100%;max-width:var(--max-width);margin:0 auto;
  min-height:0;text-align:center;z-index:1;position:relative;
}
.header-ad-slot:has(ins.adsbygoogle),
.header-ad-slot:has([id*="aswift"]),
.header-ad-slot:has(iframe){min-height:auto;padding:8px 0}

.hamburger-btn{
  width:40px;height:40px;border-radius:var(--radius-full);
  display:flex;align-items:center;justify-content:center;
  background:var(--bg-glass);border:1px solid var(--border-color);
  transition:var(--transition-fast);color:var(--text-secondary);flex-shrink:0;
}
.hamburger-btn:hover{background:var(--bg-glass-hover);color:var(--text-primary)}
.hamburger-btn svg{width:22px;height:22px}

.logo{display:flex;align-items:center;gap:8px;font-size:1.35rem;font-weight:800;letter-spacing:-0.5px;flex-shrink:0;font-family:var(--font-heading)}
.logo-icon{
  width:32px;height:32px;
  background:var(--accent-gradient);border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:900;
}

.header-right{margin-left:auto;display:flex;align-items:center;gap:6px}
.header-btn{
  width:38px;height:38px;border-radius:var(--radius-full);
  display:flex;align-items:center;justify-content:center;
  background:var(--bg-glass);border:1px solid var(--border-color);
  transition:var(--transition-fast);color:var(--text-secondary);
}
.header-btn:hover{background:var(--bg-glass-hover);color:var(--text-primary)}
.header-btn svg{width:18px;height:18px}

/* ---- Hamburger Side Menu ---- */
.menu-overlay{
  position:fixed;inset:0;background:var(--overlay-bg);z-index:200;
  opacity:0;pointer-events:none;transition:opacity 0.3s;
  backdrop-filter:blur(4px);
}
.menu-overlay.open{opacity:1;pointer-events:all}

.side-menu{
  position:fixed;top:0;left:0;bottom:0;width:280px;max-width:80vw;
  background:var(--bg-secondary);z-index:201;
  transform:translateX(-100%);transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);
  border-right:1px solid var(--border-color);
  display:flex;flex-direction:column;
  box-shadow:var(--shadow-lg);
}
.side-menu.open{transform:translateX(0)}

.menu-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 20px 16px;border-bottom:1px solid var(--border-color);
}
.menu-close{
  width:36px;height:36px;border-radius:var(--radius-full);
  display:flex;align-items:center;justify-content:center;
  background:var(--bg-glass);border:1px solid var(--border-color);
  color:var(--text-secondary);transition:var(--transition-fast);
}
.menu-close:hover{background:var(--bg-glass-hover);color:var(--text-primary)}
.menu-close svg{width:20px;height:20px}

.menu-nav{flex:1;padding:12px 0;overflow-y:auto}
.menu-item{
  display:flex;align-items:center;gap:14px;
  padding:14px 24px;font-size:0.95rem;font-weight:500;
  color:var(--text-secondary);transition:var(--transition-fast);
  border:none;width:100%;text-align:left;background:none;
}
.menu-item:hover,.menu-item.active{color:var(--text-primary);background:var(--bg-glass)}
.menu-item.active{border-right:3px solid var(--accent-purple);color:var(--accent-purple)}
.menu-item svg{width:20px;height:20px;flex-shrink:0;opacity:0.7}

.menu-divider{height:1px;background:var(--border-color);margin:8px 20px}

.menu-footer{
  padding:16px 24px;border-top:1px solid var(--border-color);
  font-size:0.75rem;color:var(--text-muted);text-align:center;
}

/* ---- Mode Tabs ---- */
.mode-tabs{display:flex;gap:4px;background:var(--bg-card);padding:4px;border-radius:var(--radius-full);border:1px solid var(--border-color);margin:16px 0}
.mode-tab{flex:1;padding:9px 16px;border-radius:var(--radius-full);font-size:0.8rem;font-weight:600;text-align:center;transition:var(--transition-normal);color:var(--text-muted)}
.mode-tab.active{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-glow-purple)}
.mode-tab:not(.active):hover{color:var(--text-secondary);background:var(--bg-glass)}

/* ---- Game Info ---- */
.game-info{text-align:center;margin:20px 0 14px}
.game-title{font-size:1.5rem;font-weight:800;margin-bottom:4px;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-family:var(--font-heading)}
.game-subtitle{font-size:0.82rem;color:var(--text-muted)}
.game-timer{font-size:0.72rem;color:var(--text-secondary);margin-top:8px;display:inline-flex;align-items:center;gap:6px;background:var(--bg-glass);padding:5px 14px;border-radius:var(--radius-full);border:1px solid var(--border-color)}

/* ---- Guess Counter ---- */
.guess-counter{display:flex;align-items:center;justify-content:center;gap:5px;margin-bottom:14px}
.guess-dot{width:10px;height:10px;border-radius:var(--radius-full);background:var(--border-strong);transition:var(--transition-normal)}
.guess-dot.used{background:var(--text-muted)}
.guess-dot.correct{background:var(--accent-green-bright);box-shadow:0 0 8px var(--accent-green-glow)}
.guess-dot.wrong{background:var(--accent-red)}

/* ---- Guess Grid ---- */
.guess-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}

.guess-card{
  background:var(--bg-card);border:1px solid var(--border-color);
  border-radius:var(--radius-md);padding:12px;
  animation:fadeInUp 0.5s ease-out;transition:var(--transition-normal);
}
@keyframes fadeInUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.guess-card:hover{border-color:var(--border-strong)}

@keyframes slideIn{from{opacity:0;transform:translateY(-12px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes flipIn{0%{transform:rotateX(90deg);opacity:0}50%{transform:rotateX(-5deg);opacity:0.5}100%{transform:rotateX(0);opacity:1}}

.guess-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.guess-avatar{
  width:56px;height:56px;border-radius:var(--radius-full);
  background:var(--bg-glass);display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:1.1rem;overflow:hidden;border:2px solid var(--border-color);
  color:var(--text-secondary);flex-shrink:0;
}
.guess-avatar img{width:100%;height:100%;object-fit:cover}
.guess-name{font-weight:800;font-size:1.1rem;color:var(--text-primary);font-family:var(--font-heading)}
.guess-number{font-size:0.68rem;color:var(--text-muted);margin-left:auto}

/* ---- Attribute Tiles ---- */
.attr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.attr-tile{
  display:flex;flex-direction:column;align-items:center; justify-content:center;
  padding:12px 6px;border-radius:10px;
  background:var(--bg-card);border:1px solid var(--border-color);
  text-align:center;
  transition:var(--transition-normal);position:relative;overflow:hidden;
  min-height:70px;
  transform-style: preserve-3d;
  perspective: 600px;
}
.attr-tile .attr-label{font-size:0.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;font-weight:700}
.attr-tile .attr-value{font-size:0.85rem;font-weight:800;color:var(--text-primary);line-height:1.2}

.attr-tile.correct{
  background:var(--accent-green);border-color:var(--accent-green-bright);
  animation: tileFlipGreen 0.6s ease-out forwards;
  box-shadow: 0 4px 20px var(--accent-green-glow), inset 0 0 20px rgba(255,255,255,0.1);
}
.attr-tile.correct .attr-label{color:rgba(255,255,255,0.7)}
.attr-tile.correct .attr-value{color:#fff}

.attr-tile.close{
  background:var(--accent-yellow);border-color:var(--accent-yellow-bright);
  animation: tileFlipYellow 0.6s ease-out forwards;
  box-shadow: 0 4px 20px var(--accent-yellow-glow), inset 0 0 20px rgba(255,255,255,0.1);
}
.attr-tile.close .attr-label{color:rgba(0,0,0,0.45)}
.attr-tile.close .attr-value{color:rgba(0,0,0,0.85)}

.attr-tile.wrong{
  background:var(--bg-tertiary);border-color:var(--border-color);
  animation: tileFlipGray 0.5s ease-out forwards;
}

@keyframes tileFlipGreen {
  0% { transform: rotateY(90deg) scale(0.8); opacity: 0; }
  50% { transform: rotateY(-10deg) scale(1.05); }
  70% { transform: rotateY(5deg) scale(1.02); }
  100% { transform: rotateY(0deg) scale(1); opacity: 1; }
}

@keyframes tileFlipYellow {
  0% { transform: rotateY(90deg) scale(0.8); opacity: 0; }
  50% { transform: rotateY(-10deg) scale(1.05); }
  70% { transform: rotateY(5deg) scale(1.02); }
  100% { transform: rotateY(0deg) scale(1); opacity: 1; }
}

@keyframes tileFlipGray {
  0% { transform: scale(1.1); opacity: 0.5; }
  50% { transform: scale(0.95); }
  100% { transform: scale(1); opacity: 1; }
}

.attr-tile.correct:hover{transform:scale(1.03)}
.attr-tile.close:hover{transform:scale(1.03)}

body.light-mode .attr-tile.wrong{background:rgba(0,0,0,0.05)}
body.light-mode .attr-tile.wrong .attr-label{color:var(--text-muted)}
body.light-mode .attr-tile.wrong .attr-value{color:var(--text-secondary)}

/* Enhanced hover for correct/close tiles */
.attr-tile.correct{transform-origin:center center}
.attr-tile.close{transform-origin:center center}

.attr-tile .arrow-indicator{font-size:0.55rem;margin-top:1px}
.arrow-up{color:rgba(0,0,0,0.65)}
.arrow-down{color:rgba(0,0,0,0.65)}
.arrow-up-light{color:var(--text-muted)}
.arrow-down-light{color:var(--text-muted)}

/* ---- Search Bar ---- */
.search-wrapper{position:relative;margin-bottom:18px}
.search-bar{
  width:100%;padding:14px 48px 14px 16px;
  background:var(--bg-input);border:1px solid var(--border-color);
  border-radius:var(--radius-lg);color:var(--text-primary);
  font-size:0.95rem;outline:none;transition:var(--transition-normal);
  backdrop-filter:blur(10px);
}
.search-bar::placeholder{color:var(--text-muted)}
.search-bar:focus{border-color:var(--accent-purple);box-shadow:0 0 0 3px rgba(124,58,237,0.12),var(--shadow-glow-purple)}
.search-bar:disabled{opacity:0.6;cursor:not-allowed}

.search-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}
.search-icon svg{width:20px;height:20px}

/* Autocomplete */
.autocomplete-list{
  position:absolute;top:calc(100% + 6px);left:0;right:0;
  background:var(--modal-bg);backdrop-filter:blur(24px);
  border:1px solid var(--border-color);border-radius:var(--radius-md);
  overflow:hidden;z-index:50;box-shadow:var(--shadow-lg);max-height:240px;overflow-y:auto;
}
.autocomplete-list::-webkit-scrollbar{width:3px}
.autocomplete-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}
.autocomplete-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:var(--transition-fast);border-bottom:1px solid var(--border-color)}
.autocomplete-item:last-child{border-bottom:none}
.autocomplete-item:hover,.autocomplete-item.selected{background:var(--bg-glass-hover)}
.autocomplete-item .ac-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:var(--bg-glass);display:flex;align-items:center;justify-content:center;font-size:0.7rem;font-weight:700;color:var(--text-secondary);overflow:hidden;}
.autocomplete-item .ac-info{flex:1}
.autocomplete-item .ac-name{font-size:0.85rem;font-weight:600;color:var(--text-primary)}
.autocomplete-item .ac-genre{font-size:0.68rem;color:var(--text-muted)}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-full);font-weight:600;font-size:0.9rem;transition:var(--transition-normal);border:1px solid transparent;font-family:var(--font-main)}
.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-glow-purple)}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 0 35px rgba(124,58,237,0.3)}
.btn-primary:active{transform:translateY(0)}
.btn-secondary{background:var(--bg-glass);border-color:var(--border-color);color:var(--text-secondary)}
.btn-secondary:hover{background:var(--bg-glass-hover);color:var(--text-primary)}
.btn-ghost{background:transparent;color:var(--text-secondary);padding:8px 16px}
.btn-ghost:hover{color:var(--text-primary);background:var(--bg-glass)}
.btn-small{padding:8px 16px;font-size:0.8rem}
.btn-block{width:100%}
.btn:disabled{opacity:0.4;cursor:not-allowed;transform:none!important}

/* ---- Hints ---- */
.hints-section{margin-bottom:18px}
.hint-chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.hint-chip{padding:6px 14px;border-radius:var(--radius-full);font-size:0.73rem;font-weight:600;background:var(--bg-glass);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;transition:var(--transition-normal);font-family:var(--font-main)}
.hint-chip:hover:not(.used){background:var(--bg-glass-hover);color:var(--text-secondary);border-color:var(--accent-purple)}
.hint-chip.used{background:rgba(124,58,237,0.12);border-color:var(--accent-purple);color:var(--accent-purple);cursor:default}

/* ---- Modals ---- */
.modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:3000;animation:fadeIn 0.3s ease;padding:20px}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{background:var(--modal-bg);border:1px solid var(--border-strong);border-radius:var(--radius-xl);padding:36px 24px;max-width:440px;width:100%;text-align:center;animation:scaleIn 0.4s cubic-bezier(0.34,1.56,0.64,1);box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto;position:relative}
@keyframes scaleIn{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}
.modal-icon{font-size:3rem;margin-bottom:12px}
.modal-title{font-size:1.5rem;font-weight:800;color:var(--text-primary);margin-bottom:4px;font-family:var(--font-heading)}
.modal-subtitle{font-size:0.85rem;color:var(--text-muted);margin-bottom:20px}

.modal-artist-card{display:flex;align-items:center;gap:14px;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:14px;margin-bottom:20px;text-align:left}
.modal-artist-avatar{width:56px;height:56px;border-radius:var(--radius-full);background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.2rem;flex-shrink:0;color:#fff}
.modal-artist-info{flex:1}
.modal-artist-name{font-weight:700;font-size:1rem;color:var(--text-primary);font-family:var(--font-heading)}
.modal-artist-details{font-size:0.73rem;color:var(--text-muted);line-height:1.5}

.modal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}
.modal-stat{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px 8px}
.modal-stat-value{font-size:1.3rem;font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.modal-stat-label{font-size:0.62rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;margin-top:2px}

.modal-actions{display:flex;flex-direction:column;gap:8px}

/* ---- How to Play ---- */
.how-to-play-content{text-align:left}
.how-to-play-content h3{font-size:1rem;font-weight:700;margin-bottom:8px;color:var(--text-primary)}
.how-to-play-content p{font-size:0.85rem;color:var(--text-secondary);margin-bottom:12px;line-height:1.6}
.how-to-play-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.step-card{display:flex;gap:12px;align-items:flex-start;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px}
.step-number{width:28px;height:28px;border-radius:var(--radius-full);background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:800;flex-shrink:0;color:#fff}
.step-text{font-size:0.8rem;color:var(--text-secondary);line-height:1.5}
.step-text strong{color:var(--text-primary)}

.color-legend{display:flex;flex-direction:column;gap:8px;margin:16px 0}
.color-item{display:flex;align-items:center;gap:10px}
.color-swatch{width:20px;height:20px;border-radius:4px;flex-shrink:0}
.color-swatch.green{background:var(--accent-green)}
.color-swatch.yellow{background:var(--accent-yellow)}
.color-swatch.gray{background:var(--bg-tertiary)}
.color-desc{font-size:0.78rem;color:var(--text-secondary)}

/* ---- Stats ---- */
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:20px 0}
.stat-card{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px 12px;text-align:center}
.stat-value{font-size:1.8rem;font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.stat-label{font-size:0.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;margin-top:2px}

.distribution-title{font-size:0.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:10px}
.distribution-bars{display:flex;flex-direction:column;gap:4px;margin-bottom:20px}
.dist-row{display:flex;align-items:center;gap:8px}
.dist-label{font-size:0.73rem;font-weight:600;width:14px;text-align:center;color:var(--text-muted)}
.dist-bar-wrapper{flex:1;height:22px;background:var(--bg-card);border-radius:4px;overflow:hidden}
.dist-bar{height:100%;background:var(--accent-green);border-radius:4px;min-width:24px;display:flex;align-items:center;justify-content:flex-end;padding-right:6px;transition:width 0.8s ease}
.dist-bar.highlight{background:var(--accent-green-bright)}
.dist-count{font-size:0.68rem;font-weight:700;color:#fff}

.modal-close-x {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-glass);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-full);
  color: var(--text-secondary);
  font-size: 1.2rem;
  cursor: pointer;
  transition: var(--transition-fast);
  z-index: 110;
  line-height: 1;
}
.modal-close-x:hover {
  background: var(--bg-glass-hover);
  color: var(--text-primary);
  border-color: var(--border-strong);
}

/* ---- Side Menu ---- */
.side-menu{position:fixed;top:0;left:-280px;width:280px;height:100%;background:var(--bg-secondary);z-index:2000;transition:var(--transition-slow);padding:0;box-shadow:var(--shadow-lg);overflow-y:auto;display:flex;flex-direction:column}
.side-menu.open{left:0}
.menu-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);z-index:1999;opacity:0;pointer-events:none;transition:var(--transition-normal)}
.menu-overlay.open{opacity:1;pointer-events:auto}
.menu-header{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}
.menu-nav{padding:8px 12px;flex:1;display:flex;flex-direction:column;gap:2px}
.menu-item{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:var(--radius-md);color:var(--text-secondary);text-decoration:none;font-weight:600;font-size:0.85rem;transition:var(--transition-fast)}
.menu-item-icon{justify-content:center;padding:12px;background:rgba(139,92,246,0.05);border:1px dashed rgba(139,92,246,0.2);margin:4px 12px}
.menu-item svg{width:18px;height:18px;color:var(--text-muted)}
.menu-item-icon svg{width:22px;height:22px;color:var(--accent-purple)}
.menu-item:hover{background:var(--bg-glass);color:var(--text-primary)}
.menu-item.active{background:rgba(139,92,246,0.1);color:var(--accent-purple)}
.menu-item.active svg{color:var(--accent-purple)}
.menu-divider{height:1px;background:var(--border-color);margin:6px 14px}
.menu-footer{padding:14px 20px;border-top:1px solid var(--border-color);font-size:0.72rem;color:var(--text-muted);text-align:center;line-height:1.5}

/* ---- Footer (Simple & Clean) ---- */
.footer{text-align:center;padding:40px 0 30px;border-top:1px solid var(--border-color);margin-top:30px;opacity:0.8}
.footer-copy{font-size:0.8rem;color:var(--text-muted);font-weight:500}

/* ---- Auth Pages ---- */
.auth-container{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:20px}
.auth-card{max-width:400px;width:100%;margin:0 auto;background:var(--modal-bg);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:32px 24px;box-shadow:var(--shadow-lg)}
.auth-logo{text-align:center;margin-bottom:28px}
.auth-title{font-size:1.4rem;font-weight:800;text-align:center;margin-bottom:4px;color:var(--text-primary);font-family:var(--font-heading)}
.auth-subtitle{font-size:0.85rem;color:var(--text-muted);text-align:center;margin-bottom:24px}
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:0.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px}
.form-input{width:100%;padding:12px 14px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:0.9rem;outline:none;transition:var(--transition-normal)}
.form-input:focus{border-color:var(--accent-purple);box-shadow:0 0 0 3px rgba(124,58,237,0.12)}
.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--text-muted);font-size:0.73rem}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border-color)}
.auth-link{text-align:center;font-size:0.8rem;color:var(--text-muted);margin-top:16px}
.auth-link a{color:var(--accent-purple);font-weight:600}

/* ---- Confetti ---- */
#confetti-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:300}

/* ---- Toast ---- */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);background:var(--modal-bg);border:1px solid var(--border-color);border-radius:var(--radius-full);padding:8px 16px;font-size:0.75rem;font-weight:600;z-index:250;box-shadow:var(--shadow-md);transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1);white-space:nowrap;color:var(--text-primary)}
.toast.show{transform:translateX(-50%) translateY(0)}

/* ---- Game Ad Unit ---- */
.game-ad-unit{width:100%;max-width:500px;margin:0 auto 14px;min-height:90px;text-align:center;overflow:hidden;border-radius:var(--radius-md)}

/* ---- Streak Badge ---- */
.streak-badge{display:inline-flex;align-items:center;gap:4px;background:rgba(251,146,60,0.12);border:1px solid rgba(251,146,60,0.3);color:var(--accent-orange);padding:4px 12px;border-radius:var(--radius-full);font-size:0.73rem;font-weight:700}

/* ---- Misc Animations ---- */
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}
.animate-pulse{animation:pulse 2s infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.animate-bounce{animation:bounce 0.6s ease}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{width:24px;height:24px;border:3px solid var(--border-color);border-top-color:var(--accent-purple);border-radius:var(--radius-full);animation:spin 0.6s linear infinite}

/* Page transition */
.page-enter{animation:pageEnter 0.4s ease}
@keyframes pageEnter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ---- Info Pages (About, Contact) ---- */
.info-page{padding:24px 0}
.info-page h2{font-size:1.3rem;font-weight:800;margin-bottom:16px;color:var(--text-primary);font-family:var(--font-heading)}
.info-page p{font-size:0.9rem;color:var(--text-secondary);margin-bottom:14px;line-height:1.7}
.info-card{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:20px;margin-bottom:16px}
.info-card h3{font-size:1rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}
.info-card p{font-size:0.85rem;color:var(--text-secondary);margin-bottom:0}
.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.feature-item{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:14px;text-align:center}
.feature-item .fi-icon{font-size:1.5rem;margin-bottom:6px}
.feature-item .fi-title{font-size:0.8rem;font-weight:700;color:var(--text-primary);margin-bottom:2px}
.feature-item .fi-desc{font-size:0.7rem;color:var(--text-muted)}

/* Contact Form */
.contact-form .form-group{margin-bottom:14px}
.contact-form textarea.form-input{min-height:100px;resize:vertical}

/* ---- Admin Panel Styles ---- */
.admin-layout{display:flex;min-height:100vh}
.admin-sidebar{width:240px;background:var(--bg-secondary);border-right:1px solid var(--border-color);padding:16px 0;position:fixed;top:0;left:0;bottom:0;z-index:50;transition:var(--transition-normal);overflow-y:auto}
.admin-sidebar .sidebar-logo{padding:0 20px 20px;border-bottom:1px solid var(--border-color);margin-bottom:12px}
.admin-sidebar .sidebar-logo .logo{font-size:1.1rem}
.admin-sidebar .sidebar-logo .logo-icon{width:28px;height:28px;font-size:0.85rem}

.admin-nav-item{display:flex;align-items:center;gap:12px;padding:11px 20px;font-size:0.85rem;font-weight:500;color:var(--text-secondary);transition:var(--transition-fast);width:100%;text-align:left;border:none;background:none}
.admin-nav-item:hover{color:var(--text-primary);background:var(--bg-glass)}
.admin-nav-item.active{color:var(--accent-purple);background:rgba(124,58,237,0.1);border-right:3px solid var(--accent-purple)}
.admin-nav-item svg{width:18px;height:18px;opacity:0.6}
.admin-nav-item .nav-badge{margin-left:auto;background:var(--accent-purple);color:#fff;font-size:0.65rem;padding:2px 8px;border-radius:var(--radius-full);font-weight:700}

.admin-main{margin-left:240px;flex:1;padding:24px;min-height:100vh}

.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}
.admin-header h1{font-size:1.4rem;font-weight:800;color:var(--text-primary)}
.admin-header-actions{display:flex;align-items:center;gap:8px}

.admin-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px}
.admin-card h3{font-size:1rem;font-weight:700;color:var(--text-primary);margin-bottom:12px}

.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:24px}
.admin-stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px}
.admin-stat-card .as-value{font-size:1.6rem;font-weight:800;color:var(--text-primary)}
.admin-stat-card .as-label{font-size:0.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;margin-top:2px}
.admin-stat-card .as-change{font-size:0.7rem;color:var(--accent-green-bright);margin-top:4px}

/* Admin Table */
.admin-table-wrapper{overflow-x:auto;margin-top:12px;border-radius:var(--radius-md)}
.admin-table{width:100%;border-collapse:collapse;font-size:0.82rem}
.admin-table th{text-align:left;padding:10px 12px;font-weight:600;color:var(--text-muted);font-size:0.7rem;text-transform:uppercase;letter-spacing:0.5px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}
.admin-table td{padding:10px 12px;border-bottom:1px solid var(--border-color);color:var(--text-secondary)}
.admin-table tr:hover td{background:var(--bg-glass)}
.admin-table .artist-name{font-weight:600;color:var(--text-primary)}
.admin-table .badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);font-size:0.68rem;font-weight:600}
.badge-green{background:rgba(90,170,100,0.15);color:var(--accent-green-bright)}
.badge-yellow{background:rgba(201,180,88,0.15);color:var(--accent-yellow-bright)}
.badge-red{background:rgba(231,76,60,0.15);color:var(--accent-red)}
.badge-blue{background:rgba(108,140,255,0.15);color:var(--accent-blue)}
.badge-purple{background:rgba(124,58,237,0.15);color:var(--accent-purple)}

/* Pagination */
.pagination{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:16px}
.page-btn{width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--bg-glass);border:1px solid var(--border-color);font-size:0.8rem;font-weight:600;color:var(--text-secondary);transition:var(--transition-fast)}
.page-btn:hover{background:var(--bg-glass-hover);color:var(--text-primary)}
.page-btn.active{background:var(--accent-purple);color:#fff;border-color:var(--accent-purple)}
.page-btn:disabled{opacity:0.3;cursor:not-allowed}

/* Scrape Tool */
.scrape-config{display:flex;flex-direction:column;gap:14px}
.scrape-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.scrape-input{flex:1;min-width:120px;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:0.85rem;outline:none}
.scrape-input:focus{border-color:var(--accent-purple)}
.scrape-select{padding:10px 14px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:0.85rem;outline:none;appearance:none}

.progress-bar-wrapper{background:var(--bg-tertiary);border-radius:var(--radius-full);height:10px;overflow:hidden;margin:12px 0}
.progress-bar-fill{height:100%;background:var(--accent-gradient);border-radius:var(--radius-full);transition:width 0.5s ease;width:0%}

.scrape-log{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px;font-size:0.78rem;font-family:'Courier New',monospace;max-height:300px;overflow-y:auto;color:var(--text-secondary);line-height:1.8}
.scrape-log .log-success{color:var(--accent-green-bright)}
.scrape-log .log-skip{color:var(--accent-orange)}
.scrape-log .log-error{color:var(--accent-red)}
.scrape-log .log-info{color:var(--accent-blue)}

/* Mobile admin sidebar */
.admin-mobile-toggle{display:none;position:fixed;top:12px;left:12px;z-index:60;width:40px;height:40px;border-radius:var(--radius-full);background:var(--accent-gradient);color:#fff;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}

@media(max-width:768px){
  .admin-sidebar{transform:translateX(-100%)}
  .admin-sidebar.open{transform:translateX(0)}
  .admin-main{margin-left:0;padding:16px;padding-top:60px}
  .admin-mobile-toggle{display:flex}
  .admin-stats{grid-template-columns:1fr 1fr}
  .admin-header{flex-direction:column;align-items:flex-start}
}

/* ---- Responsive ---- */
@media(min-width:768px){
  :root{--max-width:520px}
  .attr-grid{gap:10px}
  .attr-tile .attr-label{font-size:0.7rem}
  .attr-tile .attr-value{font-size:0.95rem}
}

.unlimited-cta{text-align:center;margin:10px 0 25px;padding:20px;background:linear-gradient(rgba(139,92,246,0.05), rgba(139,92,246,0.02));border:1px dashed rgba(139,92,246,0.3);border-radius:var(--radius-md)}
.unlimited-cta p{font-size:0.85rem;color:var(--text-secondary);margin-bottom:12px;font-weight:500}

/* ---- Profile Icon (Header) ---- */
.header-btn.profile-btn{
  width:38px;height:38px;border-radius:var(--radius-full);
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-gradient);border:1px solid var(--accent-purple);
  transition:var(--transition-fast);color:#fff;overflow:hidden;
}
.header-btn.profile-btn svg{width:18px;height:18px;color:#fff}
.profile-initial{
  font-size:0.9rem;font-weight:800;color:#fff;text-transform:uppercase;
  line-height:1;
}
.header-btn.profile-btn:hover{transform:scale(1.05);box-shadow:0 0 15px rgba(139,92,246,0.3)}

/* ---- Hint Toast (Better Visibility) ---- */
.hint-toast{
  position:fixed;top:70px;left:50%;transform:translateX(-50%) translateY(-20px);
  background:var(--modal-bg);border:1.5px solid var(--accent-purple);
  border-radius:var(--radius-md);padding:10px 16px;
  z-index:9999;box-shadow:0 6px 24px rgba(139,92,246,0.25), var(--shadow-md);
  display:flex;align-items:center;gap:10px;
  opacity:0;pointer-events:none;
  transition:all 0.35s cubic-bezier(0.34,1.56,0.64,1);
  max-width:85vw;
}
.hint-toast.show{
  opacity:1;pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.hint-toast-icon{font-size:1.3rem;flex-shrink:0}
.hint-toast-content{display:flex;flex-direction:column;gap:1px}
.hint-toast-label{font-size:0.6rem;font-weight:700;color:var(--accent-purple);text-transform:uppercase;letter-spacing:0.5px}
.hint-toast-value{font-size:0.9rem;font-weight:800;color:var(--text-primary)}

/* ---- Side Menu Theme Toggle ---- */
.menu-theme-toggle{
  display:flex;align-items:center;gap:12px;padding:12px 16px;
  border-radius:var(--radius-md);color:var(--text-secondary);
  font-weight:600;font-size:0.95rem;cursor:pointer;
  transition:var(--transition-fast);width:100%;text-decoration:none;
  background:none;border:none;
}
.menu-theme-toggle:hover{background:var(--bg-glass);color:var(--text-primary)}
.menu-theme-toggle svg{width:20px;height:20px;color:var(--text-muted)}

/* ---- Menu Logout ---- */
.menu-logout{
  display:flex;align-items:center;gap:12px;padding:12px 16px;
  border-radius:var(--radius-md);color:var(--accent-red);
  font-weight:600;font-size:0.9rem;cursor:pointer;
  transition:var(--transition-fast);width:100%;text-decoration:none;
  background:none;border:none;
}
.menu-logout:hover{background:rgba(239,68,68,0.1);color:var(--accent-red)}
.menu-logout svg{width:18px;height:18px}

/* ---- Menu Item - Logged In State ---- */
.menu-item.logged-in{color:var(--accent-purple)}
.menu-item.logged-in svg{color:var(--accent-purple)}

/* ---- Auth Success Message ---- */
.auth-success{
  background:rgba(16,185,129,0.1);border:1px solid rgba(16,185,129,0.3);
  border-radius:var(--radius-md);padding:14px 18px;
  text-align:center;margin-bottom:20px;
  animation:fadeInUp 0.5s ease-out;
}
.auth-success-icon{font-size:2rem;margin-bottom:6px}
.auth-success-text{font-size:0.9rem;font-weight:700;color:var(--accent-green-bright)}
.auth-success-sub{font-size:0.78rem;color:var(--text-secondary);margin-top:4px}

/* ---- Auth Error Message ---- */
.auth-error{
  background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.3);
  border-radius:var(--radius-md);padding:12px 18px;
  text-align:center;margin-bottom:16px;
  font-size:0.82rem;color:var(--accent-red);font-weight:600;
  animation:fadeInUp 0.5s ease-out;
}

/* ---- Contact Page (Simple) ---- */
.contact-info-card{
  background:var(--bg-glass);border:1px solid var(--border-color);
  border-radius:var(--radius-lg);padding:28px;
  text-align:center;margin:20px 0;
}
.contact-info-card h3{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin-bottom:12px}
.contact-info-card p{font-size:0.9rem;color:var(--text-secondary);margin-bottom:8px;line-height:1.7}
.contact-info-card .contact-email{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--bg-glass);border:1px solid var(--border-color);
  border-radius:var(--radius-full);padding:10px 20px;
  font-size:0.9rem;font-weight:700;color:var(--accent-purple);
  text-decoration:none;margin-top:8px;
  transition:var(--transition-normal);
}
.contact-info-card .contact-email:hover{
  background:rgba(139,92,246,0.12);border-color:var(--accent-purple);
  transform:translateY(-1px);
}

/* ---- Profile Modal ---- */
.profile-modal-avatar{
  width:72px;height:72px;border-radius:var(--radius-full);
  background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:1.8rem;color:#fff;margin:0 auto 16px;
  border:3px solid var(--accent-purple);box-shadow:0 0 20px rgba(139,92,246,0.3);
  font-family:var(--font-heading);
}
.profile-modal-name{font-size:1.3rem;font-weight:800;color:var(--text-primary);font-family:var(--font-heading);margin-bottom:4px}
.profile-modal-email{font-size:0.82rem;color:var(--accent-purple);font-weight:600;margin-bottom:16px}
.profile-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}
.profile-detail-item{
  background:var(--bg-glass);border:1px solid var(--border-color);
  border-radius:var(--radius-md);padding:12px;text-align:center;
}
.profile-detail-label{font-size:0.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px}
.profile-detail-value{font-size:0.85rem;font-weight:700;color:var(--text-primary);font-family:var(--font-heading)}
.profile-stats-row{display:flex;gap:8px;margin-bottom:16px}
.profile-stat-mini{
  flex:1;background:var(--bg-glass);border:1px solid var(--border-color);
  border-radius:var(--radius-md);padding:10px;text-align:center;
}
.profile-stat-mini-value{font-size:1.1rem;font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.profile-stat-mini-label{font-size:0.6rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.3px}

/* ---- Result Modal Timer & Unlimited CTA ---- */
.result-timer{
  background:var(--bg-glass);border:1px solid var(--border-color);
  border-radius:var(--radius-md);padding:12px 16px;margin-bottom:16px;
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:0.85rem;font-weight:700;color:var(--text-secondary);
}
.result-timer-icon{font-size:1.1rem}
.result-timer-value{color:var(--accent-purple);font-family:var(--font-heading);font-weight:800}
.result-unlimited-btn{
  background:var(--accent-gradient-2);color:#fff;border:none;
  border-radius:var(--radius-full);padding:12px 24px;
  font-weight:700;font-size:0.9rem;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:var(--transition-normal);font-family:var(--font-heading);
  box-shadow:0 4px 20px rgba(99,102,241,0.3);
  width:100%;
}
.result-unlimited-btn:hover{transform:translateY(-2px);box-shadow:0 6px 25px rgba(99,102,241,0.4)}

/* ============================================
   CONTENT SECTION - SEO Content Blocks
   ============================================ */
.content-section {
  padding: 40px 0 20px;
  border-top: 1px solid var(--border-color);
  margin-top: 20px;
}
.content-container {
  max-width: 900px;
  width: 90%;
  margin: 0 auto;
  padding: 0 16px;
}
.content-heading {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: 8px;
  line-height: 1.3;
  background: var(--accent-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.content-subheading {
  font-size: 1rem;
  color: var(--text-secondary);
  margin-bottom: 24px;
  font-weight: 500;
  line-height: 1.5;
}
.content-section h3 {
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 28px 0 12px;
}
.content-section h4 {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--accent-purple);
  margin: 20px 0 8px;
}
.content-section p {
  font-size: 0.92rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 14px;
}
.content-section ol, .content-section ul {
  padding-left: 20px;
  margin-bottom: 16px;
}
.content-section ol li, .content-section ul li {
  font-size: 0.92rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 6px;
}
.content-section ul ul {
  margin-top: 6px;
  margin-bottom: 0;
}
.content-section strong {
  color: var(--text-primary);
  font-weight: 600;
}

/* ---- PROMO BOX ---- */
.promo-section {
  padding: 30px 16px;
}

/* ---- Spotle Demo Images ---- */
.spotle-demo-images {
  display: flex;
  gap: 20px;
  margin: 24px 0 32px;
  flex-wrap: wrap;
}
.spotle-demo-card {
  flex: 1;
  min-width: 260px;
  background: var(--bg-glass);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: var(--transition-normal);
}
.spotle-demo-card:hover {
  border-color: var(--border-strong);
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(0,0,0,0.3);
}
.spotle-demo-card img {
  width: 100%;
  height: auto;
  display: block;
}
.spotle-demo-label {
  display: block;
  text-align: center;
  padding: 12px 16px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-secondary);
  font-family: var(--font-heading);
}

@media (max-width: 600px) {
  .spotle-demo-images {
    flex-direction: column;
    gap: 16px;
  }
  .spotle-demo-card {
    min-width: 100%;
  }
}

.promo-box {
  max-width: 850px;
  width: 90%;
  margin: 0 auto;
  background: var(--accent-gradient-2);
  border-radius: var(--radius-xl);
  padding: 36px 28px;
  text-align: center;
  box-shadow: 0 8px 40px rgba(99,102,241,0.3);
  position: relative;
  overflow: hidden;
}
.promo-box::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.promo-badge {
  font-size: 2.5rem;
  margin-bottom: 12px;
}
.promo-title {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  font-weight: 800;
  color: #fff;
  margin-bottom: 10px;
  line-height: 1.3;
}
.promo-subtitle {
  font-size: 0.95rem;
  color: rgba(255,255,255,0.85);
  margin-bottom: 22px;
  line-height: 1.5;
}
.promo-btn {
  display: inline-block;
  background: #fff;
  color: var(--accent-purple-deep);
  font-weight: 700;
  font-size: 0.95rem;
  padding: 12px 32px;
  border-radius: var(--radius-full);
  text-decoration: none;
  font-family: var(--font-heading);
  transition: var(--transition-normal);
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}
.promo-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 25px rgba(0,0,0,0.3);
}

/* ---- FAQ ACCORDION ---- */
.faq-section {
  padding: 30px 0 50px;
  border-top: 1px solid var(--border-color);
  max-width: 900px;
  width: 90%;
  margin: 0 auto;
}
.faq-heading {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--text-primary);
  text-align: center;
  margin-bottom: 28px;
  background: var(--accent-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.faq-item {
  background: var(--bg-glass);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: var(--transition-normal);
}
.faq-item:hover {
  border-color: var(--border-strong);
}
.faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-heading);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--text-primary);
  text-align: left;
  transition: var(--transition-fast);
}
.faq-question:hover {
  background: var(--bg-glass-hover);
}
.faq-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  transition: transform 0.3s ease;
  color: var(--text-muted);
}
.faq-item.active .faq-icon {
  transform: rotate(180deg);
}
.faq-item.active {
  border-color: var(--accent-purple);
  box-shadow: 0 0 20px rgba(124,58,237,0.1);
}
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, padding 0.35s ease;
}
.faq-item.active .faq-answer {
  max-height: 300px;
}
.faq-answer p {
  padding: 0 18px 16px;
  font-size: 0.88rem;
  color: var(--text-secondary);
  line-height: 1.65;
  margin: 0;
}

/* ---- Light Theme Overrides ---- */
[data-theme="light"] .promo-box {
  box-shadow: 0 8px 40px rgba(99,102,241,0.2);
}
[data-theme="light"] .faq-item.active {
  box-shadow: 0 0 20px rgba(124,58,237,0.08);
}

