/* ================================================================
   THEME SYSTEM — Neo Puzzle Lovers
   Default (no class on body) = Neon (existing look)
   Classes: theme-dark | theme-light | theme-pixel
   ================================================================ */

/* ================================================================
   MOBILE NAV LAYOUT
   Theme picker + hamburger grouped at the right on mobile.
   ================================================================ */

@media (max-width: 920px) {
  .site-nav {
    justify-content: flex-start;
    gap: 0.6rem;
  }

  .theme-picker {
    margin-left: auto;
  }
}

/* ─── LOGO SWAP FADE ─── */
#hero-logo {
  transition: opacity 0.42s ease;
}

/* ─── SMOOTH TRANSITION DURING THEME SWITCH ─── */
body.is-theme-changing,
body.is-theme-changing *,
body.is-theme-changing *::before,
body.is-theme-changing *::after {
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease,
    opacity 0.3s ease !important;
}

/* ================================================================
   THEME PICKER COMPONENT
   ================================================================ */

.theme-picker {
  position: relative;
  flex-shrink: 0;
}

.theme-picker-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  padding: 0.42rem 0.78rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  color: var(--pl-soft);
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.theme-picker-btn:hover {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.24);
  color: #fff;
}

.theme-picker-icon {
  font-size: 0.95rem;
  line-height: 1;
}

.theme-dropdown {
  position: absolute;
  top: calc(100% + 0.55rem);
  right: 0;
  min-width: 168px;
  padding: 0.45rem;
  list-style: none;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 16px;
  background: rgba(10, 8, 15, 0.97);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.52);
  z-index: 200;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-8px);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

.theme-dropdown.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.theme-option {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  padding: 0.52rem 0.8rem;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: var(--pl-soft);
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  text-align: left;
  transition: background-color 0.16s ease, color 0.16s ease;
}

.theme-option:hover {
  background: rgba(255, 255, 255, 0.07);
  color: #fff;
}

.theme-option.is-active {
  background: rgba(255, 255, 255, 0.11);
  color: #fff;
}

.theme-option.is-active::after {
  content: "✓";
  margin-left: auto;
  opacity: 0.7;
  font-size: 0.75rem;
}

@media (max-width: 560px) {
  .theme-picker-label {
    display: none;
  }

  .theme-picker-btn {
    padding: 0.42rem 0.6rem;
  }
}

/* ================================================================
   DARK THEME — Deep Navy · Electric Blue · Amber
   ================================================================ */

body.theme-dark {
  --pl-cyan:      #40c4ff;
  --pl-blue:      #2979ff;
  --pl-lilac:     #7c4dff;
  --pl-pink:      #ffab40;
  --pl-deep:      #0d1829;
  --pl-void:      #050d17;
  --pl-soft:      #b0cff4;
  --pl-text:      #ddeeff;
  --pl-muted:     #6a9fcf;
  --pl-white:     #ddeeff;
  --pl-grad:      linear-gradient(135deg, #40c4ff 0%, #2979ff 25%, #7c4dff 60%, #ffab40 100%);
  --pl-grad-soft: linear-gradient(160deg, rgba(64,196,255,0.12), rgba(41,121,255,0.08), rgba(255,171,64,0.10));
  --pl-panel:     rgba(5, 16, 30, 0.88);
  --pl-panel-alt: rgba(64, 196, 255, 0.03);
  --pl-border:    rgba(64, 196, 255, 0.15);
  --shadow-glow:  0 22px 60px rgba(0, 0, 0, 0.65);
  background:
    radial-gradient(circle at top left,  rgba(41, 121, 255, 0.13), transparent 24%),
    radial-gradient(circle at 85% 14%,   rgba(64, 196, 255, 0.11), transparent 28%),
    radial-gradient(circle at 50% 92%,   rgba(255, 171, 64, 0.09), transparent 28%),
    #050d17;
}

body.theme-dark .site-nav {
  background: rgba(4, 11, 22, 0.92);
  border-color: rgba(64, 196, 255, 0.18);
}

body.theme-dark .activity-card,
body.theme-dark .member-card,
body.theme-dark .work-card,
body.theme-dark .engine-card,
body.theme-dark .faq-item,
body.theme-dark .signal-card,
body.theme-dark .fandom-badge,
body.theme-dark .contact-box {
  background: rgba(6, 18, 34, 0.86);
  border-color: rgba(64, 196, 255, 0.10);
}

body.theme-dark .hero-logo {
  width: min(100%, 415px);
}

body.theme-dark .hero-text-box {
  background: var(--pl-grad-soft), rgba(5, 16, 30, 0.72);
  border-color: rgba(64, 196, 255, 0.12);
}

body.theme-dark .hero-kicker {
  color: #40c4ff;
  border-color: rgba(64, 196, 255, 0.28);
}

body.theme-dark .section-divider {
  box-shadow: 0 0 14px rgba(41, 121, 255, 0.35);
}

body.theme-dark .scroll-progress {
  box-shadow: 0 0 14px rgba(41, 121, 255, 0.42);
}

body.theme-dark .bg-orb-a { background: radial-gradient(circle, rgba(41,121,255,0.14)  0%, transparent 72%); }
body.theme-dark .bg-orb-b { background: radial-gradient(circle, rgba(64,196,255,0.11)  0%, transparent 72%); }
body.theme-dark .bg-orb-c { background: radial-gradient(circle, rgba(255,171,64,0.09)  0%, transparent 72%); }

/* Dark mode: electric blue + amber identity */
body.theme-dark .hero-subtitle      { color: #b0cff4; }
body.theme-dark .typewriter-line    { color: #ffcc80; }
body.theme-dark .signal-label       { color: #b0cff4; }
body.theme-dark .member-name        { color: #ffcc80; }
body.theme-dark .member-desc em     { color: #40c4ff; }
body.theme-dark .timeline-item h3   { color: #90caf9; }
body.theme-dark .work-meta          { color: #40c4ff; }
body.theme-dark .faq-question       { color: #b0cff4; }
body.theme-dark .faq-answer         { color: #6a9fcf; }
body.theme-dark .contact-tagline    { color: #6a9fcf; }
body.theme-dark footer              { color: #4a7aaf; }
body.theme-dark footer span         { color: #ffcc80; }
body.theme-dark .section-intro      { color: #6a9fcf; }
body.theme-dark .scroll-cue         { color: #2979ff; }

/* ================================================================
   LIGHT THEME
   ================================================================ */

body.theme-light {
  --pl-cyan:      #0ea5e9;
  --pl-blue:      #6366f1;
  --pl-lilac:     #8b5cf6;
  --pl-pink:      #ec4899;
  --pl-deep:      #f1f5f9;
  --pl-void:      #f8fafc;
  --pl-soft:      #334155;
  --pl-text:      #0f172a;
  --pl-muted:     #475569;
  --pl-white:     #0f172a;
  --pl-grad:      linear-gradient(135deg, #0ea5e9 0%, #6366f1 28%, #8b5cf6 62%, #ec4899 100%);
  --pl-grad-soft: linear-gradient(160deg, rgba(14,165,233,0.09), rgba(99,102,241,0.07), rgba(236,72,153,0.07));
  --pl-panel:     rgba(248, 250, 252, 0.90);
  --pl-panel-alt: rgba(0, 0, 0, 0.02);
  --pl-border:    rgba(0, 0, 0, 0.09);
  --shadow-glow:  0 10px 36px rgba(99, 102, 241, 0.10);
  background:
    radial-gradient(circle at top left,  rgba(236, 72, 153, 0.06), transparent 24%),
    radial-gradient(circle at 85% 14%,   rgba(99, 102, 241, 0.06), transparent 28%),
    radial-gradient(circle at 50% 92%,   rgba(139, 92, 246, 0.05), transparent 28%),
    #f8fafc;
}

body.theme-light .site-nav {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(0, 0, 0, 0.08);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
}

body.theme-light .nav-logo-eyebrow { color: #64748b; }
body.theme-light .nav-logo-text    { background: var(--pl-grad); -webkit-background-clip: text; background-clip: text; }
body.theme-light .nav-links a      { color: #334155; }

body.theme-light .nav-links a:hover,
body.theme-light .nav-links a.active {
  color: #4c1d95;
  background: rgba(99, 102, 241, 0.08);
  box-shadow: 0 0 0 1px rgba(99, 102, 241, 0.10) inset;
}

body.theme-light .nav-toggle {
  border-color: rgba(0, 0, 0, 0.10);
  background: rgba(0, 0, 0, 0.03);
}

body.theme-light .nav-toggle span { background: #334155; }

body.theme-light .activity-card,
body.theme-light .member-card,
body.theme-light .work-card,
body.theme-light .engine-card,
body.theme-light .faq-item,
body.theme-light .signal-card,
body.theme-light .fandom-badge,
body.theme-light .contact-box {
  background: rgba(255, 255, 255, 0.88);
  border-color: rgba(0, 0, 0, 0.08);
}

body.theme-light .activity-card:hover,
body.theme-light .member-card:hover,
body.theme-light .work-card:hover,
body.theme-light .engine-card:hover {
  border-color: rgba(99, 102, 241, 0.28);
}

body.theme-light .fandom-badge:hover {
  border-color: rgba(99, 102, 241, 0.30);
  box-shadow: 0 8px 22px rgba(99, 102, 241, 0.10);
}

/* Light mode: all text must be dark enough on white panels */
body.theme-light .hero-subtitle         { color: #1e1b4b; }
body.theme-light .signal-label          { color: #0f172a; }
body.theme-light .faq-question:hover    { color: #1e1b4b; }
body.theme-light .typewriter-line       { color: #7c3aed; }
body.theme-light .scroll-cue            { color: #6366f1; }

body.theme-light .hero-text-box {
  background: rgba(255, 255, 255, 0.80);
  border-color: rgba(0, 0, 0, 0.08);
  color: #0f172a;
}

body.theme-light .hero-text-box strong  { color: #6d28d9; }

body.theme-light .hero-kicker {
  color: #6366f1;
  background: rgba(99, 102, 241, 0.07);
  border-color: rgba(99, 102, 241, 0.18);
}

body.theme-light .hero-pills li {
  color: #4c1d95;
  background: rgba(99, 102, 241, 0.06);
  border-color: rgba(99, 102, 241, 0.14);
}

body.theme-light .btn-secondary {
  color: #1e1b4b;
  border-color: rgba(0, 0, 0, 0.14);
  background: rgba(0, 0, 0, 0.03);
}

body.theme-light .btn-secondary:hover { background: rgba(0, 0, 0, 0.07); }

body.theme-light .member-name           { color: #4c1d95; }
body.theme-light .member-title          { color: #475569; }
body.theme-light .member-desc em        { color: #7c3aed; }
body.theme-light .member-desc          { color: #334155; }
body.theme-light .timeline-item h3      { color: #4c1d95; }
body.theme-light .work-meta             { color: #6366f1; }
body.theme-light .faq-question          { color: #1e293b; }
body.theme-light .faq-answer            { color: #475569; }
body.theme-light .contact-tagline       { color: #6366f1; }
body.theme-light .section-intro         { color: #475569; }
body.theme-light footer                 { border-color: rgba(0,0,0,0.08); color: #64748b; }
body.theme-light footer span            { color: #ec4899; }
body.theme-light .footer-subline        { color: #64748b; }

body.theme-light .activity-card h3,
body.theme-light .engine-card h3,
body.theme-light .work-card h3          { color: #0f172a; }
body.theme-light .activity-card p,
body.theme-light .engine-card p,
body.theme-light .work-card p           { color: #334155; }

/* Las tarjetas del Puzzle Engine (y afines) eran casi blancas sobre un
   fondo casi blanco: se fundían y el texto se leía lavado. Blanco sólido,
   borde e leve sombra para separarlas del fondo en claro. */
body.theme-light .engine-card,
body.theme-light .activity-card,
body.theme-light .work-card {
  background: #ffffff;
  border-color: rgba(15, 23, 42, 0.14);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.07);
}

body.theme-light .fandom-badge span:last-child { color: #334155; }

body.theme-light .bg-grid {
  background-image:
    linear-gradient(rgba(0, 0, 0, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 0, 0, 0.04) 1px, transparent 1px);
}

body.theme-light .starfield { opacity: 0.12; }

body.theme-light .bg-orb-a { background: radial-gradient(circle, rgba(236,72,153,0.12) 0%, transparent 72%); }
body.theme-light .bg-orb-b { background: radial-gradient(circle, rgba(99,102,241,0.10) 0%, transparent 72%); }
body.theme-light .bg-orb-c { background: radial-gradient(circle, rgba(139,92,246,0.08) 0%, transparent 72%); }

body.theme-light .content-section-alt::before {
  background: linear-gradient(180deg, rgba(0,0,0,0.02), rgba(99,102,241,0.04), rgba(0,0,0,0.02));
  border-color: rgba(0, 0, 0, 0.05);
}

body.theme-light .scroll-progress {
  box-shadow: 0 0 14px rgba(139, 92, 246, 0.30);
}

body.theme-light .section-divider {
  box-shadow: 0 0 14px rgba(139, 92, 246, 0.22);
}

body.theme-light .history-timeline::before { background: var(--pl-grad); }
body.theme-light .timeline-dot             { box-shadow: 0 0 10px rgba(139, 92, 246, 0.28); }

body.theme-light .theme-dropdown {
  background: rgba(255, 255, 255, 0.97);
  border-color: rgba(0, 0, 0, 0.09);
}

body.theme-light .theme-option           { color: #334155; }
body.theme-light .theme-option:hover     { background: rgba(99,102,241,0.08); color: #1e1b4b; }
body.theme-light .theme-option.is-active { background: rgba(99,102,241,0.12); color: #1e1b4b; }

body.theme-light .theme-picker-btn {
  border-color: rgba(0, 0, 0, 0.10);
  background: rgba(0, 0, 0, 0.04);
  color: #334155;
}

body.theme-light .theme-picker-btn:hover {
  background: rgba(0, 0, 0, 0.07);
  border-color: rgba(0, 0, 0, 0.16);
  color: #0f172a;
}

body.theme-light .hero-logo {
  width: min(100%, 415px);
}

/* Light mode: hero area legibility */
body.theme-light .logo-ring {
  border-color: rgba(99, 102, 241, 0.20);
}

body.theme-light .logo-ring-b {
  border-color: rgba(139, 92, 246, 0.28);
}

body.theme-light .logo-wrap {
  background: radial-gradient(ellipse at center, rgba(99, 102, 241, 0.08) 0%, transparent 68%);
}

body.theme-light .hero-logo {
  filter: drop-shadow(0 6px 24px rgba(99, 102, 241, 0.22)) drop-shadow(0 2px 6px rgba(0, 0, 0, 0.10));
}

body.theme-light .hero-spark-a {
  background: radial-gradient(circle, rgba(14, 165, 233, 0.30) 0%, transparent 70%);
}

body.theme-light .hero-spark-b {
  background: radial-gradient(circle, rgba(139, 92, 246, 0.26) 0%, transparent 70%);
}

body.theme-light .hero-text-box {
  background: rgba(255, 255, 255, 0.94);
  border-color: rgba(99, 102, 241, 0.16);
  box-shadow: 0 6px 28px rgba(99, 102, 241, 0.10), 0 1px 4px rgba(0, 0, 0, 0.06);
}

/* ================================================================
   PIXEL ART — GREEN EDITION
   Matrix green / retro-game palette + full 8-bit treatment
   ================================================================ */

body.theme-pixel {
  --font-heading:  "Pixelify Sans", monospace;
  --pl-cyan:       #00ff41;
  --pl-blue:       #33cc44;
  --pl-lilac:      #aaff00;
  --pl-pink:       #ff8c00;
  --pl-deep:       #0a1a0a;
  --pl-void:       #010801;
  --pl-soft:       #aaddaa;
  --pl-text:       #e0ffe0;
  --pl-muted:      #55aa55;
  --pl-white:      #e0ffe0;
  --pl-grad:       linear-gradient(135deg, #00ff41 0%, #33cc44 33%, #aaff00 66%, #ff8c00 100%);
  --pl-grad-soft:  linear-gradient(160deg, rgba(0,255,65,0.12), rgba(51,204,68,0.08), rgba(255,140,0,0.08));
  --pl-panel:      rgba(0, 20, 2, 0.94);
  --pl-panel-alt:  rgba(0, 255, 65, 0.04);
  --pl-border:     rgba(0, 255, 65, 0.45);
  --shadow-glow:   4px 4px 0px rgba(0, 160, 30, 0.70);
  background: #010801;
}

/* ── Full 8-bit typography ── */
body.theme-pixel,
body.theme-pixel p,
body.theme-pixel a,
body.theme-pixel li,
body.theme-pixel h1,
body.theme-pixel h2,
body.theme-pixel h3,
body.theme-pixel h4,
body.theme-pixel summary,
body.theme-pixel label,
body.theme-pixel button:not(.nav-toggle) {
  font-family: "Pixelify Sans", monospace !important;
}

/* ── Scale text for Pixelify Sans ── */
body.theme-pixel .activity-card p,
body.theme-pixel .engine-card p,
body.theme-pixel .work-card p,
body.theme-pixel .timeline-item p,
body.theme-pixel .member-desc,
body.theme-pixel .faq-answer,
body.theme-pixel .section-intro,
body.theme-pixel .contact-box p,
body.theme-pixel .hero-text-box p {
  font-size: 0.84rem;
  line-height: 1.85;
}

body.theme-pixel .hero-subtitle         { font-size: 0.92rem; line-height: 1.7; }
body.theme-pixel .typewriter-line       { font-size: 0.96rem; }
body.theme-pixel .section-title         { font-size: clamp(0.96rem, 2.8vw, 1.22rem); letter-spacing: 0.03em; }
body.theme-pixel .signal-value          { font-size: clamp(1.3rem, 3.5vw, 2rem); }
body.theme-pixel .signal-label          { font-size: 0.80rem; line-height: 1.85; color: #aaddaa; }
body.theme-pixel .hero-kicker           { font-size: 0.72rem; letter-spacing: 0.05em; }
body.theme-pixel .nav-logo-text         { font-size: 0.92rem; letter-spacing: 0.03em; }
body.theme-pixel .nav-logo-eyebrow      { font-size: 0.68rem; letter-spacing: 0.04em; }
body.theme-pixel .nav-links a           { font-size: 0.76rem; }
body.theme-pixel .btn-primary,
body.theme-pixel .btn-secondary,
body.theme-pixel .contact-email         { font-size: 0.80rem; letter-spacing: 0.03em; }
body.theme-pixel .hero-pills li         { font-size: 0.76rem; }
body.theme-pixel .member-name           { font-size: 0.88rem; }
body.theme-pixel .member-title          { font-size: 0.72rem; }
body.theme-pixel .member-gen            { font-size: 0.70rem; }
body.theme-pixel .work-tag              { font-size: 0.68rem; }
body.theme-pixel .work-meta             { font-size: 0.74rem; }
body.theme-pixel .faq-question span     { font-size: 0.84rem; }
body.theme-pixel .faq-arrow             { font-size: 0.90rem; }
body.theme-pixel .contact-tagline       { font-size: 0.72rem; letter-spacing: 0.04em; }
body.theme-pixel footer                 { font-size: 0.76rem; }
body.theme-pixel .footer-subline        { font-size: 0.70rem; }
body.theme-pixel .theme-option          { font-size: 0.80rem; }
body.theme-pixel .theme-picker-btn      { font-size: 0.76rem; }
body.theme-pixel .scroll-cue span       { font-size: 0.74rem; }
body.theme-pixel .activity-card h3,
body.theme-pixel .engine-card h3,
body.theme-pixel .work-card h3          { font-size: 0.90rem; }

/* ── Pixelated image rendering ── */
body.theme-pixel img {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

body.theme-pixel .hero-logo {
  width: min(100%, 415px);
}

/* ── All sharp corners (zero border-radius) ── */
body.theme-pixel .site-nav,
body.theme-pixel .activity-card,
body.theme-pixel .member-card,
body.theme-pixel .work-card,
body.theme-pixel .engine-card,
body.theme-pixel .faq-item,
body.theme-pixel .signal-card,
body.theme-pixel .fandom-badge,
body.theme-pixel .contact-box,
body.theme-pixel .hero-kicker,
body.theme-pixel .hero-text-box,
body.theme-pixel .member-avatar,
body.theme-pixel .activity-icon,
body.theme-pixel .engine-icon,
body.theme-pixel .theme-dropdown,
body.theme-pixel .theme-option,
body.theme-pixel .theme-picker-btn,
body.theme-pixel .btn-primary,
body.theme-pixel .btn-secondary,
body.theme-pixel .contact-email,
body.theme-pixel .nav-links a,
body.theme-pixel .hero-pills li,
body.theme-pixel .member-gen,
body.theme-pixel .work-tag,
body.theme-pixel .scroll-progress,
body.theme-pixel .timeline-dot,
body.theme-pixel .section-divider {
  border-radius: 0;
}

/* ── Pixel drop-shadow (no blur, offset) ── */
body.theme-pixel .activity-card,
body.theme-pixel .member-card,
body.theme-pixel .work-card,
body.theme-pixel .engine-card,
body.theme-pixel .signal-card,
body.theme-pixel .fandom-badge,
body.theme-pixel .contact-box,
body.theme-pixel .faq-item {
  box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.60);
}

body.theme-pixel .activity-card:hover,
body.theme-pixel .member-card:hover,
body.theme-pixel .work-card:hover,
body.theme-pixel .engine-card:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0px rgba(0, 255, 65, 0.50);
  border-color: rgba(0, 255, 65, 0.65);
}

/* ── Site nav ── */
body.theme-pixel .site-nav {
  background: rgba(0, 16, 0, 0.97);
  border: 3px solid rgba(0, 255, 65, 0.45);
  box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.50);
  backdrop-filter: none;
}

body.theme-pixel .nav-logo-eyebrow { color: rgba(0, 255, 65, 0.65); }
body.theme-pixel .nav-toggle {
  border: 2px solid rgba(0, 255, 65, 0.40);
  border-radius: 0;
  background: rgba(0, 20, 0, 0.50);
}
body.theme-pixel .nav-toggle span { background: #00ff41; }

body.theme-pixel .nav-links a { color: #aaddaa; }
body.theme-pixel .nav-links a:hover,
body.theme-pixel .nav-links a.active {
  color: #00ff41;
  background: rgba(0, 255, 65, 0.10);
  box-shadow: none;
  outline: 1px solid rgba(0, 255, 65, 0.35);
}

/* Mobile nav in pixel mode */
@media (max-width: 920px) {
  body.theme-pixel .nav-links {
    background: rgba(0, 12, 0, 0.98);
    border: 3px solid rgba(0, 255, 65, 0.40);
    border-radius: 0;
    box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.50);
  }
}

/* ── Cards ── */
body.theme-pixel .activity-card,
body.theme-pixel .member-card,
body.theme-pixel .work-card,
body.theme-pixel .engine-card,
body.theme-pixel .signal-card {
  background: rgba(0, 20, 2, 0.92);
  border: 3px solid rgba(0, 255, 65, 0.30);
}

body.theme-pixel .fandom-badge {
  background: rgba(0, 15, 0, 0.94);
  border: 3px solid rgba(0, 255, 65, 0.28);
  box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.60);
}

body.theme-pixel .fandom-badge:hover {
  border-color: rgba(0, 255, 65, 0.60);
  box-shadow: 6px 6px 0px rgba(0, 160, 30, 0.60);
}

body.theme-pixel .fandom-badge span:last-child { color: #aaddaa; }

body.theme-pixel .contact-box {
  background: rgba(0, 15, 0, 0.94);
  border: 3px solid rgba(0, 255, 65, 0.28);
  box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.60);
}

body.theme-pixel .faq-item {
  background: rgba(0, 20, 2, 0.92);
  border: 3px solid rgba(0, 255, 65, 0.28);
  box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.60);
}

body.theme-pixel .faq-item[open] { border-color: rgba(0, 255, 65, 0.45); }

/* ── Hero area ── */
body.theme-pixel .hero-text-box {
  background: rgba(0, 20, 2, 0.85);
  border: 3px solid rgba(0, 255, 65, 0.35);
  box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.60);
  color: #e0ffe0;
}

body.theme-pixel .hero-kicker {
  color: #00ff41;
  border: 2px solid rgba(0, 255, 65, 0.45);
  background: rgba(0, 255, 65, 0.08);
}

body.theme-pixel .hero-pills li {
  border: 2px solid rgba(0, 255, 65, 0.30);
  background: rgba(0, 255, 65, 0.06);
  color: #aaddaa;
}

/* ── Colours ── */
body.theme-pixel .typewriter-line         { color: #ff8c00; }
body.theme-pixel .hero-text-box strong    { color: #aaff00; }
body.theme-pixel .hero-subtitle           { color: #aaddaa; }
body.theme-pixel .scroll-cue             { color: #33cc44; }
body.theme-pixel .section-intro           { color: #55aa55; }
body.theme-pixel .member-name             { color: #ff8c00; }
body.theme-pixel .member-title            { color: #55aa55; }
body.theme-pixel .member-desc            { color: #aaddaa; }
body.theme-pixel .member-desc em          { color: #aaff00; }
body.theme-pixel .timeline-item h3        { color: #00ff41; }
body.theme-pixel .timeline-item p         { color: #55aa55; }
body.theme-pixel .activity-card h3,
body.theme-pixel .engine-card h3,
body.theme-pixel .work-card h3            { color: #00ff41; }
body.theme-pixel .activity-card p,
body.theme-pixel .engine-card p,
body.theme-pixel .work-card p             { color: #55aa55; }
body.theme-pixel .work-meta               { color: #00ff41; }
body.theme-pixel .faq-question            { color: #aaddaa; }
body.theme-pixel .faq-question:hover      { color: #00ff41; }
body.theme-pixel .faq-answer              { color: #55aa55; }
body.theme-pixel .contact-tagline         { color: #33cc44; }
body.theme-pixel .contact-box p           { color: #aaddaa; }
body.theme-pixel footer                   { border-color: rgba(0,255,65,0.18); color: #33cc44; }
body.theme-pixel footer span              { color: #ff8c00; }
body.theme-pixel .footer-subline          { color: #33cc44; }

/* ── Buttons ── */
body.theme-pixel .btn-primary,
body.theme-pixel .contact-email {
  border: 2px solid transparent;
  box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.60);
  color: #010801;
}

body.theme-pixel .btn-primary:hover,
body.theme-pixel .contact-email:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0px rgba(0, 255, 65, 0.50);
}

body.theme-pixel .btn-secondary {
  color: #00ff41;
  border: 2px solid rgba(0, 255, 65, 0.45);
  background: rgba(0, 255, 65, 0.06);
  box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.60);
}

body.theme-pixel .btn-secondary:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0px rgba(0, 255, 65, 0.50);
  border-color: rgba(0, 255, 65, 0.65);
}

/* ── Tags ── */
body.theme-pixel .tag-educa {
  background: rgba(0, 255, 65, 0.12);
  border-color: rgba(0, 255, 65, 0.35);
  color: #aaddaa;
  border-radius: 0;
}

body.theme-pixel .tag-tiktok {
  background: rgba(255, 140, 0, 0.12);
  border-color: rgba(255, 140, 0, 0.35);
  color: #ffcc88;
  border-radius: 0;
}

/* ── Member avatar & icons ── */
body.theme-pixel .member-avatar {
  border: 3px solid rgba(0, 255, 65, 0.40);
  box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.60);
}

body.theme-pixel .activity-icon,
body.theme-pixel .engine-icon {
  box-shadow: 3px 3px 0 rgba(0, 160, 30, 0.60);
}

/* ── Timeline ── */
body.theme-pixel .timeline-dot {
  box-shadow: 3px 3px 0 rgba(0, 160, 30, 0.60);
}

/* ── Background ── */
body.theme-pixel .bg-grid {
  background-image:
    linear-gradient(rgba(0, 255, 65, 0.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 255, 65, 0.10) 1px, transparent 1px);
  background-size: 8px 8px;
  opacity: 0.75;
}

body.theme-pixel .bg-orb-a { background: radial-gradient(circle, rgba(0,255,65,0.14)  0%, transparent 72%); opacity: 0.35; }
body.theme-pixel .bg-orb-b { background: radial-gradient(circle, rgba(51,204,68,0.11) 0%, transparent 72%); opacity: 0.35; }
body.theme-pixel .bg-orb-c { background: radial-gradient(circle, rgba(255,140,0,0.09) 0%, transparent 72%); opacity: 0.35; }
body.theme-pixel .starfield { opacity: 0.25; }

/* ── Dividers & progress ── */
body.theme-pixel .section-divider {
  box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.60);
}

body.theme-pixel .scroll-progress {
  box-shadow: none;
}

/* ── Theme dropdown ── */
body.theme-pixel .theme-dropdown {
  background: rgba(0, 16, 0, 0.98);
  border: 3px solid rgba(0, 255, 65, 0.40);
  border-radius: 0;
  box-shadow: 4px 4px 0px rgba(0, 160, 30, 0.50);
}

body.theme-pixel .theme-picker-btn {
  border: 2px solid rgba(0, 255, 65, 0.40);
  color: #00ff41;
  background: rgba(0, 20, 0, 0.50);
  box-shadow: 3px 3px 0 rgba(0, 160, 30, 0.50);
}

body.theme-pixel .theme-picker-btn:hover {
  border-color: rgba(0, 255, 65, 0.70);
  color: #e0ffe0;
  transform: translate(-1px, -1px);
  box-shadow: 4px 4px 0 rgba(0, 255, 65, 0.40);
}

body.theme-pixel .theme-option           { color: #aaddaa; }
body.theme-pixel .theme-option:hover     { background: rgba(0,255,65,0.10); color: #00ff41; }
body.theme-pixel .theme-option.is-active { background: rgba(0,255,65,0.14); color: #00ff41; }

/* ── Content section alt dividers ── */
body.theme-pixel .content-section-alt::before {
  background: linear-gradient(180deg, rgba(0,255,65,0.03), rgba(0,255,65,0.06), rgba(0,255,65,0.03));
  border-color: rgba(0, 255, 65, 0.08);
}
