/* ============================================================
   JagoEN.com â€” Component Styles
   Navbar, Footer, Cards, Quiz, Flashcard, Progress Components
   ============================================================ */

/* â”€â”€â”€ Navbar â”€â”€â”€ */
.navbar {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  background: rgba(255, 255, 255, 0.75);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid rgba(99, 102, 241, 0.08);
  padding: var(--space-3) 0;
  transition: all var(--transition-base);
}

.navbar.scrolled {
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
}

.navbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.navbar-logo {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  text-decoration: none;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: var(--text-2xl);
  color: var(--text-primary);
}

.navbar-logo .logo-icon {
  width: 36px;
  height: 36px;
  background: var(--gradient-primary);
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 18px;
  font-weight: 800;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
}

.navbar-logo span.logo-highlight {
  background: var(--gradient-primary);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.navbar-nav {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.navbar-nav a {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-md);
  color: var(--text-secondary);
  font-weight: 500;
  font-size: var(--text-sm);
  text-decoration: none;
  transition: all var(--transition-fast);
}

.navbar-nav a:hover {
  color: var(--color-primary);
  background: var(--color-primary-bg);
}

.navbar-nav a.active {
  color: var(--color-primary);
  background: var(--color-primary-bg);
  font-weight: 600;
}

.navbar-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

/* Streak display in navbar */
.navbar-streak {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1) var(--space-3);
  background: var(--color-warning-bg);
  border-radius: var(--radius-full);
  font-size: var(--text-sm);
  font-weight: 600;
  color: #b45309;
}

.navbar-streak .streak-fire {
  animation: streakFire 1s ease-in-out infinite;
}

/* XP display in navbar */
.navbar-xp {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1) var(--space-3);
  background: var(--gradient-primary-soft);
  border-radius: var(--radius-full);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-primary);
}

/* Mobile menu toggle */
.navbar-toggle {
  display: none;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  background: var(--color-primary-bg);
  color: var(--color-primary);
  font-size: 20px;
  cursor: pointer;
  border: none;
  transition: all var(--transition-fast);
}

.navbar-toggle:hover {
  background: rgba(99, 102, 241, 0.15);
}

/* Mobile menu */
.mobile-menu {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  z-index: var(--z-overlay);
  padding: var(--space-20) var(--space-8);
  flex-direction: column;
  gap: var(--space-2);
  animation: fadeIn 0.3s var(--ease-out);
}

.mobile-menu.open {
  display: flex;
}

.mobile-menu-close {
  position: absolute;
  top: var(--space-4);
  right: var(--space-4);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  background: var(--color-primary-bg);
  color: var(--color-primary);
  font-size: 24px;
  cursor: pointer;
  border: none;
}

.mobile-menu a {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-6);
  border-radius: var(--radius-lg);
  color: var(--text-primary);
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-lg);
  text-decoration: none;
  transition: all var(--transition-fast);
}

.mobile-menu a:hover {
  background: var(--color-primary-bg);
  color: var(--color-primary);
}

@media (max-width: 768px) {
  .navbar-nav { display: none; }
  .navbar-actions .navbar-xp { display: none; }
  .navbar-toggle { display: flex; }
}


/* â”€â”€â”€ Footer â”€â”€â”€ */
.footer {
  background: var(--glass-bg-solid);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border-top: 1px solid rgba(99, 102, 241, 0.08);
  padding: var(--space-16) 0 var(--space-8);
  margin-top: var(--space-20);
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: var(--space-12);
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.footer-brand p {
  color: var(--text-secondary);
  margin-top: var(--space-4);
  font-size: var(--text-sm);
  line-height: 1.8;
  max-width: 300px;
}

.footer-social {
  display: flex;
  gap: var(--space-3);
  margin-top: var(--space-6);
}

.footer-social a {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  background: var(--color-primary-bg);
  color: var(--color-primary);
  transition: all var(--transition-fast);
  font-size: 18px;
}

.footer-social a:hover {
  background: var(--gradient-primary);
  color: white;
  transform: translateY(-2px);
}

.footer-column h4 {
  font-size: var(--text-sm);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  margin-bottom: var(--space-4);
  font-weight: 600;
}

.footer-column a {
  display: block;
  color: var(--text-secondary);
  font-size: var(--text-sm);
  padding: var(--space-2) 0;
  transition: color var(--transition-fast);
}

.footer-column a:hover {
  color: var(--color-primary);
}

.footer-bottom {
  margin-top: var(--space-12);
  padding-top: var(--space-6);
  border-top: 1px solid rgba(99, 102, 241, 0.08);
  text-align: center;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.footer-bottom p {
  font-size: var(--text-sm);
  color: var(--text-muted);
}

@media (max-width: 768px) {
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-8);
  }
  .footer-brand { grid-column: span 2; }
}

@media (max-width: 480px) {
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: span 1; }
}


/* â”€â”€â”€ Hero Section â”€â”€â”€ */
.hero {
  position: relative;
  padding: var(--space-24) 0 var(--space-20);
  overflow: hidden;
  text-align: center;
}

.hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(99, 102, 241, 0.06) 0%, transparent 60%);
  z-index: 0;
}

.hero-content {
  position: relative;
  z-index: 1;
  max-width: 800px;
  margin-inline: auto;
}

.hero h1 {
  margin-bottom: var(--space-6);
  animation: fadeInUp 0.8s var(--ease-out);
}

.hero .hero-subtitle {
  font-size: var(--text-xl);
  color: var(--text-secondary);
  margin-bottom: var(--space-8);
  animation: fadeInUp 0.8s var(--ease-out) 0.1s both;
  max-width: 600px;
  margin-inline: auto;
}

.hero-actions {
  display: flex;
  gap: var(--space-4);
  justify-content: center;
  flex-wrap: wrap;
  animation: fadeInUp 0.8s var(--ease-out) 0.2s both;
}

.hero-stats {
  display: flex;
  justify-content: center;
  gap: var(--space-12);
  margin-top: var(--space-12);
  animation: fadeInUp 0.8s var(--ease-out) 0.3s both;
}

.hero-stat {
  text-align: center;
}

.hero-stat-value {
  font-family: var(--font-heading);
  font-size: var(--text-4xl);
  font-weight: 800;
  background: var(--gradient-primary);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.hero-stat-label {
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin-top: var(--space-1);
}

/* Particles canvas */
#particles-canvas {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

@media (max-width: 768px) {
  .hero { padding: var(--space-16) 0 var(--space-12); }
  .hero-stats { gap: var(--space-6); flex-wrap: wrap; }
}


/* â”€â”€â”€ Lesson Card â”€â”€â”€ */
.lesson-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  transition: all var(--transition-base);
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.lesson-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--gradient-primary);
  opacity: 0;
  transition: opacity var(--transition-fast);
}

.lesson-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--glass-shadow-hover);
  background: var(--glass-bg-hover);
}

.lesson-card:hover::before { opacity: 1; }

.lesson-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.lesson-card-number {
  font-family: var(--font-heading);
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--color-primary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.lesson-card-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  background: var(--gradient-primary-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin-bottom: var(--space-2);
}

.lesson-card h3 {
  font-size: var(--text-lg);
  font-weight: 700;
  margin-bottom: var(--space-1);
}

.lesson-card p {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  margin: 0;
  flex-grow: 1;
}

.lesson-card-meta {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  font-size: var(--text-xs);
  color: var(--text-muted);
}

.lesson-card-meta span {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.lesson-card-progress {
  width: 100%;
  height: 4px;
  background: rgba(99, 102, 241, 0.08);
  border-radius: var(--radius-full);
  overflow: hidden;
}

.lesson-card-progress-fill {
  height: 100%;
  background: var(--gradient-primary);
  border-radius: var(--radius-full);
  transition: width 0.6s var(--ease-spring);
}

.lesson-card.completed {
  border-color: rgba(16, 185, 129, 0.2);
}

.lesson-card.completed::before {
  background: var(--gradient-success);
  opacity: 1;
}

.lesson-card.locked {
  opacity: 0.55;
  pointer-events: none;
  filter: grayscale(0.2);
}


/* â”€â”€â”€ Feature Card â”€â”€â”€ */
.feature-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  text-align: center;
  transition: all var(--transition-base);
}

.feature-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--glass-shadow-hover);
  background: var(--glass-bg-hover);
}

.feature-card-icon {
  width: 64px;
  height: 64px;
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  margin: 0 auto var(--space-6);
  transition: transform var(--transition-base);
}

.feature-card:hover .feature-card-icon {
  transform: scale(1.1);
}

.feature-card h3 {
  font-size: var(--text-lg);
  margin-bottom: var(--space-3);
}

.feature-card p {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  margin: 0;
}


/* â”€â”€â”€ Vocab Card â”€â”€â”€ */
.vocab-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  border-left: 4px solid var(--color-primary);
  transition: all var(--transition-base);
}

.vocab-card:hover {
  box-shadow: var(--glass-shadow-hover);
  transform: translateX(4px);
}

.vocab-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: var(--space-3);
}

.vocab-card-english {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: 800;
  color: var(--text-primary);
}

.vocab-card-pronunciation {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--color-primary);
  margin-top: var(--space-1);
}

.vocab-card-indonesian {
  font-size: var(--text-lg);
  color: var(--text-secondary);
  font-weight: 500;
  margin-bottom: var(--space-3);
}

.vocab-card-example {
  background: var(--gradient-primary-soft);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  margin-top: var(--space-3);
  border: 1px solid rgba(99, 102, 241, 0.08);
}

.vocab-card-example .example-en {
  font-weight: 600;
  color: var(--text-primary);
  font-size: var(--text-sm);
}

.vocab-card-example .example-id {
  color: var(--text-muted);
  font-size: var(--text-sm);
  font-style: italic;
  margin-top: var(--space-1);
}

.vocab-card .btn-speak {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: var(--gradient-primary);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: none;
  font-size: 18px;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
  transition: all var(--transition-fast);
  flex-shrink: 0;
}

.vocab-card .btn-speak:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 16px rgba(99, 102, 241, 0.4);
}


/* â”€â”€â”€ Quiz Components â”€â”€â”€ */
.quiz-container {
  max-width: 700px;
  margin-inline: auto;
}

.quiz-progress {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-8);
}

.quiz-progress-text {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-sm);
  color: var(--color-primary);
  white-space: nowrap;
}

.quiz-question-card {
  background: var(--glass-bg-solid);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-xl);
  padding: var(--space-8);
  box-shadow: var(--glass-shadow);
  animation: scaleIn 0.4s var(--ease-spring);
}

.quiz-question-number {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: var(--text-sm);
  color: var(--color-primary);
  margin-bottom: var(--space-4);
}

.quiz-question-text {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: var(--space-6);
  line-height: 1.4;
}

.quiz-options {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.quiz-option {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  background: var(--bg-subtle);
  border: 2px solid transparent;
  border-radius: var(--radius-lg);
  cursor: pointer;
  transition: all var(--transition-fast);
  font-size: var(--text-base);
  text-align: left;
  width: 100%;
}

.quiz-option:hover:not(.disabled) {
  background: var(--color-primary-bg);
  border-color: rgba(99, 102, 241, 0.2);
  transform: translateX(4px);
}

.quiz-option .option-letter {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-sm);
  background: var(--glass-bg);
  border: 1.5px solid var(--glass-border-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  flex-shrink: 0;
  transition: all var(--transition-fast);
}

.quiz-option:hover:not(.disabled) .option-letter {
  background: var(--color-primary);
  color: white;
  border-color: var(--color-primary);
}

.quiz-option.correct {
  background: var(--color-success-bg);
  border-color: var(--color-success);
  animation: correctFlash 0.6s ease;
}

.quiz-option.correct .option-letter {
  background: var(--color-success);
  color: white;
  border-color: var(--color-success);
}

.quiz-option.wrong {
  background: var(--color-error-bg);
  border-color: var(--color-error);
  animation: wrongShake 0.5s ease;
}

.quiz-option.wrong .option-letter {
  background: var(--color-error);
  color: white;
  border-color: var(--color-error);
}

.quiz-option.disabled {
  pointer-events: none;
  opacity: 0.6;
}

.quiz-option.correct.disabled,
.quiz-option.wrong.disabled {
  opacity: 1;
}

.quiz-explanation {
  margin-top: var(--space-4);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  animation: fadeInUp 0.3s var(--ease-out);
}

.quiz-explanation.correct-explanation {
  background: var(--color-success-bg);
  border: 1px solid rgba(16, 185, 129, 0.2);
  color: #065f46;
}

.quiz-explanation.wrong-explanation {
  background: var(--color-error-bg);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: #991b1b;
}

.quiz-result {
  text-align: center;
  padding: var(--space-12) var(--space-8);
  animation: bounceIn 0.6s var(--ease-out);
}

.quiz-result-score {
  font-family: var(--font-heading);
  font-size: var(--text-6xl);
  font-weight: 800;
  background: var(--gradient-primary);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.quiz-result-label {
  font-size: var(--text-xl);
  color: var(--text-secondary);
  margin: var(--space-4) 0;
}

.quiz-result-xp {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-5);
  background: var(--color-warning-bg);
  border-radius: var(--radius-full);
  font-weight: 700;
  color: #b45309;
  font-size: var(--text-lg);
  animation: pulse 1.5s ease-in-out infinite;
}


/* â”€â”€â”€ Flashcard â”€â”€â”€ */
.flashcard-wrapper {
  perspective: 1200px;
  width: 100%;
  max-width: 500px;
  height: 320px;
  margin: 0 auto;
  cursor: pointer;
}

.flashcard {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.6s var(--ease-out);
  transform-style: preserve-3d;
}

.flashcard.flipped {
  transform: rotateY(180deg);
}

.flashcard-face {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-8);
  border-radius: var(--radius-xl);
  text-align: center;
}

.flashcard-front {
  background: var(--glass-bg-solid);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-shadow-lg);
}

.flashcard-front .flashcard-word {
  font-family: var(--font-heading);
  font-size: var(--text-4xl);
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: var(--space-3);
}

.flashcard-front .flashcard-hint {
  font-size: var(--text-sm);
  color: var(--text-muted);
}

.flashcard-front .flashcard-category {
  position: absolute;
  top: var(--space-4);
  left: var(--space-4);
}

.flashcard-back {
  background: var(--gradient-primary);
  color: white;
  transform: rotateY(180deg);
  box-shadow: var(--glass-shadow-lg);
}

.flashcard-back .flashcard-answer {
  font-family: var(--font-heading);
  font-size: var(--text-3xl);
  font-weight: 700;
  margin-bottom: var(--space-3);
}

.flashcard-back .flashcard-pronunciation {
  font-family: var(--font-mono);
  font-size: var(--text-base);
  opacity: 0.85;
  margin-bottom: var(--space-4);
}

.flashcard-back .flashcard-example {
  font-size: var(--text-sm);
  opacity: 0.9;
  max-width: 350px;
  line-height: 1.6;
}

.flashcard-controls {
  display: flex;
  justify-content: center;
  gap: var(--space-4);
  margin-top: var(--space-8);
}

.flashcard-btn {
  padding: var(--space-3) var(--space-8);
  border-radius: var(--radius-lg);
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-base);
  cursor: pointer;
  border: none;
  transition: all var(--transition-base);
}

.flashcard-btn-know {
  background: var(--color-success-bg);
  color: var(--color-success);
  border: 2px solid rgba(16, 185, 129, 0.2);
}

.flashcard-btn-know:hover {
  background: var(--color-success);
  color: white;
  transform: translateY(-2px);
}

.flashcard-btn-dunno {
  background: var(--color-error-bg);
  color: var(--color-error);
  border: 2px solid rgba(239, 68, 68, 0.2);
}

.flashcard-btn-dunno:hover {
  background: var(--color-error);
  color: white;
  transform: translateY(-2px);
}


/* â”€â”€â”€ Stats Card â”€â”€â”€ */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-6);
}

.stat-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  text-align: center;
  transition: all var(--transition-base);
}

.stat-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--glass-shadow-hover);
}

.stat-card-icon {
  font-size: 32px;
  margin-bottom: var(--space-3);
}

.stat-card-value {
  font-family: var(--font-heading);
  font-size: var(--text-3xl);
  font-weight: 800;
  background: var(--gradient-primary);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.stat-card-label {
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin-top: var(--space-1);
}


/* â”€â”€â”€ Streak Calendar (GitHub style) â”€â”€â”€ */
.streak-calendar {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
}

.streak-day {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 3px;
  background: rgba(99, 102, 241, 0.06);
  transition: all var(--transition-fast);
}

.streak-day.active-1 { background: rgba(99, 102, 241, 0.15); }
.streak-day.active-2 { background: rgba(99, 102, 241, 0.3); }
.streak-day.active-3 { background: rgba(99, 102, 241, 0.5); }
.streak-day.active-4 { background: var(--color-primary); }
.streak-day.today { outline: 2px solid var(--color-primary); outline-offset: 1px; }


/* â”€â”€â”€ Achievement Badge â”€â”€â”€ */
.achievement {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4);
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  transition: all var(--transition-base);
}

.achievement:hover {
  box-shadow: var(--glass-shadow);
  transform: translateY(-2px);
}

.achievement-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  background: var(--gradient-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}

.achievement.locked .achievement-icon {
  background: rgba(0, 0, 0, 0.05);
  filter: grayscale(1);
}

.achievement-title {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-sm);
}

.achievement-desc {
  font-size: var(--text-xs);
  color: var(--text-muted);
  margin-top: 2px;
}


/* â”€â”€â”€ Toast Notification â”€â”€â”€ */
.toast-container {
  position: fixed;
  top: var(--space-20);
  right: var(--space-6);
  z-index: var(--z-toast);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  pointer-events: none;
}

.toast {
  background: var(--glass-bg-solid);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  padding: var(--space-4) var(--space-6);
  box-shadow: var(--glass-shadow-lg);
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 300px;
  max-width: 420px;
  animation: slideInRight 0.4s var(--ease-spring);
  pointer-events: auto;
}

.toast.toast-success { border-left: 4px solid var(--color-success); }
.toast.toast-error { border-left: 4px solid var(--color-error); }
.toast.toast-warning { border-left: 4px solid var(--color-warning); }
.toast.toast-info { border-left: 4px solid var(--color-primary); }
.toast.toast-xp { border-left: 4px solid var(--color-warning); }

.toast-icon { font-size: 20px; flex-shrink: 0; }
.toast-message { font-size: var(--text-sm); font-weight: 500; }

.toast.hiding {
  animation: slideInRight 0.3s var(--ease-out) reverse forwards;
}


/* â”€â”€â”€ Modal â”€â”€â”€ */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.3);
  backdrop-filter: blur(4px);
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-6);
  animation: fadeIn 0.3s var(--ease-out);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base);
}

.modal-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

.modal {
  background: var(--glass-bg-solid);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-xl);
  padding: var(--space-8);
  box-shadow: var(--glass-shadow-lg);
  max-width: 500px;
  width: 100%;
  animation: scaleIn 0.4s var(--ease-spring);
}

.modal-close {
  float: right;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  background: var(--color-primary-bg);
  color: var(--color-primary);
  cursor: pointer;
  border: none;
  font-size: 16px;
  transition: all var(--transition-fast);
}

.modal-close:hover {
  background: var(--color-error-bg);
  color: var(--color-error);
}


/* â”€â”€â”€ Tips Box â”€â”€â”€ */
.tips-box {
  background: var(--color-warning-bg);
  border: 1px solid rgba(245, 158, 11, 0.2);
  border-left: 4px solid var(--color-warning);
  border-radius: var(--radius-md);
  padding: var(--space-5);
}

.tips-box-title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: var(--text-base);
  color: #92400e;
  margin-bottom: var(--space-2);
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.tips-box p, .tips-box li {
  font-size: var(--text-sm);
  color: #78350f;
  line-height: 1.7;
}

.tips-box ul {
  padding-left: var(--space-5);
  margin-top: var(--space-2);
}

.tips-box ul li {
  list-style: disc;
  margin-bottom: var(--space-1);
}

.info-box {
  background: var(--color-info-bg);
  border: 1px solid rgba(6, 182, 212, 0.2);
  border-left: 4px solid var(--color-info);
  border-radius: var(--radius-md);
  padding: var(--space-5);
}

.info-box-title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: var(--text-base);
  color: #155e75;
  margin-bottom: var(--space-2);
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.info-box p {
  font-size: var(--text-sm);
  color: #164e63;
}


/* â”€â”€â”€ Dialogue Box â”€â”€â”€ */
.dialogue-box {
  background: var(--gradient-primary-soft);
  border: 1px solid rgba(99, 102, 241, 0.1);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  margin: var(--space-6) 0;
}

.dialogue-line {
  display: flex;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  border-bottom: 1px solid rgba(99, 102, 241, 0.06);
}

.dialogue-line:last-child {
  border-bottom: none;
}

.dialogue-speaker {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: var(--text-sm);
  color: var(--color-primary);
  min-width: 60px;
  flex-shrink: 0;
}

.dialogue-text {
  flex-grow: 1;
}

.dialogue-en {
  font-weight: 600;
  color: var(--text-primary);
  font-size: var(--text-sm);
}

.dialogue-id {
  color: var(--text-muted);
  font-size: var(--text-xs);
  font-style: italic;
  margin-top: 2px;
}


/* â”€â”€â”€ Search Component â”€â”€â”€ */
.search-box {
  position: relative;
  max-width: 600px;
  margin-inline: auto;
}

.search-box .search-input {
  width: 100%;
  padding: var(--space-4) var(--space-6) var(--space-4) var(--space-12);
  background: var(--glass-bg-solid);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 2px solid var(--glass-border-subtle);
  border-radius: var(--radius-xl);
  font-size: var(--text-lg);
  color: var(--text-primary);
  outline: none;
  transition: all var(--transition-fast);
  box-shadow: var(--glass-shadow);
}

.search-box .search-input:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.1), var(--glass-shadow);
}

.search-box .search-icon {
  position: absolute;
  left: var(--space-4);
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  color: var(--text-muted);
}

.search-suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: var(--space-2);
  background: var(--glass-bg-solid);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--glass-shadow-lg);
  max-height: 300px;
  overflow-y: auto;
  z-index: var(--z-dropdown);
  display: none;
}

.search-suggestions.active { display: block; }

.search-suggestion-item {
  padding: var(--space-3) var(--space-5);
  cursor: pointer;
  transition: background var(--transition-fast);
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(0,0,0,0.03);
}

.search-suggestion-item:hover {
  background: var(--color-primary-bg);
}

.search-suggestion-item:last-child { border-bottom: none; }


/* â”€â”€â”€ Page Header (for lesson pages etc) â”€â”€â”€ */
.page-header {
  background: linear-gradient(180deg, rgba(99, 102, 241, 0.06) 0%, transparent 100%);
  padding: var(--space-12) 0 var(--space-8);
  text-align: center;
}

.page-header .breadcrumb {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin-bottom: var(--space-4);
}

.page-header .breadcrumb a {
  color: var(--color-primary);
}

.page-header h1 {
  font-size: var(--text-4xl);
  margin-bottom: var(--space-3);
}

.page-header .page-subtitle {
  font-size: var(--text-lg);
  color: var(--text-secondary);
  max-width: 600px;
  margin-inline: auto;
}

.page-header .page-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-6);
  margin-top: var(--space-4);
  font-size: var(--text-sm);
  color: var(--text-muted);
}

.page-header .page-meta span {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}


/* â”€â”€â”€ Lesson Content Layout â”€â”€â”€ */
.lesson-layout {
  max-width: var(--container-narrow);
  margin-inline: auto;
  padding: var(--space-8) var(--container-padding);
}

.lesson-section {
  margin-bottom: var(--space-12);
}

.lesson-section-title {
  font-size: var(--text-2xl);
  margin-bottom: var(--space-6);
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.lesson-section-title .section-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);
  background: var(--gradient-primary-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}

.lesson-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-8) 0;
  border-top: 1px solid rgba(99, 102, 241, 0.08);
  margin-top: var(--space-12);
}


/* â”€â”€â”€ Number/Day/Month Cards â”€â”€â”€ */
.item-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: var(--space-4);
}

.item-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  text-align: center;
  cursor: pointer;
  transition: all var(--transition-base);
}

.item-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--glass-shadow-hover);
  border-color: var(--color-primary);
}

.item-card:active {
  transform: translateY(-2px);
}

.item-card .item-main {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: 800;
  color: var(--color-primary);
}

.item-card .item-english {
  font-weight: 600;
  font-size: var(--text-sm);
  color: var(--text-primary);
  margin-top: var(--space-1);
}

.item-card .item-indonesian {
  font-size: var(--text-xs);
  color: var(--text-muted);
  margin-top: 2px;
}


/* â”€â”€â”€ Grammar Checker â”€â”€â”€ */
.grammar-input-area {
  position: relative;
}

.grammar-input-area .textarea {
  min-height: 200px;
  font-size: var(--text-lg);
  line-height: 1.8;
}

.grammar-error-highlight {
  background: rgba(239, 68, 68, 0.15);
  border-bottom: 2px wavy var(--color-error);
  cursor: pointer;
  position: relative;
}

.grammar-suggestion {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-4);
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-3);
  animation: fadeInUp 0.3s var(--ease-out);
}

.grammar-suggestion-type {
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  font-size: var(--text-xs);
  font-weight: 600;
  white-space: nowrap;
}

.grammar-suggestion-type.error {
  background: var(--color-error-bg);
  color: var(--color-error);
}

.grammar-suggestion-type.warning {
  background: var(--color-warning-bg);
  color: #b45309;
}

.grammar-suggestion-type.info {
  background: var(--color-info-bg);
  color: #0891b2;
}


/* â”€â”€â”€ Blog Article Card â”€â”€â”€ */
.article-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all var(--transition-base);
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
}

.article-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--glass-shadow-hover);
}

.article-card-image {
  width: 100%;
  height: 180px;
  object-fit: cover;
  background: var(--gradient-primary-soft);
}

.article-card-body {
  padding: var(--space-6);
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.article-card-category {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--color-primary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--space-2);
}

.article-card h3 {
  font-size: var(--text-lg);
  margin-bottom: var(--space-3);
  line-height: 1.4;
}

.article-card p {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  margin: 0;
  flex-grow: 1;
}

.article-card-meta {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid rgba(0,0,0,0.04);
  font-size: var(--text-xs);
  color: var(--text-muted);
}


/* â”€â”€â”€ Loading Skeleton â”€â”€â”€ */
.skeleton {
  background: linear-gradient(90deg, rgba(99,102,241,0.06) 25%, rgba(99,102,241,0.12) 50%, rgba(99,102,241,0.06) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: var(--radius-sm);
}

.skeleton-text { height: 16px; margin-bottom: 8px; }
.skeleton-title { height: 24px; width: 60%; margin-bottom: 12px; }
.skeleton-avatar { width: 48px; height: 48px; border-radius: var(--radius-full); }
.skeleton-card { height: 200px; border-radius: var(--radius-lg); }


/* â”€â”€â”€ XP Level Up Animation â”€â”€â”€ */
.xp-popup {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: var(--z-modal);
  text-align: center;
  animation: bounceIn 0.8s var(--ease-spring);
}

.xp-popup-content {
  background: var(--glass-bg-solid);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-2xl);
  padding: var(--space-12);
  box-shadow: var(--glass-shadow-lg);
}

.xp-amount {
  font-family: var(--font-heading);
  font-size: var(--text-5xl);
  font-weight: 800;
  background: var(--gradient-primary);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}


/* â”€â”€â”€ Word of the Day â”€â”€â”€ */
.wotd-card {
  background: var(--gradient-primary);
  border-radius: var(--radius-xl);
  padding: var(--space-8);
  color: white;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.wotd-card::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -50%;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
  pointer-events: none;
}

.wotd-label {
  font-size: var(--text-sm);
  font-weight: 600;
  opacity: 0.85;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: var(--space-4);
}

.wotd-word {
  font-family: var(--font-heading);
  font-size: var(--text-4xl);
  font-weight: 800;
  margin-bottom: var(--space-2);
}

.wotd-pronunciation {
  font-family: var(--font-mono);
  font-size: var(--text-base);
  opacity: 0.85;
  margin-bottom: var(--space-4);
}

.wotd-meaning {
  font-size: var(--text-lg);
  opacity: 0.95;
  margin-bottom: var(--space-4);
}

.wotd-example {
  font-size: var(--text-sm);
  opacity: 0.8;
  font-style: italic;
  max-width: 400px;
  margin-inline: auto;
}


/* â”€â”€â”€ How It Works Steps â”€â”€â”€ */
.steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
  position: relative;
}

.steps::before {
  content: '';
  position: absolute;
  top: 40px;
  left: calc(16.67% + 20px);
  right: calc(16.67% + 20px);
  height: 2px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-secondary), var(--color-success));
  z-index: 0;
}

.step {
  text-align: center;
  position: relative;
  z-index: 1;
}

.step-number {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  background: var(--gradient-primary);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: var(--text-xl);
  margin: 0 auto var(--space-4);
  box-shadow: 0 4px 16px rgba(99, 102, 241, 0.3);
}

.step h3 {
  font-size: var(--text-lg);
  margin-bottom: var(--space-2);
}

.step p {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  margin: 0;
}

@media (max-width: 768px) {
  .steps { grid-template-columns: 1fr; }
  .steps::before { display: none; }
}


/* â”€â”€â”€ Testimonial Card â”€â”€â”€ */
.testimonial-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
}

.testimonial-text {
  font-size: var(--text-base);
  color: var(--text-secondary);
  line-height: 1.8;
  font-style: italic;
  margin-bottom: var(--space-4);
  position: relative;
  padding-left: var(--space-6);
}

.testimonial-text::before {
  content: '"';
  position: absolute;
  left: 0;
  top: -4px;
  font-size: var(--text-3xl);
  font-family: var(--font-heading);
  font-weight: 800;
  color: var(--color-primary);
  opacity: 0.4;
}

.testimonial-author {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.testimonial-avatar {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: var(--gradient-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: 700;
  font-size: var(--text-sm);
}

.testimonial-name {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-sm);
}

.testimonial-role {
  font-size: var(--text-xs);
  color: var(--text-muted);
}


/* â”€â”€â”€ Filter Tabs â”€â”€â”€ */
.filter-tabs {
  display: flex;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-bottom: var(--space-8);
}

.filter-tab {
  padding: var(--space-2) var(--space-5);
  border-radius: var(--radius-full);
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-sm);
  background: var(--glass-bg);
  border: 1.5px solid var(--glass-border-subtle);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all var(--transition-fast);
}

.filter-tab:hover {
  background: var(--color-primary-bg);
  color: var(--color-primary);
  border-color: rgba(99, 102, 241, 0.2);
}

.filter-tab.active {
  background: var(--gradient-primary);
  color: white;
  border-color: transparent;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
}


/* â”€â”€â”€ Completion Button â”€â”€â”€ */
.btn-complete {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-8);
  background: var(--gradient-success);
  color: white;
  border: none;
  border-radius: var(--radius-lg);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: var(--text-base);
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(16, 185, 129, 0.3);
  transition: all var(--transition-base);
  width: 100%;
  max-width: 400px;
  margin: var(--space-8) auto 0;
}

.btn-complete:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(16, 185, 129, 0.4);
}

.btn-complete.completed {
  background: var(--color-success-bg);
  color: var(--color-success);
  box-shadow: none;
  cursor: default;
  border: 2px solid rgba(16, 185, 129, 0.2);
}

.btn-complete.completed:hover {
  transform: none;
}

 / *   D i a l o g u e   R e s p o n s i v e n e s s   * / 
 . d i a l o g u e - r o w   { 
     d i s p l a y :   f l e x ; 
     g a p :   1 r e m ; 
     m a r g i n - b o t t o m :   1 r e m ; 
 } 
 . d i a l o g u e - r o w . r e v e r s e   { 
     f l e x - d i r e c t i o n :   r o w - r e v e r s e ; 
     t e x t - a l i g n :   r i g h t ; 
 } 
 . d i a l o g u e - s p e a k e r   { 
     f o n t - w e i g h t :   7 0 0 ; 
     c o l o r :   v a r ( - - c o l o r - p r i m a r y ) ; 
     m i n - w i d t h :   8 0 p x ; 
     f l e x - s h r i n k :   0 ; 
 } 
 . d i a l o g u e - b u b b l e   { 
     b a c k g r o u n d :   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 . 7 ) ; 
     p a d d i n g :   0 . 7 5 r e m   1 r e m ; 
     b o r d e r - r a d i u s :   v a r ( - - r a d i u s - m d ) ; 
     b o x - s h a d o w :   0   2 p x   5 p x   r g b a ( 0 , 0 , 0 , 0 . 0 5 ) ; 
     f l e x - g r o w :   1 ; 
     m a x - w i d t h :   8 0 % ; 
 } 
 @ m e d i a   ( m a x - w i d t h :   4 8 0 p x )   { 
     . d i a l o g u e - r o w   { 
         f l e x - d i r e c t i o n :   c o l u m n   ! i m p o r t a n t ; 
         g a p :   0 . 2 5 r e m ; 
         t e x t - a l i g n :   l e f t   ! i m p o r t a n t ; 
     } 
     . d i a l o g u e - s p e a k e r   { 
         m i n - w i d t h :   a u t o ; 
         f o n t - s i z e :   0 . 9 r e m ; 
         m a r g i n - b o t t o m :   0 . 2 5 r e m ; 
     } 
     . d i a l o g u e - b u b b l e   { 
         m a x - w i d t h :   1 0 0 % ; 
     } 
     . v o c a b - c a r d - h e a d e r   { 
         f l e x - w r a p :   w r a p ; 
         g a p :   0 . 5 r e m ; 
     } 
     . v o c a b - c a r d - e n g l i s h   { 
         w o r d - b r e a k :   b r e a k - w o r d ; 
         f o n t - s i z e :   v a r ( - - t e x t - x l ) ; 
     } 
 } 
  
 
 / *   - - -   8 - F I G U R E   P R E M I U M   U P G R A D E S   - - -   * / 
 . p r e m i u m - h e r o   { 
     p o s i t i o n :   r e l a t i v e ; 
     b a c k g r o u n d :   l i n e a r - g r a d i e n t ( 1 3 5 d e g ,   v a r ( - - c o l o r - p r i m a r y - d a r k )   0 % ,   v a r ( - - c o l o r - p r i m a r y )   1 0 0 % ) ; 
     c o l o r :   w h i t e ; 
     p a d d i n g :   6 r e m   2 r e m   4 r e m   2 r e m ; 
     b o r d e r - r a d i u s :   0   0   2 r e m   2 r e m ; 
     m a r g i n - t o p :   - 2 r e m ; 
     m a r g i n - b o t t o m :   3 r e m ; 
     b o x - s h a d o w :   0   2 0 p x   4 0 p x   r g b a ( 9 9 ,   1 0 2 ,   2 4 1 ,   0 . 2 ) ; 
     o v e r f l o w :   h i d d e n ; 
     t e x t - a l i g n :   c e n t e r ; 
 } 
 . p r e m i u m - h e r o : : b e f o r e   { 
     c o n t e n t :   ' ' ; 
     p o s i t i o n :   a b s o l u t e ; 
     t o p :   0 ;   l e f t :   0 ;   r i g h t :   0 ;   b o t t o m :   0 ; 
     b a c k g r o u n d :   r a d i a l - g r a d i e n t ( c i r c l e   a t   t o p   r i g h t ,   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 . 2 )   0 % ,   t r a n s p a r e n t   6 0 % ) ; 
 } 
 . p r e m i u m - h e r o - i c o n   { 
     f o n t - s i z e :   5 r e m ; 
     b a c k g r o u n d :   r g b a ( 2 5 5 ,   2 5 5 ,   2 5 5 ,   0 . 2 ) ; 
     w i d t h :   1 2 0 p x ; 
     h e i g h t :   1 2 0 p x ; 
     d i s p l a y :   f l e x ; 
     a l i g n - i t e m s :   c e n t e r ; 
     j u s t i f y - c o n t e n t :   c e n t e r ; 
     b o r d e r - r a d i u s :   5 0 % ; 
     m a r g i n :   0   a u t o   1 . 5 r e m   a u t o ; 
     b o x - s h a d o w :   0   1 0 p x   2 5 p x   r g b a ( 0 , 0 , 0 , 0 . 1 ) ; 
     b a c k d r o p - f i l t e r :   b l u r ( 1 0 p x ) ; 
     b o r d e r :   1 p x   s o l i d   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 . 3 ) ; 
 } 
 . f l a s h c a r d - p r e m i u m   { 
     b a c k g r o u n d :   w h i t e ; 
     b o r d e r - r a d i u s :   v a r ( - - r a d i u s - l g ) ; 
     p a d d i n g :   2 r e m ; 
     b o x - s h a d o w :   0   1 0 p x   3 0 p x   r g b a ( 0 , 0 , 0 , 0 . 0 5 ) ,   i n s e t   0   2 p x   0   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 1 ) ; 
     b o r d e r :   1 p x   s o l i d   r g b a ( 0 , 0 , 0 , 0 . 0 5 ) ; 
     t r a n s i t i o n :   a l l   0 . 4 s   c u b i c - b e z i e r ( 0 . 1 7 5 ,   0 . 8 8 5 ,   0 . 3 2 ,   1 . 2 7 5 ) ; 
     p o s i t i o n :   r e l a t i v e ; 
     o v e r f l o w :   h i d d e n ; 
 } 
 . d a r k - m o d e   . f l a s h c a r d - p r e m i u m   { 
     b a c k g r o u n d :   r g b a ( 3 0 ,   4 1 ,   5 9 ,   0 . 8 ) ; 
     b o r d e r :   1 p x   s o l i d   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 . 1 ) ; 
     b o x - s h a d o w :   0   1 0 p x   3 0 p x   r g b a ( 0 , 0 , 0 , 0 . 2 ) ,   i n s e t   0   2 p x   0   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 . 0 5 ) ; 
 } 
 . f l a s h c a r d - p r e m i u m : h o v e r   { 
     t r a n s f o r m :   t r a n s l a t e Y ( - 1 0 p x )   r o t a t e X ( 5 d e g ) ; 
     b o x - s h a d o w :   0   2 0 p x   4 0 p x   r g b a ( 9 9 ,   1 0 2 ,   2 4 1 ,   0 . 1 5 ) ,   0   0   2 0 p x   r g b a ( 9 9 ,   1 0 2 ,   2 4 1 ,   0 . 1 ) ; 
 } 
 . f l a s h c a r d - p r e m i u m : : b e f o r e   { 
     c o n t e n t :   ' ' ; 
     p o s i t i o n :   a b s o l u t e ; 
     t o p :   0 ;   l e f t :   0 ;   w i d t h :   4 p x ;   h e i g h t :   1 0 0 % ; 
     b a c k g r o u n d :   v a r ( - - g r a d i e n t - p r i m a r y ) ; 
 } 
 . c h a t - c o n t a i n e r   { 
     d i s p l a y :   f l e x ; 
     f l e x - d i r e c t i o n :   c o l u m n ; 
     g a p :   1 . 5 r e m ; 
     p a d d i n g :   2 r e m ; 
     b a c k g r o u n d :   r g b a ( 2 4 8 ,   2 5 0 ,   2 5 2 ,   0 . 5 ) ; 
     b o r d e r - r a d i u s :   v a r ( - - r a d i u s - l g ) ; 
     b o r d e r :   1 p x   s o l i d   v a r ( - - c o l o r - b o r d e r ) ; 
 } 
 . d a r k - m o d e   . c h a t - c o n t a i n e r   { 
     b a c k g r o u n d :   r g b a ( 1 5 ,   2 3 ,   4 2 ,   0 . 5 ) ; 
 } 
 . c h a t - r o w   { 
     d i s p l a y :   f l e x ; 
     g a p :   1 r e m ; 
     a l i g n - i t e m s :   f l e x - e n d ; 
     m a x - w i d t h :   8 5 % ; 
 } 
 . c h a t - r o w . r i g h t   { 
     a l i g n - s e l f :   f l e x - e n d ; 
     f l e x - d i r e c t i o n :   r o w - r e v e r s e ; 
 } 
 . c h a t - a v a t a r   { 
     w i d t h :   4 0 p x ;   h e i g h t :   4 0 p x ; 
     b o r d e r - r a d i u s :   5 0 % ; 
     b a c k g r o u n d :   v a r ( - - g r a d i e n t - p r i m a r y ) ; 
     d i s p l a y :   f l e x ;   a l i g n - i t e m s :   c e n t e r ;   j u s t i f y - c o n t e n t :   c e n t e r ; 
     c o l o r :   w h i t e ;   f o n t - w e i g h t :   b o l d ;   f o n t - s i z e :   1 r e m ; 
     f l e x - s h r i n k :   0 ; 
     b o x - s h a d o w :   0   4 p x   1 0 p x   r g b a ( 9 9 , 1 0 2 , 2 4 1 , 0 . 3 ) ; 
 } 
 . c h a t - r o w . r i g h t   . c h a t - a v a t a r   { 
     b a c k g r o u n d :   v a r ( - - g r a d i e n t - s u c c e s s ) ; 
     b o x - s h a d o w :   0   4 p x   1 0 p x   r g b a ( 1 6 , 1 8 5 , 1 2 9 , 0 . 3 ) ; 
 } 
 . c h a t - b u b b l e   { 
     b a c k g r o u n d :   w h i t e ; 
     p a d d i n g :   1 r e m   1 . 5 r e m ; 
     b o r d e r - r a d i u s :   2 0 p x   2 0 p x   2 0 p x   4 p x ; 
     b o x - s h a d o w :   0   4 p x   1 5 p x   r g b a ( 0 , 0 , 0 , 0 . 0 5 ) ; 
     f o n t - s i z e :   1 . 1 r e m ; 
     l i n e - h e i g h t :   1 . 5 ; 
     c o l o r :   v a r ( - - t e x t - p r i m a r y ) ; 
     b o r d e r :   1 p x   s o l i d   r g b a ( 0 , 0 , 0 , 0 . 0 2 ) ; 
 } 
 . d a r k - m o d e   . c h a t - b u b b l e   { 
     b a c k g r o u n d :   v a r ( - - c o l o r - s u r f a c e ) ; 
     b o r d e r - c o l o r :   v a r ( - - c o l o r - b o r d e r ) ; 
 } 
 . c h a t - r o w . r i g h t   . c h a t - b u b b l e   { 
     b a c k g r o u n d :   v a r ( - - c o l o r - p r i m a r y ) ; 
     c o l o r :   w h i t e ; 
     b o r d e r - r a d i u s :   2 0 p x   2 0 p x   4 p x   2 0 p x ; 
     b o x - s h a d o w :   0   8 p x   2 0 p x   r g b a ( 9 9 , 1 0 2 , 2 4 1 , 0 . 2 5 ) ; 
     b o r d e r :   n o n e ; 
 } 
 . c h a t - s p e a k e r - n a m e   { 
     f o n t - s i z e :   0 . 8 r e m ; 
     c o l o r :   v a r ( - - t e x t - m u t e d ) ; 
     m a r g i n - b o t t o m :   0 . 2 5 r e m ; 
     m a r g i n - l e f t :   3 . 5 r e m ; 
 } 
 . c h a t - r o w . r i g h t   . c h a t - s p e a k e r - n a m e   { 
     t e x t - a l i g n :   r i g h t ; 
     m a r g i n - l e f t :   0 ; 
     m a r g i n - r i g h t :   3 . 5 r e m ; 
 } 
 @ m e d i a   ( m a x - w i d t h :   4 8 0 p x )   { 
     . c h a t - r o w   {   m a x - w i d t h :   9 5 % ;   } 
 } 
 . n e o n - t i p   { 
     p o s i t i o n :   r e l a t i v e ; 
     b a c k g r o u n d :   l i n e a r - g r a d i e n t ( 1 3 5 d e g ,   r g b a ( 2 4 5 ,   1 5 8 ,   1 1 ,   0 . 1 )   0 % ,   r g b a ( 2 4 5 ,   1 5 8 ,   1 1 ,   0 . 0 2 )   1 0 0 % ) ; 
     b o r d e r - r a d i u s :   v a r ( - - r a d i u s - l g ) ; 
     p a d d i n g :   2 r e m   2 r e m   2 r e m   4 r e m ; 
     b o r d e r :   1 p x   s o l i d   r g b a ( 2 4 5 ,   1 5 8 ,   1 1 ,   0 . 3 ) ; 
     o v e r f l o w :   h i d d e n ; 
 } 
 . n e o n - t i p : : b e f o r e   { 
     c o n t e n t :   ' =Ø¡Ü' ; 
     p o s i t i o n :   a b s o l u t e ; 
     t o p :   1 . 5 r e m ;   l e f t :   1 . 2 5 r e m ; 
     f o n t - s i z e :   1 . 8 r e m ; 
     f i l t e r :   d r o p - s h a d o w ( 0   0   1 0 p x   r g b a ( 2 4 5 ,   1 5 8 ,   1 1 ,   0 . 8 ) ) ; 
     a n i m a t i o n :   p u l s e - g l o w   2 s   i n f i n i t e ; 
 } 
 @ k e y f r a m e s   p u l s e - g l o w   { 
     0 %   {   f i l t e r :   d r o p - s h a d o w ( 0   0   5 p x   r g b a ( 2 4 5 ,   1 5 8 ,   1 1 ,   0 . 5 ) ) ;   } 
     5 0 %   {   f i l t e r :   d r o p - s h a d o w ( 0   0   1 5 p x   r g b a ( 2 4 5 ,   1 5 8 ,   1 1 ,   1 ) ) ;   } 
     1 0 0 %   {   f i l t e r :   d r o p - s h a d o w ( 0   0   5 p x   r g b a ( 2 4 5 ,   1 5 8 ,   1 1 ,   0 . 5 ) ) ;   } 
 } 
 . s e c t i o n - b a d g e   { 
     d i s p l a y :   i n l i n e - b l o c k ; 
     b a c k g r o u n d :   v a r ( - - c o l o r - p r i m a r y - b g ) ; 
     c o l o r :   v a r ( - - c o l o r - p r i m a r y ) ; 
     p a d d i n g :   0 . 5 r e m   1 r e m ; 
     b o r d e r - r a d i u s :   2 r e m ; 
     f o n t - s i z e :   0 . 8 7 5 r e m ; 
     f o n t - w e i g h t :   7 0 0 ; 
     t e x t - t r a n s f o r m :   u p p e r c a s e ; 
     l e t t e r - s p a c i n g :   1 p x ; 
     m a r g i n - b o t t o m :   1 r e m ; 
     b o r d e r :   1 p x   s o l i d   r g b a ( 9 9 , 1 0 2 , 2 4 1 , 0 . 2 ) ; 
 } 
  
 
 / *   - - -   I N T E R A C T I V E   F E A T U R E S   ( R O L E P L A Y   &   S P E E C H )   - - -   * / 
 . f l a s h c a r d - a c t i o n s   { 
     d i s p l a y :   f l e x ; 
     g a p :   0 . 5 r e m ; 
     m a r g i n - t o p :   1 r e m ; 
     p a d d i n g - t o p :   1 r e m ; 
     b o r d e r - t o p :   1 p x   d a s h e d   r g b a ( 0 , 0 , 0 , 0 . 1 ) ; 
 } 
 . d a r k - m o d e   . f l a s h c a r d - a c t i o n s   {   b o r d e r - t o p - c o l o r :   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 . 1 ) ;   } 
 
 . b t n - a c t i o n - s m   { 
     f l e x :   1 ; 
     d i s p l a y :   i n l i n e - f l e x ; 
     a l i g n - i t e m s :   c e n t e r ; 
     j u s t i f y - c o n t e n t :   c e n t e r ; 
     g a p :   0 . 5 r e m ; 
     p a d d i n g :   0 . 5 r e m ; 
     b a c k g r o u n d :   v a r ( - - c o l o r - s u r f a c e ) ; 
     b o r d e r :   1 p x   s o l i d   v a r ( - - c o l o r - b o r d e r ) ; 
     b o r d e r - r a d i u s :   v a r ( - - r a d i u s - m d ) ; 
     f o n t - s i z e :   0 . 8 5 r e m ; 
     f o n t - w e i g h t :   6 0 0 ; 
     c o l o r :   v a r ( - - t e x t - s e c o n d a r y ) ; 
     c u r s o r :   p o i n t e r ; 
     t r a n s i t i o n :   a l l   0 . 2 s   e a s e ; 
 } 
 . b t n - a c t i o n - s m : h o v e r   { 
     b a c k g r o u n d :   v a r ( - - c o l o r - p r i m a r y - b g ) ; 
     c o l o r :   v a r ( - - c o l o r - p r i m a r y ) ; 
     b o r d e r - c o l o r :   r g b a ( 9 9 ,   1 0 2 ,   2 4 1 ,   0 . 3 ) ; 
 } 
 
 . r o l e p l a y - t o g g l e - c o n t a i n e r   { 
     b a c k g r o u n d :   v a r ( - - g r a d i e n t - p r i m a r y - s o f t ) ; 
     p a d d i n g :   1 r e m ; 
     b o r d e r - r a d i u s :   v a r ( - - r a d i u s - l g ) ; 
     m a r g i n - b o t t o m :   1 . 5 r e m ; 
     d i s p l a y :   f l e x ; 
     a l i g n - i t e m s :   c e n t e r ; 
     j u s t i f y - c o n t e n t :   s p a c e - b e t w e e n ; 
     b o r d e r :   1 p x   s o l i d   r g b a ( 9 9 , 1 0 2 , 2 4 1 , 0 . 2 ) ; 
 } 
 . r o l e p l a y - s w i t c h   { 
     p o s i t i o n :   r e l a t i v e ; 
     d i s p l a y :   i n l i n e - b l o c k ; 
     w i d t h :   5 0 p x ; 
     h e i g h t :   2 8 p x ; 
 } 
 . r o l e p l a y - s w i t c h   i n p u t   {   o p a c i t y :   0 ;   w i d t h :   0 ;   h e i g h t :   0 ;   } 
 . r o l e p l a y - s l i d e r   { 
     p o s i t i o n :   a b s o l u t e ;   c u r s o r :   p o i n t e r ; 
     t o p :   0 ;   l e f t :   0 ;   r i g h t :   0 ;   b o t t o m :   0 ; 
     b a c k g r o u n d - c o l o r :   # c c c ; 
     t r a n s i t i o n :   . 4 s ; 
     b o r d e r - r a d i u s :   3 4 p x ; 
 } 
 . r o l e p l a y - s l i d e r : b e f o r e   { 
     p o s i t i o n :   a b s o l u t e ;   c o n t e n t :   ' ' ; 
     h e i g h t :   2 0 p x ;   w i d t h :   2 0 p x ; 
     l e f t :   4 p x ;   b o t t o m :   4 p x ; 
     b a c k g r o u n d - c o l o r :   w h i t e ; 
     t r a n s i t i o n :   . 4 s ; 
     b o r d e r - r a d i u s :   5 0 % ; 
 } 
 . r o l e p l a y - s w i t c h   i n p u t : c h e c k e d   +   . r o l e p l a y - s l i d e r   { 
     b a c k g r o u n d - c o l o r :   v a r ( - - c o l o r - p r i m a r y ) ; 
 } 
 . r o l e p l a y - s w i t c h   i n p u t : c h e c k e d   +   . r o l e p l a y - s l i d e r : b e f o r e   { 
     t r a n s f o r m :   t r a n s l a t e X ( 2 2 p x ) ; 
 } 
 
 . r o l e p l a y - m o d e   . c h a t - r o w : n o t ( . r i g h t )   . c h a t - b u b b l e   { 
     f i l t e r :   b l u r ( 6 p x ) ; 
     c u r s o r :   p o i n t e r ; 
     u s e r - s e l e c t :   n o n e ; 
     o p a c i t y :   0 . 8 ; 
     t r a n s i t i o n :   a l l   0 . 3 s   e a s e ; 
 } 
 . r o l e p l a y - m o d e   . c h a t - r o w : n o t ( . r i g h t )   . c h a t - b u b b l e : h o v e r   { 
     f i l t e r :   b l u r ( 2 p x ) ; 
 } 
 . r o l e p l a y - m o d e   . c h a t - r o w : n o t ( . r i g h t )   . c h a t - b u b b l e . r e v e a l e d   { 
     f i l t e r :   b l u r ( 0 ) ; 
     o p a c i t y :   1 ; 
     b a c k g r o u n d :   v a r ( - - c o l o r - p r i m a r y - b g ) ; 
     b o r d e r - c o l o r :   v a r ( - - c o l o r - p r i m a r y ) ; 
 } 
  
 