/* ==========================================================================
   KarsaKartu — Professional Digital Greeting & Invitation Card Customizer
   Color System & Theme Tokens strictly following color-rules (60-30-10)
   Accessibility: WCAG AA Compliant (min 4.5:1 body, min 3:1 UI elements)
   ========================================================================== */

:root {
  /* 60% Canvas & Base Surfaces (Warm Alabaster / Soft Linen Light Theme - NO DARK MODE) */
  --bg-canvas: #faf8f5;
  --bg-surface: #ffffff;
  --bg-subtle: #f3efe8;
  --bg-elevated: #ffffff;

  /* Typography / Text Tokens (No Pure #000 on Pure #FFF, High Contrast WCAG AAA/AA) */
  --text-primary: #1c1917;     /* Deep warm charcoal (WCAG AAA 15.5:1) */
  --text-secondary: #44403c;   /* Supporting slate text (WCAG AAA 8.2:1) */
  --text-muted: #6b645c;       /* Refined captions & hints (WCAG AA 4.8:1) */
  --text-inverse: #ffffff;

  /* Borders & Dividers */
  --border-subtle: #e7e1d6;
  --border-strong: #d3cabe;
  --border-focus: #be123c;

  /* 30% Secondary Surfaces & Component Backgrounds */
  --surface-secondary: #f7f4ee;
  --surface-hover: #efe9df;
  --surface-active: #e5ddcf;

  /* 10% Primary & Accent Brand Tokens (Celebratory Berry Crimson & Warm Amber Gold) */
  --color-primary: #be123c;          /* Festive Rose Crimson */
  --color-primary-hover: #9f1239;
  --color-primary-active: #881337;
  --color-primary-subtle: #ffe4e6;
  --color-primary-ring: rgba(190, 18, 60, 0.28);

  --color-accent: #b45309;           /* Warm Amber Gold */
  --color-accent-hover: #92400e;
  --color-accent-subtle: #fef3c7;
  --color-accent-ring: rgba(180, 83, 9, 0.28);

  /* Semantic Status Tokens (Mandatory 4 Colors) */
  --color-success: #15803d;
  --color-success-bg: #dcfce7;
  --color-success-border: #86efac;

  --color-warning: #b45309;
  --color-warning-bg: #fef3c7;
  --color-warning-border: #fcd34d;

  --color-error: #b91c1c;
  --color-error-bg: #fee2e2;
  --color-error-border: #fca5a5;

  --color-info: #1d4ed8;
  --color-info-bg: #dbeafe;
  --color-info-border: #93c5fd;

  /* Elevation Shadows (Warm & Natural, Not Murky) */
  --shadow-sm: 0 1px 3px 0 rgba(44, 30, 20, 0.04), 0 1px 2px -1px rgba(44, 30, 20, 0.03);
  --shadow-md: 0 4px 8px -2px rgba(44, 30, 20, 0.06), 0 2px 4px -2px rgba(44, 30, 20, 0.04);
  --shadow-lg: 0 12px 20px -4px rgba(44, 30, 20, 0.07), 0 4px 6px -3px rgba(44, 30, 20, 0.03);
  --shadow-xl: 0 24px 32px -8px rgba(44, 30, 20, 0.09), 0 8px 12px -4px rgba(44, 30, 20, 0.04);

  /* Radii Scale (Controlled, Not Arbitrary) */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 18px;

  /* Typography Families */
  --font-ui: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
  --font-serif-display: "Playfair Display", Georgia, serif;
  --font-serif-royal: "Cinzel", Georgia, serif;

  /* Spacing Base 8px Scale */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-16: 64px;

  /* Card Envelope Realistic Palette */
  --envelope-outer: #ede6da;
  --envelope-inner: #e2d8c7;
  --envelope-crease: #cbbea9;
  --seal-color: #9f1239;
  --seal-shadow: rgba(159, 18, 57, 0.35);

  /* Animated Invitation Background Tokens (Warm Luminous Aesthetic) */
  --bg-glow-1: rgba(244, 63, 94, 0.07);
  --bg-glow-2: rgba(245, 158, 11, 0.08);
  --bg-glow-3: rgba(168, 85, 247, 0.05);
  --sparkle-color: rgba(180, 83, 9, 0.55);
  --sparkle-color-alt: rgba(190, 18, 60, 0.45);
  --bokeh-color: rgba(245, 158, 11, 0.07);
}

/* ==========================================================================
   CSS Reset & Base Rules
   ========================================================================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  max-width: 100%;
}

body {
  font-family: var(--font-ui);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text-primary);
  background-color: var(--bg-canvas);
  transition: background-color 200ms ease, color 200ms ease;
  overflow-x: hidden;
  max-width: 100%;
  min-height: 100vh;
}

/* Mandatory Tabular Figures for Dates, Times & Metrics */
.metric-value,
.tab-count,
.hero-card-date,
.event-text,
.char-counter {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Skip link for keyboard navigation */
.skip-link {
  position: absolute;
  top: -100px;
  left: var(--sp-4);
  background: var(--color-primary);
  color: #ffffff;
  padding: var(--sp-3) var(--sp-6);
  z-index: 9999;
  font-weight: 600;
  border-radius: var(--radius-md);
  text-decoration: none;
  transition: top 150ms ease;
}

.skip-link:focus {
  top: var(--sp-4);
  outline: 3px solid var(--color-accent);
}

/* Focus Indicator Rule (Never Remove Without Replacement) */
:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* ==========================================================================
   Animated Celebration Background (Joyful & Characteristic of Digital Invitations)
   Features:
   - GPU-accelerated floating ambient color halos (Warm Amber, Rose Crimson, Lavender)
   - Twinkling celebratory star sparkles (✦, ✧, ⋆)
   - Floating soft bokeh particles
   - Non-intrusive (pointer-events: none, z-index: -1)
   - Fully accessible: respects prefers-reduced-motion
   ========================================================================== */
.invitation-bg-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: -1;
  overflow: hidden;
  contain: strict;
}

/* Ambient Glowing Orbs */
.bg-glow-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.orb-primary {
  width: clamp(380px, 48vw, 700px);
  height: clamp(380px, 48vw, 700px);
  top: -10%;
  left: 5%;
  background: radial-gradient(circle, var(--bg-glow-1) 0%, rgba(244, 63, 94, 0) 70%);
  filter: blur(80px);
  animation: floatOrbPrimary 22s ease-in-out infinite alternate;
}

.orb-accent {
  width: clamp(320px, 42vw, 620px);
  height: clamp(320px, 42vw, 620px);
  top: 34%;
  right: -5%;
  background: radial-gradient(circle, var(--bg-glow-2) 0%, rgba(245, 158, 11, 0) 70%);
  filter: blur(85px);
  animation: floatOrbAccent 26s ease-in-out infinite alternate;
}

.orb-subtle {
  width: clamp(360px, 50vw, 720px);
  height: clamp(360px, 50vw, 720px);
  bottom: -12%;
  left: 20%;
  background: radial-gradient(circle, var(--bg-glow-3) 0%, rgba(168, 85, 247, 0) 70%);
  filter: blur(95px);
  animation: floatOrbSubtle 30s ease-in-out infinite alternate;
}

@keyframes floatOrbPrimary {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(60px, 80px, 0) scale(1.12);
  }
  100% {
    transform: translate3d(-35px, 100px, 0) scale(0.96);
  }
}

@keyframes floatOrbAccent {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(-75px, -55px, 0) scale(1.14);
  }
  100% {
    transform: translate3d(-30px, 65px, 0) scale(0.92);
  }
}

@keyframes floatOrbSubtle {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(65px, -50px, 0) scale(1.1);
  }
  100% {
    transform: translate3d(-55px, -75px, 0) scale(0.98);
  }
}

/* Twinkling Celebratory Sparkles Layer */
.bg-sparkles-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.sparkle-item {
  position: absolute;
  display: inline-block;
  user-select: none;
  pointer-events: none;
  color: var(--sparkle-color);
  line-height: 1;
  will-change: transform, opacity;
  animation: sparkleTwinkle 4.5s ease-in-out infinite;
}

.sp-1  { top: 10%; left: 7%;   font-size: 1.15rem; animation-delay: 0.2s; }
.sp-2  { top: 18%; right: 10%; font-size: 1.35rem; animation-delay: 1.1s; color: var(--sparkle-color-alt); }
.sp-3  { top: 32%; left: 15%;  font-size: 0.9rem;  animation-delay: 2.3s; }
.sp-4  { top: 45%; right: 8%;  font-size: 1.45rem; animation-delay: 0.8s; }
.sp-5  { top: 58%; left: 9%;   font-size: 1.1rem;  animation-delay: 1.7s; color: var(--sparkle-color-alt); }
.sp-6  { top: 68%; right: 18%; font-size: 0.95rem; animation-delay: 3.1s; }
.sp-7  { top: 78%; left: 14%;  font-size: 1.35rem; animation-delay: 0.5s; }
.sp-8  { top: 88%; right: 9%;  font-size: 1.15rem; animation-delay: 1.4s; color: var(--sparkle-color-alt); }
.sp-9  { top: 25%; left: 44%;  font-size: 0.95rem; animation-delay: 2.8s; }
.sp-10 { top: 52%; left: 38%;  font-size: 1.4rem;  animation-delay: 1.3s; }
.sp-11 { top: 72%; left: 52%;  font-size: 1.05rem; animation-delay: 2.2s; color: var(--sparkle-color-alt); }
.sp-12 { top: 14%; right: 32%; font-size: 0.85rem; animation-delay: 3.5s; }

@keyframes sparkleTwinkle {
  0%, 100% {
    opacity: 0.12;
    transform: translate3d(0, 0, 0) scale(0.7) rotate(0deg);
  }
  50% {
    opacity: 0.85;
    transform: translate3d(0, -6px, 0) scale(1.3) rotate(18deg);
  }
}

/* Floating Soft Bokeh Light Layer */
.bg-bokeh-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.bokeh-dot {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, var(--bokeh-color) 0%, rgba(245, 158, 11, 0) 75%);
  filter: blur(6px);
  pointer-events: none;
  will-change: transform, opacity;
  animation: floatBokeh 18s linear infinite;
}

.bk-1 { width: 50px; height: 50px; left: 12%; bottom: -60px; animation-duration: 20s; animation-delay: 0s; }
.bk-2 { width: 70px; height: 70px; left: 35%; bottom: -80px; animation-duration: 26s; animation-delay: 5s; }
.bk-3 { width: 40px; height: 40px; left: 62%; bottom: -50px; animation-duration: 18s; animation-delay: 2s; }
.bk-4 { width: 60px; height: 60px; left: 82%; bottom: -70px; animation-duration: 24s; animation-delay: 8s; }
.bk-5 { width: 45px; height: 45px; left: 22%; bottom: -55px; animation-duration: 22s; animation-delay: 11s; }
.bk-6 { width: 55px; height: 55px; left: 75%; bottom: -65px; animation-duration: 19s; animation-delay: 14s; }

@keyframes floatBokeh {
  0% {
    transform: translate3d(0, 0, 0);
    opacity: 0;
  }
  15% {
    opacity: 0.65;
  }
  85% {
    opacity: 0.65;
  }
  100% {
    transform: translate3d(25px, -110vh, 0);
    opacity: 0;
  }
}

/* Layout Container */
.section-container,
.header-container,
.hero-container,
.footer-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--sp-4);
}

@media (min-width: 640px) {
  .section-container,
  .header-container,
  .hero-container,
  .footer-container {
    padding: 0 var(--sp-6);
  }
}

.editor-section .section-container {
  max-width: 1340px;
}

/* ==========================================================================
   Header (Solid, Clean, Functional - Anti Floating Capsule)
   ========================================================================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: var(--bg-surface);
  border-bottom: 1px solid var(--border-subtle);
  transition: background-color 200ms ease, border-color 200ms ease;
}

.header-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
  gap: var(--sp-4);
}

.brand-logo {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  text-decoration: none;
  color: var(--text-primary);
  min-height: 44px;
}

.brand-symbol {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: var(--color-primary-subtle);
  color: var(--color-primary);
  border-radius: var(--radius-md);
  flex-shrink: 0;
}

.brand-text {
  display: flex;
  flex-direction: column;
}

.brand-title {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.brand-tagline {
  font-size: 0.75rem;
  color: var(--text-muted);
  line-height: 1.2;
}

.main-nav {
  display: none;
}

@media (min-width: 840px) {
  .main-nav {
    display: block;
  }
}

.nav-links {
  display: flex;
  align-items: center;
  gap: var(--sp-6);
  list-style: none;
}

.nav-link {
  text-decoration: none;
  color: var(--text-secondary);
  font-size: 0.9375rem;
  font-weight: 500;
  padding: var(--sp-2) 0;
  position: relative;
  transition: color 150ms ease;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.nav-link:hover {
  color: var(--color-primary);
}

.nav-link:focus-visible {
  border-radius: var(--radius-sm);
}

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

/* ==========================================================================
   Button System (WCAG AA Touch Targets ≥ 44x44px, Explicit States)
   ========================================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  min-height: 44px;
  padding: 0 var(--sp-5);
  font-family: var(--font-ui);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 150ms ease;
  user-select: none;
  white-space: nowrap;
}

.btn:active:not(:disabled) {
  transform: translateY(1px);
}

.btn-primary {
  background-color: var(--color-primary);
  color: #ffffff;
}

.btn-primary:hover:not(:disabled) {
  background-color: var(--color-primary-hover);
}

.btn-primary:active:not(:disabled) {
  background-color: var(--color-primary-active);
}

.btn-accent {
  background-color: var(--color-accent);
  color: #ffffff;
}

.btn-accent:hover:not(:disabled) {
  background-color: var(--color-accent-hover);
}

.btn-secondary {
  background-color: var(--bg-subtle);
  color: var(--text-primary);
  border-color: var(--border-subtle);
}

.btn-secondary:hover:not(:disabled) {
  background-color: var(--surface-hover);
  border-color: var(--border-strong);
}

.btn-outline {
  background-color: transparent;
  color: var(--text-primary);
  border-color: var(--border-strong);
}

.btn-outline:hover:not(:disabled) {
  background-color: var(--surface-hover);
  border-color: var(--text-secondary);
}

.btn-sm {
  min-height: 38px;
  padding: 0 var(--sp-4);
  font-size: 0.875rem;
}

.btn-lg {
  min-height: 48px;
  padding: 0 var(--sp-6);
  font-size: 1rem;
}

.btn-block {
  width: 100%;
}

.btn:disabled,
.btn[aria-disabled="true"] {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: transparent;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 180ms ease;
}

.btn-icon:hover {
  background-color: var(--surface-hover);
  color: var(--text-primary);
  border-color: var(--border-strong);
}

.header-cta-btn {
  font-size: 0.875rem;
  font-weight: 600;
  padding: 0 var(--sp-4);
  height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

/* ==========================================================================
   Recipient Banner (Appears when shared URL is opened)
   ========================================================================== */
.recipient-banner {
  background-color: var(--color-primary-subtle);
  border-bottom: 1px solid var(--color-primary);
  padding: var(--sp-3) 0;
  color: var(--text-primary);
  animation: fadeInDown 250ms ease;
  position: sticky;
  top: 73px;
  z-index: 90;
  box-shadow: var(--shadow-sm);
}

.recipient-banner.hidden {
  display: none !important;
}

.banner-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--sp-4);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
}

@media (min-width: 640px) {
  .banner-inner {
    padding: 0 var(--sp-6);
  }
}

.banner-text {
  font-size: 0.9375rem;
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  color: var(--text-primary);
}

.banner-icon {
  font-size: 1.125rem;
}

.banner-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  align-items: center;
}

@media (max-width: 640px) {
  .banner-inner {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    gap: var(--sp-2);
  }

  .banner-text {
    justify-content: center;
  }

  .banner-actions {
    justify-content: center;
    width: 100%;
  }

  .banner-actions .btn {
    flex: 1 1 auto;
    min-height: 44px;
  }
}

/* ==========================================================================
   Hero Section (Refined, Editorial, No AI Slop Pill Pulse)
   ========================================================================== */
.hero-section {
  padding: var(--sp-12) 0 var(--sp-16);
  background: transparent;
  border-bottom: 1px solid var(--border-subtle);
}

.hero-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-10);
  align-items: center;
}

@media (min-width: 960px) {
  .hero-container {
    grid-template-columns: 1.2fr 0.8fr;
  }
}

.hero-badge-wrap {
  margin-bottom: var(--sp-4);
}

.badge-accent {
  display: inline-block;
  padding: var(--sp-1) var(--sp-3);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-primary);
  background-color: var(--color-primary-subtle);
  border-radius: var(--radius-sm);
  letter-spacing: 0.01em;
}

.hero-headline {
  font-family: var(--font-serif-display);
  font-size: clamp(2rem, 3.5vw + 1rem, 3.25rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--text-primary);
  margin-bottom: var(--sp-4);
}

.hero-description {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 620px;
  margin-bottom: var(--sp-8);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-4);
  margin-bottom: var(--sp-10);
}

@media (max-width: 480px) {
  .hero-actions {
    flex-direction: column;
    gap: var(--sp-3);
    margin-bottom: var(--sp-6);
  }
  .hero-actions .btn {
    width: 100%;
    justify-content: center;
  }
}

.hero-metrics {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-6);
  padding-top: var(--sp-6);
  border-top: 1px solid var(--border-subtle);
}

.metric-item {
  display: flex;
  flex-direction: column;
}

.metric-value {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
}

.metric-label {
  font-size: 0.8125rem;
  color: var(--text-muted);
}

.metric-divider {
  width: 1px;
  height: 32px;
  background-color: var(--border-subtle);
}

@media (max-width: 640px) {
  .hero-metrics {
    gap: var(--sp-4);
    justify-content: space-between;
  }
  .metric-divider {
    display: none;
  }
  .metric-item {
    flex: 1 1 calc(50% - var(--sp-4));
    min-width: 120px;
  }
}

/* Hero Mini Card Visual */
.hero-visual {
  display: flex;
  justify-content: center;
}

.hero-card-preview {
  width: 100%;
  max-width: 400px;
  background-color: var(--bg-surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
  padding: var(--sp-6);
  position: relative;
  transition: transform 200ms ease;
}

.hero-card-preview:hover {
  transform: translateY(-4px);
}

.hero-card-inner {
  border: 1px solid var(--color-accent);
  padding: var(--sp-6);
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, rgba(254, 243, 199, 0.15) 0%, rgba(255, 255, 255, 0.05) 100%);
}

.hero-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--sp-6);
}

.hero-card-tag {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--color-accent);
  letter-spacing: 0.05em;
}

.hero-card-date {
  font-size: 0.8125rem;
  color: var(--text-muted);
}

.hero-card-salutation {
  font-size: 0.875rem;
  color: var(--text-secondary);
  font-style: italic;
  margin-bottom: var(--sp-1);
}

.hero-card-name {
  font-family: var(--font-serif-display);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: var(--sp-3);
  line-height: 1.2;
}

.hero-card-excerpt {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  line-height: 1.5;
  margin-bottom: var(--sp-6);
}

.hero-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px dashed var(--border-strong);
  padding-top: var(--sp-4);
}

.hero-card-from {
  font-size: 0.8125rem;
  color: var(--text-muted);
}

.hero-card-badge {
  font-size: 0.75rem;
  padding: 2px 8px;
  background-color: var(--color-primary-subtle);
  color: var(--color-primary);
  border-radius: var(--radius-sm);
  font-weight: 600;
}

/* ==========================================================================
   Section Headers
   ========================================================================== */
.section-header {
  text-align: center;
  max-width: 680px;
  margin: 0 auto var(--sp-10);
}

.section-subtitle {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: var(--sp-2);
}

.section-title {
  font-family: var(--font-serif-display);
  font-size: clamp(1.75rem, 2.5vw + 1rem, 2.5rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--text-primary);
  margin-bottom: var(--sp-3);
}

.section-desc {
  font-size: 1rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

/* ==========================================================================
   Catalog Section & Editorial Bento Grid
   ========================================================================== */
.catalog-section {
  padding: var(--sp-16) 0;
  background: transparent;
}

.catalog-filter-bar {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--sp-2);
  margin-bottom: var(--sp-10);
}

@media (max-width: 768px) {
  .catalog-filter-bar {
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: var(--sp-1) var(--sp-2) var(--sp-2);
    margin-bottom: var(--sp-6);
  }

  .catalog-filter-bar::-webkit-scrollbar {
    display: none;
  }

  .filter-tab {
    flex-shrink: 0;
    white-space: nowrap;
  }
}

.filter-tab {
  min-height: 44px;
  padding: 0 var(--sp-5);
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  font-family: var(--font-ui);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 180ms ease;
}

.filter-tab:hover {
  background-color: var(--surface-hover);
  color: var(--text-primary);
  border-color: var(--border-strong);
}

.filter-tab.active {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: #ffffff;
}

/* Asymmetric / Bento Style Dynamic Layout */
.catalog-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sp-6);
}

@media (min-width: 640px) {
  .catalog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .catalog-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .template-card.featured {
    grid-column: span 1;
  }
}

.template-card {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.template-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: var(--border-strong);
}

.template-card.hidden {
  display: none !important;
}

/* Distinct Aesthetic Thumbnails */
.card-thumbnail {
  height: 200px;
  padding: var(--sp-4);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.thumb-frame {
  width: 90%;
  height: 85%;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: var(--radius-sm);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--sp-3);
  backdrop-filter: blur(2px);
}

.thumb-badge {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  margin-bottom: var(--sp-2);
}

.thumb-heading {
  font-family: var(--font-serif-display);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: var(--sp-1);
}

.thumb-name {
  font-size: 0.875rem;
  font-weight: 700;
}

.thumb-sub {
  font-size: 0.75rem;
  opacity: 0.85;
}

.thumb-decor {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}

.thumb-symbol {
  font-size: 0.625rem;
}

.thumb-line {
  width: 24px;
  height: 1px;
  background-color: currentColor;
}

/* Individual Card Thumbnail Personalities */
.thumb-ultah-echa {
  background: linear-gradient(135deg, #f43f5e 0%, #fb7185 50%, #fda4af 100%);
  color: #ffffff;
}
.thumb-ultah-echa .thumb-frame {
  border-color: rgba(255, 255, 255, 0.65);
}
.thumb-ultah-echa .thumb-badge {
  background: rgba(190, 18, 60, 0.45);
  color: #fff1f2;
}
.thumb-ultah-echa .thumb-heading {
  font-family: var(--font-serif-display);
  font-size: 1.125rem;
  letter-spacing: -0.02em;
}
.thumb-ultah-echa .thumb-name {
  color: #fff1f2;
  font-weight: 700;
}

.thumb-ultah-ceria {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 50%, #b45309 100%);
  color: #ffffff;
}
.thumb-ultah-ceria .thumb-badge {
  background: rgba(0, 0, 0, 0.25);
  color: #ffffff;
}

.thumb-ultah-elegan {
  background: linear-gradient(135deg, #0f172a 0%, #1e293b 60%, #334155 100%);
  color: #f1f5f9;
}
.thumb-ultah-elegan .thumb-frame {
  border-color: #e2b04a;
}
.thumb-ultah-elegan .thumb-badge {
  background: #e2b04a;
  color: #0f172a;
}
.thumb-ultah-elegan .thumb-heading {
  color: #e2b04a;
}

.thumb-ultah-pastel {
  background: linear-gradient(135deg, #fbcfe8 0%, #f472b6 50%, #db2777 100%);
  color: #ffffff;
}
.thumb-ultah-pastel .thumb-badge {
  background: rgba(255, 255, 255, 0.3);
  color: #831843;
}

.thumb-anniv-romantis {
  background: linear-gradient(135deg, #4c0519 0%, #881337 50%, #be123c 100%);
  color: #ffffff;
}
.thumb-anniv-romantis .thumb-frame {
  border-color: #fcd34d;
}
.thumb-anniv-romantis .thumb-badge {
  background: #fcd34d;
  color: #881337;
}
.thumb-anniv-romantis .thumb-heading {
  color: #fef3c7;
}

.thumb-anniv-botanical {
  background: linear-gradient(135deg, #14532d 0%, #166534 50%, #15803d 100%);
  color: #ffffff;
}
.thumb-anniv-botanical .thumb-frame {
  border-color: #bbf7d0;
}
.thumb-anniv-botanical .thumb-badge {
  background: #dcfce7;
  color: #14532d;
}

.thumb-anniv-celestial {
  background: linear-gradient(135deg, #020617 0%, #0f172a 50%, #1e3a8a 100%);
  color: #ffffff;
}
.thumb-anniv-celestial .thumb-frame {
  border-color: #93c5fd;
}
.thumb-anniv-celestial .thumb-badge {
  background: #1e3a8a;
  color: #bfdbfe;
  border: 1px solid #60a5fa;
}

/* 7. Thumb Royal Emerald */
.thumb-royal-emerald {
  background: linear-gradient(135deg, #052e16 0%, #064e3b 50%, #022c22 100%);
  color: #fef08a;
}
.thumb-royal-emerald .thumb-frame {
  border-color: #fbbf24;
}
.thumb-royal-emerald .thumb-badge {
  background: #fbbf24;
  color: #052e16;
}
.thumb-royal-emerald .thumb-heading {
  color: #fde047;
}

/* 8. Thumb Sakura Blossom */
.thumb-sakura-blossom {
  background: linear-gradient(135deg, #fff1f2 0%, #fbcfe8 50%, #f472b6 100%);
  color: #881337;
}
.thumb-sakura-blossom .thumb-frame {
  border-color: #f472b6;
}
.thumb-sakura-blossom .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-sakura-blossom .thumb-heading {
  color: #9f1239;
}

/* 9. Thumb Wisuda Prestise */
.thumb-wisuda-prestise {
  background: linear-gradient(135deg, #091224 0%, #0f1d3a 50%, #1e3a8a 100%);
  color: #ffffff;
}
.thumb-wisuda-prestise .thumb-frame {
  border-color: #f59e0b;
}
.thumb-wisuda-prestise .thumb-badge {
  background: #d97706;
  color: #ffffff;
}
.thumb-wisuda-prestise .thumb-heading {
  color: #fbbf24;
}

/* 10. Thumb Galaxy Aurora */
.thumb-galaxy-aurora {
  background: linear-gradient(135deg, #070919 0%, #0d122e 40%, #1e1b4b 100%);
  color: #ffffff;
}
.thumb-galaxy-aurora .thumb-frame {
  border-color: #38bdf8;
}
.thumb-galaxy-aurora .thumb-badge {
  background: #0284c7;
  color: #e0f2fe;
}
.thumb-galaxy-aurora .thumb-heading {
  color: #67e8f9;
}

/* 11. Thumb Festive Carnival */
.thumb-festive-carnival {
  background: linear-gradient(135deg, #fff7ed 0%, #fed7aa 50%, #ea580c 100%);
  color: #ffffff;
}
.thumb-festive-carnival .thumb-frame {
  border-color: #ea580c;
}
.thumb-festive-carnival .thumb-badge {
  background: #ea580c;
  color: #ffffff;
}
.thumb-festive-carnival .thumb-heading {
  color: #7c2d12;
}

/* 12. Thumb Oriental Lantern */
.thumb-oriental-lantern {
  background: linear-gradient(135deg, #4c0519 0%, #7f1d1d 50%, #991b1b 100%);
  color: #ffffff;
}
.thumb-oriental-lantern .thumb-frame {
  border-color: #facc15;
}
.thumb-oriental-lantern .thumb-badge {
  background: #facc15;
  color: #7f1d1d;
}
.thumb-oriental-lantern .thumb-heading {
  color: #fef08a;
}

/* 13. Thumb Ocean Pearl */
.thumb-ocean-pearl {
  background: linear-gradient(135deg, #f0fdfa 0%, #ccfbf1 50%, #38bdf8 100%);
  color: #0f172a;
}
.thumb-ocean-pearl .thumb-frame {
  border-color: #14b8a6;
}
.thumb-ocean-pearl .thumb-badge {
  background: #0f766e;
  color: #ffffff;
}
.thumb-ocean-pearl .thumb-heading {
  color: #0f766e;
}

/* 14. Thumb Minimalist Monochrome */
.thumb-minimalist-monochrome {
  background: linear-gradient(135deg, #090a0f 0%, #18181b 50%, #27272a 100%);
  color: #f8fafc;
}
.thumb-minimalist-monochrome .thumb-frame {
  border-color: #cbd5e1;
}
.thumb-minimalist-monochrome .thumb-badge {
  background: #e2e8f0;
  color: #0f172a;
}
.thumb-minimalist-monochrome .thumb-heading {
  color: #f1f5f9;
}

/* 15. Thumb Lebaran Fitri */
.thumb-lebaran-fitri {
  background: linear-gradient(135deg, #022c22 0%, #064e3b 50%, #047857 100%);
  color: #ffffff;
}
.thumb-lebaran-fitri .thumb-frame {
  border-color: #fde047;
}
.thumb-lebaran-fitri .thumb-badge {
  background: #fde047;
  color: #022c22;
}
.thumb-lebaran-fitri .thumb-heading {
  color: #fef08a;
}

/* 16. Thumb Champagne Glamour */
.thumb-champagne-glamour {
  background: linear-gradient(135deg, #09090b 0%, #1c1917 50%, #292524 100%);
  color: #ffffff;
}
.thumb-champagne-glamour .thumb-frame {
  border-color: #facc15;
}
.thumb-champagne-glamour .thumb-badge {
  background: #facc15;
  color: #1c1917;
}
.thumb-champagne-glamour .thumb-heading {
  color: #fef08a;
}

/* 17. Thumb Vintage Romantic */
.thumb-vintage-romantic {
  background: linear-gradient(135deg, #fffdf5 0%, #fef3c7 50%, #fbcfe8 100%);
  color: #831843;
}
.thumb-vintage-romantic .thumb-frame {
  border-color: #9d174d;
}
.thumb-vintage-romantic .thumb-badge {
  background: #9d174d;
  color: #ffffff;
}
.thumb-vintage-romantic .thumb-heading {
  color: #831843;
}

/* 18. Thumb Tiup Lilin Kue */
.thumb-tiup-lilin-kue {
  background: linear-gradient(135deg, #2a1711 0%, #451a03 50%, #78350f 100%);
  color: #ffffff;
}
.thumb-tiup-lilin-kue .thumb-frame {
  border-color: #d97706;
}
.thumb-tiup-lilin-kue .thumb-badge {
  background: #f59e0b;
  color: #451a03;
}
.thumb-tiup-lilin-kue .thumb-heading {
  color: #fef08a;
}

/* 19. Thumb Amplop Surat Cinta */
.thumb-amplop-surat-cinta {
  background: linear-gradient(135deg, #fdfbf7 0%, #fed7aa 50%, #fecdd3 100%);
  color: #4c0519;
}
.thumb-amplop-surat-cinta .thumb-frame {
  border-color: #be123c;
}
.thumb-amplop-surat-cinta .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-amplop-surat-cinta .thumb-heading {
  color: #881337;
}

/* 20. Thumb Golden Gate Wedding */
.thumb-golden-gate-wedding {
  background: linear-gradient(135deg, #091428 0%, #1e293b 50%, #0f172a 100%);
  color: #ffffff;
}
.thumb-golden-gate-wedding .thumb-frame {
  border-color: #eab308;
}
.thumb-golden-gate-wedding .thumb-badge {
  background: #eab308;
  color: #0f172a;
}
.thumb-golden-gate-wedding .thumb-heading {
  color: #facc15;
}

/* 21. Thumb Pesta Balon Udara */
.thumb-pesta-balon-udara {
  background: linear-gradient(135deg, #24143a 0%, #4c1d95 50%, #fb923c 100%);
  color: #ffffff;
}
.thumb-pesta-balon-udara .thumb-frame {
  border-color: #c084fc;
}
.thumb-pesta-balon-udara .thumb-badge {
  background: #c084fc;
  color: #24143a;
}
.thumb-pesta-balon-udara .thumb-heading {
  color: #fed7aa;
}

/* 22. Thumb Lilin Aroma Spa */
.thumb-lilin-aroma-spa {
  background: linear-gradient(135deg, #29211c 0%, #3f2e26 50%, #1c1917 100%);
  color: #fafaf9;
}
.thumb-lilin-aroma-spa .thumb-frame {
  border-color: #a8a29e;
}
.thumb-lilin-aroma-spa .thumb-badge {
  background: #65a30d;
  color: #ffffff;
}
.thumb-lilin-aroma-spa .thumb-heading {
  color: #fef08a;
}

/* 23. Thumb Amplop Bordir Songket */
.thumb-amplop-bordir-songket {
  background: linear-gradient(135deg, #4a0414 0%, #881337 50%, #ca8a04 100%);
  color: #ffffff;
}
.thumb-amplop-bordir-songket .thumb-frame {
  border-color: #eab308;
}
.thumb-amplop-bordir-songket .thumb-badge {
  background: #eab308;
  color: #4a0414;
}
.thumb-amplop-bordir-songket .thumb-heading {
  color: #fde047;
}

/* 24. Thumb Kembang Api Milestone */
.thumb-kembang-api-milestone {
  background: linear-gradient(135deg, #0b0f19 0%, #18181b 50%, #292524 100%);
  color: #ffffff;
}
.thumb-kembang-api-milestone .thumb-frame {
  border-color: #ea580c;
}
.thumb-kembang-api-milestone .thumb-badge {
  background: #ea580c;
  color: #ffffff;
}
.thumb-kembang-api-milestone .thumb-heading {
  color: #facc15;
}

/* 25. Thumb Wisuda Topi Toga */
.thumb-wisuda-topi-toga {
  background: linear-gradient(135deg, #0c192c 0%, #1e3a8a 50%, #0369a1 100%);
  color: #ffffff;
}
.thumb-wisuda-topi-toga .thumb-frame {
  border-color: #eab308;
}
.thumb-wisuda-topi-toga .thumb-badge {
  background: #eab308;
  color: #0c192c;
}
.thumb-wisuda-topi-toga .thumb-heading {
  color: #fde047;
}

/* 26. Thumb Petik Bintang Nebula */
.thumb-petik-bintang-nebula {
  background: linear-gradient(135deg, #120b22 0%, #2e1065 50%, #0284c7 100%);
  color: #ffffff;
}
.thumb-petik-bintang-nebula .thumb-frame {
  border-color: #818cf8;
}
.thumb-petik-bintang-nebula .thumb-badge {
  background: #818cf8;
  color: #0f172a;
}
.thumb-petik-bintang-nebula .thumb-heading {
  color: #67e8f9;
}

/* 27. Thumb Undangan Pintu Ukir Bali */
.thumb-undangan-pintu-ukir-bali {
  background: linear-gradient(135deg, #1c1917 0%, #292524 50%, #451a03 100%);
  color: #fafaf9;
}
.thumb-undangan-pintu-ukir-bali .thumb-frame {
  border-color: #eab308;
}
.thumb-undangan-pintu-ukir-bali .thumb-badge {
  background: #eab308;
  color: #1c1917;
}
.thumb-undangan-pintu-ukir-bali .thumb-heading {
  color: #fde047;
}

/* 28. Thumb Tirai Broadway */
.thumb-tirai-teater-broadway {
  background: linear-gradient(135deg, #3b020a 0%, #580a18 50%, #200106 100%);
  color: #fde047;
}
.thumb-tirai-teater-broadway .thumb-frame {
  border-color: #facc15;
}
.thumb-tirai-teater-broadway .thumb-badge {
  background: #f59e0b;
  color: #3b020a;
}
.thumb-tirai-teater-broadway .thumb-heading {
  color: #fef08a;
}

/* 29. Thumb Pesiar Sunset Ocean */
.thumb-pesiar-sunset-ocean {
  background: linear-gradient(135deg, #fdba74 0%, #f43f5e 50%, #0f766e 100%);
  color: #f0fdfa;
}
.thumb-pesiar-sunset-ocean .thumb-frame {
  border-color: #2dd4bf;
}
.thumb-pesiar-sunset-ocean .thumb-badge {
  background: #0d9488;
  color: #ffffff;
}
.thumb-pesiar-sunset-ocean .thumb-heading {
  color: #fef08a;
}

/* 30. Thumb Taman Kunang-Kunang */
.thumb-taman-kunang-kunang {
  background: linear-gradient(135deg, #051c14 0%, #064e3b 50%, #022c22 100%);
  color: #fefce8;
}
.thumb-taman-kunang-kunang .thumb-frame {
  border-color: #84cc16;
}
.thumb-taman-kunang-kunang .thumb-badge {
  background: #65a30d;
  color: #ffffff;
}
.thumb-taman-kunang-kunang .thumb-heading {
  color: #bef264;
}

/* 31. Thumb Kincir Festival Sakura (Matsuri Hanabi) */
.thumb-kincir-festival-sakura {
  background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #881337 100%);
  color: #fff1f2;
}
.thumb-kincir-festival-sakura .thumb-frame {
  border-color: #f43f5e;
}
.thumb-kincir-festival-sakura .thumb-badge {
  background: #e11d48;
  color: #ffffff;
}
.thumb-kincir-festival-sakura .thumb-heading {
  color: #fde047;
}

/* 32. Thumb Disko Retro Neon */
.thumb-disko-retro-neon {
  background: linear-gradient(135deg, #0b001a 0%, #2e1065 50%, #4a044e 100%);
  color: #fdf4ff;
}
.thumb-disko-retro-neon .thumb-frame {
  border-color: #06b6d4;
}
.thumb-disko-retro-neon .thumb-badge {
  background: #ec4899;
  color: #ffffff;
}
.thumb-disko-retro-neon .thumb-heading {
  color: #22d3ee;
}

/* 33. Thumb Jawa Keraton Gunungan */
.thumb-jawa-keraton-gunungan {
  background: linear-gradient(135deg, #1c1008 0%, #2e1a0e 50%, #452410 100%);
  color: #fefce8;
}
.thumb-jawa-keraton-gunungan .thumb-frame {
  border-color: #eab308;
}
.thumb-jawa-keraton-gunungan .thumb-badge {
  background: #ca8a04;
  color: #1c1008;
}
.thumb-jawa-keraton-gunungan .thumb-heading {
  color: #fde047;
}

/* 34. Thumb Kastil Neuschwanstein */
.thumb-kastil-neuschwanstein {
  background: linear-gradient(135deg, #1e1b4b 0%, #312e81 50%, #581c87 100%);
  color: #fdf4ff;
}
.thumb-kastil-neuschwanstein .thumb-frame {
  border-color: #f472b6;
}
.thumb-kastil-neuschwanstein .thumb-badge {
  background: #db2777;
  color: #ffffff;
}
.thumb-kastil-neuschwanstein .thumb-heading {
  color: #fef08a;
}

/* 35. Thumb Salju Wonderland */
.thumb-salju-wonderland {
  background: linear-gradient(135deg, #030712 0%, #0c4a6e 50%, #0369a1 100%);
  color: #f0f9ff;
}
.thumb-salju-wonderland .thumb-frame {
  border-color: #38bdf8;
}
.thumb-salju-wonderland .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-salju-wonderland .thumb-heading {
  color: #e0f2fe;
}

/* 36. Thumb Taman Kupu-Kupu Flora */
.thumb-taman-kupu-kupu-flora {
  background: linear-gradient(135deg, #fdf2f8 0%, #fce7f3 50%, #f0fdf4 100%);
  color: #1e293b;
}
.thumb-taman-kupu-kupu-flora .thumb-frame {
  border-color: #f472b6;
}
.thumb-taman-kupu-kupu-flora .thumb-badge {
  background: #db2777;
  color: #ffffff;
}
.thumb-taman-kupu-kupu-flora .thumb-heading {
  color: #9d174d;
}

/* 37. Thumb 1001 Malam Arabian Nights */
.thumb-piramida-arabian-nights {
  background: linear-gradient(135deg, #020617 0%, #172554 50%, #1e1b4b 100%);
  color: #f8fafc;
}
.thumb-piramida-arabian-nights .thumb-frame {
  border-color: #facc15;
}
.thumb-piramida-arabian-nights .thumb-badge {
  background: #eab308;
  color: #020617;
}
.thumb-piramida-arabian-nights .thumb-heading {
  color: #fde047;
}

/* 38. Thumb Cyber Arcade & Pixel 8-Bit */
.thumb-cyberpunk-arcade-pixel {
  background: linear-gradient(135deg, #090814 0%, #171133 50%, #290832 100%);
  color: #f8fafc;
}
.thumb-cyberpunk-arcade-pixel .thumb-frame {
  border-color: #22d3ee;
}
.thumb-cyberpunk-arcade-pixel .thumb-badge {
  background: #f43f5e;
  color: #ffffff;
}
.thumb-cyberpunk-arcade-pixel .thumb-heading {
  color: #22d3ee;
}

/* 39. Thumb Boho Chic & Safari Watercolor */
.thumb-boho-safari-watercolor {
  background: linear-gradient(135deg, #fdfbf7 0%, #fed7aa 50%, #fbd5c0 100%);
  color: #431407;
}
.thumb-boho-safari-watercolor .thumb-frame {
  border-color: #ea580c;
}
.thumb-boho-safari-watercolor .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-boho-safari-watercolor .thumb-heading {
  color: #9a3412;
}

/* 40. Thumb Vintage Comic & Superhero BOOM */
.thumb-superhero-comic-boom {
  background: linear-gradient(135deg, #fffbeb 0%, #fef08a 50%, #fee2e2 100%);
  color: #18181b;
}
.thumb-superhero-comic-boom .thumb-frame {
  border-color: #e11d48;
}
.thumb-superhero-comic-boom .thumb-badge {
  background: #facc15;
  color: #18181b;
}
.thumb-superhero-comic-boom .thumb-heading {
  color: #e11d48;
}

/* 41. Thumb Bioluminescent Deep Sea Aquarium */
.thumb-underwater-aquarium-glow {
  background: linear-gradient(135deg, #021424 0%, #032b45 50%, #064e6b 100%);
  color: #f0fdfa;
}
.thumb-underwater-aquarium-glow .thumb-frame {
  border-color: #2dd4bf;
}
.thumb-underwater-aquarium-glow .thumb-badge {
  background: #0d9488;
  color: #ffffff;
}
.thumb-underwater-aquarium-glow .thumb-heading {
  color: #38bdf8;
}

/* 42. Thumb Piringan Hitam Jazz Club & Brass */
.thumb-vinyl-jazz-noir {
  background: linear-gradient(135deg, #120c08 0%, #24160e 50%, #361f12 100%);
  color: #fef3c7;
}
.thumb-vinyl-jazz-noir .thumb-frame {
  border-color: #f59e0b;
}
.thumb-vinyl-jazz-noir .thumb-badge {
  background: #d97706;
  color: #120c08;
}
.thumb-vinyl-jazz-noir .thumb-heading {
  color: #fbbf24;
}

/* 43. Thumb Api Unggun Glamping & Bintang Pinus */
.thumb-starlit-campfire-glamping {
  background: linear-gradient(135deg, #08110b 0%, #152417 50%, #2d190c 100%);
  color: #fefce8;
}
.thumb-starlit-campfire-glamping .thumb-frame {
  border-color: #f97316;
}
.thumb-starlit-campfire-glamping .thumb-badge {
  background: #ea580c;
  color: #ffffff;
}
.thumb-starlit-campfire-glamping .thumb-heading {
  color: #fed7aa;
}

/* 44. Thumb Senbazuru Bangau Kertas & Washi */
.thumb-origami-crane-serenade {
  background: linear-gradient(135deg, #fdfcfb 0%, #fee2e2 50%, #fef3c7 100%);
  color: #1e293b;
}
.thumb-origami-crane-serenade .thumb-frame {
  border-color: #dc2626;
}
.thumb-origami-crane-serenade .thumb-badge {
  background: #dc2626;
  color: #ffffff;
}
.thumb-origami-crane-serenade .thumb-heading {
  color: #991b1b;
}

/* 45. Thumb Bioskop Atap Langit & Lampu Bohlam */
.thumb-rooftop-cinema-under-stars {
  background: linear-gradient(135deg, #080816 0%, #181533 50%, #241829 100%);
  color: #fdf4ff;
}
.thumb-rooftop-cinema-under-stars .thumb-frame {
  border-color: #f59e0b;
}
.thumb-rooftop-cinema-under-stars .thumb-badge {
  background: #d97706;
  color: #080816;
}
.thumb-rooftop-cinema-under-stars .thumb-heading {
  color: #fef08a;
}

/* 46. Thumb Rustic Timber Barn & Eucalyptus */
.thumb-rustic-barn-wooden {
  background: linear-gradient(135deg, #18110b 0%, #2b1d14 50%, #16241b 100%);
  color: #fafaf9;
}
.thumb-rustic-barn-wooden .thumb-frame {
  border-color: #22c55e;
}
.thumb-rustic-barn-wooden .thumb-badge {
  background: #15803d;
  color: #ffffff;
}
.thumb-rustic-barn-wooden .thumb-heading {
  color: #bbf7d0;
}

/* 47. Thumb Riad Maroko & Mozaik Zellige Emas */
.thumb-maroko-riadh-mosaic {
  background: linear-gradient(135deg, #06132b 0%, #0e2759 50%, #163e7a 100%);
  color: #f8fafc;
}
.thumb-maroko-riadh-mosaic .thumb-frame {
  border-color: #eab308;
}
.thumb-maroko-riadh-mosaic .thumb-badge {
  background: #ca8a04;
  color: #06132b;
}
.thumb-maroko-riadh-mosaic .thumb-heading {
  color: #fde047;
}

/* 48. Thumb Suntiang Emas & Songket Minangkabau */
.thumb-minang-rumah-gadang {
  background: linear-gradient(135deg, #2b0207 0%, #4a0510 50%, #700918 100%);
  color: #fff1f2;
}
.thumb-minang-rumah-gadang .thumb-frame {
  border-color: #facc15;
}
.thumb-minang-rumah-gadang .thumb-badge {
  background: #facc15;
  color: #2b0207;
}
.thumb-minang-rumah-gadang .thumb-heading {
  color: #fef08a;
}

/* 49. Thumb Nordic Fjord & Kaca Kristal Es */
.thumb-nordic-fjord-aurora {
  background: linear-gradient(135deg, #02141e 0%, #06283d 50%, #0d465c 100%);
  color: #f8fafc;
}
.thumb-nordic-fjord-aurora .thumb-frame {
  border-color: #7dd3fc;
}
.thumb-nordic-fjord-aurora .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-nordic-fjord-aurora .thumb-heading {
  color: #bae6fd;
}

/* 50. Thumb Summa Cum Laude & Medali Kehormatan */
.thumb-summa-cum-laude-gold {
  background: linear-gradient(135deg, #071329 0%, #11284d 50%, #1d3e6e 100%);
  color: #fefce8;
}
.thumb-summa-cum-laude-gold .thumb-frame {
  border-color: #facc15;
}
.thumb-summa-cum-laude-gold .thumb-badge {
  background: #eab308;
  color: #071329;
}
.thumb-summa-cum-laude-gold .thumb-heading {
  color: #fde047;
}

/* 51. Thumb Cetak Biru Arsitek & Garis Insinyur */
.thumb-blueprint-arsitek-teknik {
  background: linear-gradient(135deg, #051b36 0%, #082d59 50%, #0d4380 100%);
  color: #f8fafc;
}
.thumb-blueprint-arsitek-teknik .thumb-frame {
  border-color: #38bdf8;
}
.thumb-blueprint-arsitek-teknik .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-blueprint-arsitek-teknik .thumb-heading {
  color: #7dd3fc;
}

/* 52. Thumb Sumpah Dokter & Tongkat Caduceus */
.thumb-stetoskop-medika-hippocrates {
  background: linear-gradient(135deg, #021d17 0%, #06382e 50%, #0a5243 100%);
  color: #f0fdf4;
}
.thumb-stetoskop-medika-hippocrates .thumb-frame {
  border-color: #14b8a6;
}
.thumb-stetoskop-medika-hippocrates .thumb-badge {
  background: #0d9488;
  color: #ffffff;
}
.thumb-stetoskop-medika-hippocrates .thumb-heading {
  color: #5eead4;
}

/* 53. Thumb Perpustakaan Klasik & Pena Cendekiawan */
.thumb-buku-literasi-scholar {
  background: linear-gradient(135deg, #1a0b06 0%, #30170d 50%, #472314 100%);
  color: #fef3c7;
}
.thumb-buku-literasi-scholar .thumb-frame {
  border-color: #d97706;
}
.thumb-buku-literasi-scholar .thumb-badge {
  background: #991b1b;
  color: #ffffff;
}
.thumb-buku-literasi-scholar .thumb-heading {
  color: #fde68a;
}

/* 54. Thumb Syukuran Akikah & Awan Buaian Bayi */
.thumb-akikah-baby-cloud {
  background: linear-gradient(135deg, #f0fdf9 0%, #e0f2fe 50%, #fdf2f8 100%);
  color: #0f172a;
}
.thumb-akikah-baby-cloud .thumb-frame {
  border-color: #38bdf8;
}
.thumb-akikah-baby-cloud .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-akikah-baby-cloud .thumb-heading {
  color: #0369a1;
}

/* 55. Thumb Griya Anyar & Kunci Rumah Berkah */
.thumb-housewarming-tedak-siten {
  background: linear-gradient(135deg, #18130f 0%, #2c1f17 50%, #3b281c 100%);
  color: #fafaf9;
}
.thumb-housewarming-tedak-siten .thumb-frame {
  border-color: #ea580c;
}
.thumb-housewarming-tedak-siten .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-housewarming-tedak-siten .thumb-heading {
  color: #fed7aa;
}

/* 56. Thumb Naga Emas & Koin Keberuntungan Imlek */
.thumb-chinese-new-year-dragon {
  background: linear-gradient(135deg, #2e0307 0%, #4c070d 50%, #6e0c15 100%);
  color: #fff1f2;
}
.thumb-chinese-new-year-dragon .thumb-frame {
  border-color: #facc15;
}
.thumb-chinese-new-year-dragon .thumb-badge {
  background: #facc15;
  color: #2e0307;
}
.thumb-chinese-new-year-dragon .thumb-heading {
  color: #fef08a;
}

/* 57. Thumb Pitonan Tedak Siten & Kurungan Melati */
.thumb-tedak-siten-jawa-tradisi {
  background: linear-gradient(135deg, #1f1106 0%, #321c0b 50%, #462711 100%);
  color: #fefce8;
}
.thumb-tedak-siten-jawa-tradisi .thumb-frame {
  border-color: #ca8a04;
}
.thumb-tedak-siten-jawa-tradisi .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-tedak-siten-jawa-tradisi .thumb-heading {
  color: #fde047;
}

/* Card Content Details */

/* ==========================================================================
   Templates 59-78: 20 New Undangan Thumbnails
   ========================================================================== */

.thumb-khitanan-barokah-nusantara {
  background: linear-gradient(135deg, #071527 0%, #0a192f 50%, #1e293b 100%);
  color: #f8fafc;
}
.thumb-khitanan-barokah-nusantara .thumb-frame {
  border-color: #38bdf8;
}
.thumb-khitanan-barokah-nusantara .thumb-badge {
  background: #0284c7;
  color: #f8fafc;
}
.thumb-khitanan-barokah-nusantara .thumb-heading {
  color: #7dd3fc;
}


.thumb-reuni-akbar-nostalgia {
  background: linear-gradient(135deg, #181410 0%, #29201a 50%, #3d2f26 100%);
  color: #fef3c7;
}
.thumb-reuni-akbar-nostalgia .thumb-frame {
  border-color: #d97706;
}
.thumb-reuni-akbar-nostalgia .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-reuni-akbar-nostalgia .thumb-heading {
  color: #fde68a;
}


.thumb-sunset-bbq-garden-party {
  background: linear-gradient(135deg, #1d0f07 0%, #361a0b 50%, #4a2410 100%);
  color: #ffedd5;
}
.thumb-sunset-bbq-garden-party .thumb-frame {
  border-color: #ea580c;
}
.thumb-sunset-bbq-garden-party .thumb-badge {
  background: #ea580c;
  color: #ffffff;
}
.thumb-sunset-bbq-garden-party .thumb-heading {
  color: #fdba74;
}


.thumb-siraman-pengajian-jawa {
  background: linear-gradient(135deg, #170f07 0%, #28190c 50%, #3a2512 100%);
  color: #fefce8;
}
.thumb-siraman-pengajian-jawa .thumb-frame {
  border-color: #ca8a04;
}
.thumb-siraman-pengajian-jawa .thumb-badge {
  background: #a16207;
  color: #ffffff;
}
.thumb-siraman-pengajian-jawa .thumb-heading {
  color: #fde047;
}


.thumb-akad-glassmorphism-aurora {
  background: linear-gradient(135deg, #091524 0%, #0e233d 50%, #153257 100%);
  color: #f0f9ff;
}
.thumb-akad-glassmorphism-aurora .thumb-frame {
  border-color: #38bdf8;
}
.thumb-akad-glassmorphism-aurora .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-akad-glassmorphism-aurora .thumb-heading {
  color: #7dd3fc;
}


.thumb-lamaran-peony-blush {
  background: linear-gradient(135deg, #240813 0%, #3d0d21 50%, #54132e 100%);
  color: #fff1f2;
}
.thumb-lamaran-peony-blush .thumb-frame {
  border-color: #f472b6;
}
.thumb-lamaran-peony-blush .thumb-badge {
  background: #db2777;
  color: #ffffff;
}
.thumb-lamaran-peony-blush .thumb-heading {
  color: #fbcfe8;
}


.thumb-grand-opening-ceremony {
  background: linear-gradient(135deg, #070e1c 0%, #0d1a33 50%, #14284d 100%);
  color: #f8fafc;
}
.thumb-grand-opening-ceremony .thumb-frame {
  border-color: #ca8a04;
}
.thumb-grand-opening-ceremony .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-grand-opening-ceremony .thumb-heading {
  color: #fde047;
}


.thumb-sleepover-slumber-party {
  background: linear-gradient(135deg, #180927 0%, #291240 50%, #3e1b5e 100%);
  color: #fdf4ff;
}
.thumb-sleepover-slumber-party .thumb-frame {
  border-color: #c084fc;
}
.thumb-sleepover-slumber-party .thumb-badge {
  background: #9333ea;
  color: #ffffff;
}
.thumb-sleepover-slumber-party .thumb-heading {
  color: #e9d5ff;
}


.thumb-summer-pool-party {
  background: linear-gradient(135deg, #041f30 0%, #06314b 50%, #09476c 100%);
  color: #f0fdf4;
}
.thumb-summer-pool-party .thumb-frame {
  border-color: #38bdf8;
}
.thumb-summer-pool-party .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-summer-pool-party .thumb-heading {
  color: #7dd3fc;
}


.thumb-peluncuran-buku-penulis {
  background: linear-gradient(135deg, #150f08 0%, #261a0d 50%, #3b2814 100%);
  color: #fef3c7;
}
.thumb-peluncuran-buku-penulis .thumb-frame {
  border-color: #d97706;
}
.thumb-peluncuran-buku-penulis .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-peluncuran-buku-penulis .thumb-heading {
  color: #fde68a;
}


.thumb-aqiqah-safari-pastel {
  background: linear-gradient(135deg, #071c17 0%, #0d2c25 50%, #133f34 100%);
  color: #f0fdf4;
}
.thumb-aqiqah-safari-pastel .thumb-frame {
  border-color: #10b981;
}
.thumb-aqiqah-safari-pastel .thumb-badge {
  background: #059669;
  color: #ffffff;
}
.thumb-aqiqah-safari-pastel .thumb-heading {
  color: #6ee7b7;
}


.thumb-batak-ulos-gorga {
  background: linear-gradient(135deg, #1d0306 0%, #30080c 50%, #470d13 100%);
  color: #fef2f2;
}
.thumb-batak-ulos-gorga .thumb-frame {
  border-color: #facc15;
}
.thumb-batak-ulos-gorga .thumb-badge {
  background: #b91c1c;
  color: #ffffff;
}
.thumb-batak-ulos-gorga .thumb-heading {
  color: #fde047;
}


.thumb-wisuda-dental-dentist {
  background: linear-gradient(135deg, #051926 0%, #092c42 50%, #0d3d5d 100%);
  color: #f0fdfa;
}
.thumb-wisuda-dental-dentist .thumb-frame {
  border-color: #38bdf8;
}
.thumb-wisuda-dental-dentist .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-wisuda-dental-dentist .thumb-heading {
  color: #7dd3fc;
}


.thumb-wisuda-hukum-lex-justitia {
  background: linear-gradient(135deg, #100f0e 0%, #1e1b18 50%, #2f2a25 100%);
  color: #fefce8;
}
.thumb-wisuda-hukum-lex-justitia .thumb-frame {
  border-color: #ca8a04;
}
.thumb-wisuda-hukum-lex-justitia .thumb-badge {
  background: #854d0e;
  color: #ffffff;
}
.thumb-wisuda-hukum-lex-justitia .thumb-heading {
  color: #fde047;
}


.thumb-vernissage-galeri-seni {
  background: linear-gradient(135deg, #0e0e10 0%, #1c1c20 50%, #2b2b32 100%);
  color: #f4f4f5;
}
.thumb-vernissage-galeri-seni .thumb-frame {
  border-color: #f43f5e;
}
.thumb-vernissage-galeri-seni .thumb-badge {
  background: #e11d48;
  color: #ffffff;
}
.thumb-vernissage-galeri-seni .thumb-heading {
  color: #fda4af;
}


.thumb-pantai-sunset-beach-wedding {
  background: linear-gradient(135deg, #101021 0%, #1e1e3b 50%, #2c2c54 100%);
  color: #fdf2f8;
}
.thumb-pantai-sunset-beach-wedding .thumb-frame {
  border-color: #ea580c;
}
.thumb-pantai-sunset-beach-wedding .thumb-badge {
  background: #ea580c;
  color: #ffffff;
}
.thumb-pantai-sunset-beach-wedding .thumb-heading {
  color: #fed7aa;
}


.thumb-golden-50th-anniversary {
  background: linear-gradient(135deg, #0e0b04 0%, #1f1707 50%, #30240b 100%);
  color: #fefce8;
}
.thumb-golden-50th-anniversary .thumb-frame {
  border-color: #ca8a04;
}
.thumb-golden-50th-anniversary .thumb-badge {
  background: #a16207;
  color: #ffffff;
}
.thumb-golden-50th-anniversary .thumb-heading {
  color: #fde047;
}


.thumb-wisuda-magister-doktor {
  background: linear-gradient(135deg, #1a0518 0%, #300a2d 50%, #4a0f45 100%);
  color: #fdf4ff;
}
.thumb-wisuda-magister-doktor .thumb-frame {
  border-color: #a855f7;
}
.thumb-wisuda-magister-doktor .thumb-badge {
  background: #7e22ce;
  color: #ffffff;
}
.thumb-wisuda-magister-doktor .thumb-heading {
  color: #e9d5ff;
}


.thumb-venetian-masquerade-ball {
  background: linear-gradient(135deg, #140320 0%, #250739 50%, #3a0b57 100%);
  color: #faf5ff;
}
.thumb-venetian-masquerade-ball .thumb-frame {
  border-color: #c084fc;
}
.thumb-venetian-masquerade-ball .thumb-badge {
  background: #7e22ce;
  color: #ffffff;
}
.thumb-venetian-masquerade-ball .thumb-heading {
  color: #e9d5ff;
}


.thumb-tahun-baru-countdown-gala {
  background: linear-gradient(135deg, #07070a 0%, #11111a 50%, #1e1e2d 100%);
  color: #f8fafc;
}
.thumb-tahun-baru-countdown-gala .thumb-frame {
  border-color: #facc15;
}
.thumb-tahun-baru-countdown-gala .thumb-badge {
  background: #ca8a04;
  color: #ffffff;
}
.thumb-tahun-baru-countdown-gala .thumb-heading {
  color: #fde047;
}


/* ==========================================================================
   Templates 79-118: 40 New Theme Thumbnails
   ========================================================================== */

.thumb-dino-jurassic-adventure {
  background: linear-gradient(135deg, #091a10 0%, #122c1b 50%, #1e452c 100%);
  color: #f8fafc;
}
.thumb-dino-jurassic-adventure .thumb-frame {
  border-color: #86efac;
}
.thumb-dino-jurassic-adventure .thumb-badge {
  background: #15803d;
  color: #ffffff;
}
.thumb-dino-jurassic-adventure .thumb-heading {
  color: #bbf7d0;
}

.thumb-space-astronot-kosmik {
  background: linear-gradient(135deg, #070d1e 0%, #0f1c3d 50%, #1a2f66 100%);
  color: #f8fafc;
}
.thumb-space-astronot-kosmik .thumb-frame {
  border-color: #7dd3fc;
}
.thumb-space-astronot-kosmik .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-space-astronot-kosmik .thumb-heading {
  color: #bae6fd;
}

.thumb-sweet-sixteen-glitz {
  background: linear-gradient(135deg, #230b14 0%, #441427 50%, #681f3d 100%);
  color: #f8fafc;
}
.thumb-sweet-sixteen-glitz .thumb-frame {
  border-color: #f472b6;
}
.thumb-sweet-sixteen-glitz .thumb-badge {
  background: #be185d;
  color: #ffffff;
}
.thumb-sweet-sixteen-glitz .thumb-heading {
  color: #fbcfe8;
}

.thumb-gamer-level-up-quest {
  background: linear-gradient(135deg, #090e17 0%, #111a2e 50%, #1e2c4d 100%);
  color: #f8fafc;
}
.thumb-gamer-level-up-quest .thumb-frame {
  border-color: #a3e635;
}
.thumb-gamer-level-up-quest .thumb-badge {
  background: #65a30d;
  color: #ffffff;
}
.thumb-gamer-level-up-quest .thumb-heading {
  color: #d9f99d;
}

.thumb-matcha-tea-garden {
  background: linear-gradient(135deg, #142013 0%, #243822 50%, #365333 100%);
  color: #f8fafc;
}
.thumb-matcha-tea-garden .thumb-frame {
  border-color: #86efac;
}
.thumb-matcha-tea-garden .thumb-badge {
  background: #4d7c0f;
  color: #ffffff;
}
.thumb-matcha-tea-garden .thumb-heading {
  color: #d9f99d;
}

.thumb-circus-vintage-carnival {
  background: linear-gradient(135deg, #261011 0%, #4a1518 50%, #6e1c21 100%);
  color: #f8fafc;
}
.thumb-circus-vintage-carnival .thumb-frame {
  border-color: #fca5a5;
}
.thumb-circus-vintage-carnival .thumb-badge {
  background: #dc2626;
  color: #ffffff;
}
.thumb-circus-vintage-carnival .thumb-heading {
  color: #fecaca;
}

.thumb-sweet-sixty-golden-age {
  background: linear-gradient(135deg, #0a1128 0%, #101c40 50%, #1a2c66 100%);
  color: #f8fafc;
}
.thumb-sweet-sixty-golden-age .thumb-frame {
  border-color: #fde047;
}
.thumb-sweet-sixty-golden-age .thumb-badge {
  background: #ca8a04;
  color: #ffffff;
}
.thumb-sweet-sixty-golden-age .thumb-heading {
  color: #fef08a;
}

.thumb-roller-skate-disco-funk {
  background: linear-gradient(135deg, #1f0b24 0%, #381242 50%, #561a66 100%);
  color: #f8fafc;
}
.thumb-roller-skate-disco-funk .thumb-frame {
  border-color: #f472b6;
}
.thumb-roller-skate-disco-funk .thumb-badge {
  background: #c026d3;
  color: #ffffff;
}
.thumb-roller-skate-disco-funk .thumb-heading {
  color: #f5d0fe;
}

.thumb-perak-25th-silver-anniversary {
  background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #334155 100%);
  color: #f8fafc;
}
.thumb-perak-25th-silver-anniversary .thumb-frame {
  border-color: #94a3b8;
}
.thumb-perak-25th-silver-anniversary .thumb-badge {
  background: #475569;
  color: #ffffff;
}
.thumb-perak-25th-silver-anniversary .thumb-heading {
  color: #e2e8f0;
}

.thumb-lavender-provence-fields {
  background: linear-gradient(135deg, #1d102e 0%, #331c50 50%, #4e2978 100%);
  color: #f8fafc;
}
.thumb-lavender-provence-fields .thumb-frame {
  border-color: #c084fc;
}
.thumb-lavender-provence-fields .thumb-badge {
  background: #7e22ce;
  color: #ffffff;
}
.thumb-lavender-provence-fields .thumb-heading {
  color: #e9d5ff;
}

.thumb-paris-eiffel-twilight {
  background: linear-gradient(135deg, #1c1424 0%, #331e42 50%, #4f2c66 100%);
  color: #f8fafc;
}
.thumb-paris-eiffel-twilight .thumb-frame {
  border-color: #f472b6;
}
.thumb-paris-eiffel-twilight .thumb-badge {
  background: #db2777;
  color: #ffffff;
}
.thumb-paris-eiffel-twilight .thumb-heading {
  color: #fbcfe8;
}

.thumb-candlelight-jazz-loft {
  background: linear-gradient(135deg, #180d07 0%, #2c160c 50%, #462213 100%);
  color: #f8fafc;
}
.thumb-candlelight-jazz-loft .thumb-frame {
  border-color: #fb923c;
}
.thumb-candlelight-jazz-loft .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-candlelight-jazz-loft .thumb-heading {
  color: #fed7aa;
}

.thumb-cherry-blossom-kyoto {
  background: linear-gradient(135deg, #231217 0%, #3d1c24 50%, #5d2534 100%);
  color: #f8fafc;
}
.thumb-cherry-blossom-kyoto .thumb-frame {
  border-color: #fb7185;
}
.thumb-cherry-blossom-kyoto .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-cherry-blossom-kyoto .thumb-heading {
  color: #fecdd3;
}

.thumb-desert-glamping-stargaze {
  background: linear-gradient(135deg, #191224 0%, #2a1b3d 50%, #41285e 100%);
  color: #f8fafc;
}
.thumb-desert-glamping-stargaze .thumb-frame {
  border-color: #fb923c;
}
.thumb-desert-glamping-stargaze .thumb-badge {
  background: #ea580c;
  color: #ffffff;
}
.thumb-desert-glamping-stargaze .thumb-heading {
  color: #fed7aa;
}

.thumb-cozy-fireplace-chalet {
  background: linear-gradient(135deg, #1c110a 0%, #331c0e 50%, #4d2b15 100%);
  color: #f8fafc;
}
.thumb-cozy-fireplace-chalet .thumb-frame {
  border-color: #fb923c;
}
.thumb-cozy-fireplace-chalet .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-cozy-fireplace-chalet .thumb-heading {
  color: #fed7aa;
}

.thumb-love-lock-pont-des-arts {
  background: linear-gradient(135deg, #0a1924 0%, #122b3d 50%, #1d425c 100%);
  color: #f8fafc;
}
.thumb-love-lock-pont-des-arts .thumb-frame {
  border-color: #38bdf8;
}
.thumb-love-lock-pont-des-arts .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-love-lock-pont-des-arts .thumb-heading {
  color: #bae6fd;
}

.thumb-sunda-silih-asih {
  background: linear-gradient(135deg, #142215 0%, #1f3821 50%, #2f5432 100%);
  color: #f8fafc;
}
.thumb-sunda-silih-asih .thumb-frame {
  border-color: #86efac;
}
.thumb-sunda-silih-asih .thumb-badge {
  background: #15803d;
  color: #ffffff;
}
.thumb-sunda-silih-asih .thumb-heading {
  color: #bbf7d0;
}

.thumb-toraja-tongkonan-gold {
  background: linear-gradient(135deg, #1e0e0a 0%, #361710 50%, #542217 100%);
  color: #f8fafc;
}
.thumb-toraja-tongkonan-gold .thumb-frame {
  border-color: #f87171;
}
.thumb-toraja-tongkonan-gold .thumb-badge {
  background: #b91c1c;
  color: #ffffff;
}
.thumb-toraja-tongkonan-gold .thumb-heading {
  color: #fca5a5;
}

.thumb-palembang-aesan-gede {
  background: linear-gradient(135deg, #270914 0%, #441122 50%, #631731 100%);
  color: #f8fafc;
}
.thumb-palembang-aesan-gede .thumb-frame {
  border-color: #facc15;
}
.thumb-palembang-aesan-gede .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-palembang-aesan-gede .thumb-heading {
  color: #fde047;
}

.thumb-glasshouse-botanical-greenhouse {
  background: linear-gradient(135deg, #092019 0%, #11362a 50%, #195240 100%);
  color: #f8fafc;
}
.thumb-glasshouse-botanical-greenhouse .thumb-frame {
  border-color: #6ee7b7;
}
.thumb-glasshouse-botanical-greenhouse .thumb-badge {
  background: #059669;
  color: #ffffff;
}
.thumb-glasshouse-botanical-greenhouse .thumb-heading {
  color: #a7f3d0;
}

.thumb-uluwatu-cliff-ocean-sunset {
  background: linear-gradient(135deg, #081729 0%, #102a45 50%, #1d436c 100%);
  color: #f8fafc;
}
.thumb-uluwatu-cliff-ocean-sunset .thumb-frame {
  border-color: #38bdf8;
}
.thumb-uluwatu-cliff-ocean-sunset .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-uluwatu-cliff-ocean-sunset .thumb-heading {
  color: #bae6fd;
}

.thumb-versailles-baroque-palace {
  background: linear-gradient(135deg, #1c160c 0%, #302613 50%, #4a3a1d 100%);
  color: #f8fafc;
}
.thumb-versailles-baroque-palace .thumb-frame {
  border-color: #fde047;
}
.thumb-versailles-baroque-palace .thumb-badge {
  background: #ca8a04;
  color: #ffffff;
}
.thumb-versailles-baroque-palace .thumb-heading {
  color: #fef08a;
}

.thumb-boho-desert-pampas {
  background: linear-gradient(135deg, #231610 0%, #3d2419 50%, #5c3523 100%);
  color: #f8fafc;
}
.thumb-boho-desert-pampas .thumb-frame {
  border-color: #fb923c;
}
.thumb-boho-desert-pampas .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-boho-desert-pampas .thumb-heading {
  color: #fed7aa;
}

.thumb-garden-pergola-white-rose {
  background: linear-gradient(135deg, #0b1e1c 0%, #143330 50%, #204c47 100%);
  color: #f8fafc;
}
.thumb-garden-pergola-white-rose .thumb-frame {
  border-color: #5eead4;
}
.thumb-garden-pergola-white-rose .thumb-badge {
  background: #0f766e;
  color: #ffffff;
}
.thumb-garden-pergola-white-rose .thumb-heading {
  color: #99f6e4;
}

.thumb-farmasi-apoteker-mortar {
  background: linear-gradient(135deg, #091c17 0%, #123328 50%, #1c4d3d 100%);
  color: #f8fafc;
}
.thumb-farmasi-apoteker-mortar .thumb-frame {
  border-color: #6ee7b7;
}
.thumb-farmasi-apoteker-mortar .thumb-badge {
  background: #059669;
  color: #ffffff;
}
.thumb-farmasi-apoteker-mortar .thumb-heading {
  color: #a7f3d0;
}

.thumb-akpol-akmil-perwira-pedang {
  background: linear-gradient(135deg, #09101f 0%, #12203d 50%, #1e325c 100%);
  color: #f8fafc;
}
.thumb-akpol-akmil-perwira-pedang .thumb-frame {
  border-color: #facc15;
}
.thumb-akpol-akmil-perwira-pedang .thumb-badge {
  background: #ca8a04;
  color: #ffffff;
}
.thumb-akpol-akmil-perwira-pedang .thumb-heading {
  color: #fef08a;
}

.thumb-seni-desain-kreatif-portfolio {
  background: linear-gradient(135deg, #191218 0%, #2c1a29 50%, #43223e 100%);
  color: #f8fafc;
}
.thumb-seni-desain-kreatif-portfolio .thumb-frame {
  border-color: #f43f5e;
}
.thumb-seni-desain-kreatif-portfolio .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-seni-desain-kreatif-portfolio .thumb-heading {
  color: #fecdd3;
}

.thumb-psikologi-klinis-humaniora {
  background: linear-gradient(135deg, #10142a 0%, #1c224a 50%, #2a336c 100%);
  color: #f8fafc;
}
.thumb-psikologi-klinis-humaniora .thumb-frame {
  border-color: #a5b4fc;
}
.thumb-psikologi-klinis-humaniora .thumb-badge {
  background: #4f46e5;
  color: #ffffff;
}
.thumb-psikologi-klinis-humaniora .thumb-heading {
  color: #c7d2fe;
}

.thumb-it-ai-computer-science {
  background: linear-gradient(135deg, #060e18 0%, #0d1a2d 50%, #152945 100%);
  color: #f8fafc;
}
.thumb-it-ai-computer-science .thumb-frame {
  border-color: #67e8f9;
}
.thumb-it-ai-computer-science .thumb-badge {
  background: #0891b2;
  color: #ffffff;
}
.thumb-it-ai-computer-science .thumb-heading {
  color: #a5f3fc;
}

.thumb-pilot-wing-aviation {
  background: linear-gradient(135deg, #0a1324 0%, #122240 50%, #1e3563 100%);
  color: #f8fafc;
}
.thumb-pilot-wing-aviation .thumb-frame {
  border-color: #fde047;
}
.thumb-pilot-wing-aviation .thumb-badge {
  background: #ca8a04;
  color: #ffffff;
}
.thumb-pilot-wing-aviation .thumb-heading {
  color: #fef08a;
}

.thumb-arsitektur-lanskap-hijau {
  background: linear-gradient(135deg, #0b1a10 0%, #153320 50%, #204d30 100%);
  color: #f8fafc;
}
.thumb-arsitektur-lanskap-hijau .thumb-frame {
  border-color: #86efac;
}
.thumb-arsitektur-lanskap-hijau .thumb-badge {
  background: #15803d;
  color: #ffffff;
}
.thumb-arsitektur-lanskap-hijau .thumb-heading {
  color: #bbf7d0;
}

.thumb-doktor-riset-promosi-phd {
  background: linear-gradient(135deg, #1e0c12 0%, #36141e 50%, #521c2d 100%);
  color: #f8fafc;
}
.thumb-doktor-riset-promosi-phd .thumb-frame {
  border-color: #fca5a5;
}
.thumb-doktor-riset-promosi-phd .thumb-badge {
  background: #b91c1c;
  color: #ffffff;
}
.thumb-doktor-riset-promosi-phd .thumb-heading {
  color: #fecaca;
}

.thumb-syukuran-rumah-skandinavia {
  background: linear-gradient(135deg, #1a1612 0%, #2d261e 50%, #44392d 100%);
  color: #f8fafc;
}
.thumb-syukuran-rumah-skandinavia .thumb-frame {
  border-color: #fb923c;
}
.thumb-syukuran-rumah-skandinavia .thumb-badge {
  background: #d97706;
  color: #ffffff;
}
.thumb-syukuran-rumah-skandinavia .thumb-heading {
  color: #fed7aa;
}

.thumb-ramadhan-iftar-berkah {
  background: linear-gradient(135deg, #081d15 0%, #113628 50%, #1a523d 100%);
  color: #f8fafc;
}
.thumb-ramadhan-iftar-berkah .thumb-frame {
  border-color: #6ee7b7;
}
.thumb-ramadhan-iftar-berkah .thumb-badge {
  background: #059669;
  color: #ffffff;
}
.thumb-ramadhan-iftar-berkah .thumb-heading {
  color: #a7f3d0;
}

.thumb-waisak-borobudur-lantern {
  background: linear-gradient(135deg, #0c102b 0%, #19204a 50%, #29346f 100%);
  color: #f8fafc;
}
.thumb-waisak-borobudur-lantern .thumb-frame {
  border-color: #fde047;
}
.thumb-waisak-borobudur-lantern .thumb-badge {
  background: #ca8a04;
  color: #ffffff;
}
.thumb-waisak-borobudur-lantern .thumb-heading {
  color: #fef08a;
}

.thumb-pesta-panen-kopi-nusantara {
  background: linear-gradient(135deg, #1c1108 0%, #301e10 50%, #472b17 100%);
  color: #f8fafc;
}
.thumb-pesta-panen-kopi-nusantara .thumb-frame {
  border-color: #fb923c;
}
.thumb-pesta-panen-kopi-nusantara .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-pesta-panen-kopi-nusantara .thumb-heading {
  color: #fed7aa;
}

.thumb-pagelaran-wayang-kulit {
  background: linear-gradient(135deg, #1c0f06 0%, #351e0c 50%, #4d2b12 100%);
  color: #f8fafc;
}
.thumb-pagelaran-wayang-kulit .thumb-frame {
  border-color: #facc15;
}
.thumb-pagelaran-wayang-kulit .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-pagelaran-wayang-kulit .thumb-heading {
  color: #fde047;
}

.thumb-donor-darah-kemanusiaan {
  background: linear-gradient(135deg, #1f080b 0%, #381217 50%, #541b22 100%);
  color: #f8fafc;
}
.thumb-donor-darah-kemanusiaan .thumb-frame {
  border-color: #f87171;
}
.thumb-donor-darah-kemanusiaan .thumb-badge {
  background: #dc2626;
  color: #ffffff;
}
.thumb-donor-darah-kemanusiaan .thumb-heading {
  color: #fca5a5;
}

.thumb-peresmian-bistro-kuliner {
  background: linear-gradient(135deg, #0a1b18 0%, #12332e 50%, #1c4d45 100%);
  color: #f8fafc;
}
.thumb-peresmian-bistro-kuliner .thumb-frame {
  border-color: #5eead4;
}
.thumb-peresmian-bistro-kuliner .thumb-badge {
  background: #0f766e;
  color: #ffffff;
}
.thumb-peresmian-bistro-kuliner .thumb-heading {
  color: #99f6e4;
}

.thumb-konser-akustik-indie-senja {
  background: linear-gradient(135deg, #200d17 0%, #3c1727 50%, #5a203a 100%);
  color: #f8fafc;
}
.thumb-konser-akustik-indie-senja .thumb-frame {
  border-color: #fb923c;
}
.thumb-konser-akustik-indie-senja .thumb-badge {
  background: #ea580c;
  color: #ffffff;
}
.thumb-konser-akustik-indie-senja .thumb-heading {
  color: #fed7aa;
}


/* --- Templates 119-168: 50 New Thumbnails --- */
.thumb-cyber-hologram-party {
  background: linear-gradient(135deg, #050814 0%, #0d1b3a 50%, #1e1145 100%);
  color: #f8fafc;
}
.thumb-cyber-hologram-party .thumb-frame {
  border-color: #06b6d4;
}
.thumb-cyber-hologram-party .thumb-badge {
  background: #0891b2;
  color: #ffffff;
}
.thumb-cyber-hologram-party .thumb-heading {
  color: #67e8f9;
}

.thumb-safari-jungle-carnival {
  background: linear-gradient(135deg, #091a0f 0%, #13331c 50%, #20522c 100%);
  color: #f8fafc;
}
.thumb-safari-jungle-carnival .thumb-frame {
  border-color: #34d399;
}
.thumb-safari-jungle-carnival .thumb-badge {
  background: #059669;
  color: #ffffff;
}
.thumb-safari-jungle-carnival .thumb-heading {
  color: #a7f3d0;
}

.thumb-magic-wizard-academy {
  background: linear-gradient(135deg, #0f0a24 0%, #1b1342 50%, #2b1f66 100%);
  color: #f8fafc;
}
.thumb-magic-wizard-academy .thumb-frame {
  border-color: #a78bfa;
}
.thumb-magic-wizard-academy .thumb-badge {
  background: #7c3aed;
  color: #ffffff;
}
.thumb-magic-wizard-academy .thumb-heading {
  color: #ddd6fe;
}

.thumb-candy-wonderland-pop {
  background: linear-gradient(135deg, #2b0c1e 0%, #521539 50%, #7e1e56 100%);
  color: #f8fafc;
}
.thumb-candy-wonderland-pop .thumb-frame {
  border-color: #f472b6;
}
.thumb-candy-wonderland-pop .thumb-badge {
  background: #db2777;
  color: #ffffff;
}
.thumb-candy-wonderland-pop .thumb-heading {
  color: #fbcfe8;
}

.thumb-pirate-treasure-island {
  background: linear-gradient(135deg, #0a1829 0%, #132f50 50%, #1c4373 100%);
  color: #f8fafc;
}
.thumb-pirate-treasure-island .thumb-frame {
  border-color: #38bdf8;
}
.thumb-pirate-treasure-island .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-pirate-treasure-island .thumb-heading {
  color: #bae6fd;
}

.thumb-supercar-speed-grand-prix {
  background: linear-gradient(135deg, #181010 0%, #331414 50%, #521919 100%);
  color: #f8fafc;
}
.thumb-supercar-speed-grand-prix .thumb-frame {
  border-color: #f87171;
}
.thumb-supercar-speed-grand-prix .thumb-badge {
  background: #dc2626;
  color: #ffffff;
}
.thumb-supercar-speed-grand-prix .thumb-heading {
  color: #fecaca;
}

.thumb-space-alien-ufo-odyssey {
  background: linear-gradient(135deg, #14092b 0%, #251052 50%, #39177a 100%);
  color: #f8fafc;
}
.thumb-space-alien-ufo-odyssey .thumb-frame {
  border-color: #c084fc;
}
.thumb-space-alien-ufo-odyssey .thumb-badge {
  background: #9333ea;
  color: #ffffff;
}
.thumb-space-alien-ufo-odyssey .thumb-heading {
  color: #e9d5ff;
}

.thumb-mermaid-underwater-coral {
  background: linear-gradient(135deg, #071f24 0%, #0d3840 50%, #145561 100%);
  color: #f8fafc;
}
.thumb-mermaid-underwater-coral .thumb-frame {
  border-color: #2dd4bf;
}
.thumb-mermaid-underwater-coral .thumb-badge {
  background: #0d9488;
  color: #ffffff;
}
.thumb-mermaid-underwater-coral .thumb-heading {
  color: #99f6e4;
}

.thumb-super-chef-cooking-gala {
  background: linear-gradient(135deg, #261208 0%, #4a210c 50%, #6f300f 100%);
  color: #f8fafc;
}
.thumb-super-chef-cooking-gala .thumb-frame {
  border-color: #fb923c;
}
.thumb-super-chef-cooking-gala .thumb-badge {
  background: #ea580c;
  color: #ffffff;
}
.thumb-super-chef-cooking-gala .thumb-heading {
  color: #fed7aa;
}

.thumb-golden-balloon-fiesta {
  background: linear-gradient(135deg, #1f1406 0%, #38250b 50%, #52370f 100%);
  color: #f8fafc;
}
.thumb-golden-balloon-fiesta .thumb-frame {
  border-color: #facc15;
}
.thumb-golden-balloon-fiesta .thumb-badge {
  background: #ca8a04;
  color: #ffffff;
}
.thumb-golden-balloon-fiesta .thumb-heading {
  color: #fef08a;
}

.thumb-aurora-boreal-nordic-love {
  background: linear-gradient(135deg, #05191c 0%, #0a3036 50%, #104a54 100%);
  color: #f8fafc;
}
.thumb-aurora-boreal-nordic-love .thumb-frame {
  border-color: #34d399;
}
.thumb-aurora-boreal-nordic-love .thumb-badge {
  background: #059669;
  color: #ffffff;
}
.thumb-aurora-boreal-nordic-love .thumb-heading {
  color: #a7f3d0;
}

.thumb-venice-gondola-serenade {
  background: linear-gradient(135deg, #0a1426 0%, #142445 50%, #1f3769 100%);
  color: #f8fafc;
}
.thumb-venice-gondola-serenade .thumb-frame {
  border-color: #60a5fa;
}
.thumb-venice-gondola-serenade .thumb-badge {
  background: #2563eb;
  color: #ffffff;
}
.thumb-venice-gondola-serenade .thumb-heading {
  color: #bfdbfe;
}

.thumb-autumn-maple-whisper {
  background: linear-gradient(135deg, #240e06 0%, #451b0a 50%, #66270e 100%);
  color: #f8fafc;
}
.thumb-autumn-maple-whisper .thumb-frame {
  border-color: #fb923c;
}
.thumb-autumn-maple-whisper .thumb-badge {
  background: #ea580c;
  color: #ffffff;
}
.thumb-autumn-maple-whisper .thumb-heading {
  color: #fed7aa;
}

.thumb-diamond-forever-jubilee {
  background: linear-gradient(135deg, #0b1526 0%, #152745 50%, #203c6b 100%);
  color: #f8fafc;
}
.thumb-diamond-forever-jubilee .thumb-frame {
  border-color: #7dd3fc;
}
.thumb-diamond-forever-jubilee .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-diamond-forever-jubilee .thumb-heading {
  color: #e0f2fe;
}

.thumb-santorini-sunset-bliss {
  background: linear-gradient(135deg, #081a30 0%, #102e52 50%, #194578 100%);
  color: #f8fafc;
}
.thumb-santorini-sunset-bliss .thumb-frame {
  border-color: #38bdf8;
}
.thumb-santorini-sunset-bliss .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-santorini-sunset-bliss .thumb-heading {
  color: #bae6fd;
}

.thumb-moonlight-lake-swan {
  background: linear-gradient(135deg, #0a1224 0%, #132142 50%, #1e3363 100%);
  color: #f8fafc;
}
.thumb-moonlight-lake-swan .thumb-frame {
  border-color: #818cf8;
}
.thumb-moonlight-lake-swan .thumb-badge {
  background: #4f46e5;
  color: #ffffff;
}
.thumb-moonlight-lake-swan .thumb-heading {
  color: #c7d2fe;
}

.thumb-tuscany-vineyard-romance {
  background: linear-gradient(135deg, #240813 0%, #451025 50%, #691839 100%);
  color: #f8fafc;
}
.thumb-tuscany-vineyard-romance .thumb-frame {
  border-color: #f43f5e;
}
.thumb-tuscany-vineyard-romance .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-tuscany-vineyard-romance .thumb-heading {
  color: #fecdd3;
}

.thumb-stargazing-celestial-dome {
  background: linear-gradient(135deg, #090b21 0%, #12163b 50%, #1e2359 100%);
  color: #f8fafc;
}
.thumb-stargazing-celestial-dome .thumb-frame {
  border-color: #818cf8;
}
.thumb-stargazing-celestial-dome .thumb-badge {
  background: #4f46e5;
  color: #ffffff;
}
.thumb-stargazing-celestial-dome .thumb-heading {
  color: #c7d2fe;
}

.thumb-ruby-40th-anniversary {
  background: linear-gradient(135deg, #26060f 0%, #4a0d1f 50%, #6e142e 100%);
  color: #f8fafc;
}
.thumb-ruby-40th-anniversary .thumb-frame {
  border-color: #fb7185;
}
.thumb-ruby-40th-anniversary .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-ruby-40th-anniversary .thumb-heading {
  color: #fecdd3;
}

.thumb-casablanca-mon-amour {
  background: linear-gradient(135deg, #1f140a 0%, #3b2713 50%, #573a1d 100%);
  color: #f8fafc;
}
.thumb-casablanca-mon-amour .thumb-frame {
  border-color: #d97706;
}
.thumb-casablanca-mon-amour .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-casablanca-mon-amour .thumb-heading {
  color: #fde68a;
}

.thumb-aceh-pinto-khop-mahkota {
  background: linear-gradient(135deg, #26080e 0%, #47101a 50%, #691726 100%);
  color: #f8fafc;
}
.thumb-aceh-pinto-khop-mahkota .thumb-frame {
  border-color: #facc15;
}
.thumb-aceh-pinto-khop-mahkota .thumb-badge {
  background: #e11d48;
  color: #ffffff;
}
.thumb-aceh-pinto-khop-mahkota .thumb-heading {
  color: #fef08a;
}

.thumb-banjar-baamar-alas {
  background: linear-gradient(135deg, #092113 0%, #133d24 50%, #1d5935 100%);
  color: #f8fafc;
}
.thumb-banjar-baamar-alas .thumb-frame {
  border-color: #facc15;
}
.thumb-banjar-baamar-alas .thumb-badge {
  background: #15803d;
  color: #ffffff;
}
.thumb-banjar-baamar-alas .thumb-heading {
  color: #fef08a;
}

.thumb-lampung-siger-agung {
  background: linear-gradient(135deg, #260a12 0%, #471322 50%, #691c32 100%);
  color: #f8fafc;
}
.thumb-lampung-siger-agung .thumb-frame {
  border-color: #fde047;
}
.thumb-lampung-siger-agung .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-lampung-siger-agung .thumb-heading {
  color: #fef08a;
}

.thumb-papua-cendrawasih-harmony {
  background: linear-gradient(135deg, #1c1106 0%, #36210b 50%, #523111 100%);
  color: #f8fafc;
}
.thumb-papua-cendrawasih-harmony .thumb-frame {
  border-color: #fbbf24;
}
.thumb-papua-cendrawasih-harmony .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-papua-cendrawasih-harmony .thumb-heading {
  color: #fde68a;
}

.thumb-cinderella-glass-carriage {
  background: linear-gradient(135deg, #0c182e 0%, #15294d 50%, #203b6e 100%);
  color: #f8fafc;
}
.thumb-cinderella-glass-carriage .thumb-frame {
  border-color: #93c5fd;
}
.thumb-cinderella-glass-carriage .thumb-badge {
  background: #2563eb;
  color: #ffffff;
}
.thumb-cinderella-glass-carriage .thumb-heading {
  color: #dbeafe;
}

.thumb-gothic-victorian-glamour {
  background: linear-gradient(135deg, #14070c 0%, #290d18 50%, #3e1424 100%);
  color: #f8fafc;
}
.thumb-gothic-victorian-glamour .thumb-frame {
  border-color: #fb7185;
}
.thumb-gothic-victorian-glamour .thumb-badge {
  background: #9f1239;
  color: #ffffff;
}
.thumb-gothic-victorian-glamour .thumb-heading {
  color: #fecdd3;
}

.thumb-moroccan-tent-oasis {
  background: linear-gradient(135deg, #241108 0%, #45200f 50%, #662f17 100%);
  color: #f8fafc;
}
.thumb-moroccan-tent-oasis .thumb-frame {
  border-color: #ea580c;
}
.thumb-moroccan-tent-oasis .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-moroccan-tent-oasis .thumb-heading {
  color: #fed7aa;
}

.thumb-zen-shinto-bamboo-wedding {
  background: linear-gradient(135deg, #0f2115 0%, #1b3d27 50%, #28593a 100%);
  color: #f8fafc;
}
.thumb-zen-shinto-bamboo-wedding .thumb-frame {
  border-color: #86efac;
}
.thumb-zen-shinto-bamboo-wedding .thumb-badge {
  background: #15803d;
  color: #ffffff;
}
.thumb-zen-shinto-bamboo-wedding .thumb-heading {
  color: #bbf7d0;
}

.thumb-bohemian-macrame-sunset {
  background: linear-gradient(135deg, #24160c 0%, #422815 50%, #613b1f 100%);
  color: #f8fafc;
}
.thumb-bohemian-macrame-sunset .thumb-frame {
  border-color: #f59e0b;
}
.thumb-bohemian-macrame-sunset .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-bohemian-macrame-sunset .thumb-heading {
  color: #fed7aa;
}

.thumb-celestial-galaxy-nuptials {
  background: linear-gradient(135deg, #0b0921 0%, #161240 50%, #241c66 100%);
  color: #f8fafc;
}
.thumb-celestial-galaxy-nuptials .thumb-frame {
  border-color: #a78bfa;
}
.thumb-celestial-galaxy-nuptials .thumb-badge {
  background: #6d28d9;
  color: #ffffff;
}
.thumb-celestial-galaxy-nuptials .thumb-heading {
  color: #ddd6fe;
}

.thumb-maritime-kapten-pelayaran {
  background: linear-gradient(135deg, #071526 0%, #0e2747 50%, #163d6e 100%);
  color: #f8fafc;
}
.thumb-maritime-kapten-pelayaran .thumb-frame {
  border-color: #38bdf8;
}
.thumb-maritime-kapten-pelayaran .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-maritime-kapten-pelayaran .thumb-heading {
  color: #bae6fd;
}

.thumb-culinary-arts-mastery {
  background: linear-gradient(135deg, #211309 0%, #3d220f 50%, #5e3416 100%);
  color: #f8fafc;
}
.thumb-culinary-arts-mastery .thumb-frame {
  border-color: #f59e0b;
}
.thumb-culinary-arts-mastery .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-culinary-arts-mastery .thumb-heading {
  color: #fde68a;
}

.thumb-veterinary-animal-healer {
  background: linear-gradient(135deg, #0a1f12 0%, #143b23 50%, #1e5935 100%);
  color: #f8fafc;
}
.thumb-veterinary-animal-healer .thumb-frame {
  border-color: #4ade80;
}
.thumb-veterinary-animal-healer .thumb-badge {
  background: #16a34a;
  color: #ffffff;
}
.thumb-veterinary-animal-healer .thumb-heading {
  color: #bbf7d0;
}

.thumb-music-conservatory-maestro {
  background: linear-gradient(135deg, #210c07 0%, #3d170d 50%, #5e2415 100%);
  color: #f8fafc;
}
.thumb-music-conservatory-maestro .thumb-frame {
  border-color: #fb923c;
}
.thumb-music-conservatory-maestro .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-music-conservatory-maestro .thumb-heading {
  color: #fed7aa;
}

.thumb-aerospace-rocket-engineer {
  background: linear-gradient(135deg, #091324 0%, #122442 50%, #1a3866 100%);
  color: #f8fafc;
}
.thumb-aerospace-rocket-engineer .thumb-frame {
  border-color: #38bdf8;
}
.thumb-aerospace-rocket-engineer .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-aerospace-rocket-engineer .thumb-heading {
  color: #bae6fd;
}

.thumb-fine-arts-sculptor-studio {
  background: linear-gradient(135deg, #1f1115 0%, #3b1f27 50%, #572d39 100%);
  color: #f8fafc;
}
.thumb-fine-arts-sculptor-studio .thumb-frame {
  border-color: #fb7185;
}
.thumb-fine-arts-sculptor-studio .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-fine-arts-sculptor-studio .thumb-heading {
  color: #fecdd3;
}

.thumb-diplomatic-international-relations {
  background: linear-gradient(135deg, #091326 0%, #112347 50%, #1a356b 100%);
  color: #f8fafc;
}
.thumb-diplomatic-international-relations .thumb-frame {
  border-color: #60a5fa;
}
.thumb-diplomatic-international-relations .thumb-badge {
  background: #1d4ed8;
  color: #ffffff;
}
.thumb-diplomatic-international-relations .thumb-heading {
  color: #bfdbfe;
}

.thumb-cyber-security-hacker-defense {
  background: linear-gradient(135deg, #041409 0%, #082913 50%, #0e3d1d 100%);
  color: #f8fafc;
}
.thumb-cyber-security-hacker-defense .thumb-frame {
  border-color: #4ade80;
}
.thumb-cyber-security-hacker-defense .thumb-badge {
  background: #16a34a;
  color: #ffffff;
}
.thumb-cyber-security-hacker-defense .thumb-heading {
  color: #bbf7d0;
}

.thumb-environmental-green-forestry {
  background: linear-gradient(135deg, #061f12 0%, #0d3821 50%, #155231 100%);
  color: #f8fafc;
}
.thumb-environmental-green-forestry .thumb-frame {
  border-color: #86efac;
}
.thumb-environmental-green-forestry .thumb-badge {
  background: #15803d;
  color: #ffffff;
}
.thumb-environmental-green-forestry .thumb-heading {
  color: #dcfce7;
}

.thumb-astronomy-astrophysics-phd {
  background: linear-gradient(135deg, #180929 0%, #2f124f 50%, #461b75 100%);
  color: #f8fafc;
}
.thumb-astronomy-astrophysics-phd .thumb-frame {
  border-color: #c084fc;
}
.thumb-astronomy-astrophysics-phd .thumb-badge {
  background: #7e22ce;
  color: #ffffff;
}
.thumb-astronomy-astrophysics-phd .thumb-heading {
  color: #f3e8ff;
}

.thumb-festival-lampion-terbang {
  background: linear-gradient(135deg, #0c112e 0%, #161e52 50%, #212c75 100%);
  color: #f8fafc;
}
.thumb-festival-lampion-terbang .thumb-frame {
  border-color: #fbbf24;
}
.thumb-festival-lampion-terbang .thumb-badge {
  background: #d97706;
  color: #ffffff;
}
.thumb-festival-lampion-terbang .thumb-heading {
  color: #fef08a;
}

.thumb-tahfidz-quran-khataman {
  background: linear-gradient(135deg, #081f14 0%, #113824 50%, #195235 100%);
  color: #f8fafc;
}
.thumb-tahfidz-quran-khataman .thumb-frame {
  border-color: #facc15;
}
.thumb-tahfidz-quran-khataman .thumb-badge {
  background: #15803d;
  color: #ffffff;
}
.thumb-tahfidz-quran-khataman .thumb-heading {
  color: #fef08a;
}

.thumb-housewarming-villa-tropis {
  background: linear-gradient(135deg, #071f1f 0%, #0e3b3a 50%, #175756 100%);
  color: #f8fafc;
}
.thumb-housewarming-villa-tropis .thumb-frame {
  border-color: #2dd4bf;
}
.thumb-housewarming-villa-tropis .thumb-badge {
  background: #0d9488;
  color: #ffffff;
}
.thumb-housewarming-villa-tropis .thumb-heading {
  color: #99f6e4;
}

.thumb-pesta-barbeque-pantai {
  background: linear-gradient(135deg, #240d06 0%, #47170a 50%, #6b220d 100%);
  color: #f8fafc;
}
.thumb-pesta-barbeque-pantai .thumb-frame {
  border-color: #f97316;
}
.thumb-pesta-barbeque-pantai .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-pesta-barbeque-pantai .thumb-heading {
  color: #fed7aa;
}

.thumb-carnival-rio-samba {
  background: linear-gradient(135deg, #290815 0%, #520f2b 50%, #7a1640 100%);
  color: #f8fafc;
}
.thumb-carnival-rio-samba .thumb-frame {
  border-color: #f43f5e;
}
.thumb-carnival-rio-samba .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-carnival-rio-samba .thumb-heading {
  color: #fecdd3;
}

.thumb-pesta-taman-vintage-tea {
  background: linear-gradient(135deg, #1f1217 0%, #3d222e 50%, #5c3345 100%);
  color: #f8fafc;
}
.thumb-pesta-taman-vintage-tea .thumb-frame {
  border-color: #f472b6;
}
.thumb-pesta-taman-vintage-tea .thumb-badge {
  background: #db2777;
  color: #ffffff;
}
.thumb-pesta-taman-vintage-tea .thumb-heading {
  color: #fbcfe8;
}

.thumb-inagurasi-ceo-korporat {
  background: linear-gradient(135deg, #091224 0%, #112245 50%, #1a3466 100%);
  color: #f8fafc;
}
.thumb-inagurasi-ceo-korporat .thumb-frame {
  border-color: #38bdf8;
}
.thumb-inagurasi-ceo-korporat .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-inagurasi-ceo-korporat .thumb-heading {
  color: #bae6fd;
}

.thumb-festival-layang-layang-pantai {
  background: linear-gradient(135deg, #071929 0%, #0e3152 50%, #154c7d 100%);
  color: #f8fafc;
}
.thumb-festival-layang-layang-pantai .thumb-frame {
  border-color: #38bdf8;
}
.thumb-festival-layang-layang-pantai .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-festival-layang-layang-pantai .thumb-heading {
  color: #bae6fd;
}

.thumb-oktoberfest-bavarian-cheers {
  background: linear-gradient(135deg, #0c1833 0%, #152d5e 50%, #1f428a 100%);
  color: #f8fafc;
}
.thumb-oktoberfest-bavarian-cheers .thumb-frame {
  border-color: #60a5fa;
}
.thumb-oktoberfest-bavarian-cheers .thumb-badge {
  background: #2563eb;
  color: #ffffff;
}
.thumb-oktoberfest-bavarian-cheers .thumb-heading {
  color: #dbeafe;
}

.thumb-festival-kembang-api-milenium {
  background: linear-gradient(135deg, #170824 0%, #2e1047 50%, #47196e 100%);
  color: #f8fafc;
}
.thumb-festival-kembang-api-milenium .thumb-frame {
  border-color: #f43f5e;
}
.thumb-festival-kembang-api-milenium .thumb-badge {
  background: #a855f7;
  color: #ffffff;
}
.thumb-festival-kembang-api-milenium .thumb-heading {
  color: #fce7f3;
}

/* --- Templates 169-218: 50 Additional Thumbnails --- */
.thumb-neon-roller-skating-rink {
  background: linear-gradient(135deg, #09031c 0%, #1f0738 50%, #3b074a 100%);
  color: #f8fafc;
}
.thumb-neon-roller-skating-rink .thumb-frame {
  border-color: #e11d48;
}
.thumb-neon-roller-skating-rink .thumb-badge {
  background: #e11d48;
  color: #ffffff;
}
.thumb-neon-roller-skating-rink .thumb-heading {
  color: #fff1f2;
}
.thumb-dino-jurassic-safari-expedition {
  background: linear-gradient(135deg, #071f12 0%, #123d21 50%, #1b5c32 100%);
  color: #f8fafc;
}
.thumb-dino-jurassic-safari-expedition .thumb-frame {
  border-color: #16a34a;
}
.thumb-dino-jurassic-safari-expedition .thumb-badge {
  background: #16a34a;
  color: #ffffff;
}
.thumb-dino-jurassic-safari-expedition .thumb-heading {
  color: #f0fdf4;
}
.thumb-magic-potion-alchemy-party {
  background: linear-gradient(135deg, #15082b 0%, #2e0f59 50%, #4c1d85 100%);
  color: #f8fafc;
}
.thumb-magic-potion-alchemy-party .thumb-frame {
  border-color: #9333ea;
}
.thumb-magic-potion-alchemy-party .thumb-badge {
  background: #9333ea;
  color: #ffffff;
}
.thumb-magic-potion-alchemy-party .thumb-heading {
  color: #faf5ff;
}
.thumb-superhero-comic-city-defense {
  background: linear-gradient(135deg, #1a0808 0%, #3d1212 50%, #631c1c 100%);
  color: #f8fafc;
}
.thumb-superhero-comic-city-defense .thumb-frame {
  border-color: #dc2626;
}
.thumb-superhero-comic-city-defense .thumb-badge {
  background: #dc2626;
  color: #ffffff;
}
.thumb-superhero-comic-city-defense .thumb-heading {
  color: #fef2f2;
}
.thumb-kawaii-boba-pastel-tea {
  background: linear-gradient(135deg, #2b0b1c 0%, #4a1332 50%, #6e1c4b 100%);
  color: #f8fafc;
}
.thumb-kawaii-boba-pastel-tea .thumb-frame {
  border-color: #db2777;
}
.thumb-kawaii-boba-pastel-tea .thumb-badge {
  background: #db2777;
  color: #ffffff;
}
.thumb-kawaii-boba-pastel-tea .thumb-heading {
  color: #fff1f2;
}
.thumb-karting-championship-raceway {
  background: linear-gradient(135deg, #121010 0%, #2b1f1a 50%, #473229 100%);
  color: #f8fafc;
}
.thumb-karting-championship-raceway .thumb-frame {
  border-color: #ea580c;
}
.thumb-karting-championship-raceway .thumb-badge {
  background: #ea580c;
  color: #ffffff;
}
.thumb-karting-championship-raceway .thumb-heading {
  color: #fff7ed;
}
.thumb-space-rover-mars-colonizer {
  background: linear-gradient(135deg, #240a08 0%, #471713 50%, #6e241e 100%);
  color: #f8fafc;
}
.thumb-space-rover-mars-colonizer .thumb-frame {
  border-color: #c2410c;
}
.thumb-space-rover-mars-colonizer .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-space-rover-mars-colonizer .thumb-heading {
  color: #fff7ed;
}
.thumb-fairy-enchanted-woodland-glade {
  background: linear-gradient(135deg, #0c1a17 0%, #15362e 50%, #1d5246 100%);
  color: #f8fafc;
}
.thumb-fairy-enchanted-woodland-glade .thumb-frame {
  border-color: #059669;
}
.thumb-fairy-enchanted-woodland-glade .thumb-badge {
  background: #059669;
  color: #ffffff;
}
.thumb-fairy-enchanted-woodland-glade .thumb-heading {
  color: #ecfdf5;
}
.thumb-aquarium-sea-turtle-reef {
  background: linear-gradient(135deg, #031c26 0%, #0a3547 50%, #10526e 100%);
  color: #f8fafc;
}
.thumb-aquarium-sea-turtle-reef .thumb-frame {
  border-color: #0284c7;
}
.thumb-aquarium-sea-turtle-reef .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-aquarium-sea-turtle-reef .thumb-heading {
  color: #f0f9ff;
}
.thumb-pirate-skull-island-voyage {
  background: linear-gradient(135deg, #0b1726 0%, #152d4a 50%, #204570 100%);
  color: #f8fafc;
}
.thumb-pirate-skull-island-voyage .thumb-frame {
  border-color: #0369a1;
}
.thumb-pirate-skull-island-voyage .thumb-badge {
  background: #0369a1;
  color: #ffffff;
}
.thumb-pirate-skull-island-voyage .thumb-heading {
  color: #f0f9ff;
}
.thumb-bali-puri-royal-agung {
  background: linear-gradient(135deg, #1a0f05 0%, #361f0b 50%, #543111 100%);
  color: #f8fafc;
}
.thumb-bali-puri-royal-agung .thumb-frame {
  border-color: #ca8a04;
}
.thumb-bali-puri-royal-agung .thumb-badge {
  background: #ca8a04;
  color: #ffffff;
}
.thumb-bali-puri-royal-agung .thumb-heading {
  color: #fefce8;
}
.thumb-betawi-palang-pintu-delman {
  background: linear-gradient(135deg, #1c0a0c 0%, #3b1419 50%, #5e2029 100%);
  color: #f8fafc;
}
.thumb-betawi-palang-pintu-delman .thumb-frame {
  border-color: #be123c;
}
.thumb-betawi-palang-pintu-delman .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-betawi-palang-pintu-delman .thumb-heading {
  color: #fff1f2;
}
.thumb-dayak-hudoq-borneo-royalty {
  background: linear-gradient(135deg, #140d08 0%, #2b1b10 50%, #452c1a 100%);
  color: #f8fafc;
}
.thumb-dayak-hudoq-borneo-royalty .thumb-frame {
  border-color: #9a3412;
}
.thumb-dayak-hudoq-borneo-royalty .thumb-badge {
  background: #9a3412;
  color: #ffffff;
}
.thumb-dayak-hudoq-borneo-royalty .thumb-heading {
  color: #fff7ed;
}
.thumb-makassar-baju-bodo-silk {
  background: linear-gradient(135deg, #081a12 0%, #123827 50%, #1c593f 100%);
  color: #f8fafc;
}
.thumb-makassar-baju-bodo-silk .thumb-frame {
  border-color: #059669;
}
.thumb-makassar-baju-bodo-silk .thumb-badge {
  background: #059669;
  color: #ffffff;
}
.thumb-makassar-baju-bodo-silk .thumb-heading {
  color: #ecfdf5;
}
.thumb-kyoto-shinto-zen-sanctuary {
  background: linear-gradient(135deg, #1f0b0d 0%, #3d1419 50%, #5e1f26 100%);
  color: #f8fafc;
}
.thumb-kyoto-shinto-zen-sanctuary .thumb-frame {
  border-color: #dc2626;
}
.thumb-kyoto-shinto-zen-sanctuary .thumb-badge {
  background: #dc2626;
  color: #ffffff;
}
.thumb-kyoto-shinto-zen-sanctuary .thumb-heading {
  color: #fef2f2;
}
.thumb-santorini-cliffside-bougainvillea {
  background: linear-gradient(135deg, #08172c 0%, #102e57 50%, #194682 100%);
  color: #f8fafc;
}
.thumb-santorini-cliffside-bougainvillea .thumb-frame {
  border-color: #0284c7;
}
.thumb-santorini-cliffside-bougainvillea .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-santorini-cliffside-bougainvillea .thumb-heading {
  color: #f0f9ff;
}
.thumb-art-deco-great-gatsby-gala {
  background: linear-gradient(135deg, #0f0f12 0%, #292823 50%, #454338 100%);
  color: #f8fafc;
}
.thumb-art-deco-great-gatsby-gala .thumb-frame {
  border-color: #ca8a04;
}
.thumb-art-deco-great-gatsby-gala .thumb-badge {
  background: #ca8a04;
  color: #ffffff;
}
.thumb-art-deco-great-gatsby-gala .thumb-heading {
  color: #fefce8;
}
.thumb-provence-lavender-sunflower-meadow {
  background: linear-gradient(135deg, #160e22 0%, #301d4a 50%, #4c2d73 100%);
  color: #f8fafc;
}
.thumb-provence-lavender-sunflower-meadow .thumb-frame {
  border-color: #9333ea;
}
.thumb-provence-lavender-sunflower-meadow .thumb-badge {
  background: #9333ea;
  color: #ffffff;
}
.thumb-provence-lavender-sunflower-meadow .thumb-heading {
  color: #faf5ff;
}
.thumb-castle-fairytale-enchanted-gates {
  background: linear-gradient(135deg, #120924 0%, #28144f 50%, #411e7d 100%);
  color: #f8fafc;
}
.thumb-castle-fairytale-enchanted-gates .thumb-frame {
  border-color: #a21caf;
}
.thumb-castle-fairytale-enchanted-gates .thumb-badge {
  background: #a21caf;
  color: #ffffff;
}
.thumb-castle-fairytale-enchanted-gates .thumb-heading {
  color: #fdf4ff;
}
.thumb-crystal-cathedral-stained-glass {
  background: linear-gradient(135deg, #0b1226 0%, #17274f 50%, #233c7a 100%);
  color: #f8fafc;
}
.thumb-crystal-cathedral-stained-glass .thumb-frame {
  border-color: #2563eb;
}
.thumb-crystal-cathedral-stained-glass .thumb-badge {
  background: #2563eb;
  color: #ffffff;
}
.thumb-crystal-cathedral-stained-glass .thumb-heading {
  color: #eff6ff;
}
.thumb-sapphire-45th-royal-jubilee {
  background: linear-gradient(135deg, #07152d 0%, #0e2b5c 50%, #15418c 100%);
  color: #f8fafc;
}
.thumb-sapphire-45th-royal-jubilee .thumb-frame {
  border-color: #0284c7;
}
.thumb-sapphire-45th-royal-jubilee .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-sapphire-45th-royal-jubilee .thumb-heading {
  color: #f0f9ff;
}
.thumb-emerald-55th-eternal-devotion {
  background: linear-gradient(135deg, #061f14 0%, #0e3d29 50%, #155e3f 100%);
  color: #f8fafc;
}
.thumb-emerald-55th-eternal-devotion .thumb-frame {
  border-color: #059669;
}
.thumb-emerald-55th-eternal-devotion .thumb-badge {
  background: #059669;
  color: #ffffff;
}
.thumb-emerald-55th-eternal-devotion .thumb-heading {
  color: #ecfdf5;
}
.thumb-starlight-rooftop-acoustic-duet {
  background: linear-gradient(135deg, #180d16 0%, #361c32 50%, #572d50 100%);
  color: #f8fafc;
}
.thumb-starlight-rooftop-acoustic-duet .thumb-frame {
  border-color: #be185d;
}
.thumb-starlight-rooftop-acoustic-duet .thumb-badge {
  background: #be185d;
  color: #ffffff;
}
.thumb-starlight-rooftop-acoustic-duet .thumb-heading {
  color: #fdf2f8;
}
.thumb-venetian-carnival-duet-masque {
  background: linear-gradient(135deg, #1c081e 0%, #3d1442 50%, #612169 100%);
  color: #f8fafc;
}
.thumb-venetian-carnival-duet-masque .thumb-frame {
  border-color: #a21caf;
}
.thumb-venetian-carnival-duet-masque .thumb-badge {
  background: #a21caf;
  color: #ffffff;
}
.thumb-venetian-carnival-duet-masque .thumb-heading {
  color: #fdf4ff;
}
.thumb-cozy-log-cabin-autumn-embers {
  background: linear-gradient(135deg, #1f0f08 0%, #3d1f11 50%, #5e301b 100%);
  color: #f8fafc;
}
.thumb-cozy-log-cabin-autumn-embers .thumb-frame {
  border-color: #c2410c;
}
.thumb-cozy-log-cabin-autumn-embers .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-cozy-log-cabin-autumn-embers .thumb-heading {
  color: #fff7ed;
}
.thumb-hot-air-balloon-cappadocia-sunrise {
  background: linear-gradient(135deg, #1a0f1e 0%, #3b1d3d 50%, #5e2f5f 100%);
  color: #f8fafc;
}
.thumb-hot-air-balloon-cappadocia-sunrise .thumb-frame {
  border-color: #e11d48;
}
.thumb-hot-air-balloon-cappadocia-sunrise .thumb-badge {
  background: #e11d48;
  color: #ffffff;
}
.thumb-hot-air-balloon-cappadocia-sunrise .thumb-heading {
  color: #fff1f2;
}
.thumb-moonlit-waterfall-serenade {
  background: linear-gradient(135deg, #071926 0%, #10344f 50%, #19527a 100%);
  color: #f8fafc;
}
.thumb-moonlit-waterfall-serenade .thumb-frame {
  border-color: #0284c7;
}
.thumb-moonlit-waterfall-serenade .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-moonlit-waterfall-serenade .thumb-heading {
  color: #f0f9ff;
}
.thumb-amalfi-coast-lemon-terrace {
  background: linear-gradient(135deg, #081d1c 0%, #113b38 50%, #1a5954 100%);
  color: #f8fafc;
}
.thumb-amalfi-coast-lemon-terrace .thumb-frame {
  border-color: #0f766e;
}
.thumb-amalfi-coast-lemon-terrace .thumb-badge {
  background: #0f766e;
  color: #ffffff;
}
.thumb-amalfi-coast-lemon-terrace .thumb-heading {
  color: #f0fdfa;
}
.thumb-tahiti-overwater-bungalow-sunset {
  background: linear-gradient(135deg, #1f0b1a 0%, #3e1533 50%, #61204f 100%);
  color: #f8fafc;
}
.thumb-tahiti-overwater-bungalow-sunset .thumb-frame {
  border-color: #be123c;
}
.thumb-tahiti-overwater-bungalow-sunset .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-tahiti-overwater-bungalow-sunset .thumb-heading {
  color: #fff1f2;
}
.thumb-golden-record-timeless-melody {
  background: linear-gradient(135deg, #171008 0%, #332311 50%, #52381b 100%);
  color: #f8fafc;
}
.thumb-golden-record-timeless-melody .thumb-frame {
  border-color: #ca8a04;
}
.thumb-golden-record-timeless-melody .thumb-badge {
  background: #ca8a04;
  color: #ffffff;
}
.thumb-golden-record-timeless-melody .thumb-heading {
  color: #fefce8;
}
.thumb-aviation-flight-captain-wings {
  background: linear-gradient(135deg, #091326 0%, #12284d 50%, #1c3e78 100%);
  color: #f8fafc;
}
.thumb-aviation-flight-captain-wings .thumb-frame {
  border-color: #0284c7;
}
.thumb-aviation-flight-captain-wings .thumb-badge {
  background: #0284c7;
  color: #ffffff;
}
.thumb-aviation-flight-captain-wings .thumb-heading {
  color: #f0f9ff;
}
.thumb-marine-oceanography-deep-dive {
  background: linear-gradient(135deg, #031b24 0%, #0a384a 50%, #115773 100%);
  color: #f8fafc;
}
.thumb-marine-oceanography-deep-dive .thumb-frame {
  border-color: #0f766e;
}
.thumb-marine-oceanography-deep-dive .thumb-badge {
  background: #0f766e;
  color: #ffffff;
}
.thumb-marine-oceanography-deep-dive .thumb-heading {
  color: #f0fdfa;
}
.thumb-petroleum-mining-engineering-gold {
  background: linear-gradient(135deg, #190f05 0%, #36200b 50%, #573312 100%);
  color: #f8fafc;
}
.thumb-petroleum-mining-engineering-gold .thumb-frame {
  border-color: #b45309;
}
.thumb-petroleum-mining-engineering-gold .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-petroleum-mining-engineering-gold .thumb-heading {
  color: #fffbeb;
}
.thumb-neurology-brain-neuroscience-pulse {
  background: linear-gradient(135deg, #09122c 0%, #152559 50%, #213a8a 100%);
  color: #f8fafc;
}
.thumb-neurology-brain-neuroscience-pulse .thumb-frame {
  border-color: #4f46e5;
}
.thumb-neurology-brain-neuroscience-pulse .thumb-badge {
  background: #4f46e5;
  color: #ffffff;
}
.thumb-neurology-brain-neuroscience-pulse .thumb-heading {
  color: #f5f3ff;
}
.thumb-quantum-computing-physicist {
  background: linear-gradient(135deg, #12092b 0%, #27145e 50%, #402094 100%);
  color: #f8fafc;
}
.thumb-quantum-computing-physicist .thumb-frame {
  border-color: #7e22ce;
}
.thumb-quantum-computing-physicist .thumb-badge {
  background: #7e22ce;
  color: #ffffff;
}
.thumb-quantum-computing-physicist .thumb-heading {
  color: #faf5ff;
}
.thumb-agricultural-agronomy-green-harvest {
  background: linear-gradient(135deg, #0c1e0e 0%, #1b3d1d 50%, #2a6130 100%);
  color: #f8fafc;
}
.thumb-agricultural-agronomy-green-harvest .thumb-frame {
  border-color: #16a34a;
}
.thumb-agricultural-agronomy-green-harvest .thumb-badge {
  background: #16a34a;
  color: #ffffff;
}
.thumb-agricultural-agronomy-green-harvest .thumb-heading {
  color: #f0fdf4;
}
.thumb-culinary-pastry-chef-patisserie {
  background: linear-gradient(135deg, #220e0c 0%, #451b18 50%, #6e2a25 100%);
  color: #f8fafc;
}
.thumb-culinary-pastry-chef-patisserie .thumb-frame {
  border-color: #c2410c;
}
.thumb-culinary-pastry-chef-patisserie .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-culinary-pastry-chef-patisserie .thumb-heading {
  color: #fff7ed;
}
.thumb-journalism-broadcast-media-producer {
  background: linear-gradient(135deg, #1c080a 0%, #3b1116 50%, #5e1c23 100%);
  color: #f8fafc;
}
.thumb-journalism-broadcast-media-producer .thumb-frame {
  border-color: #b91c1c;
}
.thumb-journalism-broadcast-media-producer .thumb-badge {
  background: #b91c1c;
  color: #ffffff;
}
.thumb-journalism-broadcast-media-producer .thumb-heading {
  color: #fef2f2;
}
.thumb-civil-infrastructure-bridge-builder {
  background: linear-gradient(135deg, #0b1424 0%, #172a4d 50%, #234075 100%);
  color: #f8fafc;
}
.thumb-civil-infrastructure-bridge-builder .thumb-frame {
  border-color: #2563eb;
}
.thumb-civil-infrastructure-bridge-builder .thumb-badge {
  background: #2563eb;
  color: #ffffff;
}
.thumb-civil-infrastructure-bridge-builder .thumb-heading {
  color: #eff6ff;
}
.thumb-cyber-forensics-security-analyst {
  background: linear-gradient(135deg, #051a0d 0%, #0c331a 50%, #134d27 100%);
  color: #f8fafc;
}
.thumb-cyber-forensics-security-analyst .thumb-frame {
  border-color: #15803d;
}
.thumb-cyber-forensics-security-analyst .thumb-badge {
  background: #15803d;
  color: #ffffff;
}
.thumb-cyber-forensics-security-analyst .thumb-heading {
  color: #f0fdf4;
}
.thumb-barongsai-lion-dance-festival {
  background: linear-gradient(135deg, #240509 0%, #470d14 50%, #6e1520 100%);
  color: #f8fafc;
}
.thumb-barongsai-lion-dance-festival .thumb-frame {
  border-color: #dc2626;
}
.thumb-barongsai-lion-dance-festival .thumb-badge {
  background: #dc2626;
  color: #ffffff;
}
.thumb-barongsai-lion-dance-festival .thumb-heading {
  color: #fff1f2;
}
.thumb-toraja-rambu-solo-kabana {
  background: linear-gradient(135deg, #1f0d06 0%, #3d1b0d 50%, #5e2a14 100%);
  color: #f8fafc;
}
.thumb-toraja-rambu-solo-kabana .thumb-frame {
  border-color: #9a3412;
}
.thumb-toraja-rambu-solo-kabana .thumb-badge {
  background: #9a3412;
  color: #ffffff;
}
.thumb-toraja-rambu-solo-kabana .thumb-heading {
  color: #fff7ed;
}
.thumb-hawaian-luau-tiki-torch {
  background: linear-gradient(135deg, #240f06 0%, #471f0d 50%, #6e3014 100%);
  color: #f8fafc;
}
.thumb-hawaian-luau-tiki-torch .thumb-frame {
  border-color: #ea580c;
}
.thumb-hawaian-luau-tiki-torch .thumb-badge {
  background: #ea580c;
  color: #ffffff;
}
.thumb-hawaian-luau-tiki-torch .thumb-heading {
  color: #fff7ed;
}
.thumb-mexican-fiesta-mariachi-maracas {
  background: linear-gradient(135deg, #1f0b13 0%, #3e1727 50%, #61243c 100%);
  color: #f8fafc;
}
.thumb-mexican-fiesta-mariachi-maracas .thumb-frame {
  border-color: #e11d48;
}
.thumb-mexican-fiesta-mariachi-maracas .thumb-badge {
  background: #e11d48;
  color: #ffffff;
}
.thumb-mexican-fiesta-mariachi-maracas .thumb-heading {
  color: #fff1f2;
}
.thumb-carnival-venice-water-parade {
  background: linear-gradient(135deg, #0c152e 0%, #172a5c 50%, #233f8a 100%);
  color: #f8fafc;
}
.thumb-carnival-venice-water-parade .thumb-frame {
  border-color: #4f46e5;
}
.thumb-carnival-venice-water-parade .thumb-badge {
  background: #4f46e5;
  color: #ffffff;
}
.thumb-carnival-venice-water-parade .thumb-heading {
  color: #f5f3ff;
}
.thumb-harajuku-cyber-jpop-festival {
  background: linear-gradient(135deg, #1a0429 0%, #360a54 50%, #541082 100%);
  color: #f8fafc;
}
.thumb-harajuku-cyber-jpop-festival .thumb-frame {
  border-color: #be185d;
}
.thumb-harajuku-cyber-jpop-festival .thumb-badge {
  background: #be185d;
  color: #ffffff;
}
.thumb-harajuku-cyber-jpop-festival .thumb-heading {
  color: #fdf2f8;
}
.thumb-reog-ponorogo-singa-barong {
  background: linear-gradient(135deg, #1c0e05 0%, #381c0b 50%, #592d11 100%);
  color: #f8fafc;
}
.thumb-reog-ponorogo-singa-barong .thumb-frame {
  border-color: #b45309;
}
.thumb-reog-ponorogo-singa-barong .thumb-badge {
  background: #b45309;
  color: #ffffff;
}
.thumb-reog-ponorogo-singa-barong .thumb-heading {
  color: #fef3c7;
}
.thumb-maroccan-desert-caravan-oasis {
  background: linear-gradient(135deg, #201107 0%, #3e220e 50%, #613516 100%);
  color: #f8fafc;
}
.thumb-maroccan-desert-caravan-oasis .thumb-frame {
  border-color: #c2410c;
}
.thumb-maroccan-desert-caravan-oasis .thumb-badge {
  background: #c2410c;
  color: #ffffff;
}
.thumb-maroccan-desert-caravan-oasis .thumb-heading {
  color: #fff7ed;
}
.thumb-festival-kembang-api-hanabi-matsuri {
  background: linear-gradient(135deg, #140521 0%, #2b0b45 50%, #471273 100%);
  color: #f8fafc;
}
.thumb-festival-kembang-api-hanabi-matsuri .thumb-frame {
  border-color: #be123c;
}
.thumb-festival-kembang-api-hanabi-matsuri .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-festival-kembang-api-hanabi-matsuri .thumb-heading {
  color: #fff1f2;
}
.thumb-circus-grand-carnival-bigtop {
  background: linear-gradient(135deg, #1f070e 0%, #3e0e1c 50%, #61162c 100%);
  color: #f8fafc;
}
.thumb-circus-grand-carnival-bigtop .thumb-frame {
  border-color: #be123c;
}
.thumb-circus-grand-carnival-bigtop .thumb-badge {
  background: #be123c;
  color: #ffffff;
}
.thumb-circus-grand-carnival-bigtop .thumb-heading {
  color: #fff1f2;
}



.card-details {
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.card-meta {
  display: flex;
  gap: var(--sp-2);
  margin-bottom: var(--sp-3);
}

.badge-category {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 2px 8px;
  background-color: var(--bg-subtle);
  color: var(--text-secondary);
  border-radius: var(--radius-sm);
}

.badge-mood {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-accent);
}

.card-name {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: var(--sp-2);
  line-height: 1.3;
}

.card-summary {
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.5;
  margin-bottom: var(--sp-5);
  flex-grow: 1;
}

.card-actions {
  display: flex;
  gap: var(--sp-2);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--border-subtle);
}

.card-actions .btn {
  flex: 1;
}

@media (max-width: 420px) {
  .card-actions {
    flex-direction: column;
  }
  .card-actions .btn {
    width: 100%;
  }
}

/* Catalog Pagination & Expand/Collapse */
.catalog-pagination-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-3);
  margin-top: var(--sp-10);
  text-align: center;
}

.btn-catalog-toggle {
  min-height: 48px;
  padding: var(--sp-3) var(--sp-8);
  font-size: 0.9375rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  transition: all 180ms ease;
  border-color: var(--border-strong);
  background-color: var(--bg-surface);
  color: var(--text-primary);
  border-radius: var(--radius-md);
  cursor: pointer;
}

.btn-catalog-toggle:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  background-color: var(--color-primary-subtle);
  transform: translateY(-2px);
}

.btn-catalog-toggle:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.catalog-count-info {
  font-size: 0.8125rem;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}

.template-card.is-collapsed-item {
  display: none !important;
}

/* Empty State Handling */
.empty-state {
  text-align: center;
  padding: var(--sp-12) var(--sp-6);
  background-color: var(--bg-surface);
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius-lg);
  max-width: 500px;
  margin: 0 auto;
}

.empty-state.hidden {
  display: none;
}

.empty-icon {
  margin-bottom: var(--sp-4);
  color: var(--text-muted);
}

.empty-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: var(--sp-2);
}

.empty-desc {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  margin-bottom: var(--sp-5);
}

/* ==========================================================================
   Studio Editor Section (Split Two-Panel Workspace)
   ========================================================================== */
.editor-section {
  padding: var(--sp-16) 0;
  background: transparent;
  border-top: 1px solid var(--border-subtle);
}

.editor-intro {
  margin-bottom: var(--sp-6);
}

/* Preset Chips Bar - Sleek Single Row Carousel (Saves vertical space) */
.preset-bar {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--sp-2);
  margin-bottom: var(--sp-6);
  padding: var(--sp-2) var(--sp-4);
  background-color: var(--bg-surface);
  border-radius: var(--radius-md);
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-sm);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.preset-bar::-webkit-scrollbar {
  height: 4px;
}

.preset-bar::-webkit-scrollbar-thumb {
  background: var(--border-strong);
  border-radius: 4px;
}

.preset-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-secondary);
  margin-right: var(--sp-2);
  white-space: nowrap;
  flex-shrink: 0;
}

.btn-chip {
  min-height: 40px;
  padding: 0 var(--sp-4);
  font-family: var(--font-ui);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-secondary);
  background-color: var(--bg-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: all 150ms ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  white-space: nowrap;
}

.btn-chip:hover {
  background-color: var(--color-primary-subtle);
  color: var(--color-primary);
  border-color: var(--color-primary);
  transform: translateY(-1px);
}

.btn-chip.active {
  background-color: var(--color-primary-subtle);
  color: var(--color-primary);
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px var(--color-primary-ring);
  font-weight: 700;
}

.chip-icon {
  font-size: 1rem;
  line-height: 1;
}

/* Mobile Studio Switcher (Segmented Control for Mobile) */
.mobile-studio-switch {
  display: none;
}

.mobile-only-btn {
  display: none !important;
}

@media (max-width: 991px) {
  .mobile-only-btn {
    display: inline-flex !important;
  }

  .mobile-studio-switch {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background-color: var(--bg-subtle);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: 4px;
    gap: 4px;
    margin-bottom: var(--sp-4);
    position: sticky;
    top: 72px;
    z-index: 60;
    box-shadow: var(--shadow-sm);
  }

  .mobile-switch-btn {
    min-height: 44px;
    border: none;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--text-secondary);
    font-family: var(--font-ui);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: all 150ms ease;
  }

  .mobile-switch-btn:hover {
    color: var(--text-primary);
  }

  .mobile-switch-btn.active {
    background-color: var(--bg-surface);
    color: var(--color-primary);
    box-shadow: var(--shadow-sm);
    font-weight: 700;
  }

  .mobile-live-badge {
    font-size: 0.6875rem;
    padding: 2px 7px;
    background-color: var(--color-success-bg);
    color: var(--color-success);
    border-radius: 999px;
    font-weight: 700;
  }

  /* Controlled visibility based on mobile active mode */
  .editor-workspace.mobile-view-form .editor-panel-preview {
    display: none !important;
  }

  .editor-workspace.mobile-view-form .editor-panel-form {
    display: block !important;
  }

  .editor-workspace.mobile-view-preview .editor-panel-form {
    display: none !important;
  }

  .editor-workspace.mobile-view-preview .editor-panel-preview {
    display: flex !important;
    position: static !important;
    width: 100% !important;
  }
}

/* Workspace Grid (Refined for Ergonomic Desktop and Mobile Usage) */
.editor-workspace {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-6);
  align-items: start;
}

@media (min-width: 992px) {
  .editor-workspace {
    grid-template-columns: 480px 1fr;
    gap: var(--sp-8);
  }
}

@media (min-width: 1240px) {
  .editor-workspace {
    grid-template-columns: 520px 1fr;
    gap: var(--sp-10);
  }
}

/* Panel Kiri: Form Styling */
.editor-panel-form {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  padding: var(--sp-6);
  box-shadow: var(--shadow-sm);
}

@media (max-width: 640px) {
  .editor-panel-form {
    padding: var(--sp-4);
  }
}

.form-tabs {
  display: flex;
  gap: var(--sp-1);
  border-bottom: 2px solid var(--border-subtle);
  margin-bottom: var(--sp-6);
}

.form-tab-btn {
  flex: 1;
  min-height: 48px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  font-family: var(--font-ui);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  transition: color 150ms ease, border-color 150ms ease;
  padding: 0 var(--sp-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-align: center;
}

.form-tab-btn.hidden {
  display: none !important;
}

.hidden {
  display: none !important;
}

@media (max-width: 480px) {
  .form-tab-btn {
    padding: 0 var(--sp-1);
    font-size: 0.8125rem;
  }
  .form-tab-btn .tab-step-text .tab-full {
    display: none;
  }
}

.tab-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  font-size: 0.6875rem;
  font-weight: 700;
  background-color: var(--border-subtle);
  color: var(--text-muted);
  transition: background-color 150ms ease, color 150ms ease;
}

.form-tab-btn:hover {
  color: var(--text-primary);
}

.form-tab-btn.active {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
}

.form-tab-btn.active .tab-step-num {
  background-color: var(--color-primary);
  color: #ffffff;
}

.form-tab-pane {
  display: none;
}

.form-tab-pane.active {
  display: block;
  animation: fadeIn 200ms ease;
}

/* Form Wizard Pane Navigation */
.form-pane-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: var(--sp-6);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--border-subtle);
  gap: var(--sp-3);
}

@media (max-width: 540px) {
  .form-pane-nav {
    flex-direction: column-reverse;
    gap: var(--sp-2);
  }

  .form-pane-nav .btn {
    width: 100%;
    justify-content: center;
    min-height: 44px;
    white-space: normal;
  }

  .form-pane-nav .pane-nav-hint {
    text-align: center;
    width: 100%;
  }
}

.pane-nav-hint {
  font-size: 0.8125rem;
  color: var(--text-muted);
  font-weight: 500;
}

.step-counter-text {
  font-variant-numeric: tabular-nums;
}

.form-group {
  margin-bottom: var(--sp-5);
}

.form-row {
  display: flex;
  gap: var(--sp-3);
}

@media (max-width: 540px) {
  .form-row {
    flex-direction: column;
    gap: var(--sp-3);
  }
}

.form-col {
  flex: 1;
}

.form-label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: var(--sp-2);
}

.required-mark {
  color: var(--color-error);
}

.label-with-action {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--sp-2);
}

.label-with-action .form-label {
  margin-bottom: 0;
}

.btn-text-action {
  background: transparent;
  border: none;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-primary);
  cursor: pointer;
  padding: 4px;
  text-decoration: underline;
}

.btn-text-action:hover {
  color: var(--color-primary-hover);
}

.form-input,
.form-select,
.form-textarea {
  width: 100%;
  font-family: var(--font-ui);
  font-size: 0.9375rem;
  color: var(--text-primary);
  background-color: var(--bg-canvas);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  padding: 0 var(--sp-4);
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

.form-input,
.form-select {
  height: 44px;
}

.form-textarea {
  padding: var(--sp-3) var(--sp-4);
  resize: vertical;
  line-height: 1.5;
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-ring);
  outline: none;
}

.form-hint {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-top: var(--sp-1);
}

.field-error-msg {
  font-size: 0.8125rem;
  color: var(--color-error);
  margin-top: var(--sp-1);
  display: block;
}

.field-error-msg.hidden {
  display: none;
}

.char-counter {
  text-align: right;
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-top: 4px;
}

.info-callout {
  padding: var(--sp-3) var(--sp-4);
  background-color: var(--color-info-bg);
  border-left: 3px solid var(--color-info);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  font-size: 0.8125rem;
  color: var(--text-primary);
  margin-bottom: var(--sp-5);
}

.callout-role-greeting {
  background-color: var(--color-warning-bg);
  border-left-color: var(--color-warning);
}

/* Role Selector (Memberikan Ucapan vs Mengundang Acara) */
.role-selector-section {
  margin-bottom: var(--sp-6);
  padding: var(--sp-4);
  background: var(--bg-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
}

.role-selector-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-3);
  margin-top: var(--sp-2);
}

@media (max-width: 640px) {
  .role-selector-cards {
    grid-template-columns: 1fr;
  }
}

.role-option-card {
  position: relative;
  display: block;
  cursor: pointer;
  background: var(--bg-surface);
  border: 2px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: var(--sp-4);
  transition: border-color 200ms ease, background-color 200ms ease, box-shadow 200ms ease;
  min-height: 44px;
}

.role-option-card:hover {
  border-color: var(--border-strong);
  background-color: var(--surface-hover);
}

.role-option-card.active {
  border-color: var(--color-primary);
  background-color: var(--color-primary-subtle);
  box-shadow: 0 0 0 1px var(--color-primary);
}

.role-option-card:has(.role-radio-input:focus-visible) {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.role-radio-input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.role-card-header {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin-bottom: var(--sp-1);
}

.role-icon {
  font-size: 1.25rem;
  line-height: 1;
}

.role-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text-primary);
}

.role-desc {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-secondary);
  margin: 0 0 var(--sp-3);
}

.role-badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 8px;
  border-radius: var(--radius-full);
}

.role-badge-greeting {
  background: var(--color-info-bg);
  color: var(--color-info);
  border: 1px solid var(--color-info-border);
}

.role-badge-invitation {
  background: var(--color-success-bg);
  color: var(--color-success);
  border: 1px solid var(--color-success-border);
}

/* Color Accent Swatches */
.color-palette-picker {
  display: flex;
  gap: var(--sp-3);
  margin-top: var(--sp-2);
}

.color-swatch-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  cursor: pointer;
}

.color-swatch-label input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.swatch-disc {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 2px solid var(--border-subtle);
  transition: transform 150ms ease, border-color 150ms ease;
}

.color-swatch-label input:checked + .swatch-disc {
  border-color: var(--text-primary);
  transform: scale(1.15);
  box-shadow: 0 0 0 2px var(--color-primary-ring);
}

.swatch-original { background: linear-gradient(135deg, #e11d48 50%, #d97706 50%); }
.swatch-gold     { background: #d97706; }
.swatch-rose     { background: #be123c; }
.swatch-emerald  { background: #15803d; }

.swatch-text {
  font-size: 0.75rem;
  color: var(--text-secondary);
}

/* Toggles */
.toggle-control-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}

.switch-item {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  cursor: pointer;
  min-height: 44px;
}

.switch-item input {
  position: absolute;
  opacity: 0;
}

.switch-box {
  width: 22px;
  height: 22px;
  border: 2px solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: var(--bg-canvas);
  position: relative;
  flex-shrink: 0;
  transition: all 150ms ease;
}

.switch-item input:checked + .switch-box {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
}

.switch-item input:checked + .switch-box::after {
  content: "✓";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 700;
}

.switch-label {
  font-size: 0.875rem;
  color: var(--text-secondary);
}

/* ==========================================================================
   Panel Kanan: Live Card Preview Canvas & Envelope System
   ========================================================================== */
.editor-panel-preview {
  position: sticky;
  top: 88px;
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}

.preview-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: var(--sp-2) var(--sp-4);
  gap: var(--sp-2);
}

.preview-status {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}

.status-indicator-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--color-success);
}

.status-text {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-secondary);
}

.preview-controls {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  flex-wrap: wrap;
}

@media (max-width: 580px) {
  .preview-toolbar {
    flex-direction: column;
    align-items: stretch;
    padding: var(--sp-3);
    gap: var(--sp-3);
  }

  .preview-status {
    justify-content: center;
  }

  .preview-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-2);
    width: 100%;
  }

  .preview-controls #btn-quick-copy {
    grid-column: 1 / 2;
  }

  .preview-controls #btn-toggle-envelope {
    grid-column: 2 / 3;
  }

  .preview-controls #btn-trigger-celebrate {
    grid-column: 1 / -1;
  }

  .preview-controls .btn {
    width: 100%;
    justify-content: center;
  }
}

/* Stage Container */
.preview-stage {
  position: relative;
  min-height: 580px;
  background-color: var(--bg-canvas);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-xl);
  padding: var(--sp-6);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);
}

@media (max-width: 640px) {
  .preview-stage {
    min-height: 460px;
    padding: var(--sp-3);
    border-radius: var(--radius-lg);
  }

  .envelope-wrapper {
    max-width: 100%;
  }

  .envelope-body {
    min-height: 440px !important;
    padding: var(--sp-6) var(--sp-4) !important;
  }

  .greeting-card {
    min-height: 440px !important;
    padding: var(--sp-6) var(--sp-4) !important;
  }

  .card-message-block {
    max-width: 100% !important;
  }

  .card-event-block {
    max-width: 100% !important;
  }
}

.confetti-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 200;
}

/* ==========================================================================
   Amplop Interaktif & Transisi Kartu
   ========================================================================== */
.envelope-wrapper {
  position: relative;
  width: 100%;
  max-width: 480px;
  perspective: 1000px;
}

/* Envelope Outer Body */
.envelope-body {
  position: absolute;
  inset: 0;
  z-index: 20;
  background: var(--envelope-outer);
  border-radius: var(--radius-md);
  border: 1px solid var(--envelope-crease);
  box-shadow: var(--shadow-xl);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--sp-8) var(--sp-6);
  text-align: center;
  transition: opacity 300ms ease, transform 300ms ease;
  min-height: 520px;
}

.envelope-wrapper.is-opened .envelope-body {
  opacity: 0;
  pointer-events: none;
  transform: translateY(30px) scale(0.95);
}

.envelope-flap {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 140px;
  background: var(--envelope-inner);
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  border-bottom: 2px solid var(--envelope-crease);
}

.envelope-pocket {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 220px;
  background: var(--envelope-outer);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  border-top: 1px solid var(--envelope-crease);
}

.envelope-label {
  position: relative;
  z-index: 25;
  background: #ffffff;
  padding: var(--sp-4) var(--sp-6);
  border-radius: var(--radius-sm);
  border: 1px solid var(--envelope-crease);
  box-shadow: var(--shadow-md);
  max-width: 320px;
  width: 100%;
  margin-top: 100px;
}

.envelope-to-label {
  display: block;
  font-size: 0.75rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 2px;
}

.envelope-recipient-display {
  display: block;
  font-family: var(--font-serif-display);
  font-size: 1.25rem;
  font-weight: 700;
  color: #1e293b;
}

/* Wax Seal Button (A11y Touch Target 48px) */
.envelope-seal {
  position: relative;
  z-index: 30;
  margin-top: var(--sp-6);
  min-width: 130px;
  min-height: 48px;
  padding: var(--sp-2) var(--sp-4);
  background: var(--seal-color);
  color: #ffffff;
  border: 2px solid #ffffff;
  border-radius: 9999px;
  box-shadow: 0 4px 12px var(--seal-shadow);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  font-family: var(--font-ui);
  font-size: 0.875rem;
  font-weight: 700;
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.envelope-seal:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 16px var(--seal-shadow);
}

.envelope-seal:active {
  transform: scale(0.98);
}

.seal-icon {
  font-size: 0.9375rem;
}

/* ==========================================================================
   The Greeting Card Component (Fully Detailed & Craftsmanship)
   ========================================================================== */
.greeting-card {
  position: relative;
  z-index: 10;
  width: 100%;
  min-height: 520px;
  background-color: #ffffff;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-xl);
  padding: var(--sp-8);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  transition: all 250ms ease;
  transform: translateY(0);
}

.card-ornament {
  position: absolute;
  width: 32px;
  height: 32px;
  border: 2px solid currentColor;
  opacity: 0.35;
  pointer-events: none;
}

.card-ornament-tl { top: 12px; left: 12px; border-right: none; border-bottom: none; }
.card-ornament-tr { top: 12px; right: 12px; border-left: none; border-bottom: none; }
.card-ornament-bl { bottom: 12px; left: 12px; border-right: none; border-top: none; }
.card-ornament-br { bottom: 12px; right: 12px; border-left: none; border-top: none; }

.card-content-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  height: 100%;
}

.card-header-block {
  margin-bottom: var(--sp-6);
}

.card-emblem {
  font-size: 1.25rem;
  margin-bottom: var(--sp-1);
}

.card-salutation-text {
  font-size: 0.875rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: var(--sp-1);
}

.card-title-text {
  font-size: clamp(1.75rem, 2.5vw + 1rem, 2.35rem);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: var(--sp-3);
}

.card-divider-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  margin: 0 auto;
  width: 120px;
}

.card-divider-line::before,
.card-divider-line::after {
  content: "";
  flex: 1;
  height: 1px;
  background-color: currentColor;
  opacity: 0.4;
}

.divider-gem {
  font-size: 0.75rem;
}

.card-recipient-block {
  margin-bottom: var(--sp-6);
}

.card-honor-prefix {
  font-size: 0.875rem;
  font-style: italic;
  opacity: 0.85;
  margin-bottom: var(--sp-1);
}

.card-recipient-name {
  font-size: clamp(1.85rem, 3vw + 1rem, 2.65rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin-bottom: var(--sp-2);
}

.card-milestone-text {
  font-size: 0.9375rem;
  font-weight: 600;
  padding: 2px 12px;
  border-radius: var(--radius-sm);
  display: inline-block;
}

.card-message-block {
  max-width: 400px;
  margin: 0 auto var(--sp-6);
}

.card-message-text {
  font-size: 1rem;
  line-height: 1.6;
  white-space: pre-line;
}

.card-event-block {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  padding: var(--sp-3) var(--sp-4);
  border-radius: var(--radius-md);
  margin-bottom: var(--sp-4);
  font-size: 0.875rem;
  max-width: 360px;
  width: 100%;
}

.card-event-block.hidden {
  display: none;
}

.event-meta-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
}

.card-rsvp-text {
  font-size: 0.8125rem;
  font-style: italic;
  opacity: 0.85;
  margin-bottom: var(--sp-6);
}

.card-footer-block {
  width: 100%;
  margin-top: auto;
}

.card-divider-subtle {
  width: 60px;
  height: 1px;
  background-color: currentColor;
  opacity: 0.3;
  margin: 0 auto var(--sp-3);
}

.card-sender-text {
  font-size: 0.875rem;
  font-weight: 600;
}

/* ==========================================================================
   Individual Template Aesthetics (Applied to .greeting-card)
   ========================================================================== */

/* 0. Signature Theme: Ultah Echa (Sahabat & Sweet Celebration) */
.greeting-card.theme-ultah-echa {
  background: linear-gradient(145deg, #ffffff 0%, #fff5f6 50%, #fff0f3 100%);
  color: #374151;
  border-color: #fda4af;
  box-shadow: 0 15px 35px -5px rgba(244, 63, 94, 0.15), 0 0 0 1px rgba(253, 164, 175, 0.4);
}
.theme-ultah-echa .card-ornament {
  border-color: #f43f5e;
  opacity: 0.6;
}
.theme-ultah-echa .card-salutation-text {
  color: #e11d48;
  font-family: 'Dancing Script', cursive;
  font-size: 1.35rem;
}
.theme-ultah-echa .divider-gem {
  color: #f59e0b;
}
.theme-ultah-echa .card-title-text,
.theme-ultah-echa .card-recipient-name {
  color: #e11d48;
}
.theme-ultah-echa .card-milestone-text {
  background-color: #ffe4e6;
  color: #be123c;
  border: 1px solid #fecdd3;
}
.theme-ultah-echa .card-message-text {
  color: #4b5563;
}
.theme-ultah-echa .card-event-block {
  background-color: rgba(255, 255, 255, 0.9);
  border: 1px solid #fecdd3;
  color: #374151;
}
.theme-ultah-echa .card-rsvp-text {
  color: #be123c;
}
.theme-ultah-echa .card-sender-text {
  color: #e11d48;
  font-family: 'Dancing Script', cursive;
  font-size: 1.25rem;
}


/* 1. Ultah Ceria (Pesta Emas) */
.greeting-card.theme-ultah-ceria {
  background: #fffdf5;
  color: #451a03;
  border-color: #fde68a;
}
.theme-ultah-ceria .card-title-text,
.theme-ultah-ceria .card-recipient-name {
  color: #b45309;
}
.theme-ultah-ceria .card-milestone-text {
  background-color: #fef3c7;
  color: #92400e;
}
.theme-ultah-ceria .card-event-block {
  background-color: #fffbeb;
  border: 1px solid #fde68a;
}

/* 2. Ultah Elegan Noir & Gold */
.greeting-card.theme-ultah-elegan {
  background: #0f172a;
  color: #f8fafc;
  border-color: #d4af37;
  box-shadow: 0 20px 30px -5px rgba(0, 0, 0, 0.5);
}
.theme-ultah-elegan .card-ornament {
  color: #e2b04a;
}
.theme-ultah-elegan .card-salutation-text,
.theme-ultah-elegan .divider-gem,
.theme-ultah-elegan .card-title-text,
.theme-ultah-elegan .card-recipient-name {
  color: #e2b04a;
}
.theme-ultah-elegan .card-milestone-text {
  background-color: rgba(226, 176, 74, 0.15);
  color: #f59e0b;
  border: 1px solid rgba(226, 176, 74, 0.4);
}
.theme-ultah-elegan .card-message-text {
  color: #e2e8f0;
}
.theme-ultah-elegan .card-event-block {
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(226, 176, 74, 0.3);
}

/* 3. Ultah Pastel Rose */
.greeting-card.theme-ultah-pastel {
  background: #fff5f7;
  color: #4c0519;
  border-color: #fbcfe8;
}
.theme-ultah-pastel .card-title-text,
.theme-ultah-pastel .card-recipient-name {
  color: #be123c;
}
.theme-ultah-pastel .card-milestone-text {
  background-color: #ffe4e6;
  color: #9f1239;
}
.theme-ultah-pastel .card-event-block {
  background-color: #fff1f2;
  border: 1px solid #fecdd3;
}

/* 4. Anniv Romantis Velvet & Champagne */
.greeting-card.theme-anniv-romantis {
  background: #4c0519;
  color: #fff1f2;
  border-color: #fbbf24;
}
.theme-anniv-romantis .card-ornament,
.theme-anniv-romantis .divider-gem,
.theme-anniv-romantis .card-salutation-text {
  color: #fde68a;
}
.theme-anniv-romantis .card-title-text,
.theme-anniv-romantis .card-recipient-name {
  color: #fef08a;
}
.theme-anniv-romantis .card-milestone-text {
  background-color: rgba(254, 240, 138, 0.15);
  color: #fef08a;
  border: 1px solid rgba(254, 240, 138, 0.3);
}
.theme-anniv-romantis .card-event-block {
  background-color: rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(254, 240, 138, 0.25);
}

/* 5. Anniv Botanical Sage */
.greeting-card.theme-anniv-botanical {
  background: #fbfdfc;
  color: #14532d;
  border-color: #86efac;
}
.theme-anniv-botanical .card-title-text,
.theme-anniv-botanical .card-recipient-name {
  color: #166534;
}
.theme-anniv-botanical .card-milestone-text {
  background-color: #dcfce7;
  color: #14532d;
}
.theme-anniv-botanical .card-event-block {
  background-color: #f0fdf4;
  border: 1px solid #bbf7d0;
}

/* 6. Anniv Celestial Sapphire */
.greeting-card.theme-anniv-celestial {
  background: #020617;
  color: #f8fafc;
  border-color: #38bdf8;
  box-shadow: 0 20px 30px -5px rgba(2, 6, 23, 0.8);
}
.theme-anniv-celestial .card-ornament,
.theme-anniv-celestial .divider-gem {
  color: #38bdf8;
}
.theme-anniv-celestial .card-title-text,
.theme-anniv-celestial .card-recipient-name {
  color: #7dd3fc;
}
.theme-anniv-celestial .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.15);
  color: #bae6fd;
  border: 1px solid rgba(56, 189, 248, 0.3);
}
.theme-anniv-celestial .card-event-block {
  background-color: rgba(30, 41, 59, 0.5);
  border: 1px solid rgba(56, 189, 248, 0.3);
}

/* 7. Royal Emerald & Liquid Gold */
.greeting-card.theme-royal-emerald {
  background: linear-gradient(145deg, #052e16 0%, #064e3b 50%, #022c22 100%);
  color: #f8fafc;
  border-color: #fbbf24;
  box-shadow: 0 20px 35px -5px rgba(2, 44, 34, 0.75), inset 0 0 20px rgba(251, 191, 36, 0.15);
}
.theme-royal-emerald .card-ornament {
  color: #fde68a;
}
.theme-royal-emerald .card-salutation-text,
.theme-royal-emerald .divider-gem,
.theme-royal-emerald .card-title-text,
.theme-royal-emerald .card-recipient-name {
  color: #fde047;
  text-shadow: 0 2px 12px rgba(250, 204, 21, 0.25);
}
.theme-royal-emerald .card-milestone-text {
  background-color: rgba(251, 191, 36, 0.18);
  color: #fde68a;
  border: 1px solid rgba(251, 191, 36, 0.4);
}
.theme-royal-emerald .card-message-text {
  color: #e2e8f0;
}
.theme-royal-emerald .card-event-block {
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(251, 191, 36, 0.3);
}

/* 8. Sakura Hanami & Silk Petals */
.greeting-card.theme-sakura-blossom {
  background: linear-gradient(160deg, #fff5f7 0%, #fdf2f8 60%, #ffe4e6 100%);
  color: #4c0519;
  border-color: #f472b6;
  box-shadow: 0 20px 30px -5px rgba(244, 114, 182, 0.25);
}
.theme-sakura-blossom .card-ornament {
  color: #f472b6;
}
.theme-sakura-blossom .card-salutation-text,
.theme-sakura-blossom .divider-gem {
  color: #e11d48;
}
.theme-sakura-blossom .card-title-text,
.theme-sakura-blossom .card-recipient-name {
  color: #9f1239;
}
.theme-sakura-blossom .card-milestone-text {
  background-color: #ffe4e6;
  color: #881337;
  border: 1px solid #fecdd3;
}
.theme-sakura-blossom .card-message-text {
  color: #4c0519;
}
.theme-sakura-blossom .card-event-block {
  background-color: #fff1f2;
  border: 1px solid #fbcfe8;
}

/* 9. Wisuda Magna Cum Laude */
.greeting-card.theme-wisuda-prestise {
  background: linear-gradient(150deg, #091224 0%, #0f1d3a 50%, #172554 100%);
  color: #f8fafc;
  border-color: #d97706;
  box-shadow: 0 20px 35px -5px rgba(9, 18, 36, 0.8), inset 0 0 15px rgba(217, 119, 6, 0.2);
}
.theme-wisuda-prestise .card-ornament {
  color: #fbbf24;
}
.theme-wisuda-prestise .card-salutation-text,
.theme-wisuda-prestise .divider-gem {
  color: #f59e0b;
}
.theme-wisuda-prestise .card-title-text,
.theme-wisuda-prestise .card-recipient-name {
  color: #fbbf24;
  text-shadow: 0 2px 10px rgba(251, 191, 36, 0.25);
}
.theme-wisuda-prestise .card-milestone-text {
  background-color: rgba(245, 158, 11, 0.18);
  color: #fde68a;
  border: 1px solid rgba(245, 158, 11, 0.4);
}
.theme-wisuda-prestise .card-message-text {
  color: #e2e8f0;
}
.theme-wisuda-prestise .card-event-block {
  background-color: rgba(30, 41, 59, 0.6);
  border: 1px solid rgba(245, 158, 11, 0.35);
}

/* 10. Cosmic Aurora Borealis */
.greeting-card.theme-galaxy-aurora {
  background: linear-gradient(155deg, #070919 0%, #0d122e 50%, #15103a 100%);
  color: #f8fafc;
  border-color: #38bdf8;
  box-shadow: 0 20px 35px -5px rgba(7, 9, 25, 0.9), inset 0 0 20px rgba(56, 189, 248, 0.2);
}
.theme-galaxy-aurora .card-ornament {
  color: #38bdf8;
}
.theme-galaxy-aurora .card-salutation-text,
.theme-galaxy-aurora .divider-gem {
  color: #c084fc;
}
.theme-galaxy-aurora .card-title-text,
.theme-galaxy-aurora .card-recipient-name {
  color: #67e8f9;
  text-shadow: 0 0 14px rgba(103, 232, 249, 0.45);
}
.theme-galaxy-aurora .card-milestone-text {
  background-color: rgba(192, 132, 252, 0.16);
  color: #e9d5ff;
  border: 1px solid rgba(192, 132, 252, 0.4);
}
.theme-galaxy-aurora .card-message-text {
  color: #f1f5f9;
}
.theme-galaxy-aurora .card-event-block {
  background-color: rgba(15, 23, 42, 0.7);
  border: 1px solid rgba(56, 189, 248, 0.35);
}

/* 11. Carnival Fiesta Pop & Fireworks */
.greeting-card.theme-festive-carnival {
  background: linear-gradient(160deg, #fffbeb 0%, #fef3c7 60%, #fed7aa 100%);
  color: #431407;
  border-color: #ea580c;
  box-shadow: 0 20px 30px -5px rgba(234, 88, 12, 0.25);
}
.theme-festive-carnival .card-ornament {
  color: #ea580c;
}
.theme-festive-carnival .card-salutation-text,
.theme-festive-carnival .divider-gem {
  color: #d97706;
}
.theme-festive-carnival .card-title-text,
.theme-festive-carnival .card-recipient-name {
  color: #c2410c;
}
.theme-festive-carnival .card-milestone-text {
  background-color: #ffedd5;
  color: #9a3412;
  border: 1px solid #fdba74;
}
.theme-festive-carnival .card-message-text {
  color: #431407;
}
.theme-festive-carnival .card-event-block {
  background-color: #fff7ed;
  border: 1px solid #fed7aa;
}

/* 12. Lentera Sutra Merah & Imperial Gold */
.greeting-card.theme-oriental-lantern {
  background: linear-gradient(150deg, #4c0519 0%, #6b0c1b 50%, #881337 100%);
  color: #fff1f2;
  border-color: #facc15;
  box-shadow: 0 20px 35px -5px rgba(76, 5, 25, 0.8), inset 0 0 20px rgba(250, 204, 21, 0.2);
}
.theme-oriental-lantern .card-ornament {
  color: #fde047;
}
.theme-oriental-lantern .card-salutation-text,
.theme-oriental-lantern .divider-gem {
  color: #fde047;
}
.theme-oriental-lantern .card-title-text,
.theme-oriental-lantern .card-recipient-name {
  color: #fef08a;
  text-shadow: 0 2px 12px rgba(254, 240, 138, 0.35);
}
.theme-oriental-lantern .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.18);
  color: #fef08a;
  border: 1px solid rgba(250, 204, 21, 0.4);
}
.theme-oriental-lantern .card-message-text {
  color: #fff1f2;
}
.theme-oriental-lantern .card-event-block {
  background-color: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(250, 204, 21, 0.35);
}

/* 13. Ocean Pearl Lagoon & Sea Breeze */
.greeting-card.theme-ocean-pearl {
  background: linear-gradient(155deg, #f0fdfa 0%, #ccfbf1 50%, #e0f2fe 100%);
  color: #0f172a;
  border-color: #14b8a6;
  box-shadow: 0 20px 30px -5px rgba(20, 184, 166, 0.25);
}
.theme-ocean-pearl .card-ornament {
  color: #14b8a6;
}
.theme-ocean-pearl .card-salutation-text,
.theme-ocean-pearl .divider-gem {
  color: #0284c7;
}
.theme-ocean-pearl .card-title-text,
.theme-ocean-pearl .card-recipient-name {
  color: #0d9488;
}
.theme-ocean-pearl .card-milestone-text {
  background-color: #d1fae5;
  color: #065f46;
  border: 1px solid #99f6e4;
}
.theme-ocean-pearl .card-message-text {
  color: #134e4a;
}
.theme-ocean-pearl .card-event-block {
  background-color: rgba(255, 255, 255, 0.7);
  border: 1px solid #99f6e4;
  backdrop-filter: blur(4px);
}

/* 14. Platinum Architectural & Laser Crystal */
.greeting-card.theme-minimalist-monochrome {
  background: linear-gradient(150deg, #090a0f 0%, #12141c 50%, #1e222d 100%);
  color: #f8fafc;
  border-color: #cbd5e1;
  box-shadow: 0 20px 35px -5px rgba(0, 0, 0, 0.85), inset 0 0 15px rgba(203, 213, 225, 0.15);
}
.theme-minimalist-monochrome .card-ornament {
  color: #cbd5e1;
}
.theme-minimalist-monochrome .card-salutation-text,
.theme-minimalist-monochrome .divider-gem {
  color: #94a3b8;
  letter-spacing: 0.1em;
}
.theme-minimalist-monochrome .card-title-text,
.theme-minimalist-monochrome .card-recipient-name {
  color: #f1f5f9;
  letter-spacing: 0.03em;
}
.theme-minimalist-monochrome .card-milestone-text {
  background-color: rgba(203, 213, 225, 0.12);
  color: #e2e8f0;
  border: 1px solid rgba(203, 213, 225, 0.35);
}
.theme-minimalist-monochrome .card-message-text {
  color: #cbd5e1;
}
.theme-minimalist-monochrome .card-event-block {
  background-color: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(203, 213, 225, 0.25);
}

/* 15. Safar Oasis & Lentera Fitri */
.greeting-card.theme-lebaran-fitri {
  background: linear-gradient(150deg, #022c22 0%, #064e3b 50%, #065f46 100%);
  color: #f8fafc;
  border-color: #fde047;
  box-shadow: 0 20px 35px -5px rgba(2, 44, 34, 0.8), inset 0 0 20px rgba(253, 224, 71, 0.15);
}
.theme-lebaran-fitri .card-ornament {
  color: #fde047;
}
.theme-lebaran-fitri .card-salutation-text,
.theme-lebaran-fitri .divider-gem {
  color: #facc15;
}
.theme-lebaran-fitri .card-title-text,
.theme-lebaran-fitri .card-recipient-name {
  color: #fef08a;
  text-shadow: 0 2px 12px rgba(254, 240, 138, 0.35);
}
.theme-lebaran-fitri .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.18);
  color: #fef08a;
  border: 1px solid rgba(250, 204, 21, 0.4);
}
.theme-lebaran-fitri .card-message-text {
  color: #f0fdf4;
}
.theme-lebaran-fitri .card-event-block {
  background-color: rgba(2, 44, 34, 0.5);
  border: 1px solid rgba(250, 204, 21, 0.3);
}

/* 16. Midnight Champagne Glamour */
.greeting-card.theme-champagne-glamour {
  background: linear-gradient(155deg, #09090b 0%, #18181b 50%, #27272a 100%);
  color: #f8fafc;
  border-color: #facc15;
  box-shadow: 0 20px 35px -5px rgba(0, 0, 0, 0.9), inset 0 0 20px rgba(250, 204, 21, 0.15);
}
.theme-champagne-glamour .card-ornament {
  color: #facc15;
}
.theme-champagne-glamour .card-salutation-text,
.theme-champagne-glamour .divider-gem {
  color: #fbbf24;
}
.theme-champagne-glamour .card-title-text,
.theme-champagne-glamour .card-recipient-name {
  color: #fef08a;
  text-shadow: 0 2px 14px rgba(254, 240, 138, 0.35);
}
.theme-champagne-glamour .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.18);
  color: #fef08a;
  border: 1px solid rgba(250, 204, 21, 0.4);
}
.theme-champagne-glamour .card-message-text {
  color: #f4f4f5;
}
.theme-champagne-glamour .card-event-block {
  background-color: rgba(24, 24, 27, 0.7);
  border: 1px solid rgba(250, 204, 21, 0.35);
}

/* 17. Victorian Rose Lace & Heartbeat */
.greeting-card.theme-vintage-romantic {
  background: linear-gradient(150deg, #fffdf5 0%, #fef3c7 40%, #ffedd5 100%);
  color: #4a044e;
  border-color: #9d174d;
  box-shadow: 0 20px 30px -5px rgba(157, 23, 77, 0.25);
}
.theme-vintage-romantic .card-ornament {
  color: #9d174d;
}
.theme-vintage-romantic .card-salutation-text,
.theme-vintage-romantic .divider-gem {
  color: #b45309;
}
.theme-vintage-romantic .card-title-text,
.theme-vintage-romantic .card-recipient-name {
  color: #831843;
}
.theme-vintage-romantic .card-milestone-text {
  background-color: #fce7f3;
  color: #701a75;
  border: 1px solid #fbcfe8;
}
.theme-vintage-romantic .card-message-text {
  color: #4a044e;
}
.theme-vintage-romantic .card-event-block {
  background-color: #fff1f2;
  border: 1px solid #fbcfe8;
}

/* Template 18: Tiup Lilin Kue Tart */
.greeting-card.theme-tiup-lilin-kue {
  background: radial-gradient(circle at 50% 20%, #3d1f14 0%, #22100a 60%, #150905 100%);
  color: #fffbeb;
  border-color: #d97706;
  box-shadow: 0 10px 30px rgba(217, 119, 6, 0.2), inset 0 0 25px rgba(245, 158, 11, 0.15);
}
.theme-tiup-lilin-kue .card-ornament {
  border-color: #f59e0b;
  opacity: 0.55;
}
.theme-tiup-lilin-kue .card-salutation-text,
.theme-tiup-lilin-kue .divider-gem,
.theme-tiup-lilin-kue .card-title-text,
.theme-tiup-lilin-kue .card-recipient-name {
  color: #fef08a;
  text-shadow: 0 0 12px rgba(254, 240, 138, 0.4);
}
.theme-tiup-lilin-kue .card-milestone-text {
  background-color: rgba(245, 158, 11, 0.2);
  color: #fde047;
  border: 1px solid #d97706;
}
.theme-tiup-lilin-kue .card-message-text {
  color: #fef3c7;
}
.theme-tiup-lilin-kue .card-event-block {
  background-color: rgba(42, 23, 17, 0.85);
  border: 1px solid rgba(245, 158, 11, 0.35);
  color: #fffbeb;
}

/* Template 19: Amplop Surat Cinta */
.greeting-card.theme-amplop-surat-cinta {
  background: #fdfbf7;
  color: #4c0519;
  border-color: #fbcfe8;
  box-shadow: 0 10px 25px rgba(190, 18, 60, 0.08), inset 0 0 35px rgba(254, 226, 226, 0.5);
}
.theme-amplop-surat-cinta .card-ornament {
  border-color: #be123c;
  opacity: 0.4;
}
.theme-amplop-surat-cinta .card-salutation-text,
.theme-amplop-surat-cinta .divider-gem,
.theme-amplop-surat-cinta .card-title-text,
.theme-amplop-surat-cinta .card-recipient-name {
  color: #881337;
}
.theme-amplop-surat-cinta .card-milestone-text {
  background-color: #ffe4e6;
  color: #9f1239;
  border: 1px solid #fecdd3;
}
.theme-amplop-surat-cinta .card-message-text {
  color: #4c0519;
}
.theme-amplop-surat-cinta .card-event-block {
  background-color: #fff1f2;
  border: 1px solid #fecdd3;
  color: #4c0519;
}

/* Template 20: Golden Gate Wedding */
.greeting-card.theme-golden-gate-wedding {
  background: radial-gradient(circle at 50% 30%, #0c1a36 0%, #060e1e 70%, #03070f 100%);
  color: #f8fafc;
  border-color: #ca8a04;
  box-shadow: 0 10px 35px rgba(234, 179, 8, 0.22), inset 0 0 30px rgba(250, 204, 21, 0.15);
}
.theme-golden-gate-wedding .card-ornament {
  border-color: #eab308;
  opacity: 0.6;
}
.theme-golden-gate-wedding .card-salutation-text,
.theme-golden-gate-wedding .divider-gem,
.theme-golden-gate-wedding .card-title-text,
.theme-golden-gate-wedding .card-recipient-name {
  color: #facc15;
  text-shadow: 0 0 12px rgba(250, 204, 21, 0.4);
}
.theme-golden-gate-wedding .card-milestone-text {
  background-color: rgba(234, 179, 8, 0.2);
  color: #fef08a;
  border: 1px solid #ca8a04;
}
.theme-golden-gate-wedding .card-message-text {
  color: #f1f5f9;
}
.theme-golden-gate-wedding .card-event-block {
  background-color: rgba(9, 20, 40, 0.9);
  border: 1px solid rgba(234, 179, 8, 0.4);
  color: #f8fafc;
}

/* Template 21: Pesta Balon Udara */
.greeting-card.theme-pesta-balon-udara {
  background: linear-gradient(180deg, #1e1133 0%, #2f184b 45%, #6b21a8 80%, #fb923c 100%);
  color: #fdf4ff;
  border-color: #c084fc;
  box-shadow: 0 10px 30px rgba(107, 33, 168, 0.25);
}
.theme-pesta-balon-udara .card-ornament {
  border-color: #f0abfc;
  opacity: 0.45;
}
.theme-pesta-balon-udara .card-salutation-text,
.theme-pesta-balon-udara .divider-gem,
.theme-pesta-balon-udara .card-title-text,
.theme-pesta-balon-udara .card-recipient-name {
  color: #fed7aa;
  text-shadow: 0 0 10px rgba(254, 215, 170, 0.35);
}
.theme-pesta-balon-udara .card-milestone-text {
  background-color: rgba(192, 132, 252, 0.25);
  color: #fdf4ff;
  border: 1px solid #c084fc;
}
.theme-pesta-balon-udara .card-message-text {
  color: #fdf4ff;
}
.theme-pesta-balon-udara .card-event-block {
  background-color: rgba(36, 20, 58, 0.85);
  border: 1px solid rgba(192, 132, 252, 0.35);
  color: #fdf4ff;
}

/* Template 22: Lilin Aroma Spa */
.greeting-card.theme-lilin-aroma-spa {
  background: radial-gradient(circle at 50% 50%, #3a2a22 0%, #231914 65%, #140e0b 100%);
  color: #fafaf9;
  border-color: #a8a29e;
  box-shadow: 0 10px 28px rgba(35, 25, 20, 0.3), inset 0 0 25px rgba(234, 179, 8, 0.1);
}
.theme-lilin-aroma-spa .card-ornament {
  border-color: #a8a29e;
  opacity: 0.45;
}
.theme-lilin-aroma-spa .card-salutation-text,
.theme-lilin-aroma-spa .divider-gem,
.theme-lilin-aroma-spa .card-title-text,
.theme-lilin-aroma-spa .card-recipient-name {
  color: #fef08a;
  text-shadow: 0 0 10px rgba(254, 240, 138, 0.3);
}
.theme-lilin-aroma-spa .card-milestone-text {
  background-color: rgba(101, 163, 13, 0.25);
  color: #bef264;
  border: 1px solid #84cc16;
}
.theme-lilin-aroma-spa .card-message-text {
  color: #e7e5e4;
}
.theme-lilin-aroma-spa .card-event-block {
  background-color: rgba(41, 33, 28, 0.9);
  border: 1px solid rgba(168, 162, 158, 0.3);
  color: #fafaf9;
}

/* Template 23: Songket Emas Sriwijaya */
.greeting-card.theme-amplop-bordir-songket {
  background: radial-gradient(circle at 50% 30%, #5c071a 0%, #3b020e 65%, #240108 100%);
  color: #fff1f2;
  border-color: #eab308;
  box-shadow: 0 10px 30px rgba(234, 179, 8, 0.25), inset 0 0 30px rgba(217, 119, 6, 0.2);
}
.theme-amplop-bordir-songket .card-ornament {
  border-color: #facc15;
  opacity: 0.6;
}
.theme-amplop-bordir-songket .card-salutation-text,
.theme-amplop-bordir-songket .divider-gem,
.theme-amplop-bordir-songket .card-title-text,
.theme-amplop-bordir-songket .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 12px rgba(253, 224, 71, 0.4);
}
.theme-amplop-bordir-songket .card-milestone-text {
  background-color: rgba(234, 179, 8, 0.25);
  color: #fef08a;
  border: 1px solid #d97706;
}
.theme-amplop-bordir-songket .card-message-text {
  color: #fef2f2;
}
.theme-amplop-bordir-songket .card-event-block {
  background-color: rgba(74, 4, 20, 0.9);
  border: 1px solid rgba(234, 179, 8, 0.45);
  color: #fff1f2;
}

/* Template 24: Sparkler Emas Pijar 360 */
.greeting-card.theme-kembang-api-milestone {
  background: radial-gradient(circle at 50% 20%, #171d2b 0%, #0b0f19 60%, #05070c 100%);
  color: #f8fafc;
  border-color: #f59e0b;
  box-shadow: 0 10px 30px rgba(245, 158, 11, 0.2), inset 0 0 25px rgba(234, 88, 12, 0.15);
}
.theme-kembang-api-milestone .card-ornament {
  border-color: #facc15;
  opacity: 0.55;
}
.theme-kembang-api-milestone .card-salutation-text,
.theme-kembang-api-milestone .divider-gem,
.theme-kembang-api-milestone .card-title-text,
.theme-kembang-api-milestone .card-recipient-name {
  color: #facc15;
  text-shadow: 0 0 14px rgba(250, 204, 21, 0.45);
}
.theme-kembang-api-milestone .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.25);
  color: #fed7aa;
  border: 1px solid #ea580c;
}
.theme-kembang-api-milestone .card-message-text {
  color: #f8fafc;
}
.theme-kembang-api-milestone .card-event-block {
  background-color: rgba(11, 15, 25, 0.92);
  border: 1px solid rgba(245, 158, 11, 0.35);
  color: #f8fafc;
}

/* Template 25: Lempar Topi Toga */
.greeting-card.theme-wisuda-topi-toga {
  background: radial-gradient(circle at 50% 20%, #152747 0%, #0c192c 60%, #050b14 100%);
  color: #f8fafc;
  border-color: #eab308;
  box-shadow: 0 10px 30px rgba(234, 179, 8, 0.22), inset 0 0 25px rgba(30, 58, 138, 0.3);
}
.theme-wisuda-topi-toga .card-ornament {
  border-color: #fbbf24;
  opacity: 0.55;
}
.theme-wisuda-topi-toga .card-salutation-text,
.theme-wisuda-topi-toga .divider-gem,
.theme-wisuda-topi-toga .card-title-text,
.theme-wisuda-topi-toga .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 12px rgba(253, 224, 71, 0.35);
}
.theme-wisuda-topi-toga .card-milestone-text {
  background-color: rgba(234, 179, 8, 0.22);
  color: #fef08a;
  border: 1px solid #eab308;
}
.theme-wisuda-topi-toga .card-message-text {
  color: #f8fafc;
}
.theme-wisuda-topi-toga .card-event-block {
  background-color: rgba(12, 25, 44, 0.9);
  border: 1px solid rgba(234, 179, 8, 0.35);
  color: #f8fafc;
}

/* Template 26: Nebula Kristal */
.greeting-card.theme-petik-bintang-nebula {
  background: radial-gradient(circle at 40% 30%, #201138 0%, #120b22 60%, #07040d 100%);
  color: #f8fafc;
  border-color: #818cf8;
  box-shadow: 0 10px 30px rgba(129, 140, 248, 0.2), inset 0 0 30px rgba(192, 132, 252, 0.15);
}
.theme-petik-bintang-nebula .card-ornament {
  border-color: #a78bfa;
  opacity: 0.5;
}
.theme-petik-bintang-nebula .card-salutation-text,
.theme-petik-bintang-nebula .divider-gem,
.theme-petik-bintang-nebula .card-title-text,
.theme-petik-bintang-nebula .card-recipient-name {
  color: #67e8f9;
  text-shadow: 0 0 12px rgba(103, 232, 249, 0.45);
}
.theme-petik-bintang-nebula .card-milestone-text {
  background-color: rgba(192, 132, 252, 0.25);
  color: #e0e7ff;
  border: 1px solid #818cf8;
}
.theme-petik-bintang-nebula .card-message-text {
  color: #f8fafc;
}
.theme-petik-bintang-nebula .card-event-block {
  background-color: rgba(18, 11, 34, 0.9);
  border: 1px solid rgba(129, 140, 248, 0.35);
  color: #f8fafc;
}

/* Template 27: Kori Agung Bali */
.greeting-card.theme-undangan-pintu-ukir-bali {
  background: radial-gradient(circle at 50% 25%, #2a1f18 0%, #1c1917 65%, #0f0d0c 100%);
  color: #fafaf9;
  border-color: #eab308;
  box-shadow: 0 10px 30px rgba(234, 179, 8, 0.22), inset 0 0 30px rgba(217, 119, 6, 0.18);
}
.theme-undangan-pintu-ukir-bali .card-ornament {
  border-color: #facc15;
  opacity: 0.6;
}
.theme-undangan-pintu-ukir-bali .card-salutation-text,
.theme-undangan-pintu-ukir-bali .divider-gem,
.theme-undangan-pintu-ukir-bali .card-title-text,
.theme-undangan-pintu-ukir-bali .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 12px rgba(253, 224, 71, 0.4);
}
.theme-undangan-pintu-ukir-bali .card-milestone-text {
  background-color: rgba(234, 179, 8, 0.25);
  color: #fef08a;
  border: 1px solid #ca8a04;
}
.theme-undangan-pintu-ukir-bali .card-message-text {
  color: #f5f5f4;
}
.theme-undangan-pintu-ukir-bali .card-event-block {
  background-color: rgba(28, 25, 23, 0.92);
  border: 1px solid rgba(234, 179, 8, 0.4);
  color: #fafaf9;
}

/* Template 28: Panggung Tirai Merah Broadway */
.greeting-card.theme-tirai-teater-broadway {
  background: radial-gradient(circle at 50% 20%, #4a040e 0%, #2b0207 60%, #150003 100%);
  color: #fef08a;
  border-color: #facc15;
  box-shadow: 0 16px 45px rgba(43, 2, 7, 0.55), inset 0 0 45px rgba(250, 204, 21, 0.18);
}
.theme-tirai-teater-broadway .card-ornament {
  border-color: #fde047;
  opacity: 0.7;
}
.theme-tirai-teater-broadway .card-salutation-text,
.theme-tirai-teater-broadway .divider-gem,
.theme-tirai-teater-broadway .card-title-text,
.theme-tirai-teater-broadway .card-recipient-name {
  color: #fef08a;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.65), 0 2px 4px rgba(0, 0, 0, 0.8);
}
.theme-tirai-teater-broadway .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.22);
  color: #fef08a;
  border: 1px solid #facc15;
}
.theme-tirai-teater-broadway .card-message-text {
  color: #fff1f2;
}
.theme-tirai-teater-broadway .card-event-block {
  background-color: rgba(35, 1, 6, 0.92);
  border: 1px solid #facc15;
  color: #fef08a;
}

/* Template 29: Sunset Pesiar Tropis & Lumba-Lumba */
.greeting-card.theme-pesiar-sunset-ocean {
  background: linear-gradient(180deg, #fdba74 0%, #fb7185 24%, #0d9488 62%, #042f2e 100%);
  color: #f0fdfa;
  border-color: #2dd4bf;
  box-shadow: 0 16px 45px rgba(13, 148, 136, 0.4), inset 0 0 35px rgba(253, 186, 116, 0.25);
}
.theme-pesiar-sunset-ocean .card-ornament {
  border-color: #fef08a;
  opacity: 0.8;
}
.theme-pesiar-sunset-ocean .card-salutation-text,
.theme-pesiar-sunset-ocean .divider-gem,
.theme-pesiar-sunset-ocean .card-title-text,
.theme-pesiar-sunset-ocean .card-recipient-name {
  color: #ffffff;
  text-shadow: 0 2px 12px rgba(4, 47, 46, 0.85);
}
.theme-pesiar-sunset-ocean .card-milestone-text {
  background-color: rgba(4, 47, 46, 0.6);
  color: #fef08a;
  border: 1px solid #2dd4bf;
}
.theme-pesiar-sunset-ocean .card-message-text {
  color: #f0fdfa;
  text-shadow: 0 1px 4px rgba(4, 47, 46, 0.6);
}
.theme-pesiar-sunset-ocean .card-event-block {
  background-color: rgba(4, 47, 46, 0.88);
  border: 1px solid #2dd4bf;
  color: #ccfbf1;
}

/* Template 30: Lembah Kunang-Kunang Berpendar */
.greeting-card.theme-taman-kunang-kunang {
  background: radial-gradient(circle at 50% 30%, #064e3b 0%, #052e23 50%, #021a13 100%);
  color: #fefce8;
  border-color: #84cc16;
  box-shadow: 0 16px 45px rgba(5, 46, 35, 0.55), inset 0 0 45px rgba(132, 204, 22, 0.2);
}
.theme-taman-kunang-kunang .card-ornament {
  border-color: #bef264;
  opacity: 0.7;
}
.theme-taman-kunang-kunang .card-salutation-text,
.theme-taman-kunang-kunang .divider-gem,
.theme-taman-kunang-kunang .card-title-text,
.theme-taman-kunang-kunang .card-recipient-name {
  color: #bef264;
  text-shadow: 0 0 15px rgba(190, 242, 100, 0.7), 0 2px 4px rgba(0, 0, 0, 0.7);
}
.theme-taman-kunang-kunang .card-milestone-text {
  background-color: rgba(132, 204, 22, 0.22);
  color: #bef264;
  border: 1px solid #84cc16;
}
.theme-taman-kunang-kunang .card-message-text {
  color: #f7fee7;
}
.theme-taman-kunang-kunang .card-event-block {
  background-color: rgba(2, 26, 19, 0.92);
  border: 1px solid #65a30d;
  color: #d9f99d;
}

/* Template 31: Matsuri Hanabi & Lentera Festival */
.greeting-card.theme-kincir-festival-sakura {
  background: radial-gradient(circle at 50% 25%, #1e1b4b 0%, #0f172a 60%, #3b071b 100%);
  color: #fff1f2;
  border-color: #f43f5e;
  box-shadow: 0 16px 45px rgba(244, 63, 94, 0.35), inset 0 0 40px rgba(244, 63, 94, 0.2);
}
.theme-kincir-festival-sakura .card-ornament {
  border-color: #f43f5e;
  opacity: 0.7;
}
.theme-kincir-festival-sakura .card-salutation-text,
.theme-kincir-festival-sakura .divider-gem,
.theme-kincir-festival-sakura .card-title-text,
.theme-kincir-festival-sakura .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 15px rgba(244, 63, 94, 0.75), 0 2px 4px rgba(0, 0, 0, 0.7);
}
.theme-kincir-festival-sakura .card-milestone-text {
  background-color: rgba(244, 63, 94, 0.25);
  color: #fef08a;
  border: 1px solid #f43f5e;
}
.theme-kincir-festival-sakura .card-message-text {
  color: #ffe4e6;
}
.theme-kincir-festival-sakura .card-event-block {
  background-color: rgba(15, 23, 42, 0.92);
  border: 1px solid #fb7185;
  color: #fef08a;
}

/* Template 32: Gemerlap Bola Disko 80s */
.greeting-card.theme-disko-retro-neon {
  background: radial-gradient(circle at 50% 20%, #2e1065 0%, #15002b 60%, #090014 100%);
  color: #fdf4ff;
  border-color: #06b6d4;
  box-shadow: 0 16px 45px rgba(6, 182, 212, 0.4), inset 0 0 45px rgba(236, 72, 153, 0.25);
}
.theme-disko-retro-neon .card-ornament {
  border-color: #ec4899;
  opacity: 0.8;
}
.theme-disko-retro-neon .card-salutation-text,
.theme-disko-retro-neon .divider-gem,
.theme-disko-retro-neon .card-title-text,
.theme-disko-retro-neon .card-recipient-name {
  color: #22d3ee;
  text-shadow: 0 0 14px #06b6d4, 0 0 28px #ec4899;
}
.theme-disko-retro-neon .card-milestone-text {
  background-color: rgba(236, 72, 153, 0.28);
  color: #fdf4ff;
  border: 1px solid #ec4899;
}
.theme-disko-retro-neon .card-message-text {
  color: #fae8ff;
}
.theme-disko-retro-neon .card-event-block {
  background-color: rgba(15, 2, 33, 0.92);
  border: 1px solid #a855f7;
  color: #67e8f9;
}

/* Template 33: Jawa Keraton Gunungan Prada */
.greeting-card.theme-jawa-keraton-gunungan {
  background: radial-gradient(circle at 50% 25%, #3a2012 0%, #221208 55%, #120904 100%);
  color: #fefce8;
  border-color: #eab308;
  box-shadow: 0 16px 45px rgba(34, 18, 8, 0.7), inset 0 0 40px rgba(234, 179, 8, 0.22);
}
.theme-jawa-keraton-gunungan .card-ornament {
  border-color: #facc15;
  opacity: 0.7;
}
.theme-jawa-keraton-gunungan .card-salutation-text,
.theme-jawa-keraton-gunungan .divider-gem,
.theme-jawa-keraton-gunungan .card-title-text,
.theme-jawa-keraton-gunungan .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(234, 179, 8, 0.55), 0 2px 4px rgba(0, 0, 0, 0.8);
}
.theme-jawa-keraton-gunungan .card-milestone-text {
  background-color: rgba(234, 179, 8, 0.22);
  color: #fef08a;
  border: 1px solid #eab308;
}
.theme-jawa-keraton-gunungan .card-message-text {
  color: #fef9c3;
}
.theme-jawa-keraton-gunungan .card-event-block {
  background-color: rgba(24, 12, 5, 0.92);
  border: 1px solid #ca8a04;
  color: #fef08a;
}

/* Template 34: Kastil Neuschwanstein Fairytale */
.greeting-card.theme-kastil-neuschwanstein {
  background: radial-gradient(circle at 50% 25%, #312e81 0%, #1e1b4b 55%, #3b0764 100%);
  color: #fdf4ff;
  border-color: #f472b6;
  box-shadow: 0 16px 45px rgba(59, 7, 100, 0.5), inset 0 0 40px rgba(244, 114, 182, 0.22);
}
.theme-kastil-neuschwanstein .card-ornament {
  border-color: #f472b6;
  opacity: 0.75;
}
.theme-kastil-neuschwanstein .card-salutation-text,
.theme-kastil-neuschwanstein .divider-gem,
.theme-kastil-neuschwanstein .card-title-text,
.theme-kastil-neuschwanstein .card-recipient-name {
  color: #fef08a;
  text-shadow: 0 0 16px rgba(244, 114, 182, 0.7), 0 2px 4px rgba(0, 0, 0, 0.7);
}
.theme-kastil-neuschwanstein .card-milestone-text {
  background-color: rgba(244, 114, 182, 0.25);
  color: #fdf4ff;
  border: 1px solid #f472b6;
}
.theme-kastil-neuschwanstein .card-message-text {
  color: #f5f3ff;
}
.theme-kastil-neuschwanstein .card-event-block {
  background-color: rgba(30, 27, 75, 0.92);
  border: 1px solid #c084fc;
  color: #fde047;
}

/* Template 35: Winter Wonderland Kristal Es */
.greeting-card.theme-salju-wonderland {
  background: radial-gradient(circle at 50% 25%, #075985 0%, #082f49 55%, #02131d 100%);
  color: #f0f9ff;
  border-color: #38bdf8;
  box-shadow: 0 16px 45px rgba(8, 47, 73, 0.6), inset 0 0 45px rgba(56, 189, 248, 0.28);
}
.theme-salju-wonderland .card-ornament {
  border-color: #7dd3fc;
  opacity: 0.8;
}
.theme-salju-wonderland .card-salutation-text,
.theme-salju-wonderland .divider-gem,
.theme-salju-wonderland .card-title-text,
.theme-salju-wonderland .card-recipient-name {
  color: #e0f2fe;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.8), 0 2px 4px rgba(0, 0, 0, 0.8);
}
.theme-salju-wonderland .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.24);
  color: #e0f2fe;
  border: 1px solid #38bdf8;
}
.theme-salju-wonderland .card-message-text {
  color: #f0fdf4;
}
.theme-salju-wonderland .card-event-block {
  background-color: rgba(2, 19, 29, 0.92);
  border: 1px solid #38bdf8;
  color: #7dd3fc;
}

/* Template 36: Taman Flora Peony & Kupu-Kupu */
.greeting-card.theme-taman-kupu-kupu-flora {
  background: linear-gradient(180deg, #fff5f7 0%, #fdf2f8 45%, #f0fdf4 100%);
  color: #1e293b;
  border-color: #f472b6;
  box-shadow: 0 16px 45px rgba(244, 114, 182, 0.25), inset 0 0 35px rgba(244, 114, 182, 0.12);
}
.theme-taman-kupu-kupu-flora .card-ornament {
  border-color: #f472b6;
  opacity: 0.7;
}
.theme-taman-kupu-kupu-flora .card-salutation-text,
.theme-taman-kupu-kupu-flora .divider-gem,
.theme-taman-kupu-kupu-flora .card-title-text,
.theme-taman-kupu-kupu-flora .card-recipient-name {
  color: #9d174d;
}
.theme-taman-kupu-kupu-flora .card-milestone-text {
  background-color: rgba(244, 114, 182, 0.18);
  color: #9d174d;
  border: 1px solid #f472b6;
}
.theme-taman-kupu-kupu-flora .card-message-text {
  color: #475569;
}
.theme-taman-kupu-kupu-flora .card-event-block {
  background-color: rgba(255, 255, 255, 0.92);
  border: 1px solid #f472b6;
  color: #831843;
}

/* Template 37: 1001 Malam Permadani & Lampu Ajaib */
.greeting-card.theme-piramida-arabian-nights {
  background: radial-gradient(circle at 50% 25%, #172554 0%, #0c152e 55%, #020713 100%);
  color: #f8fafc;
  border-color: #facc15;
  box-shadow: 0 16px 45px rgba(2, 7, 19, 0.7), inset 0 0 45px rgba(250, 204, 21, 0.22);
}
.theme-piramida-arabian-nights .card-ornament {
  border-color: #facc15;
  opacity: 0.75;
}
.theme-piramida-arabian-nights .card-salutation-text,
.theme-piramida-arabian-nights .divider-gem,
.theme-piramida-arabian-nights .card-title-text,
.theme-piramida-arabian-nights .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.65), 0 2px 4px rgba(0, 0, 0, 0.8);
}
.theme-piramida-arabian-nights .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.22);
  color: #fef08a;
  border: 1px solid #facc15;
}
.theme-piramida-arabian-nights .card-message-text {
  color: #f1f5f9;
}
.theme-piramida-arabian-nights .card-event-block {
  background-color: rgba(2, 8, 22, 0.92);
  border: 1px solid #eab308;
  color: #fef08a;
}

/* Template 38: Cyber Arcade & Pixel 8-Bit */
.greeting-card.theme-cyberpunk-arcade-pixel {
  background: radial-gradient(circle at 50% 20%, #150f2e 0%, #0a0818 60%, #04020a 100%);
  color: #f8fafc;
  border-color: #22d3ee;
  box-shadow: 0 16px 45px rgba(34, 211, 238, 0.35), inset 0 0 35px rgba(244, 63, 94, 0.2);
}
.theme-cyberpunk-arcade-pixel .card-ornament {
  border-color: #f43f5e;
  opacity: 0.85;
}
.theme-cyberpunk-arcade-pixel .card-salutation-text,
.theme-cyberpunk-arcade-pixel .divider-gem,
.theme-cyberpunk-arcade-pixel .card-title-text,
.theme-cyberpunk-arcade-pixel .card-recipient-name {
  color: #22d3ee;
  text-shadow: 0 0 14px #22d3ee, 0 0 24px #f43f5e;
}
.theme-cyberpunk-arcade-pixel .card-milestone-text {
  background-color: rgba(244, 63, 94, 0.25);
  color: #fde047;
  border: 1px solid #f43f5e;
}
.theme-cyberpunk-arcade-pixel .card-message-text {
  color: #f1f5f9;
}
.theme-cyberpunk-arcade-pixel .card-event-block {
  background-color: rgba(10, 8, 24, 0.94);
  border: 1px solid #22d3ee;
  color: #67e8f9;
}

/* Template 39: Boho Chic & Safari Watercolor */
.greeting-card.theme-boho-safari-watercolor {
  background: radial-gradient(circle at 50% 15%, #fffbf5 0%, #fdf6ec 60%, #faeee0 100%);
  color: #431407;
  border-color: #ea580c;
  box-shadow: 0 16px 40px rgba(194, 65, 12, 0.15), inset 0 0 40px rgba(254, 215, 170, 0.3);
}
.theme-boho-safari-watercolor .card-ornament {
  border-color: #ea580c;
  opacity: 0.55;
}
.theme-boho-safari-watercolor .card-salutation-text,
.theme-boho-safari-watercolor .divider-gem,
.theme-boho-safari-watercolor .card-title-text,
.theme-boho-safari-watercolor .card-recipient-name {
  color: #9a3412;
}
.theme-boho-safari-watercolor .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.15);
  color: #9a3412;
  border: 1px solid #fed7aa;
}
.theme-boho-safari-watercolor .card-message-text {
  color: #431407;
}
.theme-boho-safari-watercolor .card-event-block {
  background-color: rgba(255, 255, 255, 0.92);
  border: 1px solid #fed7aa;
  color: #7c2d12;
}

/* Template 40: Vintage Comic & Superhero BOOM */
.greeting-card.theme-superhero-comic-boom {
  background: radial-gradient(circle at 50% 25%, #fffef2 0%, #fef9c3 60%, #fef08a 100%);
  color: #18181b;
  border: 3px solid #e11d48;
  box-shadow: 6px 8px 0px #18181b, 0 16px 35px rgba(225, 29, 72, 0.25);
}
.theme-superhero-comic-boom .card-ornament {
  border-color: #e11d48;
  opacity: 0.8;
}
.theme-superhero-comic-boom .card-salutation-text,
.theme-superhero-comic-boom .divider-gem,
.theme-superhero-comic-boom .card-title-text,
.theme-superhero-comic-boom .card-recipient-name {
  color: #e11d48;
  text-shadow: 2px 2px 0px #facc15;
}
.theme-superhero-comic-boom .card-milestone-text {
  background-color: #facc15;
  color: #18181b;
  font-weight: 700;
  border: 2px solid #18181b;
}
.theme-superhero-comic-boom .card-message-text {
  color: #18181b;
}
.theme-superhero-comic-boom .card-event-block {
  background-color: #ffffff;
  border: 2px solid #18181b;
  box-shadow: 3px 3px 0px #18181b;
  color: #18181b;
}

/* Template 41: Bioluminescent Deep Sea Aquarium */
.greeting-card.theme-underwater-aquarium-glow {
  background: radial-gradient(circle at 50% 20%, #032e4d 0%, #021a2d 55%, #010d17 100%);
  color: #f0fdfa;
  border-color: #2dd4bf;
  box-shadow: 0 16px 45px rgba(45, 212, 191, 0.35), inset 0 0 50px rgba(56, 189, 248, 0.2);
}
.theme-underwater-aquarium-glow .card-ornament {
  border-color: #2dd4bf;
  opacity: 0.7;
}
.theme-underwater-aquarium-glow .card-salutation-text,
.theme-underwater-aquarium-glow .divider-gem,
.theme-underwater-aquarium-glow .card-title-text,
.theme-underwater-aquarium-glow .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px #38bdf8, 0 0 28px #2dd4bf;
}
.theme-underwater-aquarium-glow .card-milestone-text {
  background-color: rgba(45, 212, 191, 0.22);
  color: #99f6e4;
  border: 1px solid #2dd4bf;
}
.theme-underwater-aquarium-glow .card-message-text {
  color: #e0f2fe;
}
.theme-underwater-aquarium-glow .card-event-block {
  background-color: rgba(2, 26, 45, 0.94);
  border: 1px solid #0d9488;
  color: #bae6fd;
}

/* Template 42: Piringan Hitam Jazz Club & Brass */
.greeting-card.theme-vinyl-jazz-noir {
  background: radial-gradient(circle at 50% 25%, #23160e 0%, #150c07 60%, #0c0704 100%);
  color: #fef3c7;
  border-color: #f59e0b;
  box-shadow: 0 16px 45px rgba(245, 158, 11, 0.25), inset 0 0 45px rgba(217, 119, 6, 0.2);
}
.theme-vinyl-jazz-noir .card-ornament {
  border-color: #f59e0b;
  opacity: 0.75;
}
.theme-vinyl-jazz-noir .card-salutation-text,
.theme-vinyl-jazz-noir .divider-gem,
.theme-vinyl-jazz-noir .card-title-text,
.theme-vinyl-jazz-noir .card-recipient-name {
  color: #fbbf24;
  text-shadow: 0 0 16px rgba(245, 158, 11, 0.6);
}
.theme-vinyl-jazz-noir .card-milestone-text {
  background-color: rgba(245, 158, 11, 0.2);
  color: #fde68a;
  border: 1px solid #f59e0b;
}
.theme-vinyl-jazz-noir .card-message-text {
  color: #fef3c7;
}
.theme-vinyl-jazz-noir .card-event-block {
  background-color: rgba(21, 12, 7, 0.94);
  border: 1px solid #d97706;
  color: #fde68a;
}

/* Template 43: Api Unggun Glamping & Bintang Pinus */
.greeting-card.theme-starlit-campfire-glamping {
  background: radial-gradient(circle at 50% 85%, #2a1407 0%, #0f1911 55%, #070d09 100%);
  color: #fefce8;
  border-color: #f97316;
  box-shadow: 0 16px 45px rgba(249, 115, 22, 0.3), inset 0 0 40px rgba(22, 101, 52, 0.25);
}
.theme-starlit-campfire-glamping .card-ornament {
  border-color: #f97316;
  opacity: 0.7;
}
.theme-starlit-campfire-glamping .card-salutation-text,
.theme-starlit-campfire-glamping .divider-gem,
.theme-starlit-campfire-glamping .card-title-text,
.theme-starlit-campfire-glamping .card-recipient-name {
  color: #fed7aa;
  text-shadow: 0 0 14px rgba(249, 115, 22, 0.7);
}
.theme-starlit-campfire-glamping .card-milestone-text {
  background-color: rgba(249, 115, 22, 0.25);
  color: #fed7aa;
  border: 1px solid #f97316;
}
.theme-starlit-campfire-glamping .card-message-text {
  color: #fefce8;
}
.theme-starlit-campfire-glamping .card-event-block {
  background-color: rgba(15, 25, 17, 0.94);
  border: 1px solid #ea580c;
  color: #fed7aa;
}

/* Template 44: Senbazuru Bangau Kertas & Washi */
.greeting-card.theme-origami-crane-serenade {
  background: radial-gradient(circle at 50% 15%, #ffffff 0%, #fdfbf9 60%, #faece9 100%);
  color: #1e293b;
  border-color: #dc2626;
  box-shadow: 0 16px 40px rgba(220, 38, 38, 0.15), inset 0 0 45px rgba(254, 202, 202, 0.35);
}
.theme-origami-crane-serenade .card-ornament {
  border-color: #dc2626;
  opacity: 0.65;
}
.theme-origami-crane-serenade .card-salutation-text,
.theme-origami-crane-serenade .divider-gem,
.theme-origami-crane-serenade .card-title-text,
.theme-origami-crane-serenade .card-recipient-name {
  color: #dc2626;
}
.theme-origami-crane-serenade .card-milestone-text {
  background-color: rgba(220, 38, 38, 0.12);
  color: #991b1b;
  border: 1px solid #fca5a5;
}
.theme-origami-crane-serenade .card-message-text {
  color: #1e293b;
}
.theme-origami-crane-serenade .card-event-block {
  background-color: rgba(255, 255, 255, 0.94);
  border: 1px solid #dc2626;
  color: #991b1b;
}

/* Template 45: Bioskop Atap Langit & Lampu Bohlam */
.greeting-card.theme-rooftop-cinema-under-stars {
  background: radial-gradient(circle at 50% 10%, #1d1838 0%, #0d0c1c 55%, #05050c 100%);
  color: #fdf4ff;
  border-color: #f59e0b;
  box-shadow: 0 16px 45px rgba(245, 158, 11, 0.25), inset 0 0 40px rgba(217, 119, 6, 0.2);
}
.theme-rooftop-cinema-under-stars .card-ornament {
  border-color: #f59e0b;
  opacity: 0.75;
}
.theme-rooftop-cinema-under-stars .card-salutation-text,
.theme-rooftop-cinema-under-stars .divider-gem,
.theme-rooftop-cinema-under-stars .card-title-text,
.theme-rooftop-cinema-under-stars .card-recipient-name {
  color: #fef08a;
  text-shadow: 0 0 16px rgba(245, 158, 11, 0.7);
}
.theme-rooftop-cinema-under-stars .card-milestone-text {
  background-color: rgba(245, 158, 11, 0.2);
  color: #fef08a;
  border: 1px solid #f59e0b;
}
.theme-rooftop-cinema-under-stars .card-message-text {
  color: #fae8ff;
}
.theme-rooftop-cinema-under-stars .card-event-block {
  background-color: rgba(13, 12, 28, 0.94);
  border: 1px solid #f59e0b;
  color: #fef08a;
}

/* Template 46: Rustic Timber Barn & Eucalyptus */
.greeting-card.theme-rustic-barn-wooden {
  background: radial-gradient(circle at 50% 25%, #2b1d14 0%, #19110b 60%, #0f0a06 100%);
  color: #fafaf9;
  border-color: #22c55e;
  box-shadow: 0 16px 45px rgba(0, 0, 0, 0.6), inset 0 0 40px rgba(34, 197, 94, 0.2);
}
.theme-rustic-barn-wooden .card-ornament {
  border-color: #22c55e;
  opacity: 0.7;
}
.theme-rustic-barn-wooden .card-salutation-text,
.theme-rustic-barn-wooden .divider-gem,
.theme-rustic-barn-wooden .card-title-text,
.theme-rustic-barn-wooden .card-recipient-name {
  color: #86efac;
  text-shadow: 0 0 14px rgba(34, 197, 94, 0.5);
}
.theme-rustic-barn-wooden .card-milestone-text {
  background-color: rgba(34, 197, 94, 0.2);
  color: #bbf7d0;
  border: 1px solid #22c55e;
}
.theme-rustic-barn-wooden .card-message-text {
  color: #f5f5f4;
}
.theme-rustic-barn-wooden .card-event-block {
  background-color: rgba(25, 17, 11, 0.94);
  border: 1px solid #16a34a;
  color: #bbf7d0;
}

/* Template 47: Riad Maroko & Mozaik Zellige Emas */
.greeting-card.theme-maroko-riadh-mosaic {
  background: radial-gradient(circle at 50% 25%, #0d2657 0%, #061530 60%, #020917 100%);
  color: #f8fafc;
  border-color: #eab308;
  box-shadow: 0 16px 45px rgba(6, 19, 43, 0.7), inset 0 0 45px rgba(234, 179, 8, 0.25);
}
.theme-maroko-riadh-mosaic .card-ornament {
  border-color: #eab308;
  opacity: 0.8;
}
.theme-maroko-riadh-mosaic .card-salutation-text,
.theme-maroko-riadh-mosaic .divider-gem,
.theme-maroko-riadh-mosaic .card-title-text,
.theme-maroko-riadh-mosaic .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(234, 179, 8, 0.65);
}
.theme-maroko-riadh-mosaic .card-milestone-text {
  background-color: rgba(234, 179, 8, 0.22);
  color: #fef08a;
  border: 1px solid #eab308;
}
.theme-maroko-riadh-mosaic .card-message-text {
  color: #f1f5f9;
}
.theme-maroko-riadh-mosaic .card-event-block {
  background-color: rgba(6, 21, 48, 0.94);
  border: 1px solid #ca8a04;
  color: #fef08a;
}

/* Template 48: Suntiang Emas & Songket Minangkabau */
.greeting-card.theme-minang-rumah-gadang {
  background: radial-gradient(circle at 50% 25%, #4a0610 0%, #2d0208 60%, #170104 100%);
  color: #fff1f2;
  border-color: #facc15;
  box-shadow: 0 16px 45px rgba(45, 2, 8, 0.75), inset 0 0 45px rgba(250, 204, 21, 0.25);
}
.theme-minang-rumah-gadang .card-ornament {
  border-color: #facc15;
  opacity: 0.8;
}
.theme-minang-rumah-gadang .card-salutation-text,
.theme-minang-rumah-gadang .divider-gem,
.theme-minang-rumah-gadang .card-title-text,
.theme-minang-rumah-gadang .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.7);
}
.theme-minang-rumah-gadang .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.25);
  color: #fef08a;
  border: 1px solid #facc15;
}
.theme-minang-rumah-gadang .card-message-text {
  color: #ffe4e6;
}
.theme-minang-rumah-gadang .card-event-block {
  background-color: rgba(45, 2, 8, 0.94);
  border: 1px solid #facc15;
  color: #fef08a;
}

/* Template 49: Nordic Fjord & Kaca Kristal Es */
.greeting-card.theme-nordic-fjord-aurora {
  background: radial-gradient(circle at 50% 20%, #072a3d 0%, #031520 60%, #010a10 100%);
  color: #f8fafc;
  border-color: #7dd3fc;
  box-shadow: 0 16px 45px rgba(125, 211, 252, 0.25), inset 0 0 45px rgba(52, 211, 153, 0.18);
}
.theme-nordic-fjord-aurora .card-ornament {
  border-color: #7dd3fc;
  opacity: 0.75;
}
.theme-nordic-fjord-aurora .card-salutation-text,
.theme-nordic-fjord-aurora .divider-gem,
.theme-nordic-fjord-aurora .card-title-text,
.theme-nordic-fjord-aurora .card-recipient-name {
  color: #bae6fd;
  text-shadow: 0 0 16px #38bdf8;
}
.theme-nordic-fjord-aurora .card-milestone-text {
  background-color: rgba(125, 211, 252, 0.2);
  color: #e0f2fe;
  border: 1px solid #7dd3fc;
}
.theme-nordic-fjord-aurora .card-message-text {
  color: #f0f9ff;
}
.theme-nordic-fjord-aurora .card-event-block {
  background-color: rgba(3, 21, 32, 0.94);
  border: 1px solid #0284c7;
  color: #bae6fd;
}

/* Template 50: Summa Cum Laude & Medali Kehormatan */
.greeting-card.theme-summa-cum-laude-gold {
  background: radial-gradient(circle at 50% 25%, #0f2347 0%, #071329 60%, #020712 100%);
  color: #f8fafc;
  border-color: #facc15;
  box-shadow: 0 16px 45px rgba(7, 19, 41, 0.75), inset 0 0 45px rgba(250, 204, 21, 0.25);
}
.theme-summa-cum-laude-gold .card-ornament {
  border-color: #facc15;
  opacity: 0.8;
}
.theme-summa-cum-laude-gold .card-salutation-text,
.theme-summa-cum-laude-gold .divider-gem,
.theme-summa-cum-laude-gold .card-title-text,
.theme-summa-cum-laude-gold .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.7);
}
.theme-summa-cum-laude-gold .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.25);
  color: #fef08a;
  border: 1px solid #facc15;
}
.theme-summa-cum-laude-gold .card-message-text {
  color: #f1f5f9;
}
.theme-summa-cum-laude-gold .card-event-block {
  background-color: rgba(7, 19, 41, 0.94);
  border: 1px solid #eab308;
  color: #fef08a;
}

/* Template 51: Cetak Biru Arsitek & Garis Insinyur */
.greeting-card.theme-blueprint-arsitek-teknik {
  background: radial-gradient(circle at 50% 25%, #0a2f5c 0%, #051b36 60%, #020d1c 100%);
  color: #f8fafc;
  border: 2px solid #38bdf8;
  box-shadow: 0 16px 45px rgba(56, 189, 248, 0.25), inset 0 0 45px rgba(2, 132, 199, 0.2);
}
.theme-blueprint-arsitek-teknik .card-ornament {
  border-color: #38bdf8;
  opacity: 0.7;
}
.theme-blueprint-arsitek-teknik .card-salutation-text,
.theme-blueprint-arsitek-teknik .divider-gem,
.theme-blueprint-arsitek-teknik .card-title-text,
.theme-blueprint-arsitek-teknik .card-recipient-name {
  color: #7dd3fc;
  text-shadow: 0 0 14px #0284c7;
}
.theme-blueprint-arsitek-teknik .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.2);
  color: #bae6fd;
  border: 1px solid #38bdf8;
}
.theme-blueprint-arsitek-teknik .card-message-text {
  color: #f0f9ff;
}
.theme-blueprint-arsitek-teknik .card-event-block {
  background-color: rgba(5, 27, 54, 0.94);
  border: 1px solid #38bdf8;
  color: #bae6fd;
}

/* Template 52: Sumpah Dokter & Tongkat Caduceus */
.greeting-card.theme-stetoskop-medika-hippocrates {
  background: radial-gradient(circle at 50% 25%, #053b2f 0%, #021f17 60%, #010f0b 100%);
  color: #f0fdf4;
  border-color: #14b8a6;
  box-shadow: 0 16px 45px rgba(20, 184, 166, 0.25), inset 0 0 45px rgba(245, 158, 11, 0.15);
}
.theme-stetoskop-medika-hippocrates .card-ornament {
  border-color: #14b8a6;
  opacity: 0.75;
}
.theme-stetoskop-medika-hippocrates .card-salutation-text,
.theme-stetoskop-medika-hippocrates .divider-gem,
.theme-stetoskop-medika-hippocrates .card-title-text,
.theme-stetoskop-medika-hippocrates .card-recipient-name {
  color: #5eead4;
  text-shadow: 0 0 16px #14b8a6;
}
.theme-stetoskop-medika-hippocrates .card-milestone-text {
  background-color: rgba(20, 184, 166, 0.2);
  color: #ccfbf1;
  border: 1px solid #14b8a6;
}
.theme-stetoskop-medika-hippocrates .card-message-text {
  color: #f0fdf4;
}
.theme-stetoskop-medika-hippocrates .card-event-block {
  background-color: rgba(2, 31, 23, 0.94);
  border: 1px solid #0d9488;
  color: #99f6e4;
}

/* Template 53: Perpustakaan Klasik & Pena Cendekiawan */
.greeting-card.theme-buku-literasi-scholar {
  background: radial-gradient(circle at 50% 25%, #2e150b 0%, #1a0b06 60%, #0d0502 100%);
  color: #fef3c7;
  border-color: #d97706;
  box-shadow: 0 16px 45px rgba(0, 0, 0, 0.75), inset 0 0 45px rgba(217, 119, 6, 0.2);
}
.theme-buku-literasi-scholar .card-ornament {
  border-color: #d97706;
  opacity: 0.75;
}
.theme-buku-literasi-scholar .card-salutation-text,
.theme-buku-literasi-scholar .divider-gem,
.theme-buku-literasi-scholar .card-title-text,
.theme-buku-literasi-scholar .card-recipient-name {
  color: #fde68a;
  text-shadow: 0 0 16px rgba(217, 119, 6, 0.6);
}
.theme-buku-literasi-scholar .card-milestone-text {
  background-color: rgba(217, 119, 6, 0.22);
  color: #fef3c7;
  border: 1px solid #d97706;
}
.theme-buku-literasi-scholar .card-message-text {
  color: #fef3c7;
}
.theme-buku-literasi-scholar .card-event-block {
  background-color: rgba(26, 11, 6, 0.94);
  border: 1px solid #b45309;
  color: #fde68a;
}

/* Template 54: Syukuran Akikah & Awan Buaian Bayi */
.greeting-card.theme-akikah-baby-cloud {
  background: radial-gradient(circle at 50% 15%, #ffffff 0%, #f0fdf9 60%, #e0f2fe 100%);
  color: #0f172a;
  border-color: #38bdf8;
  box-shadow: 0 16px 40px rgba(56, 189, 248, 0.2), inset 0 0 45px rgba(186, 230, 253, 0.35);
}
.theme-akikah-baby-cloud .card-ornament {
  border-color: #38bdf8;
  opacity: 0.65;
}
.theme-akikah-baby-cloud .card-salutation-text,
.theme-akikah-baby-cloud .divider-gem,
.theme-akikah-baby-cloud .card-title-text,
.theme-akikah-baby-cloud .card-recipient-name {
  color: #0284c7;
}
.theme-akikah-baby-cloud .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.18);
  color: #0369a1;
  border: 1px solid #7dd3fc;
}
.theme-akikah-baby-cloud .card-message-text {
  color: #1e293b;
}
.theme-akikah-baby-cloud .card-event-block {
  background-color: rgba(255, 255, 255, 0.94);
  border: 1px solid #38bdf8;
  color: #0369a1;
}

/* Template 55: Griya Anyar & Kunci Rumah Berkah */
.greeting-card.theme-housewarming-tedak-siten {
  background: radial-gradient(circle at 50% 25%, #2c1a11 0%, #180f0a 60%, #0d0805 100%);
  color: #fafaf9;
  border-color: #ea580c;
  box-shadow: 0 16px 45px rgba(234, 88, 12, 0.25), inset 0 0 45px rgba(250, 204, 21, 0.18);
}
.theme-housewarming-tedak-siten .card-ornament {
  border-color: #ea580c;
  opacity: 0.75;
}
.theme-housewarming-tedak-siten .card-salutation-text,
.theme-housewarming-tedak-siten .divider-gem,
.theme-housewarming-tedak-siten .card-title-text,
.theme-housewarming-tedak-siten .card-recipient-name {
  color: #fed7aa;
  text-shadow: 0 0 14px rgba(234, 88, 12, 0.6);
}
.theme-housewarming-tedak-siten .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.25);
  color: #fed7aa;
  border: 1px solid #ea580c;
}
.theme-housewarming-tedak-siten .card-message-text {
  color: #f5f5f4;
}
.theme-housewarming-tedak-siten .card-event-block {
  background-color: rgba(24, 15, 10, 0.94);
  border: 1px solid #c2410c;
  color: #fed7aa;
}

/* Template 56: Naga Emas & Koin Keberuntungan Imlek */
.greeting-card.theme-chinese-new-year-dragon {
  background: radial-gradient(circle at 50% 25%, #4c070d 0%, #2e0307 60%, #170103 100%);
  color: #fff1f2;
  border-color: #facc15;
  box-shadow: 0 16px 45px rgba(46, 3, 7, 0.75), inset 0 0 45px rgba(250, 204, 21, 0.25);
}
.theme-chinese-new-year-dragon .card-ornament {
  border-color: #facc15;
  opacity: 0.8;
}
.theme-chinese-new-year-dragon .card-salutation-text,
.theme-chinese-new-year-dragon .divider-gem,
.theme-chinese-new-year-dragon .card-title-text,
.theme-chinese-new-year-dragon .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.7);
}
.theme-chinese-new-year-dragon .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.25);
  color: #fef08a;
  border: 1px solid #facc15;
}
.theme-chinese-new-year-dragon .card-message-text {
  color: #ffe4e6;
}
.theme-chinese-new-year-dragon .card-event-block {
  background-color: rgba(46, 3, 7, 0.94);
  border: 1px solid #facc15;
  color: #fef08a;
}

/* Template 57: Pitonan Tedak Siten & Kurungan Melati */
.greeting-card.theme-tedak-siten-jawa-tradisi {
  background: radial-gradient(circle at 50% 25%, #321c0b 0%, #1f1106 60%, #100803 100%);
  color: #fefce8;
  border-color: #ca8a04;
  box-shadow: 0 16px 45px rgba(0, 0, 0, 0.7), inset 0 0 45px rgba(202, 138, 4, 0.22);
}
.theme-tedak-siten-jawa-tradisi .card-ornament {
  border-color: #ca8a04;
  opacity: 0.8;
}
.theme-tedak-siten-jawa-tradisi .card-salutation-text,
.theme-tedak-siten-jawa-tradisi .divider-gem,
.theme-tedak-siten-jawa-tradisi .card-title-text,
.theme-tedak-siten-jawa-tradisi .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(202, 138, 4, 0.65);
}
.theme-tedak-siten-jawa-tradisi .card-milestone-text {
  background-color: rgba(202, 138, 4, 0.22);
  color: #fef08a;
  border: 1px solid #ca8a04;
}
.theme-tedak-siten-jawa-tradisi .card-message-text {
  color: #fefce8;
}
.theme-tedak-siten-jawa-tradisi .card-event-block {
  background-color: rgba(31, 17, 6, 0.94);
  border: 1px solid #a16207;
  color: #fef08a;
}


/* ==========================================================================
   Templates 59-78: 20 New Undangan Theme Visuals
   ========================================================================== */

.theme-khitanan-barokah-nusantara {
  background: radial-gradient(circle at 50% 20%, #0d233f 0%, #0a192f 60%, #040c17 100%);
  color: #f8fafc;
  border-color: #38bdf8;
  box-shadow: 0 16px 45px rgba(2, 132, 199, 0.4), inset 0 0 40px rgba(56, 189, 248, 0.15);
}
.theme-khitanan-barokah-nusantara .card-ornament {
  border-color: #38bdf8;
  opacity: 0.85;
}
.theme-khitanan-barokah-nusantara .card-salutation-text,
.theme-khitanan-barokah-nusantara .divider-gem,
.theme-khitanan-barokah-nusantara .card-title-text,
.theme-khitanan-barokah-nusantara .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.7);
}
.theme-khitanan-barokah-nusantara .card-milestone-text {
  background-color: rgba(2, 132, 199, 0.25);
  color: #fde047;
  border: 1px solid #38bdf8;
}
.theme-khitanan-barokah-nusantara .card-message-text {
  color: #e2e8f0;
}
.theme-khitanan-barokah-nusantara .card-event-block {
  background-color: rgba(7, 21, 39, 0.94);
  border: 1px solid #0284c7;
  color: #7dd3fc;
}


.theme-reuni-akbar-nostalgia {
  background: radial-gradient(circle at 50% 25%, #2c221a 0%, #1c1815 65%, #100d0b 100%);
  color: #fef3c7;
  border-color: #d97706;
  box-shadow: 0 16px 45px rgba(0, 0, 0, 0.75), inset 0 0 45px rgba(217, 119, 6, 0.2);
}
.theme-reuni-akbar-nostalgia .card-ornament {
  border-color: #d97706;
  opacity: 0.8;
}
.theme-reuni-akbar-nostalgia .card-salutation-text,
.theme-reuni-akbar-nostalgia .divider-gem,
.theme-reuni-akbar-nostalgia .card-title-text,
.theme-reuni-akbar-nostalgia .card-recipient-name {
  color: #fde68a;
  text-shadow: 0 0 14px rgba(245, 158, 11, 0.6);
}
.theme-reuni-akbar-nostalgia .card-milestone-text {
  background-color: rgba(217, 119, 6, 0.22);
  color: #fef08a;
  border: 1px solid #d97706;
}
.theme-reuni-akbar-nostalgia .card-message-text {
  color: #fef3c7;
}
.theme-reuni-akbar-nostalgia .card-event-block {
  background-color: rgba(28, 24, 21, 0.94);
  border: 1px solid #b45309;
  color: #fde68a;
}


.theme-sunset-bbq-garden-party {
  background: radial-gradient(circle at 50% 25%, #3d1c0c 0%, #24140c 60%, #120905 100%);
  color: #ffedd5;
  border-color: #ea580c;
  box-shadow: 0 16px 45px rgba(234, 88, 12, 0.35), inset 0 0 45px rgba(249, 115, 22, 0.2);
}
.theme-sunset-bbq-garden-party .card-ornament {
  border-color: #ea580c;
  opacity: 0.8;
}
.theme-sunset-bbq-garden-party .card-salutation-text,
.theme-sunset-bbq-garden-party .divider-gem,
.theme-sunset-bbq-garden-party .card-title-text,
.theme-sunset-bbq-garden-party .card-recipient-name {
  color: #fdba74;
  text-shadow: 0 0 16px rgba(249, 115, 22, 0.65);
}
.theme-sunset-bbq-garden-party .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.25);
  color: #fde047;
  border: 1px solid #ea580c;
}
.theme-sunset-bbq-garden-party .card-message-text {
  color: #ffedd5;
}
.theme-sunset-bbq-garden-party .card-event-block {
  background-color: rgba(36, 20, 12, 0.94);
  border: 1px solid #c2410c;
  color: #fed7aa;
}


.theme-siraman-pengajian-jawa {
  background: radial-gradient(circle at 50% 20%, #2d1d0e 0%, #1a1209 60%, #0d0804 100%);
  color: #fefce8;
  border-color: #ca8a04;
  box-shadow: 0 16px 45px rgba(0, 0, 0, 0.7), inset 0 0 45px rgba(202, 138, 4, 0.22);
}
.theme-siraman-pengajian-jawa .card-ornament {
  border-color: #ca8a04;
  opacity: 0.8;
}
.theme-siraman-pengajian-jawa .card-salutation-text,
.theme-siraman-pengajian-jawa .divider-gem,
.theme-siraman-pengajian-jawa .card-title-text,
.theme-siraman-pengajian-jawa .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(202, 138, 4, 0.65);
}
.theme-siraman-pengajian-jawa .card-milestone-text {
  background-color: rgba(202, 138, 4, 0.22);
  color: #fef08a;
  border: 1px solid #ca8a04;
}
.theme-siraman-pengajian-jawa .card-message-text {
  color: #fefce8;
}
.theme-siraman-pengajian-jawa .card-event-block {
  background-color: rgba(26, 18, 9, 0.94);
  border: 1px solid #a16207;
  color: #fef08a;
}


.theme-akad-glassmorphism-aurora {
  background: radial-gradient(circle at 50% 20%, #132a48 0%, #0c1b2e 60%, #060e19 100%);
  color: #f0f9ff;
  border-color: #7dd3fc;
  box-shadow: 0 16px 45px rgba(56, 189, 248, 0.35), inset 0 0 40px rgba(125, 211, 252, 0.18);
}
.theme-akad-glassmorphism-aurora .card-ornament {
  border-color: #7dd3fc;
  opacity: 0.85;
}
.theme-akad-glassmorphism-aurora .card-salutation-text,
.theme-akad-glassmorphism-aurora .divider-gem,
.theme-akad-glassmorphism-aurora .card-title-text,
.theme-akad-glassmorphism-aurora .card-recipient-name {
  color: #7dd3fc;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.7);
}
.theme-akad-glassmorphism-aurora .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.22);
  color: #bae6fd;
  border: 1px solid #38bdf8;
}
.theme-akad-glassmorphism-aurora .card-message-text {
  color: #f0f9ff;
}
.theme-akad-glassmorphism-aurora .card-event-block {
  background-color: rgba(12, 27, 46, 0.94);
  border: 1px solid #0284c7;
  color: #bae6fd;
}


.theme-lamaran-peony-blush {
  background: radial-gradient(circle at 50% 25%, #421025 0%, #2b0b18 60%, #17040c 100%);
  color: #fff1f2;
  border-color: #ec4899;
  box-shadow: 0 16px 45px rgba(236, 72, 153, 0.35), inset 0 0 45px rgba(244, 114, 182, 0.2);
}
.theme-lamaran-peony-blush .card-ornament {
  border-color: #ec4899;
  opacity: 0.85;
}
.theme-lamaran-peony-blush .card-salutation-text,
.theme-lamaran-peony-blush .divider-gem,
.theme-lamaran-peony-blush .card-title-text,
.theme-lamaran-peony-blush .card-recipient-name {
  color: #fbcfe8;
  text-shadow: 0 0 16px rgba(244, 114, 182, 0.65);
}
.theme-lamaran-peony-blush .card-milestone-text {
  background-color: rgba(236, 72, 153, 0.25);
  color: #fef08a;
  border: 1px solid #ec4899;
}
.theme-lamaran-peony-blush .card-message-text {
  color: #fff1f2;
}
.theme-lamaran-peony-blush .card-event-block {
  background-color: rgba(43, 11, 24, 0.94);
  border: 1px solid #be185d;
  color: #fbcfe8;
}


.theme-grand-opening-ceremony {
  background: radial-gradient(circle at 50% 20%, #11203d 0%, #0a1224 60%, #050912 100%);
  color: #f8fafc;
  border-color: #ca8a04;
  box-shadow: 0 16px 45px rgba(202, 138, 4, 0.35), inset 0 0 45px rgba(234, 179, 8, 0.18);
}
.theme-grand-opening-ceremony .card-ornament {
  border-color: #ca8a04;
  opacity: 0.85;
}
.theme-grand-opening-ceremony .card-salutation-text,
.theme-grand-opening-ceremony .divider-gem,
.theme-grand-opening-ceremony .card-title-text,
.theme-grand-opening-ceremony .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(234, 179, 8, 0.7);
}
.theme-grand-opening-ceremony .card-milestone-text {
  background-color: rgba(202, 138, 4, 0.25);
  color: #fef08a;
  border: 1px solid #ca8a04;
}
.theme-grand-opening-ceremony .card-message-text {
  color: #f8fafc;
}
.theme-grand-opening-ceremony .card-event-block {
  background-color: rgba(10, 18, 36, 0.94);
  border: 1px solid #a16207;
  color: #fef08a;
}


.theme-sleepover-slumber-party {
  background: radial-gradient(circle at 50% 25%, #30164c 0%, #1d0e2e 60%, #0e0517 100%);
  color: #fdf4ff;
  border-color: #a855f7;
  box-shadow: 0 16px 45px rgba(168, 85, 247, 0.35), inset 0 0 45px rgba(192, 132, 252, 0.2);
}
.theme-sleepover-slumber-party .card-ornament {
  border-color: #a855f7;
  opacity: 0.85;
}
.theme-sleepover-slumber-party .card-salutation-text,
.theme-sleepover-slumber-party .divider-gem,
.theme-sleepover-slumber-party .card-title-text,
.theme-sleepover-slumber-party .card-recipient-name {
  color: #e9d5ff;
  text-shadow: 0 0 16px rgba(192, 132, 252, 0.7);
}
.theme-sleepover-slumber-party .card-milestone-text {
  background-color: rgba(168, 85, 247, 0.25);
  color: #fbcfe8;
  border: 1px solid #a855f7;
}
.theme-sleepover-slumber-party .card-message-text {
  color: #fdf4ff;
}
.theme-sleepover-slumber-party .card-event-block {
  background-color: rgba(29, 14, 46, 0.94);
  border: 1px solid #7e22ce;
  color: #e9d5ff;
}


.theme-summer-pool-party {
  background: radial-gradient(circle at 50% 20%, #093b59 0%, #06283d 60%, #031521 100%);
  color: #f0fdf4;
  border-color: #0284c7;
  box-shadow: 0 16px 45px rgba(2, 132, 199, 0.4), inset 0 0 45px rgba(56, 189, 248, 0.2);
}
.theme-summer-pool-party .card-ornament {
  border-color: #0284c7;
  opacity: 0.85;
}
.theme-summer-pool-party .card-salutation-text,
.theme-summer-pool-party .divider-gem,
.theme-summer-pool-party .card-title-text,
.theme-summer-pool-party .card-recipient-name {
  color: #7dd3fc;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.7);
}
.theme-summer-pool-party .card-milestone-text {
  background-color: rgba(2, 132, 199, 0.25);
  color: #fde047;
  border: 1px solid #0284c7;
}
.theme-summer-pool-party .card-message-text {
  color: #f0fdf4;
}
.theme-summer-pool-party .card-event-block {
  background-color: rgba(6, 40, 61, 0.94);
  border: 1px solid #0369a1;
  color: #bae6fd;
}


.theme-peluncuran-buku-penulis {
  background: radial-gradient(circle at 50% 25%, #2a1c0e 0%, #1a130b 60%, #0d0905 100%);
  color: #fef3c7;
  border-color: #d97706;
  box-shadow: 0 16px 45px rgba(0, 0, 0, 0.75), inset 0 0 45px rgba(217, 119, 6, 0.2);
}
.theme-peluncuran-buku-penulis .card-ornament {
  border-color: #d97706;
  opacity: 0.8;
}
.theme-peluncuran-buku-penulis .card-salutation-text,
.theme-peluncuran-buku-penulis .divider-gem,
.theme-peluncuran-buku-penulis .card-title-text,
.theme-peluncuran-buku-penulis .card-recipient-name {
  color: #fde68a;
  text-shadow: 0 0 16px rgba(245, 158, 11, 0.65);
}
.theme-peluncuran-buku-penulis .card-milestone-text {
  background-color: rgba(217, 119, 6, 0.22);
  color: #fef08a;
  border: 1px solid #d97706;
}
.theme-peluncuran-buku-penulis .card-message-text {
  color: #fef3c7;
}
.theme-peluncuran-buku-penulis .card-event-block {
  background-color: rgba(26, 19, 11, 0.94);
  border: 1px solid #b45309;
  color: #fde68a;
}


.theme-aqiqah-safari-pastel {
  background: radial-gradient(circle at 50% 25%, #12382f 0%, #0a221c 60%, #04120e 100%);
  color: #f0fdf4;
  border-color: #10b981;
  box-shadow: 0 16px 45px rgba(16, 185, 129, 0.35), inset 0 0 45px rgba(110, 231, 183, 0.2);
}
.theme-aqiqah-safari-pastel .card-ornament {
  border-color: #10b981;
  opacity: 0.85;
}
.theme-aqiqah-safari-pastel .card-salutation-text,
.theme-aqiqah-safari-pastel .divider-gem,
.theme-aqiqah-safari-pastel .card-title-text,
.theme-aqiqah-safari-pastel .card-recipient-name {
  color: #6ee7b7;
  text-shadow: 0 0 16px rgba(110, 231, 183, 0.7);
}
.theme-aqiqah-safari-pastel .card-milestone-text {
  background-color: rgba(16, 185, 129, 0.25);
  color: #fef08a;
  border: 1px solid #10b981;
}
.theme-aqiqah-safari-pastel .card-message-text {
  color: #f0fdf4;
}
.theme-aqiqah-safari-pastel .card-event-block {
  background-color: rgba(10, 34, 28, 0.94);
  border: 1px solid #059669;
  color: #a7f3d0;
}


.theme-batak-ulos-gorga {
  background: radial-gradient(circle at 50% 25%, #380a10 0%, #240609 60%, #120204 100%);
  color: #fef2f2;
  border-color: #b91c1c;
  box-shadow: 0 16px 45px rgba(185, 28, 28, 0.4), inset 0 0 45px rgba(250, 204, 21, 0.2);
}
.theme-batak-ulos-gorga .card-ornament {
  border-color: #facc15;
  opacity: 0.85;
}
.theme-batak-ulos-gorga .card-salutation-text,
.theme-batak-ulos-gorga .divider-gem,
.theme-batak-ulos-gorga .card-title-text,
.theme-batak-ulos-gorga .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.7);
}
.theme-batak-ulos-gorga .card-milestone-text {
  background-color: rgba(185, 28, 28, 0.3);
  color: #fef08a;
  border: 1px solid #facc15;
}
.theme-batak-ulos-gorga .card-message-text {
  color: #fef2f2;
}
.theme-batak-ulos-gorga .card-event-block {
  background-color: rgba(36, 6, 9, 0.94);
  border: 1px solid #991b1b;
  color: #fecaca;
}


.theme-wisuda-dental-dentist {
  background: radial-gradient(circle at 50% 20%, #0b344f 0%, #072132 60%, #031019 100%);
  color: #f0fdfa;
  border-color: #0ea5e9;
  box-shadow: 0 16px 45px rgba(14, 165, 233, 0.35), inset 0 0 45px rgba(56, 189, 248, 0.2);
}
.theme-wisuda-dental-dentist .card-ornament {
  border-color: #0ea5e9;
  opacity: 0.85;
}
.theme-wisuda-dental-dentist .card-salutation-text,
.theme-wisuda-dental-dentist .divider-gem,
.theme-wisuda-dental-dentist .card-title-text,
.theme-wisuda-dental-dentist .card-recipient-name {
  color: #7dd3fc;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.7);
}
.theme-wisuda-dental-dentist .card-milestone-text {
  background-color: rgba(14, 165, 233, 0.25);
  color: #a7f3d0;
  border: 1px solid #0ea5e9;
}
.theme-wisuda-dental-dentist .card-message-text {
  color: #f0fdfa;
}
.theme-wisuda-dental-dentist .card-event-block {
  background-color: rgba(7, 33, 50, 0.94);
  border: 1px solid #0284c7;
  color: #bae6fd;
}


.theme-wisuda-hukum-lex-justitia {
  background: radial-gradient(circle at 50% 25%, #231f1c 0%, #141312 60%, #090908 100%);
  color: #fefce8;
  border-color: #ca8a04;
  box-shadow: 0 16px 45px rgba(0, 0, 0, 0.8), inset 0 0 45px rgba(202, 138, 4, 0.2);
}
.theme-wisuda-hukum-lex-justitia .card-ornament {
  border-color: #ca8a04;
  opacity: 0.85;
}
.theme-wisuda-hukum-lex-justitia .card-salutation-text,
.theme-wisuda-hukum-lex-justitia .divider-gem,
.theme-wisuda-hukum-lex-justitia .card-title-text,
.theme-wisuda-hukum-lex-justitia .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(202, 138, 4, 0.7);
}
.theme-wisuda-hukum-lex-justitia .card-milestone-text {
  background-color: rgba(202, 138, 4, 0.22);
  color: #fef08a;
  border: 1px solid #ca8a04;
}
.theme-wisuda-hukum-lex-justitia .card-message-text {
  color: #fefce8;
}
.theme-wisuda-hukum-lex-justitia .card-event-block {
  background-color: rgba(20, 19, 18, 0.94);
  border: 1px solid #854d0e;
  color: #fef08a;
}


.theme-vernissage-galeri-seni {
  background: radial-gradient(circle at 50% 25%, #222228 0%, #111113 60%, #08080a 100%);
  color: #f4f4f5;
  border-color: #71717a;
  box-shadow: 0 16px 45px rgba(244, 63, 94, 0.3), inset 0 0 45px rgba(250, 204, 21, 0.15);
}
.theme-vernissage-galeri-seni .card-ornament {
  border-color: #f43f5e;
  opacity: 0.85;
}
.theme-vernissage-galeri-seni .card-salutation-text,
.theme-vernissage-galeri-seni .divider-gem,
.theme-vernissage-galeri-seni .card-title-text,
.theme-vernissage-galeri-seni .card-recipient-name {
  color: #fda4af;
  text-shadow: 0 0 16px rgba(244, 63, 94, 0.7);
}
.theme-vernissage-galeri-seni .card-milestone-text {
  background-color: rgba(244, 63, 94, 0.22);
  color: #fef08a;
  border: 1px solid #f43f5e;
}
.theme-vernissage-galeri-seni .card-message-text {
  color: #f4f4f5;
}
.theme-vernissage-galeri-seni .card-event-block {
  background-color: rgba(17, 17, 19, 0.94);
  border: 1px solid #52525b;
  color: #e4e4e7;
}


.theme-pantai-sunset-beach-wedding {
  background: radial-gradient(circle at 50% 20%, #262447 0%, #16162c 60%, #0b0b17 100%);
  color: #fdf2f8;
  border-color: #ea580c;
  box-shadow: 0 16px 45px rgba(234, 88, 12, 0.35), inset 0 0 45px rgba(56, 189, 248, 0.18);
}
.theme-pantai-sunset-beach-wedding .card-ornament {
  border-color: #ea580c;
  opacity: 0.85;
}
.theme-pantai-sunset-beach-wedding .card-salutation-text,
.theme-pantai-sunset-beach-wedding .divider-gem,
.theme-pantai-sunset-beach-wedding .card-title-text,
.theme-pantai-sunset-beach-wedding .card-recipient-name {
  color: #fed7aa;
  text-shadow: 0 0 16px rgba(249, 115, 22, 0.7);
}
.theme-pantai-sunset-beach-wedding .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.25);
  color: #bae6fd;
  border: 1px solid #ea580c;
}
.theme-pantai-sunset-beach-wedding .card-message-text {
  color: #fdf2f8;
}
.theme-pantai-sunset-beach-wedding .card-event-block {
  background-color: rgba(22, 22, 44, 0.94);
  border: 1px solid #c2410c;
  color: #fed7aa;
}


.theme-golden-50th-anniversary {
  background: radial-gradient(circle at 50% 25%, #241b09 0%, #120e06 60%, #080602 100%);
  color: #fefce8;
  border-color: #ca8a04;
  box-shadow: 0 16px 45px rgba(202, 138, 4, 0.4), inset 0 0 45px rgba(234, 179, 8, 0.25);
}
.theme-golden-50th-anniversary .card-ornament {
  border-color: #ca8a04;
  opacity: 0.85;
}
.theme-golden-50th-anniversary .card-salutation-text,
.theme-golden-50th-anniversary .divider-gem,
.theme-golden-50th-anniversary .card-title-text,
.theme-golden-50th-anniversary .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(234, 179, 8, 0.7);
}
.theme-golden-50th-anniversary .card-milestone-text {
  background-color: rgba(202, 138, 4, 0.25);
  color: #fef08a;
  border: 1px solid #ca8a04;
}
.theme-golden-50th-anniversary .card-message-text {
  color: #fefce8;
}
.theme-golden-50th-anniversary .card-event-block {
  background-color: rgba(18, 14, 6, 0.94);
  border: 1px solid #a16207;
  color: #fef08a;
}


.theme-wisuda-magister-doktor {
  background: radial-gradient(circle at 50% 25%, #380d35 0%, #220720 60%, #110210 100%);
  color: #fdf4ff;
  border-color: #a855f7;
  box-shadow: 0 16px 45px rgba(168, 85, 247, 0.35), inset 0 0 45px rgba(234, 179, 8, 0.2);
}
.theme-wisuda-magister-doktor .card-ornament {
  border-color: #a855f7;
  opacity: 0.85;
}
.theme-wisuda-magister-doktor .card-salutation-text,
.theme-wisuda-magister-doktor .divider-gem,
.theme-wisuda-magister-doktor .card-title-text,
.theme-wisuda-magister-doktor .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(234, 179, 8, 0.7);
}
.theme-wisuda-magister-doktor .card-milestone-text {
  background-color: rgba(168, 85, 247, 0.25);
  color: #fde047;
  border: 1px solid #a855f7;
}
.theme-wisuda-magister-doktor .card-message-text {
  color: #fdf4ff;
}
.theme-wisuda-magister-doktor .card-event-block {
  background-color: rgba(34, 7, 32, 0.94);
  border: 1px solid #7e22ce;
  color: #e9d5ff;
}


.theme-venetian-masquerade-ball {
  background: radial-gradient(circle at 50% 25%, #2c0944 0%, #1a0528 60%, #0c0214 100%);
  color: #faf5ff;
  border-color: #c084fc;
  box-shadow: 0 16px 45px rgba(192, 132, 252, 0.35), inset 0 0 45px rgba(250, 204, 21, 0.2);
}
.theme-venetian-masquerade-ball .card-ornament {
  border-color: #c084fc;
  opacity: 0.85;
}
.theme-venetian-masquerade-ball .card-salutation-text,
.theme-venetian-masquerade-ball .divider-gem,
.theme-venetian-masquerade-ball .card-title-text,
.theme-venetian-masquerade-ball .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.7);
}
.theme-venetian-masquerade-ball .card-milestone-text {
  background-color: rgba(192, 132, 252, 0.25);
  color: #fef08a;
  border: 1px solid #c084fc;
}
.theme-venetian-masquerade-ball .card-message-text {
  color: #faf5ff;
}
.theme-venetian-masquerade-ball .card-event-block {
  background-color: rgba(26, 5, 40, 0.94);
  border: 1px solid #9333ea;
  color: #e9d5ff;
}


.theme-tahun-baru-countdown-gala {
  background: radial-gradient(circle at 50% 25%, #181826 0%, #0a0a0f 60%, #040406 100%);
  color: #f8fafc;
  border-color: #eab308;
  box-shadow: 0 16px 45px rgba(234, 179, 8, 0.4), inset 0 0 45px rgba(56, 189, 248, 0.2);
}
.theme-tahun-baru-countdown-gala .card-ornament {
  border-color: #eab308;
  opacity: 0.85;
}
.theme-tahun-baru-countdown-gala .card-salutation-text,
.theme-tahun-baru-countdown-gala .divider-gem,
.theme-tahun-baru-countdown-gala .card-title-text,
.theme-tahun-baru-countdown-gala .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.75);
}
.theme-tahun-baru-countdown-gala .card-milestone-text {
  background-color: rgba(234, 179, 8, 0.25);
  color: #fef08a;
  border: 1px solid #eab308;
}
.theme-tahun-baru-countdown-gala .card-message-text {
  color: #f8fafc;
}
.theme-tahun-baru-countdown-gala .card-event-block {
  background-color: rgba(10, 10, 15, 0.94);
  border: 1px solid #ca8a04;
  color: #fef08a;
}



/* ==========================================================================
   Templates 79-118: 40 New Theme Visual Styles
   ========================================================================== */

.theme-dino-jurassic-adventure {
  background: radial-gradient(circle at 50% 20%, #143320 0%, #0d2215 60%, #06120b 100%);
  color: #f0fdf4;
  border-color: #22c55e;
  box-shadow: 0 16px 45px rgba(34, 197, 94, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-dino-jurassic-adventure .card-ornament {
  border-color: #22c55e;
  opacity: 0.85;
}
.theme-dino-jurassic-adventure .card-salutation-text,
.theme-dino-jurassic-adventure .divider-gem,
.theme-dino-jurassic-adventure .card-title-text,
.theme-dino-jurassic-adventure .card-recipient-name {
  color: #22c55e;
  text-shadow: 0 0 16px rgba(34, 197, 94, 0.35);
}
.theme-dino-jurassic-adventure .card-milestone-text {
  background-color: rgba(21, 128, 61, 0.35);
  color: #fef08a;
  border: 1px solid #22c55e;
}
.theme-dino-jurassic-adventure .card-message-text {
  color: #f0fdf4;
}
.theme-dino-jurassic-adventure .card-event-block {
  background-color: rgba(8, 23, 14, 0.94);
  border: 1px solid #15803d;
  color: #86efac;
}

.theme-space-astronot-kosmik {
  background: radial-gradient(circle at 50% 20%, #13234a 0%, #091226 60%, #040812 100%);
  color: #f8fafc;
  border-color: #38bdf8;
  box-shadow: 0 16px 45px rgba(56, 189, 248, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-space-astronot-kosmik .card-ornament {
  border-color: #38bdf8;
  opacity: 0.85;
}
.theme-space-astronot-kosmik .card-salutation-text,
.theme-space-astronot-kosmik .divider-gem,
.theme-space-astronot-kosmik .card-title-text,
.theme-space-astronot-kosmik .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.35);
}
.theme-space-astronot-kosmik .card-milestone-text {
  background-color: rgba(2, 132, 199, 0.3);
  color: #fed7aa;
  border: 1px solid #38bdf8;
}
.theme-space-astronot-kosmik .card-message-text {
  color: #f8fafc;
}
.theme-space-astronot-kosmik .card-event-block {
  background-color: rgba(7, 14, 30, 0.94);
  border: 1px solid #0284c7;
  color: #7dd3fc;
}

.theme-sweet-sixteen-glitz {
  background: radial-gradient(circle at 50% 20%, #421226 0%, #260b18 60%, #15050d 100%);
  color: #fff1f2;
  border-color: #fb7185;
  box-shadow: 0 16px 45px rgba(251, 113, 133, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-sweet-sixteen-glitz .card-ornament {
  border-color: #fb7185;
  opacity: 0.85;
}
.theme-sweet-sixteen-glitz .card-salutation-text,
.theme-sweet-sixteen-glitz .divider-gem,
.theme-sweet-sixteen-glitz .card-title-text,
.theme-sweet-sixteen-glitz .card-recipient-name {
  color: #fb7185;
  text-shadow: 0 0 16px rgba(251, 113, 133, 0.35);
}
.theme-sweet-sixteen-glitz .card-milestone-text {
  background-color: rgba(190, 24, 93, 0.3);
  color: #fef08a;
  border: 1px solid #fb7185;
}
.theme-sweet-sixteen-glitz .card-message-text {
  color: #fff1f2;
}
.theme-sweet-sixteen-glitz .card-event-block {
  background-color: rgba(30, 8, 18, 0.94);
  border: 1px solid #be185d;
  color: #fbcfe8;
}

.theme-gamer-level-up-quest {
  background: radial-gradient(circle at 50% 20%, #142038 0%, #0b1120 60%, #050810 100%);
  color: #f0fdf4;
  border-color: #a3e635;
  box-shadow: 0 16px 45px rgba(163, 230, 53, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-gamer-level-up-quest .card-ornament {
  border-color: #a3e635;
  opacity: 0.85;
}
.theme-gamer-level-up-quest .card-salutation-text,
.theme-gamer-level-up-quest .divider-gem,
.theme-gamer-level-up-quest .card-title-text,
.theme-gamer-level-up-quest .card-recipient-name {
  color: #a3e635;
  text-shadow: 0 0 16px rgba(163, 230, 53, 0.35);
}
.theme-gamer-level-up-quest .card-milestone-text {
  background-color: rgba(101, 163, 13, 0.3);
  color: #bef264;
  border: 1px solid #a3e635;
}
.theme-gamer-level-up-quest .card-message-text {
  color: #f0fdf4;
}
.theme-gamer-level-up-quest .card-event-block {
  background-color: rgba(8, 13, 25, 0.94);
  border: 1px solid #4d7c0f;
  color: #bef264;
}

.theme-matcha-tea-garden {
  background: radial-gradient(circle at 50% 20%, #253a23 0%, #172412 60%, #0c1509 100%);
  color: #f7fee7;
  border-color: #65a30d;
  box-shadow: 0 16px 45px rgba(101, 163, 13, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-matcha-tea-garden .card-ornament {
  border-color: #65a30d;
  opacity: 0.85;
}
.theme-matcha-tea-garden .card-salutation-text,
.theme-matcha-tea-garden .divider-gem,
.theme-matcha-tea-garden .card-title-text,
.theme-matcha-tea-garden .card-recipient-name {
  color: #65a30d;
  text-shadow: 0 0 16px rgba(101, 163, 13, 0.35);
}
.theme-matcha-tea-garden .card-milestone-text {
  background-color: rgba(77, 124, 15, 0.35);
  color: #fef9c3;
  border: 1px solid #65a30d;
}
.theme-matcha-tea-garden .card-message-text {
  color: #f7fee7;
}
.theme-matcha-tea-garden .card-event-block {
  background-color: rgba(16, 26, 13, 0.94);
  border: 1px solid #4d7c0f;
  color: #bef264;
}

.theme-circus-vintage-carnival {
  background: radial-gradient(circle at 50% 20%, #451316 0%, #290a0d 60%, #150406 100%);
  color: #fef2f2;
  border-color: #ef4444;
  box-shadow: 0 16px 45px rgba(239, 68, 68, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-circus-vintage-carnival .card-ornament {
  border-color: #ef4444;
  opacity: 0.85;
}
.theme-circus-vintage-carnival .card-salutation-text,
.theme-circus-vintage-carnival .divider-gem,
.theme-circus-vintage-carnival .card-title-text,
.theme-circus-vintage-carnival .card-recipient-name {
  color: #ef4444;
  text-shadow: 0 0 16px rgba(239, 68, 68, 0.35);
}
.theme-circus-vintage-carnival .card-milestone-text {
  background-color: rgba(220, 38, 38, 0.35);
  color: #fef08a;
  border: 1px solid #ef4444;
}
.theme-circus-vintage-carnival .card-message-text {
  color: #fef2f2;
}
.theme-circus-vintage-carnival .card-event-block {
  background-color: rgba(35, 9, 12, 0.94);
  border: 1px solid #b91c1c;
  color: #fecaca;
}

.theme-sweet-sixty-golden-age {
  background: radial-gradient(circle at 50% 20%, #15244f 0%, #0a132c 60%, #040817 100%);
  color: #fefce8;
  border-color: #eab308;
  box-shadow: 0 16px 45px rgba(234, 179, 8, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-sweet-sixty-golden-age .card-ornament {
  border-color: #eab308;
  opacity: 0.85;
}
.theme-sweet-sixty-golden-age .card-salutation-text,
.theme-sweet-sixty-golden-age .divider-gem,
.theme-sweet-sixty-golden-age .card-title-text,
.theme-sweet-sixty-golden-age .card-recipient-name {
  color: #eab308;
  text-shadow: 0 0 16px rgba(234, 179, 8, 0.35);
}
.theme-sweet-sixty-golden-age .card-milestone-text {
  background-color: rgba(202, 138, 4, 0.3);
  color: #fef08a;
  border: 1px solid #eab308;
}
.theme-sweet-sixty-golden-age .card-message-text {
  color: #fefce8;
}
.theme-sweet-sixty-golden-age .card-event-block {
  background-color: rgba(8, 14, 34, 0.94);
  border: 1px solid #ca8a04;
  color: #fde047;
}

.theme-roller-skate-disco-funk {
  background: radial-gradient(circle at 50% 20%, #3a1044 0%, #200926 60%, #110414 100%);
  color: #fdf4ff;
  border-color: #ec4899;
  box-shadow: 0 16px 45px rgba(236, 72, 153, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-roller-skate-disco-funk .card-ornament {
  border-color: #ec4899;
  opacity: 0.85;
}
.theme-roller-skate-disco-funk .card-salutation-text,
.theme-roller-skate-disco-funk .divider-gem,
.theme-roller-skate-disco-funk .card-title-text,
.theme-roller-skate-disco-funk .card-recipient-name {
  color: #ec4899;
  text-shadow: 0 0 16px rgba(236, 72, 153, 0.35);
}
.theme-roller-skate-disco-funk .card-milestone-text {
  background-color: rgba(192, 38, 211, 0.3);
  color: #fbcfe8;
  border: 1px solid #ec4899;
}
.theme-roller-skate-disco-funk .card-message-text {
  color: #fdf4ff;
}
.theme-roller-skate-disco-funk .card-event-block {
  background-color: rgba(26, 6, 31, 0.94);
  border: 1px solid #c026d3;
  color: #f5d0fe;
}

.theme-perak-25th-silver-anniversary {
  background: radial-gradient(circle at 50% 20%, #1e293b 0%, #0f172a 60%, #060a12 100%);
  color: #f8fafc;
  border-color: #94a3b8;
  box-shadow: 0 16px 45px rgba(148, 163, 184, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-perak-25th-silver-anniversary .card-ornament {
  border-color: #94a3b8;
  opacity: 0.85;
}
.theme-perak-25th-silver-anniversary .card-salutation-text,
.theme-perak-25th-silver-anniversary .divider-gem,
.theme-perak-25th-silver-anniversary .card-title-text,
.theme-perak-25th-silver-anniversary .card-recipient-name {
  color: #94a3b8;
  text-shadow: 0 0 16px rgba(148, 163, 184, 0.35);
}
.theme-perak-25th-silver-anniversary .card-milestone-text {
  background-color: rgba(71, 85, 105, 0.35);
  color: #f1f5f9;
  border: 1px solid #94a3b8;
}
.theme-perak-25th-silver-anniversary .card-message-text {
  color: #f8fafc;
}
.theme-perak-25th-silver-anniversary .card-event-block {
  background-color: rgba(11, 17, 30, 0.94);
  border: 1px solid #64748b;
  color: #cbd5e1;
}

.theme-lavender-provence-fields {
  background: radial-gradient(circle at 50% 20%, #321950 0%, #1c0e2d 60%, #0d0615 100%);
  color: #faf5ff;
  border-color: #c084fc;
  box-shadow: 0 16px 45px rgba(192, 132, 252, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-lavender-provence-fields .card-ornament {
  border-color: #c084fc;
  opacity: 0.85;
}
.theme-lavender-provence-fields .card-salutation-text,
.theme-lavender-provence-fields .divider-gem,
.theme-lavender-provence-fields .card-title-text,
.theme-lavender-provence-fields .card-recipient-name {
  color: #c084fc;
  text-shadow: 0 0 16px rgba(192, 132, 252, 0.35);
}
.theme-lavender-provence-fields .card-milestone-text {
  background-color: rgba(126, 34, 206, 0.35);
  color: #fef08a;
  border: 1px solid #c084fc;
}
.theme-lavender-provence-fields .card-message-text {
  color: #faf5ff;
}
.theme-lavender-provence-fields .card-event-block {
  background-color: rgba(23, 11, 37, 0.94);
  border: 1px solid #7e22ce;
  color: #e9d5ff;
}

.theme-paris-eiffel-twilight {
  background: radial-gradient(circle at 50% 20%, #351a44 0%, #1e1324 60%, #0e0712 100%);
  color: #fdf2f8;
  border-color: #f472b6;
  box-shadow: 0 16px 45px rgba(244, 114, 182, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-paris-eiffel-twilight .card-ornament {
  border-color: #f472b6;
  opacity: 0.85;
}
.theme-paris-eiffel-twilight .card-salutation-text,
.theme-paris-eiffel-twilight .divider-gem,
.theme-paris-eiffel-twilight .card-title-text,
.theme-paris-eiffel-twilight .card-recipient-name {
  color: #f472b6;
  text-shadow: 0 0 16px rgba(244, 114, 182, 0.35);
}
.theme-paris-eiffel-twilight .card-milestone-text {
  background-color: rgba(219, 39, 119, 0.3);
  color: #fef08a;
  border: 1px solid #f472b6;
}
.theme-paris-eiffel-twilight .card-message-text {
  color: #fdf2f8;
}
.theme-paris-eiffel-twilight .card-event-block {
  background-color: rgba(25, 14, 30, 0.94);
  border: 1px solid #db2777;
  color: #fbcfe8;
}

.theme-candlelight-jazz-loft {
  background: radial-gradient(circle at 50% 20%, #30170c 0%, #1b0e07 60%, #0d0603 100%);
  color: #ffedd5;
  border-color: #f97316;
  box-shadow: 0 16px 45px rgba(249, 115, 22, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-candlelight-jazz-loft .card-ornament {
  border-color: #f97316;
  opacity: 0.85;
}
.theme-candlelight-jazz-loft .card-salutation-text,
.theme-candlelight-jazz-loft .divider-gem,
.theme-candlelight-jazz-loft .card-title-text,
.theme-candlelight-jazz-loft .card-recipient-name {
  color: #f97316;
  text-shadow: 0 0 16px rgba(249, 115, 22, 0.35);
}
.theme-candlelight-jazz-loft .card-milestone-text {
  background-color: rgba(194, 65, 12, 0.35);
  color: #fef08a;
  border: 1px solid #f97316;
}
.theme-candlelight-jazz-loft .card-message-text {
  color: #ffedd5;
}
.theme-candlelight-jazz-loft .card-event-block {
  background-color: rgba(22, 11, 5, 0.94);
  border: 1px solid #c2410c;
  color: #fed7aa;
}

.theme-cherry-blossom-kyoto {
  background: radial-gradient(circle at 50% 20%, #3a1a22 0%, #211016 60%, #100609 100%);
  color: #fff1f2;
  border-color: #fb7185;
  box-shadow: 0 16px 45px rgba(251, 113, 133, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-cherry-blossom-kyoto .card-ornament {
  border-color: #fb7185;
  opacity: 0.85;
}
.theme-cherry-blossom-kyoto .card-salutation-text,
.theme-cherry-blossom-kyoto .divider-gem,
.theme-cherry-blossom-kyoto .card-title-text,
.theme-cherry-blossom-kyoto .card-recipient-name {
  color: #fb7185;
  text-shadow: 0 0 16px rgba(251, 113, 133, 0.35);
}
.theme-cherry-blossom-kyoto .card-milestone-text {
  background-color: rgba(190, 18, 60, 0.3);
  color: #fecdd3;
  border: 1px solid #fb7185;
}
.theme-cherry-blossom-kyoto .card-message-text {
  color: #fff1f2;
}
.theme-cherry-blossom-kyoto .card-event-block {
  background-color: rgba(27, 12, 17, 0.94);
  border: 1px solid #be123c;
  color: #fecdd3;
}

.theme-desert-glamping-stargaze {
  background: radial-gradient(circle at 50% 20%, #2c1b40 0%, #181126 60%, #0c0814 100%);
  color: #fff7ed;
  border-color: #ea580c;
  box-shadow: 0 16px 45px rgba(234, 88, 12, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-desert-glamping-stargaze .card-ornament {
  border-color: #ea580c;
  opacity: 0.85;
}
.theme-desert-glamping-stargaze .card-salutation-text,
.theme-desert-glamping-stargaze .divider-gem,
.theme-desert-glamping-stargaze .card-title-text,
.theme-desert-glamping-stargaze .card-recipient-name {
  color: #ea580c;
  text-shadow: 0 0 16px rgba(234, 88, 12, 0.35);
}
.theme-desert-glamping-stargaze .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.3);
  color: #fed7aa;
  border: 1px solid #ea580c;
}
.theme-desert-glamping-stargaze .card-message-text {
  color: #fff7ed;
}
.theme-desert-glamping-stargaze .card-event-block {
  background-color: rgba(20, 13, 33, 0.94);
  border: 1px solid #c2410c;
  color: #fed7aa;
}

.theme-cozy-fireplace-chalet {
  background: radial-gradient(circle at 50% 20%, #351c0d 0%, #1c1009 60%, #0d0703 100%);
  color: #fef3c7;
  border-color: #f97316;
  box-shadow: 0 16px 45px rgba(249, 115, 22, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-cozy-fireplace-chalet .card-ornament {
  border-color: #f97316;
  opacity: 0.85;
}
.theme-cozy-fireplace-chalet .card-salutation-text,
.theme-cozy-fireplace-chalet .divider-gem,
.theme-cozy-fireplace-chalet .card-title-text,
.theme-cozy-fireplace-chalet .card-recipient-name {
  color: #f97316;
  text-shadow: 0 0 16px rgba(249, 115, 22, 0.35);
}
.theme-cozy-fireplace-chalet .card-milestone-text {
  background-color: rgba(194, 65, 12, 0.35);
  color: #fef08a;
  border: 1px solid #f97316;
}
.theme-cozy-fireplace-chalet .card-message-text {
  color: #fef3c7;
}
.theme-cozy-fireplace-chalet .card-event-block {
  background-color: rgba(24, 13, 6, 0.94);
  border: 1px solid #c2410c;
  color: #fed7aa;
}

.theme-love-lock-pont-des-arts {
  background: radial-gradient(circle at 50% 20%, #132e42 0%, #091724 60%, #040b12 100%);
  color: #f0f9ff;
  border-color: #0284c7;
  box-shadow: 0 16px 45px rgba(2, 132, 199, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-love-lock-pont-des-arts .card-ornament {
  border-color: #0284c7;
  opacity: 0.85;
}
.theme-love-lock-pont-des-arts .card-salutation-text,
.theme-love-lock-pont-des-arts .divider-gem,
.theme-love-lock-pont-des-arts .card-title-text,
.theme-love-lock-pont-des-arts .card-recipient-name {
  color: #0284c7;
  text-shadow: 0 0 16px rgba(2, 132, 199, 0.35);
}
.theme-love-lock-pont-des-arts .card-milestone-text {
  background-color: rgba(2, 132, 199, 0.3);
  color: #fef08a;
  border: 1px solid #0284c7;
}
.theme-love-lock-pont-des-arts .card-message-text {
  color: #f0f9ff;
}
.theme-love-lock-pont-des-arts .card-event-block {
  background-color: rgba(8, 20, 31, 0.94);
  border: 1px solid #0369a1;
  color: #7dd3fc;
}

.theme-sunda-silih-asih {
  background: radial-gradient(circle at 50% 20%, #1c351f 0%, #112613 60%, #081309 100%);
  color: #f0fdf4;
  border-color: #22c55e;
  box-shadow: 0 16px 45px rgba(34, 197, 94, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-sunda-silih-asih .card-ornament {
  border-color: #22c55e;
  opacity: 0.85;
}
.theme-sunda-silih-asih .card-salutation-text,
.theme-sunda-silih-asih .divider-gem,
.theme-sunda-silih-asih .card-title-text,
.theme-sunda-silih-asih .card-recipient-name {
  color: #22c55e;
  text-shadow: 0 0 16px rgba(34, 197, 94, 0.35);
}
.theme-sunda-silih-asih .card-milestone-text {
  background-color: rgba(21, 128, 61, 0.35);
  color: #fef08a;
  border: 1px solid #22c55e;
}
.theme-sunda-silih-asih .card-message-text {
  color: #f0fdf4;
}
.theme-sunda-silih-asih .card-event-block {
  background-color: rgba(12, 28, 14, 0.94);
  border: 1px solid #15803d;
  color: #86efac;
}

.theme-toraja-tongkonan-gold {
  background: radial-gradient(circle at 50% 20%, #34150f 0%, #1e0e0a 60%, #0d0604 100%);
  color: #fef2f2;
  border-color: #dc2626;
  box-shadow: 0 16px 45px rgba(220, 38, 38, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-toraja-tongkonan-gold .card-ornament {
  border-color: #dc2626;
  opacity: 0.85;
}
.theme-toraja-tongkonan-gold .card-salutation-text,
.theme-toraja-tongkonan-gold .divider-gem,
.theme-toraja-tongkonan-gold .card-title-text,
.theme-toraja-tongkonan-gold .card-recipient-name {
  color: #dc2626;
  text-shadow: 0 0 16px rgba(220, 38, 38, 0.35);
}
.theme-toraja-tongkonan-gold .card-milestone-text {
  background-color: rgba(185, 28, 28, 0.35);
  color: #fef08a;
  border: 1px solid #dc2626;
}
.theme-toraja-tongkonan-gold .card-message-text {
  color: #fef2f2;
}
.theme-toraja-tongkonan-gold .card-event-block {
  background-color: rgba(25, 11, 7, 0.94);
  border: 1px solid #b91c1c;
  color: #fca5a5;
}

.theme-palembang-aesan-gede {
  background: radial-gradient(circle at 50% 20%, #421023 0%, #270914 60%, #13040a 100%);
  color: #fff1f2;
  border-color: #be123c;
  box-shadow: 0 16px 45px rgba(190, 18, 60, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-palembang-aesan-gede .card-ornament {
  border-color: #be123c;
  opacity: 0.85;
}
.theme-palembang-aesan-gede .card-salutation-text,
.theme-palembang-aesan-gede .divider-gem,
.theme-palembang-aesan-gede .card-title-text,
.theme-palembang-aesan-gede .card-recipient-name {
  color: #be123c;
  text-shadow: 0 0 16px rgba(190, 18, 60, 0.35);
}
.theme-palembang-aesan-gede .card-milestone-text {
  background-color: rgba(190, 18, 60, 0.35);
  color: #fef08a;
  border: 1px solid #facc15;
}
.theme-palembang-aesan-gede .card-message-text {
  color: #fff1f2;
}
.theme-palembang-aesan-gede .card-event-block {
  background-color: rgba(33, 7, 17, 0.94);
  border: 1px solid #9f1239;
  color: #fde047;
}

.theme-glasshouse-botanical-greenhouse {
  background: radial-gradient(circle at 50% 20%, #153f31 0%, #092019 60%, #040f0c 100%);
  color: #ecfdf5;
  border-color: #10b981;
  box-shadow: 0 16px 45px rgba(16, 185, 129, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-glasshouse-botanical-greenhouse .card-ornament {
  border-color: #10b981;
  opacity: 0.85;
}
.theme-glasshouse-botanical-greenhouse .card-salutation-text,
.theme-glasshouse-botanical-greenhouse .divider-gem,
.theme-glasshouse-botanical-greenhouse .card-title-text,
.theme-glasshouse-botanical-greenhouse .card-recipient-name {
  color: #10b981;
  text-shadow: 0 0 16px rgba(16, 185, 129, 0.35);
}
.theme-glasshouse-botanical-greenhouse .card-milestone-text {
  background-color: rgba(5, 150, 105, 0.35);
  color: #fef08a;
  border: 1px solid #10b981;
}
.theme-glasshouse-botanical-greenhouse .card-message-text {
  color: #ecfdf5;
}
.theme-glasshouse-botanical-greenhouse .card-event-block {
  background-color: rgba(7, 24, 19, 0.94);
  border: 1px solid #059669;
  color: #6ee7b7;
}

.theme-uluwatu-cliff-ocean-sunset {
  background: radial-gradient(circle at 50% 20%, #133355 0%, #081729 60%, #030a13 100%);
  color: #f0f9ff;
  border-color: #0284c7;
  box-shadow: 0 16px 45px rgba(2, 132, 199, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-uluwatu-cliff-ocean-sunset .card-ornament {
  border-color: #0284c7;
  opacity: 0.85;
}
.theme-uluwatu-cliff-ocean-sunset .card-salutation-text,
.theme-uluwatu-cliff-ocean-sunset .divider-gem,
.theme-uluwatu-cliff-ocean-sunset .card-title-text,
.theme-uluwatu-cliff-ocean-sunset .card-recipient-name {
  color: #0284c7;
  text-shadow: 0 0 16px rgba(2, 132, 199, 0.35);
}
.theme-uluwatu-cliff-ocean-sunset .card-milestone-text {
  background-color: rgba(2, 132, 199, 0.3);
  color: #fed7aa;
  border: 1px solid #0284c7;
}
.theme-uluwatu-cliff-ocean-sunset .card-message-text {
  color: #f0f9ff;
}
.theme-uluwatu-cliff-ocean-sunset .card-event-block {
  background-color: rgba(7, 19, 34, 0.94);
  border: 1px solid #0369a1;
  color: #7dd3fc;
}

.theme-versailles-baroque-palace {
  background: radial-gradient(circle at 50% 20%, #302410 0%, #1a140b 60%, #0c0905 100%);
  color: #fefce8;
  border-color: #ca8a04;
  box-shadow: 0 16px 45px rgba(202, 138, 4, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-versailles-baroque-palace .card-ornament {
  border-color: #ca8a04;
  opacity: 0.85;
}
.theme-versailles-baroque-palace .card-salutation-text,
.theme-versailles-baroque-palace .divider-gem,
.theme-versailles-baroque-palace .card-title-text,
.theme-versailles-baroque-palace .card-recipient-name {
  color: #ca8a04;
  text-shadow: 0 0 16px rgba(202, 138, 4, 0.35);
}
.theme-versailles-baroque-palace .card-milestone-text {
  background-color: rgba(202, 138, 4, 0.3);
  color: #fef08a;
  border: 1px solid #ca8a04;
}
.theme-versailles-baroque-palace .card-message-text {
  color: #fefce8;
}
.theme-versailles-baroque-palace .card-event-block {
  background-color: rgba(22, 17, 8, 0.94);
  border: 1px solid #a16207;
  color: #fde047;
}

.theme-boho-desert-pampas {
  background: radial-gradient(circle at 50% 20%, #3a2015 0%, #21130d 60%, #100806 100%);
  color: #fff7ed;
  border-color: #c2410c;
  box-shadow: 0 16px 45px rgba(194, 65, 12, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-boho-desert-pampas .card-ornament {
  border-color: #c2410c;
  opacity: 0.85;
}
.theme-boho-desert-pampas .card-salutation-text,
.theme-boho-desert-pampas .divider-gem,
.theme-boho-desert-pampas .card-title-text,
.theme-boho-desert-pampas .card-recipient-name {
  color: #c2410c;
  text-shadow: 0 0 16px rgba(194, 65, 12, 0.35);
}
.theme-boho-desert-pampas .card-milestone-text {
  background-color: rgba(194, 65, 12, 0.35);
  color: #fef08a;
  border: 1px solid #c2410c;
}
.theme-boho-desert-pampas .card-message-text {
  color: #fff7ed;
}
.theme-boho-desert-pampas .card-event-block {
  background-color: rgba(28, 15, 10, 0.94);
  border: 1px solid #9a3412;
  color: #fed7aa;
}

.theme-garden-pergola-white-rose {
  background: radial-gradient(circle at 50% 20%, #183b38 0%, #0a1f1d 60%, #040e0d 100%);
  color: #f0fdfa;
  border-color: #0d9488;
  box-shadow: 0 16px 45px rgba(13, 148, 136, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-garden-pergola-white-rose .card-ornament {
  border-color: #0d9488;
  opacity: 0.85;
}
.theme-garden-pergola-white-rose .card-salutation-text,
.theme-garden-pergola-white-rose .divider-gem,
.theme-garden-pergola-white-rose .card-title-text,
.theme-garden-pergola-white-rose .card-recipient-name {
  color: #0d9488;
  text-shadow: 0 0 16px rgba(13, 148, 136, 0.35);
}
.theme-garden-pergola-white-rose .card-milestone-text {
  background-color: rgba(15, 118, 110, 0.35);
  color: #ccfbf1;
  border: 1px solid #0d9488;
}
.theme-garden-pergola-white-rose .card-message-text {
  color: #f0fdfa;
}
.theme-garden-pergola-white-rose .card-event-block {
  background-color: rgba(8, 26, 24, 0.94);
  border: 1px solid #0f766e;
  color: #5eead4;
}

.theme-farmasi-apoteker-mortar {
  background: radial-gradient(circle at 50% 20%, #143d30 0%, #091c17 60%, #040e0b 100%);
  color: #ecfdf5;
  border-color: #059669;
  box-shadow: 0 16px 45px rgba(5, 150, 105, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-farmasi-apoteker-mortar .card-ornament {
  border-color: #059669;
  opacity: 0.85;
}
.theme-farmasi-apoteker-mortar .card-salutation-text,
.theme-farmasi-apoteker-mortar .divider-gem,
.theme-farmasi-apoteker-mortar .card-title-text,
.theme-farmasi-apoteker-mortar .card-recipient-name {
  color: #059669;
  text-shadow: 0 0 16px rgba(5, 150, 105, 0.35);
}
.theme-farmasi-apoteker-mortar .card-milestone-text {
  background-color: rgba(5, 150, 105, 0.35);
  color: #a7f3d0;
  border: 1px solid #059669;
}
.theme-farmasi-apoteker-mortar .card-message-text {
  color: #ecfdf5;
}
.theme-farmasi-apoteker-mortar .card-event-block {
  background-color: rgba(7, 24, 19, 0.94);
  border: 1px solid #047857;
  color: #6ee7b7;
}

.theme-akpol-akmil-perwira-pedang {
  background: radial-gradient(circle at 50% 20%, #152549 0%, #09101f 60%, #040810 100%);
  color: #fefce8;
  border-color: #eab308;
  box-shadow: 0 16px 45px rgba(234, 179, 8, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-akpol-akmil-perwira-pedang .card-ornament {
  border-color: #eab308;
  opacity: 0.85;
}
.theme-akpol-akmil-perwira-pedang .card-salutation-text,
.theme-akpol-akmil-perwira-pedang .divider-gem,
.theme-akpol-akmil-perwira-pedang .card-title-text,
.theme-akpol-akmil-perwira-pedang .card-recipient-name {
  color: #eab308;
  text-shadow: 0 0 16px rgba(234, 179, 8, 0.35);
}
.theme-akpol-akmil-perwira-pedang .card-milestone-text {
  background-color: rgba(202, 138, 4, 0.3);
  color: #fef08a;
  border: 1px solid #eab308;
}
.theme-akpol-akmil-perwira-pedang .card-message-text {
  color: #fefce8;
}
.theme-akpol-akmil-perwira-pedang .card-event-block {
  background-color: rgba(7, 13, 27, 0.94);
  border: 1px solid #ca8a04;
  color: #fde047;
}

.theme-seni-desain-kreatif-portfolio {
  background: radial-gradient(circle at 50% 20%, #30172c 0%, #171116 60%, #0a0709 100%);
  color: #fff1f2;
  border-color: #e11d48;
  box-shadow: 0 16px 45px rgba(225, 29, 72, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-seni-desain-kreatif-portfolio .card-ornament {
  border-color: #e11d48;
  opacity: 0.85;
}
.theme-seni-desain-kreatif-portfolio .card-salutation-text,
.theme-seni-desain-kreatif-portfolio .divider-gem,
.theme-seni-desain-kreatif-portfolio .card-title-text,
.theme-seni-desain-kreatif-portfolio .card-recipient-name {
  color: #e11d48;
  text-shadow: 0 0 16px rgba(225, 29, 72, 0.35);
}
.theme-seni-desain-kreatif-portfolio .card-milestone-text {
  background-color: rgba(190, 18, 60, 0.3);
  color: #fecdd3;
  border: 1px solid #e11d48;
}
.theme-seni-desain-kreatif-portfolio .card-message-text {
  color: #fff1f2;
}
.theme-seni-desain-kreatif-portfolio .card-event-block {
  background-color: rgba(24, 15, 23, 0.94);
  border: 1px solid #be123c;
  color: #fecdd3;
}

.theme-psikologi-klinis-humaniora {
  background: radial-gradient(circle at 50% 20%, #1f2757 0%, #0f132b 60%, #060815 100%);
  color: #eef2ff;
  border-color: #6366f1;
  box-shadow: 0 16px 45px rgba(99, 102, 241, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-psikologi-klinis-humaniora .card-ornament {
  border-color: #6366f1;
  opacity: 0.85;
}
.theme-psikologi-klinis-humaniora .card-salutation-text,
.theme-psikologi-klinis-humaniora .divider-gem,
.theme-psikologi-klinis-humaniora .card-title-text,
.theme-psikologi-klinis-humaniora .card-recipient-name {
  color: #6366f1;
  text-shadow: 0 0 16px rgba(99, 102, 241, 0.35);
}
.theme-psikologi-klinis-humaniora .card-milestone-text {
  background-color: rgba(79, 70, 229, 0.3);
  color: #c7d2fe;
  border: 1px solid #6366f1;
}
.theme-psikologi-klinis-humaniora .card-message-text {
  color: #eef2ff;
}
.theme-psikologi-klinis-humaniora .card-event-block {
  background-color: rgba(13, 16, 38, 0.94);
  border: 1px solid #4f46e5;
  color: #a5b4fc;
}

.theme-it-ai-computer-science {
  background: radial-gradient(circle at 50% 20%, #11223b 0%, #050d18 60%, #02060c 100%);
  color: #ecfeff;
  border-color: #06b6d4;
  box-shadow: 0 16px 45px rgba(6, 182, 212, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-it-ai-computer-science .card-ornament {
  border-color: #06b6d4;
  opacity: 0.85;
}
.theme-it-ai-computer-science .card-salutation-text,
.theme-it-ai-computer-science .divider-gem,
.theme-it-ai-computer-science .card-title-text,
.theme-it-ai-computer-science .card-recipient-name {
  color: #06b6d4;
  text-shadow: 0 0 16px rgba(6, 182, 212, 0.35);
}
.theme-it-ai-computer-science .card-milestone-text {
  background-color: rgba(8, 145, 178, 0.3);
  color: #a5f3fc;
  border: 1px solid #06b6d4;
}
.theme-it-ai-computer-science .card-message-text {
  color: #ecfeff;
}
.theme-it-ai-computer-science .card-event-block {
  background-color: rgba(5, 15, 27, 0.94);
  border: 1px solid #0891b2;
  color: #67e8f9;
}

.theme-pilot-wing-aviation {
  background: radial-gradient(circle at 50% 20%, #16294d 0%, #091224 60%, #040812 100%);
  color: #fefce8;
  border-color: #eab308;
  box-shadow: 0 16px 45px rgba(234, 179, 8, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-pilot-wing-aviation .card-ornament {
  border-color: #eab308;
  opacity: 0.85;
}
.theme-pilot-wing-aviation .card-salutation-text,
.theme-pilot-wing-aviation .divider-gem,
.theme-pilot-wing-aviation .card-title-text,
.theme-pilot-wing-aviation .card-recipient-name {
  color: #eab308;
  text-shadow: 0 0 16px rgba(234, 179, 8, 0.35);
}
.theme-pilot-wing-aviation .card-milestone-text {
  background-color: rgba(202, 138, 4, 0.3);
  color: #fef08a;
  border: 1px solid #eab308;
}
.theme-pilot-wing-aviation .card-message-text {
  color: #fefce8;
}
.theme-pilot-wing-aviation .card-event-block {
  background-color: rgba(8, 15, 32, 0.94);
  border: 1px solid #ca8a04;
  color: #fde047;
}

.theme-arsitektur-lanskap-hijau {
  background: radial-gradient(circle at 50% 20%, #193d25 0%, #0b1a10 60%, #050d08 100%);
  color: #f0fdf4;
  border-color: #16a34a;
  box-shadow: 0 16px 45px rgba(22, 163, 74, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-arsitektur-lanskap-hijau .card-ornament {
  border-color: #16a34a;
  opacity: 0.85;
}
.theme-arsitektur-lanskap-hijau .card-salutation-text,
.theme-arsitektur-lanskap-hijau .divider-gem,
.theme-arsitektur-lanskap-hijau .card-title-text,
.theme-arsitektur-lanskap-hijau .card-recipient-name {
  color: #16a34a;
  text-shadow: 0 0 16px rgba(22, 163, 74, 0.35);
}
.theme-arsitektur-lanskap-hijau .card-milestone-text {
  background-color: rgba(21, 128, 61, 0.35);
  color: #bbf7d0;
  border: 1px solid #16a34a;
}
.theme-arsitektur-lanskap-hijau .card-message-text {
  color: #f0fdf4;
}
.theme-arsitektur-lanskap-hijau .card-event-block {
  background-color: rgba(9, 23, 14, 0.94);
  border: 1px solid #15803d;
  color: #86efac;
}

.theme-doktor-riset-promosi-phd {
  background: radial-gradient(circle at 50% 20%, #36131c 0%, #1e0c12 60%, #0d0407 100%);
  color: #fef2f2;
  border-color: #b91c1c;
  box-shadow: 0 16px 45px rgba(185, 28, 28, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-doktor-riset-promosi-phd .card-ornament {
  border-color: #b91c1c;
  opacity: 0.85;
}
.theme-doktor-riset-promosi-phd .card-salutation-text,
.theme-doktor-riset-promosi-phd .divider-gem,
.theme-doktor-riset-promosi-phd .card-title-text,
.theme-doktor-riset-promosi-phd .card-recipient-name {
  color: #b91c1c;
  text-shadow: 0 0 16px rgba(185, 28, 28, 0.35);
}
.theme-doktor-riset-promosi-phd .card-milestone-text {
  background-color: rgba(185, 28, 28, 0.35);
  color: #fef08a;
  border: 1px solid #ca8a04;
}
.theme-doktor-riset-promosi-phd .card-message-text {
  color: #fef2f2;
}
.theme-doktor-riset-promosi-phd .card-event-block {
  background-color: rgba(25, 9, 14, 0.94);
  border: 1px solid #991b1b;
  color: #fca5a5;
}

.theme-syukuran-rumah-skandinavia {
  background: radial-gradient(circle at 50% 20%, #2e241b 0%, #191410 60%, #0c0907 100%);
  color: #fef3c7;
  border-color: #d97706;
  box-shadow: 0 16px 45px rgba(217, 119, 6, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-syukuran-rumah-skandinavia .card-ornament {
  border-color: #d97706;
  opacity: 0.85;
}
.theme-syukuran-rumah-skandinavia .card-salutation-text,
.theme-syukuran-rumah-skandinavia .divider-gem,
.theme-syukuran-rumah-skandinavia .card-title-text,
.theme-syukuran-rumah-skandinavia .card-recipient-name {
  color: #d97706;
  text-shadow: 0 0 16px rgba(217, 119, 6, 0.35);
}
.theme-syukuran-rumah-skandinavia .card-milestone-text {
  background-color: rgba(217, 119, 6, 0.35);
  color: #fef08a;
  border: 1px solid #d97706;
}
.theme-syukuran-rumah-skandinavia .card-message-text {
  color: #fef3c7;
}
.theme-syukuran-rumah-skandinavia .card-event-block {
  background-color: rgba(24, 18, 13, 0.94);
  border: 1px solid #b45309;
  color: #fed7aa;
}

.theme-ramadhan-iftar-berkah {
  background: radial-gradient(circle at 50% 20%, #123d2d 0%, #081d15 60%, #030d09 100%);
  color: #ecfdf5;
  border-color: #059669;
  box-shadow: 0 16px 45px rgba(5, 150, 105, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-ramadhan-iftar-berkah .card-ornament {
  border-color: #059669;
  opacity: 0.85;
}
.theme-ramadhan-iftar-berkah .card-salutation-text,
.theme-ramadhan-iftar-berkah .divider-gem,
.theme-ramadhan-iftar-berkah .card-title-text,
.theme-ramadhan-iftar-berkah .card-recipient-name {
  color: #059669;
  text-shadow: 0 0 16px rgba(5, 150, 105, 0.35);
}
.theme-ramadhan-iftar-berkah .card-milestone-text {
  background-color: rgba(5, 150, 105, 0.35);
  color: #fef08a;
  border: 1px solid #059669;
}
.theme-ramadhan-iftar-berkah .card-message-text {
  color: #ecfdf5;
}
.theme-ramadhan-iftar-berkah .card-event-block {
  background-color: rgba(6, 25, 18, 0.94);
  border: 1px solid #047857;
  color: #6ee7b7;
}

.theme-waisak-borobudur-lantern {
  background: radial-gradient(circle at 50% 20%, #1c2459 0%, #0c102b 60%, #050714 100%);
  color: #fefce8;
  border-color: #eab308;
  box-shadow: 0 16px 45px rgba(234, 179, 8, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-waisak-borobudur-lantern .card-ornament {
  border-color: #eab308;
  opacity: 0.85;
}
.theme-waisak-borobudur-lantern .card-salutation-text,
.theme-waisak-borobudur-lantern .divider-gem,
.theme-waisak-borobudur-lantern .card-title-text,
.theme-waisak-borobudur-lantern .card-recipient-name {
  color: #eab308;
  text-shadow: 0 0 16px rgba(234, 179, 8, 0.35);
}
.theme-waisak-borobudur-lantern .card-milestone-text {
  background-color: rgba(202, 138, 4, 0.3);
  color: #fef08a;
  border: 1px solid #eab308;
}
.theme-waisak-borobudur-lantern .card-message-text {
  color: #fefce8;
}
.theme-waisak-borobudur-lantern .card-event-block {
  background-color: rgba(10, 14, 38, 0.94);
  border: 1px solid #ca8a04;
  color: #fde047;
}

.theme-pesta-panen-kopi-nusantara {
  background: radial-gradient(circle at 50% 20%, #301c0e 0%, #1c1108 60%, #0d0703 100%);
  color: #fef3c7;
  border-color: #b45309;
  box-shadow: 0 16px 45px rgba(180, 83, 9, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-pesta-panen-kopi-nusantara .card-ornament {
  border-color: #b45309;
  opacity: 0.85;
}
.theme-pesta-panen-kopi-nusantara .card-salutation-text,
.theme-pesta-panen-kopi-nusantara .divider-gem,
.theme-pesta-panen-kopi-nusantara .card-title-text,
.theme-pesta-panen-kopi-nusantara .card-recipient-name {
  color: #b45309;
  text-shadow: 0 0 16px rgba(180, 83, 9, 0.35);
}
.theme-pesta-panen-kopi-nusantara .card-milestone-text {
  background-color: rgba(180, 83, 9, 0.35);
  color: #fef08a;
  border: 1px solid #b45309;
}
.theme-pesta-panen-kopi-nusantara .card-message-text {
  color: #fef3c7;
}
.theme-pesta-panen-kopi-nusantara .card-event-block {
  background-color: rgba(23, 14, 7, 0.94);
  border: 1px solid #92400e;
  color: #fed7aa;
}

.theme-pagelaran-wayang-kulit {
  background: radial-gradient(circle at 50% 20%, #30190a 0%, #1c0f06 60%, #0d0702 100%);
  color: #fef3c7;
  border-color: #b45309;
  box-shadow: 0 16px 45px rgba(180, 83, 9, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-pagelaran-wayang-kulit .card-ornament {
  border-color: #b45309;
  opacity: 0.85;
}
.theme-pagelaran-wayang-kulit .card-salutation-text,
.theme-pagelaran-wayang-kulit .divider-gem,
.theme-pagelaran-wayang-kulit .card-title-text,
.theme-pagelaran-wayang-kulit .card-recipient-name {
  color: #b45309;
  text-shadow: 0 0 16px rgba(180, 83, 9, 0.35);
}
.theme-pagelaran-wayang-kulit .card-milestone-text {
  background-color: rgba(180, 83, 9, 0.35);
  color: #fef08a;
  border: 1px solid #b45309;
}
.theme-pagelaran-wayang-kulit .card-message-text {
  color: #fef3c7;
}
.theme-pagelaran-wayang-kulit .card-event-block {
  background-color: rgba(24, 13, 5, 0.94);
  border: 1px solid #92400e;
  color: #fed7aa;
}

.theme-donor-darah-kemanusiaan {
  background: radial-gradient(circle at 50% 20%, #351016 0%, #1f080b 60%, #0d0305 100%);
  color: #fef2f2;
  border-color: #dc2626;
  box-shadow: 0 16px 45px rgba(220, 38, 38, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-donor-darah-kemanusiaan .card-ornament {
  border-color: #dc2626;
  opacity: 0.85;
}
.theme-donor-darah-kemanusiaan .card-salutation-text,
.theme-donor-darah-kemanusiaan .divider-gem,
.theme-donor-darah-kemanusiaan .card-title-text,
.theme-donor-darah-kemanusiaan .card-recipient-name {
  color: #dc2626;
  text-shadow: 0 0 16px rgba(220, 38, 38, 0.35);
}
.theme-donor-darah-kemanusiaan .card-milestone-text {
  background-color: rgba(220, 38, 38, 0.35);
  color: #fca5a5;
  border: 1px solid #dc2626;
}
.theme-donor-darah-kemanusiaan .card-message-text {
  color: #fef2f2;
}
.theme-donor-darah-kemanusiaan .card-event-block {
  background-color: rgba(27, 7, 10, 0.94);
  border: 1px solid #b91c1c;
  color: #fca5a5;
}

.theme-peresmian-bistro-kuliner {
  background: radial-gradient(circle at 50% 20%, #143833 0%, #0a1b18 60%, #040c0b 100%);
  color: #f0fdfa;
  border-color: #0f766e;
  box-shadow: 0 16px 45px rgba(15, 118, 110, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-peresmian-bistro-kuliner .card-ornament {
  border-color: #0f766e;
  opacity: 0.85;
}
.theme-peresmian-bistro-kuliner .card-salutation-text,
.theme-peresmian-bistro-kuliner .divider-gem,
.theme-peresmian-bistro-kuliner .card-title-text,
.theme-peresmian-bistro-kuliner .card-recipient-name {
  color: #0f766e;
  text-shadow: 0 0 16px rgba(15, 118, 110, 0.35);
}
.theme-peresmian-bistro-kuliner .card-milestone-text {
  background-color: rgba(15, 118, 110, 0.35);
  color: #fef08a;
  border: 1px solid #0f766e;
}
.theme-peresmian-bistro-kuliner .card-message-text {
  color: #f0fdfa;
}
.theme-peresmian-bistro-kuliner .card-event-block {
  background-color: rgba(8, 23, 20, 0.94);
  border: 1px solid #115e59;
  color: #5eead4;
}

.theme-konser-akustik-indie-senja {
  background: radial-gradient(circle at 50% 20%, #3b1828 0%, #200d17 60%, #0e050a 100%);
  color: #ffedd5;
  border-color: #ea580c;
  box-shadow: 0 16px 45px rgba(234, 88, 12, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-konser-akustik-indie-senja .card-ornament {
  border-color: #ea580c;
  opacity: 0.85;
}
.theme-konser-akustik-indie-senja .card-salutation-text,
.theme-konser-akustik-indie-senja .divider-gem,
.theme-konser-akustik-indie-senja .card-title-text,
.theme-konser-akustik-indie-senja .card-recipient-name {
  color: #ea580c;
  text-shadow: 0 0 16px rgba(234, 88, 12, 0.35);
}
.theme-konser-akustik-indie-senja .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.35);
  color: #fed7aa;
  border: 1px solid #ea580c;
}
.theme-konser-akustik-indie-senja .card-message-text {
  color: #ffedd5;
}
.theme-konser-akustik-indie-senja .card-event-block {
  background-color: rgba(26, 10, 19, 0.94);
  border: 1px solid #c2410c;
  color: #fed7aa;
}


/* --- Templates 119-168: 50 New Themes --- */
.theme-cyber-hologram-party {
  background: radial-gradient(circle at 50% 20%, #0f2b48 0%, #081427 60%, #040813 100%);
  color: #f8fafc;
  border-color: #06b6d4;
  box-shadow: 0 16px 45px rgba(6, 182, 212, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-cyber-hologram-party .card-ornament {
  border-color: #06b6d4;
  opacity: 0.85;
}
.theme-cyber-hologram-party .card-salutation-text,
.theme-cyber-hologram-party .divider-gem,
.theme-cyber-hologram-party .card-title-text,
.theme-cyber-hologram-party .card-recipient-name {
  color: #06b6d4;
  text-shadow: 0 0 16px rgba(6, 182, 212, 0.4);
}
.theme-cyber-hologram-party .card-milestone-text {
  background-color: rgba(6, 182, 212, 0.25);
  color: #a5f3fc;
  border: 1px solid #0891b2;
}
.theme-cyber-hologram-party .card-message-text {
  color: #f8fafc;
}
.theme-cyber-hologram-party .card-event-block {
  background-color: rgba(8, 20, 39, 0.94);
  border: 1px solid #0891b2;
  color: #67e8f9;
}

.theme-safari-jungle-carnival {
  background: radial-gradient(circle at 50% 20%, #153e24 0%, #0c2616 60%, #06130b 100%);
  color: #f8fafc;
  border-color: #10b981;
  box-shadow: 0 16px 45px rgba(16, 185, 129, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-safari-jungle-carnival .card-ornament {
  border-color: #10b981;
  opacity: 0.85;
}
.theme-safari-jungle-carnival .card-salutation-text,
.theme-safari-jungle-carnival .divider-gem,
.theme-safari-jungle-carnival .card-title-text,
.theme-safari-jungle-carnival .card-recipient-name {
  color: #10b981;
  text-shadow: 0 0 16px rgba(16, 185, 129, 0.35);
}
.theme-safari-jungle-carnival .card-milestone-text {
  background-color: rgba(16, 185, 129, 0.25);
  color: #d1fae5;
  border: 1px solid #059669;
}
.theme-safari-jungle-carnival .card-message-text {
  color: #f8fafc;
}
.theme-safari-jungle-carnival .card-event-block {
  background-color: rgba(12, 38, 22, 0.94);
  border: 1px solid #059669;
  color: #a7f3d0;
}

.theme-magic-wizard-academy {
  background: radial-gradient(circle at 50% 20%, #241656 0%, #140d33 60%, #080516 100%);
  color: #f8fafc;
  border-color: #818cf8;
  box-shadow: 0 16px 45px rgba(129, 140, 248, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-magic-wizard-academy .card-ornament {
  border-color: #818cf8;
  opacity: 0.85;
}
.theme-magic-wizard-academy .card-salutation-text,
.theme-magic-wizard-academy .divider-gem,
.theme-magic-wizard-academy .card-title-text,
.theme-magic-wizard-academy .card-recipient-name {
  color: #818cf8;
  text-shadow: 0 0 16px rgba(129, 140, 248, 0.4);
}
.theme-magic-wizard-academy .card-milestone-text {
  background-color: rgba(129, 140, 248, 0.25);
  color: #e0e7ff;
  border: 1px solid #6366f1;
}
.theme-magic-wizard-academy .card-message-text {
  color: #f8fafc;
}
.theme-magic-wizard-academy .card-event-block {
  background-color: rgba(20, 13, 51, 0.94);
  border: 1px solid #6366f1;
  color: #c7d2fe;
}

.theme-candy-wonderland-pop {
  background: radial-gradient(circle at 50% 20%, #4a1334 0%, #2e0b20 60%, #14040d 100%);
  color: #f8fafc;
  border-color: #ec4899;
  box-shadow: 0 16px 45px rgba(236, 72, 153, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-candy-wonderland-pop .card-ornament {
  border-color: #ec4899;
  opacity: 0.85;
}
.theme-candy-wonderland-pop .card-salutation-text,
.theme-candy-wonderland-pop .divider-gem,
.theme-candy-wonderland-pop .card-title-text,
.theme-candy-wonderland-pop .card-recipient-name {
  color: #ec4899;
  text-shadow: 0 0 16px rgba(236, 72, 153, 0.4);
}
.theme-candy-wonderland-pop .card-milestone-text {
  background-color: rgba(236, 72, 153, 0.25);
  color: #fce7f3;
  border: 1px solid #db2777;
}
.theme-candy-wonderland-pop .card-message-text {
  color: #f8fafc;
}
.theme-candy-wonderland-pop .card-event-block {
  background-color: rgba(46, 11, 32, 0.94);
  border: 1px solid #db2777;
  color: #fbcfe8;
}

.theme-pirate-treasure-island {
  background: radial-gradient(circle at 50% 20%, #15375c 0%, #0a1f36 60%, #040e1a 100%);
  color: #f8fafc;
  border-color: #0284c7;
  box-shadow: 0 16px 45px rgba(2, 132, 199, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-pirate-treasure-island .card-ornament {
  border-color: #0284c7;
  opacity: 0.85;
}
.theme-pirate-treasure-island .card-salutation-text,
.theme-pirate-treasure-island .divider-gem,
.theme-pirate-treasure-island .card-title-text,
.theme-pirate-treasure-island .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(2, 132, 199, 0.35);
}
.theme-pirate-treasure-island .card-milestone-text {
  background-color: rgba(2, 132, 199, 0.25);
  color: #e0f2fe;
  border: 1px solid #0284c7;
}
.theme-pirate-treasure-island .card-message-text {
  color: #f8fafc;
}
.theme-pirate-treasure-island .card-event-block {
  background-color: rgba(10, 31, 54, 0.94);
  border: 1px solid #0284c7;
  color: #7dd3fc;
}

.theme-supercar-speed-grand-prix {
  background: radial-gradient(circle at 50% 20%, #3b1111 0%, #200909 60%, #0d0303 100%);
  color: #f8fafc;
  border-color: #ef4444;
  box-shadow: 0 16px 45px rgba(239, 68, 68, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-supercar-speed-grand-prix .card-ornament {
  border-color: #ef4444;
  opacity: 0.85;
}
.theme-supercar-speed-grand-prix .card-salutation-text,
.theme-supercar-speed-grand-prix .divider-gem,
.theme-supercar-speed-grand-prix .card-title-text,
.theme-supercar-speed-grand-prix .card-recipient-name {
  color: #ef4444;
  text-shadow: 0 0 16px rgba(239, 68, 68, 0.4);
}
.theme-supercar-speed-grand-prix .card-milestone-text {
  background-color: rgba(239, 68, 68, 0.25);
  color: #fee2e2;
  border: 1px solid #dc2626;
}
.theme-supercar-speed-grand-prix .card-message-text {
  color: #f8fafc;
}
.theme-supercar-speed-grand-prix .card-event-block {
  background-color: rgba(32, 9, 9, 0.94);
  border: 1px solid #dc2626;
  color: #fca5a5;
}

.theme-space-alien-ufo-odyssey {
  background: radial-gradient(circle at 50% 20%, #280f58 0%, #150630 60%, #080214 100%);
  color: #f8fafc;
  border-color: #a855f7;
  box-shadow: 0 16px 45px rgba(168, 85, 247, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-space-alien-ufo-odyssey .card-ornament {
  border-color: #a855f7;
  opacity: 0.85;
}
.theme-space-alien-ufo-odyssey .card-salutation-text,
.theme-space-alien-ufo-odyssey .divider-gem,
.theme-space-alien-ufo-odyssey .card-title-text,
.theme-space-alien-ufo-odyssey .card-recipient-name {
  color: #a855f7;
  text-shadow: 0 0 16px rgba(168, 85, 247, 0.4);
}
.theme-space-alien-ufo-odyssey .card-milestone-text {
  background-color: rgba(168, 85, 247, 0.25);
  color: #f3e8ff;
  border: 1px solid #9333ea;
}
.theme-space-alien-ufo-odyssey .card-message-text {
  color: #f8fafc;
}
.theme-space-alien-ufo-odyssey .card-event-block {
  background-color: rgba(21, 6, 48, 0.94);
  border: 1px solid #9333ea;
  color: #d8b4fe;
}

.theme-mermaid-underwater-coral {
  background: radial-gradient(circle at 50% 20%, #10424d 0%, #08252b 60%, #031013 100%);
  color: #f8fafc;
  border-color: #14b8a6;
  box-shadow: 0 16px 45px rgba(20, 184, 166, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-mermaid-underwater-coral .card-ornament {
  border-color: #14b8a6;
  opacity: 0.85;
}
.theme-mermaid-underwater-coral .card-salutation-text,
.theme-mermaid-underwater-coral .divider-gem,
.theme-mermaid-underwater-coral .card-title-text,
.theme-mermaid-underwater-coral .card-recipient-name {
  color: #2dd4bf;
  text-shadow: 0 0 16px rgba(20, 184, 166, 0.4);
}
.theme-mermaid-underwater-coral .card-milestone-text {
  background-color: rgba(20, 184, 166, 0.25);
  color: #ccfbf1;
  border: 1px solid #0d9488;
}
.theme-mermaid-underwater-coral .card-message-text {
  color: #f8fafc;
}
.theme-mermaid-underwater-coral .card-event-block {
  background-color: rgba(8, 37, 43, 0.94);
  border: 1px solid #0d9488;
  color: #5eead4;
}

.theme-super-chef-cooking-gala {
  background: radial-gradient(circle at 50% 20%, #471e0c 0%, #291005 60%, #120601 100%);
  color: #f8fafc;
  border-color: #ea580c;
  box-shadow: 0 16px 45px rgba(234, 88, 12, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-super-chef-cooking-gala .card-ornament {
  border-color: #ea580c;
  opacity: 0.85;
}
.theme-super-chef-cooking-gala .card-salutation-text,
.theme-super-chef-cooking-gala .divider-gem,
.theme-super-chef-cooking-gala .card-title-text,
.theme-super-chef-cooking-gala .card-recipient-name {
  color: #f97316;
  text-shadow: 0 0 16px rgba(234, 88, 12, 0.4);
}
.theme-super-chef-cooking-gala .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.25);
  color: #ffedd5;
  border: 1px solid #c2410c;
}
.theme-super-chef-cooking-gala .card-message-text {
  color: #f8fafc;
}
.theme-super-chef-cooking-gala .card-event-block {
  background-color: rgba(41, 16, 5, 0.94);
  border: 1px solid #c2410c;
  color: #fdba74;
}

.theme-golden-balloon-fiesta {
  background: radial-gradient(circle at 50% 20%, #38240a 0%, #1f1304 60%, #0d0701 100%);
  color: #f8fafc;
  border-color: #eab308;
  box-shadow: 0 16px 45px rgba(234, 179, 8, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-golden-balloon-fiesta .card-ornament {
  border-color: #eab308;
  opacity: 0.85;
}
.theme-golden-balloon-fiesta .card-salutation-text,
.theme-golden-balloon-fiesta .divider-gem,
.theme-golden-balloon-fiesta .card-title-text,
.theme-golden-balloon-fiesta .card-recipient-name {
  color: #facc15;
  text-shadow: 0 0 16px rgba(234, 179, 8, 0.4);
}
.theme-golden-balloon-fiesta .card-milestone-text {
  background-color: rgba(234, 179, 8, 0.25);
  color: #fefce8;
  border: 1px solid #ca8a04;
}
.theme-golden-balloon-fiesta .card-message-text {
  color: #f8fafc;
}
.theme-golden-balloon-fiesta .card-event-block {
  background-color: rgba(31, 19, 4, 0.94);
  border: 1px solid #ca8a04;
  color: #fde047;
}

.theme-aurora-boreal-nordic-love {
  background: radial-gradient(circle at 50% 20%, #0e3b3f 0%, #061e21 60%, #020c0e 100%);
  color: #f8fafc;
  border-color: #10b981;
  box-shadow: 0 16px 45px rgba(16, 185, 129, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-aurora-boreal-nordic-love .card-ornament {
  border-color: #10b981;
  opacity: 0.85;
}
.theme-aurora-boreal-nordic-love .card-salutation-text,
.theme-aurora-boreal-nordic-love .divider-gem,
.theme-aurora-boreal-nordic-love .card-title-text,
.theme-aurora-boreal-nordic-love .card-recipient-name {
  color: #34d399;
  text-shadow: 0 0 16px rgba(16, 185, 129, 0.35);
}
.theme-aurora-boreal-nordic-love .card-milestone-text {
  background-color: rgba(16, 185, 129, 0.25);
  color: #d1fae5;
  border: 1px solid #059669;
}
.theme-aurora-boreal-nordic-love .card-message-text {
  color: #f8fafc;
}
.theme-aurora-boreal-nordic-love .card-event-block {
  background-color: rgba(6, 30, 33, 0.94);
  border: 1px solid #059669;
  color: #6ee7b7;
}

.theme-venice-gondola-serenade {
  background: radial-gradient(circle at 50% 20%, #182e59 0%, #0d1933 60%, #050a17 100%);
  color: #f8fafc;
  border-color: #3b82f6;
  box-shadow: 0 16px 45px rgba(59, 130, 246, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-venice-gondola-serenade .card-ornament {
  border-color: #3b82f6;
  opacity: 0.85;
}
.theme-venice-gondola-serenade .card-salutation-text,
.theme-venice-gondola-serenade .divider-gem,
.theme-venice-gondola-serenade .card-title-text,
.theme-venice-gondola-serenade .card-recipient-name {
  color: #60a5fa;
  text-shadow: 0 0 16px rgba(59, 130, 246, 0.35);
}
.theme-venice-gondola-serenade .card-milestone-text {
  background-color: rgba(59, 130, 246, 0.25);
  color: #dbeafe;
  border: 1px solid #2563eb;
}
.theme-venice-gondola-serenade .card-message-text {
  color: #f8fafc;
}
.theme-venice-gondola-serenade .card-event-block {
  background-color: rgba(13, 25, 51, 0.94);
  border: 1px solid #2563eb;
  color: #93c5fd;
}

.theme-autumn-maple-whisper {
  background: radial-gradient(circle at 50% 20%, #3d1708 0%, #210c04 60%, #0d0401 100%);
  color: #f8fafc;
  border-color: #ea580c;
  box-shadow: 0 16px 45px rgba(234, 88, 12, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-autumn-maple-whisper .card-ornament {
  border-color: #ea580c;
  opacity: 0.85;
}
.theme-autumn-maple-whisper .card-salutation-text,
.theme-autumn-maple-whisper .divider-gem,
.theme-autumn-maple-whisper .card-title-text,
.theme-autumn-maple-whisper .card-recipient-name {
  color: #fb923c;
  text-shadow: 0 0 16px rgba(234, 88, 12, 0.4);
}
.theme-autumn-maple-whisper .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.25);
  color: #ffedd5;
  border: 1px solid #c2410c;
}
.theme-autumn-maple-whisper .card-message-text {
  color: #f8fafc;
}
.theme-autumn-maple-whisper .card-event-block {
  background-color: rgba(33, 12, 4, 0.94);
  border: 1px solid #c2410c;
  color: #fdba74;
}

.theme-diamond-forever-jubilee {
  background: radial-gradient(circle at 50% 20%, #1a3359 0%, #0d1c33 60%, #050a14 100%);
  color: #f8fafc;
  border-color: #38bdf8;
  box-shadow: 0 16px 45px rgba(56, 189, 248, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-diamond-forever-jubilee .card-ornament {
  border-color: #38bdf8;
  opacity: 0.85;
}
.theme-diamond-forever-jubilee .card-salutation-text,
.theme-diamond-forever-jubilee .divider-gem,
.theme-diamond-forever-jubilee .card-title-text,
.theme-diamond-forever-jubilee .card-recipient-name {
  color: #7dd3fc;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.4);
}
.theme-diamond-forever-jubilee .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.25);
  color: #e0f2fe;
  border: 1px solid #0284c7;
}
.theme-diamond-forever-jubilee .card-message-text {
  color: #f8fafc;
}
.theme-diamond-forever-jubilee .card-event-block {
  background-color: rgba(13, 28, 51, 0.94);
  border: 1px solid #0284c7;
  color: #bae6fd;
}

.theme-santorini-sunset-bliss {
  background: radial-gradient(circle at 50% 20%, #143763 0%, #0a1f38 60%, #040c17 100%);
  color: #f8fafc;
  border-color: #0ea5e9;
  box-shadow: 0 16px 45px rgba(14, 165, 233, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-santorini-sunset-bliss .card-ornament {
  border-color: #0ea5e9;
  opacity: 0.85;
}
.theme-santorini-sunset-bliss .card-salutation-text,
.theme-santorini-sunset-bliss .divider-gem,
.theme-santorini-sunset-bliss .card-title-text,
.theme-santorini-sunset-bliss .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(14, 165, 233, 0.35);
}
.theme-santorini-sunset-bliss .card-milestone-text {
  background-color: rgba(14, 165, 233, 0.25);
  color: #e0f2fe;
  border: 1px solid #0284c7;
}
.theme-santorini-sunset-bliss .card-message-text {
  color: #f8fafc;
}
.theme-santorini-sunset-bliss .card-event-block {
  background-color: rgba(10, 31, 56, 0.94);
  border: 1px solid #0284c7;
  color: #7dd3fc;
}

.theme-moonlight-lake-swan {
  background: radial-gradient(circle at 50% 20%, #182b54 0%, #0d172e 60%, #050914 100%);
  color: #f8fafc;
  border-color: #6366f1;
  box-shadow: 0 16px 45px rgba(99, 102, 241, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-moonlight-lake-swan .card-ornament {
  border-color: #6366f1;
  opacity: 0.85;
}
.theme-moonlight-lake-swan .card-salutation-text,
.theme-moonlight-lake-swan .divider-gem,
.theme-moonlight-lake-swan .card-title-text,
.theme-moonlight-lake-swan .card-recipient-name {
  color: #818cf8;
  text-shadow: 0 0 16px rgba(99, 102, 241, 0.35);
}
.theme-moonlight-lake-swan .card-milestone-text {
  background-color: rgba(99, 102, 241, 0.25);
  color: #e0e7ff;
  border: 1px solid #4f46e5;
}
.theme-moonlight-lake-swan .card-message-text {
  color: #f8fafc;
}
.theme-moonlight-lake-swan .card-event-block {
  background-color: rgba(13, 23, 46, 0.94);
  border: 1px solid #4f46e5;
  color: #a5b4fc;
}

.theme-tuscany-vineyard-romance {
  background: radial-gradient(circle at 50% 20%, #3e0e21 0%, #210711 60%, #0d0206 100%);
  color: #f8fafc;
  border-color: #e11d48;
  box-shadow: 0 16px 45px rgba(225, 29, 72, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-tuscany-vineyard-romance .card-ornament {
  border-color: #e11d48;
  opacity: 0.85;
}
.theme-tuscany-vineyard-romance .card-salutation-text,
.theme-tuscany-vineyard-romance .divider-gem,
.theme-tuscany-vineyard-romance .card-title-text,
.theme-tuscany-vineyard-romance .card-recipient-name {
  color: #fb7185;
  text-shadow: 0 0 16px rgba(225, 29, 72, 0.4);
}
.theme-tuscany-vineyard-romance .card-milestone-text {
  background-color: rgba(225, 29, 72, 0.25);
  color: #ffe4e6;
  border: 1px solid #be123c;
}
.theme-tuscany-vineyard-romance .card-message-text {
  color: #f8fafc;
}
.theme-tuscany-vineyard-romance .card-event-block {
  background-color: rgba(33, 7, 17, 0.94);
  border: 1px solid #be123c;
  color: #fda4af;
}

.theme-stargazing-celestial-dome {
  background: radial-gradient(circle at 50% 20%, #181d4a 0%, #0d1029 60%, #050612 100%);
  color: #f8fafc;
  border-color: #6366f1;
  box-shadow: 0 16px 45px rgba(99, 102, 241, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-stargazing-celestial-dome .card-ornament {
  border-color: #6366f1;
  opacity: 0.85;
}
.theme-stargazing-celestial-dome .card-salutation-text,
.theme-stargazing-celestial-dome .divider-gem,
.theme-stargazing-celestial-dome .card-title-text,
.theme-stargazing-celestial-dome .card-recipient-name {
  color: #818cf8;
  text-shadow: 0 0 16px rgba(99, 102, 241, 0.4);
}
.theme-stargazing-celestial-dome .card-milestone-text {
  background-color: rgba(99, 102, 241, 0.25);
  color: #e0e7ff;
  border: 1px solid #4f46e5;
}
.theme-stargazing-celestial-dome .card-message-text {
  color: #f8fafc;
}
.theme-stargazing-celestial-dome .card-event-block {
  background-color: rgba(13, 16, 41, 0.94);
  border: 1px solid #4f46e5;
  color: #a5b4fc;
}

.theme-ruby-40th-anniversary {
  background: radial-gradient(circle at 50% 20%, #3e0c19 0%, #21060d 60%, #0d0205 100%);
  color: #f8fafc;
  border-color: #e11d48;
  box-shadow: 0 16px 45px rgba(225, 29, 72, 0.45), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-ruby-40th-anniversary .card-ornament {
  border-color: #e11d48;
  opacity: 0.85;
}
.theme-ruby-40th-anniversary .card-salutation-text,
.theme-ruby-40th-anniversary .divider-gem,
.theme-ruby-40th-anniversary .card-title-text,
.theme-ruby-40th-anniversary .card-recipient-name {
  color: #fb7185;
  text-shadow: 0 0 16px rgba(225, 29, 72, 0.45);
}
.theme-ruby-40th-anniversary .card-milestone-text {
  background-color: rgba(225, 29, 72, 0.25);
  color: #ffe4e6;
  border: 1px solid #be123c;
}
.theme-ruby-40th-anniversary .card-message-text {
  color: #f8fafc;
}
.theme-ruby-40th-anniversary .card-event-block {
  background-color: rgba(33, 6, 13, 0.94);
  border: 1px solid #be123c;
  color: #fda4af;
}

.theme-casablanca-mon-amour {
  background: radial-gradient(circle at 50% 20%, #362310 0%, #1c1208 60%, #0a0603 100%);
  color: #f8fafc;
  border-color: #d97706;
  box-shadow: 0 16px 45px rgba(217, 119, 6, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-casablanca-mon-amour .card-ornament {
  border-color: #d97706;
  opacity: 0.85;
}
.theme-casablanca-mon-amour .card-salutation-text,
.theme-casablanca-mon-amour .divider-gem,
.theme-casablanca-mon-amour .card-title-text,
.theme-casablanca-mon-amour .card-recipient-name {
  color: #f59e0b;
  text-shadow: 0 0 16px rgba(217, 119, 6, 0.35);
}
.theme-casablanca-mon-amour .card-milestone-text {
  background-color: rgba(217, 119, 6, 0.25);
  color: #fef3c7;
  border: 1px solid #b45309;
}
.theme-casablanca-mon-amour .card-message-text {
  color: #f8fafc;
}
.theme-casablanca-mon-amour .card-event-block {
  background-color: rgba(28, 18, 8, 0.94);
  border: 1px solid #b45309;
  color: #fcd34d;
}

.theme-aceh-pinto-khop-mahkota {
  background: radial-gradient(circle at 50% 20%, #3f0e18 0%, #24080e 60%, #0d0305 100%);
  color: #f8fafc;
  border-color: #e11d48;
  box-shadow: 0 16px 45px rgba(225, 29, 72, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-aceh-pinto-khop-mahkota .card-ornament {
  border-color: #e11d48;
  opacity: 0.85;
}
.theme-aceh-pinto-khop-mahkota .card-salutation-text,
.theme-aceh-pinto-khop-mahkota .divider-gem,
.theme-aceh-pinto-khop-mahkota .card-title-text,
.theme-aceh-pinto-khop-mahkota .card-recipient-name {
  color: #facc15;
  text-shadow: 0 0 16px rgba(225, 29, 72, 0.4);
}
.theme-aceh-pinto-khop-mahkota .card-milestone-text {
  background-color: rgba(225, 29, 72, 0.25);
  color: #fef08a;
  border: 1px solid #be123c;
}
.theme-aceh-pinto-khop-mahkota .card-message-text {
  color: #f8fafc;
}
.theme-aceh-pinto-khop-mahkota .card-event-block {
  background-color: rgba(36, 8, 14, 0.94);
  border: 1px solid #be123c;
  color: #fef08a;
}

.theme-banjar-baamar-alas {
  background: radial-gradient(circle at 50% 20%, #144227 0%, #0a2415 60%, #040f09 100%);
  color: #f8fafc;
  border-color: #15803d;
  box-shadow: 0 16px 45px rgba(21, 128, 61, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-banjar-baamar-alas .card-ornament {
  border-color: #15803d;
  opacity: 0.85;
}
.theme-banjar-baamar-alas .card-salutation-text,
.theme-banjar-baamar-alas .divider-gem,
.theme-banjar-baamar-alas .card-title-text,
.theme-banjar-baamar-alas .card-recipient-name {
  color: #facc15;
  text-shadow: 0 0 16px rgba(21, 128, 61, 0.35);
}
.theme-banjar-baamar-alas .card-milestone-text {
  background-color: rgba(21, 128, 61, 0.25);
  color: #fefce8;
  border: 1px solid #15803d;
}
.theme-banjar-baamar-alas .card-message-text {
  color: #f8fafc;
}
.theme-banjar-baamar-alas .card-event-block {
  background-color: rgba(10, 36, 21, 0.94);
  border: 1px solid #15803d;
  color: #bbf7d0;
}

.theme-lampung-siger-agung {
  background: radial-gradient(circle at 50% 20%, #42101e 0%, #260a12 60%, #0f0307 100%);
  color: #f8fafc;
  border-color: #dc2626;
  box-shadow: 0 16px 45px rgba(220, 38, 38, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-lampung-siger-agung .card-ornament {
  border-color: #dc2626;
  opacity: 0.85;
}
.theme-lampung-siger-agung .card-salutation-text,
.theme-lampung-siger-agung .divider-gem,
.theme-lampung-siger-agung .card-title-text,
.theme-lampung-siger-agung .card-recipient-name {
  color: #fde047;
  text-shadow: 0 0 16px rgba(220, 38, 38, 0.4);
}
.theme-lampung-siger-agung .card-milestone-text {
  background-color: rgba(220, 38, 38, 0.25);
  color: #fefce8;
  border: 1px solid #b91c1c;
}
.theme-lampung-siger-agung .card-message-text {
  color: #f8fafc;
}
.theme-lampung-siger-agung .card-event-block {
  background-color: rgba(38, 10, 18, 0.94);
  border: 1px solid #b91c1c;
  color: #fde047;
}

.theme-papua-cendrawasih-harmony {
  background: radial-gradient(circle at 50% 20%, #331f0a 0%, #1c1106 60%, #0a0602 100%);
  color: #f8fafc;
  border-color: #d97706;
  box-shadow: 0 16px 45px rgba(217, 119, 6, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-papua-cendrawasih-harmony .card-ornament {
  border-color: #d97706;
  opacity: 0.85;
}
.theme-papua-cendrawasih-harmony .card-salutation-text,
.theme-papua-cendrawasih-harmony .divider-gem,
.theme-papua-cendrawasih-harmony .card-title-text,
.theme-papua-cendrawasih-harmony .card-recipient-name {
  color: #fbbf24;
  text-shadow: 0 0 16px rgba(217, 119, 6, 0.35);
}
.theme-papua-cendrawasih-harmony .card-milestone-text {
  background-color: rgba(217, 119, 6, 0.25);
  color: #fef3c7;
  border: 1px solid #b45309;
}
.theme-papua-cendrawasih-harmony .card-message-text {
  color: #f8fafc;
}
.theme-papua-cendrawasih-harmony .card-event-block {
  background-color: rgba(28, 17, 6, 0.94);
  border: 1px solid #b45309;
  color: #fcd34d;
}

.theme-cinderella-glass-carriage {
  background: radial-gradient(circle at 50% 20%, #1b3563 0%, #0e1d38 60%, #050a14 100%);
  color: #f8fafc;
  border-color: #60a5fa;
  box-shadow: 0 16px 45px rgba(96, 165, 250, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-cinderella-glass-carriage .card-ornament {
  border-color: #60a5fa;
  opacity: 0.85;
}
.theme-cinderella-glass-carriage .card-salutation-text,
.theme-cinderella-glass-carriage .divider-gem,
.theme-cinderella-glass-carriage .card-title-text,
.theme-cinderella-glass-carriage .card-recipient-name {
  color: #93c5fd;
  text-shadow: 0 0 16px rgba(96, 165, 250, 0.4);
}
.theme-cinderella-glass-carriage .card-milestone-text {
  background-color: rgba(96, 165, 250, 0.25);
  color: #eff6ff;
  border: 1px solid #2563eb;
}
.theme-cinderella-glass-carriage .card-message-text {
  color: #f8fafc;
}
.theme-cinderella-glass-carriage .card-event-block {
  background-color: rgba(14, 29, 56, 0.94);
  border: 1px solid #2563eb;
  color: #bfdbfe;
}

.theme-gothic-victorian-glamour {
  background: radial-gradient(circle at 50% 20%, #2a0b16 0%, #17050b 60%, #0a0204 100%);
  color: #f8fafc;
  border-color: #9f1239;
  box-shadow: 0 16px 45px rgba(159, 18, 57, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-gothic-victorian-glamour .card-ornament {
  border-color: #9f1239;
  opacity: 0.85;
}
.theme-gothic-victorian-glamour .card-salutation-text,
.theme-gothic-victorian-glamour .divider-gem,
.theme-gothic-victorian-glamour .card-title-text,
.theme-gothic-victorian-glamour .card-recipient-name {
  color: #fb7185;
  text-shadow: 0 0 16px rgba(159, 18, 57, 0.4);
}
.theme-gothic-victorian-glamour .card-milestone-text {
  background-color: rgba(159, 18, 57, 0.25);
  color: #ffe4e6;
  border: 1px solid #881337;
}
.theme-gothic-victorian-glamour .card-message-text {
  color: #f8fafc;
}
.theme-gothic-victorian-glamour .card-event-block {
  background-color: rgba(23, 5, 11, 0.94);
  border: 1px solid #881337;
  color: #fda4af;
}

.theme-moroccan-tent-oasis {
  background: radial-gradient(circle at 50% 20%, #3b1a0c 0%, #210d06 60%, #0d0502 100%);
  color: #f8fafc;
  border-color: #ea580c;
  box-shadow: 0 16px 45px rgba(234, 88, 12, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-moroccan-tent-oasis .card-ornament {
  border-color: #ea580c;
  opacity: 0.85;
}
.theme-moroccan-tent-oasis .card-salutation-text,
.theme-moroccan-tent-oasis .divider-gem,
.theme-moroccan-tent-oasis .card-title-text,
.theme-moroccan-tent-oasis .card-recipient-name {
  color: #fb923c;
  text-shadow: 0 0 16px rgba(234, 88, 12, 0.4);
}
.theme-moroccan-tent-oasis .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.25);
  color: #ffedd5;
  border: 1px solid #c2410c;
}
.theme-moroccan-tent-oasis .card-message-text {
  color: #f8fafc;
}
.theme-moroccan-tent-oasis .card-event-block {
  background-color: rgba(33, 13, 6, 0.94);
  border: 1px solid #c2410c;
  color: #fdba74;
}

.theme-zen-shinto-bamboo-wedding {
  background: radial-gradient(circle at 50% 20%, #1a4229 0%, #0e2617 60%, #050f09 100%);
  color: #f8fafc;
  border-color: #15803d;
  box-shadow: 0 16px 45px rgba(21, 128, 61, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-zen-shinto-bamboo-wedding .card-ornament {
  border-color: #15803d;
  opacity: 0.85;
}
.theme-zen-shinto-bamboo-wedding .card-salutation-text,
.theme-zen-shinto-bamboo-wedding .divider-gem,
.theme-zen-shinto-bamboo-wedding .card-title-text,
.theme-zen-shinto-bamboo-wedding .card-recipient-name {
  color: #86efac;
  text-shadow: 0 0 16px rgba(21, 128, 61, 0.35);
}
.theme-zen-shinto-bamboo-wedding .card-milestone-text {
  background-color: rgba(21, 128, 61, 0.25);
  color: #dcfce7;
  border: 1px solid #15803d;
}
.theme-zen-shinto-bamboo-wedding .card-message-text {
  color: #f8fafc;
}
.theme-zen-shinto-bamboo-wedding .card-event-block {
  background-color: rgba(14, 38, 23, 0.94);
  border: 1px solid #15803d;
  color: #86efac;
}

.theme-bohemian-macrame-sunset {
  background: radial-gradient(circle at 50% 20%, #382111 0%, #21130a 60%, #0d0704 100%);
  color: #f8fafc;
  border-color: #b45309;
  box-shadow: 0 16px 45px rgba(180, 83, 9, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-bohemian-macrame-sunset .card-ornament {
  border-color: #b45309;
  opacity: 0.85;
}
.theme-bohemian-macrame-sunset .card-salutation-text,
.theme-bohemian-macrame-sunset .divider-gem,
.theme-bohemian-macrame-sunset .card-title-text,
.theme-bohemian-macrame-sunset .card-recipient-name {
  color: #f59e0b;
  text-shadow: 0 0 16px rgba(180, 83, 9, 0.35);
}
.theme-bohemian-macrame-sunset .card-milestone-text {
  background-color: rgba(180, 83, 9, 0.25);
  color: #fef3c7;
  border: 1px solid #b45309;
}
.theme-bohemian-macrame-sunset .card-message-text {
  color: #f8fafc;
}
.theme-bohemian-macrame-sunset .card-event-block {
  background-color: rgba(33, 19, 10, 0.94);
  border: 1px solid #b45309;
  color: #fcd34d;
}

.theme-celestial-galaxy-nuptials {
  background: radial-gradient(circle at 50% 20%, #201759 0%, #100b30 60%, #060414 100%);
  color: #f8fafc;
  border-color: #7c3aed;
  box-shadow: 0 16px 45px rgba(124, 58, 237, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-celestial-galaxy-nuptials .card-ornament {
  border-color: #7c3aed;
  opacity: 0.85;
}
.theme-celestial-galaxy-nuptials .card-salutation-text,
.theme-celestial-galaxy-nuptials .divider-gem,
.theme-celestial-galaxy-nuptials .card-title-text,
.theme-celestial-galaxy-nuptials .card-recipient-name {
  color: #a78bfa;
  text-shadow: 0 0 16px rgba(124, 58, 237, 0.4);
}
.theme-celestial-galaxy-nuptials .card-milestone-text {
  background-color: rgba(124, 58, 237, 0.25);
  color: #ede9fe;
  border: 1px solid #6d28d9;
}
.theme-celestial-galaxy-nuptials .card-message-text {
  color: #f8fafc;
}
.theme-celestial-galaxy-nuptials .card-event-block {
  background-color: rgba(16, 11, 48, 0.94);
  border: 1px solid #6d28d9;
  color: #c4b5fd;
}

.theme-maritime-kapten-pelayaran {
  background: radial-gradient(circle at 50% 20%, #123359 0%, #091c33 60%, #040d17 100%);
  color: #f8fafc;
  border-color: #0284c7;
  box-shadow: 0 16px 45px rgba(2, 132, 199, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-maritime-kapten-pelayaran .card-ornament {
  border-color: #0284c7;
  opacity: 0.85;
}
.theme-maritime-kapten-pelayaran .card-salutation-text,
.theme-maritime-kapten-pelayaran .divider-gem,
.theme-maritime-kapten-pelayaran .card-title-text,
.theme-maritime-kapten-pelayaran .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(2, 132, 199, 0.35);
}
.theme-maritime-kapten-pelayaran .card-milestone-text {
  background-color: rgba(2, 132, 199, 0.25);
  color: #e0f2fe;
  border: 1px solid #0284c7;
}
.theme-maritime-kapten-pelayaran .card-message-text {
  color: #f8fafc;
}
.theme-maritime-kapten-pelayaran .card-event-block {
  background-color: rgba(9, 28, 51, 0.94);
  border: 1px solid #0284c7;
  color: #7dd3fc;
}

.theme-culinary-arts-mastery {
  background: radial-gradient(circle at 50% 20%, #361e0d 0%, #1f1006 60%, #0d0602 100%);
  color: #f8fafc;
  border-color: #b45309;
  box-shadow: 0 16px 45px rgba(180, 83, 9, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-culinary-arts-mastery .card-ornament {
  border-color: #b45309;
  opacity: 0.85;
}
.theme-culinary-arts-mastery .card-salutation-text,
.theme-culinary-arts-mastery .divider-gem,
.theme-culinary-arts-mastery .card-title-text,
.theme-culinary-arts-mastery .card-recipient-name {
  color: #f59e0b;
  text-shadow: 0 0 16px rgba(180, 83, 9, 0.35);
}
.theme-culinary-arts-mastery .card-milestone-text {
  background-color: rgba(180, 83, 9, 0.25);
  color: #fef3c7;
  border: 1px solid #b45309;
}
.theme-culinary-arts-mastery .card-message-text {
  color: #f8fafc;
}
.theme-culinary-arts-mastery .card-event-block {
  background-color: rgba(31, 16, 6, 0.94);
  border: 1px solid #b45309;
  color: #fcd34d;
}

.theme-veterinary-animal-healer {
  background: radial-gradient(circle at 50% 20%, #174227 0%, #0b2415 60%, #040e08 100%);
  color: #f8fafc;
  border-color: #16a34a;
  box-shadow: 0 16px 45px rgba(22, 163, 74, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-veterinary-animal-healer .card-ornament {
  border-color: #16a34a;
  opacity: 0.85;
}
.theme-veterinary-animal-healer .card-salutation-text,
.theme-veterinary-animal-healer .divider-gem,
.theme-veterinary-animal-healer .card-title-text,
.theme-veterinary-animal-healer .card-recipient-name {
  color: #4ade80;
  text-shadow: 0 0 16px rgba(22, 163, 74, 0.35);
}
.theme-veterinary-animal-healer .card-milestone-text {
  background-color: rgba(22, 163, 74, 0.25);
  color: #dcfce7;
  border: 1px solid #16a34a;
}
.theme-veterinary-animal-healer .card-message-text {
  color: #f8fafc;
}
.theme-veterinary-animal-healer .card-event-block {
  background-color: rgba(11, 36, 21, 0.94);
  border: 1px solid #16a34a;
  color: #86efac;
}

.theme-music-conservatory-maestro {
  background: radial-gradient(circle at 50% 20%, #38150c 0%, #1f0b06 60%, #0d0402 100%);
  color: #f8fafc;
  border-color: #ea580c;
  box-shadow: 0 16px 45px rgba(234, 88, 12, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-music-conservatory-maestro .card-ornament {
  border-color: #ea580c;
  opacity: 0.85;
}
.theme-music-conservatory-maestro .card-salutation-text,
.theme-music-conservatory-maestro .divider-gem,
.theme-music-conservatory-maestro .card-title-text,
.theme-music-conservatory-maestro .card-recipient-name {
  color: #fb923c;
  text-shadow: 0 0 16px rgba(234, 88, 12, 0.4);
}
.theme-music-conservatory-maestro .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.25);
  color: #ffedd5;
  border: 1px solid #c2410c;
}
.theme-music-conservatory-maestro .card-message-text {
  color: #f8fafc;
}
.theme-music-conservatory-maestro .card-event-block {
  background-color: rgba(31, 11, 6, 0.94);
  border: 1px solid #c2410c;
  color: #fdba74;
}

.theme-aerospace-rocket-engineer {
  background: radial-gradient(circle at 50% 20%, #122e54 0%, #09192e 60%, #040a13 100%);
  color: #f8fafc;
  border-color: #0ea5e9;
  box-shadow: 0 16px 45px rgba(14, 165, 233, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-aerospace-rocket-engineer .card-ornament {
  border-color: #0ea5e9;
  opacity: 0.85;
}
.theme-aerospace-rocket-engineer .card-salutation-text,
.theme-aerospace-rocket-engineer .divider-gem,
.theme-aerospace-rocket-engineer .card-title-text,
.theme-aerospace-rocket-engineer .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(14, 165, 233, 0.35);
}
.theme-aerospace-rocket-engineer .card-milestone-text {
  background-color: rgba(14, 165, 233, 0.25);
  color: #e0f2fe;
  border: 1px solid #0284c7;
}
.theme-aerospace-rocket-engineer .card-message-text {
  color: #f8fafc;
}
.theme-aerospace-rocket-engineer .card-event-block {
  background-color: rgba(9, 25, 46, 0.94);
  border: 1px solid #0284c7;
  color: #7dd3fc;
}

.theme-fine-arts-sculptor-studio {
  background: radial-gradient(circle at 50% 20%, #341a22 0%, #1c0e12 60%, #0a0507 100%);
  color: #f8fafc;
  border-color: #e11d48;
  box-shadow: 0 16px 45px rgba(225, 29, 72, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-fine-arts-sculptor-studio .card-ornament {
  border-color: #e11d48;
  opacity: 0.85;
}
.theme-fine-arts-sculptor-studio .card-salutation-text,
.theme-fine-arts-sculptor-studio .divider-gem,
.theme-fine-arts-sculptor-studio .card-title-text,
.theme-fine-arts-sculptor-studio .card-recipient-name {
  color: #fb7185;
  text-shadow: 0 0 16px rgba(225, 29, 72, 0.4);
}
.theme-fine-arts-sculptor-studio .card-milestone-text {
  background-color: rgba(225, 29, 72, 0.25);
  color: #ffe4e6;
  border: 1px solid #be123c;
}
.theme-fine-arts-sculptor-studio .card-message-text {
  color: #f8fafc;
}
.theme-fine-arts-sculptor-studio .card-event-block {
  background-color: rgba(28, 14, 18, 0.94);
  border: 1px solid #be123c;
  color: #fda4af;
}

.theme-diplomatic-international-relations {
  background: radial-gradient(circle at 50% 20%, #142a57 0%, #0a162e 60%, #040914 100%);
  color: #f8fafc;
  border-color: #2563eb;
  box-shadow: 0 16px 45px rgba(37, 99, 235, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-diplomatic-international-relations .card-ornament {
  border-color: #2563eb;
  opacity: 0.85;
}
.theme-diplomatic-international-relations .card-salutation-text,
.theme-diplomatic-international-relations .divider-gem,
.theme-diplomatic-international-relations .card-title-text,
.theme-diplomatic-international-relations .card-recipient-name {
  color: #60a5fa;
  text-shadow: 0 0 16px rgba(37, 99, 235, 0.35);
}
.theme-diplomatic-international-relations .card-milestone-text {
  background-color: rgba(37, 99, 235, 0.25);
  color: #dbeafe;
  border: 1px solid #1d4ed8;
}
.theme-diplomatic-international-relations .card-message-text {
  color: #f8fafc;
}
.theme-diplomatic-international-relations .card-event-block {
  background-color: rgba(10, 22, 46, 0.94);
  border: 1px solid #1d4ed8;
  color: #93c5fd;
}

.theme-cyber-security-hacker-defense {
  background: radial-gradient(circle at 50% 20%, #0a3318 0%, #051c0d 60%, #020a05 100%);
  color: #f8fafc;
  border-color: #22c55e;
  box-shadow: 0 16px 45px rgba(34, 197, 94, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-cyber-security-hacker-defense .card-ornament {
  border-color: #22c55e;
  opacity: 0.85;
}
.theme-cyber-security-hacker-defense .card-salutation-text,
.theme-cyber-security-hacker-defense .divider-gem,
.theme-cyber-security-hacker-defense .card-title-text,
.theme-cyber-security-hacker-defense .card-recipient-name {
  color: #4ade80;
  text-shadow: 0 0 16px rgba(34, 197, 94, 0.4);
}
.theme-cyber-security-hacker-defense .card-milestone-text {
  background-color: rgba(34, 197, 94, 0.25);
  color: #dcfce7;
  border: 1px solid #16a34a;
}
.theme-cyber-security-hacker-defense .card-message-text {
  color: #f8fafc;
}
.theme-cyber-security-hacker-defense .card-event-block {
  background-color: rgba(5, 28, 13, 0.94);
  border: 1px solid #16a34a;
  color: #86efac;
}

.theme-environmental-green-forestry {
  background: radial-gradient(circle at 50% 20%, #114227 0%, #082415 60%, #030f08 100%);
  color: #f8fafc;
  border-color: #15803d;
  box-shadow: 0 16px 45px rgba(21, 128, 61, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-environmental-green-forestry .card-ornament {
  border-color: #15803d;
  opacity: 0.85;
}
.theme-environmental-green-forestry .card-salutation-text,
.theme-environmental-green-forestry .divider-gem,
.theme-environmental-green-forestry .card-title-text,
.theme-environmental-green-forestry .card-recipient-name {
  color: #86efac;
  text-shadow: 0 0 16px rgba(21, 128, 61, 0.35);
}
.theme-environmental-green-forestry .card-milestone-text {
  background-color: rgba(21, 128, 61, 0.25);
  color: #dcfce7;
  border: 1px solid #15803d;
}
.theme-environmental-green-forestry .card-message-text {
  color: #f8fafc;
}
.theme-environmental-green-forestry .card-event-block {
  background-color: rgba(8, 36, 21, 0.94);
  border: 1px solid #15803d;
  color: #86efac;
}

.theme-astronomy-astrophysics-phd {
  background: radial-gradient(circle at 50% 20%, #341457 0%, #1a082e 60%, #0a0312 100%);
  color: #f8fafc;
  border-color: #9333ea;
  box-shadow: 0 16px 45px rgba(147, 51, 234, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-astronomy-astrophysics-phd .card-ornament {
  border-color: #9333ea;
  opacity: 0.85;
}
.theme-astronomy-astrophysics-phd .card-salutation-text,
.theme-astronomy-astrophysics-phd .divider-gem,
.theme-astronomy-astrophysics-phd .card-title-text,
.theme-astronomy-astrophysics-phd .card-recipient-name {
  color: #c084fc;
  text-shadow: 0 0 16px rgba(147, 51, 234, 0.4);
}
.theme-astronomy-astrophysics-phd .card-milestone-text {
  background-color: rgba(147, 51, 234, 0.25);
  color: #f5f3ff;
  border: 1px solid #7e22ce;
}
.theme-astronomy-astrophysics-phd .card-message-text {
  color: #f8fafc;
}
.theme-astronomy-astrophysics-phd .card-event-block {
  background-color: rgba(26, 8, 46, 0.94);
  border: 1px solid #7e22ce;
  color: #d8b4fe;
}

.theme-festival-lampion-terbang {
  background: radial-gradient(circle at 50% 20%, #1d2661 0%, #0e1336 60%, #050717 100%);
  color: #f8fafc;
  border-color: #eab308;
  box-shadow: 0 16px 45px rgba(234, 179, 8, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-festival-lampion-terbang .card-ornament {
  border-color: #eab308;
  opacity: 0.85;
}
.theme-festival-lampion-terbang .card-salutation-text,
.theme-festival-lampion-terbang .divider-gem,
.theme-festival-lampion-terbang .card-title-text,
.theme-festival-lampion-terbang .card-recipient-name {
  color: #fbbf24;
  text-shadow: 0 0 16px rgba(234, 179, 8, 0.4);
}
.theme-festival-lampion-terbang .card-milestone-text {
  background-color: rgba(234, 179, 8, 0.25);
  color: #fefce8;
  border: 1px solid #ca8a04;
}
.theme-festival-lampion-terbang .card-message-text {
  color: #f8fafc;
}
.theme-festival-lampion-terbang .card-event-block {
  background-color: rgba(14, 19, 54, 0.94);
  border: 1px solid #ca8a04;
  color: #fde047;
}

.theme-tahfidz-quran-khataman {
  background: radial-gradient(circle at 50% 20%, #134029 0%, #092417 60%, #030e09 100%);
  color: #f8fafc;
  border-color: #10b981;
  box-shadow: 0 16px 45px rgba(16, 185, 129, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-tahfidz-quran-khataman .card-ornament {
  border-color: #10b981;
  opacity: 0.85;
}
.theme-tahfidz-quran-khataman .card-salutation-text,
.theme-tahfidz-quran-khataman .divider-gem,
.theme-tahfidz-quran-khataman .card-title-text,
.theme-tahfidz-quran-khataman .card-recipient-name {
  color: #facc15;
  text-shadow: 0 0 16px rgba(16, 185, 129, 0.35);
}
.theme-tahfidz-quran-khataman .card-milestone-text {
  background-color: rgba(16, 185, 129, 0.25);
  color: #fefce8;
  border: 1px solid #059669;
}
.theme-tahfidz-quran-khataman .card-message-text {
  color: #f8fafc;
}
.theme-tahfidz-quran-khataman .card-event-block {
  background-color: rgba(9, 36, 23, 0.94);
  border: 1px solid #059669;
  color: #fef08a;
}

.theme-housewarming-villa-tropis {
  background: radial-gradient(circle at 50% 20%, #124746 0%, #092625 60%, #030f0f 100%);
  color: #f8fafc;
  border-color: #0d9488;
  box-shadow: 0 16px 45px rgba(13, 148, 136, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-housewarming-villa-tropis .card-ornament {
  border-color: #0d9488;
  opacity: 0.85;
}
.theme-housewarming-villa-tropis .card-salutation-text,
.theme-housewarming-villa-tropis .divider-gem,
.theme-housewarming-villa-tropis .card-title-text,
.theme-housewarming-villa-tropis .card-recipient-name {
  color: #2dd4bf;
  text-shadow: 0 0 16px rgba(13, 148, 136, 0.35);
}
.theme-housewarming-villa-tropis .card-milestone-text {
  background-color: rgba(13, 148, 136, 0.25);
  color: #ccfbf1;
  border: 1px solid #0f766e;
}
.theme-housewarming-villa-tropis .card-message-text {
  color: #f8fafc;
}
.theme-housewarming-villa-tropis .card-event-block {
  background-color: rgba(9, 38, 37, 0.94);
  border: 1px solid #0f766e;
  color: #5eead4;
}

.theme-pesta-barbeque-pantai {
  background: radial-gradient(circle at 50% 20%, #3d1408 0%, #210a04 60%, #0d0401 100%);
  color: #f8fafc;
  border-color: #ea580c;
  box-shadow: 0 16px 45px rgba(234, 88, 12, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-pesta-barbeque-pantai .card-ornament {
  border-color: #ea580c;
  opacity: 0.85;
}
.theme-pesta-barbeque-pantai .card-salutation-text,
.theme-pesta-barbeque-pantai .divider-gem,
.theme-pesta-barbeque-pantai .card-title-text,
.theme-pesta-barbeque-pantai .card-recipient-name {
  color: #f97316;
  text-shadow: 0 0 16px rgba(234, 88, 12, 0.4);
}
.theme-pesta-barbeque-pantai .card-milestone-text {
  background-color: rgba(234, 88, 12, 0.25);
  color: #ffedd5;
  border: 1px solid #c2410c;
}
.theme-pesta-barbeque-pantai .card-message-text {
  color: #f8fafc;
}
.theme-pesta-barbeque-pantai .card-event-block {
  background-color: rgba(33, 10, 4, 0.94);
  border: 1px solid #c2410c;
  color: #fdba74;
}

.theme-carnival-rio-samba {
  background: radial-gradient(circle at 50% 20%, #470d25 0%, #260714 60%, #0f0208 100%);
  color: #f8fafc;
  border-color: #e11d48;
  box-shadow: 0 16px 45px rgba(225, 29, 72, 0.45), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-carnival-rio-samba .card-ornament {
  border-color: #e11d48;
  opacity: 0.85;
}
.theme-carnival-rio-samba .card-salutation-text,
.theme-carnival-rio-samba .divider-gem,
.theme-carnival-rio-samba .card-title-text,
.theme-carnival-rio-samba .card-recipient-name {
  color: #f43f5e;
  text-shadow: 0 0 16px rgba(225, 29, 72, 0.45);
}
.theme-carnival-rio-samba .card-milestone-text {
  background-color: rgba(225, 29, 72, 0.25);
  color: #ffe4e6;
  border: 1px solid #be123c;
}
.theme-carnival-rio-samba .card-message-text {
  color: #f8fafc;
}
.theme-carnival-rio-samba .card-event-block {
  background-color: rgba(38, 7, 20, 0.94);
  border: 1px solid #be123c;
  color: #fda4af;
}

.theme-pesta-taman-vintage-tea {
  background: radial-gradient(circle at 50% 20%, #381f2a 0%, #1f1017 60%, #0d060a 100%);
  color: #f8fafc;
  border-color: #db2777;
  box-shadow: 0 16px 45px rgba(219, 39, 119, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-pesta-taman-vintage-tea .card-ornament {
  border-color: #db2777;
  opacity: 0.85;
}
.theme-pesta-taman-vintage-tea .card-salutation-text,
.theme-pesta-taman-vintage-tea .divider-gem,
.theme-pesta-taman-vintage-tea .card-title-text,
.theme-pesta-taman-vintage-tea .card-recipient-name {
  color: #f472b6;
  text-shadow: 0 0 16px rgba(219, 39, 119, 0.35);
}
.theme-pesta-taman-vintage-tea .card-milestone-text {
  background-color: rgba(219, 39, 119, 0.25);
  color: #fce7f3;
  border: 1px solid #be185d;
}
.theme-pesta-taman-vintage-tea .card-message-text {
  color: #f8fafc;
}
.theme-pesta-taman-vintage-tea .card-event-block {
  background-color: rgba(31, 16, 23, 0.94);
  border: 1px solid #be185d;
  color: #f472b6;
}

.theme-inagurasi-ceo-korporat {
  background: radial-gradient(circle at 50% 20%, #142a54 0%, #09152b 60%, #040912 100%);
  color: #f8fafc;
  border-color: #0284c7;
  box-shadow: 0 16px 45px rgba(2, 132, 199, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-inagurasi-ceo-korporat .card-ornament {
  border-color: #0284c7;
  opacity: 0.85;
}
.theme-inagurasi-ceo-korporat .card-salutation-text,
.theme-inagurasi-ceo-korporat .divider-gem,
.theme-inagurasi-ceo-korporat .card-title-text,
.theme-inagurasi-ceo-korporat .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(2, 132, 199, 0.35);
}
.theme-inagurasi-ceo-korporat .card-milestone-text {
  background-color: rgba(2, 132, 199, 0.25);
  color: #e0f2fe;
  border: 1px solid #0284c7;
}
.theme-inagurasi-ceo-korporat .card-message-text {
  color: #f8fafc;
}
.theme-inagurasi-ceo-korporat .card-event-block {
  background-color: rgba(9, 21, 43, 0.94);
  border: 1px solid #0284c7;
  color: #7dd3fc;
}

.theme-festival-layang-layang-pantai {
  background: radial-gradient(circle at 50% 20%, #103c66 0%, #082138 60%, #030e17 100%);
  color: #f8fafc;
  border-color: #0ea5e9;
  box-shadow: 0 16px 45px rgba(14, 165, 233, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-festival-layang-layang-pantai .card-ornament {
  border-color: #0ea5e9;
  opacity: 0.85;
}
.theme-festival-layang-layang-pantai .card-salutation-text,
.theme-festival-layang-layang-pantai .divider-gem,
.theme-festival-layang-layang-pantai .card-title-text,
.theme-festival-layang-layang-pantai .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(14, 165, 233, 0.35);
}
.theme-festival-layang-layang-pantai .card-milestone-text {
  background-color: rgba(14, 165, 233, 0.25);
  color: #e0f2fe;
  border: 1px solid #0284c7;
}
.theme-festival-layang-layang-pantai .card-message-text {
  color: #f8fafc;
}
.theme-festival-layang-layang-pantai .card-event-block {
  background-color: rgba(8, 33, 56, 0.94);
  border: 1px solid #0284c7;
  color: #7dd3fc;
}

.theme-oktoberfest-bavarian-cheers {
  background: radial-gradient(circle at 50% 20%, #17336b 0%, #0d1e3d 60%, #050c19 100%);
  color: #f8fafc;
  border-color: #2563eb;
  box-shadow: 0 16px 45px rgba(37, 99, 235, 0.35), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-oktoberfest-bavarian-cheers .card-ornament {
  border-color: #2563eb;
  opacity: 0.85;
}
.theme-oktoberfest-bavarian-cheers .card-salutation-text,
.theme-oktoberfest-bavarian-cheers .divider-gem,
.theme-oktoberfest-bavarian-cheers .card-title-text,
.theme-oktoberfest-bavarian-cheers .card-recipient-name {
  color: #60a5fa;
  text-shadow: 0 0 16px rgba(37, 99, 235, 0.35);
}
.theme-oktoberfest-bavarian-cheers .card-milestone-text {
  background-color: rgba(37, 99, 235, 0.25);
  color: #dbeafe;
  border: 1px solid #2563eb;
}
.theme-oktoberfest-bavarian-cheers .card-message-text {
  color: #f8fafc;
}
.theme-oktoberfest-bavarian-cheers .card-event-block {
  background-color: rgba(13, 30, 61, 0.94);
  border: 1px solid #2563eb;
  color: #93c5fd;
}

.theme-festival-kembang-api-milenium {
  background: radial-gradient(circle at 50% 20%, #341252 0%, #1c092c 60%, #0b0312 100%);
  color: #f8fafc;
  border-color: #e11d48;
  box-shadow: 0 16px 45px rgba(225, 29, 72, 0.45), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-festival-kembang-api-milenium .card-ornament {
  border-color: #e11d48;
  opacity: 0.85;
}
.theme-festival-kembang-api-milenium .card-salutation-text,
.theme-festival-kembang-api-milenium .divider-gem,
.theme-festival-kembang-api-milenium .card-title-text,
.theme-festival-kembang-api-milenium .card-recipient-name {
  color: #f43f5e;
  text-shadow: 0 0 16px rgba(225, 29, 72, 0.45);
}
.theme-festival-kembang-api-milenium .card-milestone-text {
  background-color: rgba(225, 29, 72, 0.25);
  color: #fce7f3;
  border: 1px solid #be123c;
}
.theme-festival-kembang-api-milenium .card-message-text {
  color: #f8fafc;
}
.theme-festival-kembang-api-milenium .card-event-block {
  background-color: rgba(28, 9, 44, 0.94);
  border: 1px solid #be123c;
  color: #f43f5e;
}

/* --- Templates 169-218: 50 Additional Themes --- */
.theme-neon-roller-skating-rink {
  background: radial-gradient(circle at 50% 20%, #290847 0%, #09031c 60%, #03010a 100%);
  color: #f8fafc;
  border-color: #f43f5e;
  box-shadow: 0 16px 45px rgba(244, 63, 94, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-neon-roller-skating-rink .card-ornament {
  border-color: #f43f5e;
  opacity: 0.85;
}
.theme-neon-roller-skating-rink .card-salutation-text,
.theme-neon-roller-skating-rink .divider-gem,
.theme-neon-roller-skating-rink .card-title-text,
.theme-neon-roller-skating-rink .card-recipient-name {
  color: #f43f5e;
  text-shadow: 0 0 16px rgba(244, 63, 94, 0.4);
}
.theme-neon-roller-skating-rink .card-milestone-text {
  background-color: rgba(244, 63, 94, 0.25);
  color: #fff1f2;
  border: 1px solid #e11d48;
}
.theme-neon-roller-skating-rink .card-message-text {
  color: #f8fafc;
}
.theme-neon-roller-skating-rink .card-event-block {
  background-color: rgba(9, 3, 28, 0.94);
  border: 1px solid #e11d48;
  color: #f43f5e;
}
.theme-dino-jurassic-safari-expedition {
  background: radial-gradient(circle at 50% 20%, #174d2b 0%, #071f12 60%, #020d07 100%);
  color: #f8fafc;
  border-color: #22c55e;
  box-shadow: 0 16px 45px rgba(34, 197, 94, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-dino-jurassic-safari-expedition .card-ornament {
  border-color: #22c55e;
  opacity: 0.85;
}
.theme-dino-jurassic-safari-expedition .card-salutation-text,
.theme-dino-jurassic-safari-expedition .divider-gem,
.theme-dino-jurassic-safari-expedition .card-title-text,
.theme-dino-jurassic-safari-expedition .card-recipient-name {
  color: #22c55e;
  text-shadow: 0 0 16px rgba(34, 197, 94, 0.4);
}
.theme-dino-jurassic-safari-expedition .card-milestone-text {
  background-color: rgba(34, 197, 94, 0.25);
  color: #f0fdf4;
  border: 1px solid #16a34a;
}
.theme-dino-jurassic-safari-expedition .card-message-text {
  color: #f8fafc;
}
.theme-dino-jurassic-safari-expedition .card-event-block {
  background-color: rgba(7, 31, 18, 0.94);
  border: 1px solid #16a34a;
  color: #22c55e;
}
.theme-magic-potion-alchemy-party {
  background: radial-gradient(circle at 50% 20%, #3b1473 0%, #15082b 60%, #080312 100%);
  color: #f8fafc;
  border-color: #c084fc;
  box-shadow: 0 16px 45px rgba(192, 132, 252, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-magic-potion-alchemy-party .card-ornament {
  border-color: #c084fc;
  opacity: 0.85;
}
.theme-magic-potion-alchemy-party .card-salutation-text,
.theme-magic-potion-alchemy-party .divider-gem,
.theme-magic-potion-alchemy-party .card-title-text,
.theme-magic-potion-alchemy-party .card-recipient-name {
  color: #c084fc;
  text-shadow: 0 0 16px rgba(192, 132, 252, 0.4);
}
.theme-magic-potion-alchemy-party .card-milestone-text {
  background-color: rgba(192, 132, 252, 0.25);
  color: #faf5ff;
  border: 1px solid #9333ea;
}
.theme-magic-potion-alchemy-party .card-message-text {
  color: #f8fafc;
}
.theme-magic-potion-alchemy-party .card-event-block {
  background-color: rgba(21, 8, 43, 0.94);
  border: 1px solid #9333ea;
  color: #c084fc;
}
.theme-superhero-comic-city-defense {
  background: radial-gradient(circle at 50% 20%, #471515 0%, #1a0808 60%, #0d0303 100%);
  color: #f8fafc;
  border-color: #ef4444;
  box-shadow: 0 16px 45px rgba(239, 68, 68, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-superhero-comic-city-defense .card-ornament {
  border-color: #ef4444;
  opacity: 0.85;
}
.theme-superhero-comic-city-defense .card-salutation-text,
.theme-superhero-comic-city-defense .divider-gem,
.theme-superhero-comic-city-defense .card-title-text,
.theme-superhero-comic-city-defense .card-recipient-name {
  color: #ef4444;
  text-shadow: 0 0 16px rgba(239, 68, 68, 0.4);
}
.theme-superhero-comic-city-defense .card-milestone-text {
  background-color: rgba(239, 68, 68, 0.25);
  color: #fef2f2;
  border: 1px solid #dc2626;
}
.theme-superhero-comic-city-defense .card-message-text {
  color: #f8fafc;
}
.theme-superhero-comic-city-defense .card-event-block {
  background-color: rgba(26, 8, 8, 0.94);
  border: 1px solid #dc2626;
  color: #ef4444;
}
.theme-kawaii-boba-pastel-tea {
  background: radial-gradient(circle at 50% 20%, #521638 0%, #2b0b1c 60%, #12030b 100%);
  color: #f8fafc;
  border-color: #f472b6;
  box-shadow: 0 16px 45px rgba(244, 114, 182, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-kawaii-boba-pastel-tea .card-ornament {
  border-color: #f472b6;
  opacity: 0.85;
}
.theme-kawaii-boba-pastel-tea .card-salutation-text,
.theme-kawaii-boba-pastel-tea .divider-gem,
.theme-kawaii-boba-pastel-tea .card-title-text,
.theme-kawaii-boba-pastel-tea .card-recipient-name {
  color: #f472b6;
  text-shadow: 0 0 16px rgba(244, 114, 182, 0.4);
}
.theme-kawaii-boba-pastel-tea .card-milestone-text {
  background-color: rgba(244, 114, 182, 0.25);
  color: #fff1f2;
  border: 1px solid #db2777;
}
.theme-kawaii-boba-pastel-tea .card-message-text {
  color: #f8fafc;
}
.theme-kawaii-boba-pastel-tea .card-event-block {
  background-color: rgba(43, 11, 28, 0.94);
  border: 1px solid #db2777;
  color: #f472b6;
}
.theme-karting-championship-raceway {
  background: radial-gradient(circle at 50% 20%, #362218 0%, #121010 60%, #080606 100%);
  color: #f8fafc;
  border-color: #f97316;
  box-shadow: 0 16px 45px rgba(249, 115, 22, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-karting-championship-raceway .card-ornament {
  border-color: #f97316;
  opacity: 0.85;
}
.theme-karting-championship-raceway .card-salutation-text,
.theme-karting-championship-raceway .divider-gem,
.theme-karting-championship-raceway .card-title-text,
.theme-karting-championship-raceway .card-recipient-name {
  color: #f97316;
  text-shadow: 0 0 16px rgba(249, 115, 22, 0.4);
}
.theme-karting-championship-raceway .card-milestone-text {
  background-color: rgba(249, 115, 22, 0.25);
  color: #fff7ed;
  border: 1px solid #ea580c;
}
.theme-karting-championship-raceway .card-message-text {
  color: #f8fafc;
}
.theme-karting-championship-raceway .card-event-block {
  background-color: rgba(18, 16, 16, 0.94);
  border: 1px solid #ea580c;
  color: #f97316;
}
.theme-space-rover-mars-colonizer {
  background: radial-gradient(circle at 50% 20%, #4d1813 0%, #240a08 60%, #0d0302 100%);
  color: #f8fafc;
  border-color: #fb923c;
  box-shadow: 0 16px 45px rgba(251, 146, 60, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-space-rover-mars-colonizer .card-ornament {
  border-color: #fb923c;
  opacity: 0.85;
}
.theme-space-rover-mars-colonizer .card-salutation-text,
.theme-space-rover-mars-colonizer .divider-gem,
.theme-space-rover-mars-colonizer .card-title-text,
.theme-space-rover-mars-colonizer .card-recipient-name {
  color: #fb923c;
  text-shadow: 0 0 16px rgba(251, 146, 60, 0.4);
}
.theme-space-rover-mars-colonizer .card-milestone-text {
  background-color: rgba(251, 146, 60, 0.25);
  color: #fff7ed;
  border: 1px solid #c2410c;
}
.theme-space-rover-mars-colonizer .card-message-text {
  color: #f8fafc;
}
.theme-space-rover-mars-colonizer .card-event-block {
  background-color: rgba(36, 10, 8, 0.94);
  border: 1px solid #c2410c;
  color: #fb923c;
}
.theme-fairy-enchanted-woodland-glade {
  background: radial-gradient(circle at 50% 20%, #194539 0%, #0c1a17 60%, #030807 100%);
  color: #f8fafc;
  border-color: #34d399;
  box-shadow: 0 16px 45px rgba(52, 211, 153, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-fairy-enchanted-woodland-glade .card-ornament {
  border-color: #34d399;
  opacity: 0.85;
}
.theme-fairy-enchanted-woodland-glade .card-salutation-text,
.theme-fairy-enchanted-woodland-glade .divider-gem,
.theme-fairy-enchanted-woodland-glade .card-title-text,
.theme-fairy-enchanted-woodland-glade .card-recipient-name {
  color: #34d399;
  text-shadow: 0 0 16px rgba(52, 211, 153, 0.4);
}
.theme-fairy-enchanted-woodland-glade .card-milestone-text {
  background-color: rgba(52, 211, 153, 0.25);
  color: #ecfdf5;
  border: 1px solid #059669;
}
.theme-fairy-enchanted-woodland-glade .card-message-text {
  color: #f8fafc;
}
.theme-fairy-enchanted-woodland-glade .card-event-block {
  background-color: rgba(12, 26, 23, 0.94);
  border: 1px solid #059669;
  color: #34d399;
}
.theme-aquarium-sea-turtle-reef {
  background: radial-gradient(circle at 50% 20%, #0e445c 0%, #031c26 60%, #010a0e 100%);
  color: #f8fafc;
  border-color: #38bdf8;
  box-shadow: 0 16px 45px rgba(56, 189, 248, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-aquarium-sea-turtle-reef .card-ornament {
  border-color: #38bdf8;
  opacity: 0.85;
}
.theme-aquarium-sea-turtle-reef .card-salutation-text,
.theme-aquarium-sea-turtle-reef .divider-gem,
.theme-aquarium-sea-turtle-reef .card-title-text,
.theme-aquarium-sea-turtle-reef .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.4);
}
.theme-aquarium-sea-turtle-reef .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.25);
  color: #f0f9ff;
  border: 1px solid #0284c7;
}
.theme-aquarium-sea-turtle-reef .card-message-text {
  color: #f8fafc;
}
.theme-aquarium-sea-turtle-reef .card-event-block {
  background-color: rgba(3, 28, 38, 0.94);
  border: 1px solid #0284c7;
  color: #38bdf8;
}
.theme-pirate-skull-island-voyage {
  background: radial-gradient(circle at 50% 20%, #1c395e 0%, #0b1726 60%, #040912 100%);
  color: #f8fafc;
  border-color: #38bdf8;
  box-shadow: 0 16px 45px rgba(56, 189, 248, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-pirate-skull-island-voyage .card-ornament {
  border-color: #38bdf8;
  opacity: 0.85;
}
.theme-pirate-skull-island-voyage .card-salutation-text,
.theme-pirate-skull-island-voyage .divider-gem,
.theme-pirate-skull-island-voyage .card-title-text,
.theme-pirate-skull-island-voyage .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.4);
}
.theme-pirate-skull-island-voyage .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.25);
  color: #f0f9ff;
  border: 1px solid #0369a1;
}
.theme-pirate-skull-island-voyage .card-message-text {
  color: #f8fafc;
}
.theme-pirate-skull-island-voyage .card-event-block {
  background-color: rgba(11, 23, 38, 0.94);
  border: 1px solid #0369a1;
  color: #38bdf8;
}
.theme-bali-puri-royal-agung {
  background: radial-gradient(circle at 50% 20%, #42260c 0%, #1a0f05 60%, #0a0502 100%);
  color: #f8fafc;
  border-color: #facc15;
  box-shadow: 0 16px 45px rgba(250, 204, 21, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-bali-puri-royal-agung .card-ornament {
  border-color: #facc15;
  opacity: 0.85;
}
.theme-bali-puri-royal-agung .card-salutation-text,
.theme-bali-puri-royal-agung .divider-gem,
.theme-bali-puri-royal-agung .card-title-text,
.theme-bali-puri-royal-agung .card-recipient-name {
  color: #facc15;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.4);
}
.theme-bali-puri-royal-agung .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.25);
  color: #fefce8;
  border: 1px solid #ca8a04;
}
.theme-bali-puri-royal-agung .card-message-text {
  color: #f8fafc;
}
.theme-bali-puri-royal-agung .card-event-block {
  background-color: rgba(26, 15, 5, 0.94);
  border: 1px solid #ca8a04;
  color: #facc15;
}
.theme-betawi-palang-pintu-delman {
  background: radial-gradient(circle at 50% 20%, #471920 0%, #1c0a0c 60%, #0a0304 100%);
  color: #f8fafc;
  border-color: #f43f5e;
  box-shadow: 0 16px 45px rgba(244, 63, 94, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-betawi-palang-pintu-delman .card-ornament {
  border-color: #f43f5e;
  opacity: 0.85;
}
.theme-betawi-palang-pintu-delman .card-salutation-text,
.theme-betawi-palang-pintu-delman .divider-gem,
.theme-betawi-palang-pintu-delman .card-title-text,
.theme-betawi-palang-pintu-delman .card-recipient-name {
  color: #f43f5e;
  text-shadow: 0 0 16px rgba(244, 63, 94, 0.4);
}
.theme-betawi-palang-pintu-delman .card-milestone-text {
  background-color: rgba(244, 63, 94, 0.25);
  color: #fff1f2;
  border: 1px solid #be123c;
}
.theme-betawi-palang-pintu-delman .card-message-text {
  color: #f8fafc;
}
.theme-betawi-palang-pintu-delman .card-event-block {
  background-color: rgba(28, 10, 12, 0.94);
  border: 1px solid #be123c;
  color: #f43f5e;
}
.theme-dayak-hudoq-borneo-royalty {
  background: radial-gradient(circle at 50% 20%, #382315 0%, #140d08 60%, #080503 100%);
  color: #f8fafc;
  border-color: #fb923c;
  box-shadow: 0 16px 45px rgba(251, 146, 60, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-dayak-hudoq-borneo-royalty .card-ornament {
  border-color: #fb923c;
  opacity: 0.85;
}
.theme-dayak-hudoq-borneo-royalty .card-salutation-text,
.theme-dayak-hudoq-borneo-royalty .divider-gem,
.theme-dayak-hudoq-borneo-royalty .card-title-text,
.theme-dayak-hudoq-borneo-royalty .card-recipient-name {
  color: #fb923c;
  text-shadow: 0 0 16px rgba(251, 146, 60, 0.4);
}
.theme-dayak-hudoq-borneo-royalty .card-milestone-text {
  background-color: rgba(251, 146, 60, 0.25);
  color: #fff7ed;
  border: 1px solid #9a3412;
}
.theme-dayak-hudoq-borneo-royalty .card-message-text {
  color: #f8fafc;
}
.theme-dayak-hudoq-borneo-royalty .card-event-block {
  background-color: rgba(20, 13, 8, 0.94);
  border: 1px solid #9a3412;
  color: #fb923c;
}
.theme-makassar-baju-bodo-silk {
  background: radial-gradient(circle at 50% 20%, #174732 0%, #081a12 60%, #030b07 100%);
  color: #f8fafc;
  border-color: #34d399;
  box-shadow: 0 16px 45px rgba(52, 211, 153, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-makassar-baju-bodo-silk .card-ornament {
  border-color: #34d399;
  opacity: 0.85;
}
.theme-makassar-baju-bodo-silk .card-salutation-text,
.theme-makassar-baju-bodo-silk .divider-gem,
.theme-makassar-baju-bodo-silk .card-title-text,
.theme-makassar-baju-bodo-silk .card-recipient-name {
  color: #34d399;
  text-shadow: 0 0 16px rgba(52, 211, 153, 0.4);
}
.theme-makassar-baju-bodo-silk .card-milestone-text {
  background-color: rgba(52, 211, 153, 0.25);
  color: #ecfdf5;
  border: 1px solid #059669;
}
.theme-makassar-baju-bodo-silk .card-message-text {
  color: #f8fafc;
}
.theme-makassar-baju-bodo-silk .card-event-block {
  background-color: rgba(8, 26, 18, 0.94);
  border: 1px solid #059669;
  color: #34d399;
}
.theme-kyoto-shinto-zen-sanctuary {
  background: radial-gradient(circle at 50% 20%, #47181e 0%, #1f0b0d 60%, #0a0304 100%);
  color: #f8fafc;
  border-color: #f87171;
  box-shadow: 0 16px 45px rgba(248, 113, 113, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-kyoto-shinto-zen-sanctuary .card-ornament {
  border-color: #f87171;
  opacity: 0.85;
}
.theme-kyoto-shinto-zen-sanctuary .card-salutation-text,
.theme-kyoto-shinto-zen-sanctuary .divider-gem,
.theme-kyoto-shinto-zen-sanctuary .card-title-text,
.theme-kyoto-shinto-zen-sanctuary .card-recipient-name {
  color: #f87171;
  text-shadow: 0 0 16px rgba(248, 113, 113, 0.4);
}
.theme-kyoto-shinto-zen-sanctuary .card-milestone-text {
  background-color: rgba(248, 113, 113, 0.25);
  color: #fef2f2;
  border: 1px solid #dc2626;
}
.theme-kyoto-shinto-zen-sanctuary .card-message-text {
  color: #f8fafc;
}
.theme-kyoto-shinto-zen-sanctuary .card-event-block {
  background-color: rgba(31, 11, 13, 0.94);
  border: 1px solid #dc2626;
  color: #f87171;
}
.theme-santorini-cliffside-bougainvillea {
  background: radial-gradient(circle at 50% 20%, #14396b 0%, #08172c 60%, #030a13 100%);
  color: #f8fafc;
  border-color: #38bdf8;
  box-shadow: 0 16px 45px rgba(56, 189, 248, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-santorini-cliffside-bougainvillea .card-ornament {
  border-color: #38bdf8;
  opacity: 0.85;
}
.theme-santorini-cliffside-bougainvillea .card-salutation-text,
.theme-santorini-cliffside-bougainvillea .divider-gem,
.theme-santorini-cliffside-bougainvillea .card-title-text,
.theme-santorini-cliffside-bougainvillea .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.4);
}
.theme-santorini-cliffside-bougainvillea .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.25);
  color: #f0f9ff;
  border: 1px solid #0284c7;
}
.theme-santorini-cliffside-bougainvillea .card-message-text {
  color: #f8fafc;
}
.theme-santorini-cliffside-bougainvillea .card-event-block {
  background-color: rgba(8, 23, 44, 0.94);
  border: 1px solid #0284c7;
  color: #38bdf8;
}
.theme-art-deco-great-gatsby-gala {
  background: radial-gradient(circle at 50% 20%, #36342b 0%, #0f0f12 60%, #050506 100%);
  color: #f8fafc;
  border-color: #facc15;
  box-shadow: 0 16px 45px rgba(250, 204, 21, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-art-deco-great-gatsby-gala .card-ornament {
  border-color: #facc15;
  opacity: 0.85;
}
.theme-art-deco-great-gatsby-gala .card-salutation-text,
.theme-art-deco-great-gatsby-gala .divider-gem,
.theme-art-deco-great-gatsby-gala .card-title-text,
.theme-art-deco-great-gatsby-gala .card-recipient-name {
  color: #facc15;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.4);
}
.theme-art-deco-great-gatsby-gala .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.25);
  color: #fefce8;
  border: 1px solid #ca8a04;
}
.theme-art-deco-great-gatsby-gala .card-message-text {
  color: #f8fafc;
}
.theme-art-deco-great-gatsby-gala .card-event-block {
  background-color: rgba(15, 15, 18, 0.94);
  border: 1px solid #ca8a04;
  color: #facc15;
}
.theme-provence-lavender-sunflower-meadow {
  background: radial-gradient(circle at 50% 20%, #3c245c 0%, #160e22 60%, #09050e 100%);
  color: #f8fafc;
  border-color: #c084fc;
  box-shadow: 0 16px 45px rgba(192, 132, 252, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-provence-lavender-sunflower-meadow .card-ornament {
  border-color: #c084fc;
  opacity: 0.85;
}
.theme-provence-lavender-sunflower-meadow .card-salutation-text,
.theme-provence-lavender-sunflower-meadow .divider-gem,
.theme-provence-lavender-sunflower-meadow .card-title-text,
.theme-provence-lavender-sunflower-meadow .card-recipient-name {
  color: #c084fc;
  text-shadow: 0 0 16px rgba(192, 132, 252, 0.4);
}
.theme-provence-lavender-sunflower-meadow .card-milestone-text {
  background-color: rgba(192, 132, 252, 0.25);
  color: #faf5ff;
  border: 1px solid #9333ea;
}
.theme-provence-lavender-sunflower-meadow .card-message-text {
  color: #f8fafc;
}
.theme-provence-lavender-sunflower-meadow .card-event-block {
  background-color: rgba(22, 14, 34, 0.94);
  border: 1px solid #9333ea;
  color: #c084fc;
}
.theme-castle-fairytale-enchanted-gates {
  background: radial-gradient(circle at 50% 20%, #341963 0%, #120924 60%, #06020d 100%);
  color: #f8fafc;
  border-color: #e879f9;
  box-shadow: 0 16px 45px rgba(232, 121, 249, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-castle-fairytale-enchanted-gates .card-ornament {
  border-color: #e879f9;
  opacity: 0.85;
}
.theme-castle-fairytale-enchanted-gates .card-salutation-text,
.theme-castle-fairytale-enchanted-gates .divider-gem,
.theme-castle-fairytale-enchanted-gates .card-title-text,
.theme-castle-fairytale-enchanted-gates .card-recipient-name {
  color: #e879f9;
  text-shadow: 0 0 16px rgba(232, 121, 249, 0.4);
}
.theme-castle-fairytale-enchanted-gates .card-milestone-text {
  background-color: rgba(232, 121, 249, 0.25);
  color: #fdf4ff;
  border: 1px solid #a21caf;
}
.theme-castle-fairytale-enchanted-gates .card-message-text {
  color: #f8fafc;
}
.theme-castle-fairytale-enchanted-gates .card-event-block {
  background-color: rgba(18, 9, 36, 0.94);
  border: 1px solid #a21caf;
  color: #e879f9;
}
.theme-crystal-cathedral-stained-glass {
  background: radial-gradient(circle at 50% 20%, #1e3163 0%, #0b1226 60%, #040712 100%);
  color: #f8fafc;
  border-color: #60a5fa;
  box-shadow: 0 16px 45px rgba(96, 165, 250, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-crystal-cathedral-stained-glass .card-ornament {
  border-color: #60a5fa;
  opacity: 0.85;
}
.theme-crystal-cathedral-stained-glass .card-salutation-text,
.theme-crystal-cathedral-stained-glass .divider-gem,
.theme-crystal-cathedral-stained-glass .card-title-text,
.theme-crystal-cathedral-stained-glass .card-recipient-name {
  color: #60a5fa;
  text-shadow: 0 0 16px rgba(96, 165, 250, 0.4);
}
.theme-crystal-cathedral-stained-glass .card-milestone-text {
  background-color: rgba(96, 165, 250, 0.25);
  color: #eff6ff;
  border: 1px solid #2563eb;
}
.theme-crystal-cathedral-stained-glass .card-message-text {
  color: #f8fafc;
}
.theme-crystal-cathedral-stained-glass .card-event-block {
  background-color: rgba(11, 18, 38, 0.94);
  border: 1px solid #2563eb;
  color: #60a5fa;
}
.theme-sapphire-45th-royal-jubilee {
  background: radial-gradient(circle at 50% 20%, #10346e 0%, #07152d 60%, #020814 100%);
  color: #f8fafc;
  border-color: #38bdf8;
  box-shadow: 0 16px 45px rgba(56, 189, 248, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-sapphire-45th-royal-jubilee .card-ornament {
  border-color: #38bdf8;
  opacity: 0.85;
}
.theme-sapphire-45th-royal-jubilee .card-salutation-text,
.theme-sapphire-45th-royal-jubilee .divider-gem,
.theme-sapphire-45th-royal-jubilee .card-title-text,
.theme-sapphire-45th-royal-jubilee .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.4);
}
.theme-sapphire-45th-royal-jubilee .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.25);
  color: #f0f9ff;
  border: 1px solid #0284c7;
}
.theme-sapphire-45th-royal-jubilee .card-message-text {
  color: #f8fafc;
}
.theme-sapphire-45th-royal-jubilee .card-event-block {
  background-color: rgba(7, 21, 45, 0.94);
  border: 1px solid #0284c7;
  color: #38bdf8;
}
.theme-emerald-55th-eternal-devotion {
  background: radial-gradient(circle at 50% 20%, #114c33 0%, #061f14 60%, #020b07 100%);
  color: #f8fafc;
  border-color: #34d399;
  box-shadow: 0 16px 45px rgba(52, 211, 153, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-emerald-55th-eternal-devotion .card-ornament {
  border-color: #34d399;
  opacity: 0.85;
}
.theme-emerald-55th-eternal-devotion .card-salutation-text,
.theme-emerald-55th-eternal-devotion .divider-gem,
.theme-emerald-55th-eternal-devotion .card-title-text,
.theme-emerald-55th-eternal-devotion .card-recipient-name {
  color: #34d399;
  text-shadow: 0 0 16px rgba(52, 211, 153, 0.4);
}
.theme-emerald-55th-eternal-devotion .card-milestone-text {
  background-color: rgba(52, 211, 153, 0.25);
  color: #ecfdf5;
  border: 1px solid #059669;
}
.theme-emerald-55th-eternal-devotion .card-message-text {
  color: #f8fafc;
}
.theme-emerald-55th-eternal-devotion .card-event-block {
  background-color: rgba(6, 31, 20, 0.94);
  border: 1px solid #059669;
  color: #34d399;
}
.theme-starlight-rooftop-acoustic-duet {
  background: radial-gradient(circle at 50% 20%, #42213d 0%, #180d16 60%, #090408 100%);
  color: #f8fafc;
  border-color: #f472b6;
  box-shadow: 0 16px 45px rgba(244, 114, 182, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-starlight-rooftop-acoustic-duet .card-ornament {
  border-color: #f472b6;
  opacity: 0.85;
}
.theme-starlight-rooftop-acoustic-duet .card-salutation-text,
.theme-starlight-rooftop-acoustic-duet .divider-gem,
.theme-starlight-rooftop-acoustic-duet .card-title-text,
.theme-starlight-rooftop-acoustic-duet .card-recipient-name {
  color: #f472b6;
  text-shadow: 0 0 16px rgba(244, 114, 182, 0.4);
}
.theme-starlight-rooftop-acoustic-duet .card-milestone-text {
  background-color: rgba(244, 114, 182, 0.25);
  color: #fdf2f8;
  border: 1px solid #be185d;
}
.theme-starlight-rooftop-acoustic-duet .card-message-text {
  color: #f8fafc;
}
.theme-starlight-rooftop-acoustic-duet .card-event-block {
  background-color: rgba(24, 13, 22, 0.94);
  border: 1px solid #be185d;
  color: #f472b6;
}
.theme-venetian-carnival-duet-masque {
  background: radial-gradient(circle at 50% 20%, #4d1854 0%, #1c081e 60%, #0a020b 100%);
  color: #f8fafc;
  border-color: #e879f9;
  box-shadow: 0 16px 45px rgba(232, 121, 249, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-venetian-carnival-duet-masque .card-ornament {
  border-color: #e879f9;
  opacity: 0.85;
}
.theme-venetian-carnival-duet-masque .card-salutation-text,
.theme-venetian-carnival-duet-masque .divider-gem,
.theme-venetian-carnival-duet-masque .card-title-text,
.theme-venetian-carnival-duet-masque .card-recipient-name {
  color: #e879f9;
  text-shadow: 0 0 16px rgba(232, 121, 249, 0.4);
}
.theme-venetian-carnival-duet-masque .card-milestone-text {
  background-color: rgba(232, 121, 249, 0.25);
  color: #fdf4ff;
  border: 1px solid #a21caf;
}
.theme-venetian-carnival-duet-masque .card-message-text {
  color: #f8fafc;
}
.theme-venetian-carnival-duet-masque .card-event-block {
  background-color: rgba(28, 8, 30, 0.94);
  border: 1px solid #a21caf;
  color: #e879f9;
}
.theme-cozy-log-cabin-autumn-embers {
  background: radial-gradient(circle at 50% 20%, #4a2514 0%, #1f0f08 60%, #0d0603 100%);
  color: #f8fafc;
  border-color: #fb923c;
  box-shadow: 0 16px 45px rgba(251, 146, 60, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-cozy-log-cabin-autumn-embers .card-ornament {
  border-color: #fb923c;
  opacity: 0.85;
}
.theme-cozy-log-cabin-autumn-embers .card-salutation-text,
.theme-cozy-log-cabin-autumn-embers .divider-gem,
.theme-cozy-log-cabin-autumn-embers .card-title-text,
.theme-cozy-log-cabin-autumn-embers .card-recipient-name {
  color: #fb923c;
  text-shadow: 0 0 16px rgba(251, 146, 60, 0.4);
}
.theme-cozy-log-cabin-autumn-embers .card-milestone-text {
  background-color: rgba(251, 146, 60, 0.25);
  color: #fff7ed;
  border: 1px solid #c2410c;
}
.theme-cozy-log-cabin-autumn-embers .card-message-text {
  color: #f8fafc;
}
.theme-cozy-log-cabin-autumn-embers .card-event-block {
  background-color: rgba(31, 15, 8, 0.94);
  border: 1px solid #c2410c;
  color: #fb923c;
}
.theme-hot-air-balloon-cappadocia-sunrise {
  background: radial-gradient(circle at 50% 20%, #472349 0%, #1a0f1e 60%, #0a050c 100%);
  color: #f8fafc;
  border-color: #fb7185;
  box-shadow: 0 16px 45px rgba(251, 113, 133, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-hot-air-balloon-cappadocia-sunrise .card-ornament {
  border-color: #fb7185;
  opacity: 0.85;
}
.theme-hot-air-balloon-cappadocia-sunrise .card-salutation-text,
.theme-hot-air-balloon-cappadocia-sunrise .divider-gem,
.theme-hot-air-balloon-cappadocia-sunrise .card-title-text,
.theme-hot-air-balloon-cappadocia-sunrise .card-recipient-name {
  color: #fb7185;
  text-shadow: 0 0 16px rgba(251, 113, 133, 0.4);
}
.theme-hot-air-balloon-cappadocia-sunrise .card-milestone-text {
  background-color: rgba(251, 113, 133, 0.25);
  color: #fff1f2;
  border: 1px solid #e11d48;
}
.theme-hot-air-balloon-cappadocia-sunrise .card-message-text {
  color: #f8fafc;
}
.theme-hot-air-balloon-cappadocia-sunrise .card-event-block {
  background-color: rgba(26, 15, 30, 0.94);
  border: 1px solid #e11d48;
  color: #fb7185;
}
.theme-moonlit-waterfall-serenade {
  background: radial-gradient(circle at 50% 20%, #134263 0%, #071926 60%, #02080d 100%);
  color: #f8fafc;
  border-color: #38bdf8;
  box-shadow: 0 16px 45px rgba(56, 189, 248, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-moonlit-waterfall-serenade .card-ornament {
  border-color: #38bdf8;
  opacity: 0.85;
}
.theme-moonlit-waterfall-serenade .card-salutation-text,
.theme-moonlit-waterfall-serenade .divider-gem,
.theme-moonlit-waterfall-serenade .card-title-text,
.theme-moonlit-waterfall-serenade .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.4);
}
.theme-moonlit-waterfall-serenade .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.25);
  color: #f0f9ff;
  border: 1px solid #0284c7;
}
.theme-moonlit-waterfall-serenade .card-message-text {
  color: #f8fafc;
}
.theme-moonlit-waterfall-serenade .card-event-block {
  background-color: rgba(7, 25, 38, 0.94);
  border: 1px solid #0284c7;
  color: #38bdf8;
}
.theme-amalfi-coast-lemon-terrace {
  background: radial-gradient(circle at 50% 20%, #154744 0%, #081d1c 60%, #030b0a 100%);
  color: #f8fafc;
  border-color: #2dd4bf;
  box-shadow: 0 16px 45px rgba(45, 212, 191, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-amalfi-coast-lemon-terrace .card-ornament {
  border-color: #2dd4bf;
  opacity: 0.85;
}
.theme-amalfi-coast-lemon-terrace .card-salutation-text,
.theme-amalfi-coast-lemon-terrace .divider-gem,
.theme-amalfi-coast-lemon-terrace .card-title-text,
.theme-amalfi-coast-lemon-terrace .card-recipient-name {
  color: #2dd4bf;
  text-shadow: 0 0 16px rgba(45, 212, 191, 0.4);
}
.theme-amalfi-coast-lemon-terrace .card-milestone-text {
  background-color: rgba(45, 212, 191, 0.25);
  color: #f0fdfa;
  border: 1px solid #0f766e;
}
.theme-amalfi-coast-lemon-terrace .card-message-text {
  color: #f8fafc;
}
.theme-amalfi-coast-lemon-terrace .card-event-block {
  background-color: rgba(8, 29, 28, 0.94);
  border: 1px solid #0f766e;
  color: #2dd4bf;
}
.theme-tahiti-overwater-bungalow-sunset {
  background: radial-gradient(circle at 50% 20%, #4d1a3f 0%, #1f0b1a 60%, #0a0309 100%);
  color: #f8fafc;
  border-color: #f43f5e;
  box-shadow: 0 16px 45px rgba(244, 63, 94, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-tahiti-overwater-bungalow-sunset .card-ornament {
  border-color: #f43f5e;
  opacity: 0.85;
}
.theme-tahiti-overwater-bungalow-sunset .card-salutation-text,
.theme-tahiti-overwater-bungalow-sunset .divider-gem,
.theme-tahiti-overwater-bungalow-sunset .card-title-text,
.theme-tahiti-overwater-bungalow-sunset .card-recipient-name {
  color: #f43f5e;
  text-shadow: 0 0 16px rgba(244, 63, 94, 0.4);
}
.theme-tahiti-overwater-bungalow-sunset .card-milestone-text {
  background-color: rgba(244, 63, 94, 0.25);
  color: #fff1f2;
  border: 1px solid #be123c;
}
.theme-tahiti-overwater-bungalow-sunset .card-message-text {
  color: #f8fafc;
}
.theme-tahiti-overwater-bungalow-sunset .card-event-block {
  background-color: rgba(31, 11, 26, 0.94);
  border: 1px solid #be123c;
  color: #f43f5e;
}
.theme-golden-record-timeless-melody {
  background: radial-gradient(circle at 50% 20%, #422d16 0%, #171008 60%, #080503 100%);
  color: #f8fafc;
  border-color: #facc15;
  box-shadow: 0 16px 45px rgba(250, 204, 21, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-golden-record-timeless-melody .card-ornament {
  border-color: #facc15;
  opacity: 0.85;
}
.theme-golden-record-timeless-melody .card-salutation-text,
.theme-golden-record-timeless-melody .divider-gem,
.theme-golden-record-timeless-melody .card-title-text,
.theme-golden-record-timeless-melody .card-recipient-name {
  color: #facc15;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.4);
}
.theme-golden-record-timeless-melody .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.25);
  color: #fefce8;
  border: 1px solid #ca8a04;
}
.theme-golden-record-timeless-melody .card-message-text {
  color: #f8fafc;
}
.theme-golden-record-timeless-melody .card-event-block {
  background-color: rgba(23, 16, 8, 0.94);
  border: 1px solid #ca8a04;
  color: #facc15;
}
.theme-aviation-flight-captain-wings {
  background: radial-gradient(circle at 50% 20%, #173363 0%, #091326 60%, #03070f 100%);
  color: #f8fafc;
  border-color: #38bdf8;
  box-shadow: 0 16px 45px rgba(56, 189, 248, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-aviation-flight-captain-wings .card-ornament {
  border-color: #38bdf8;
  opacity: 0.85;
}
.theme-aviation-flight-captain-wings .card-salutation-text,
.theme-aviation-flight-captain-wings .divider-gem,
.theme-aviation-flight-captain-wings .card-title-text,
.theme-aviation-flight-captain-wings .card-recipient-name {
  color: #38bdf8;
  text-shadow: 0 0 16px rgba(56, 189, 248, 0.4);
}
.theme-aviation-flight-captain-wings .card-milestone-text {
  background-color: rgba(56, 189, 248, 0.25);
  color: #f0f9ff;
  border: 1px solid #0284c7;
}
.theme-aviation-flight-captain-wings .card-message-text {
  color: #f8fafc;
}
.theme-aviation-flight-captain-wings .card-event-block {
  background-color: rgba(9, 19, 38, 0.94);
  border: 1px solid #0284c7;
  color: #38bdf8;
}
.theme-marine-oceanography-deep-dive {
  background: radial-gradient(circle at 50% 20%, #0e4961 0%, #031b24 60%, #010a0e 100%);
  color: #f8fafc;
  border-color: #2dd4bf;
  box-shadow: 0 16px 45px rgba(45, 212, 191, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-marine-oceanography-deep-dive .card-ornament {
  border-color: #2dd4bf;
  opacity: 0.85;
}
.theme-marine-oceanography-deep-dive .card-salutation-text,
.theme-marine-oceanography-deep-dive .divider-gem,
.theme-marine-oceanography-deep-dive .card-title-text,
.theme-marine-oceanography-deep-dive .card-recipient-name {
  color: #2dd4bf;
  text-shadow: 0 0 16px rgba(45, 212, 191, 0.4);
}
.theme-marine-oceanography-deep-dive .card-milestone-text {
  background-color: rgba(45, 212, 191, 0.25);
  color: #f0fdfa;
  border: 1px solid #0f766e;
}
.theme-marine-oceanography-deep-dive .card-message-text {
  color: #f8fafc;
}
.theme-marine-oceanography-deep-dive .card-event-block {
  background-color: rgba(3, 27, 36, 0.94);
  border: 1px solid #0f766e;
  color: #2dd4bf;
}
.theme-petroleum-mining-engineering-gold {
  background: radial-gradient(circle at 50% 20%, #45280e 0%, #190f05 60%, #090502 100%);
  color: #f8fafc;
  border-color: #f59e0b;
  box-shadow: 0 16px 45px rgba(245, 158, 11, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-petroleum-mining-engineering-gold .card-ornament {
  border-color: #f59e0b;
  opacity: 0.85;
}
.theme-petroleum-mining-engineering-gold .card-salutation-text,
.theme-petroleum-mining-engineering-gold .divider-gem,
.theme-petroleum-mining-engineering-gold .card-title-text,
.theme-petroleum-mining-engineering-gold .card-recipient-name {
  color: #f59e0b;
  text-shadow: 0 0 16px rgba(245, 158, 11, 0.4);
}
.theme-petroleum-mining-engineering-gold .card-milestone-text {
  background-color: rgba(245, 158, 11, 0.25);
  color: #fffbeb;
  border: 1px solid #b45309;
}
.theme-petroleum-mining-engineering-gold .card-message-text {
  color: #f8fafc;
}
.theme-petroleum-mining-engineering-gold .card-event-block {
  background-color: rgba(25, 15, 5, 0.94);
  border: 1px solid #b45309;
  color: #f59e0b;
}
.theme-neurology-brain-neuroscience-pulse {
  background: radial-gradient(circle at 50% 20%, #1b2f6e 0%, #09122c 60%, #030612 100%);
  color: #f8fafc;
  border-color: #818cf8;
  box-shadow: 0 16px 45px rgba(129, 140, 248, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-neurology-brain-neuroscience-pulse .card-ornament {
  border-color: #818cf8;
  opacity: 0.85;
}
.theme-neurology-brain-neuroscience-pulse .card-salutation-text,
.theme-neurology-brain-neuroscience-pulse .divider-gem,
.theme-neurology-brain-neuroscience-pulse .card-title-text,
.theme-neurology-brain-neuroscience-pulse .card-recipient-name {
  color: #818cf8;
  text-shadow: 0 0 16px rgba(129, 140, 248, 0.4);
}
.theme-neurology-brain-neuroscience-pulse .card-milestone-text {
  background-color: rgba(129, 140, 248, 0.25);
  color: #f5f3ff;
  border: 1px solid #4f46e5;
}
.theme-neurology-brain-neuroscience-pulse .card-message-text {
  color: #f8fafc;
}
.theme-neurology-brain-neuroscience-pulse .card-event-block {
  background-color: rgba(9, 18, 44, 0.94);
  border: 1px solid #4f46e5;
  color: #818cf8;
}
.theme-quantum-computing-physicist {
  background: radial-gradient(circle at 50% 20%, #341a7d 0%, #12092b 60%, #060312 100%);
  color: #f8fafc;
  border-color: #c084fc;
  box-shadow: 0 16px 45px rgba(192, 132, 252, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-quantum-computing-physicist .card-ornament {
  border-color: #c084fc;
  opacity: 0.85;
}
.theme-quantum-computing-physicist .card-salutation-text,
.theme-quantum-computing-physicist .divider-gem,
.theme-quantum-computing-physicist .card-title-text,
.theme-quantum-computing-physicist .card-recipient-name {
  color: #c084fc;
  text-shadow: 0 0 16px rgba(192, 132, 252, 0.4);
}
.theme-quantum-computing-physicist .card-milestone-text {
  background-color: rgba(192, 132, 252, 0.25);
  color: #faf5ff;
  border: 1px solid #7e22ce;
}
.theme-quantum-computing-physicist .card-message-text {
  color: #f8fafc;
}
.theme-quantum-computing-physicist .card-event-block {
  background-color: rgba(18, 9, 43, 0.94);
  border: 1px solid #7e22ce;
  color: #c084fc;
}
.theme-agricultural-agronomy-green-harvest {
  background: radial-gradient(circle at 50% 20%, #224d26 0%, #0c1e0e 60%, #040d05 100%);
  color: #f8fafc;
  border-color: #4ade80;
  box-shadow: 0 16px 45px rgba(74, 222, 128, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-agricultural-agronomy-green-harvest .card-ornament {
  border-color: #4ade80;
  opacity: 0.85;
}
.theme-agricultural-agronomy-green-harvest .card-salutation-text,
.theme-agricultural-agronomy-green-harvest .divider-gem,
.theme-agricultural-agronomy-green-harvest .card-title-text,
.theme-agricultural-agronomy-green-harvest .card-recipient-name {
  color: #4ade80;
  text-shadow: 0 0 16px rgba(74, 222, 128, 0.4);
}
.theme-agricultural-agronomy-green-harvest .card-milestone-text {
  background-color: rgba(74, 222, 128, 0.25);
  color: #f0fdf4;
  border: 1px solid #16a34a;
}
.theme-agricultural-agronomy-green-harvest .card-message-text {
  color: #f8fafc;
}
.theme-agricultural-agronomy-green-harvest .card-event-block {
  background-color: rgba(12, 30, 14, 0.94);
  border: 1px solid #16a34a;
  color: #4ade80;
}
.theme-culinary-pastry-chef-patisserie {
  background: radial-gradient(circle at 50% 20%, #52201d 0%, #220e0c 60%, #0d0403 100%);
  color: #f8fafc;
  border-color: #fb923c;
  box-shadow: 0 16px 45px rgba(251, 146, 60, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-culinary-pastry-chef-patisserie .card-ornament {
  border-color: #fb923c;
  opacity: 0.85;
}
.theme-culinary-pastry-chef-patisserie .card-salutation-text,
.theme-culinary-pastry-chef-patisserie .divider-gem,
.theme-culinary-pastry-chef-patisserie .card-title-text,
.theme-culinary-pastry-chef-patisserie .card-recipient-name {
  color: #fb923c;
  text-shadow: 0 0 16px rgba(251, 146, 60, 0.4);
}
.theme-culinary-pastry-chef-patisserie .card-milestone-text {
  background-color: rgba(251, 146, 60, 0.25);
  color: #fff7ed;
  border: 1px solid #c2410c;
}
.theme-culinary-pastry-chef-patisserie .card-message-text {
  color: #f8fafc;
}
.theme-culinary-pastry-chef-patisserie .card-event-block {
  background-color: rgba(34, 14, 12, 0.94);
  border: 1px solid #c2410c;
  color: #fb923c;
}
.theme-journalism-broadcast-media-producer {
  background: radial-gradient(circle at 50% 20%, #47151a 0%, #1c080a 60%, #0a0304 100%);
  color: #f8fafc;
  border-color: #ef4444;
  box-shadow: 0 16px 45px rgba(239, 68, 68, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-journalism-broadcast-media-producer .card-ornament {
  border-color: #ef4444;
  opacity: 0.85;
}
.theme-journalism-broadcast-media-producer .card-salutation-text,
.theme-journalism-broadcast-media-producer .divider-gem,
.theme-journalism-broadcast-media-producer .card-title-text,
.theme-journalism-broadcast-media-producer .card-recipient-name {
  color: #ef4444;
  text-shadow: 0 0 16px rgba(239, 68, 68, 0.4);
}
.theme-journalism-broadcast-media-producer .card-milestone-text {
  background-color: rgba(239, 68, 68, 0.25);
  color: #fef2f2;
  border: 1px solid #b91c1c;
}
.theme-journalism-broadcast-media-producer .card-message-text {
  color: #f8fafc;
}
.theme-journalism-broadcast-media-producer .card-event-block {
  background-color: rgba(28, 8, 10, 0.94);
  border: 1px solid #b91c1c;
  color: #ef4444;
}
.theme-civil-infrastructure-bridge-builder {
  background: radial-gradient(circle at 50% 20%, #1e3561 0%, #0b1424 60%, #040810 100%);
  color: #f8fafc;
  border-color: #60a5fa;
  box-shadow: 0 16px 45px rgba(96, 165, 250, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-civil-infrastructure-bridge-builder .card-ornament {
  border-color: #60a5fa;
  opacity: 0.85;
}
.theme-civil-infrastructure-bridge-builder .card-salutation-text,
.theme-civil-infrastructure-bridge-builder .divider-gem,
.theme-civil-infrastructure-bridge-builder .card-title-text,
.theme-civil-infrastructure-bridge-builder .card-recipient-name {
  color: #60a5fa;
  text-shadow: 0 0 16px rgba(96, 165, 250, 0.4);
}
.theme-civil-infrastructure-bridge-builder .card-milestone-text {
  background-color: rgba(96, 165, 250, 0.25);
  color: #eff6ff;
  border: 1px solid #2563eb;
}
.theme-civil-infrastructure-bridge-builder .card-message-text {
  color: #f8fafc;
}
.theme-civil-infrastructure-bridge-builder .card-event-block {
  background-color: rgba(11, 20, 36, 0.94);
  border: 1px solid #2563eb;
  color: #60a5fa;
}
.theme-cyber-forensics-security-analyst {
  background: radial-gradient(circle at 50% 20%, #104020 0%, #051a0d 60%, #020a05 100%);
  color: #f8fafc;
  border-color: #22c55e;
  box-shadow: 0 16px 45px rgba(34, 197, 94, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-cyber-forensics-security-analyst .card-ornament {
  border-color: #22c55e;
  opacity: 0.85;
}
.theme-cyber-forensics-security-analyst .card-salutation-text,
.theme-cyber-forensics-security-analyst .divider-gem,
.theme-cyber-forensics-security-analyst .card-title-text,
.theme-cyber-forensics-security-analyst .card-recipient-name {
  color: #22c55e;
  text-shadow: 0 0 16px rgba(34, 197, 94, 0.4);
}
.theme-cyber-forensics-security-analyst .card-milestone-text {
  background-color: rgba(34, 197, 94, 0.25);
  color: #f0fdf4;
  border: 1px solid #15803d;
}
.theme-cyber-forensics-security-analyst .card-message-text {
  color: #f8fafc;
}
.theme-cyber-forensics-security-analyst .card-event-block {
  background-color: rgba(5, 26, 13, 0.94);
  border: 1px solid #15803d;
  color: #22c55e;
}
.theme-barongsai-lion-dance-festival {
  background: radial-gradient(circle at 50% 20%, #520f18 0%, #240509 60%, #0d0103 100%);
  color: #f8fafc;
  border-color: #facc15;
  box-shadow: 0 16px 45px rgba(250, 204, 21, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-barongsai-lion-dance-festival .card-ornament {
  border-color: #facc15;
  opacity: 0.85;
}
.theme-barongsai-lion-dance-festival .card-salutation-text,
.theme-barongsai-lion-dance-festival .divider-gem,
.theme-barongsai-lion-dance-festival .card-title-text,
.theme-barongsai-lion-dance-festival .card-recipient-name {
  color: #facc15;
  text-shadow: 0 0 16px rgba(250, 204, 21, 0.4);
}
.theme-barongsai-lion-dance-festival .card-milestone-text {
  background-color: rgba(250, 204, 21, 0.25);
  color: #fff1f2;
  border: 1px solid #dc2626;
}
.theme-barongsai-lion-dance-festival .card-message-text {
  color: #f8fafc;
}
.theme-barongsai-lion-dance-festival .card-event-block {
  background-color: rgba(36, 5, 9, 0.94);
  border: 1px solid #dc2626;
  color: #facc15;
}
.theme-toraja-rambu-solo-kabana {
  background: radial-gradient(circle at 50% 20%, #4a2110 0%, #1f0d06 60%, #0d0502 100%);
  color: #f8fafc;
  border-color: #f97316;
  box-shadow: 0 16px 45px rgba(249, 115, 22, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-toraja-rambu-solo-kabana .card-ornament {
  border-color: #f97316;
  opacity: 0.85;
}
.theme-toraja-rambu-solo-kabana .card-salutation-text,
.theme-toraja-rambu-solo-kabana .divider-gem,
.theme-toraja-rambu-solo-kabana .card-title-text,
.theme-toraja-rambu-solo-kabana .card-recipient-name {
  color: #f97316;
  text-shadow: 0 0 16px rgba(249, 115, 22, 0.4);
}
.theme-toraja-rambu-solo-kabana .card-milestone-text {
  background-color: rgba(249, 115, 22, 0.25);
  color: #fff7ed;
  border: 1px solid #9a3412;
}
.theme-toraja-rambu-solo-kabana .card-message-text {
  color: #f8fafc;
}
.theme-toraja-rambu-solo-kabana .card-event-block {
  background-color: rgba(31, 13, 6, 0.94);
  border: 1px solid #9a3412;
  color: #f97316;
}
.theme-hawaian-luau-tiki-torch {
  background: radial-gradient(circle at 50% 20%, #52240f 0%, #240f06 60%, #0d0502 100%);
  color: #f8fafc;
  border-color: #fb923c;
  box-shadow: 0 16px 45px rgba(251, 146, 60, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-hawaian-luau-tiki-torch .card-ornament {
  border-color: #fb923c;
  opacity: 0.85;
}
.theme-hawaian-luau-tiki-torch .card-salutation-text,
.theme-hawaian-luau-tiki-torch .divider-gem,
.theme-hawaian-luau-tiki-torch .card-title-text,
.theme-hawaian-luau-tiki-torch .card-recipient-name {
  color: #fb923c;
  text-shadow: 0 0 16px rgba(251, 146, 60, 0.4);
}
.theme-hawaian-luau-tiki-torch .card-milestone-text {
  background-color: rgba(251, 146, 60, 0.25);
  color: #fff7ed;
  border: 1px solid #ea580c;
}
.theme-hawaian-luau-tiki-torch .card-message-text {
  color: #f8fafc;
}
.theme-hawaian-luau-tiki-torch .card-event-block {
  background-color: rgba(36, 15, 6, 0.94);
  border: 1px solid #ea580c;
  color: #fb923c;
}
.theme-mexican-fiesta-mariachi-maracas {
  background: radial-gradient(circle at 50% 20%, #4d1c30 0%, #1f0b13 60%, #0a0306 100%);
  color: #f8fafc;
  border-color: #f43f5e;
  box-shadow: 0 16px 45px rgba(244, 63, 94, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-mexican-fiesta-mariachi-maracas .card-ornament {
  border-color: #f43f5e;
  opacity: 0.85;
}
.theme-mexican-fiesta-mariachi-maracas .card-salutation-text,
.theme-mexican-fiesta-mariachi-maracas .divider-gem,
.theme-mexican-fiesta-mariachi-maracas .card-title-text,
.theme-mexican-fiesta-mariachi-maracas .card-recipient-name {
  color: #f43f5e;
  text-shadow: 0 0 16px rgba(244, 63, 94, 0.4);
}
.theme-mexican-fiesta-mariachi-maracas .card-milestone-text {
  background-color: rgba(244, 63, 94, 0.25);
  color: #fff1f2;
  border: 1px solid #e11d48;
}
.theme-mexican-fiesta-mariachi-maracas .card-message-text {
  color: #f8fafc;
}
.theme-mexican-fiesta-mariachi-maracas .card-event-block {
  background-color: rgba(31, 11, 19, 0.94);
  border: 1px solid #e11d48;
  color: #f43f5e;
}
.theme-carnival-venice-water-parade {
  background: radial-gradient(circle at 50% 20%, #1e336e 0%, #0c152e 60%, #040712 100%);
  color: #f8fafc;
  border-color: #818cf8;
  box-shadow: 0 16px 45px rgba(129, 140, 248, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-carnival-venice-water-parade .card-ornament {
  border-color: #818cf8;
  opacity: 0.85;
}
.theme-carnival-venice-water-parade .card-salutation-text,
.theme-carnival-venice-water-parade .divider-gem,
.theme-carnival-venice-water-parade .card-title-text,
.theme-carnival-venice-water-parade .card-recipient-name {
  color: #818cf8;
  text-shadow: 0 0 16px rgba(129, 140, 248, 0.4);
}
.theme-carnival-venice-water-parade .card-milestone-text {
  background-color: rgba(129, 140, 248, 0.25);
  color: #f5f3ff;
  border: 1px solid #4f46e5;
}
.theme-carnival-venice-water-parade .card-message-text {
  color: #f8fafc;
}
.theme-carnival-venice-water-parade .card-event-block {
  background-color: rgba(12, 21, 46, 0.94);
  border: 1px solid #4f46e5;
  color: #818cf8;
}
.theme-harajuku-cyber-jpop-festival {
  background: radial-gradient(circle at 50% 20%, #440d69 0%, #1a0429 60%, #08010d 100%);
  color: #f8fafc;
  border-color: #ec4899;
  box-shadow: 0 16px 45px rgba(236, 72, 153, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-harajuku-cyber-jpop-festival .card-ornament {
  border-color: #ec4899;
  opacity: 0.85;
}
.theme-harajuku-cyber-jpop-festival .card-salutation-text,
.theme-harajuku-cyber-jpop-festival .divider-gem,
.theme-harajuku-cyber-jpop-festival .card-title-text,
.theme-harajuku-cyber-jpop-festival .card-recipient-name {
  color: #ec4899;
  text-shadow: 0 0 16px rgba(236, 72, 153, 0.4);
}
.theme-harajuku-cyber-jpop-festival .card-milestone-text {
  background-color: rgba(236, 72, 153, 0.25);
  color: #fdf2f8;
  border: 1px solid #be185d;
}
.theme-harajuku-cyber-jpop-festival .card-message-text {
  color: #f8fafc;
}
.theme-harajuku-cyber-jpop-festival .card-event-block {
  background-color: rgba(26, 4, 41, 0.94);
  border: 1px solid #be185d;
  color: #ec4899;
}
.theme-reog-ponorogo-singa-barong {
  background: radial-gradient(circle at 50% 20%, #47240e 0%, #1c0e05 60%, #090401 100%);
  color: #f8fafc;
  border-color: #f59e0b;
  box-shadow: 0 16px 45px rgba(245, 158, 11, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-reog-ponorogo-singa-barong .card-ornament {
  border-color: #f59e0b;
  opacity: 0.85;
}
.theme-reog-ponorogo-singa-barong .card-salutation-text,
.theme-reog-ponorogo-singa-barong .divider-gem,
.theme-reog-ponorogo-singa-barong .card-title-text,
.theme-reog-ponorogo-singa-barong .card-recipient-name {
  color: #f59e0b;
  text-shadow: 0 0 16px rgba(245, 158, 11, 0.4);
}
.theme-reog-ponorogo-singa-barong .card-milestone-text {
  background-color: rgba(245, 158, 11, 0.25);
  color: #fef3c7;
  border: 1px solid #b45309;
}
.theme-reog-ponorogo-singa-barong .card-message-text {
  color: #f8fafc;
}
.theme-reog-ponorogo-singa-barong .card-event-block {
  background-color: rgba(28, 14, 5, 0.94);
  border: 1px solid #b45309;
  color: #f59e0b;
}
.theme-maroccan-desert-caravan-oasis {
  background: radial-gradient(circle at 50% 20%, #4d2a12 0%, #201107 60%, #0d0703 100%);
  color: #f8fafc;
  border-color: #fb923c;
  box-shadow: 0 16px 45px rgba(251, 146, 60, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-maroccan-desert-caravan-oasis .card-ornament {
  border-color: #fb923c;
  opacity: 0.85;
}
.theme-maroccan-desert-caravan-oasis .card-salutation-text,
.theme-maroccan-desert-caravan-oasis .divider-gem,
.theme-maroccan-desert-caravan-oasis .card-title-text,
.theme-maroccan-desert-caravan-oasis .card-recipient-name {
  color: #fb923c;
  text-shadow: 0 0 16px rgba(251, 146, 60, 0.4);
}
.theme-maroccan-desert-caravan-oasis .card-milestone-text {
  background-color: rgba(251, 146, 60, 0.25);
  color: #fff7ed;
  border: 1px solid #c2410c;
}
.theme-maroccan-desert-caravan-oasis .card-message-text {
  color: #f8fafc;
}
.theme-maroccan-desert-caravan-oasis .card-event-block {
  background-color: rgba(32, 17, 7, 0.94);
  border: 1px solid #c2410c;
  color: #fb923c;
}
.theme-festival-kembang-api-hanabi-matsuri {
  background: radial-gradient(circle at 50% 20%, #3a0e5e 0%, #140521 60%, #07020d 100%);
  color: #f8fafc;
  border-color: #f43f5e;
  box-shadow: 0 16px 45px rgba(244, 63, 94, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-festival-kembang-api-hanabi-matsuri .card-ornament {
  border-color: #f43f5e;
  opacity: 0.85;
}
.theme-festival-kembang-api-hanabi-matsuri .card-salutation-text,
.theme-festival-kembang-api-hanabi-matsuri .divider-gem,
.theme-festival-kembang-api-hanabi-matsuri .card-title-text,
.theme-festival-kembang-api-hanabi-matsuri .card-recipient-name {
  color: #f43f5e;
  text-shadow: 0 0 16px rgba(244, 63, 94, 0.4);
}
.theme-festival-kembang-api-hanabi-matsuri .card-milestone-text {
  background-color: rgba(244, 63, 94, 0.25);
  color: #fff1f2;
  border: 1px solid #be123c;
}
.theme-festival-kembang-api-hanabi-matsuri .card-message-text {
  color: #f8fafc;
}
.theme-festival-kembang-api-hanabi-matsuri .card-event-block {
  background-color: rgba(20, 5, 33, 0.94);
  border: 1px solid #be123c;
  color: #f43f5e;
}
.theme-circus-grand-carnival-bigtop {
  background: radial-gradient(circle at 50% 20%, #4d1123 0%, #1f070e 60%, #0a0204 100%);
  color: #f8fafc;
  border-color: #e11d48;
  box-shadow: 0 16px 45px rgba(225, 29, 72, 0.4), inset 0 0 45px rgba(255, 255, 255, 0.05);
}
.theme-circus-grand-carnival-bigtop .card-ornament {
  border-color: #e11d48;
  opacity: 0.85;
}
.theme-circus-grand-carnival-bigtop .card-salutation-text,
.theme-circus-grand-carnival-bigtop .divider-gem,
.theme-circus-grand-carnival-bigtop .card-title-text,
.theme-circus-grand-carnival-bigtop .card-recipient-name {
  color: #e11d48;
  text-shadow: 0 0 16px rgba(225, 29, 72, 0.4);
}
.theme-circus-grand-carnival-bigtop .card-milestone-text {
  background-color: rgba(225, 29, 72, 0.25);
  color: #fff1f2;
  border: 1px solid #be123c;
}
.theme-circus-grand-carnival-bigtop .card-message-text {
  color: #f8fafc;
}
.theme-circus-grand-carnival-bigtop .card-event-block {
  background-color: rgba(31, 7, 14, 0.94);
  border: 1px solid #be123c;
  color: #e11d48;
}


/* ==========================================================================
   Interactive Candle Widget (.interactive-candle-widget)
   Dedicated to Birthday Candle Blow Interaction
   ========================================================================== */
.interactive-candle-widget {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--sp-3);
  position: relative;
  z-index: 10;
}

.theme-tiup-lilin-kue .interactive-candle-widget,
.theme-ultah-echa .interactive-candle-widget {
  display: flex;
}

.theme-tiup-lilin-kue .card-emblem,
.theme-ultah-echa .card-emblem {
  display: none;
}

.candle-interactive-btn {
  background: transparent;
  border: none;
  padding: var(--sp-2) var(--sp-3);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-2);
  border-radius: var(--radius-md);
  transition: transform 180ms ease;
  min-height: 48px;
}

.candle-interactive-btn:focus-visible {
  outline: 2px solid #facc15;
  outline-offset: 4px;
}

.candle-interactive-btn:hover {
  transform: scale(1.04);
}

.candle-interactive-btn:active {
  transform: scale(0.97);
}

.candle-stand {
  position: relative;
  width: 70px;
  height: 64px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
}

.candle-cake-base {
  width: 54px;
  height: 18px;
  background: linear-gradient(180deg, #fef08a 0%, #d97706 70%, #92400e 100%);
  border-radius: 8px 8px 3px 3px;
  position: relative;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.35);
}

.cake-cream-topping {
  position: absolute;
  top: -3px;
  left: 3px;
  right: 3px;
  height: 6px;
  background: #ffffff;
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.candle-cylinder {
  width: 14px;
  height: 28px;
  background: repeating-linear-gradient(
    45deg,
    #ffffff,
    #ffffff 4px,
    #f43f5e 4px,
    #f43f5e 8px
  );
  border-radius: 3px 3px 0 0;
  box-shadow: inset -2px 0 3px rgba(0,0,0,0.25), 0 2px 4px rgba(0,0,0,0.3);
  position: relative;
  margin-bottom: -2px;
}

.candle-wick {
  width: 2px;
  height: 6px;
  background: #451a03;
  position: absolute;
  top: 13px;
  left: 50%;
  transform: translateX(-50%);
}

.candle-flame-halo {
  position: absolute;
  top: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 250ms ease, transform 250ms ease;
  pointer-events: none;
}

.candle-flame-halo.is-blown {
  opacity: 0;
  transform: translateX(-50%) scale(0.2) translateY(-10px);
}

.flame-outer {
  position: absolute;
  width: 16px;
  height: 22px;
  background: radial-gradient(ellipse at 50% 65%, #fde047 15%, #f59e0b 55%, #ea580c 85%, transparent 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  filter: drop-shadow(0 0 8px rgba(251, 191, 36, 0.9)) drop-shadow(0 0 14px rgba(245, 158, 11, 0.6));
  animation: candleFlicker 1.8s ease-in-out infinite alternate;
  transform-origin: bottom center;
}

.flame-inner {
  position: absolute;
  width: 8px;
  height: 12px;
  background: #ffffff;
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  bottom: 3px;
}

.flame-sparkle {
  position: absolute;
  top: -6px;
  width: 32px;
  height: 32px;
  background: radial-gradient(circle, rgba(254, 240, 138, 0.45) 0%, transparent 65%);
  animation: haloPulse 2s ease-in-out infinite alternate;
}

@keyframes candleFlicker {
  0% { transform: scale(1) rotate(-1deg); }
  25% { transform: scale(1.06, 0.94) rotate(2deg); }
  50% { transform: scale(0.96, 1.05) rotate(-2deg); }
  75% { transform: scale(1.04, 0.96) rotate(1deg); }
  100% { transform: scale(0.98, 1.02) rotate(-1deg); }
}

@keyframes haloPulse {
  0% { transform: scale(0.9); opacity: 0.6; }
  100% { transform: scale(1.2); opacity: 1; }
}

.candle-smoke-rise {
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
  width: 24px;
  height: 36px;
}

.smoke-trail {
  position: absolute;
  width: 8px;
  height: 8px;
  background: rgba(226, 232, 240, 0.65);
  border-radius: 50%;
  filter: blur(2px);
  animation: smokePuff 1.8s ease-out infinite;
}

.smoke-trail.st-1 { left: 4px; animation-delay: 0s; }
.smoke-trail.st-2 { left: 10px; animation-delay: 0.35s; width: 10px; height: 10px; }
.smoke-trail.st-3 { left: 7px; animation-delay: 0.7s; width: 12px; height: 12px; }

@keyframes smokePuff {
  0% { transform: translateY(0) scale(0.5); opacity: 0.8; }
  50% { opacity: 0.5; }
  100% { transform: translateY(-34px) translateX(6px) scale(2.2); opacity: 0; }
}

.candle-action-chip {
  background: rgba(245, 158, 11, 0.25);
  border: 1px solid rgba(245, 158, 11, 0.5);
  color: #fef08a;
  padding: 4px 10px;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  transition: all 180ms ease;
}

.candle-interactive-btn:hover .candle-action-chip {
  background: rgba(245, 158, 11, 0.38);
  border-color: #facc15;
}

/* ==========================================================================
   Template Festive & Elegant Animations Layer (.card-fx-layer)
   Distinctive, Purposeful, Celebratory Motion for Every Template
   ========================================================================== */

.card-fx-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
  border-radius: inherit;
  z-index: 1;
}

.card-content-inner {
  position: relative;
  z-index: 2;
}

.fx-mesh,
.fx-beam,
.fx-frame-glow,
.fx-item {
  position: absolute;
  pointer-events: none;
  display: none;
}

/* --------------------------------------------------------------------------
   FX 1: ultah-ceria (Sunbeam Radiant Glow & Golden Twinkle)
   -------------------------------------------------------------------------- */
.theme-ultah-ceria .fx-mesh {
  display: block;
  inset: -10%;
  background: radial-gradient(circle at 50% 10%, rgba(245, 158, 11, 0.16) 0%, transparent 60%);
  animation: sunbeamPulse 4s ease-in-out infinite alternate;
}
.theme-ultah-ceria .fx-item-1,
.theme-ultah-ceria .fx-item-2 {
  display: block;
  color: #f59e0b;
  font-size: 1.1rem;
}
.theme-ultah-ceria .fx-item-1 {
  top: 18px; left: 24px;
  animation: sparkleTwinkle 3s ease-in-out infinite;
}
.theme-ultah-ceria .fx-item-1::before { content: "✦"; }
.theme-ultah-ceria .fx-item-2 {
  top: 18px; right: 24px;
  animation: sparkleTwinkle 3s 1.5s ease-in-out infinite;
}
.theme-ultah-ceria .fx-item-2::before { content: "✦"; }

@keyframes sunbeamPulse {
  0% { transform: scale(0.96); opacity: 0.6; }
  100% { transform: scale(1.08); opacity: 1; }
}

/* --------------------------------------------------------------------------
   FX 2: ultah-elegan (Midnight Gold Starlight & Edge Sheen)
   -------------------------------------------------------------------------- */
.theme-ultah-elegan .fx-frame-glow {
  display: block;
  inset: 0;
  box-shadow: inset 0 0 20px rgba(226, 176, 74, 0.15);
  animation: goldFramePulse 3.5s ease-in-out infinite alternate;
}
.theme-ultah-elegan .fx-item-1,
.theme-ultah-elegan .fx-item-2,
.theme-ultah-elegan .fx-item-3,
.theme-ultah-elegan .fx-item-4 {
  display: block;
  color: #e2b04a;
  font-size: 0.9rem;
}
.theme-ultah-elegan .fx-item-1 { top: 12%; left: 16%; animation: sparkleTwinkle 4s 0.2s infinite; }
.theme-ultah-elegan .fx-item-1::before { content: "✧"; }
.theme-ultah-elegan .fx-item-2 { top: 22%; right: 14%; animation: sparkleTwinkle 4s 1.8s infinite; }
.theme-ultah-elegan .fx-item-2::before { content: "✦"; }
.theme-ultah-elegan .fx-item-3 { bottom: 18%; left: 18%; animation: sparkleTwinkle 4s 2.6s infinite; }
.theme-ultah-elegan .fx-item-3::before { content: "✦"; }
.theme-ultah-elegan .fx-item-4 { bottom: 25%; right: 16%; animation: sparkleTwinkle 4s 1.1s infinite; }
.theme-ultah-elegan .fx-item-4::before { content: "✧"; }

@keyframes goldFramePulse {
  0% { box-shadow: inset 0 0 15px rgba(226, 176, 74, 0.1); }
  100% { box-shadow: inset 0 0 30px rgba(226, 176, 74, 0.3); }
}

/* --------------------------------------------------------------------------
   FX 3: ultah-pastel (Pastel Berry Floating Sparkles)
   -------------------------------------------------------------------------- */
.theme-ultah-pastel .fx-mesh {
  display: block;
  inset: 0;
  background: radial-gradient(circle at 80% 20%, rgba(244, 114, 182, 0.2) 0%, transparent 50%);
  animation: sunbeamPulse 5s ease-in-out infinite alternate;
}
.theme-ultah-pastel .fx-item-1,
.theme-ultah-pastel .fx-item-2,
.theme-ultah-pastel .fx-item-3 {
  display: block;
  color: #db2777;
  font-size: 1rem;
}
.theme-ultah-pastel .fx-item-1 { top: 15%; left: 20%; animation: sparkleTwinkle 3.2s infinite; }
.theme-ultah-pastel .fx-item-1::before { content: "🌸"; }
.theme-ultah-pastel .fx-item-2 { top: 60%; right: 12%; animation: sparkleTwinkle 3.8s 1.2s infinite; }
.theme-ultah-pastel .fx-item-2::before { content: "✨"; }
.theme-ultah-pastel .fx-item-3 { bottom: 12%; left: 22%; animation: sparkleTwinkle 3.5s 2.1s infinite; }
.theme-ultah-pastel .fx-item-3::before { content: "🌸"; }

/* --------------------------------------------------------------------------
   FX 4: anniv-romantis (Velvet Champagne Warmth Glow)
   -------------------------------------------------------------------------- */
.theme-anniv-romantis .fx-mesh {
  display: block;
  inset: -20%;
  background: radial-gradient(circle at 50% 50%, rgba(251, 191, 36, 0.15) 0%, transparent 65%);
  animation: sunbeamPulse 4s ease-in-out infinite alternate;
}
.theme-anniv-romantis .fx-frame-glow {
  display: block;
  inset: 0;
  box-shadow: inset 0 0 25px rgba(251, 191, 36, 0.2);
  animation: goldFramePulse 3s ease-in-out infinite alternate;
}

/* --------------------------------------------------------------------------
   FX 5: anniv-botanical (Botanical Leaves Sway)
   -------------------------------------------------------------------------- */
.theme-anniv-botanical .fx-item-1,
.theme-anniv-botanical .fx-item-2 {
  display: block;
  color: #15803d;
  font-size: 1.25rem;
  opacity: 0.65;
}
.theme-anniv-botanical .fx-item-1 {
  top: 14px; left: 16px;
  animation: botanicalSway 4.5s ease-in-out infinite alternate;
}
.theme-anniv-botanical .fx-item-1::before { content: "🌿"; }
.theme-anniv-botanical .fx-item-2 {
  bottom: 14px; right: 16px;
  animation: botanicalSway 4.5s 1.5s ease-in-out infinite alternate;
}
.theme-anniv-botanical .fx-item-2::before { content: "🌿"; }

@keyframes botanicalSway {
  0% { transform: rotate(-8deg) scale(0.95); }
  100% { transform: rotate(10deg) scale(1.05); }
}

/* --------------------------------------------------------------------------
   FX 6: anniv-celestial (Sapphire Stardust Stream)
   -------------------------------------------------------------------------- */
.theme-anniv-celestial .fx-mesh {
  display: block;
  inset: 0;
  background: radial-gradient(circle at 30% 70%, rgba(56, 189, 248, 0.22) 0%, transparent 60%);
  animation: sunbeamPulse 6s ease-in-out infinite alternate;
}
.theme-anniv-celestial .fx-item-1,
.theme-anniv-celestial .fx-item-2,
.theme-anniv-celestial .fx-item-3 {
  display: block;
  color: #38bdf8;
  font-size: 0.95rem;
}
.theme-anniv-celestial .fx-item-1 { top: 16%; left: 18%; animation: sparkleTwinkle 3.6s infinite; }
.theme-anniv-celestial .fx-item-1::before { content: "✦"; }
.theme-anniv-celestial .fx-item-2 { top: 40%; right: 15%; animation: sparkleTwinkle 4.2s 1.6s infinite; }
.theme-anniv-celestial .fx-item-2::before { content: "★"; }
.theme-anniv-celestial .fx-item-3 { bottom: 18%; left: 24%; animation: sparkleTwinkle 3.8s 0.8s infinite; }
.theme-anniv-celestial .fx-item-3::before { content: "✧"; }

/* --------------------------------------------------------------------------
   FX 7: royal-emerald (Liquid Gold Foil Shimmer Sweep & Royal Frame)
   -------------------------------------------------------------------------- */
.theme-royal-emerald .fx-beam {
  display: block;
  position: absolute;
  top: -100%;
  left: -100%;
  width: 300%;
  height: 300%;
  background: linear-gradient(115deg, transparent 40%, rgba(254, 240, 138, 0.15) 47%, rgba(250, 204, 21, 0.45) 50%, rgba(254, 240, 138, 0.15) 53%, transparent 60%);
  animation: royalGoldSweep 4.5s ease-in-out infinite;
}
.theme-royal-emerald .fx-frame-glow {
  display: block;
  inset: 0;
  box-shadow: inset 0 0 35px rgba(251, 191, 36, 0.22);
  animation: goldFramePulse 3s ease-in-out infinite alternate;
}
.theme-royal-emerald .fx-item-1,
.theme-royal-emerald .fx-item-2 {
  display: block;
  color: #fde047;
  font-size: 1.15rem;
}
.theme-royal-emerald .fx-item-1 { top: 12px; left: 14px; animation: sparkleTwinkle 3.5s infinite; }
.theme-royal-emerald .fx-item-1::before { content: "✦"; }
.theme-royal-emerald .fx-item-2 { top: 12px; right: 14px; animation: sparkleTwinkle 3.5s 1.7s infinite; }
.theme-royal-emerald .fx-item-2::before { content: "✦"; }

@keyframes royalGoldSweep {
  0% { transform: translate3d(-30%, -30%, 0) rotate(20deg); opacity: 0; }
  15% { opacity: 0.9; }
  45% { transform: translate3d(30%, 30%, 0) rotate(20deg); opacity: 0.9; }
  60%, 100% { transform: translate3d(35%, 35%, 0) rotate(20deg); opacity: 0; }
}

/* --------------------------------------------------------------------------
   FX 8: sakura-blossom (Drifting 3D Falling Sakura Petals)
   -------------------------------------------------------------------------- */
.theme-sakura-blossom .fx-item-1,
.theme-sakura-blossom .fx-item-2,
.theme-sakura-blossom .fx-item-3,
.theme-sakura-blossom .fx-item-4,
.theme-sakura-blossom .fx-item-5,
.theme-sakura-blossom .fx-item-6 {
  display: block;
  width: 14px;
  height: 18px;
  background: linear-gradient(135deg, #fbcfe8 0%, #f472b6 65%, #e11d48 100%);
  border-radius: 80% 0 55% 50% / 55% 0 80% 50%;
  opacity: 0.75;
  filter: drop-shadow(0 2px 4px rgba(244, 114, 182, 0.35));
}
.theme-sakura-blossom .fx-item-1 { left: 12%; animation: sakuraDrift 7s linear infinite; }
.theme-sakura-blossom .fx-item-2 { left: 34%; width: 16px; height: 20px; animation: sakuraDrift 8.2s 1.5s linear infinite; }
.theme-sakura-blossom .fx-item-3 { left: 58%; width: 12px; height: 16px; animation: sakuraDrift 6.8s 3.2s linear infinite; }
.theme-sakura-blossom .fx-item-4 { left: 82%; animation: sakuraDrift 7.6s 4.8s linear infinite; }
.theme-sakura-blossom .fx-item-5 { left: 24%; width: 13px; height: 17px; animation: sakuraDrift 7.2s 2.2s linear infinite; }
.theme-sakura-blossom .fx-item-6 { left: 72%; width: 15px; height: 19px; animation: sakuraDrift 8.5s 5.5s linear infinite; }

@keyframes sakuraDrift {
  0% {
    top: -24px;
    transform: translate3d(0, 0, 0) rotate(0deg) rotateY(0deg);
    opacity: 0;
  }
  15% {
    opacity: 0.85;
  }
  50% {
    transform: translate3d(35px, 280px, 0) rotate(180deg) rotateY(180deg);
    opacity: 0.85;
  }
  85% {
    opacity: 0.7;
  }
  100% {
    top: 105%;
    transform: translate3d(-20px, 580px, 0) rotate(360deg) rotateY(360deg);
    opacity: 0;
  }
}

/* --------------------------------------------------------------------------
   FX 9: wisuda-prestise (Laurel Wreath Seal & Academic Ribbons)
   -------------------------------------------------------------------------- */
.theme-wisuda-prestise .fx-item-1 {
  display: block;
  top: 36px;
  left: 50%;
  transform: translateX(-50%);
  width: 68px;
  height: 68px;
  border-radius: 50%;
  border: 2px dashed rgba(245, 158, 11, 0.4);
  box-shadow: 0 0 16px rgba(245, 158, 11, 0.2);
  animation: laurelRotate 25s linear infinite;
}
.theme-wisuda-prestise .fx-item-2,
.theme-wisuda-prestise .fx-item-3 {
  display: block;
  width: 44px;
  height: 4px;
  background: linear-gradient(90deg, #d97706, #fbbf24);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(251, 191, 36, 0.4);
}
.theme-wisuda-prestise .fx-item-2 {
  bottom: 24px; left: 24px;
  animation: ribbonWave 3.5s ease-in-out infinite alternate;
}
.theme-wisuda-prestise .fx-item-3 {
  bottom: 24px; right: 24px;
  animation: ribbonWave 3.5s 1.7s ease-in-out infinite alternate;
}
.theme-wisuda-prestise .fx-item-4,
.theme-wisuda-prestise .fx-item-5 {
  display: block;
  color: #fbbf24;
  font-size: 0.95rem;
}
.theme-wisuda-prestise .fx-item-4 { top: 20%; left: 14%; animation: sparkleTwinkle 3.8s infinite; }
.theme-wisuda-prestise .fx-item-4::before { content: "★"; }
.theme-wisuda-prestise .fx-item-5 { top: 20%; right: 14%; animation: sparkleTwinkle 3.8s 1.9s infinite; }
.theme-wisuda-prestise .fx-item-5::before { content: "★"; }

@keyframes laurelRotate {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}

@keyframes ribbonWave {
  0% { transform: translateY(0) rotate(-6deg); }
  100% { transform: translateY(-4px) rotate(8deg); }
}

/* --------------------------------------------------------------------------
   FX 10: galaxy-aurora (Cosmic Aurora Curtain Waves & Pulsar Stars)
   -------------------------------------------------------------------------- */
.theme-galaxy-aurora .fx-mesh {
  display: block;
  inset: -25%;
  width: 150%;
  height: 150%;
  background: radial-gradient(circle at 25% 25%, rgba(6, 182, 212, 0.35) 0%, transparent 45%),
              radial-gradient(circle at 75% 65%, rgba(168, 85, 247, 0.3) 0%, transparent 50%),
              radial-gradient(circle at 45% 85%, rgba(16, 185, 129, 0.22) 0%, transparent 45%);
  filter: blur(32px);
  animation: auroraMorph 9s ease-in-out infinite alternate;
}
.theme-galaxy-aurora .fx-item-1,
.theme-galaxy-aurora .fx-item-2,
.theme-galaxy-aurora .fx-item-3,
.theme-galaxy-aurora .fx-item-4 {
  display: block;
  color: #38bdf8;
  font-size: 0.95rem;
}
.theme-galaxy-aurora .fx-item-1 { top: 15%; left: 16%; animation: pulsarBlink 3.2s infinite; }
.theme-galaxy-aurora .fx-item-1::before { content: "✦"; }
.theme-galaxy-aurora .fx-item-2 { top: 32%; right: 12%; animation: pulsarBlink 4.1s 1.4s infinite; }
.theme-galaxy-aurora .fx-item-2::before { content: "✧"; }
.theme-galaxy-aurora .fx-item-3 { bottom: 22%; left: 18%; animation: pulsarBlink 3.7s 2.2s infinite; }
.theme-galaxy-aurora .fx-item-3::before { content: "✦"; }
.theme-galaxy-aurora .fx-item-4 { bottom: 12%; right: 20%; animation: pulsarBlink 3.4s 0.8s infinite; }
.theme-galaxy-aurora .fx-item-4::before { content: "✧"; }

@keyframes auroraMorph {
  0% { transform: translate3d(0, 0, 0) scale(1); opacity: 0.7; }
  50% { transform: translate3d(25px, -20px, 0) scale(1.1); opacity: 0.95; }
  100% { transform: translate3d(-20px, 25px, 0) scale(1.05); opacity: 0.8; }
}

@keyframes pulsarBlink {
  0%, 100% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); filter: drop-shadow(0 0 8px currentColor); }
}

/* --------------------------------------------------------------------------
   FX 11: festive-carnival (Bursting Mini Fireworks & Bouncing Streamers)
   -------------------------------------------------------------------------- */
.theme-festive-carnival .fx-item-1,
.theme-festive-carnival .fx-item-2 {
  display: block;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 2px dotted #ea580c;
  box-shadow: 0 0 14px rgba(234, 88, 12, 0.4);
}
.theme-festive-carnival .fx-item-1 {
  top: 18px; left: 18px;
  animation: fireworkPop 2.6s ease-out infinite;
}
.theme-festive-carnival .fx-item-2 {
  top: 18px; right: 18px;
  animation: fireworkPop 2.6s 1.3s ease-out infinite;
}
.theme-festive-carnival .fx-item-3,
.theme-festive-carnival .fx-item-4,
.theme-festive-carnival .fx-item-5 {
  display: block;
  font-size: 1.15rem;
}
.theme-festive-carnival .fx-item-3 {
  top: 48%; left: 10px;
  animation: streamerBounce 3s ease-in-out infinite alternate;
}
.theme-festive-carnival .fx-item-3::before { content: "🎉"; }
.theme-festive-carnival .fx-item-4 {
  top: 52%; right: 10px;
  animation: streamerBounce 3s 1.5s ease-in-out infinite alternate;
}
.theme-festive-carnival .fx-item-4::before { content: "🎊"; }
.theme-festive-carnival .fx-item-5 {
  bottom: 22px; left: 50%;
  transform: translateX(-50%);
  animation: streamerBounce 2.5s 0.8s ease-in-out infinite alternate;
}
.theme-festive-carnival .fx-item-5::before { content: "✨"; }

@keyframes fireworkPop {
  0% { transform: scale(0.2); opacity: 0; }
  35% { opacity: 1; transform: scale(1.15); }
  60% { transform: scale(1.3); opacity: 0.1; }
  100% { transform: scale(1.3); opacity: 0; }
}

@keyframes streamerBounce {
  0% { transform: translateY(0) rotate(-10deg); }
  100% { transform: translateY(-8px) rotate(12deg); }
}

/* --------------------------------------------------------------------------
   FX 12: oriental-lantern (Swaying Silk Lanterns & Warm Firefly Glow)
   -------------------------------------------------------------------------- */
.theme-oriental-lantern .fx-item-1,
.theme-oriental-lantern .fx-item-2 {
  display: block;
  width: 28px;
  height: 40px;
  background: linear-gradient(180deg, #facc15 0%, #dc2626 18%, #991b1b 82%, #facc15 100%);
  border-radius: 8px;
  box-shadow: 0 0 18px rgba(250, 204, 21, 0.65), inset 0 0 8px rgba(254, 240, 138, 0.4);
  transform-origin: top center;
}
.theme-oriental-lantern .fx-item-1::after,
.theme-oriental-lantern .fx-item-2::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 10px;
  background: #facc15;
  border-radius: 2px;
}
.theme-oriental-lantern .fx-item-1 {
  top: 0; left: 24px;
  animation: lanternSwingLeft 4s ease-in-out infinite alternate;
}
.theme-oriental-lantern .fx-item-2 {
  top: 0; right: 24px;
  animation: lanternSwingRight 4.4s ease-in-out infinite alternate;
}
.theme-oriental-lantern .fx-frame-glow {
  display: block;
  inset: 0;
  box-shadow: inset 0 0 35px rgba(250, 204, 21, 0.22);
  animation: lanternWarmth 3s ease-in-out infinite alternate;
}

@keyframes lanternSwingLeft {
  0% { transform: rotate(-9deg); }
  100% { transform: rotate(11deg); }
}

@keyframes lanternSwingRight {
  0% { transform: rotate(10deg); }
  100% { transform: rotate(-8deg); }
}

@keyframes lanternWarmth {
  0% { box-shadow: inset 0 0 20px rgba(250, 204, 21, 0.12); }
  100% { box-shadow: inset 0 0 40px rgba(250, 204, 21, 0.3); }
}

/* --------------------------------------------------------------------------
   FX 13: ocean-pearl (Iridescent Pearl Lagoon & Sea Breeze)
   -------------------------------------------------------------------------- */
.theme-ocean-pearl .fx-mesh {
  display: block;
  inset: -30%;
  width: 160%;
  height: 160%;
  background: linear-gradient(135deg, rgba(20, 184, 166, 0.14) 0%, rgba(244, 114, 182, 0.14) 35%, rgba(56, 189, 248, 0.18) 70%, rgba(167, 139, 250, 0.12) 100%);
  filter: blur(24px);
  animation: pearlSheenWave 8s ease-in-out infinite alternate;
}
.theme-ocean-pearl .fx-beam {
  display: block;
  position: absolute;
  top: -100%;
  left: -100%;
  width: 300%;
  height: 300%;
  background: linear-gradient(120deg, transparent 42%, rgba(255, 255, 255, 0.45) 50%, transparent 58%);
  animation: royalGoldSweep 6s ease-in-out infinite;
}
.theme-ocean-pearl .fx-item-1,
.theme-ocean-pearl .fx-item-2 {
  display: block;
  color: #0d9488;
  font-size: 1rem;
}
.theme-ocean-pearl .fx-item-1 { top: 16px; left: 20px; animation: sparkleTwinkle 3.4s infinite; }
.theme-ocean-pearl .fx-item-1::before { content: "✧"; }
.theme-ocean-pearl .fx-item-2 { bottom: 16px; right: 20px; animation: sparkleTwinkle 3.4s 1.7s infinite; }
.theme-ocean-pearl .fx-item-2::before { content: "✧"; }

@keyframes pearlSheenWave {
  0% { transform: translate3d(0, 0, 0) scale(1); }
  100% { transform: translate3d(30px, -25px, 0) scale(1.1); }
}

/* --------------------------------------------------------------------------
   FX 14: minimalist-monochrome (Platinum Architectural & Laser Crystal)
   -------------------------------------------------------------------------- */
.theme-minimalist-monochrome .fx-beam {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(241, 245, 249, 0.2) 20%, #ffffff 50%, rgba(241, 245, 249, 0.2) 80%, transparent 100%);
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 20px rgba(203, 213, 225, 0.5);
  animation: laserScanSweep 5s ease-in-out infinite;
}
.theme-minimalist-monochrome .fx-item-1,
.theme-minimalist-monochrome .fx-item-2,
.theme-minimalist-monochrome .fx-item-3,
.theme-minimalist-monochrome .fx-item-4 {
  display: block;
  color: #94a3b8;
  font-family: monospace;
  font-size: 0.85rem;
  line-height: 1;
}
.theme-minimalist-monochrome .fx-item-1 { top: 14px; left: 14px; }
.theme-minimalist-monochrome .fx-item-1::before { content: "+"; }
.theme-minimalist-monochrome .fx-item-2 { top: 14px; right: 14px; }
.theme-minimalist-monochrome .fx-item-2::before { content: "+"; }
.theme-minimalist-monochrome .fx-item-3 { bottom: 14px; left: 14px; }
.theme-minimalist-monochrome .fx-item-3::before { content: "+"; }
.theme-minimalist-monochrome .fx-item-4 { bottom: 14px; right: 14px; }
.theme-minimalist-monochrome .fx-item-4::before { content: "+"; }

@keyframes laserScanSweep {
  0% { top: 0%; opacity: 0; }
  15% { opacity: 0.9; }
  85% { opacity: 0.9; }
  100% { top: 100%; opacity: 0; }
}

/* --------------------------------------------------------------------------
   FX 15: lebaran-fitri (Crescent Moon Orbital Float & Arabesque Stars)
   -------------------------------------------------------------------------- */
.theme-lebaran-fitri .fx-item-1 {
  display: block;
  top: 28px;
  left: 50%;
  transform: translateX(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  box-shadow: 7px 7px 0 0 #fde047;
  filter: drop-shadow(0 0 12px rgba(253, 224, 71, 0.7));
  animation: crescentFloat 4s ease-in-out infinite alternate;
}
.theme-lebaran-fitri .fx-item-2,
.theme-lebaran-fitri .fx-item-3,
.theme-lebaran-fitri .fx-item-4 {
  display: block;
  color: #fde047;
  font-size: 1rem;
}
.theme-lebaran-fitri .fx-item-2 { top: 16%; left: 18%; animation: sparkleTwinkle 3.2s infinite; }
.theme-lebaran-fitri .fx-item-2::before { content: "۞"; }
.theme-lebaran-fitri .fx-item-3 { top: 16%; right: 18%; animation: sparkleTwinkle 3.2s 1.6s infinite; }
.theme-lebaran-fitri .fx-item-3::before { content: "۞"; }
.theme-lebaran-fitri .fx-item-4 { bottom: 18%; left: 50%; transform: translateX(-50%); animation: sparkleTwinkle 3s 0.8s infinite; }
.theme-lebaran-fitri .fx-item-4::before { content: "✦"; }
.theme-lebaran-fitri .fx-frame-glow {
  display: block;
  inset: 0;
  box-shadow: inset 0 0 30px rgba(253, 224, 71, 0.18);
  animation: goldFramePulse 3.5s ease-in-out infinite alternate;
}

@keyframes crescentFloat {
  0% { transform: translateX(-50%) translateY(0) scale(0.96); }
  100% { transform: translateX(-50%) translateY(-6px) scale(1.05); }
}

/* --------------------------------------------------------------------------
   FX 16: champagne-glamour (Rising Effervescent Champagne Bubbles)
   -------------------------------------------------------------------------- */
.theme-champagne-glamour .fx-item-1,
.theme-champagne-glamour .fx-item-2,
.theme-champagne-glamour .fx-item-3,
.theme-champagne-glamour .fx-item-4,
.theme-champagne-glamour .fx-item-5,
.theme-champagne-glamour .fx-item-6,
.theme-champagne-glamour .fx-item-7,
.theme-champagne-glamour .fx-item-8 {
  display: block;
  border: 1.5px solid rgba(254, 240, 138, 0.85);
  background: radial-gradient(circle at 35% 35%, #ffffff 0%, rgba(250, 204, 21, 0.4) 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(254, 240, 138, 0.5);
}
.theme-champagne-glamour .fx-item-1 { width: 14px; height: 14px; left: 16%; animation: bubbleAscend 4.2s linear infinite; }
.theme-champagne-glamour .fx-item-2 { width: 20px; height: 20px; left: 34%; animation: bubbleAscend 5.5s 1.2s linear infinite; }
.theme-champagne-glamour .fx-item-3 { width: 10px; height: 10px; left: 52%; animation: bubbleAscend 3.8s 2.2s linear infinite; }
.theme-champagne-glamour .fx-item-4 { width: 16px; height: 16px; left: 70%; animation: bubbleAscend 4.8s 0.6s linear infinite; }
.theme-champagne-glamour .fx-item-5 { width: 22px; height: 22px; left: 86%; animation: bubbleAscend 5.8s 2.8s linear infinite; }
.theme-champagne-glamour .fx-item-6 { width: 12px; height: 12px; left: 26%; animation: bubbleAscend 4.4s 3.4s linear infinite; }
.theme-champagne-glamour .fx-item-7 { width: 18px; height: 18px; left: 62%; animation: bubbleAscend 5s 1.6s linear infinite; }
.theme-champagne-glamour .fx-item-8 { width: 15px; height: 15px; left: 44%; animation: bubbleAscend 4.6s 4s linear infinite; }

@keyframes bubbleAscend {
  0% {
    bottom: -30px;
    transform: translateX(0);
    opacity: 0;
  }
  20% {
    opacity: 0.9;
  }
  50% {
    transform: translateX(8px);
  }
  80% {
    transform: translateX(-6px);
    opacity: 0.9;
  }
  100% {
    bottom: 105%;
    transform: translateX(4px);
    opacity: 0;
  }
}

/* --------------------------------------------------------------------------
   FX 17: vintage-romantic (Victorian Lace Heartbeat & Love Vignette)
   -------------------------------------------------------------------------- */
.theme-vintage-romantic .fx-frame-glow {
  display: block;
  inset: 6px;
  border: 2px dashed rgba(157, 23, 77, 0.35);
  border-radius: inherit;
  box-shadow: inset 0 0 25px rgba(157, 23, 77, 0.12);
  animation: romanticHeartbeat 3.2s ease-in-out infinite;
}
.theme-vintage-romantic .fx-item-1,
.theme-vintage-romantic .fx-item-2,
.theme-vintage-romantic .fx-item-3,
.theme-vintage-romantic .fx-item-4 {
  display: block;
  color: #9d174d;
  font-size: 1.1rem;
}
.theme-vintage-romantic .fx-item-1 { left: 16%; animation: heartDrift 6.5s linear infinite; }
.theme-vintage-romantic .fx-item-1::before { content: "♥"; }
.theme-vintage-romantic .fx-item-2 { left: 40%; font-size: 0.9rem; animation: heartDrift 7.5s 2s linear infinite; }
.theme-vintage-romantic .fx-item-2::before { content: "❦"; }
.theme-vintage-romantic .fx-item-3 { left: 68%; font-size: 1.2rem; animation: heartDrift 6.8s 3.5s linear infinite; }
.theme-vintage-romantic .fx-item-3::before { content: "♥"; }
.theme-vintage-romantic .fx-item-4 { left: 84%; font-size: 0.95rem; animation: heartDrift 7.2s 1s linear infinite; }
.theme-vintage-romantic .fx-item-4::before { content: "❦"; }

@keyframes romanticHeartbeat {
  0%, 100% {
    box-shadow: inset 0 0 15px rgba(157, 23, 77, 0.08);
    border-color: rgba(157, 23, 77, 0.25);
  }
  30% {
    box-shadow: inset 0 0 28px rgba(157, 23, 77, 0.22);
    border-color: rgba(157, 23, 77, 0.5);
  }
  45% {
    box-shadow: inset 0 0 18px rgba(157, 23, 77, 0.12);
    border-color: rgba(157, 23, 77, 0.3);
  }
  60% {
    box-shadow: inset 0 0 32px rgba(157, 23, 77, 0.26);
    border-color: rgba(157, 23, 77, 0.55);
  }
}

@keyframes heartDrift {
  0% {
    bottom: -20px;
    transform: translateX(0) scale(0.8) rotate(0deg);
    opacity: 0;
  }
  20% {
    opacity: 0.75;
  }
  50% {
    transform: translateX(12px) scale(1.05) rotate(12deg);
  }
  80% {
    opacity: 0.75;
  }
  100% {
    bottom: 105%;
    transform: translateX(-10px) scale(0.9) rotate(-10deg);
    opacity: 0;
  }
}

/* FX 18: tiup-lilin-kue (Warm Candle Glow & Spark Ascent) */
.theme-tiup-lilin-kue .fx-mesh {
  display: block;
  inset: -15%;
  background: radial-gradient(circle at 50% 25%, rgba(245, 158, 11, 0.28) 0%, transparent 65%);
  animation: candleWarmthPulse 3s ease-in-out infinite alternate;
}
.theme-tiup-lilin-kue .fx-frame-glow {
  display: block;
  inset: 0;
  box-shadow: inset 0 0 25px rgba(217, 119, 6, 0.25);
  animation: candleFrameGlow 3s ease-in-out infinite alternate;
}
.theme-tiup-lilin-kue .fx-item-1,
.theme-tiup-lilin-kue .fx-item-2,
.theme-tiup-lilin-kue .fx-item-3,
.theme-tiup-lilin-kue .fx-item-4 {
  display: block;
  color: #fde047;
  font-size: 0.95rem;
}
.theme-tiup-lilin-kue .fx-item-1 { left: 22%; animation: sparkAscend 4.5s ease-in infinite; }
.theme-tiup-lilin-kue .fx-item-1::before { content: "✦"; }
.theme-tiup-lilin-kue .fx-item-2 { left: 76%; animation: sparkAscend 5s 1.2s ease-in infinite; }
.theme-tiup-lilin-kue .fx-item-2::before { content: "✧"; }
.theme-tiup-lilin-kue .fx-item-3 { top: 16px; left: 16px; animation: sparkleTwinkle 3.2s infinite; }
.theme-tiup-lilin-kue .fx-item-3::before { content: "✦"; }
.theme-tiup-lilin-kue .fx-item-4 { top: 16px; right: 16px; animation: sparkleTwinkle 3.2s 1.5s infinite; }
.theme-tiup-lilin-kue .fx-item-4::before { content: "✦"; }

@keyframes candleWarmthPulse {
  0% { transform: scale(0.95); opacity: 0.7; }
  100% { transform: scale(1.1); opacity: 1; }
}

@keyframes candleFrameGlow {
  0% { box-shadow: inset 0 0 15px rgba(217, 119, 6, 0.15); }
  100% { box-shadow: inset 0 0 35px rgba(245, 158, 11, 0.35); }
}

@keyframes sparkAscend {
  0% { bottom: 20%; opacity: 0; transform: translateY(0) scale(0.6); }
  30% { opacity: 0.9; }
  80% { opacity: 0.8; }
  100% { bottom: 95%; opacity: 0; transform: translateY(-40px) scale(1.2); }
}

/* FX 19: amplop-surat-cinta (3D Letter Origami Unfolding & Cursive Flourish) */
.theme-amplop-surat-cinta .fx-door-left,
.theme-amplop-surat-cinta .fx-door-right {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  background: linear-gradient(135deg, rgba(253, 251, 247, 0.92) 0%, rgba(254, 226, 226, 0.85) 100%);
  border-bottom: 2px dashed rgba(190, 18, 60, 0.3);
  box-shadow: 0 4px 15px rgba(190, 18, 60, 0.15);
  pointer-events: none;
  z-index: 5;
}
.theme-amplop-surat-cinta .fx-door-left {
  left: 0;
  transform-origin: left center;
  animation: letterUnfoldLeft 2.2s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}
.theme-amplop-surat-cinta .fx-door-right {
  right: 0;
  transform-origin: right center;
  animation: letterUnfoldRight 2.2s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}
.theme-amplop-surat-cinta .fx-item-1,
.theme-amplop-surat-cinta .fx-item-2,
.theme-amplop-surat-cinta .fx-item-3,
.theme-amplop-surat-cinta .fx-item-4 {
  display: block;
  color: #be123c;
  font-size: 1.1rem;
}
.theme-amplop-surat-cinta .fx-item-1 { left: 18%; animation: heartDrift 6.8s linear infinite; }
.theme-amplop-surat-cinta .fx-item-1::before { content: "💌"; }
.theme-amplop-surat-cinta .fx-item-2 { left: 45%; font-size: 0.9rem; animation: heartDrift 7.4s 1.5s linear infinite; }
.theme-amplop-surat-cinta .fx-item-2::before { content: "♥"; }
.theme-amplop-surat-cinta .fx-item-3 { left: 75%; animation: heartDrift 6.2s 3s linear infinite; }
.theme-amplop-surat-cinta .fx-item-3::before { content: "❦"; }
.theme-amplop-surat-cinta .fx-item-4 { left: 88%; font-size: 0.85rem; animation: heartDrift 7s 0.8s linear infinite; }
.theme-amplop-surat-cinta .fx-item-4::before { content: "♥"; }

@keyframes letterUnfoldLeft {
  0% { transform: perspective(800px) rotateY(0deg); opacity: 1; }
  60% { opacity: 0.8; }
  100% { transform: perspective(800px) rotateY(-130deg); opacity: 0; }
}

@keyframes letterUnfoldRight {
  0% { transform: perspective(800px) rotateY(0deg); opacity: 1; }
  60% { opacity: 0.8; }
  100% { transform: perspective(800px) rotateY(130deg); opacity: 0; }
}

/* FX 20: golden-gate-wedding (3D Royal Palace Gates Opening & Golden Butterflies) */
.theme-golden-gate-wedding .fx-door-left,
.theme-golden-gate-wedding .fx-door-right {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  background: repeating-linear-gradient(
    90deg,
    rgba(234, 179, 8, 0.12) 0px,
    rgba(234, 179, 8, 0.12) 4px,
    transparent 4px,
    transparent 18px
  );
  border: 2px solid rgba(234, 179, 8, 0.45);
  box-shadow: 0 0 18px rgba(234, 179, 8, 0.25);
  z-index: 5;
  pointer-events: none;
}
.theme-golden-gate-wedding .fx-door-left {
  left: 0;
  transform-origin: left center;
  animation: royalGateOpenLeft 2.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.theme-golden-gate-wedding .fx-door-right {
  right: 0;
  transform-origin: right center;
  animation: royalGateOpenRight 2.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.theme-golden-gate-wedding .fx-item-1,
.theme-golden-gate-wedding .fx-item-2,
.theme-golden-gate-wedding .fx-item-3,
.theme-golden-gate-wedding .fx-item-4 {
  display: block;
  color: #facc15;
  font-size: 1.25rem;
  filter: drop-shadow(0 0 8px rgba(250, 204, 21, 0.6));
}
.theme-golden-gate-wedding .fx-item-1 { left: 14%; animation: butterflyFlight 8s ease-in-out infinite; }
.theme-golden-gate-wedding .fx-item-1::before { content: "🦋"; }
.theme-golden-gate-wedding .fx-item-2 { left: 78%; animation: butterflyFlight 9s 2.2s ease-in-out infinite; }
.theme-golden-gate-wedding .fx-item-2::before { content: "🦋"; }
.theme-golden-gate-wedding .fx-item-3 { top: 14px; left: 18px; animation: sparkleTwinkle 3.6s infinite; font-size: 1rem; }
.theme-golden-gate-wedding .fx-item-3::before { content: "✦"; }
.theme-golden-gate-wedding .fx-item-4 { top: 14px; right: 18px; animation: sparkleTwinkle 3.6s 1.8s infinite; font-size: 1rem; }
.theme-golden-gate-wedding .fx-item-4::before { content: "✦"; }

@keyframes royalGateOpenLeft {
  0% { transform: perspective(900px) rotateY(0deg); opacity: 0.95; }
  50% { opacity: 0.7; }
  100% { transform: perspective(900px) rotateY(-85deg); opacity: 0.08; }
}

@keyframes royalGateOpenRight {
  0% { transform: perspective(900px) rotateY(0deg); opacity: 0.95; }
  50% { opacity: 0.7; }
  100% { transform: perspective(900px) rotateY(85deg); opacity: 0.08; }
}

@keyframes butterflyFlight {
  0% { bottom: -20px; transform: translateX(0) translateY(0) rotate(0deg) scale(0.8); opacity: 0; }
  20% { opacity: 0.9; }
  50% { transform: translateX(25px) translateY(-180px) rotate(15deg) scale(1.1); }
  80% { opacity: 0.85; }
  100% { bottom: 105%; transform: translateX(-20px) translateY(-380px) rotate(-10deg) scale(0.9); opacity: 0; }
}

/* FX 21: pesta-balon-udara (Hot Air Balloon Ascending & Pastel Clouds) */
.theme-pesta-balon-udara .fx-mesh {
  display: block;
  inset: -10%;
  background: radial-gradient(circle at 50% 85%, rgba(251, 146, 60, 0.25) 0%, rgba(192, 132, 252, 0.15) 50%, transparent 80%);
  animation: sunbeamPulse 5s ease-in-out infinite alternate;
}
.theme-pesta-balon-udara .fx-item-1 {
  display: block;
  top: 36px;
  right: 18px;
  font-size: 2rem;
  animation: balloonSway 5s ease-in-out infinite alternate;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,0.3));
}
.theme-pesta-balon-udara .fx-item-1::before { content: "🎈"; }
.theme-pesta-balon-udara .fx-item-2,
.theme-pesta-balon-udara .fx-item-3 {
  display: block;
  font-size: 1.6rem;
  opacity: 0.35;
}
.theme-pesta-balon-udara .fx-item-2 {
  bottom: 24px; left: -10px;
  animation: cloudDrift 9s linear infinite;
}
.theme-pesta-balon-udara .fx-item-2::before { content: "☁️"; }
.theme-pesta-balon-udara .fx-item-3 {
  top: 45%; right: -10px;
  animation: cloudDrift 11s 4s linear infinite;
}
.theme-pesta-balon-udara .fx-item-3::before { content: "☁️"; }
.theme-pesta-balon-udara .fx-item-4,
.theme-pesta-balon-udara .fx-item-5 {
  display: block;
  color: #fed7aa;
  font-size: 0.9rem;
}
.theme-pesta-balon-udara .fx-item-4 { top: 18%; left: 16%; animation: sparkleTwinkle 3.8s infinite; }
.theme-pesta-balon-udara .fx-item-4::before { content: "✨"; }
.theme-pesta-balon-udara .fx-item-5 { bottom: 22%; right: 20%; animation: sparkleTwinkle 3.8s 1.9s infinite; }
.theme-pesta-balon-udara .fx-item-5::before { content: "✨"; }

@keyframes balloonSway {
  0% { transform: translateY(0) rotate(-4deg); }
  50% { transform: translateY(-8px) rotate(3deg); }
  100% { transform: translateY(4px) rotate(-3deg); }
}

@keyframes cloudDrift {
  0% { transform: translateX(0); opacity: 0; }
  15% { opacity: 0.45; }
  85% { opacity: 0.45; }
  100% { transform: translateX(110px); opacity: 0; }
}

/* FX 22: lilin-aroma-spa (Serene Candle Reflections & Drifting Jasmine Petals) */
.theme-lilin-aroma-spa .fx-mesh {
  display: block;
  inset: -15%;
  background: radial-gradient(ellipse at 50% 80%, rgba(234, 179, 8, 0.18) 0%, rgba(132, 204, 22, 0.1) 40%, transparent 70%);
  animation: waterRipple 6s ease-in-out infinite alternate;
}
.theme-lilin-aroma-spa .fx-frame-glow {
  display: block;
  inset: 0;
  box-shadow: inset 0 0 35px rgba(234, 179, 8, 0.15);
  animation: goldFramePulse 4s ease-in-out infinite alternate;
}
.theme-lilin-aroma-spa .fx-item-1,
.theme-lilin-aroma-spa .fx-item-2,
.theme-lilin-aroma-spa .fx-item-3,
.theme-lilin-aroma-spa .fx-item-4 {
  display: block;
  color: #fef08a;
  font-size: 1.1rem;
}
.theme-lilin-aroma-spa .fx-item-1 { left: 16%; animation: jasmineDrift 8s linear infinite; }
.theme-lilin-aroma-spa .fx-item-1::before { content: "🪷"; }
.theme-lilin-aroma-spa .fx-item-2 { left: 42%; animation: jasmineDrift 9.2s 2.5s linear infinite; }
.theme-lilin-aroma-spa .fx-item-2::before { content: "🕯️"; }
.theme-lilin-aroma-spa .fx-item-3 { left: 72%; animation: jasmineDrift 8.6s 4.5s linear infinite; }
.theme-lilin-aroma-spa .fx-item-3::before { content: "🪷"; }
.theme-lilin-aroma-spa .fx-item-4 { bottom: 20px; left: 50%; transform: translateX(-50%); font-size: 1.3rem; animation: candleWarmthPulse 3s infinite alternate; }
.theme-lilin-aroma-spa .fx-item-4::before { content: "✨"; }

@keyframes waterRipple {
  0% { transform: scale(1) translate3d(0, 0, 0); }
  50% { transform: scale(1.08) translate3d(8px, -6px, 0); }
  100% { transform: scale(0.96) translate3d(-6px, 8px, 0); }
}

@keyframes jasmineDrift {
  0% { bottom: -20px; transform: translateX(0) rotate(0deg); opacity: 0; }
  25% { opacity: 0.85; }
  60% { transform: translateX(18px) rotate(140deg); }
  85% { opacity: 0.8; }
  100% { bottom: 105%; transform: translateX(-12px) rotate(320deg); opacity: 0; }
}

/* FX 23: amplop-bordir-songket (Gold Songket Shimmer Wave & Woven Filigree) */
.theme-amplop-bordir-songket .fx-beam {
  display: block;
  position: absolute;
  top: -120%;
  left: -120%;
  width: 340%;
  height: 340%;
  background: linear-gradient(125deg, transparent 42%, rgba(253, 224, 71, 0.12) 47%, rgba(250, 204, 21, 0.45) 50%, rgba(253, 224, 71, 0.12) 53%, transparent 58%);
  animation: songketLuster 5s ease-in-out infinite;
}
.theme-amplop-bordir-songket .fx-frame-glow {
  display: block;
  inset: 6px;
  border: 1px dashed rgba(234, 179, 8, 0.5);
  box-shadow: inset 0 0 30px rgba(234, 179, 8, 0.22);
  animation: goldFramePulse 3.5s ease-in-out infinite alternate;
}
.theme-amplop-bordir-songket .fx-item-1,
.theme-amplop-bordir-songket .fx-item-2 {
  display: block;
  color: #fde047;
  font-size: 1.1rem;
}
.theme-amplop-bordir-songket .fx-item-1 { top: 14px; left: 16px; animation: sparkleTwinkle 3.2s infinite; }
.theme-amplop-bordir-songket .fx-item-1::before { content: "⚜️"; }
.theme-amplop-bordir-songket .fx-item-2 { top: 14px; right: 16px; animation: sparkleTwinkle 3.2s 1.6s infinite; }
.theme-amplop-bordir-songket .fx-item-2::before { content: "⚜️"; }

@keyframes songketLuster {
  0% { transform: translate3d(-35%, -35%, 0) rotate(25deg); opacity: 0; }
  15% { opacity: 0.95; }
  45% { transform: translate3d(35%, 35%, 0) rotate(25deg); opacity: 0.95; }
  60%, 100% { transform: translate3d(40%, 40%, 0) rotate(25deg); opacity: 0; }
}

/* FX 24: kembang-api-milestone (360° Continuous Sparkler Burst & Embers) */
.theme-kembang-api-milestone .fx-item-1 {
  display: block;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: radial-gradient(circle, #ffffff 10%, #fde047 35%, #ea580c 70%, transparent 100%);
  filter: drop-shadow(0 0 16px #f59e0b) drop-shadow(0 0 24px #ea580c);
  animation: sparklerPulse 1.2s ease-in-out infinite alternate;
}
.theme-kembang-api-milestone .fx-item-2,
.theme-kembang-api-milestone .fx-item-3,
.theme-kembang-api-milestone .fx-item-4,
.theme-kembang-api-milestone .fx-item-5 {
  display: block;
  color: #facc15;
  font-size: 0.95rem;
}
.theme-kembang-api-milestone .fx-item-2 { left: 20%; animation: emberFall 3.4s linear infinite; }
.theme-kembang-api-milestone .fx-item-2::before { content: "✦"; }
.theme-kembang-api-milestone .fx-item-3 { left: 40%; animation: emberFall 3.8s 0.9s linear infinite; }
.theme-kembang-api-milestone .fx-item-3::before { content: "✧"; }
.theme-kembang-api-milestone .fx-item-4 { left: 65%; animation: emberFall 3.2s 1.8s linear infinite; }
.theme-kembang-api-milestone .fx-item-4::before { content: "✦"; }
.theme-kembang-api-milestone .fx-item-5 { left: 82%; animation: emberFall 3.6s 2.5s linear infinite; }
.theme-kembang-api-milestone .fx-item-5::before { content: "✧"; }

@keyframes sparklerPulse {
  0% { transform: translateX(-50%) scale(0.85); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(1.2); opacity: 1; filter: drop-shadow(0 0 22px #facc15) drop-shadow(0 0 32px #ea580c); }
}

@keyframes emberFall {
  0% { top: 25px; transform: scale(0.6) rotate(0deg); opacity: 0; }
  20% { opacity: 0.95; }
  85% { opacity: 0.8; }
  100% { top: 95%; transform: scale(1.1) rotate(180deg); opacity: 0; }
}

/* FX 25: wisuda-topi-toga (Graduation Toga Cap Toss & Honor Laurels) */
.theme-wisuda-topi-toga .fx-item-1 {
  display: block;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2rem;
  animation: capToss 4s ease-in-out infinite;
  filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.4));
}
.theme-wisuda-topi-toga .fx-item-1::before { content: "🎓"; }
.theme-wisuda-topi-toga .fx-item-2,
.theme-wisuda-topi-toga .fx-item-3 {
  display: block;
  font-size: 1.25rem;
  color: #fde047;
}
.theme-wisuda-topi-toga .fx-item-2 { left: 16%; animation: bubbleAscend 5s linear infinite; }
.theme-wisuda-topi-toga .fx-item-2::before { content: "📜"; }
.theme-wisuda-topi-toga .fx-item-3 { left: 78%; animation: bubbleAscend 5.5s 2.2s linear infinite; }
.theme-wisuda-topi-toga .fx-item-3::before { content: "📜"; }
.theme-wisuda-topi-toga .fx-item-4,
.theme-wisuda-topi-toga .fx-item-5 {
  display: block;
  color: #fbbf24;
  font-size: 1rem;
}
.theme-wisuda-topi-toga .fx-item-4 { top: 16%; left: 14%; animation: sparkleTwinkle 3.5s infinite; }
.theme-wisuda-topi-toga .fx-item-4::before { content: "🌿"; }
.theme-wisuda-topi-toga .fx-item-5 { top: 16%; right: 14%; animation: sparkleTwinkle 3.5s 1.7s infinite; }
.theme-wisuda-topi-toga .fx-item-5::before { content: "🌿"; }

@keyframes capToss {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg) scale(1); }
  35% { transform: translateX(-50%) translateY(-14px) rotate(-8deg) scale(1.1); }
  65% { transform: translateX(-50%) translateY(-6px) rotate(6deg) scale(1.05); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg) scale(1); }
}

/* FX 26: petik-bintang-nebula (Rotating Cosmic Nebula & Constellation Laser) */
.theme-petik-bintang-nebula .fx-mesh {
  display: block;
  inset: -30%;
  width: 160%;
  height: 160%;
  background: radial-gradient(circle at 35% 35%, rgba(192, 132, 252, 0.3) 0%, transparent 50%),
              radial-gradient(circle at 70% 65%, rgba(56, 189, 248, 0.28) 0%, transparent 55%),
              radial-gradient(circle at 50% 85%, rgba(129, 140, 248, 0.25) 0%, transparent 50%);
  filter: blur(28px);
  animation: nebulaVortex 12s linear infinite;
}
.theme-petik-bintang-nebula .fx-item-1,
.theme-petik-bintang-nebula .fx-item-2,
.theme-petik-bintang-nebula .fx-item-3,
.theme-petik-bintang-nebula .fx-item-4 {
  display: block;
  color: #67e8f9;
  font-size: 1.1rem;
}
.theme-petik-bintang-nebula .fx-item-1 { top: 18%; left: 16%; animation: constellationPulse 3.5s infinite; }
.theme-petik-bintang-nebula .fx-item-1::before { content: "⭐"; }
.theme-petik-bintang-nebula .fx-item-2 { top: 32%; right: 18%; animation: constellationPulse 4.2s 1.2s infinite; }
.theme-petik-bintang-nebula .fx-item-2::before { content: "✨"; }
.theme-petik-bintang-nebula .fx-item-3 { bottom: 24%; left: 22%; animation: constellationPulse 3.8s 2s infinite; }
.theme-petik-bintang-nebula .fx-item-3::before { content: "✨"; }
.theme-petik-bintang-nebula .fx-item-4 { bottom: 16%; right: 20%; animation: constellationPulse 4s 0.8s infinite; }
.theme-petik-bintang-nebula .fx-item-4::before { content: "⭐"; }

@keyframes nebulaVortex {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.08); }
  100% { transform: rotate(360deg) scale(1); }
}

@keyframes constellationPulse {
  0%, 100% { opacity: 0.3; transform: scale(0.85); }
  50% { opacity: 1; transform: scale(1.25); filter: drop-shadow(0 0 10px #67e8f9); }
}

/* FX 27: undangan-pintu-ukir-bali (Balinese Kori Agung Door Opening & Kamboja Fall) */
.theme-undangan-pintu-ukir-bali .fx-door-left,
.theme-undangan-pintu-ukir-bali .fx-door-right {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  background: linear-gradient(180deg, #382419 0%, #26160e 100%);
  border: 2px solid rgba(234, 179, 8, 0.4);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
  z-index: 5;
  pointer-events: none;
}
.theme-undangan-pintu-ukir-bali .fx-door-left {
  left: 0;
  transform-origin: left center;
  animation: royalGateOpenLeft 2.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.theme-undangan-pintu-ukir-bali .fx-door-right {
  right: 0;
  transform-origin: right center;
  animation: royalGateOpenRight 2.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.theme-undangan-pintu-ukir-bali .fx-item-1,
.theme-undangan-pintu-ukir-bali .fx-item-2,
.theme-undangan-pintu-ukir-bali .fx-item-3,
.theme-undangan-pintu-ukir-bali .fx-item-4 {
  display: block;
  color: #fde047;
  font-size: 1.25rem;
}
.theme-undangan-pintu-ukir-bali .fx-item-1 { left: 16%; animation: kambojaDrift 7.5s linear infinite; }
.theme-undangan-pintu-ukir-bali .fx-item-1::before { content: "🌼"; }
.theme-undangan-pintu-ukir-bali .fx-item-2 { left: 45%; animation: kambojaDrift 8.2s 2s linear infinite; }
.theme-undangan-pintu-ukir-bali .fx-item-2::before { content: "🌸"; }
.theme-undangan-pintu-ukir-bali .fx-item-3 { left: 76%; animation: kambojaDrift 7.8s 4.2s linear infinite; }
.theme-undangan-pintu-ukir-bali .fx-item-3::before { content: "🌼"; }
.theme-undangan-pintu-ukir-bali .fx-item-4 { top: 12px; left: 50%; transform: translateX(-50%); font-size: 1.1rem; }
.theme-undangan-pintu-ukir-bali .fx-item-4::before { content: "🪷"; }

@keyframes kambojaDrift {
  0% { top: -24px; transform: translateX(0) rotate(0deg) scale(0.8); opacity: 0; }
  15% { opacity: 0.9; }
  50% { transform: translateX(24px) rotate(160deg) scale(1.1); }
  85% { opacity: 0.85; }
  100% { top: 105%; transform: translateX(-16px) rotate(340deg) scale(0.9); opacity: 0; }
}

/* FX 28: tirai-teater-broadway (Broadway Velvet Curtains, Spotlight & Marquee Chaser) */
.theme-tirai-teater-broadway .fx-door-left,
.theme-tirai-teater-broadway .fx-door-right {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  background: repeating-linear-gradient(90deg, #3b020a, #3b020a 15px, #580715 25px, #200106 35px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.7);
  z-index: 5;
  pointer-events: none;
}
.theme-tirai-teater-broadway .fx-door-left {
  left: 0;
  transform-origin: left top;
  animation: curtainDrapeLeft 2.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.theme-tirai-teater-broadway .fx-door-right {
  right: 0;
  transform-origin: right top;
  animation: curtainDrapeRight 2.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.theme-tirai-teater-broadway .fx-beam {
  display: block;
  position: absolute;
  top: -60%;
  left: 20%;
  width: 140px;
  height: 220%;
  background: linear-gradient(180deg, rgba(254, 240, 138, 0.4) 0%, rgba(250, 204, 21, 0.15) 50%, transparent 100%);
  transform-origin: top center;
  animation: broadwaySpotlightSweep 6s ease-in-out infinite alternate;
  filter: blur(12px);
  pointer-events: none;
}
.theme-tirai-teater-broadway .fx-frame-glow {
  display: block;
  inset: 6px;
  border: 2px dashed rgba(250, 204, 21, 0.6);
  box-shadow: inset 0 0 25px rgba(234, 179, 8, 0.25);
  animation: marqueeChaser 1.2s steps(2, start) infinite;
}
.theme-tirai-teater-broadway .fx-item-1,
.theme-tirai-teater-broadway .fx-item-2,
.theme-tirai-teater-broadway .fx-item-3,
.theme-tirai-teater-broadway .fx-item-4 {
  display: block;
  color: #fde047;
}
.theme-tirai-teater-broadway .fx-item-1 { top: 16px; left: 16px; font-size: 1.3rem; animation: floatSway 4s ease-in-out infinite; }
.theme-tirai-teater-broadway .fx-item-1::before { content: "🎭"; }
.theme-tirai-teater-broadway .fx-item-2 { top: 16px; right: 16px; font-size: 1.3rem; animation: floatSway 4s 2s ease-in-out infinite; }
.theme-tirai-teater-broadway .fx-item-2::before { content: "✨"; }
.theme-tirai-teater-broadway .fx-item-3 { left: 20%; font-size: 1.1rem; animation: musicalNotesRise 5s linear infinite; }
.theme-tirai-teater-broadway .fx-item-3::before { content: "🎵"; }
.theme-tirai-teater-broadway .fx-item-4 { left: 78%; font-size: 1.1rem; animation: musicalNotesRise 5.5s 2.5s linear infinite; }
.theme-tirai-teater-broadway .fx-item-4::before { content: "🎶"; }

@keyframes curtainDrapeLeft {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(0.12) skewY(-2deg); opacity: 0.85; }
}
@keyframes curtainDrapeRight {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(0.12) skewY(2deg); opacity: 0.85; }
}
@keyframes broadwaySpotlightSweep {
  0% { transform: rotate(-25deg); opacity: 0.7; }
  50% { transform: rotate(10deg); opacity: 0.9; }
  100% { transform: rotate(30deg); opacity: 0.65; }
}
@keyframes marqueeChaser {
  0% { border-color: rgba(250, 204, 21, 0.7); }
  50% { border-color: rgba(254, 240, 138, 0.2); }
  100% { border-color: rgba(250, 204, 21, 0.7); }
}
@keyframes musicalNotesRise {
  0% { bottom: -20px; transform: translateX(0) scale(0.7); opacity: 0; }
  20% { opacity: 0.9; }
  50% { transform: translateX(16px) scale(1.1) rotate(15deg); }
  85% { opacity: 0.85; }
  100% { bottom: 105%; transform: translateX(-12px) scale(0.9) rotate(-15deg); opacity: 0; }
}

/* FX 29: pesiar-sunset-ocean (Sunset Ocean Waves & Dolphin Leap) */
.theme-pesiar-sunset-ocean .fx-mesh {
  display: block;
  inset: -10%;
  background: radial-gradient(ellipse at 50% 15%, rgba(254, 215, 170, 0.35) 0%, transparent 60%),
              radial-gradient(ellipse at 50% 85%, rgba(13, 148, 136, 0.3) 0%, transparent 70%);
  animation: oceanSunRays 6s ease-in-out infinite alternate;
}
.theme-pesiar-sunset-ocean .fx-item-1 {
  display: block;
  bottom: 25%;
  left: -40px;
  font-size: 2.2rem;
  animation: dolphinLeap 7s ease-in-out infinite;
  filter: drop-shadow(0 4px 10px rgba(4, 47, 46, 0.4));
}
.theme-pesiar-sunset-ocean .fx-item-1::before { content: "🐬"; }
.theme-pesiar-sunset-ocean .fx-item-2 {
  display: block;
  bottom: 28%;
  left: -60px;
  font-size: 1.5rem;
  animation: dolphinLeap 7s 1.5s ease-in-out infinite;
  filter: drop-shadow(0 3px 8px rgba(4, 47, 46, 0.3));
}
.theme-pesiar-sunset-ocean .fx-item-2::before { content: "🐬"; }
.theme-pesiar-sunset-ocean .fx-item-3,
.theme-pesiar-sunset-ocean .fx-item-4 {
  display: block;
  font-size: 1.15rem;
  color: #fef08a;
}
.theme-pesiar-sunset-ocean .fx-item-3 { left: 18%; animation: frangipaniDrift 8s linear infinite; }
.theme-pesiar-sunset-ocean .fx-item-3::before { content: "🌺"; }
.theme-pesiar-sunset-ocean .fx-item-4 { left: 74%; animation: frangipaniDrift 9s 3.5s linear infinite; }
.theme-pesiar-sunset-ocean .fx-item-4::before { content: "🌸"; }
.theme-pesiar-sunset-ocean .fx-item-5 {
  display: block;
  top: 18%;
  right: 18px;
  font-size: 1.25rem;
  animation: floatSway 5s ease-in-out infinite alternate;
}
.theme-pesiar-sunset-ocean .fx-item-5::before { content: "⛵"; }

@keyframes oceanSunRays {
  0% { transform: scale(1) translateY(0); }
  100% { transform: scale(1.06) translateY(-6px); }
}
@keyframes dolphinLeap {
  0% { transform: translateX(0) translateY(20px) rotate(-35deg); opacity: 0; }
  15% { opacity: 1; }
  50% { transform: translateX(200px) translateY(-55px) rotate(15deg); }
  85% { opacity: 1; }
  100% { transform: translateX(380px) translateY(25px) rotate(45deg); opacity: 0; }
}
@keyframes frangipaniDrift {
  0% { top: -20px; transform: translateX(0) rotate(0deg); opacity: 0; }
  20% { opacity: 0.9; }
  60% { transform: translateX(20px) rotate(180deg); }
  85% { opacity: 0.85; }
  100% { top: 105%; transform: translateX(-15px) rotate(360deg); opacity: 0; }
}

/* FX 30: taman-kunang-kunang (Bioluminescent Firefly Forest) */
.theme-taman-kunang-kunang .fx-mesh {
  display: block;
  inset: -20%;
  background: radial-gradient(circle at 30% 40%, rgba(132, 204, 22, 0.15) 0%, transparent 50%),
              radial-gradient(circle at 75% 65%, rgba(74, 222, 128, 0.15) 0%, transparent 55%);
  filter: blur(25px);
  animation: bioAuraPulse 6s ease-in-out infinite alternate;
}
.theme-taman-kunang-kunang .fx-item-1,
.theme-taman-kunang-kunang .fx-item-2,
.theme-taman-kunang-kunang .fx-item-3,
.theme-taman-kunang-kunang .fx-item-4,
.theme-taman-kunang-kunang .fx-item-5,
.theme-taman-kunang-kunang .fx-item-6 {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #bef264;
  box-shadow: 0 0 10px #bef264, 0 0 20px #84cc16, 0 0 30px #4ade80;
}
.theme-taman-kunang-kunang .fx-item-1 { top: 25%; left: 20%; animation: fireflyFlight1 7s ease-in-out infinite; }
.theme-taman-kunang-kunang .fx-item-2 { top: 60%; left: 75%; animation: fireflyFlight2 8.5s 1.2s ease-in-out infinite; }
.theme-taman-kunang-kunang .fx-item-3 { top: 40%; left: 55%; animation: fireflyFlight1 6.8s 2.5s ease-in-out infinite reverse; }
.theme-taman-kunang-kunang .fx-item-4 { top: 75%; left: 25%; animation: fireflyFlight2 9s 3.8s ease-in-out infinite; }
.theme-taman-kunang-kunang .fx-item-5 { top: 18%; left: 68%; animation: fireflyFlight1 7.4s 4.5s ease-in-out infinite; }
.theme-taman-kunang-kunang .fx-item-6 { top: 50%; left: 15%; animation: fireflyFlight2 8s 2s ease-in-out infinite reverse; }
.theme-taman-kunang-kunang .fx-item-7 {
  display: block;
  top: 10px;
  right: 14px;
  font-size: 1.2rem;
  color: #84cc16;
  animation: floatSway 4s ease-in-out infinite alternate;
}
.theme-taman-kunang-kunang .fx-item-7::before { content: "🌿"; }

@keyframes bioAuraPulse {
  0% { transform: scale(0.95); opacity: 0.6; }
  100% { transform: scale(1.08); opacity: 1; }
}
@keyframes fireflyFlight1 {
  0% { transform: translate(0, 0) scale(0.7); opacity: 0.3; }
  25% { transform: translate(25px, -30px) scale(1.2); opacity: 1; }
  50% { transform: translate(50px, 15px) scale(0.8); opacity: 0.4; }
  75% { transform: translate(15px, 35px) scale(1.3); opacity: 1; }
  100% { transform: translate(0, 0) scale(0.7); opacity: 0.3; }
}
@keyframes fireflyFlight2 {
  0% { transform: translate(0, 0) scale(0.8); opacity: 0.4; }
  30% { transform: translate(-35px, 25px) scale(1.3); opacity: 1; }
  60% { transform: translate(-15px, -35px) scale(0.7); opacity: 0.3; }
  85% { transform: translate(20px, -15px) scale(1.2); opacity: 0.9; }
  100% { transform: translate(0, 0) scale(0.8); opacity: 0.4; }
}

/* FX 31: kincir-festival-sakura (Matsuri Hanabi & Swinging Lanterns) */
.theme-kincir-festival-sakura .fx-mesh {
  display: block;
  inset: -15%;
  background: radial-gradient(circle at 50% 25%, rgba(244, 63, 94, 0.25) 0%, transparent 45%),
              radial-gradient(circle at 20% 40%, rgba(250, 204, 21, 0.22) 0%, transparent 40%),
              radial-gradient(circle at 80% 35%, rgba(56, 189, 248, 0.22) 0%, transparent 40%);
  animation: hanabiBurst 4.5s ease-in-out infinite alternate;
}
.theme-kincir-festival-sakura .fx-item-1,
.theme-kincir-festival-sakura .fx-item-2 {
  display: block;
  top: 10px;
  font-size: 2rem;
  filter: drop-shadow(0 4px 12px rgba(244, 63, 94, 0.6));
  transform-origin: top center;
}
.theme-kincir-festival-sakura .fx-item-1 { left: 14px; animation: lanternWindSway 3.2s ease-in-out infinite alternate; }
.theme-kincir-festival-sakura .fx-item-1::before { content: "🏮"; }
.theme-kincir-festival-sakura .fx-item-2 { right: 14px; animation: lanternWindSway 3.6s 0.8s ease-in-out infinite alternate-reverse; }
.theme-kincir-festival-sakura .fx-item-2::before { content: "🏮"; }
.theme-kincir-festival-sakura .fx-item-3 {
  display: block;
  top: 22px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 1.8rem;
  animation: sparkleTwinkle 2.5s infinite;
}
.theme-kincir-festival-sakura .fx-item-3::before { content: "🎆"; }
.theme-kincir-festival-sakura .fx-item-4,
.theme-kincir-festival-sakura .fx-item-5 {
  display: block;
  color: #fda4af;
  font-size: 1.15rem;
}
.theme-kincir-festival-sakura .fx-item-4 { left: 24%; animation: sakuraDrift 7.5s linear infinite; }
.theme-kincir-festival-sakura .fx-item-4::before { content: "🌸"; }
.theme-kincir-festival-sakura .fx-item-5 { left: 70%; animation: sakuraDrift 8.2s 3s linear infinite; }
.theme-kincir-festival-sakura .fx-item-5::before { content: "🌸"; }

@keyframes hanabiBurst {
  0% { transform: scale(0.9); opacity: 0.3; }
  50% { transform: scale(1.1); opacity: 0.9; }
  100% { transform: scale(0.95); opacity: 0.4; }
}
@keyframes lanternWindSway {
  0% { transform: rotate(-8deg); }
  100% { transform: rotate(8deg); }
}

/* FX 32: disko-retro-neon (Spinning Disco Ball & Synthwave Neon) */
.theme-disko-retro-neon .fx-item-1 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.4rem;
  animation: discoBallSpin 3s linear infinite;
  filter: drop-shadow(0 0 16px #06b6d4) drop-shadow(0 0 24px #ec4899);
}
.theme-disko-retro-neon .fx-item-1::before { content: "🪩"; }
.theme-disko-retro-neon .fx-beam {
  display: block;
  position: absolute;
  top: 0;
  left: -50%;
  width: 200%;
  height: 100%;
  background: linear-gradient(60deg, transparent 40%, rgba(6, 182, 212, 0.18) 48%, rgba(236, 72, 153, 0.22) 52%, transparent 60%);
  animation: neonLaserSweep 4s ease-in-out infinite alternate;
  pointer-events: none;
}
.theme-disko-retro-neon .fx-item-2,
.theme-disko-retro-neon .fx-item-3,
.theme-disko-retro-neon .fx-item-4,
.theme-disko-retro-neon .fx-item-5 {
  display: block;
  font-size: 1.1rem;
}
.theme-disko-retro-neon .fx-item-2 { top: 20px; left: 16px; color: #22d3ee; animation: sparkleTwinkle 2s infinite; }
.theme-disko-retro-neon .fx-item-2::before { content: "⚡"; }
.theme-disko-retro-neon .fx-item-3 { top: 20px; right: 16px; color: #ec4899; animation: sparkleTwinkle 2s 1s infinite; }
.theme-disko-retro-neon .fx-item-3::before { content: "⚡"; }
.theme-disko-retro-neon .fx-item-4 { bottom: 22px; left: 18px; color: #facc15; animation: sparkleTwinkle 2.4s 0.5s infinite; }
.theme-disko-retro-neon .fx-item-4::before { content: "✨"; }
.theme-disko-retro-neon .fx-item-5 { bottom: 22px; right: 18px; color: #a855f7; animation: sparkleTwinkle 2.4s 1.5s infinite; }
.theme-disko-retro-neon .fx-item-5::before { content: "✨"; }

@keyframes discoBallSpin {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); filter: drop-shadow(0 0 16px #06b6d4) drop-shadow(0 0 24px #ec4899); }
  50% { transform: translateX(-50%) rotate(180deg) scale(1.08); filter: drop-shadow(0 0 20px #ec4899) drop-shadow(0 0 30px #facc15); }
  100% { transform: translateX(-50%) rotate(360deg) scale(1); filter: drop-shadow(0 0 16px #06b6d4) drop-shadow(0 0 24px #ec4899); }
}
@keyframes neonLaserSweep {
  0% { transform: translateX(-25%) rotate(-10deg); }
  100% { transform: translateX(25%) rotate(10deg); }
}

/* FX 33: jawa-keraton-gunungan (Carved Keraton Gates & Melati Shower) */
.theme-jawa-keraton-gunungan .fx-door-left,
.theme-jawa-keraton-gunungan .fx-door-right {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  background: linear-gradient(180deg, #2c1a0d 0%, #1a0f07 100%);
  border: 2px solid rgba(234, 179, 8, 0.45);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.6);
  z-index: 5;
  pointer-events: none;
}
.theme-jawa-keraton-gunungan .fx-door-left {
  left: 0;
  transform-origin: left center;
  animation: royalGateOpenLeft 2.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.theme-jawa-keraton-gunungan .fx-door-right {
  right: 0;
  transform-origin: right center;
  animation: royalGateOpenRight 2.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.theme-jawa-keraton-gunungan .fx-item-1 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2rem;
  color: #fde047;
  animation: gununganBlessing 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px rgba(234, 179, 8, 0.6));
}
.theme-jawa-keraton-gunungan .fx-item-1::before { content: "🌾"; }
.theme-jawa-keraton-gunungan .fx-item-2,
.theme-jawa-keraton-gunungan .fx-item-3,
.theme-jawa-keraton-gunungan .fx-item-4 {
  display: block;
  color: #fefce8;
  font-size: 1.15rem;
}
.theme-jawa-keraton-gunungan .fx-item-2 { left: 18%; animation: melatiTetes 7.8s linear infinite; }
.theme-jawa-keraton-gunungan .fx-item-2::before { content: "🌼"; }
.theme-jawa-keraton-gunungan .fx-item-3 { left: 48%; animation: melatiTetes 8.5s 2.2s linear infinite; }
.theme-jawa-keraton-gunungan .fx-item-3::before { content: "🌸"; }
.theme-jawa-keraton-gunungan .fx-item-4 { left: 78%; animation: melatiTetes 7.4s 4s linear infinite; }
.theme-jawa-keraton-gunungan .fx-item-4::before { content: "🌼"; }

@keyframes gununganBlessing {
  0% { transform: translateX(-50%) scale(1); opacity: 0.85; }
  100% { transform: translateX(-50%) scale(1.1); opacity: 1; filter: drop-shadow(0 0 20px rgba(234, 179, 8, 0.85)); }
}
@keyframes melatiTetes {
  0% { top: -20px; transform: translateX(0) rotate(0deg); opacity: 0; }
  20% { opacity: 0.9; }
  50% { transform: translateX(18px) rotate(140deg); }
  85% { opacity: 0.85; }
  100% { top: 105%; transform: translateX(-12px) rotate(280deg); opacity: 0; }
}

/* FX 34: kastil-neuschwanstein (Fairytale Castle & Flying Royal Carriage) */
.theme-kastil-neuschwanstein .fx-mesh {
  display: block;
  inset: -15%;
  background: radial-gradient(circle at 50% 15%, rgba(244, 114, 182, 0.22) 0%, transparent 50%),
              radial-gradient(circle at 20% 70%, rgba(192, 132, 252, 0.2) 0%, transparent 45%);
  filter: blur(20px);
  animation: bioAuraPulse 7s ease-in-out infinite alternate;
}
.theme-kastil-neuschwanstein .fx-item-1 {
  display: block;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2rem;
  color: #fef08a;
  filter: drop-shadow(0 0 16px rgba(244, 114, 182, 0.6));
  animation: floatSway 4.5s ease-in-out infinite alternate;
}
.theme-kastil-neuschwanstein .fx-item-1::before { content: "🏰"; }
.theme-kastil-neuschwanstein .fx-item-2 {
  display: block;
  top: 25%;
  left: -50px;
  font-size: 1.6rem;
  animation: carriageFlight 10s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fde047);
}
.theme-kastil-neuschwanstein .fx-item-2::before { content: "🎠"; }
.theme-kastil-neuschwanstein .fx-item-3,
.theme-kastil-neuschwanstein .fx-item-4 {
  display: block;
  color: #fde047;
  font-size: 1rem;
}
.theme-kastil-neuschwanstein .fx-item-3 { left: 22%; animation: sparkAscend 5s linear infinite; }
.theme-kastil-neuschwanstein .fx-item-3::before { content: "✨"; }
.theme-kastil-neuschwanstein .fx-item-4 { left: 74%; animation: sparkAscend 5.5s 2s linear infinite; }
.theme-kastil-neuschwanstein .fx-item-4::before { content: "⭐"; }

@keyframes carriageFlight {
  0% { transform: translateX(0) translateY(15px); opacity: 0; }
  15% { opacity: 0.95; }
  50% { transform: translateX(200px) translateY(-25px); }
  85% { opacity: 0.95; }
  100% { transform: translateX(380px) translateY(15px); opacity: 0; }
}

/* FX 35: salju-wonderland (3D Tumbling Hexagonal Snowflakes & Frost Shimmer) */
.theme-salju-wonderland .fx-frame-glow {
  display: block;
  inset: 0;
  box-shadow: inset 0 0 35px rgba(56, 189, 248, 0.35);
  animation: goldFramePulse 4s ease-in-out infinite alternate;
}
.theme-salju-wonderland .fx-item-1,
.theme-salju-wonderland .fx-item-2,
.theme-salju-wonderland .fx-item-3,
.theme-salju-wonderland .fx-item-4,
.theme-salju-wonderland .fx-item-5,
.theme-salju-wonderland .fx-item-6 {
  display: block;
  color: #e0f2fe;
  filter: drop-shadow(0 0 8px rgba(56, 189, 248, 0.6));
}
.theme-salju-wonderland .fx-item-1 { left: 14%; font-size: 1.4rem; animation: snowflakeDrift 6s linear infinite; }
.theme-salju-wonderland .fx-item-1::before { content: "❄️"; }
.theme-salju-wonderland .fx-item-2 { left: 32%; font-size: 1.1rem; animation: snowflakeDrift 7.5s 1.2s linear infinite; }
.theme-salju-wonderland .fx-item-2::before { content: "❅"; }
.theme-salju-wonderland .fx-item-3 { left: 52%; font-size: 1.5rem; animation: snowflakeDrift 6.8s 2.4s linear infinite; }
.theme-salju-wonderland .fx-item-3::before { content: "❆"; }
.theme-salju-wonderland .fx-item-4 { left: 70%; font-size: 1.2rem; animation: snowflakeDrift 8s 3.6s linear infinite; }
.theme-salju-wonderland .fx-item-4::before { content: "❄️"; }
.theme-salju-wonderland .fx-item-5 { left: 86%; font-size: 1.3rem; animation: snowflakeDrift 7.2s 1.8s linear infinite; }
.theme-salju-wonderland .fx-item-5::before { content: "❅"; }
.theme-salju-wonderland .fx-item-6 { top: 14px; left: 50%; transform: translateX(-50%); font-size: 1.2rem; animation: sparkleTwinkle 3s infinite; }
.theme-salju-wonderland .fx-item-6::before { content: "💎"; }

@keyframes snowflakeDrift {
  0% { top: -25px; transform: translateX(0) rotate(0deg); opacity: 0; }
  15% { opacity: 0.95; }
  50% { transform: translateX(20px) rotate(180deg); }
  85% { opacity: 0.9; }
  100% { top: 105%; transform: translateX(-15px) rotate(360deg); opacity: 0; }
}

/* FX 36: taman-kupu-kupu-flora (3D Fluttering Butterfly Flight & Floral Bloom) */
.theme-taman-kupu-kupu-flora .fx-item-1 {
  display: block;
  top: 30%;
  left: 20%;
  font-size: 1.8rem;
  animation: butterflyFlightPath 8s ease-in-out infinite;
  filter: drop-shadow(0 3px 8px rgba(244, 114, 182, 0.45));
}
.theme-taman-kupu-kupu-flora .fx-item-1::before {
  content: "🦋";
  display: inline-block;
  animation: butterflyWingFlap 0.35s ease-in-out infinite alternate;
}
.theme-taman-kupu-kupu-flora .fx-item-2 {
  display: block;
  top: 60%;
  left: 65%;
  font-size: 1.4rem;
  animation: butterflyFlightPath 9.5s 2s ease-in-out infinite reverse;
  filter: drop-shadow(0 3px 6px rgba(244, 114, 182, 0.4));
}
.theme-taman-kupu-kupu-flora .fx-item-2::before {
  content: "🦋";
  display: inline-block;
  animation: butterflyWingFlap 0.3s 0.1s ease-in-out infinite alternate;
}
.theme-taman-kupu-kupu-flora .fx-item-3,
.theme-taman-kupu-kupu-flora .fx-item-4 {
  display: block;
  font-size: 1.15rem;
}
.theme-taman-kupu-kupu-flora .fx-item-3 { left: 24%; animation: sakuraDrift 7s linear infinite; }
.theme-taman-kupu-kupu-flora .fx-item-3::before { content: "🌸"; }
.theme-taman-kupu-kupu-flora .fx-item-4 { left: 76%; animation: sakuraDrift 8s 3s linear infinite; }
.theme-taman-kupu-kupu-flora .fx-item-4::before { content: "🌼"; }

@keyframes butterflyWingFlap {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(0.28); }
}
@keyframes butterflyFlightPath {
  0% { transform: translate(0, 0) rotate(5deg); }
  25% { transform: translate(45px, -35px) rotate(-15deg); }
  50% { transform: translate(75px, 20px) rotate(15deg); }
  75% { transform: translate(25px, 45px) rotate(-5deg); }
  100% { transform: translate(0, 0) rotate(5deg); }
}

/* FX 37: piramida-arabian-nights (Magic Lamp Incense Smoke & Sultan Treasure) */
.theme-piramida-arabian-nights .fx-item-1 {
  display: block;
  bottom: 24px;
  right: 20px;
  font-size: 2rem;
  animation: floatSway 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px rgba(250, 204, 21, 0.7));
}
.theme-piramida-arabian-nights .fx-item-1::before { content: "🪔"; }
.theme-piramida-arabian-nights .fx-item-2 {
  display: block;
  bottom: 50px;
  right: 26px;
  font-size: 1.3rem;
  color: #fde047;
  animation: magicSmokeRise 4s ease-in-out infinite;
  filter: blur(1px);
}
.theme-piramida-arabian-nights .fx-item-2::before { content: "💨"; }
.theme-piramida-arabian-nights .fx-item-3 {
  display: block;
  top: 14px;
  left: 20px;
  font-size: 1.8rem;
  animation: crescentTiltFloat 5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px rgba(250, 204, 21, 0.8));
}
.theme-piramida-arabian-nights .fx-item-3::before { content: "🌙"; }
.theme-piramida-arabian-nights .fx-item-4 {
  display: block;
  top: 16px;
  right: 20px;
  font-size: 1.3rem;
  animation: sparkleTwinkle 3s infinite;
}
.theme-piramida-arabian-nights .fx-item-4::before { content: "🕌"; }
.theme-piramida-arabian-nights .fx-item-5,
.theme-piramida-arabian-nights .fx-item-6 {
  display: block;
  color: #facc15;
  font-size: 1.1rem;
}
.theme-piramida-arabian-nights .fx-item-5 { left: 25%; animation: sparkAscend 5s linear infinite; }
.theme-piramida-arabian-nights .fx-item-5::before { content: "✨"; }
.theme-piramida-arabian-nights .fx-item-6 { left: 65%; animation: sparkAscend 5.5s 2.2s linear infinite; }
.theme-piramida-arabian-nights .fx-item-6::before { content: "💎"; }

@keyframes magicSmokeRise {
  0% { transform: translateY(0) scale(0.6) rotate(0deg); opacity: 0; }
  25% { opacity: 0.85; }
  50% { transform: translateY(-40px) scale(1.1) rotate(20deg); }
  80% { opacity: 0.7; }
  100% { transform: translateY(-80px) scale(1.5) rotate(-25deg); opacity: 0; }
}
@keyframes crescentTiltFloat {
  0% { transform: translateY(0) rotate(-5deg); }
  100% { transform: translateY(-8px) rotate(5deg); }
}

/* ==========================================================================
   20 NEW INTERACTIVE TEMPLATE FX ANIMATIONS (Templates 38–57)
   ========================================================================== */

/* FX 38: cyberpunk-arcade-pixel (Retro 8-Bit Space Invader, Flipping Coin & CRT) */
.theme-cyberpunk-arcade-pixel .fx-item-1 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2rem;
  animation: arcadeInvaderBounce 1.8s steps(4) infinite alternate;
  filter: drop-shadow(0 0 12px #22d3ee) drop-shadow(0 0 20px #f43f5e);
}
.theme-cyberpunk-arcade-pixel .fx-item-1::before { content: "👾"; }
.theme-cyberpunk-arcade-pixel .fx-item-2 {
  display: block;
  bottom: 22px;
  right: 20px;
  font-size: 1.8rem;
  animation: pixelCoinFlip 2.4s linear infinite;
  filter: drop-shadow(0 0 14px #fde047);
}
.theme-cyberpunk-arcade-pixel .fx-item-2::before { content: "🪙"; }
.theme-cyberpunk-arcade-pixel .fx-item-3 {
  display: block;
  top: 20px;
  right: 18px;
  font-size: 1.3rem;
  color: #22d3ee;
  animation: pixelSparkle 1.6s infinite;
}
.theme-cyberpunk-arcade-pixel .fx-item-3::before { content: "⚡"; }
.theme-cyberpunk-arcade-pixel .fx-beam {
  display: block;
  position: absolute;
  left: 0;
  width: 100%;
  height: 6px;
  background: linear-gradient(90deg, transparent 0%, rgba(34, 211, 238, 0.45) 50%, transparent 100%);
  animation: crtScanlineSweep 3s linear infinite;
  pointer-events: none;
}

@keyframes arcadeInvaderBounce {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-10px) scale(1.1); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes pixelCoinFlip {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(180deg) scale(1.1); }
  100% { transform: rotateY(360deg); }
}
@keyframes pixelSparkle {
  0%, 100% { opacity: 0.3; transform: scale(0.85); }
  50% { opacity: 1; transform: scale(1.2); }
}
@keyframes crtScanlineSweep {
  0% { top: 0%; opacity: 0.7; }
  100% { top: 100%; opacity: 0.2; }
}

/* FX 39: boho-safari-watercolor (Swaying Pampas Grass, Botanical Leaves & Sunbeam) */
.theme-boho-safari-watercolor .fx-item-1 {
  display: block;
  bottom: 16px;
  left: 16px;
  font-size: 2.2rem;
  transform-origin: bottom center;
  animation: pampasSway 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 4px 8px rgba(194, 65, 12, 0.25));
}
.theme-boho-safari-watercolor .fx-item-1::before { content: "🌾"; }
.theme-boho-safari-watercolor .fx-item-2 {
  display: block;
  top: 24px;
  right: 22px;
  font-size: 1.5rem;
  animation: botanicalDrift 6s ease-in-out infinite alternate;
  filter: drop-shadow(0 2px 6px rgba(101, 163, 13, 0.2));
}
.theme-boho-safari-watercolor .fx-item-2::before { content: "🍃"; }
.theme-boho-safari-watercolor .fx-item-3 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 1.6rem;
  color: #ea580c;
  animation: warmSunPulse 3.5s ease-in-out infinite alternate;
}
.theme-boho-safari-watercolor .fx-item-3::before { content: "☀️"; }
.theme-boho-safari-watercolor .fx-mesh {
  display: block;
  inset: -10%;
  background: radial-gradient(circle at 50% 10%, rgba(254, 215, 170, 0.35) 0%, transparent 60%);
  pointer-events: none;
}

@keyframes pampasSway {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(7deg); }
}
@keyframes botanicalDrift {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(-15px, 20px) rotate(15deg); }
  100% { transform: translate(-5px, 40px) rotate(-10deg); }
}
@keyframes warmSunPulse {
  0% { transform: translateX(-50%) scale(0.92); opacity: 0.7; }
  100% { transform: translateX(-50%) scale(1.12); opacity: 1; filter: drop-shadow(0 0 16px #fed7aa); }
}

/* FX 40: superhero-comic-boom (Action Starburst Pop, Superhero Zap & Flash) */
.theme-superhero-comic-boom .fx-item-1 {
  display: block;
  top: 14px;
  right: 18px;
  font-size: 2.2rem;
  animation: comicBoomPop 2s cubic-bezier(0.34, 1.56, 0.64, 1) infinite;
  filter: drop-shadow(3px 3px 0px #18181b);
}
.theme-superhero-comic-boom .fx-item-1::before { content: "💥"; }
.theme-superhero-comic-boom .fx-item-2 {
  display: block;
  bottom: 20px;
  left: 18px;
  font-size: 1.8rem;
  animation: superheroZap 1.5s infinite;
  filter: drop-shadow(2px 2px 0px #18181b);
}
.theme-superhero-comic-boom .fx-item-2::before { content: "⚡"; }
.theme-superhero-comic-boom .fx-item-3 {
  display: block;
  top: 18px;
  left: 18px;
  font-size: 1.5rem;
  animation: comicActionFlash 2.5s infinite;
}
.theme-superhero-comic-boom .fx-item-3::before { content: "🗯️"; }
.theme-superhero-comic-boom .fx-beam {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: repeating-linear-gradient(45deg, transparent, transparent 15px, rgba(225, 29, 72, 0.04) 15px, rgba(225, 29, 72, 0.04) 30px);
  pointer-events: none;
}

@keyframes comicBoomPop {
  0%, 100% { transform: scale(1) rotate(-8deg); }
  50% { transform: scale(1.22) rotate(6deg); }
}
@keyframes superheroZap {
  0%, 100% { transform: scale(0.9) rotate(0deg); opacity: 0.6; }
  50% { transform: scale(1.18) rotate(12deg); opacity: 1; }
}
@keyframes comicActionFlash {
  0%, 100% { transform: scale(0.95); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
}

/* FX 41: underwater-aquarium-glow (Bioluminescent Jellyfish, Rising Bubbles & Caustics) */
.theme-underwater-aquarium-glow .fx-item-1 {
  display: block;
  top: 20%;
  left: 18px;
  font-size: 2.2rem;
  animation: jellyfishPulseFloat 5s ease-in-out infinite;
  filter: drop-shadow(0 0 16px #38bdf8) drop-shadow(0 0 24px #2dd4bf);
}
.theme-underwater-aquarium-glow .fx-item-1::before { content: "🪼"; }
.theme-underwater-aquarium-glow .fx-item-2 {
  display: block;
  bottom: 10px;
  right: 28px;
  font-size: 1.4rem;
  animation: aquariumBubbleRise1 4.5s linear infinite;
}
.theme-underwater-aquarium-glow .fx-item-2::before { content: "🫧"; }
.theme-underwater-aquarium-glow .fx-item-3 {
  display: block;
  bottom: 30px;
  left: 60%;
  font-size: 1.1rem;
  animation: aquariumBubbleRise2 5.5s 1.5s linear infinite;
}
.theme-underwater-aquarium-glow .fx-item-3::before { content: "🫧"; }
.theme-underwater-aquarium-glow .fx-mesh {
  display: block;
  inset: -10%;
  background: radial-gradient(circle at 50% 20%, rgba(56, 189, 248, 0.22) 0%, transparent 55%),
              radial-gradient(circle at 20% 60%, rgba(45, 212, 191, 0.18) 0%, transparent 45%);
  animation: oceanCausticsShimmer 6s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes jellyfishPulseFloat {
  0% { transform: translateY(0) scaleY(1) scaleX(1); }
  25% { transform: translateY(-18px) scaleY(0.85) scaleX(1.15); }
  50% { transform: translateY(-35px) scaleY(1.1) scaleX(0.9); }
  75% { transform: translateY(-15px) scaleY(0.9) scaleX(1.1); }
  100% { transform: translateY(0) scaleY(1) scaleX(1); }
}
@keyframes aquariumBubbleRise1 {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  20% { opacity: 0.8; }
  80% { opacity: 0.8; }
  100% { transform: translateY(-180px) translateX(15px); opacity: 0; }
}
@keyframes aquariumBubbleRise2 {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  20% { opacity: 0.7; }
  80% { opacity: 0.7; }
  100% { transform: translateY(-150px) translateX(-20px); opacity: 0; }
}
@keyframes oceanCausticsShimmer {
  0% { opacity: 0.5; transform: scale(0.95); }
  100% { opacity: 0.9; transform: scale(1.06); }
}

/* FX 42: vinyl-jazz-noir (Golden Saxophone, Floating Jazz Notes & Spotlight) */
.theme-vinyl-jazz-noir .fx-item-1 {
  display: block;
  top: 16px;
  right: 20px;
  font-size: 2.2rem;
  animation: saxGleam 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px rgba(245, 158, 11, 0.7));
}
.theme-vinyl-jazz-noir .fx-item-1::before { content: "🎷"; }
.theme-vinyl-jazz-noir .fx-item-2 {
  display: block;
  bottom: 24px;
  left: 20px;
  font-size: 1.6rem;
  color: #fbbf24;
  animation: jazzNotesAscend1 4.5s ease-in-out infinite;
}
.theme-vinyl-jazz-noir .fx-item-2::before { content: "🎶"; }
.theme-vinyl-jazz-noir .fx-item-3 {
  display: block;
  bottom: 50px;
  left: 45px;
  font-size: 1.2rem;
  color: #fde68a;
  animation: jazzNotesAscend2 4.2s 1.2s ease-in-out infinite;
}
.theme-vinyl-jazz-noir .fx-item-3::before { content: "🎵"; }
.theme-vinyl-jazz-noir .fx-beam {
  display: block;
  position: absolute;
  top: 0;
  right: 15%;
  width: 140px;
  height: 100%;
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.16) 0%, transparent 75%);
  animation: jazzSpotlightSweep 5s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes saxGleam {
  0% { transform: rotate(-5deg) scale(0.95); filter: drop-shadow(0 0 10px rgba(245, 158, 11, 0.5)); }
  100% { transform: rotate(5deg) scale(1.08); filter: drop-shadow(0 0 22px rgba(251, 191, 36, 0.9)); }
}
@keyframes jazzNotesAscend1 {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  30% { opacity: 0.9; }
  70% { opacity: 0.8; }
  100% { transform: translateY(-70px) rotate(20deg); opacity: 0; }
}
@keyframes jazzNotesAscend2 {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  30% { opacity: 0.85; }
  70% { opacity: 0.75; }
  100% { transform: translateY(-60px) rotate(-15deg); opacity: 0; }
}
@keyframes jazzSpotlightSweep {
  0% { transform: rotate(-5deg); opacity: 0.4; }
  100% { transform: rotate(8deg); opacity: 0.85; }
}

/* FX 43: starlit-campfire-glamping (Campfire Flame, Floating Embers & Pine Breeze) */
.theme-starlit-campfire-glamping .fx-item-1 {
  display: block;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2rem;
  animation: campfireFlicker 1.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px #f97316) drop-shadow(0 0 28px #ea580c);
}
.theme-starlit-campfire-glamping .fx-item-1::before { content: "🔥"; }
.theme-starlit-campfire-glamping .fx-item-2 {
  display: block;
  bottom: 45px;
  left: 52%;
  font-size: 1.1rem;
  color: #fed7aa;
  animation: campfireSparkAscend 3.2s ease-out infinite;
}
.theme-starlit-campfire-glamping .fx-item-2::before { content: "✨"; }
.theme-starlit-campfire-glamping .fx-item-3 {
  display: block;
  top: 16px;
  right: 18px;
  font-size: 1.8rem;
  animation: pineBreezeSway 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px rgba(22, 101, 52, 0.4));
}
.theme-starlit-campfire-glamping .fx-item-3::before { content: "🌲"; }
.theme-starlit-campfire-glamping .fx-mesh {
  display: block;
  inset: -10%;
  background: radial-gradient(circle at 50% 90%, rgba(249, 115, 22, 0.28) 0%, transparent 60%);
  animation: bioAuraPulse 3s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes campfireFlicker {
  0% { transform: translateX(-50%) scale(0.96) rotate(-2deg); }
  50% { transform: translateX(-50%) scale(1.08) rotate(3deg); }
  100% { transform: translateX(-50%) scale(1) rotate(-1deg); }
}
@keyframes campfireSparkAscend {
  0% { transform: translateY(0) translateX(0) scale(0.6); opacity: 0; }
  30% { opacity: 0.9; }
  80% { opacity: 0.7; }
  100% { transform: translateY(-65px) translateX(12px) scale(1.1); opacity: 0; }
}
@keyframes pineBreezeSway {
  0% { transform: rotate(-3deg); }
  100% { transform: rotate(4deg); }
}

/* FX 44: origami-crane-serenade (Flying Origami Crane, Washi Wind Chime & Petal) */
.theme-origami-crane-serenade .fx-item-1 {
  display: block;
  top: 18px;
  right: 22px;
  font-size: 2.2rem;
  animation: origamiCraneFlap 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 4px 10px rgba(220, 38, 38, 0.3));
}
.theme-origami-crane-serenade .fx-item-1::before { content: "🕊️"; }
.theme-origami-crane-serenade .fx-item-2 {
  display: block;
  top: 16px;
  left: 18px;
  font-size: 1.6rem;
  transform-origin: top center;
  animation: windChimeSway 3.2s ease-in-out infinite alternate;
}
.theme-origami-crane-serenade .fx-item-2::before { content: "🎐"; }
.theme-origami-crane-serenade .fx-item-3 {
  display: block;
  bottom: 22px;
  left: 28px;
  font-size: 1.3rem;
  animation: redPetalDrift 5s linear infinite;
}
.theme-origami-crane-serenade .fx-item-3::before { content: "🌸"; }

@keyframes origamiCraneFlap {
  0% { transform: translateY(0) scale(0.95) rotate(-4deg); }
  50% { transform: translateY(-12px) scale(1.05) rotate(4deg); }
  100% { transform: translateY(0) scale(0.95) rotate(-4deg); }
}
@keyframes windChimeSway {
  0% { transform: rotate(-8deg); }
  100% { transform: rotate(8deg); }
}
@keyframes redPetalDrift {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  25% { opacity: 0.8; }
  75% { opacity: 0.8; }
  100% { transform: translateY(60px) rotate(45deg); opacity: 0; }
}

/* FX 45: rooftop-cinema-under-stars (Edison Bistro Light, Projector Ray & Twinkle) */
.theme-rooftop-cinema-under-stars .fx-item-1 {
  display: block;
  top: 10px;
  left: 20px;
  font-size: 2rem;
  transform-origin: top center;
  animation: bistroBulbSway 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px rgba(245, 158, 11, 0.8));
}
.theme-rooftop-cinema-under-stars .fx-item-1::before { content: "💡"; }
.theme-rooftop-cinema-under-stars .fx-item-2 {
  display: block;
  top: 16px;
  right: 20px;
  font-size: 1.8rem;
  animation: projectorFlicker 2.8s infinite;
  filter: drop-shadow(0 0 14px rgba(254, 240, 138, 0.7));
}
.theme-rooftop-cinema-under-stars .fx-item-2::before { content: "📽️"; }
.theme-rooftop-cinema-under-stars .fx-item-3 {
  display: block;
  top: 35%;
  right: 15%;
  font-size: 1.2rem;
  color: #fef08a;
  animation: starTwinkleRooftop 2.4s infinite;
}
.theme-rooftop-cinema-under-stars .fx-item-3::before { content: "⭐"; }
.theme-rooftop-cinema-under-stars .fx-beam {
  display: block;
  position: absolute;
  top: 15px;
  right: 30px;
  width: 180px;
  height: 90px;
  background: linear-gradient(220deg, rgba(254, 240, 138, 0.18) 0%, transparent 70%);
  transform-origin: top right;
  animation: projectorBeamFlicker 3s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes bistroBulbSway {
  0% { transform: rotate(-7deg); }
  100% { transform: rotate(7deg); }
}
@keyframes projectorFlicker {
  0%, 100% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.08); }
}
@keyframes starTwinkleRooftop {
  0%, 100% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
}
@keyframes projectorBeamFlicker {
  0% { opacity: 0.5; transform: rotate(0deg); }
  50% { opacity: 0.85; transform: rotate(3deg); }
  100% { opacity: 0.6; transform: rotate(-2deg); }
}

/* FX 46: rustic-barn-wooden (Eucalyptus Garland, Mason Jar Candle & Leaf) */
.theme-rustic-barn-wooden .fx-item-1 {
  display: block;
  top: 14px;
  left: 20px;
  font-size: 2.2rem;
  animation: eucalyptusSway 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 2px 8px rgba(34, 197, 94, 0.4));
}
.theme-rustic-barn-wooden .fx-item-1::before { content: "🌿"; }
.theme-rustic-barn-wooden .fx-item-2 {
  display: block;
  bottom: 20px;
  right: 22px;
  font-size: 1.8rem;
  animation: masonJarFlicker 2.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px rgba(217, 119, 6, 0.75));
}
.theme-rustic-barn-wooden .fx-item-2::before { content: "🕯️"; }
.theme-rustic-barn-wooden .fx-item-3 {
  display: block;
  top: 25px;
  right: 30px;
  font-size: 1.2rem;
  animation: barnLeafDrift 6s linear infinite;
}
.theme-rustic-barn-wooden .fx-item-3::before { content: "🍃"; }

@keyframes eucalyptusSway {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}
@keyframes masonJarFlicker {
  0% { transform: scale(0.95); opacity: 0.7; }
  50% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(0.98); opacity: 0.75; }
}
@keyframes barnLeafDrift {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  25% { opacity: 0.8; }
  75% { opacity: 0.8; }
  100% { transform: translateY(80px) rotate(40deg); opacity: 0; }
}

/* FX 47: maroko-riadh-mosaic (Moorish Palace Arch, Moroccan Lantern & Zellige Star) */
.theme-maroko-riadh-mosaic .fx-item-1 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2rem;
  animation: moroccanArchAura 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px rgba(234, 179, 8, 0.75));
}
.theme-maroko-riadh-mosaic .fx-item-1::before { content: "🕌"; }
.theme-maroko-riadh-mosaic .fx-item-2 {
  display: block;
  top: 16px;
  left: 20px;
  font-size: 1.8rem;
  transform-origin: top center;
  animation: moroccanLanternSway 3.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px rgba(234, 179, 8, 0.6));
}
.theme-maroko-riadh-mosaic .fx-item-2::before { content: "🪔"; }
.theme-maroko-riadh-mosaic .fx-item-3 {
  display: block;
  bottom: 22px;
  right: 22px;
  font-size: 1.5rem;
  color: #fde047;
  animation: zelligeStarRotate 8s linear infinite;
}
.theme-maroko-riadh-mosaic .fx-item-3::before { content: "✦"; }

@keyframes moroccanArchAura {
  0% { transform: translateX(-50%) scale(0.95); opacity: 0.75; }
  100% { transform: translateX(-50%) scale(1.08); opacity: 1; filter: drop-shadow(0 0 22px #eab308); }
}
@keyframes moroccanLanternSway {
  0% { transform: rotate(-7deg); }
  100% { transform: rotate(7deg); }
}
@keyframes zelligeStarRotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* FX 48: minang-rumah-gadang (Suntiang Crown Shimmer, Gonjong Silhouette & Gold Flakes) */
.theme-minang-rumah-gadang .fx-item-1 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2rem;
  animation: suntiangShimmer 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px #facc15) drop-shadow(0 0 26px #881337);
}
.theme-minang-rumah-gadang .fx-item-1::before { content: "👑"; }
.theme-minang-rumah-gadang .fx-item-2 {
  display: block;
  top: 16px;
  right: 20px;
  font-size: 1.8rem;
  animation: gonjongAura 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px rgba(250, 204, 21, 0.65));
}
.theme-minang-rumah-gadang .fx-item-2::before { content: "🏛️"; }
.theme-minang-rumah-gadang .fx-item-3 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.2rem;
  color: #fde047;
  animation: minangGoldShower 4.5s linear infinite;
}
.theme-minang-rumah-gadang .fx-item-3::before { content: "✨"; }

@keyframes suntiangShimmer {
  0% { transform: translateX(-50%) scale(0.95); opacity: 0.8; filter: drop-shadow(0 0 12px #facc15); }
  100% { transform: translateX(-50%) scale(1.08); opacity: 1; filter: drop-shadow(0 0 24px #facc15) drop-shadow(0 0 35px #e11d48); }
}
@keyframes gonjongAura {
  0% { transform: scale(0.95); opacity: 0.7; }
  100% { transform: scale(1.05); opacity: 1; }
}
@keyframes minangGoldShower {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  25% { opacity: 0.9; }
  75% { opacity: 0.8; }
  100% { transform: translateY(60px) rotate(40deg); opacity: 0; }
}

/* FX 49: nordic-fjord-aurora (Cut Prism Refraction, Geometric Snowflake & Aurora Veil) */
.theme-nordic-fjord-aurora .fx-item-1 {
  display: block;
  top: 16px;
  left: 20px;
  font-size: 2.2rem;
  animation: prismRefractGleam 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px #7dd3fc);
}
.theme-nordic-fjord-aurora .fx-item-1::before { content: "💎"; }
.theme-nordic-fjord-aurora .fx-item-2 {
  display: block;
  bottom: 22px;
  right: 22px;
  font-size: 1.8rem;
  animation: nordicIceDrift 5s linear infinite;
  filter: drop-shadow(0 0 12px #bae6fd);
}
.theme-nordic-fjord-aurora .fx-item-2::before { content: "❄️"; }
.theme-nordic-fjord-aurora .fx-mesh {
  display: block;
  inset: -10%;
  background: radial-gradient(circle at 40% 15%, rgba(52, 211, 153, 0.22) 0%, transparent 50%),
              radial-gradient(circle at 75% 20%, rgba(125, 211, 252, 0.25) 0%, transparent 55%);
  animation: fjordAuroraVeil 6s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes prismRefractGleam {
  0% { transform: rotate(0deg) scale(0.95); opacity: 0.75; }
  50% { transform: rotate(15deg) scale(1.1); opacity: 1; filter: drop-shadow(0 0 20px #38bdf8) drop-shadow(0 0 30px #34d399); }
  100% { transform: rotate(0deg) scale(0.95); opacity: 0.75; }
}
@keyframes nordicIceDrift {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.3; }
  50% { transform: translateY(-25px) rotate(180deg); opacity: 0.9; }
  100% { transform: translateY(-50px) rotate(360deg); opacity: 0.3; }
}
@keyframes fjordAuroraVeil {
  0% { transform: scale(0.95) translateY(0); opacity: 0.6; }
  100% { transform: scale(1.08) translateY(-10px); opacity: 0.95; }
}

/* FX 50: summa-cum-laude-gold (3D Gold Medal Spin, Academic Laurel & Mortarboard) */
.theme-summa-cum-laude-gold .fx-item-1 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2rem;
  animation: medalHonorSpin 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px #facc15) drop-shadow(0 0 25px rgba(250, 204, 21, 0.5));
}
.theme-summa-cum-laude-gold .fx-item-1::before { content: "🏅"; }
.theme-summa-cum-laude-gold .fx-item-2 {
  display: block;
  top: 18px;
  left: 20px;
  font-size: 1.6rem;
  color: #fde047;
  animation: laurelWreathFloat 3s ease-in-out infinite alternate;
}
.theme-summa-cum-laude-gold .fx-item-2::before { content: "🌿"; }
.theme-summa-cum-laude-gold .fx-item-3 {
  display: block;
  bottom: 22px;
  right: 22px;
  font-size: 1.8rem;
  animation: mortarboardTossSparkle 2.8s cubic-bezier(0.34, 1.56, 0.64, 1) infinite;
}
.theme-summa-cum-laude-gold .fx-item-3::before { content: "🎓"; }
.theme-summa-cum-laude-gold .fx-beam {
  display: block;
  position: absolute;
  top: 0;
  left: -50%;
  width: 200%;
  height: 100%;
  background: linear-gradient(60deg, transparent 40%, rgba(250, 204, 21, 0.15) 50%, transparent 60%);
  animation: goldTrophyLightSweep 4s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes medalHonorSpin {
  0% { transform: translateX(-50%) rotateY(0deg) scale(0.95); }
  50% { transform: translateX(-50%) rotateY(180deg) scale(1.1); }
  100% { transform: translateX(-50%) rotateY(360deg) scale(0.95); }
}
@keyframes laurelWreathFloat {
  0% { transform: translateY(0); }
  100% { transform: translateY(-8px); }
}
@keyframes mortarboardTossSparkle {
  0%, 100% { transform: translateY(0) scale(1) rotate(-6deg); }
  50% { transform: translateY(-16px) scale(1.15) rotate(8deg); }
}
@keyframes goldTrophyLightSweep {
  0% { transform: translateX(-20%); }
  100% { transform: translateX(20%); }
}

/* FX 51: blueprint-arsitek-teknik (Drafting Triangle, Rotating Precision Gear & Coordinate Pulse) */
.theme-blueprint-arsitek-teknik .fx-item-1 {
  display: block;
  top: 16px;
  right: 20px;
  font-size: 2rem;
  animation: blueprintRulerFloat 3.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-blueprint-arsitek-teknik .fx-item-1::before { content: "📐"; }
.theme-blueprint-arsitek-teknik .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.8rem;
  animation: engineGearRotate 6s linear infinite;
  filter: drop-shadow(0 0 12px #0284c7);
}
.theme-blueprint-arsitek-teknik .fx-item-2::before { content: "⚙️"; }
.theme-blueprint-arsitek-teknik .fx-item-3 {
  display: block;
  top: 18px;
  left: 20px;
  font-size: 1.4rem;
  color: #7dd3fc;
  animation: coordinatePulse 2.5s infinite;
}
.theme-blueprint-arsitek-teknik .fx-item-3::before { content: "📏"; }
.theme-blueprint-arsitek-teknik .fx-mesh {
  display: block;
  inset: 0;
  background-image: linear-gradient(rgba(56, 189, 248, 0.08) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(56, 189, 248, 0.08) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
}

@keyframes blueprintRulerFloat {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(10deg); }
}
@keyframes engineGearRotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes coordinatePulse {
  0%, 100% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.15); }
}

/* FX 52: stetoskop-medika-hippocrates (Stethoscope Heartbeat, EKG Lifeline Pulse & Caduceus) */
.theme-stetoskop-medika-hippocrates .fx-item-1 {
  display: block;
  top: 16px;
  left: 20px;
  font-size: 2.2rem;
  animation: stethoscopeHeartbeatPulse 1.4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #14b8a6);
}
.theme-stetoskop-medika-hippocrates .fx-item-1::before { content: "🩺"; }
.theme-stetoskop-medika-hippocrates .fx-item-2 {
  display: block;
  bottom: 22px;
  right: 22px;
  font-size: 1.8rem;
  animation: ekgWavePulse 1.4s infinite;
  filter: drop-shadow(0 0 14px #f43f5e);
}
.theme-stetoskop-medika-hippocrates .fx-item-2::before { content: "💓"; }
.theme-stetoskop-medika-hippocrates .fx-item-3 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 1.8rem;
  color: #f59e0b;
  animation: caduceusGlow 3s ease-in-out infinite alternate;
}
.theme-stetoskop-medika-hippocrates .fx-item-3::before { content: "⚕️"; }

@keyframes stethoscopeHeartbeatPulse {
  0%, 100% { transform: scale(1); }
  14% { transform: scale(1.15); }
  28% { transform: scale(1); }
  42% { transform: scale(1.12); }
  70% { transform: scale(1); }
}
@keyframes ekgWavePulse {
  0%, 100% { transform: scale(0.95); opacity: 0.7; }
  50% { transform: scale(1.18); opacity: 1; }
}
@keyframes caduceusGlow {
  0% { opacity: 0.6; filter: drop-shadow(0 0 8px #f59e0b); }
  100% { opacity: 1; filter: drop-shadow(0 0 20px #fbbf24); }
}

/* FX 53: buku-literasi-scholar (Ancient Manuscript Scroll, Calligraphy Pen & Scales) */
.theme-buku-literasi-scholar .fx-item-1 {
  display: block;
  top: 16px;
  right: 20px;
  font-size: 2rem;
  animation: scholarScrollUnfold 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px rgba(217, 119, 6, 0.7));
}
.theme-buku-literasi-scholar .fx-item-1::before { content: "📜"; }
.theme-buku-literasi-scholar .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.8rem;
  animation: quillPenWrite 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px rgba(245, 158, 11, 0.6));
}
.theme-buku-literasi-scholar .fx-item-2::before { content: "✒️"; }
.theme-buku-literasi-scholar .fx-item-3 {
  display: block;
  top: 16px;
  left: 20px;
  font-size: 1.5rem;
  color: #fde68a;
  animation: scholarScalesGlow 3.5s ease-in-out infinite alternate;
}
.theme-buku-literasi-scholar .fx-item-3::before { content: "⚖️"; }

@keyframes scholarScrollUnfold {
  0% { transform: scale(0.95) rotate(-3deg); }
  100% { transform: scale(1.08) rotate(4deg); }
}
@keyframes quillPenWrite {
  0% { transform: translate(0, 0) rotate(-15deg); }
  50% { transform: translate(12px, -8px) rotate(-5deg); }
  100% { transform: translate(0, 0) rotate(-15deg); }
}
@keyframes scholarScalesGlow {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}

/* FX 54: akikah-baby-cloud (Rocking Baby Cradle, Fluffy Clouds & Twinkle Stars) */
.theme-akikah-baby-cloud .fx-item-1 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2rem;
  animation: babyCradleRock 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 4px 10px rgba(56, 189, 248, 0.35));
}
.theme-akikah-baby-cloud .fx-item-1::before { content: "🍼"; }
.theme-akikah-baby-cloud .fx-item-2 {
  display: block;
  top: 20px;
  left: 20px;
  font-size: 1.8rem;
  animation: cumulusCloudDrift 6s ease-in-out infinite alternate;
}
.theme-akikah-baby-cloud .fx-item-2::before { content: "☁️"; }
.theme-akikah-baby-cloud .fx-item-3 {
  display: block;
  top: 18px;
  right: 22px;
  font-size: 1.4rem;
  color: #fde047;
  animation: lullabyStarTwinkle 2.5s infinite;
}
.theme-akikah-baby-cloud .fx-item-3::before { content: "⭐"; }

@keyframes babyCradleRock {
  0% { transform: translateX(-50%) rotate(-8deg); }
  100% { transform: translateX(-50%) rotate(8deg); }
}
@keyframes cumulusCloudDrift {
  0% { transform: translateX(0); }
  100% { transform: translateX(20px); }
}
@keyframes lullabyStarTwinkle {
  0%, 100% { transform: scale(0.85); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 1; }
}

/* FX 55: housewarming-tedak-siten (Warm Hearth Entryway, Golden Key & Plant Flutter) */
.theme-housewarming-tedak-siten .fx-item-1 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2rem;
  animation: hearthEntrywayGlow 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px rgba(234, 88, 12, 0.65));
}
.theme-housewarming-tedak-siten .fx-item-1::before { content: "🏡"; }
.theme-housewarming-tedak-siten .fx-item-2 {
  display: block;
  bottom: 22px;
  right: 22px;
  font-size: 1.8rem;
  animation: goldenKeyTurn 3s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-housewarming-tedak-siten .fx-item-2::before { content: "🗝️"; }
.theme-housewarming-tedak-siten .fx-item-3 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.6rem;
  animation: houseplantFlutter 4s ease-in-out infinite alternate;
}
.theme-housewarming-tedak-siten .fx-item-3::before { content: "🪴"; }

@keyframes hearthEntrywayGlow {
  0% { transform: translateX(-50%) scale(0.95); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(1.08); opacity: 1; filter: drop-shadow(0 0 22px rgba(234, 88, 12, 0.9)); }
}
@keyframes goldenKeyTurn {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(45deg); }
  50% { transform: rotate(-15deg); }
  75% { transform: rotate(30deg); }
  100% { transform: rotate(0deg); }
}
@keyframes houseplantFlutter {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(6deg); }
}

/* FX 56: chinese-new-year-dragon (Dragon Sine Flight, Spinning Prosperity Coin & Firecrackers) */
.theme-chinese-new-year-dragon .fx-item-1 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2rem;
  animation: dragonSineFlight 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px #facc15) drop-shadow(0 0 26px #dc2626);
}
.theme-chinese-new-year-dragon .fx-item-1::before { content: "🐉"; }
.theme-chinese-new-year-dragon .fx-item-2 {
  display: block;
  bottom: 22px;
  right: 22px;
  font-size: 1.8rem;
  animation: fengshuiCoinSpin 3s linear infinite;
  filter: drop-shadow(0 0 14px #fde047);
}
.theme-chinese-new-year-dragon .fx-item-2::before { content: "🪙"; }
.theme-chinese-new-year-dragon .fx-item-3 {
  display: block;
  top: 16px;
  right: 18px;
  font-size: 1.5rem;
  animation: firecrackerSparkle 1.8s infinite;
}
.theme-chinese-new-year-dragon .fx-item-3::before { content: "🧨"; }
.theme-chinese-new-year-dragon .fx-item-4 {
  display: block;
  top: 16px;
  left: 18px;
  font-size: 1.8rem;
  transform-origin: top center;
  animation: silkLanternSway 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px rgba(220, 38, 38, 0.7));
}
.theme-chinese-new-year-dragon .fx-item-4::before { content: "🏮"; }

@keyframes dragonSineFlight {
  0% { transform: translateX(-50%) translateY(0) rotate(-4deg); }
  50% { transform: translateX(-50%) translateY(-14px) rotate(4deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-4deg); }
}
@keyframes fengshuiCoinSpin {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(180deg) scale(1.1); }
  100% { transform: rotateY(360deg); }
}
@keyframes firecrackerSparkle {
  0%, 100% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; filter: drop-shadow(0 0 16px #facc15); }
}
@keyframes silkLanternSway {
  0% { transform: rotate(-8deg); }
  100% { transform: rotate(8deg); }
}

/* FX 57: tedak-siten-jawa-tradisi (Kurungan Blessing Pulse, Falling Jasmine & Tebu Wulung) */
.theme-tedak-siten-jawa-tradisi .fx-item-1 {
  display: block;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2rem;
  animation: kurunganBlessingPulse 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px #ca8a04);
}
.theme-tedak-siten-jawa-tradisi .fx-item-1::before { content: "🌾"; }
.theme-tedak-siten-jawa-tradisi .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.6rem;
  color: #fefce8;
  animation: jasmineFallDrift 5s linear infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-tedak-siten-jawa-tradisi .fx-item-2::before { content: "🌼"; }
.theme-tedak-siten-jawa-tradisi .fx-item-3 {
  display: block;
  top: 16px;
  right: 20px;
  font-size: 1.6rem;
  animation: tebuWulungSway 4s ease-in-out infinite alternate;
}
.theme-tedak-siten-jawa-tradisi .fx-item-3::before { content: "🎋"; }

@keyframes kurunganBlessingPulse {
  0% { transform: translateX(-50%) scale(0.95); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(1.08); opacity: 1; filter: drop-shadow(0 0 22px #eab308); }
}
@keyframes jasmineFallDrift {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  25% { opacity: 0.9; }
  75% { opacity: 0.8; }
  100% { transform: translateY(65px) rotate(45deg); opacity: 0; }
}
@keyframes tebuWulungSway {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}

/* Reduced Motion Respect (Strict Accessibility Compliance) */

/* ==========================================================================
   Templates 59-78: 20 New Undangan Interactive Card FX & Animations
   ========================================================================== */

.theme-khitanan-barokah-nusantara .fx-item-1 {
  display: block;
  top: 16px;
  right: 24px;
  font-size: 1.6rem;
  color: #f59e0b;
  animation: tasbihOrbFloat 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-khitanan-barokah-nusantara .fx-item-1::before { content: "📿"; }
.theme-khitanan-barokah-nusantara .fx-item-2 {
  display: block;
  top: 14px;
  left: 24px;
  font-size: 1.5rem;
  color: #38bdf8;
  animation: khitanBlessingGlow 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-khitanan-barokah-nusantara .fx-item-2::before { content: "🕌"; }
.theme-khitanan-barokah-nusantara .fx-item-3 {
  display: block;
  bottom: 24px;
  right: 28px;
  font-size: 1.3rem;
  color: #fde047;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
}
.theme-khitanan-barokah-nusantara .fx-item-3::before { content: "✧"; }

@keyframes tasbihOrbFloat {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.8; }
  100% { transform: translateY(-10px) rotate(15deg); opacity: 1; filter: drop-shadow(0 0 20px #f59e0b); }
}
@keyframes khitanBlessingGlow {
  0% { transform: scale(0.95); opacity: 0.7; }
  100% { transform: scale(1.08); opacity: 1; filter: drop-shadow(0 0 18px #38bdf8); }
}


.theme-reuni-akbar-nostalgia .fx-item-1 {
  display: block;
  top: 14px;
  right: 20px;
  font-size: 1.6rem;
  animation: filmstripRoll 6s linear infinite;
  filter: drop-shadow(0 0 10px #d97706);
}
.theme-reuni-akbar-nostalgia .fx-item-1::before { content: "🎞️"; }
.theme-reuni-akbar-nostalgia .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: cameraFlashGlow 4s ease-in-out infinite;
}
.theme-reuni-akbar-nostalgia .fx-item-2::before { content: "📸"; }
.theme-reuni-akbar-nostalgia .fx-item-3 {
  display: block;
  bottom: 24px;
  right: 24px;
  font-size: 1.2rem;
  color: #f59e0b;
  animation: goldenDustDrift 3.5s ease-in-out infinite alternate;
}
.theme-reuni-akbar-nostalgia .fx-item-3::before { content: "✦"; }

@keyframes filmstripRoll {
  0% { transform: rotate(0deg); opacity: 0.85; }
  50% { opacity: 1; filter: drop-shadow(0 0 16px #f59e0b); }
  100% { transform: rotate(360deg); opacity: 0.85; }
}
@keyframes cameraFlashGlow {
  0%, 88%, 100% { transform: scale(1); opacity: 0.7; filter: drop-shadow(0 0 0 transparent); }
  92% { transform: scale(1.18); opacity: 1; filter: drop-shadow(0 0 25px #ffffff); }
  96% { transform: scale(1.05); opacity: 0.9; }
}
@keyframes goldenDustDrift {
  0% { transform: translateY(0) scale(0.9); opacity: 0.5; }
  100% { transform: translateY(-12px) scale(1.1); opacity: 1; filter: drop-shadow(0 0 14px #f59e0b); }
}


.theme-sunset-bbq-garden-party .fx-item-1 {
  display: block;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 1.8rem;
  animation: edisonStringSway 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 16px #f97316);
}
.theme-sunset-bbq-garden-party .fx-item-1::before { content: "💡"; }
.theme-sunset-bbq-garden-party .fx-item-2 {
  display: block;
  bottom: 20px;
  right: 22px;
  font-size: 1.5rem;
  animation: emberSparksRise 3.5s ease-in-out infinite;
}
.theme-sunset-bbq-garden-party .fx-item-2::before { content: "🔥"; }
.theme-sunset-bbq-garden-party .fx-item-3 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.4rem;
  color: #16a34a;
  animation: botanicalSway 4.5s ease-in-out infinite alternate;
}
.theme-sunset-bbq-garden-party .fx-item-3::before { content: "🌿"; }

@keyframes edisonStringSway {
  0% { transform: translateX(-50%) rotate(-4deg); filter: drop-shadow(0 0 12px #f97316); }
  100% { transform: translateX(-50%) rotate(4deg); filter: drop-shadow(0 0 22px #fdba74); }
}
@keyframes emberSparksRise {
  0% { transform: translateY(0) scale(0.9); opacity: 0.7; }
  50% { opacity: 1; filter: drop-shadow(0 0 15px #ea580c); }
  100% { transform: translateY(-16px) scale(1.1); opacity: 0.8; }
}


.theme-siraman-pengajian-jawa .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: waterDropRipple 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-siraman-pengajian-jawa .fx-item-1::before { content: "💧"; }
.theme-siraman-pengajian-jawa .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: flowerPetalCascade 5s linear infinite;
  filter: drop-shadow(0 0 10px #f43f5e);
}
.theme-siraman-pengajian-jawa .fx-item-2::before { content: "🌸"; }
.theme-siraman-pengajian-jawa .fx-item-3 {
  display: block;
  top: 14px;
  left: 20px;
  font-size: 1.5rem;
  color: #fefce8;
  animation: botanicalSway 4s ease-in-out infinite alternate;
}
.theme-siraman-pengajian-jawa .fx-item-3::before { content: "🌼"; }

@keyframes waterDropRipple {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.15); opacity: 1; filter: drop-shadow(0 0 18px #38bdf8); }
  100% { transform: scale(0.9); opacity: 0.6; }
}
@keyframes flowerPetalCascade {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  25% { opacity: 0.9; }
  75% { opacity: 0.8; }
  100% { transform: translateY(28px) rotate(45deg); opacity: 0; }
}


.theme-akad-glassmorphism-aurora .fx-mesh {
  display: block;
  background: linear-gradient(45deg, transparent 40%, rgba(56, 189, 248, 0.12) 50%, rgba(244, 114, 182, 0.12) 60%, transparent 70%);
  animation: prismRefractionSweep 6s ease-in-out infinite alternate;
}
.theme-akad-glassmorphism-aurora .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: crystalFacetGleam 4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-akad-glassmorphism-aurora .fx-item-1::before { content: "💍"; }
.theme-akad-glassmorphism-aurora .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.4rem;
  color: #f472b6;
  animation: sparkleTwinkle 3s 1.5s ease-in-out infinite;
}
.theme-akad-glassmorphism-aurora .fx-item-2::before { content: "💎"; }

@keyframes prismRefractionSweep {
  0% { transform: translateX(-30%) rotate(0deg); opacity: 0.6; }
  100% { transform: translateX(30%) rotate(15deg); opacity: 1; }
}
@keyframes crystalFacetGleam {
  0%, 100% { transform: scale(1) rotate(0deg); filter: drop-shadow(0 0 8px #38bdf8); }
  50% { transform: scale(1.12) rotate(10deg); filter: drop-shadow(0 0 20px #bae6fd); }
}


.theme-lamaran-peony-blush .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: peonyBloomBreathe 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ec4899);
}
.theme-lamaran-peony-blush .fx-item-1::before { content: "🌺"; }
.theme-lamaran-peony-blush .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: satinRibbonWave 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #f472b6);
}
.theme-lamaran-peony-blush .fx-item-2::before { content: "🎀"; }
.theme-lamaran-peony-blush .fx-item-3 {
  display: block;
  top: 16px;
  left: 22px;
  font-size: 1.3rem;
  color: #fbbf24;
  animation: sparkleTwinkle 2.8s ease-in-out infinite;
}
.theme-lamaran-peony-blush .fx-item-3::before { content: "✦"; }

@keyframes peonyBloomBreathe {
  0% { transform: scale(0.92); opacity: 0.8; }
  100% { transform: scale(1.1); opacity: 1; filter: drop-shadow(0 0 20px #f472b6); }
}
@keyframes satinRibbonWave {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(8deg); filter: drop-shadow(0 0 16px #fbbf24); }
}


.theme-grand-opening-ceremony .fx-beam {
  display: block;
  background: linear-gradient(110deg, transparent 35%, rgba(234, 179, 8, 0.18) 50%, transparent 65%);
  animation: twinSpotlightCross 5s ease-in-out infinite alternate;
}
.theme-grand-opening-ceremony .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: ribbonCutReveal 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #eab308);
}
.theme-grand-opening-ceremony .fx-item-1::before { content: "✂️"; }
.theme-grand-opening-ceremony .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-grand-opening-ceremony .fx-item-2::before { content: "✨"; }

@keyframes twinSpotlightCross {
  0% { transform: rotate(-15deg); opacity: 0.6; }
  100% { transform: rotate(15deg); opacity: 1; filter: drop-shadow(0 0 25px rgba(234, 179, 8, 0.4)); }
}
@keyframes ribbonCutReveal {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.15) rotate(-10deg); filter: drop-shadow(0 0 20px #facc15); }
}


.theme-sleepover-slumber-party .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: pillowMoonBob 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #c084fc);
}
.theme-sleepover-slumber-party .fx-item-1::before { content: "🌙"; }
.theme-sleepover-slumber-party .fx-item-2 {
  display: block;
  top: 14px;
  left: 20px;
  font-size: 1.5rem;
  animation: fairyLightsTwinkle 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f472b6);
}
.theme-sleepover-slumber-party .fx-item-2::before { content: "✨"; }
.theme-sleepover-slumber-party .fx-item-3 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: botanicalSway 4.5s ease-in-out infinite alternate;
}
.theme-sleepover-slumber-party .fx-item-3::before { content: "🍿"; }

@keyframes pillowMoonBob {
  0% { transform: translateY(0) rotate(-6deg); filter: drop-shadow(0 0 10px #c084fc); }
  100% { transform: translateY(-10px) rotate(6deg); filter: drop-shadow(0 0 20px #e9d5ff); }
}
@keyframes fairyLightsTwinkle {
  0%, 100% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.1); filter: drop-shadow(0 0 16px #f472b6); }
}


.theme-summer-pool-party .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.8rem;
  animation: flamingoFloatieBob 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #fb7185);
}
.theme-summer-pool-party .fx-item-1::before { content: "🦩"; }
.theme-summer-pool-party .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: waterSplashPop 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-summer-pool-party .fx-item-2::before { content: "💦"; }
.theme-summer-pool-party .fx-item-3 {
  display: block;
  bottom: 24px;
  right: 22px;
  font-size: 1.5rem;
  animation: botanicalSway 4s ease-in-out infinite alternate;
}
.theme-summer-pool-party .fx-item-3::before { content: "🥥"; }

@keyframes flamingoFloatieBob {
  0% { transform: translateY(0) rotate(-4deg); }
  100% { transform: translateY(-12px) rotate(4deg); filter: drop-shadow(0 0 20px #fb7185); }
}
@keyframes waterSplashPop {
  0%, 100% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.18); opacity: 1; filter: drop-shadow(0 0 18px #7dd3fc); }
}


.theme-peluncuran-buku-penulis .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: bookPageFlip 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #d97706);
}
.theme-peluncuran-buku-penulis .fx-item-1::before { content: "📖"; }
.theme-peluncuran-buku-penulis .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: quillInkFlow 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-peluncuran-buku-penulis .fx-item-2::before { content: "✒️"; }
.theme-peluncuran-buku-penulis .fx-item-3 {
  display: block;
  top: 16px;
  left: 22px;
  font-size: 1.3rem;
  color: #fde68a;
  animation: sparkleTwinkle 3s ease-in-out infinite;
}
.theme-peluncuran-buku-penulis .fx-item-3::before { content: "✧"; }

@keyframes bookPageFlip {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(0.7) skewY(-5deg); opacity: 1; }
  100% { transform: scaleX(1); opacity: 0.8; }
}
@keyframes quillInkFlow {
  0% { transform: rotate(-5deg) translateY(0); }
  100% { transform: rotate(10deg) translateY(-8px); filter: drop-shadow(0 0 20px #f59e0b); }
}


.theme-aqiqah-safari-pastel .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.8rem;
  animation: safariBalloonFloat 4.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #6ee7b7);
}
.theme-aqiqah-safari-pastel .fx-item-1::before { content: "🦒"; }
.theme-aqiqah-safari-pastel .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: tinyPawSteps 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #fcd34d);
}
.theme-aqiqah-safari-pastel .fx-item-2::before { content: "🎈"; }
.theme-aqiqah-safari-pastel .fx-item-3 {
  display: block;
  bottom: 24px;
  right: 22px;
  font-size: 1.4rem;
  color: #34d399;
  animation: botanicalSway 4s ease-in-out infinite alternate;
}
.theme-aqiqah-safari-pastel .fx-item-3::before { content: "🌿"; }

@keyframes safariBalloonFloat {
  0% { transform: translateY(0) rotate(-3deg); }
  100% { transform: translateY(-12px) rotate(4deg); filter: drop-shadow(0 0 20px #6ee7b7); }
}
@keyframes tinyPawSteps {
  0%, 100% { transform: scale(0.95); opacity: 0.7; }
  50% { transform: scale(1.15); opacity: 1; filter: drop-shadow(0 0 16px #fcd34d); }
}


.theme-batak-ulos-gorga .fx-frame-glow {
  display: block;
  inset: 0;
  box-shadow: inset 0 0 25px rgba(250, 204, 21, 0.22);
  animation: gorgaPatternPulse 4s ease-in-out infinite alternate;
}
.theme-batak-ulos-gorga .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: ulosGoldWeaveGleam 4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-batak-ulos-gorga .fx-item-1::before { content: "🏛️"; }
.theme-batak-ulos-gorga .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  color: #facc15;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #ef4444);
}
.theme-batak-ulos-gorga .fx-item-2::before { content: "✦"; }

@keyframes gorgaPatternPulse {
  0% { opacity: 0.6; box-shadow: inset 0 0 15px rgba(250, 204, 21, 0.15); }
  100% { opacity: 1; box-shadow: inset 0 0 35px rgba(250, 204, 21, 0.35); }
}
@keyframes ulosGoldWeaveGleam {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 8px #facc15); }
  50% { transform: scale(1.15); filter: drop-shadow(0 0 22px #fde047); }
}


.theme-wisuda-dental-dentist .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: pearlySmileSparkle 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-wisuda-dental-dentist .fx-item-1::before { content: "🦷"; }
.theme-wisuda-dental-dentist .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #34d399);
}
.theme-wisuda-dental-dentist .fx-item-2::before { content: "✨"; }
.theme-wisuda-dental-dentist .fx-item-3 {
  display: block;
  top: 16px;
  left: 22px;
  font-size: 1.4rem;
  animation: botanicalSway 4s ease-in-out infinite alternate;
}
.theme-wisuda-dental-dentist .fx-item-3::before { content: "🪞"; }

@keyframes pearlySmileSparkle {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 8px #38bdf8); }
  50% { transform: scale(1.15) rotate(8deg); filter: drop-shadow(0 0 22px #f0fdfa); }
}


.theme-wisuda-hukum-lex-justitia .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: scalesOfJusticeSway 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ca8a04);
}
.theme-wisuda-hukum-lex-justitia .fx-item-1::before { content: "⚖️"; }
.theme-wisuda-hukum-lex-justitia .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: gavelAuraPulse 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #eab308);
}
.theme-wisuda-hukum-lex-justitia .fx-item-2::before { content: "🔨"; }
.theme-wisuda-hukum-lex-justitia .fx-item-3 {
  display: block;
  top: 16px;
  left: 22px;
  font-size: 1.3rem;
  color: #fde047;
  animation: sparkleTwinkle 3s ease-in-out infinite;
}
.theme-wisuda-hukum-lex-justitia .fx-item-3::before { content: "✧"; }

@keyframes scalesOfJusticeSway {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); filter: drop-shadow(0 0 20px #eab308); }
}
@keyframes gavelAuraPulse {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.15) rotate(-8deg); opacity: 1; filter: drop-shadow(0 0 20px #ca8a04); }
}


.theme-vernissage-galeri-seni .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: gallerySpotlightTrack 4.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #f43f5e);
}
.theme-vernissage-galeri-seni .fx-item-1::before { content: "🎨"; }
.theme-vernissage-galeri-seni .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: botanicalSway 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-vernissage-galeri-seni .fx-item-2::before { content: "🍷"; }
.theme-vernissage-galeri-seni .fx-item-3 {
  display: block;
  top: 16px;
  left: 22px;
  font-size: 1.3rem;
  color: #facc15;
  animation: sparkleTwinkle 2.8s ease-in-out infinite;
}
.theme-vernissage-galeri-seni .fx-item-3::before { content: "✧"; }

@keyframes gallerySpotlightTrack {
  0% { transform: translateY(0) rotate(-6deg); }
  100% { transform: translateY(-10px) rotate(8deg); filter: drop-shadow(0 0 22px #fda4af); }
}


.theme-pantai-sunset-beach-wedding .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: gauzeCurtainBreeze 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-pantai-sunset-beach-wedding .fx-item-1::before { content: "🌊"; }
.theme-pantai-sunset-beach-wedding .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.4rem;
  animation: botanicalSway 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #fed7aa);
}
.theme-pantai-sunset-beach-wedding .fx-item-2::before { content: "🐚"; }
.theme-pantai-sunset-beach-wedding .fx-item-3 {
  display: block;
  bottom: 24px;
  right: 22px;
  font-size: 1.5rem;
  animation: sunsetPulse 4s ease-in-out infinite alternate;
}
.theme-pantai-sunset-beach-wedding .fx-item-3::before { content: "🌅"; }

@keyframes gauzeCurtainBreeze {
  0% { transform: translateX(0) rotate(-4deg); }
  100% { transform: translateX(8px) rotate(6deg); filter: drop-shadow(0 0 20px #38bdf8); }
}
@keyframes sunsetPulse {
  0% { transform: scale(0.92); opacity: 0.7; }
  100% { transform: scale(1.1); opacity: 1; filter: drop-shadow(0 0 22px #f97316); }
}


.theme-golden-50th-anniversary .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: goldenDustVortex 4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #eab308);
}
.theme-golden-50th-anniversary .fx-item-1::before { content: "👑"; }
.theme-golden-50th-anniversary .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  color: #facc15;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #fde047);
}
.theme-golden-50th-anniversary .fx-item-2::before { content: "✨"; }
.theme-golden-50th-anniversary .fx-item-3 {
  display: block;
  top: 16px;
  left: 22px;
  font-size: 1.4rem;
  animation: botanicalSway 4s ease-in-out infinite alternate;
}
.theme-golden-50th-anniversary .fx-item-3::before { content: "💍"; }

@keyframes goldenDustVortex {
  0% { transform: rotate(0deg) scale(0.95); opacity: 0.8; }
  50% { transform: rotate(180deg) scale(1.12); opacity: 1; filter: drop-shadow(0 0 22px #fde047); }
  100% { transform: rotate(360deg) scale(0.95); opacity: 0.8; }
}


.theme-wisuda-magister-doktor .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.6rem;
  animation: doctoralMedalGleam 4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #eab308);
}
.theme-wisuda-magister-doktor .fx-item-1::before { content: "🏅"; }
.theme-wisuda-magister-doktor .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: botanicalSway 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #c084fc);
}
.theme-wisuda-magister-doktor .fx-item-2::before { content: "🎓"; }
.theme-wisuda-magister-doktor .fx-item-3 {
  display: block;
  top: 16px;
  left: 22px;
  font-size: 1.4rem;
  color: #fde047;
  animation: sparkleTwinkle 2.8s ease-in-out infinite;
}
.theme-wisuda-magister-doktor .fx-item-3::before { content: "✧"; }

@keyframes doctoralMedalGleam {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.15) rotate(10deg); filter: drop-shadow(0 0 20px #fde047); }
}


.theme-venetian-masquerade-ball .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.8rem;
  animation: masqueradeMaskFloat 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #c084fc);
}
.theme-venetian-masquerade-ball .fx-item-1::before { content: "🎭"; }
.theme-venetian-masquerade-ball .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: botanicalSway 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-venetian-masquerade-ball .fx-item-2::before { content: "🪶"; }
.theme-venetian-masquerade-ball .fx-item-3 {
  display: block;
  top: 16px;
  left: 22px;
  font-size: 1.3rem;
  color: #fde047;
  animation: sparkleTwinkle 2.8s ease-in-out infinite;
}
.theme-venetian-masquerade-ball .fx-item-3::before { content: "✦"; }

@keyframes masqueradeMaskFloat {
  0% { transform: translateY(0) rotate(-6deg); }
  100% { transform: translateY(-12px) rotate(6deg); filter: drop-shadow(0 0 22px #e9d5ff); }
}


.theme-tahun-baru-countdown-gala .fx-item-1 {
  display: block;
  top: 14px;
  right: 22px;
  font-size: 1.8rem;
  animation: countdownSparklerPop 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-tahun-baru-countdown-gala .fx-item-1::before { content: "🎆"; }
.theme-tahun-baru-countdown-gala .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 20px;
  font-size: 1.5rem;
  animation: botanicalSway 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-tahun-baru-countdown-gala .fx-item-2::before { content: "🍾"; }
.theme-tahun-baru-countdown-gala .fx-item-3 {
  display: block;
  top: 16px;
  left: 22px;
  font-size: 1.5rem;
  animation: clockHandTick 2s steps(1) infinite;
}
.theme-tahun-baru-countdown-gala .fx-item-3::before { content: "🕰️"; }

@keyframes countdownSparklerPop {
  0%, 100% { transform: scale(0.9) rotate(0deg); opacity: 0.8; }
  50% { transform: scale(1.2) rotate(15deg); opacity: 1; filter: drop-shadow(0 0 25px #fde047); }
}
@keyframes clockHandTick {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(6deg); }
  100% { transform: rotate(0deg); }
}



/* ==========================================================================
   Templates 79-118: 40 New Interactive FX & Keyframes
   ========================================================================== */

.theme-dino-jurassic-adventure .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: dinoStompBounce 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #22c55e);
}
.theme-dino-jurassic-adventure .fx-item-1::before { content: "🦕"; }
.theme-dino-jurassic-adventure .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: botanicalSway 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #86efac);
}
.theme-dino-jurassic-adventure .fx-item-2::before { content: "🌿"; }
.theme-dino-jurassic-adventure .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.3rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #fef08a);
}
.theme-dino-jurassic-adventure .fx-item-3::before { content: "🦴"; }

@keyframes dinoStompBounce {
  0% { transform: translateY(0) scale(1) rotate(0deg); }
  50% { transform: translateY(-8px) scale(1.08) rotate(-4deg); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}

.theme-space-astronot-kosmik .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: rocketLiftoffHover 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #f97316);
}
.theme-space-astronot-kosmik .fx-item-1::before { content: "🚀"; }
.theme-space-astronot-kosmik .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.6rem;
  animation: saturnRingTilt 5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-space-astronot-kosmik .fx-item-2::before { content: "🪐"; }
.theme-space-astronot-kosmik .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.3rem;
  animation: sparkleTwinkle 2.2s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #bae6fd);
}
.theme-space-astronot-kosmik .fx-item-3::before { content: "✨"; }

@keyframes rocketLiftoffHover {
  0% { transform: translateY(0) rotate(15deg); }
  50% { transform: translateY(-10px) rotate(12deg); filter: drop-shadow(0 0 20px #fb923c); }
  100% { transform: translateY(0) rotate(15deg); }
}
@keyframes saturnRingTilt {
  0%, 100% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.08); }
}

.theme-sweet-sixteen-glitz .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: tiaraGleamFloat 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-sweet-sixteen-glitz .fx-item-1::before { content: "👑"; }
.theme-sweet-sixteen-glitz .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: heartPulseShine 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #fb7185);
}
.theme-sweet-sixteen-glitz .fx-item-2::before { content: "💖"; }
.theme-sweet-sixteen-glitz .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-sweet-sixteen-glitz .fx-item-3::before { content: "✦"; }

@keyframes tiaraGleamFloat {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-8px) rotate(6deg); filter: drop-shadow(0 0 20px #fde047); }
}
@keyframes heartPulseShine {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.15); filter: drop-shadow(0 0 16px #fda4af); }
}

.theme-gamer-level-up-quest .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: gamepadRumbleHover 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #a3e635);
}
.theme-gamer-level-up-quest .fx-item-1::before { content: "🎮"; }
.theme-gamer-level-up-quest .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: lightningFlicker 2s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #facc15);
}
.theme-gamer-level-up-quest .fx-item-2::before { content: "⚡"; }
.theme-gamer-level-up-quest .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: pixelAlienHop 3s steps(4) infinite;
  filter: drop-shadow(0 0 10px #a855f7);
}
.theme-gamer-level-up-quest .fx-item-3::before { content: "👾"; }

@keyframes gamepadRumbleHover {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-6px) rotate(-4deg); }
  75% { transform: translateY(-4px) rotate(4deg); }
}
@keyframes lightningFlicker {
  0%, 100% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.18); filter: drop-shadow(0 0 16px #fde047); }
}
@keyframes pixelAlienHop {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

.theme-matcha-tea-garden .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: teaSteamRise 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #bef264);
}
.theme-matcha-tea-garden .fx-item-1::before { content: "🍵"; }
.theme-matcha-tea-garden .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: leafSwayDrift 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #86efac);
}
.theme-matcha-tea-garden .fx-item-2::before { content: "🍃"; }
.theme-matcha-tea-garden .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: bambooChimeGentle 3s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #fef08a);
}
.theme-matcha-tea-garden .fx-item-3::before { content: "🎋"; }

@keyframes teaSteamRise {
  0% { transform: translateY(0) scale(0.95); opacity: 0.8; }
  50% { transform: translateY(-7px) scale(1.05); opacity: 1; }
  100% { transform: translateY(0) scale(0.95); opacity: 0.8; }
}
@keyframes leafSwayDrift {
  0% { transform: rotate(-10deg) translateX(0); }
  100% { transform: rotate(15deg) translateX(8px); }
}
@keyframes bambooChimeGentle {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
}

.theme-circus-vintage-carnival .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: circusTentBounce 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #ef4444);
}
.theme-circus-vintage-carnival .fx-item-1::before { content: "🎪"; }
.theme-circus-vintage-carnival .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.6rem;
  animation: balloonClusterHover 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #fbbf24);
}
.theme-circus-vintage-carnival .fx-item-2::before { content: "🎈"; }
.theme-circus-vintage-carnival .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: jugglingStarsLoop 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-circus-vintage-carnival .fx-item-3::before { content: "🤹"; }

@keyframes circusTentBounce {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08) rotate(2deg); filter: drop-shadow(0 0 18px #f87171); }
}
@keyframes balloonClusterHover {
  0% { transform: translateY(0) rotate(-4deg); }
  100% { transform: translateY(-10px) rotate(4deg); }
}
@keyframes jugglingStarsLoop {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.theme-sweet-sixty-golden-age .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: jubileeTrophyGlow 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #eab308);
}
.theme-sweet-sixty-golden-age .fx-item-1::before { content: "🏆"; }
.theme-sweet-sixty-golden-age .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: honorMedalSway 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #fde047);
}
.theme-sweet-sixty-golden-age .fx-item-2::before { content: "🎖️"; }
.theme-sweet-sixty-golden-age .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #38bdf8);
}
.theme-sweet-sixty-golden-age .fx-item-3::before { content: "⚜️"; }

@keyframes jubileeTrophyGlow {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 12px #eab308); }
  100% { transform: translateY(-7px) scale(1.08); filter: drop-shadow(0 0 22px #fef08a); }
}
@keyframes honorMedalSway {
  0%, 100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}

.theme-roller-skate-disco-funk .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: rollerSkateGlideKick 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ec4899);
}
.theme-roller-skate-disco-funk .fx-item-1::before { content: "🛼"; }
.theme-roller-skate-disco-funk .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.6rem;
  animation: mirrorDiscoSpin 6s linear infinite;
  filter: drop-shadow(0 0 12px #06b6d4);
}
.theme-roller-skate-disco-funk .fx-item-2::before { content: "🪩"; }
.theme-roller-skate-disco-funk .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: funkMusicNotePop 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #f472b6);
}
.theme-roller-skate-disco-funk .fx-item-3::before { content: "🎶"; }

@keyframes rollerSkateGlideKick {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-8px) rotate(-8deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mirrorDiscoSpin {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.05); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes funkMusicNotePop {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-8px) scale(1.2); }
}

.theme-perak-25th-silver-anniversary .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: silverRingSparkleSpin 4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #e2e8f0);
}
.theme-perak-25th-silver-anniversary .fx-item-1::before { content: "💍"; }
.theme-perak-25th-silver-anniversary .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: silverDoveGlide 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-perak-25th-silver-anniversary .fx-item-2::before { content: "🕊️"; }
.theme-perak-25th-silver-anniversary .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.3rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #f8fafc);
}
.theme-perak-25th-silver-anniversary .fx-item-3::before { content: "✧"; }

@keyframes silverRingSparkleSpin {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(15deg); filter: drop-shadow(0 0 20px #f8fafc); }
}
@keyframes silverDoveGlide {
  0% { transform: translateY(0) translateX(0); }
  100% { transform: translateY(-8px) translateX(6px); }
}

.theme-lavender-provence-fields .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: lavenderBloomSway 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #c084fc);
}
.theme-lavender-provence-fields .fx-item-1::before { content: "🪻"; }
.theme-lavender-provence-fields .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.4rem;
  animation: honeybeeHoverDrift 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #facc15);
}
.theme-lavender-provence-fields .fx-item-2::before { content: "🐝"; }
.theme-lavender-provence-fields .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.3rem;
  animation: sparkleTwinkle 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #e9d5ff);
}
.theme-lavender-provence-fields .fx-item-3::before { content: "💜"; }

@keyframes lavenderBloomSway {
  0% { transform: rotate(-6deg) translateY(0); }
  100% { transform: rotate(6deg) translateY(-6px); }
}
@keyframes honeybeeHoverDrift {
  0%, 100% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-7px) translateX(5px); }
}

.theme-paris-eiffel-twilight .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: eiffelStarlightBeacon 4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #fbbf24);
}
.theme-paris-eiffel-twilight .fx-item-1::before { content: "🗼"; }
.theme-paris-eiffel-twilight .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: rosePetalCascade 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #f472b6);
}
.theme-paris-eiffel-twilight .fx-item-2::before { content: "🌹"; }
.theme-paris-eiffel-twilight .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: teaSteamRise 3s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #fef08a);
}
.theme-paris-eiffel-twilight .fx-item-3::before { content: "☕"; }

@keyframes eiffelStarlightBeacon {
  0%, 100% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); filter: drop-shadow(0 0 22px #fde047); }
}
@keyframes rosePetalCascade {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-7px) rotate(12deg); }
}

.theme-candlelight-jazz-loft .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: saxGoldResonance 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #eab308);
}
.theme-candlelight-jazz-loft .fx-item-1::before { content: "🎷"; }
.theme-candlelight-jazz-loft .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: candleFlameDance 2.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #f97316);
}
.theme-candlelight-jazz-loft .fx-item-2::before { content: "🕯️"; }
.theme-candlelight-jazz-loft .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: funkMusicNotePop 3s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fed7aa);
}
.theme-candlelight-jazz-loft .fx-item-3::before { content: "🎵"; }

@keyframes saxGoldResonance {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(6deg); filter: drop-shadow(0 0 20px #fde047); }
}
@keyframes candleFlameDance {
  0% { transform: translateY(0) scaleY(1); }
  100% { transform: translateY(-4px) scaleY(1.12); }
}

.theme-cherry-blossom-kyoto .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: sakuraBlossomFlutter 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #fb7185);
}
.theme-cherry-blossom-kyoto .fx-item-1::before { content: "🌸"; }
.theme-cherry-blossom-kyoto .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: toriiPeaceGlow 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #e11d48);
}
.theme-cherry-blossom-kyoto .fx-item-2::before { content: "⛩️"; }
.theme-cherry-blossom-kyoto .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: furinChimeDrift 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 8px #fecdd3);
}
.theme-cherry-blossom-kyoto .fx-item-3::before { content: "🎐"; }

@keyframes sakuraBlossomFlutter {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-9px) rotate(15deg); }
}
@keyframes toriiPeaceGlow {
  0%, 100% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
}
@keyframes furinChimeDrift {
  0% { transform: rotate(-8deg); }
  100% { transform: rotate(8deg); }
}

.theme-desert-glamping-stargaze .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: bedouinTentGlow 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ea580c);
}
.theme-desert-glamping-stargaze .fx-item-1::before { content: "⛺"; }
.theme-desert-glamping-stargaze .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: shootingStarFlash 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-desert-glamping-stargaze .fx-item-2::before { content: "🌠"; }
.theme-desert-glamping-stargaze .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: furinChimeDrift 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fed7aa);
}
.theme-desert-glamping-stargaze .fx-item-3::before { content: "🏮"; }

@keyframes bedouinTentGlow {
  0% { transform: scale(1); filter: drop-shadow(0 0 10px #ea580c); }
  100% { transform: scale(1.06); filter: drop-shadow(0 0 18px #fb923c); }
}
@keyframes shootingStarFlash {
  0%, 100% { transform: scale(0.9) rotate(0deg); opacity: 0.7; }
  50% { transform: scale(1.15) rotate(10deg); opacity: 1; }
}

.theme-cozy-fireplace-chalet .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: candleFlameDance 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #f97316);
}
.theme-cozy-fireplace-chalet .fx-item-1::before { content: "🔥"; }
.theme-cozy-fireplace-chalet .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: teaSteamRise 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fed7aa);
}
.theme-cozy-fireplace-chalet .fx-item-2::before { content: "☕"; }
.theme-cozy-fireplace-chalet .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.3rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #fef3c7);
}
.theme-cozy-fireplace-chalet .fx-item-3::before { content: "❄️"; }

@keyframes hearthEmberGlow {
  0%, 100% { filter: drop-shadow(0 0 12px #f97316); }
  50% { filter: drop-shadow(0 0 20px #ef4444); }
}

.theme-love-lock-pont-des-arts .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: lovePadlockSwing 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #eab308);
}
.theme-love-lock-pont-des-arts .fx-item-1::before { content: "🔒"; }
.theme-love-lock-pont-des-arts .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: goldenKeyTwinkle 3s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #facc15);
}
.theme-love-lock-pont-des-arts .fx-item-2::before { content: "🗝️"; }
.theme-love-lock-pont-des-arts .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #38bdf8);
}
.theme-love-lock-pont-des-arts .fx-item-3::before { content: "🌊"; }

@keyframes lovePadlockSwing {
  0% { transform: rotate(-8deg); }
  100% { transform: rotate(8deg); }
}
@keyframes goldenKeyTwinkle {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.12) rotate(10deg); filter: drop-shadow(0 0 16px #fde047); }
}

.theme-sunda-silih-asih .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: sigerGlowPulse 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #eab308);
}
.theme-sunda-silih-asih .fx-item-1::before { content: "👑"; }
.theme-sunda-silih-asih .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: botanicalSway 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #86efac);
}
.theme-sunda-silih-asih .fx-item-2::before { content: "🌿"; }
.theme-sunda-silih-asih .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-sunda-silih-asih .fx-item-3::before { content: "🪷"; }

@keyframes sigerGlowPulse {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 12px #eab308); }
  100% { transform: translateY(-6px) scale(1.06); filter: drop-shadow(0 0 20px #fde047); }
}

.theme-toraja-tongkonan-gold .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: tongkonanRoofTilt 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #eab308);
}
.theme-toraja-tongkonan-gold .fx-item-1::before { content: "🏠"; }
.theme-toraja-tongkonan-gold .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.6rem;
  animation: tedongHornsGlow 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #dc2626);
}
.theme-toraja-tongkonan-gold .fx-item-2::before { content: "🐃"; }
.theme-toraja-tongkonan-gold .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.3rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-toraja-tongkonan-gold .fx-item-3::before { content: "✦"; }

@keyframes tongkonanRoofTilt {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-6px) rotate(3deg); }
}
@keyframes tedongHornsGlow {
  0%, 100% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); filter: drop-shadow(0 0 18px #f87171); }
}

.theme-palembang-aesan-gede .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: kembangGoyangTremor 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-palembang-aesan-gede .fx-item-1::before { content: "👑"; }
.theme-palembang-aesan-gede .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: botanicalSway 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #be123c);
}
.theme-palembang-aesan-gede .fx-item-2::before { content: "🧣"; }
.theme-palembang-aesan-gede .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-palembang-aesan-gede .fx-item-3::before { content: "✨"; }

@keyframes kembangGoyangTremor {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-4deg); }
  75% { transform: rotate(4deg); }
}

.theme-glasshouse-botanical-greenhouse .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: atriumGlassPulse 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #6ee7b7);
}
.theme-glasshouse-botanical-greenhouse .fx-item-1::before { content: "🏛️"; }
.theme-glasshouse-botanical-greenhouse .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: botanicalSway 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #10b981);
}
.theme-glasshouse-botanical-greenhouse .fx-item-2::before { content: "🌿"; }
.theme-glasshouse-botanical-greenhouse .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.3rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #a7f3d0);
}
.theme-glasshouse-botanical-greenhouse .fx-item-3::before { content: "💧"; }

@keyframes atriumGlassPulse {
  0% { transform: scale(1); filter: drop-shadow(0 0 10px #10b981); }
  100% { transform: scale(1.06); filter: drop-shadow(0 0 20px #6ee7b7); }
}

.theme-uluwatu-cliff-ocean-sunset .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: oceanBreakerSurge 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-uluwatu-cliff-ocean-sunset .fx-item-1::before { content: "🌊"; }
.theme-uluwatu-cliff-ocean-sunset .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.6rem;
  animation: sunsetRaySweep 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f97316);
}
.theme-uluwatu-cliff-ocean-sunset .fx-item-2::before { content: "🌅"; }
.theme-uluwatu-cliff-ocean-sunset .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fed7aa);
}
.theme-uluwatu-cliff-ocean-sunset .fx-item-3::before { content: "🌺"; }

@keyframes oceanBreakerSurge {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-7px) scale(1.08); filter: drop-shadow(0 0 20px #7dd3fc); }
}
@keyframes sunsetRaySweep {
  0%, 100% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); filter: drop-shadow(0 0 18px #fb923c); }
}

.theme-versailles-baroque-palace .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: jubileeTrophyGlow 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ca8a04);
}
.theme-versailles-baroque-palace .fx-item-1::before { content: "⚜️"; }
.theme-versailles-baroque-palace .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: candleFlameDance 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #fde047);
}
.theme-versailles-baroque-palace .fx-item-2::before { content: "🕯️"; }
.theme-versailles-baroque-palace .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fefce8);
}
.theme-versailles-baroque-palace .fx-item-3::before { content: "🪞"; }

@keyframes baroqueGildedShine {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 12px #ca8a04); }
  50% { transform: scale(1.08); filter: drop-shadow(0 0 20px #fef08a); }
}

.theme-boho-desert-pampas .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: pampasWaveSway 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #f59e0b);
}
.theme-boho-desert-pampas .fx-item-1::before { content: "🌾"; }
.theme-boho-desert-pampas .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: desertSunHaloGlow 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #fb923c);
}
.theme-boho-desert-pampas .fx-item-2::before { content: "☀️"; }
.theme-boho-desert-pampas .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #fed7aa);
}
.theme-boho-desert-pampas .fx-item-3::before { content: "🧵"; }

@keyframes pampasWaveSway {
  0% { transform: rotate(-8deg); }
  100% { transform: rotate(8deg); }
}
@keyframes desertSunHaloGlow {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 10px #fb923c); }
  50% { transform: scale(1.1); filter: drop-shadow(0 0 18px #f59e0b); }
}

.theme-garden-pergola-white-rose .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: rosePetalCascade 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #5eead4);
}
.theme-garden-pergola-white-rose .fx-item-1::before { content: "🌹"; }
.theme-garden-pergola-white-rose .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: botanicalSway 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #0d9488);
}
.theme-garden-pergola-white-rose .fx-item-2::before { content: "🌿"; }
.theme-garden-pergola-white-rose .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: silverDoveGlide 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 8px #f8fafc);
}
.theme-garden-pergola-white-rose .fx-item-3::before { content: "🕊️"; }

@keyframes whiteRosePetalFloat {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-7px) rotate(10deg); }
}

.theme-farmasi-apoteker-mortar .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: mortarCrushPulse 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #6ee7b7);
}
.theme-farmasi-apoteker-mortar .fx-item-1::before { content: "🥣"; }
.theme-farmasi-apoteker-mortar .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.6rem;
  animation: hygeiaSerpentGlow 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #059669);
}
.theme-farmasi-apoteker-mortar .fx-item-2::before { content: "⚕️"; }
.theme-farmasi-apoteker-mortar .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #a7f3d0);
}
.theme-farmasi-apoteker-mortar .fx-item-3::before { content: "🌿"; }

@keyframes mortarCrushPulse {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.08) rotate(-4deg); }
}
@keyframes hygeiaSerpentGlow {
  0% { filter: drop-shadow(0 0 10px #059669); }
  100% { filter: drop-shadow(0 0 18px #6ee7b7); }
}

.theme-akpol-akmil-perwira-pedang .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: crossedSwordsSalute 4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #eab308);
}
.theme-akpol-akmil-perwira-pedang .fx-item-1::before { content: "⚔️"; }
.theme-akpol-akmil-perwira-pedang .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: officerStarGleam 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-akpol-akmil-perwira-pedang .fx-item-2::before { content: "⭐"; }
.theme-akpol-akmil-perwira-pedang .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #38bdf8);
}
.theme-akpol-akmil-perwira-pedang .fx-item-3::before { content: "🎖️"; }

@keyframes crossedSwordsSalute {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(10deg); filter: drop-shadow(0 0 20px #fde047); }
}
@keyframes officerStarGleam {
  0% { transform: scale(1); filter: drop-shadow(0 0 8px #facc15); }
  100% { transform: scale(1.15); filter: drop-shadow(0 0 16px #fde047); }
}

.theme-seni-desain-kreatif-portfolio .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: artPaletteSwirl 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #e11d48);
}
.theme-seni-desain-kreatif-portfolio .fx-item-1::before { content: "🎨"; }
.theme-seni-desain-kreatif-portfolio .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: paintbrushFlow 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #06b6d4);
}
.theme-seni-desain-kreatif-portfolio .fx-item-2::before { content: "🖌️"; }
.theme-seni-desain-kreatif-portfolio .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fecdd3);
}
.theme-seni-desain-kreatif-portfolio .fx-item-3::before { content: "📐"; }

@keyframes artPaletteSwirl {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.08); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes paintbrushFlow {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-7px) rotate(12deg); }
}

.theme-psikologi-klinis-humaniora .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: psycheButterflyFlutter 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #6366f1);
}
.theme-psikologi-klinis-humaniora .fx-item-1::before { content: "🦋"; }
.theme-psikologi-klinis-humaniora .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: neuralSynapseSpark 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #14b8a6);
}
.theme-psikologi-klinis-humaniora .fx-item-2::before { content: "🧠"; }
.theme-psikologi-klinis-humaniora .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #c7d2fe);
}
.theme-psikologi-klinis-humaniora .fx-item-3::before { content: "🤍"; }

@keyframes psycheButterflyFlutter {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-8px) rotate(8deg); }
}
@keyframes neuralSynapseSpark {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50% { transform: scale(1.1); opacity: 1; filter: drop-shadow(0 0 16px #2dd4bf); }
}

.theme-it-ai-computer-science .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: terminalMatrixPulse 3s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #06b6d4);
}
.theme-it-ai-computer-science .fx-item-1::before { content: "💻"; }
.theme-it-ai-computer-science .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: lightningFlicker 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #8b5cf6);
}
.theme-it-ai-computer-science .fx-item-2::before { content: "⚡"; }
.theme-it-ai-computer-science .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #67e8f9);
}
.theme-it-ai-computer-science .fx-item-3::before { content: "🤖"; }

@keyframes terminalMatrixPulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 10px #06b6d4); }
  50% { transform: scale(1.08); filter: drop-shadow(0 0 20px #22d3ee); }
}

.theme-pilot-wing-aviation .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: jetBankingClimb 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-pilot-wing-aviation .fx-item-1::before { content: "✈️"; }
.theme-pilot-wing-aviation .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: compassRotateSlow 6s linear infinite;
  filter: drop-shadow(0 0 12px #eab308);
}
.theme-pilot-wing-aviation .fx-item-2::before { content: "🧭"; }
.theme-pilot-wing-aviation .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-pilot-wing-aviation .fx-item-3::before { content: "🦅"; }

@keyframes jetBankingClimb {
  0% { transform: translateY(0) rotate(10deg); }
  100% { transform: translateY(-8px) rotate(18deg); }
}
@keyframes compassRotateSlow {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.theme-arsitektur-lanskap-hijau .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: draftingCompassArc 4s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #86efac);
}
.theme-arsitektur-lanskap-hijau .fx-item-1::before { content: "📐"; }
.theme-arsitektur-lanskap-hijau .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.6rem;
  animation: botanicalSway 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #16a34a);
}
.theme-arsitektur-lanskap-hijau .fx-item-2::before { content: "🌳"; }
.theme-arsitektur-lanskap-hijau .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #bbf7d0);
}
.theme-arsitektur-lanskap-hijau .fx-item-3::before { content: "🏛️"; }

@keyframes draftingCompassArc {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(20deg); }
}

.theme-doktor-riset-promosi-phd .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: scrollUnfoldGleam 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ca8a04);
}
.theme-doktor-riset-promosi-phd .fx-item-1::before { content: "📜"; }
.theme-doktor-riset-promosi-phd .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: doctoralCapTilt 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #b91c1c);
}
.theme-doktor-riset-promosi-phd .fx-item-2::before { content: "🎓"; }
.theme-doktor-riset-promosi-phd .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-doktor-riset-promosi-phd .fx-item-3::before { content: "✒️"; }

@keyframes scrollUnfoldGleam {
  0% { transform: scale(1); filter: drop-shadow(0 0 10px #ca8a04); }
  100% { transform: scale(1.08); filter: drop-shadow(0 0 20px #fde047); }
}
@keyframes doctoralCapTilt {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-8deg); }
}

.theme-syukuran-rumah-skandinavia .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: nordicHomePulse 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #d97706);
}
.theme-syukuran-rumah-skandinavia .fx-item-1::before { content: "🏡"; }
.theme-syukuran-rumah-skandinavia .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: houseKeySwing 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #facc15);
}
.theme-syukuran-rumah-skandinavia .fx-item-2::before { content: "🔑"; }
.theme-syukuran-rumah-skandinavia .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: botanicalSway 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 8px #0d9488);
}
.theme-syukuran-rumah-skandinavia .fx-item-3::before { content: "🪴"; }

@keyframes nordicHomePulse {
  0% { transform: scale(1); filter: drop-shadow(0 0 10px #d97706); }
  100% { transform: scale(1.06); filter: drop-shadow(0 0 18px #fb923c); }
}
@keyframes houseKeySwing {
  0% { transform: rotate(-10deg); }
  100% { transform: rotate(10deg); }
}

.theme-ramadhan-iftar-berkah .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: crescentMoonTiltGlow 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-ramadhan-iftar-berkah .fx-item-1::before { content: "🌙"; }
.theme-ramadhan-iftar-berkah .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: fanousLanternSway 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #eab308);
}
.theme-ramadhan-iftar-berkah .fx-item-2::before { content: "🏮"; }
.theme-ramadhan-iftar-berkah .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #6ee7b7);
}
.theme-ramadhan-iftar-berkah .fx-item-3::before { content: "🕌"; }

@keyframes crescentMoonTiltGlow {
  0% { transform: translateY(0) rotate(-6deg); filter: drop-shadow(0 0 12px #f59e0b); }
  100% { transform: translateY(-7px) rotate(6deg); filter: drop-shadow(0 0 22px #fde047); }
}
@keyframes fanousLanternSway {
  0% { transform: rotate(-8deg); }
  100% { transform: rotate(8deg); }
}

.theme-waisak-borobudur-lantern .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: skyLanternAscension 5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #eab308);
}
.theme-waisak-borobudur-lantern .fx-item-1::before { content: "🏮"; }
.theme-waisak-borobudur-lantern .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: sacredLotusBloom 4s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #818cf8);
}
.theme-waisak-borobudur-lantern .fx-item-2::before { content: "🪷"; }
.theme-waisak-borobudur-lantern .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fde047);
}
.theme-waisak-borobudur-lantern .fx-item-3::before { content: "☸️"; }

@keyframes skyLanternAscension {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #eab308); }
  100% { transform: translateY(-12px) scale(1.08); filter: drop-shadow(0 0 22px #fde047); }
}
@keyframes sacredLotusBloom {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

.theme-pesta-panen-kopi-nusantara .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: teaSteamRise 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #fed7aa);
}
.theme-pesta-panen-kopi-nusantara .fx-item-1::before { content: "☕"; }
.theme-pesta-panen-kopi-nusantara .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: coffeeCherryBounce 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #b45309);
}
.theme-pesta-panen-kopi-nusantara .fx-item-2::before { content: "🌰"; }
.theme-pesta-panen-kopi-nusantara .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #fef08a);
}
.theme-pesta-panen-kopi-nusantara .fx-item-3::before { content: "♨️"; }

@keyframes coffeeCherryBounce {
  0% { transform: translateY(0); }
  100% { transform: translateY(-7px) rotate(8deg); }
}

.theme-pagelaran-wayang-kulit .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: gununganWayangSway 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-pagelaran-wayang-kulit .fx-item-1::before { content: "🎭"; }
.theme-pagelaran-wayang-kulit .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: gamelanGongResonance 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #b45309);
}
.theme-pagelaran-wayang-kulit .fx-item-2::before { content: "🪘"; }
.theme-pagelaran-wayang-kulit .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: candleFlameDance 2.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #fde047);
}
.theme-pagelaran-wayang-kulit .fx-item-3::before { content: "🕯️"; }

@keyframes gununganWayangSway {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}
@keyframes gamelanGongResonance {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); filter: drop-shadow(0 0 18px #fde047); }
}

.theme-donor-darah-kemanusiaan .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: heartPulseShine 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #dc2626);
}
.theme-donor-darah-kemanusiaan .fx-item-1::before { content: "❤️"; }
.theme-donor-darah-kemanusiaan .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: bloodDropDescend 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f87171);
}
.theme-donor-darah-kemanusiaan .fx-item-2::before { content: "🩸"; }
.theme-donor-darah-kemanusiaan .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 8px #38bdf8);
}
.theme-donor-darah-kemanusiaan .fx-item-3::before { content: "🩺"; }

@keyframes bloodDropDescend {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(6px) scale(1.08); }
  100% { transform: translateY(0) scale(1); }
}

.theme-peresmian-bistro-kuliner .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: silverClocheReveal 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #eab308);
}
.theme-peresmian-bistro-kuliner .fx-item-1::before { content: "🍽️"; }
.theme-peresmian-bistro-kuliner .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: wineGobletTilt 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #5eead4);
}
.theme-peresmian-bistro-kuliner .fx-item-2::before { content: "🍷"; }
.theme-peresmian-bistro-kuliner .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #99f6e4);
}
.theme-peresmian-bistro-kuliner .fx-item-3::before { content: "🌿"; }

@keyframes silverClocheReveal {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); filter: drop-shadow(0 0 18px #fde047); }
}
@keyframes wineGobletTilt {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}

.theme-konser-akustik-indie-senja .fx-item-1 {
  display: block;
  top: 14px;
  right: 24px;
  font-size: 1.7rem;
  animation: guitarStrumPulse 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ea580c);
}
.theme-konser-akustik-indie-senja .fx-item-1::before { content: "🎸"; }
.theme-konser-akustik-indie-senja .fx-item-2 {
  display: block;
  bottom: 22px;
  left: 22px;
  font-size: 1.5rem;
  animation: funkMusicNotePop 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #ec4899);
}
.theme-konser-akustik-indie-senja .fx-item-2::before { content: "🎶"; }
.theme-konser-akustik-indie-senja .fx-item-3 {
  display: block;
  top: 16px;
  left: 24px;
  font-size: 1.4rem;
  animation: sparkleTwinkle 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fed7aa);
}
.theme-konser-akustik-indie-senja .fx-item-3::before { content: "🌇"; }

@keyframes guitarStrumPulse {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(-6deg); filter: drop-shadow(0 0 20px #fb923c); }
  100% { transform: translateY(0) rotate(0deg); }
}


/* --- Templates 119-168: 50 New Celebration FX Animations --- */
.theme-cyber-hologram-party .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: cyberGlitchFlash 2.5s steps(2, start) infinite;
  filter: drop-shadow(0 0 14px #06b6d4);
}
.theme-cyber-hologram-party .fx-item-1::before { content: "⚡"; }
.theme-cyber-hologram-party .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: orbHoloRotate 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #a855f7);
}
.theme-cyber-hologram-party .fx-item-2::before { content: "🔮"; }
.theme-cyber-hologram-party .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: discLaserSpin 3s linear infinite;
  filter: drop-shadow(0 0 10px #f43f5e);
}
.theme-cyber-hologram-party .fx-item-3::before { content: "💿"; }

.theme-safari-jungle-carnival .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: lionRoarShake 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-safari-jungle-carnival .fx-item-1::before { content: "🦁"; }
.theme-safari-jungle-carnival .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: palmTreeSway 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #34d399);
}
.theme-safari-jungle-carnival .fx-item-2::before { content: "🌴"; }
.theme-safari-jungle-carnival .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: pawStepPulse 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fbbf24);
}
.theme-safari-jungle-carnival .fx-item-3::before { content: "🐾"; }

.theme-magic-wizard-academy .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: wandSparkMagic 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #fbbf24);
}
.theme-magic-wizard-academy .fx-item-1::before { content: "🪄"; }
.theme-magic-wizard-academy .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: magicDustWhirl 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #a78bfa);
}
.theme-magic-wizard-academy .fx-item-2::before { content: "✨"; }
.theme-magic-wizard-academy .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.6rem;
  animation: owlFlapHover 3.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #e0e7ff);
}
.theme-magic-wizard-academy .fx-item-3::before { content: "🦉"; }

.theme-candy-wonderland-pop .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: candySpinPop 3s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f472b6);
}
.theme-candy-wonderland-pop .fx-item-1::before { content: "🍭"; }
.theme-candy-wonderland-pop .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: candyBounceZoom 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-candy-wonderland-pop .fx-item-2::before { content: "🍬"; }
.theme-candy-wonderland-pop .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.6rem;
  animation: cupcakeJiggle 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #facc15);
}
.theme-candy-wonderland-pop .fx-item-3::before { content: "🧁"; }

.theme-pirate-treasure-island .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: pirateFlagWave 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-pirate-treasure-island .fx-item-1::before { content: "🏴‍☠️"; }
.theme-pirate-treasure-island .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: goldCoinSpinGlint 2.7s linear infinite;
  filter: drop-shadow(0 0 12px #eab308);
}
.theme-pirate-treasure-island .fx-item-2::before { content: "🪙"; }
.theme-pirate-treasure-island .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.6rem;
  animation: parrotWingFlap 3.3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #ef4444);
}
.theme-pirate-treasure-island .fx-item-3::before { content: "🦜"; }

.theme-supercar-speed-grand-prix .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: supercarSpeedDash 2.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ef4444);
}
.theme-supercar-speed-grand-prix .fx-item-1::before { content: "🏎️"; }
.theme-supercar-speed-grand-prix .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: checkeredFlagWave 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #ffffff);
}
.theme-supercar-speed-grand-prix .fx-item-2::before { content: "🏁"; }
.theme-supercar-speed-grand-prix .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: nitroFlameBurst 2.2s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #facc15);
}
.theme-supercar-speed-grand-prix .fx-item-3::before { content: "🔥"; }

.theme-space-alien-ufo-odyssey .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: ufoHoverFloat 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #84cc16);
}
.theme-space-alien-ufo-odyssey .fx-item-1::before { content: "🛸"; }
.theme-space-alien-ufo-odyssey .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: alienHeadBob 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #a855f7);
}
.theme-space-alien-ufo-odyssey .fx-item-2::before { content: "👽"; }
.theme-space-alien-ufo-odyssey .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: meteorShootDiagonal 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #38bdf8);
}
.theme-space-alien-ufo-odyssey .fx-item-3::before { content: "🌠"; }

.theme-mermaid-underwater-coral .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: mermaidTailSplash 3.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #2dd4bf);
}
.theme-mermaid-underwater-coral .fx-item-1::before { content: "🧜‍♀️"; }
.theme-mermaid-underwater-coral .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: coralGentleSway 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #f472b6);
}
.theme-mermaid-underwater-coral .fx-item-2::before { content: "🪸"; }
.theme-mermaid-underwater-coral .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: seaBubbleAscendBurst 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #99f6e4);
}
.theme-mermaid-underwater-coral .fx-item-3::before { content: "🫧"; }

.theme-super-chef-cooking-gala .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: chefHatWiggle 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ffffff);
}
.theme-super-chef-cooking-gala .fx-item-1::before { content: "👨‍🍳"; }
.theme-super-chef-cooking-gala .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: pizzaTossSpin 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f97316);
}
.theme-super-chef-cooking-gala .fx-item-2::before { content: "🍕"; }
.theme-super-chef-cooking-gala .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: cakeCandleGleam 2.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #facc15);
}
.theme-super-chef-cooking-gala .fx-item-3::before { content: "🎂"; }

.theme-golden-balloon-fiesta .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: balloonFloatSwayRich 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #eab308);
}
.theme-golden-balloon-fiesta .fx-item-1::before { content: "🎈"; }
.theme-golden-balloon-fiesta .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: confettiBurstRotate 2.7s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f43f5e);
}
.theme-golden-balloon-fiesta .fx-item-2::before { content: "🎊"; }
.theme-golden-balloon-fiesta .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: starGleamTwinklePop 2.3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-golden-balloon-fiesta .fx-item-3::before { content: "✨"; }

.theme-aurora-boreal-nordic-love .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: auroraWaveSweepLoop 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #34d399);
}
.theme-aurora-boreal-nordic-love .fx-item-1::before { content: "🌌"; }
.theme-aurora-boreal-nordic-love .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: frostFlakeSpinDrop 3.5s linear infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-aurora-boreal-nordic-love .fx-item-2::before { content: "❄️"; }
.theme-aurora-boreal-nordic-love .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: greenHeartPulseGlow 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #10b981);
}
.theme-aurora-boreal-nordic-love .fx-item-3::before { content: "💚"; }

.theme-venice-gondola-serenade .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: gondolaWaterRockSlow 3.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-venice-gondola-serenade .fx-item-1::before { content: "🛶"; }
.theme-venice-gondola-serenade .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: lanternGlowSwing 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #f59e0b);
}
.theme-venice-gondola-serenade .fx-item-2::before { content: "🏮"; }
.theme-venice-gondola-serenade .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: redRosePetalFloat 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #f43f5e);
}
.theme-venice-gondola-serenade .fx-item-3::before { content: "🌹"; }

.theme-autumn-maple-whisper .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: mapleLeafSpiralFall 3.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #ea580c);
}
.theme-autumn-maple-whisper .fx-item-1::before { content: "🍁"; }
.theme-autumn-maple-whisper .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: dryLeafDriftGently 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #f59e0b);
}
.theme-autumn-maple-whisper .fx-item-2::before { content: "🍂"; }
.theme-autumn-maple-whisper .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: coffeeSteamWarmthRise 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fed7aa);
}
.theme-autumn-maple-whisper .fx-item-3::before { content: "☕"; }

.theme-diamond-forever-jubilee .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: diamondFacetShimmerPulse 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-diamond-forever-jubilee .fx-item-1::before { content: "💎"; }
.theme-diamond-forever-jubilee .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: ringOrbitGleam 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-diamond-forever-jubilee .fx-item-2::before { content: "💍"; }
.theme-diamond-forever-jubilee .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: starGleamTwinklePop 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #e0f2fe);
}
.theme-diamond-forever-jubilee .fx-item-3::before { content: "✨"; }

.theme-santorini-sunset-bliss .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: domeGlowSunlight 3.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-santorini-sunset-bliss .fx-item-1::before { content: "🏛️"; }
.theme-santorini-sunset-bliss .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: sunsetHorizonPulse 3.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #f97316);
}
.theme-santorini-sunset-bliss .fx-item-2::before { content: "🌅"; }
.theme-santorini-sunset-bliss .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: doveFlyGentleBreeze 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #ffffff);
}
.theme-santorini-sunset-bliss .fx-item-3::before { content: "🕊️"; }

.theme-moonlight-lake-swan .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: swanGlidePairRipple 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #e0e7ff);
}
.theme-moonlight-lake-swan .fx-item-1::before { content: "🦢"; }
.theme-moonlight-lake-swan .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: lotusBloomPulse 3.1s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #f472b6);
}
.theme-moonlight-lake-swan .fx-item-2::before { content: "🪷"; }
.theme-moonlight-lake-swan .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: moonCrescentGleam 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-moonlight-lake-swan .fx-item-3::before { content: "🌙"; }

.theme-tuscany-vineyard-romance .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: grapeClusterSway 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #be123c);
}
.theme-tuscany-vineyard-romance .fx-item-1::before { content: "🍇"; }
.theme-tuscany-vineyard-romance .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: wineGlassClinkTilt 2.9s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #e11d48);
}
.theme-tuscany-vineyard-romance .fx-item-2::before { content: "🍷"; }
.theme-tuscany-vineyard-romance .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: oliveBranchWhisper 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #a3e635);
}
.theme-tuscany-vineyard-romance .fx-item-3::before { content: "🌿"; }

.theme-stargazing-celestial-dome .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: telescopeAimNightSky 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #818cf8);
}
.theme-stargazing-celestial-dome .fx-item-1::before { content: "🔭"; }
.theme-stargazing-celestial-dome .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: saturnRingSpinSlow 4.5s linear infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-stargazing-celestial-dome .fx-item-2::before { content: "🪐"; }
.theme-stargazing-celestial-dome .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: shootingStarStreakGleam 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fbbf24);
}
.theme-stargazing-celestial-dome .fx-item-3::before { content: "💫"; }

.theme-ruby-40th-anniversary .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: flameHeartPulsar 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #e11d48);
}
.theme-ruby-40th-anniversary .fx-item-1::before { content: "❤️‍🔥"; }
.theme-ruby-40th-anniversary .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: goldenCrownHover 3.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-ruby-40th-anniversary .fx-item-2::before { content: "👑"; }
.theme-ruby-40th-anniversary .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: starGleamTwinklePop 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fecdd3);
}
.theme-ruby-40th-anniversary .fx-item-3::before { content: "✨"; }

.theme-casablanca-mon-amour .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: pianoKeyWaveMelody 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-casablanca-mon-amour .fx-item-1::before { content: "🎹"; }
.theme-casablanca-mon-amour .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: palmShadowSwaySlow 3.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #d97706);
}
.theme-casablanca-mon-amour .fx-item-2::before { content: "🌴"; }
.theme-casablanca-mon-amour .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: champagneFluteToastClink 2.7s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fde68a);
}
.theme-casablanca-mon-amour .fx-item-3::before { content: "🥂"; }

.theme-aceh-pinto-khop-mahkota .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: acehCrownShine 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-aceh-pinto-khop-mahkota .fx-item-1::before { content: "👑"; }
.theme-aceh-pinto-khop-mahkota .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: mosqueDomeGleam 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #fef08a);
}
.theme-aceh-pinto-khop-mahkota .fx-item-2::before { content: "🕌"; }
.theme-aceh-pinto-khop-mahkota .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: starGleamTwinklePop 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #e11d48);
}
.theme-aceh-pinto-khop-mahkota .fx-item-3::before { content: "✨"; }

.theme-banjar-baamar-alas .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: jasmineGarlandSway 3.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #fefce8);
}
.theme-banjar-baamar-alas .fx-item-1::before { content: "🪷"; }
.theme-banjar-baamar-alas .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: tropicalFlowerSpin 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f43f5e);
}
.theme-banjar-baamar-alas .fx-item-2::before { content: "🌺"; }
.theme-banjar-baamar-alas .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: banjarGoldKepingGleam 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #facc15);
}
.theme-banjar-baamar-alas .fx-item-3::before { content: "🪙"; }

.theme-lampung-siger-agung .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: sigerCrownNinePointsGleam 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #fde047);
}
.theme-lampung-siger-agung .fx-item-1::before { content: "👑"; }
.theme-lampung-siger-agung .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: starGleamTwinklePop 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #ffffff);
}
.theme-lampung-siger-agung .fx-item-2::before { content: "✨"; }
.theme-lampung-siger-agung .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: lampungLanternGlow 3.1s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #f97316);
}
.theme-lampung-siger-agung .fx-item-3::before { content: "🏮"; }

.theme-papua-cendrawasih-harmony .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: cendrawasihFeatherFloat 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #fbbf24);
}
.theme-papua-cendrawasih-harmony .fx-item-1::before { content: "🪶"; }
.theme-papua-cendrawasih-harmony .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: tifaDrumBeatVibe 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #d97706);
}
.theme-papua-cendrawasih-harmony .fx-item-2::before { content: "🪵"; }
.theme-papua-cendrawasih-harmony .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: forestFernWiggle 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #22c55e);
}
.theme-papua-cendrawasih-harmony .fx-item-3::before { content: "🌿"; }

.theme-cinderella-glass-carriage .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: glassSlipperMirrorShine 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #93c5fd);
}
.theme-cinderella-glass-carriage .fx-item-1::before { content: "🪞"; }
.theme-cinderella-glass-carriage .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: tiaraSparkleZoom 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #fef08a);
}
.theme-cinderella-glass-carriage .fx-item-2::before { content: "👑"; }
.theme-cinderella-glass-carriage .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: fairyDoveFlyGraceful 3.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #ffffff);
}
.theme-cinderella-glass-carriage .fx-item-3::before { content: "🕊️"; }

.theme-gothic-victorian-glamour .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: gothicCandleFlameFlicker 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-gothic-victorian-glamour .fx-item-1::before { content: "🕯️"; }
.theme-gothic-victorian-glamour .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: darkRosePetalDrop 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #9f1239);
}
.theme-gothic-victorian-glamour .fx-item-2::before { content: "🌹"; }
.theme-gothic-victorian-glamour .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: vintageKeyFloatTurn 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #cbd5e1);
}
.theme-gothic-victorian-glamour .fx-item-3::before { content: "🗝️"; }

.theme-moroccan-tent-oasis .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: moroccanTentBreezeFlap 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ea580c);
}
.theme-moroccan-tent-oasis .fx-item-1::before { content: "⛺"; }
.theme-moroccan-tent-oasis .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: brassLampSmokeCurl 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-moroccan-tent-oasis .fx-item-2::before { content: "🪔"; }
.theme-moroccan-tent-oasis .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: oasisPalmLeafSway 3.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #06b6d4);
}
.theme-moroccan-tent-oasis .fx-item-3::before { content: "🌴"; }

.theme-zen-shinto-bamboo-wedding .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: toriiGateShimmerRed 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ef4444);
}
.theme-zen-shinto-bamboo-wedding .fx-item-1::before { content: "⛩️"; }
.theme-zen-shinto-bamboo-wedding .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: bambooStemsSwayBreeze 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #86efac);
}
.theme-zen-shinto-bamboo-wedding .fx-item-2::before { content: "🎋"; }
.theme-zen-shinto-bamboo-wedding .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: matchaTeaSteamRise 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-zen-shinto-bamboo-wedding .fx-item-3::before { content: "🍵"; }

.theme-bohemian-macrame-sunset .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: macrameKnotSwingSlow 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-bohemian-macrame-sunset .fx-item-1::before { content: "🪢"; }
.theme-bohemian-macrame-sunset .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: pampasGrassBreezeWave 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #fed7aa);
}
.theme-bohemian-macrame-sunset .fx-item-2::before { content: "🌾"; }
.theme-bohemian-macrame-sunset .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: terracottaHeartGlow 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #ea580c);
}
.theme-bohemian-macrame-sunset .fx-item-3::before { content: "🧡"; }

.theme-celestial-galaxy-nuptials .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: planetOrbitVowTilt 4.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #a78bfa);
}
.theme-celestial-galaxy-nuptials .fx-item-1::before { content: "🪐"; }
.theme-celestial-galaxy-nuptials .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: cometTailSweepArc 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-celestial-galaxy-nuptials .fx-item-2::before { content: "💫"; }
.theme-celestial-galaxy-nuptials .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: starGleamTwinklePop 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-celestial-galaxy-nuptials .fx-item-3::before { content: "✨"; }

.theme-maritime-kapten-pelayaran .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: anchorDropSway 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-maritime-kapten-pelayaran .fx-item-1::before { content: "⚓"; }
.theme-maritime-kapten-pelayaran .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: compassRoseSpinDial 4s linear infinite;
  filter: drop-shadow(0 0 12px #fbbf24);
}
.theme-maritime-kapten-pelayaran .fx-item-2::before { content: "🧭"; }
.theme-maritime-kapten-pelayaran .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: vesselSailingForward 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #bae6fd);
}
.theme-maritime-kapten-pelayaran .fx-item-3::before { content: "🚢"; }

.theme-culinary-arts-mastery .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: panFlambeFireSizzle 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-culinary-arts-mastery .fx-item-1::before { content: "🍳"; }
.theme-culinary-arts-mastery .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: chefKnifeGlintFlash 2.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #ffffff);
}
.theme-culinary-arts-mastery .fx-item-2::before { content: "🔪"; }
.theme-culinary-arts-mastery .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: pastryPuffHover 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #facc15);
}
.theme-culinary-arts-mastery .fx-item-3::before { content: "🥐"; }

.theme-veterinary-animal-healer .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: petPawTrackWalk 3s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #4ade80);
}
.theme-veterinary-animal-healer .fx-item-1::before { content: "🐾"; }
.theme-veterinary-animal-healer .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: stethoscopeHeartbeatPulse 2.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-veterinary-animal-healer .fx-item-2::before { content: "🩺"; }
.theme-veterinary-animal-healer .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.6rem;
  animation: dogWagTailHappy 3.3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #fbbf24);
}
.theme-veterinary-animal-healer .fx-item-3::before { content: "🐕"; }

.theme-music-conservatory-maestro .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: violinBowVibrateMelody 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #fb923c);
}
.theme-music-conservatory-maestro .fx-item-1::before { content: "🎻"; }
.theme-music-conservatory-maestro .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: musicNotesDanceStaff 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-music-conservatory-maestro .fx-item-2::before { content: "🎼"; }
.theme-music-conservatory-maestro .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: trumpetSoundBlast 3.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #fed7aa);
}
.theme-music-conservatory-maestro .fx-item-3::before { content: "🎺"; }

.theme-aerospace-rocket-engineer .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: rocketLaunchStreakFast 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f97316);
}
.theme-aerospace-rocket-engineer .fx-item-1::before { content: "🚀"; }
.theme-aerospace-rocket-engineer .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: satelliteOrbitBeamPulse 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-aerospace-rocket-engineer .fx-item-2::before { content: "🛰️"; }
.theme-aerospace-rocket-engineer .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: gearTurbineRotateSmooth 4s linear infinite;
  filter: drop-shadow(0 0 10px #e2e8f0);
}
.theme-aerospace-rocket-engineer .fx-item-3::before { content: "⚙️"; }

.theme-fine-arts-sculptor-studio .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: sculptureStoneChiselGlint 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #e2e8f0);
}
.theme-fine-arts-sculptor-studio .fx-item-1::before { content: "🗿"; }
.theme-fine-arts-sculptor-studio .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: artistPaletteColorSplash 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #fb7185);
}
.theme-fine-arts-sculptor-studio .fx-item-2::before { content: "🎨"; }
.theme-fine-arts-sculptor-studio .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: paintBrushStrokeArc 3s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #38bdf8);
}
.theme-fine-arts-sculptor-studio .fx-item-3::before { content: "🖌️"; }

.theme-diplomatic-international-relations .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: oliveDoveFlyPeace 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #ffffff);
}
.theme-diplomatic-international-relations .fx-item-1::before { content: "🕊️"; }
.theme-diplomatic-international-relations .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: globeRotateGridGlow 4.5s linear infinite;
  filter: drop-shadow(0 0 12px #60a5fa);
}
.theme-diplomatic-international-relations .fx-item-2::before { content: "🌐"; }
.theme-diplomatic-international-relations .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: treatyScrollUnfurl 3.1s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #facc15);
}
.theme-diplomatic-international-relations .fx-item-3::before { content: "📜"; }

.theme-cyber-security-hacker-defense .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: cyberShieldPulseDefense 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #22c55e);
}
.theme-cyber-security-hacker-defense .fx-item-1::before { content: "🛡️"; }
.theme-cyber-security-hacker-defense .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: laptopMatrixTerminalGlow 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #4ade80);
}
.theme-cyber-security-hacker-defense .fx-item-2::before { content: "💻"; }
.theme-cyber-security-hacker-defense .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: keyLockEncryptRotate 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #38bdf8);
}
.theme-cyber-security-hacker-defense .fx-item-3::before { content: "🔐"; }

.theme-environmental-green-forestry .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: saplingSproutGrowGently 3.3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #86efac);
}
.theme-environmental-green-forestry .fx-item-1::before { content: "🌱"; }
.theme-environmental-green-forestry .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: pineTreeWindBreeze 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #15803d);
}
.theme-environmental-green-forestry .fx-item-2::before { content: "🌲"; }
.theme-environmental-green-forestry .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: forestButterflyFlutterLoop 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fbbf24);
}
.theme-environmental-green-forestry .fx-item-3::before { content: "🦋"; }

.theme-astronomy-astrophysics-phd .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: giantTelescopeRotateStars 3.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #c084fc);
}
.theme-astronomy-astrophysics-phd .fx-item-1::before { content: "🔭"; }
.theme-astronomy-astrophysics-phd .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: andromedaGalaxySpiralSpin 5s linear infinite;
  filter: drop-shadow(0 0 12px #818cf8);
}
.theme-astronomy-astrophysics-phd .fx-item-2::before { content: "🌌"; }
.theme-astronomy-astrophysics-phd .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: cosmicCometBlazeDash 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fde047);
}
.theme-astronomy-astrophysics-phd .fx-item-3::before { content: "☄️"; }

.theme-festival-lampion-terbang .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: skyLanternAscendGently 3.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-festival-lampion-terbang .fx-item-1::before { content: "🏮"; }
.theme-festival-lampion-terbang .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: starGleamTwinklePop 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #fef08a);
}
.theme-festival-lampion-terbang .fx-item-2::before { content: "✨"; }
.theme-festival-lampion-terbang .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: brassOilLampGlow 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #f97316);
}
.theme-festival-lampion-terbang .fx-item-3::before { content: "🪔"; }

.theme-tahfidz-quran-khataman .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: holyQuranGlowPageTurn 3.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-tahfidz-quran-khataman .fx-item-1::before { content: "📖"; }
.theme-tahfidz-quran-khataman .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: minaretDomeCrescentFloat 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #10b981);
}
.theme-tahfidz-quran-khataman .fx-item-2::before { content: "🕌"; }
.theme-tahfidz-quran-khataman .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: blessingSparkleShower 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fef08a);
}
.theme-tahfidz-quran-khataman .fx-item-3::before { content: "✨"; }

.theme-housewarming-villa-tropis .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: homeChimneyWarmPulse 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #2dd4bf);
}
.theme-housewarming-villa-tropis .fx-item-1::before { content: "🏡"; }
.theme-housewarming-villa-tropis .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: palmFrondBreezeRelax 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #34d399);
}
.theme-housewarming-villa-tropis .fx-item-2::before { content: "🌴"; }
.theme-housewarming-villa-tropis .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: goldenKeyJingleShine 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #f59e0b);
}
.theme-housewarming-villa-tropis .fx-item-3::before { content: "🔑"; }

.theme-pesta-barbeque-pantai .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: bonfireFlameDanceHigh 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #ea580c);
}
.theme-pesta-barbeque-pantai .fx-item-1::before { content: "🔥"; }
.theme-pesta-barbeque-pantai .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: bbqSkewerSizzleRotate 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #f97316);
}
.theme-pesta-barbeque-pantai .fx-item-2::before { content: "🍢"; }
.theme-pesta-barbeque-pantai .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: guitarStrumPulse 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #38bdf8);
}
.theme-pesta-barbeque-pantai .fx-item-3::before { content: "🎸"; }

.theme-carnival-rio-samba .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: sambaBongoDrumThump 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-carnival-rio-samba .fx-item-1::before { content: "🪘"; }
.theme-carnival-rio-samba .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: carnivalFeatherShakeBounce 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #f43f5e);
}
.theme-carnival-rio-samba .fx-item-2::before { content: "🪶"; }
.theme-carnival-rio-samba .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: partyPopperExplodeBurst 2.7s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #38bdf8);
}
.theme-carnival-rio-samba .fx-item-3::before { content: "🎉"; }

.theme-pesta-taman-vintage-tea .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: porcelainTeapotPourTilt 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #f472b6);
}
.theme-pesta-taman-vintage-tea .fx-item-1::before { content: "🫖"; }
.theme-pesta-taman-vintage-tea .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: cupcakeJiggle 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #fde047);
}
.theme-pesta-taman-vintage-tea .fx-item-2::before { content: "🧁"; }
.theme-pesta-taman-vintage-tea .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: cherryPetalSwirlDance 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #86efac);
}
.theme-pesta-taman-vintage-tea .fx-item-3::before { content: "🌸"; }

.theme-inagurasi-ceo-korporat .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: trophyGoldenGlintRise 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-inagurasi-ceo-korporat .fx-item-1::before { content: "🏆"; }
.theme-inagurasi-ceo-korporat .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: corporateBadgeHover 2.9s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-inagurasi-ceo-korporat .fx-item-2::before { content: "👔"; }
.theme-inagurasi-ceo-korporat .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: champagneFluteToastClink 2.7s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #fb7185);
}
.theme-inagurasi-ceo-korporat .fx-item-3::before { content: "🥂"; }

.theme-festival-layang-layang-pantai .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: giantKiteGlideSkyDip 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-festival-layang-layang-pantai .fx-item-1::before { content: "🪁"; }
.theme-festival-layang-layang-pantai .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: sunnyCloudBreezeFloat 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #fde047);
}
.theme-festival-layang-layang-pantai .fx-item-2::before { content: "🌤️"; }
.theme-festival-layang-layang-pantai .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: oceanWaveRollCrest 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #06b6d4);
}
.theme-festival-layang-layang-pantai .fx-item-3::before { content: "🌊"; }

.theme-oktoberfest-bavarian-cheers .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.7rem;
  animation: pretzelSpinTumble 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-oktoberfest-bavarian-cheers .fx-item-1::before { content: "🥨"; }
.theme-oktoberfest-bavarian-cheers .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: beerSteinFoamBubbles 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #eab308);
}
.theme-oktoberfest-bavarian-cheers .fx-item-2::before { content: "🍺"; }
.theme-oktoberfest-bavarian-cheers .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.4rem;
  animation: accordionSqueezeBellows 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #60a5fa);
}
.theme-oktoberfest-bavarian-cheers .fx-item-3::before { content: "🪗"; }

.theme-festival-kembang-api-milenium .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: millenniumFireworkBurstEpic 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #e11d48);
}
.theme-festival-kembang-api-milenium .fx-item-1::before { content: "🎆"; }
.theme-festival-kembang-api-milenium .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: sparklerGoldenRainFall 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-festival-kembang-api-milenium .fx-item-2::before { content: "🎇"; }
.theme-festival-kembang-api-milenium .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: starGleamTwinklePop 2.3s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #38bdf8);
}
.theme-festival-kembang-api-milenium .fx-item-3::before { content: "✨"; }

/* --- Templates 169-218: 50 Additional Celebration FX Animations --- */
.theme-neon-roller-skating-rink .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: rollerSkatingSpinNeon 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f43f5e);
}
.theme-neon-roller-skating-rink .fx-item-1::before { content: "🛼"; }
.theme-neon-roller-skating-rink .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.7rem;
  animation: discoBallSpin 3s linear infinite;
  filter: drop-shadow(0 0 12px #22d3ee);
}
.theme-neon-roller-skating-rink .fx-item-2::before { content: "🪩"; }
.theme-neon-roller-skating-rink .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: cyberGlitchFlash 2s steps(2, start) infinite;
  filter: drop-shadow(0 0 10px #e11d48);
}
.theme-neon-roller-skating-rink .fx-item-3::before { content: "⚡"; }
.theme-dino-jurassic-safari-expedition .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.9rem;
  animation: dinoJurassicRoarBounce 2.2s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #22c55e);
}
.theme-dino-jurassic-safari-expedition .fx-item-1::before { content: "🦖"; }
.theme-dino-jurassic-safari-expedition .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: emberSparksRise 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #eab308);
}
.theme-dino-jurassic-safari-expedition .fx-item-2::before { content: "🌋"; }
.theme-dino-jurassic-safari-expedition .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.7rem;
  animation: safariBalloonFloat 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #16a34a);
}
.theme-dino-jurassic-safari-expedition .fx-item-3::before { content: "🦕"; }
.theme-magic-potion-alchemy-party .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: potionBubbleSteamRise 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #c084fc);
}
.theme-magic-potion-alchemy-party .fx-item-1::before { content: "🧪"; }
.theme-magic-potion-alchemy-party .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.7rem;
  animation: orbHoloRotate 3.6s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-magic-potion-alchemy-party .fx-item-2::before { content: "🔮"; }
.theme-magic-potion-alchemy-party .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.6rem;
  animation: wandSparkMagic 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #9333ea);
}
.theme-magic-potion-alchemy-party .fx-item-3::before { content: "🪄"; }
.theme-superhero-comic-city-defense .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: superheroComicZapBoom 2s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #ef4444);
}
.theme-superhero-comic-city-defense .fx-item-1::before { content: "🦸"; }
.theme-superhero-comic-city-defense .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.7rem;
  animation: comicBoomPop 1.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-superhero-comic-city-defense .fx-item-2::before { content: "💥"; }
.theme-superhero-comic-city-defense .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.6rem;
  animation: lightningFlicker 1.5s steps(2, start) infinite;
  filter: drop-shadow(0 0 10px #dc2626);
}
.theme-superhero-comic-city-defense .fx-item-3::before { content: "⚡"; }
.theme-kawaii-boba-pastel-tea .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: bobaPearlJumpBounce 2.3s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f472b6);
}
.theme-kawaii-boba-pastel-tea .fx-item-1::before { content: "🧋"; }
.theme-kawaii-boba-pastel-tea .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: cupcakeJiggle 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #fbbf24);
}
.theme-kawaii-boba-pastel-tea .fx-item-2::before { content: "🍨"; }
.theme-kawaii-boba-pastel-tea .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: candyBounceZoom 2.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #db2777);
}
.theme-kawaii-boba-pastel-tea .fx-item-3::before { content: "🍓"; }
.theme-karting-championship-raceway .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: kartingDriftSmokeDash 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f97316);
}
.theme-karting-championship-raceway .fx-item-1::before { content: "🏎️"; }
.theme-karting-championship-raceway .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.7rem;
  animation: checkeredFlagWave 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #eab308);
}
.theme-karting-championship-raceway .fx-item-2::before { content: "🏁"; }
.theme-karting-championship-raceway .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.6rem;
  animation: trophyGoldenGlintRise 3s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #ea580c);
}
.theme-karting-championship-raceway .fx-item-3::before { content: "🏆"; }
.theme-space-rover-mars-colonizer .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: rocketLiftoffHover 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #fb923c);
}
.theme-space-rover-mars-colonizer .fx-item-1::before { content: "🚀"; }
.theme-space-rover-mars-colonizer .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: marsRoverAntennaRotate 3.5s linear infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-space-rover-mars-colonizer .fx-item-2::before { content: "🛰️"; }
.theme-space-rover-mars-colonizer .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: planetOrbitVowTilt 4s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #c2410c);
}
.theme-space-rover-mars-colonizer .fx-item-3::before { content: "🔴"; }
.theme-fairy-enchanted-woodland-glade .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: fairyDustSparkleSwirl 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #34d399);
}
.theme-fairy-enchanted-woodland-glade .fx-item-1::before { content: "🧚"; }
.theme-fairy-enchanted-woodland-glade .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: forestFernWiggle 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f472b6);
}
.theme-fairy-enchanted-woodland-glade .fx-item-2::before { content: "🍄"; }
.theme-fairy-enchanted-woodland-glade .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: butterflyFlight 3.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #059669);
}
.theme-fairy-enchanted-woodland-glade .fx-item-3::before { content: "🌸"; }
.theme-aquarium-sea-turtle-reef .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: seaTurtleGlideReef 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-aquarium-sea-turtle-reef .fx-item-1::before { content: "🐢"; }
.theme-aquarium-sea-turtle-reef .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: bubbleAscend 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #2dd4bf);
}
.theme-aquarium-sea-turtle-reef .fx-item-2::before { content: "🫧"; }
.theme-aquarium-sea-turtle-reef .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.6rem;
  animation: coralGentleSway 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #0284c7);
}
.theme-aquarium-sea-turtle-reef .fx-item-3::before { content: "🪸"; }
.theme-pirate-skull-island-voyage .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: pirateCannonFireWave 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-pirate-skull-island-voyage .fx-item-1::before { content: "🏴‍☠️"; }
.theme-pirate-skull-island-voyage .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: goldCoinSpinGlint 3.2s linear infinite;
  filter: drop-shadow(0 0 12px #eab308);
}
.theme-pirate-skull-island-voyage .fx-item-2::before { content: "🪙"; }
.theme-pirate-skull-island-voyage .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: compassRotateSlow 4s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #0369a1);
}
.theme-pirate-skull-island-voyage .fx-item-3::before { content: "🗺️"; }
.theme-bali-puri-royal-agung .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: baliGapuraBlessingGlow 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-bali-puri-royal-agung .fx-item-1::before { content: "🛕"; }
.theme-bali-puri-royal-agung .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: kambojaDrift 3.4s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f97316);
}
.theme-bali-puri-royal-agung .fx-item-2::before { content: "🌺"; }
.theme-bali-puri-royal-agung .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: sunbeamPulse 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #ca8a04);
}
.theme-bali-puri-royal-agung .fx-item-3::before { content: "☀️"; }
.theme-betawi-palang-pintu-delman .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: palangPintuRebanaBeat 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f43f5e);
}
.theme-betawi-palang-pintu-delman .fx-item-1::before { content: "🏵️"; }
.theme-betawi-palang-pintu-delman .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.7rem;
  animation: gamelanGongResonance 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #eab308);
}
.theme-betawi-palang-pintu-delman .fx-item-2::before { content: "🥁"; }
.theme-betawi-palang-pintu-delman .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: crossedSwordsSalute 3s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #be123c);
}
.theme-betawi-palang-pintu-delman .fx-item-3::before { content: "🗡️"; }
.theme-dayak-hudoq-borneo-royalty .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: dayakEnggangFeatherSway 3s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #fb923c);
}
.theme-dayak-hudoq-borneo-royalty .fx-item-1::before { content: "🦅"; }
.theme-dayak-hudoq-borneo-royalty .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: cendrawasihFeatherFloat 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #ca8a04);
}
.theme-dayak-hudoq-borneo-royalty .fx-item-2::before { content: "📿"; }
.theme-dayak-hudoq-borneo-royalty .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: forestFernWiggle 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #9a3412);
}
.theme-dayak-hudoq-borneo-royalty .fx-item-3::before { content: "🌿"; }
.theme-makassar-baju-bodo-silk .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: makassarSalokoGleam 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-makassar-baju-bodo-silk .fx-item-1::before { content: "👑"; }
.theme-makassar-baju-bodo-silk .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: songketLuster 3.4s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #34d399);
}
.theme-makassar-baju-bodo-silk .fx-item-2::before { content: "🥻"; }
.theme-makassar-baju-bodo-silk .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: goldCoinSpinGlint 3s linear infinite;
  filter: drop-shadow(0 0 10px #059669);
}
.theme-makassar-baju-bodo-silk .fx-item-3::before { content: "🪙"; }
.theme-kyoto-shinto-zen-sanctuary .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: shintoToriiLanternSway 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #dc2626);
}
.theme-kyoto-shinto-zen-sanctuary .fx-item-1::before { content: "⛩️"; }
.theme-kyoto-shinto-zen-sanctuary .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: sakuraDrift 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f87171);
}
.theme-kyoto-shinto-zen-sanctuary .fx-item-2::before { content: "🌸"; }
.theme-kyoto-shinto-zen-sanctuary .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: furinChimeDrift 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #ca8a04);
}
.theme-kyoto-shinto-zen-sanctuary .fx-item-3::before { content: "🔔"; }
.theme-santorini-cliffside-bougainvillea .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: santoriniBreezeBougainvillea 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-santorini-cliffside-bougainvillea .fx-item-1::before { content: "🏛️"; }
.theme-santorini-cliffside-bougainvillea .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: rosePetalCascade 3.4s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f43f5e);
}
.theme-santorini-cliffside-bougainvillea .fx-item-2::before { content: "🌺"; }
.theme-santorini-cliffside-bougainvillea .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: vesselSailingForward 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #0284c7);
}
.theme-santorini-cliffside-bougainvillea .fx-item-3::before { content: "⛵"; }
.theme-art-deco-great-gatsby-gala .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: artDecoGatsbyGoldGlint 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-art-deco-great-gatsby-gala .fx-item-1::before { content: "🥂"; }
.theme-art-deco-great-gatsby-gala .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: saxGoldResonance 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #ca8a04);
}
.theme-art-deco-great-gatsby-gala .fx-item-2::before { content: "🎷"; }
.theme-art-deco-great-gatsby-gala .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: wineGobletTilt 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #e2e8f0);
}
.theme-art-deco-great-gatsby-gala .fx-item-3::before { content: "🍸"; }
.theme-provence-lavender-sunflower-meadow .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: provenceSunMeadowBreeze 2.7s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-provence-lavender-sunflower-meadow .fx-item-1::before { content: "🌻"; }
.theme-provence-lavender-sunflower-meadow .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: lavenderBloomSway 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #c084fc);
}
.theme-provence-lavender-sunflower-meadow .fx-item-2::before { content: "🪻"; }
.theme-provence-lavender-sunflower-meadow .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: botanicalSway 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #9333ea);
}
.theme-provence-lavender-sunflower-meadow .fx-item-3::before { content: "🧺"; }
.theme-castle-fairytale-enchanted-gates .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: castleCarriageSparkleGlide 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #e879f9);
}
.theme-castle-fairytale-enchanted-gates .fx-item-1::before { content: "🏰"; }
.theme-castle-fairytale-enchanted-gates .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: carriageFlight 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-castle-fairytale-enchanted-gates .fx-item-2::before { content: "🎠"; }
.theme-castle-fairytale-enchanted-gates .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: silverRingSparkleSpin 3s linear infinite;
  filter: drop-shadow(0 0 10px #a21caf);
}
.theme-castle-fairytale-enchanted-gates .fx-item-3::before { content: "💍"; }
.theme-crystal-cathedral-stained-glass .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: stainedGlassPrismRefract 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #60a5fa);
}
.theme-crystal-cathedral-stained-glass .fx-item-1::before { content: "⛪"; }
.theme-crystal-cathedral-stained-glass .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: doveFlyGentleBreeze 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f472b6);
}
.theme-crystal-cathedral-stained-glass .fx-item-2::before { content: "🕊️"; }
.theme-crystal-cathedral-stained-glass .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: candleFlameDance 2.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #2563eb);
}
.theme-crystal-cathedral-stained-glass .fx-item-3::before { content: "🕯️"; }
.theme-sapphire-45th-royal-jubilee .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: sapphireFacetShimmer 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-sapphire-45th-royal-jubilee .fx-item-1::before { content: "💎"; }
.theme-sapphire-45th-royal-jubilee .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: goldenCrownHover 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #e2e8f0);
}
.theme-sapphire-45th-royal-jubilee .fx-item-2::before { content: "👑"; }
.theme-sapphire-45th-royal-jubilee .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: oceanCausticsShimmer 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #0284c7);
}
.theme-sapphire-45th-royal-jubilee .fx-item-3::before { content: "🌊"; }
.theme-emerald-55th-eternal-devotion .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: emeraldLaurelCrownGleam 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #34d399);
}
.theme-emerald-55th-eternal-devotion .fx-item-1::before { content: "💚"; }
.theme-emerald-55th-eternal-devotion .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: laurelWreathFloat 3.4s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #ca8a04);
}
.theme-emerald-55th-eternal-devotion .fx-item-2::before { content: "🌿"; }
.theme-emerald-55th-eternal-devotion .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: silverRingSparkleSpin 3s linear infinite;
  filter: drop-shadow(0 0 10px #059669);
}
.theme-emerald-55th-eternal-devotion .fx-item-3::before { content: "💍"; }
.theme-starlight-rooftop-acoustic-duet .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: acousticGuitarNoteFloat 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f472b6);
}
.theme-starlight-rooftop-acoustic-duet .fx-item-1::before { content: "🎸"; }
.theme-starlight-rooftop-acoustic-duet .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: starTwinkleRooftop 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-starlight-rooftop-acoustic-duet .fx-item-2::before { content: "🌟"; }
.theme-starlight-rooftop-acoustic-duet .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: teaSteamRise 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #be185d);
}
.theme-starlight-rooftop-acoustic-duet .fx-item-3::before { content: "☕"; }
.theme-venetian-carnival-duet-masque .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: venetianMasqueFloatGlow 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #e879f9);
}
.theme-venetian-carnival-duet-masque .fx-item-1::before { content: "🎭"; }
.theme-venetian-carnival-duet-masque .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: candleFlameDance 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #ca8a04);
}
.theme-venetian-carnival-duet-masque .fx-item-2::before { content: "🕯️"; }
.theme-venetian-carnival-duet-masque .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: gondolaWaterRockSlow 3.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #a21caf);
}
.theme-venetian-carnival-duet-masque .fx-item-3::before { content: "🛶"; }
.theme-cozy-log-cabin-autumn-embers .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: cabinFireEmbersRise 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #fb923c);
}
.theme-cozy-log-cabin-autumn-embers .fx-item-1::before { content: "🔥"; }
.theme-cozy-log-cabin-autumn-embers .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: coffeeSteamWarmthRise 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #eab308);
}
.theme-cozy-log-cabin-autumn-embers .fx-item-2::before { content: "☕"; }
.theme-cozy-log-cabin-autumn-embers .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: hearthEmberGlow 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #c2410c);
}
.theme-cozy-log-cabin-autumn-embers .fx-item-3::before { content: "🪵"; }
.theme-hot-air-balloon-cappadocia-sunrise .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: cappadociaBalloonRiseFloat 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #fb7185);
}
.theme-hot-air-balloon-cappadocia-sunrise .fx-item-1::before { content: "🎈"; }
.theme-hot-air-balloon-cappadocia-sunrise .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.7rem;
  animation: warmSunPulse 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-hot-air-balloon-cappadocia-sunrise .fx-item-2::before { content: "🌄"; }
.theme-hot-air-balloon-cappadocia-sunrise .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: doveFlyGentleBreeze 3.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #e11d48);
}
.theme-hot-air-balloon-cappadocia-sunrise .fx-item-3::before { content: "🕊️"; }
.theme-moonlit-waterfall-serenade .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: waterfallSilverMistRipple 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-moonlit-waterfall-serenade .fx-item-1::before { content: "🌊"; }
.theme-moonlit-waterfall-serenade .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: moonCrescentGleam 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #2dd4bf);
}
.theme-moonlit-waterfall-serenade .fx-item-2::before { content: "🌕"; }
.theme-moonlit-waterfall-serenade .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: lotusBloomPulse 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #0284c7);
}
.theme-moonlit-waterfall-serenade .fx-item-3::before { content: "🪷"; }
.theme-amalfi-coast-lemon-terrace .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: amalfiLemonBreezeSway 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-amalfi-coast-lemon-terrace .fx-item-1::before { content: "🍋"; }
.theme-amalfi-coast-lemon-terrace .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: oceanBreakerSurge 3.4s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #2dd4bf);
}
.theme-amalfi-coast-lemon-terrace .fx-item-2::before { content: "🌊"; }
.theme-amalfi-coast-lemon-terrace .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: wineGlassClinkTilt 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #0f766e);
}
.theme-amalfi-coast-lemon-terrace .fx-item-3::before { content: "🍷"; }
.theme-tahiti-overwater-bungalow-sunset .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: tahitiLagoonRippleSunset 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f43f5e);
}
.theme-tahiti-overwater-bungalow-sunset .fx-item-1::before { content: "🏝️"; }
.theme-tahiti-overwater-bungalow-sunset .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: tropicalFlowerSpin 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-tahiti-overwater-bungalow-sunset .fx-item-2::before { content: "🐠"; }
.theme-tahiti-overwater-bungalow-sunset .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: frangipaniDrift 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #be123c);
}
.theme-tahiti-overwater-bungalow-sunset .fx-item-3::before { content: "🌺"; }
.theme-golden-record-timeless-melody .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: goldenRecordVinylSpin 3s linear infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-golden-record-timeless-melody .fx-item-1::before { content: "💿"; }
.theme-golden-record-timeless-melody .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: musicalNotesRise 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f97316);
}
.theme-golden-record-timeless-melody .fx-item-2::before { content: "🎶"; }
.theme-golden-record-timeless-melody .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: guitarStrumPulse 3.4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #ca8a04);
}
.theme-golden-record-timeless-melody .fx-item-3::before { content: "📻"; }
.theme-aviation-flight-captain-wings .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: captainWingsRadarSweep 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #38bdf8);
}
.theme-aviation-flight-captain-wings .fx-item-1::before { content: "✈️"; }
.theme-aviation-flight-captain-wings .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: honorMedalSway 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-aviation-flight-captain-wings .fx-item-2::before { content: "🎖️"; }
.theme-aviation-flight-captain-wings .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: compassRoseSpinDial 3.5s linear infinite;
  filter: drop-shadow(0 0 10px #0284c7);
}
.theme-aviation-flight-captain-wings .fx-item-3::before { content: "🧭"; }
.theme-marine-oceanography-deep-dive .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: submersibleSonarPulse 3s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #2dd4bf);
}
.theme-marine-oceanography-deep-dive .fx-item-1::before { content: "🐋"; }
.theme-marine-oceanography-deep-dive .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: seaBubbleAscendBurst 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-marine-oceanography-deep-dive .fx-item-2::before { content: "🫧"; }
.theme-marine-oceanography-deep-dive .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: dolphinLeap 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #0f766e);
}
.theme-marine-oceanography-deep-dive .fx-item-3::before { content: "🤿"; }
.theme-petroleum-mining-engineering-gold .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: oilRigFlameTorchGlow 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-petroleum-mining-engineering-gold .fx-item-1::before { content: "🏗️"; }
.theme-petroleum-mining-engineering-gold .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: goldTrophyLightSweep 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #ef4444);
}
.theme-petroleum-mining-engineering-gold .fx-item-2::before { content: "⛏️"; }
.theme-petroleum-mining-engineering-gold .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: gearTurbineRotateSmooth 3.5s linear infinite;
  filter: drop-shadow(0 0 10px #b45309);
}
.theme-petroleum-mining-engineering-gold .fx-item-3::before { content: "🛢️"; }
.theme-neurology-brain-neuroscience-pulse .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: brainSynapseElectricPulse 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #818cf8);
}
.theme-neurology-brain-neuroscience-pulse .fx-item-1::before { content: "🧠"; }
.theme-neurology-brain-neuroscience-pulse .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: ekgWavePulse 2.2s steps(2, start) infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-neurology-brain-neuroscience-pulse .fx-item-2::before { content: "⚡"; }
.theme-neurology-brain-neuroscience-pulse .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: stethoscopeHeartbeatPulse 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #4f46e5);
}
.theme-neurology-brain-neuroscience-pulse .fx-item-3::before { content: "🩺"; }
.theme-quantum-computing-physicist .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: quantumAtomOrbitSpins 3s linear infinite;
  filter: drop-shadow(0 0 14px #c084fc);
}
.theme-quantum-computing-physicist .fx-item-1::before { content: "⚛️"; }
.theme-quantum-computing-physicist .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: andromedaGalaxySpiralSpin 3.5s linear infinite;
  filter: drop-shadow(0 0 12px #22d3ee);
}
.theme-quantum-computing-physicist .fx-item-2::before { content: "🌌"; }
.theme-quantum-computing-physicist .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: laptopMatrixTerminalGlow 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 10px #7e22ce);
}
.theme-quantum-computing-physicist .fx-item-3::before { content: "💻"; }
.theme-agricultural-agronomy-green-harvest .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: padiFieldGoldenBreeze 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-agricultural-agronomy-green-harvest .fx-item-1::before { content: "🌾"; }
.theme-agricultural-agronomy-green-harvest .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: saplingSproutGrowGently 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #4ade80);
}
.theme-agricultural-agronomy-green-harvest .fx-item-2::before { content: "🍃"; }
.theme-agricultural-agronomy-green-harvest .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: barnLeafDrift 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #16a34a);
}
.theme-agricultural-agronomy-green-harvest .fx-item-3::before { content: "🚜"; }
.theme-culinary-pastry-chef-patisserie .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: pastryChefWhiskFlourSprinkle 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #fb923c);
}
.theme-culinary-pastry-chef-patisserie .fx-item-1::before { content: "👨‍🍳"; }
.theme-culinary-pastry-chef-patisserie .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: pastryPuffHover 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-culinary-pastry-chef-patisserie .fx-item-2::before { content: "🍰"; }
.theme-culinary-pastry-chef-patisserie .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: chefKnifeGlintFlash 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #c2410c);
}
.theme-culinary-pastry-chef-patisserie .fx-item-3::before { content: "🥐"; }
.theme-journalism-broadcast-media-producer .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: broadcastOnAirSignalFlash 2.2s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #ef4444);
}
.theme-journalism-broadcast-media-producer .fx-item-1::before { content: "🎙️"; }
.theme-journalism-broadcast-media-producer .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.5rem;
  animation: pulsarBlink 1.8s steps(2, start) infinite;
  filter: drop-shadow(0 0 12px #b91c1c);
}
.theme-journalism-broadcast-media-producer .fx-item-2::before { content: "🔴"; }
.theme-journalism-broadcast-media-producer .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.6rem;
  animation: cameraFlashGlow 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #38bdf8);
}
.theme-journalism-broadcast-media-producer .fx-item-3::before { content: "📹"; }
.theme-civil-infrastructure-bridge-builder .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: bridgeCableSuspensionGlow 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #60a5fa);
}
.theme-civil-infrastructure-bridge-builder .fx-item-1::before { content: "🌉"; }
.theme-civil-infrastructure-bridge-builder .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: draftingCompassArc 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #f59e0b);
}
.theme-civil-infrastructure-bridge-builder .fx-item-2::before { content: "📐"; }
.theme-civil-infrastructure-bridge-builder .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: blueprintRulerFloat 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #2563eb);
}
.theme-civil-infrastructure-bridge-builder .fx-item-3::before { content: "🏗️"; }
.theme-cyber-forensics-security-analyst .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: cyberForensicsMatrixScan 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #22c55e);
}
.theme-cyber-forensics-security-analyst .fx-item-1::before { content: "🛡️"; }
.theme-cyber-forensics-security-analyst .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: keyLockEncryptRotate 3s linear infinite;
  filter: drop-shadow(0 0 12px #38bdf8);
}
.theme-cyber-forensics-security-analyst .fx-item-2::before { content: "🔐"; }
.theme-cyber-forensics-security-analyst .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: terminalMatrixPulse 2.8s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #15803d);
}
.theme-cyber-forensics-security-analyst .fx-item-3::before { content: "💻"; }
.theme-barongsai-lion-dance-festival .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.9rem;
  animation: barongsaiLionJumpBlink 2.2s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #facc15);
}
.theme-barongsai-lion-dance-festival .fx-item-1::before { content: "🦁"; }
.theme-barongsai-lion-dance-festival .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.7rem;
  animation: palangPintuRebanaBeat 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #dc2626);
}
.theme-barongsai-lion-dance-festival .fx-item-2::before { content: "🥁"; }
.theme-barongsai-lion-dance-festival .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: firecrackerSparkle 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #facc15);
}
.theme-barongsai-lion-dance-festival .fx-item-3::before { content: "🧧"; }
.theme-toraja-rambu-solo-kabana .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: torajaTongkonanGleam 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f97316);
}
.theme-toraja-rambu-solo-kabana .fx-item-1::before { content: "🛖"; }
.theme-toraja-rambu-solo-kabana .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: tedongHornsGlow 3.4s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #ca8a04);
}
.theme-toraja-rambu-solo-kabana .fx-item-2::before { content: "🐂"; }
.theme-toraja-rambu-solo-kabana .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: bambooStemsSwayBreeze 3.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #9a3412);
}
.theme-toraja-rambu-solo-kabana .fx-item-3::before { content: "🎋"; }
.theme-hawaian-luau-tiki-torch .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: tikiTorchFireDance 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #fb923c);
}
.theme-hawaian-luau-tiki-torch .fx-item-1::before { content: "🪵"; }
.theme-hawaian-luau-tiki-torch .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: tropicalFlowerSpin 3s linear infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-hawaian-luau-tiki-torch .fx-item-2::before { content: "🌺"; }
.theme-hawaian-luau-tiki-torch .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: flamingoFloatieBob 3.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #ea580c);
}
.theme-hawaian-luau-tiki-torch .fx-item-3::before { content: "🥥"; }
.theme-mexican-fiesta-mariachi-maracas .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: mariachiMaracasShake 2.2s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f43f5e);
}
.theme-mexican-fiesta-mariachi-maracas .fx-item-1::before { content: "🪇"; }
.theme-mexican-fiesta-mariachi-maracas .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: partyPopperExplodeBurst 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #22c55e);
}
.theme-mexican-fiesta-mariachi-maracas .fx-item-2::before { content: "🪅"; }
.theme-mexican-fiesta-mariachi-maracas .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: pizzaTossSpin 3.2s linear infinite;
  filter: drop-shadow(0 0 10px #e11d48);
}
.theme-mexican-fiesta-mariachi-maracas .fx-item-3::before { content: "🌮"; }
.theme-carnival-venice-water-parade .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: veniceWaterParadeGlow 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #818cf8);
}
.theme-carnival-venice-water-parade .fx-item-1::before { content: "🚣"; }
.theme-carnival-venice-water-parade .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: masqueradeMaskFloat 3.4s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-carnival-venice-water-parade .fx-item-2::before { content: "🎭"; }
.theme-carnival-venice-water-parade .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: candleWarmthPulse 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #4f46e5);
}
.theme-carnival-venice-water-parade .fx-item-3::before { content: "🕯️"; }
.theme-harajuku-cyber-jpop-festival .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: harajukuLaserBeatHop 2.3s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #ec4899);
}
.theme-harajuku-cyber-jpop-festival .fx-item-1::before { content: "🎧"; }
.theme-harajuku-cyber-jpop-festival .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: heartPulseShine 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #22d3ee);
}
.theme-harajuku-cyber-jpop-festival .fx-item-2::before { content: "💖"; }
.theme-harajuku-cyber-jpop-festival .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: laserScanSweep 3s linear infinite;
  filter: drop-shadow(0 0 10px #be185d);
}
.theme-harajuku-cyber-jpop-festival .fx-item-3::before { content: "🕶️"; }
.theme-reog-ponorogo-singa-barong .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.9rem;
  animation: dadakMerakFeatherTremor 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f59e0b);
}
.theme-reog-ponorogo-singa-barong .fx-item-1::before { content: "🦚"; }
.theme-reog-ponorogo-singa-barong .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: tifaDrumBeatVibe 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #ef4444);
}
.theme-reog-ponorogo-singa-barong .fx-item-2::before { content: "🪘"; }
.theme-reog-ponorogo-singa-barong .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: tebuWulungSway 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #b45309);
}
.theme-reog-ponorogo-singa-barong .fx-item-3::before { content: "🎋"; }
.theme-maroccan-desert-caravan-oasis .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.8rem;
  animation: desertCaravanCampfireWarmth 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #fb923c);
}
.theme-maroccan-desert-caravan-oasis .fx-item-1::before { content: "🐪"; }
.theme-maroccan-desert-caravan-oasis .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: moroccanTentBreezeFlap 3.4s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #ca8a04);
}
.theme-maroccan-desert-caravan-oasis .fx-item-2::before { content: "⛺"; }
.theme-maroccan-desert-caravan-oasis .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: teaSteamRise 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #c2410c);
}
.theme-maroccan-desert-caravan-oasis .fx-item-3::before { content: "🫖"; }
.theme-festival-kembang-api-hanabi-matsuri .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.9rem;
  animation: hanabiMatsuriBurstEpic 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #f43f5e);
}
.theme-festival-kembang-api-hanabi-matsuri .fx-item-1::before { content: "🎆"; }
.theme-festival-kembang-api-hanabi-matsuri .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: sakuraDrift 3.2s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-festival-kembang-api-hanabi-matsuri .fx-item-2::before { content: "🪭"; }
.theme-festival-kembang-api-hanabi-matsuri .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: silkLanternSway 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #be123c);
}
.theme-festival-kembang-api-hanabi-matsuri .fx-item-3::before { content: "👘"; }
.theme-circus-grand-carnival-bigtop .fx-item-1 {
  display: block;
  top: 14px; right: 24px;
  font-size: 1.9rem;
  animation: bigTopCircusAcrobatSwing 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 14px #e11d48);
}
.theme-circus-grand-carnival-bigtop .fx-item-1::before { content: "🎪"; }
.theme-circus-grand-carnival-bigtop .fx-item-2 {
  display: block;
  bottom: 22px; left: 22px;
  font-size: 1.6rem;
  animation: jugglingStarsLoop 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 12px #facc15);
}
.theme-circus-grand-carnival-bigtop .fx-item-2::before { content: "🤹"; }
.theme-circus-grand-carnival-bigtop .fx-item-3 {
  display: block;
  top: 18px; left: 24px;
  font-size: 1.5rem;
  animation: doveFlyGentleBreeze 3.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px #be123c);
}
.theme-circus-grand-carnival-bigtop .fx-item-3::before { content: "🕊️"; }


/* --- 50 Templates Festive Keyframe Animations --- */
@keyframes cyberGlitchFlash {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #06b6d4); opacity: 1; }
  45% { transform: translateY(-4px) skewX(-6deg); filter: drop-shadow(0 0 18px #22d3ee); opacity: 0.95; }
  50% { transform: translateY(2px) skewX(8deg); filter: drop-shadow(0 0 4px #f43f5e); opacity: 0.7; }
  55% { transform: translateY(-2px) skewX(-3deg); filter: drop-shadow(0 0 20px #06b6d4); opacity: 1; }
  100% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #06b6d4); opacity: 1; }
}
@keyframes orbHoloRotate {
  0% { transform: rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #a855f7); }
  50% { transform: rotate(180deg) scale(1.15) translateY(-6px); filter: drop-shadow(0 0 22px #c084fc); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes discLaserSpin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes lionRoarShake {
  0%, 100% { transform: scale(1) rotate(0deg); }
  30% { transform: scale(1.18) rotate(-5deg); filter: drop-shadow(0 0 20px #f59e0b); }
  50% { transform: scale(1.1) rotate(4deg); }
  70% { transform: scale(1.15) rotate(-2deg); }
}
@keyframes palmTreeSway {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-4px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes pawStepPulse {
  0%, 100% { transform: scale(0.9) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.2) translateY(-6px); opacity: 1; filter: drop-shadow(0 0 14px #fbbf24); }
}
@keyframes wandSparkMagic {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-15deg) translateY(-6px); filter: drop-shadow(0 0 18px #fbbf24); }
  50% { transform: rotate(10deg) translateY(-2px); }
  75% { transform: rotate(-5deg) translateY(-8px); filter: drop-shadow(0 0 25px #fde047); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes magicDustWhirl {
  0% { transform: scale(0.9) rotate(0deg); opacity: 0.7; }
  50% { transform: scale(1.25) rotate(180deg) translateY(-8px); opacity: 1; filter: drop-shadow(0 0 16px #a78bfa); }
  100% { transform: scale(0.9) rotate(360deg); opacity: 0.7; }
}
@keyframes owlFlapHover {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-10px) rotate(-6deg) scale(1.08); filter: drop-shadow(0 0 15px #e0e7ff); }
}
@keyframes candySpinPop {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.2) translateY(-5px); filter: drop-shadow(0 0 18px #f472b6); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes candyBounceZoom {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-12px) scale(1.25) rotate(12deg); filter: drop-shadow(0 0 16px #38bdf8); }
}
@keyframes cupcakeJiggle {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-8deg) scale(1.08); }
  75% { transform: rotate(8deg) scale(1.08); }
}
@keyframes pirateFlagWave {
  0% { transform: rotate(0deg) skewY(0deg); }
  50% { transform: rotate(-8deg) skewY(-5deg) translateY(-5px); }
  100% { transform: rotate(0deg) skewY(0deg); }
}
@keyframes goldCoinSpinGlint {
  0% { transform: rotateY(0deg) scale(1); }
  50% { transform: rotateY(180deg) scale(1.15) translateY(-5px); filter: drop-shadow(0 0 20px #eab308); }
  100% { transform: rotateY(360deg) scale(1); }
}
@keyframes parrotWingFlap {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(-10deg) scale(1.1); filter: drop-shadow(0 0 15px #ef4444); }
}
@keyframes supercarSpeedDash {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-10px) scale(1.12) rotate(-4deg); filter: drop-shadow(0 0 22px #ef4444); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes checkeredFlagWave {
  0% { transform: rotate(0deg) skewX(0deg); }
  50% { transform: rotate(12deg) skewX(8deg) translateY(-6px); }
  100% { transform: rotate(0deg) skewX(0deg); }
}
@keyframes nitroFlameBurst {
  0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.8; }
  50% { transform: scale(1.3) rotate(-8deg) translateY(-6px); opacity: 1; filter: drop-shadow(0 0 22px #facc15); }
}
@keyframes ufoHoverFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-8px) rotate(6deg) scale(1.05); }
  75% { transform: translateY(-4px) rotate(-6deg) scale(1.08); filter: drop-shadow(0 0 22px #84cc16); }
}
@keyframes alienHeadBob {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.2) rotate(10deg) translateY(-5px); filter: drop-shadow(0 0 16px #a855f7); }
}
@keyframes meteorShootDiagonal {
  0% { transform: translate(0, 0) scale(0.9); opacity: 0.3; }
  50% { transform: translate(-10px, 10px) scale(1.2); opacity: 1; filter: drop-shadow(0 0 20px #38bdf8); }
  100% { transform: translate(0, 0) scale(0.9); opacity: 0.3; }
}
@keyframes mermaidTailSplash {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-8px) scale(1.1); filter: drop-shadow(0 0 18px #2dd4bf); }
}
@keyframes coralGentleSway {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(6deg) scale(1.08) translateY(-4px); filter: drop-shadow(0 0 14px #f472b6); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes seaBubbleAscendBurst {
  0% { transform: translateY(0) scale(0.8); opacity: 0.4; }
  50% { transform: translateY(-12px) scale(1.2); opacity: 1; filter: drop-shadow(0 0 16px #99f6e4); }
  100% { transform: translateY(-24px) scale(1.4); opacity: 0; }
}
@keyframes chefHatWiggle {
  0%, 100% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(-8deg) scale(1.1) translateY(-4px); }
  75% { transform: rotate(8deg) scale(1.1) translateY(-4px); }
}
@keyframes pizzaTossSpin {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-14px) rotate(180deg) scale(1.2); filter: drop-shadow(0 0 18px #f97316); }
  100% { transform: translateY(0) rotate(360deg) scale(1); }
}
@keyframes cakeCandleGleam {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: scale(1.15) translateY(-5px); filter: drop-shadow(0 0 20px #fde047); }
}
@keyframes balloonFloatSwayRich {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-14px) rotate(8deg) scale(1.08); filter: drop-shadow(0 0 22px #eab308); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes confettiBurstRotate {
  0% { transform: rotate(0deg) scale(0.9); }
  50% { transform: rotate(180deg) scale(1.25) translateY(-8px); filter: drop-shadow(0 0 20px #f43f5e); }
  100% { transform: rotate(360deg) scale(0.9); }
}
@keyframes starGleamTwinklePop {
  0%, 100% { transform: scale(0.8) rotate(0deg); opacity: 0.6; }
  50% { transform: scale(1.3) rotate(45deg); opacity: 1; filter: drop-shadow(0 0 16px currentColor); }
}
@keyframes auroraWaveSweepLoop {
  0% { transform: scale(1) translateY(0) rotate(0deg); filter: drop-shadow(0 0 12px #34d399); }
  50% { transform: scale(1.15) translateY(-8px) rotate(-6deg); filter: drop-shadow(0 0 26px #10b981); }
  100% { transform: scale(1) translateY(0) rotate(0deg); filter: drop-shadow(0 0 12px #34d399); }
}
@keyframes frostFlakeSpinDrop {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.6; }
  50% { transform: translateY(-8px) rotate(180deg) scale(1.15); opacity: 1; filter: drop-shadow(0 0 16px #38bdf8); }
  100% { transform: translateY(0) rotate(360deg); opacity: 0.6; }
}
@keyframes greenHeartPulseGlow {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 8px #10b981); }
  50% { transform: scale(1.25); filter: drop-shadow(0 0 22px #34d399); }
}
@keyframes gondolaWaterRockSlow {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-6px); filter: drop-shadow(0 0 18px #38bdf8); }
}
@keyframes lanternGlowSwing {
  0% { transform: rotate(8deg); filter: drop-shadow(0 0 12px #f59e0b); }
  50% { transform: rotate(-8deg); filter: drop-shadow(0 0 24px #fbbf24); }
  100% { transform: rotate(8deg); filter: drop-shadow(0 0 12px #f59e0b); }
}
@keyframes redRosePetalFloat {
  0%, 100% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-10px) rotate(15deg) scale(1.12); filter: drop-shadow(0 0 18px #f43f5e); }
}
@keyframes mapleLeafSpiralFall {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-10px) rotate(20deg) scale(1.15); filter: drop-shadow(0 0 20px #ea580c); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes dryLeafDriftGently {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-7px) scale(1.08); filter: drop-shadow(0 0 14px #f59e0b); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes coffeeSteamWarmthRise {
  0%, 100% { transform: translateY(0) scale(1); opacity: 0.7; }
  50% { transform: translateY(-10px) scale(1.2); opacity: 1; filter: drop-shadow(0 0 15px #fed7aa); }
}
@keyframes diamondFacetShimmerPulse {
  0%, 100% { transform: scale(1) rotate(0deg); filter: drop-shadow(0 0 12px #38bdf8); }
  50% { transform: scale(1.22) rotate(-6deg); filter: drop-shadow(0 0 28px #7dd3fc); }
}
@keyframes ringOrbitGleam {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-15deg) scale(1.18) translateY(-6px); filter: drop-shadow(0 0 22px #facc15); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes domeGlowSunlight {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 10px #38bdf8); }
  50% { transform: scale(1.12) translateY(-5px); filter: drop-shadow(0 0 20px #0ea5e9); }
}
@keyframes sunsetHorizonPulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 12px #f97316); }
  50% { transform: scale(1.2) translateY(-6px); filter: drop-shadow(0 0 25px #fb923c); }
}
@keyframes doveFlyGentleBreeze {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(-8deg) scale(1.1); filter: drop-shadow(0 0 15px #ffffff); }
}
@keyframes swanGlidePairRipple {
  0%, 100% { transform: translateX(0) scale(1); }
  50% { transform: translateX(6px) scale(1.1) translateY(-4px); filter: drop-shadow(0 0 18px #e0e7ff); }
}
@keyframes lotusBloomPulse {
  0%, 100% { transform: scale(0.95); opacity: 0.8; }
  50% { transform: scale(1.2) translateY(-4px); opacity: 1; filter: drop-shadow(0 0 18px #f472b6); }
}
@keyframes moonCrescentGleam {
  0%, 100% { transform: rotate(0deg); filter: drop-shadow(0 0 10px #fef08a); }
  50% { transform: rotate(10deg) scale(1.15) translateY(-5px); filter: drop-shadow(0 0 22px #fde047); }
}
@keyframes grapeClusterSway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(8deg) translateY(-5px) scale(1.08); filter: drop-shadow(0 0 18px #be123c); }
  100% { transform: rotate(0deg); }
}
@keyframes wineGlassClinkTilt {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-12deg) scale(1.15); filter: drop-shadow(0 0 22px #e11d48); }
  50% { transform: rotate(4deg); }
}
@keyframes oliveBranchWhisper {
  0% { transform: rotate(-4deg); }
  50% { transform: rotate(6deg) translateY(-4px); filter: drop-shadow(0 0 14px #a3e635); }
  100% { transform: rotate(-4deg); }
}
@keyframes telescopeAimNightSky {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-6px) scale(1.1); filter: drop-shadow(0 0 20px #818cf8); }
}
@keyframes saturnRingSpinSlow {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.12) translateY(-4px); filter: drop-shadow(0 0 22px #38bdf8); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes shootingStarStreakGleam {
  0% { transform: translate(0, 0) scale(0.8); opacity: 0.3; }
  50% { transform: translate(-12px, -8px) scale(1.25); opacity: 1; filter: drop-shadow(0 0 20px #fbbf24); }
  100% { transform: translate(0, 0) scale(0.8); opacity: 0.3; }
}
@keyframes flameHeartPulsar {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 12px #e11d48); }
  50% { transform: scale(1.28) translateY(-6px); filter: drop-shadow(0 0 26px #fb7185); }
}
@keyframes goldenCrownHover {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(6deg) scale(1.15); filter: drop-shadow(0 0 24px #facc15); }
}
@keyframes pianoKeyWaveMelody {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.15) translateY(-6px) rotate(-5deg); filter: drop-shadow(0 0 20px #f59e0b); }
}
@keyframes palmShadowSwaySlow {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(8deg) translateY(-5px); filter: drop-shadow(0 0 16px #d97706); }
  100% { transform: rotate(0deg); }
}
@keyframes champagneFluteToastClink {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.2) rotate(10deg) translateY(-6px); filter: drop-shadow(0 0 22px #fde68a); }
}
@keyframes acehCrownShine {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.18) rotate(-4deg) translateY(-6px); filter: drop-shadow(0 0 25px #facc15); }
}
@keyframes mosqueDomeGleam {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 10px #fef08a); }
  50% { transform: scale(1.12) translateY(-5px); filter: drop-shadow(0 0 22px #fde047); }
}
@keyframes jasmineGarlandSway {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(6deg) translateY(-6px) scale(1.08); filter: drop-shadow(0 0 18px #fefce8); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes tropicalFlowerSpin {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.18) translateY(-4px); filter: drop-shadow(0 0 20px #f43f5e); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes banjarGoldKepingGleam {
  0%, 100% { transform: scale(0.9) rotate(0deg); }
  50% { transform: scale(1.25) rotate(15deg) translateY(-5px); filter: drop-shadow(0 0 22px #facc15); }
}
@keyframes sigerCrownNinePointsGleam {
  0%, 100% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 12px #fde047); }
  50% { transform: scale(1.2) translateY(-8px); filter: drop-shadow(0 0 28px #facc15); }
}
@keyframes lampungLanternGlow {
  0% { transform: rotate(-6deg); }
  50% { transform: rotate(8deg) translateY(-5px); filter: drop-shadow(0 0 20px #f97316); }
  100% { transform: rotate(-6deg); }
}
@keyframes cendrawasihFeatherFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-10px) rotate(12deg) scale(1.15); filter: drop-shadow(0 0 22px #fbbf24); }
}
@keyframes tifaDrumBeatVibe {
  0%, 100% { transform: scale(1); }
  25% { transform: scale(1.18) rotate(-4deg); filter: drop-shadow(0 0 20px #d97706); }
  75% { transform: scale(1.1) rotate(4deg); }
}
@keyframes forestFernWiggle {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-8deg) translateY(-4px); filter: drop-shadow(0 0 14px #22c55e); }
  100% { transform: rotate(0deg); }
}
@keyframes glassSlipperMirrorShine {
  0%, 100% { transform: scale(1) rotate(0deg); filter: drop-shadow(0 0 10px #93c5fd); }
  50% { transform: scale(1.22) rotate(-8deg) translateY(-6px); filter: drop-shadow(0 0 26px #60a5fa); }
}
@keyframes tiaraSparkleZoom {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.25) translateY(-6px); filter: drop-shadow(0 0 24px #fef08a); }
}
@keyframes fairyDoveFlyGraceful {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(8deg) scale(1.12); filter: drop-shadow(0 0 16px #ffffff); }
}
@keyframes gothicCandleFlameFlicker {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 10px #f59e0b); }
  50% { transform: scale(1.25) translateY(-5px); filter: drop-shadow(0 0 24px #ea580c); }
}
@keyframes darkRosePetalDrop {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(-15deg) scale(1.12); filter: drop-shadow(0 0 20px #9f1239); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes vintageKeyFloatTurn {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.2) translateY(-6px); filter: drop-shadow(0 0 18px #cbd5e1); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes moroccanTentBreezeFlap {
  0% { transform: skewX(0deg) rotate(0deg); }
  50% { transform: skewX(5deg) rotate(-4deg) translateY(-5px); filter: drop-shadow(0 0 20px #ea580c); }
  100% { transform: skewX(0deg) rotate(0deg); }
}
@keyframes brassLampSmokeCurl {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.2) rotate(10deg); filter: drop-shadow(0 0 22px #facc15); }
}
@keyframes oasisPalmLeafSway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(8deg) translateY(-4px); filter: drop-shadow(0 0 16px #06b6d4); }
  100% { transform: rotate(0deg); }
}
@keyframes toriiGateShimmerRed {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 10px #ef4444); }
  50% { transform: scale(1.15) translateY(-5px); filter: drop-shadow(0 0 24px #dc2626); }
}
@keyframes bambooStemsSwayBreeze {
  0% { transform: rotate(-4deg); }
  50% { transform: rotate(6deg) translateY(-5px); filter: drop-shadow(0 0 16px #86efac); }
  100% { transform: rotate(-4deg); }
}
@keyframes matchaTeaSteamRise {
  0%, 100% { transform: translateY(0) scale(0.9); opacity: 0.6; }
  50% { transform: translateY(-10px) scale(1.2); opacity: 1; filter: drop-shadow(0 0 16px #fef08a); }
}
@keyframes macrameKnotSwingSlow {
  0% { transform: rotate(-6deg); }
  50% { transform: rotate(6deg) translateY(-5px); filter: drop-shadow(0 0 18px #f59e0b); }
  100% { transform: rotate(-6deg); }
}
@keyframes pampasGrassBreezeWave {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(8deg) translateY(-4px) scale(1.08); filter: drop-shadow(0 0 15px #fed7aa); }
  100% { transform: rotate(0deg); }
}
@keyframes terracottaHeartGlow {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 10px #ea580c); }
  50% { transform: scale(1.25); filter: drop-shadow(0 0 22px #f97316); }
}
@keyframes planetOrbitVowTilt {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-15deg) scale(1.15) translateY(-6px); filter: drop-shadow(0 0 24px #a78bfa); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes cometTailSweepArc {
  0% { transform: translate(0, 0) scale(0.8); opacity: 0.4; }
  50% { transform: translate(-14px, 10px) scale(1.3); opacity: 1; filter: drop-shadow(0 0 24px #38bdf8); }
  100% { transform: translate(0, 0) scale(0.8); opacity: 0.4; }
}
@keyframes anchorDropSway {
  0% { transform: rotate(-6deg); }
  50% { transform: rotate(8deg) translateY(-5px); filter: drop-shadow(0 0 20px #38bdf8); }
  100% { transform: rotate(-6deg); }
}
@keyframes compassRoseSpinDial {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes vesselSailingForward {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-7px) rotate(-4deg) scale(1.1); filter: drop-shadow(0 0 18px #bae6fd); }
}
@keyframes panFlambeFireSizzle {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.22) translateY(-6px) rotate(6deg); filter: drop-shadow(0 0 22px #f59e0b); }
}
@keyframes chefKnifeGlintFlash {
  0%, 100% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-12deg) scale(1.18) translateY(-4px); filter: drop-shadow(0 0 20px #ffffff); }
}
@keyframes pastryPuffHover {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-8px) scale(1.15); filter: drop-shadow(0 0 16px #facc15); }
}
@keyframes petPawTrackWalk {
  0%, 100% { transform: scale(0.9) translateY(0); opacity: 0.6; }
  50% { transform: scale(1.25) translateY(-6px); opacity: 1; filter: drop-shadow(0 0 16px #4ade80); }
}
@keyframes stethoscopeHeartbeatPulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 8px #38bdf8); }
  50% { transform: scale(1.25); filter: drop-shadow(0 0 22px #0ea5e9); }
}
@keyframes dogWagTailHappy {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-10deg) scale(1.12); }
  75% { transform: rotate(10deg) scale(1.12); }
}
@keyframes violinBowVibrateMelody {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-6px) scale(1.12); filter: drop-shadow(0 0 22px #fb923c); }
}
@keyframes musicNotesDanceStaff {
  0% { transform: translateY(0) scale(0.9); opacity: 0.5; }
  50% { transform: translateY(-12px) scale(1.25) rotate(15deg); opacity: 1; filter: drop-shadow(0 0 20px #facc15); }
  100% { transform: translateY(-4px) scale(1); opacity: 0.8; }
}
@keyframes trumpetSoundBlast {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.2) rotate(10deg) translateY(-5px); filter: drop-shadow(0 0 22px #fed7aa); }
}
@keyframes rocketLaunchStreakFast {
  0% { transform: translate(0, 0) rotate(15deg); }
  50% { transform: translate(-10px, -12px) rotate(12deg) scale(1.18); filter: drop-shadow(0 0 26px #f97316); }
  100% { transform: translate(0, 0) rotate(15deg); }
}
@keyframes satelliteOrbitBeamPulse {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-8px) scale(1.2) rotate(-8deg); filter: drop-shadow(0 0 22px #38bdf8); }
}
@keyframes gearTurbineRotateSmooth {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes sculptureStoneChiselGlint {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.15) rotate(-6deg) translateY(-5px); filter: drop-shadow(0 0 20px #e2e8f0); }
}
@keyframes artistPaletteColorSplash {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.2) translateY(-6px); filter: drop-shadow(0 0 24px #fb7185); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes paintBrushStrokeArc {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-8px) scale(1.15); filter: drop-shadow(0 0 20px #38bdf8); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes oliveDoveFlyPeace {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(-6deg) scale(1.12); filter: drop-shadow(0 0 16px #ffffff); }
}
@keyframes globeRotateGridGlow {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.12) translateY(-4px); filter: drop-shadow(0 0 22px #60a5fa); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes treatyScrollUnfurl {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.18) rotate(-5deg) translateY(-5px); filter: drop-shadow(0 0 20px #facc15); }
}
@keyframes cyberShieldPulseDefense {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 10px #22c55e); }
  50% { transform: scale(1.22) translateY(-5px); filter: drop-shadow(0 0 25px #4ade80); }
}
@keyframes laptopMatrixTerminalGlow {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.15) translateY(-5px); filter: drop-shadow(0 0 20px #4ade80); }
}
@keyframes keyLockEncryptRotate {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.2) translateY(-5px); filter: drop-shadow(0 0 20px #38bdf8); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes saplingSproutGrowGently {
  0%, 100% { transform: scale(0.95) translateY(0); }
  50% { transform: scale(1.2) translateY(-6px); filter: drop-shadow(0 0 18px #86efac); }
}
@keyframes pineTreeWindBreeze {
  0% { transform: rotate(-4deg); }
  50% { transform: rotate(6deg) translateY(-4px); filter: drop-shadow(0 0 16px #15803d); }
  100% { transform: rotate(-4deg); }
}
@keyframes forestButterflyFlutterLoop {
  0%, 100% { transform: translate(0, 0) rotate(0deg) scale(1); }
  25% { transform: translate(-8px, -6px) rotate(-10deg) scale(1.15); filter: drop-shadow(0 0 18px #fbbf24); }
  75% { transform: translate(6px, -10px) rotate(10deg) scale(1.1); }
}
@keyframes giantTelescopeRotateStars {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-6px) scale(1.12); filter: drop-shadow(0 0 24px #c084fc); }
}
@keyframes andromedaGalaxySpiralSpin {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.15) translateY(-5px); filter: drop-shadow(0 0 26px #818cf8); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes cosmicCometBlazeDash {
  0% { transform: translate(0, 0) scale(0.9); opacity: 0.4; }
  50% { transform: translate(-14px, 12px) scale(1.3); opacity: 1; filter: drop-shadow(0 0 25px #fde047); }
  100% { transform: translate(0, 0) scale(0.9); opacity: 0.4; }
}
@keyframes skyLanternAscendGently {
  0% { transform: translateY(0) scale(0.9); opacity: 0.7; }
  50% { transform: translateY(-12px) scale(1.18); opacity: 1; filter: drop-shadow(0 0 24px #f59e0b); }
  100% { transform: translateY(-22px) scale(1.25); opacity: 0.8; }
}
@keyframes brassOilLampGlow {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 10px #f97316); }
  50% { transform: scale(1.2) translateY(-5px); filter: drop-shadow(0 0 24px #fbbf24); }
}
@keyframes holyQuranGlowPageTurn {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.18) rotate(-4deg) translateY(-6px); filter: drop-shadow(0 0 26px #facc15); }
}
@keyframes minaretDomeCrescentFloat {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-8px) scale(1.15); filter: drop-shadow(0 0 22px #10b981); }
}
@keyframes blessingSparkleShower {
  0%, 100% { transform: scale(0.8) rotate(0deg); opacity: 0.5; }
  50% { transform: scale(1.35) rotate(45deg); opacity: 1; filter: drop-shadow(0 0 22px #fef08a); }
}
@keyframes homeChimneyWarmPulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 10px #2dd4bf); }
  50% { transform: scale(1.18) translateY(-6px); filter: drop-shadow(0 0 24px #14b8a6); }
}
@keyframes palmFrondBreezeRelax {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(6deg) translateY(-4px); filter: drop-shadow(0 0 16px #34d399); }
  100% { transform: rotate(-5deg); }
}
@keyframes goldenKeyJingleShine {
  0%, 100% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-15deg) scale(1.2) translateY(-5px); filter: drop-shadow(0 0 20px #f59e0b); }
}
@keyframes bonfireFlameDanceHigh {
  0%, 100% { transform: scale(1) translateY(0); }
  25% { transform: scale(1.25) translateY(-8px) rotate(-5deg); filter: drop-shadow(0 0 26px #ea580c); }
  75% { transform: scale(1.15) translateY(-4px) rotate(5deg); }
}
@keyframes bbqSkewerSizzleRotate {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(15deg) translateY(-5px) scale(1.12); filter: drop-shadow(0 0 18px #f97316); }
  100% { transform: rotate(0deg); }
}
@keyframes sambaBongoDrumThump {
  0%, 100% { transform: scale(1); }
  20% { transform: scale(1.22) rotate(-6deg); filter: drop-shadow(0 0 24px #facc15); }
  60% { transform: scale(1.1) rotate(6deg); }
}
@keyframes carnivalFeatherShakeBounce {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-12px) rotate(14deg) scale(1.2); filter: drop-shadow(0 0 26px #f43f5e); }
}
@keyframes partyPopperExplodeBurst {
  0% { transform: scale(0.9) rotate(0deg); opacity: 0.6; }
  50% { transform: scale(1.3) rotate(20deg) translateY(-8px); opacity: 1; filter: drop-shadow(0 0 24px #38bdf8); }
  100% { transform: scale(0.9) rotate(0deg); opacity: 0.6; }
}
@keyframes porcelainTeapotPourTilt {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-16deg) translateY(-6px) scale(1.15); filter: drop-shadow(0 0 22px #f472b6); }
}
@keyframes cherryPetalSwirlDance {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-10px) rotate(25deg) scale(1.2); filter: drop-shadow(0 0 18px #86efac); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes trophyGoldenGlintRise {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.25) translateY(-8px); filter: drop-shadow(0 0 28px #facc15); }
}
@keyframes corporateBadgeHover {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-6px) scale(1.15); filter: drop-shadow(0 0 20px #38bdf8); }
}
@keyframes giantKiteGlideSkyDip {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(-10px, -8px) rotate(-8deg) scale(1.15); filter: drop-shadow(0 0 22px #38bdf8); }
  75% { transform: translate(8px, -12px) rotate(8deg) scale(1.1); }
}
@keyframes sunnyCloudBreezeFloat {
  0%, 100% { transform: translateX(0) scale(1); }
  50% { transform: translateX(8px) translateY(-5px) scale(1.15); filter: drop-shadow(0 0 20px #fde047); }
}
@keyframes oceanWaveRollCrest {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.2) translateY(-6px); filter: drop-shadow(0 0 20px #06b6d4); }
}
@keyframes pretzelSpinTumble {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.18) translateY(-6px); filter: drop-shadow(0 0 22px #f59e0b); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes beerSteinFoamBubbles {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.22) rotate(-8deg) translateY(-6px); filter: drop-shadow(0 0 24px #eab308); }
}
@keyframes accordionSqueezeBellows {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.25) scaleY(0.95) translateY(-5px); filter: drop-shadow(0 0 22px #60a5fa); }
}
@keyframes millenniumFireworkBurstEpic {
  0% { transform: scale(0.6) rotate(0deg); opacity: 0.3; }
  50% { transform: scale(1.4) rotate(45deg); opacity: 1; filter: drop-shadow(0 0 30px #e11d48); }
  100% { transform: scale(1) rotate(90deg); opacity: 0.8; }
}
@keyframes sparklerGoldenRainFall {
  0%, 100% { transform: translateY(0) scale(1); opacity: 0.7; }
  50% { transform: translateY(-8px) scale(1.25); opacity: 1; filter: drop-shadow(0 0 24px #facc15); }
}



/* --- 50 Additional Templates Festive Keyframe Animations --- */
@keyframes rollerSkatingSpinNeon {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #f43f5e); }
  50% { transform: translateY(-8px) rotate(15deg) scale(1.15); filter: drop-shadow(0 0 20px #22d3ee); }
  100% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #f43f5e); }
}
@keyframes dinoJurassicRoarBounce {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #22c55e); }
  25% { transform: scale(1.15) translateY(-6px) rotate(-6deg); filter: drop-shadow(0 0 18px #eab308); }
  50% { transform: scale(0.95) translateY(2px) rotate(4deg); }
  75% { transform: scale(1.1) translateY(-4px) rotate(-3deg); filter: drop-shadow(0 0 15px #22c55e); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes potionBubbleSteamRise {
  0% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 8px #c084fc); }
  50% { transform: translateY(-10px) scale(1.18) rotate(12deg); filter: drop-shadow(0 0 22px #38bdf8); }
  100% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 8px #c084fc); }
}
@keyframes superheroComicZapBoom {
  0% { transform: scale(1) translateY(0) rotate(0deg); filter: drop-shadow(0 0 10px #ef4444); }
  30% { transform: scale(1.22) translateY(-6px) rotate(-8deg); filter: drop-shadow(0 0 24px #facc15); }
  60% { transform: scale(0.92) translateY(2px) rotate(6deg); }
  100% { transform: scale(1) translateY(0) rotate(0deg); }
}
@keyframes bobaPearlJumpBounce {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 8px #f472b6); }
  40% { transform: translateY(-12px) scale(1.15) rotate(10deg); filter: drop-shadow(0 0 20px #fbbf24); }
  60% { transform: translateY(2px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes kartingDriftSmokeDash {
  0% { transform: translateX(0) scale(1) skewX(0); filter: drop-shadow(0 0 8px #f97316); }
  50% { transform: translateX(-10px) scale(1.14) skewX(-10deg); filter: drop-shadow(0 0 22px #eab308); }
  100% { transform: translateX(0) scale(1) skewX(0); }
}
@keyframes marsRoverAntennaRotate {
  0% { transform: rotate(0deg) scale(1); filter: drop-shadow(0 0 8px #38bdf8); }
  50% { transform: rotate(180deg) scale(1.15); filter: drop-shadow(0 0 20px #fb923c); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes fairyDustSparkleSwirl {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #34d399); }
  50% { transform: translateY(-10px) rotate(-14deg) scale(1.2); filter: drop-shadow(0 0 24px #f472b6); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes seaTurtleGlideReef {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #38bdf8); }
  50% { transform: translateY(-8px) translateX(6px) rotate(6deg) scale(1.1); filter: drop-shadow(0 0 20px #2dd4bf); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes pirateCannonFireWave {
  0% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 10px #38bdf8); }
  25% { transform: translateY(-6px) scale(1.18) rotate(-8deg); filter: drop-shadow(0 0 22px #eab308); }
  50% { transform: translateY(2px) scale(0.95); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}
@keyframes baliGapuraBlessingGlow {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #facc15); opacity: 0.95; }
  50% { transform: scale(1.15) translateY(-6px); filter: drop-shadow(0 0 24px #f97316); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 0.95; }
}
@keyframes palangPintuRebanaBeat {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #f43f5e); }
  50% { transform: translateY(-8px) rotate(12deg) scale(1.18); filter: drop-shadow(0 0 22px #eab308); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes dayakEnggangFeatherSway {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #fb923c); }
  50% { transform: translateY(-8px) rotate(-10deg) scale(1.15); filter: drop-shadow(0 0 22px #ca8a04); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes makassarSalokoGleam {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: scale(1.16) translateY(-7px); filter: drop-shadow(0 0 24px #34d399); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes shintoToriiLanternSway {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #dc2626); }
  50% { transform: translateY(-6px) rotate(-8deg) scale(1.14); filter: drop-shadow(0 0 22px #f87171); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes santoriniBreezeBougainvillea {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #38bdf8); }
  50% { transform: translateY(-8px) scale(1.16) rotate(6deg); filter: drop-shadow(0 0 24px #f43f5e); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes artDecoGatsbyGoldGlint {
  0% { transform: scale(1) rotate(0deg); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: scale(1.18) rotate(14deg); filter: drop-shadow(0 0 24px #ca8a04); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes provenceSunMeadowBreeze {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: translateY(-8px) rotate(-12deg) scale(1.15); filter: drop-shadow(0 0 22px #c084fc); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes castleCarriageSparkleGlide {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #e879f9); }
  50% { transform: scale(1.16) translateY(-8px) rotate(6deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes stainedGlassPrismRefract {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #60a5fa); opacity: 0.9; }
  50% { transform: translateY(-8px) scale(1.18); filter: drop-shadow(0 0 24px #f472b6); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.9; }
}
@keyframes sapphireFacetShimmer {
  0% { transform: rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #38bdf8); }
  50% { transform: rotate(15deg) scale(1.18); filter: drop-shadow(0 0 24px #e2e8f0); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes emeraldLaurelCrownGleam {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #34d399); }
  50% { transform: scale(1.15) translateY(-8px); filter: drop-shadow(0 0 24px #ca8a04); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes acousticGuitarNoteFloat {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #f472b6); }
  50% { transform: translateY(-10px) rotate(12deg) scale(1.18); filter: drop-shadow(0 0 22px #facc15); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes venetianMasqueFloatGlow {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #e879f9); }
  50% { transform: translateY(-8px) rotate(-10deg) scale(1.15); filter: drop-shadow(0 0 24px #ca8a04); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes cabinFireEmbersRise {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #fb923c); }
  50% { transform: translateY(-10px) scale(1.18); filter: drop-shadow(0 0 24px #eab308); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes cappadociaBalloonRiseFloat {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #fb7185); }
  50% { transform: translateY(-12px) scale(1.15) rotate(5deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes waterfallSilverMistRipple {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #38bdf8); }
  50% { transform: translateY(-8px) scale(1.16); filter: drop-shadow(0 0 24px #2dd4bf); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes amalfiLemonBreezeSway {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: translateY(-8px) rotate(-14deg) scale(1.18); filter: drop-shadow(0 0 22px #2dd4bf); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes tahitiLagoonRippleSunset {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #f43f5e); }
  50% { transform: translateY(-7px) scale(1.15) rotate(6deg); filter: drop-shadow(0 0 24px #38bdf8); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes goldenRecordVinylSpin {
  0% { transform: rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: rotate(180deg) scale(1.15); filter: drop-shadow(0 0 24px #f97316); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes captainWingsRadarSweep {
  0% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 10px #38bdf8); }
  50% { transform: translateY(-10px) scale(1.18) rotate(8deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}
@keyframes submersibleSonarPulse {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #2dd4bf); }
  50% { transform: translateY(-8px) scale(1.16) rotate(6deg); filter: drop-shadow(0 0 24px #38bdf8); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes oilRigFlameTorchGlow {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #f59e0b); }
  50% { transform: scale(1.18) translateY(-7px); filter: drop-shadow(0 0 24px #ef4444); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes brainSynapseElectricPulse {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #818cf8); }
  50% { transform: scale(1.18) translateY(-6px); filter: drop-shadow(0 0 24px #38bdf8); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes quantumAtomOrbitSpins {
  0% { transform: rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #c084fc); }
  50% { transform: rotate(180deg) scale(1.2); filter: drop-shadow(0 0 24px #22d3ee); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes padiFieldGoldenBreeze {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: translateY(-8px) rotate(12deg) scale(1.15); filter: drop-shadow(0 0 22px #4ade80); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes pastryChefWhiskFlourSprinkle {
  0% { transform: scale(1) translateY(0) rotate(0deg); filter: drop-shadow(0 0 10px #fb923c); }
  50% { transform: scale(1.18) translateY(-8px) rotate(-10deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: scale(1) translateY(0) rotate(0deg); }
}
@keyframes broadcastOnAirSignalFlash {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #ef4444); opacity: 0.9; }
  50% { transform: scale(1.18) translateY(-6px); filter: drop-shadow(0 0 24px #38bdf8); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 0.9; }
}
@keyframes bridgeCableSuspensionGlow {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #60a5fa); }
  50% { transform: translateY(-8px) scale(1.16); filter: drop-shadow(0 0 24px #f59e0b); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes cyberForensicsMatrixScan {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #22c55e); }
  50% { transform: scale(1.18) translateY(-6px); filter: drop-shadow(0 0 24px #38bdf8); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes barongsaiLionJumpBlink {
  0% { transform: scale(1) translateY(0) rotate(0deg); filter: drop-shadow(0 0 10px #facc15); }
  25% { transform: scale(1.22) translateY(-10px) rotate(-8deg); filter: drop-shadow(0 0 24px #dc2626); }
  50% { transform: scale(0.95) translateY(2px) rotate(6deg); }
  75% { transform: scale(1.15) translateY(-5px) rotate(-4deg); }
  100% { transform: scale(1) translateY(0) rotate(0deg); }
}
@keyframes torajaTongkonanGleam {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #f97316); }
  50% { transform: translateY(-8px) scale(1.16); filter: drop-shadow(0 0 24px #ca8a04); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes tikiTorchFireDance {
  0% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 10px #fb923c); }
  50% { transform: translateY(-10px) scale(1.2) rotate(10deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}
@keyframes mariachiMaracasShake {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #f43f5e); }
  25% { transform: translateY(-8px) rotate(-16deg) scale(1.18); filter: drop-shadow(0 0 22px #22c55e); }
  50% { transform: translateY(2px) rotate(12deg) scale(0.95); }
  75% { transform: translateY(-5px) rotate(-8deg); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes veniceWaterParadeGlow {
  0% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 10px #818cf8); }
  50% { transform: translateY(-8px) scale(1.16) rotate(6deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}
@keyframes harajukuLaserBeatHop {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #ec4899); }
  40% { transform: translateY(-12px) scale(1.2) rotate(-8deg); filter: drop-shadow(0 0 24px #22d3ee); }
  70% { transform: translateY(2px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes dadakMerakFeatherTremor {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #f59e0b); }
  25% { transform: scale(1.18) translateY(-6px) rotate(6deg); filter: drop-shadow(0 0 24px #ef4444); }
  50% { transform: scale(0.96) translateY(2px) rotate(-4deg); }
  75% { transform: scale(1.12) translateY(-4px) rotate(3deg); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes desertCaravanCampfireWarmth {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #fb923c); }
  50% { transform: translateY(-8px) scale(1.16) rotate(6deg); filter: drop-shadow(0 0 24px #ca8a04); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hanabiMatsuriBurstEpic {
  0% { transform: scale(0.85) rotate(0deg); filter: drop-shadow(0 0 8px #f43f5e); opacity: 0.85; }
  45% { transform: scale(1.3) rotate(15deg); filter: drop-shadow(0 0 28px #facc15); opacity: 1; }
  70% { transform: scale(1.1) rotate(-8deg); filter: drop-shadow(0 0 16px #38bdf8); }
  100% { transform: scale(0.85) rotate(0deg); opacity: 0.85; }
}
@keyframes bigTopCircusAcrobatSwing {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #e11d48); }
  50% { transform: translateY(-10px) rotate(14deg) scale(1.18); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}

@media (prefers-reduced-motion: reduce) {

  /* 50 Additional Templates Reduced Motion Disables */
  .theme-neon-roller-skating-rink .fx-item-1,
  .theme-neon-roller-skating-rink .fx-item-2,
  .theme-neon-roller-skating-rink .fx-item-3,
  .theme-dino-jurassic-safari-expedition .fx-item-1,
  .theme-dino-jurassic-safari-expedition .fx-item-2,
  .theme-dino-jurassic-safari-expedition .fx-item-3,
  .theme-magic-potion-alchemy-party .fx-item-1,
  .theme-magic-potion-alchemy-party .fx-item-2,
  .theme-magic-potion-alchemy-party .fx-item-3,
  .theme-superhero-comic-city-defense .fx-item-1,
  .theme-superhero-comic-city-defense .fx-item-2,
  .theme-superhero-comic-city-defense .fx-item-3,
  .theme-kawaii-boba-pastel-tea .fx-item-1,
  .theme-kawaii-boba-pastel-tea .fx-item-2,
  .theme-kawaii-boba-pastel-tea .fx-item-3,
  .theme-karting-championship-raceway .fx-item-1,
  .theme-karting-championship-raceway .fx-item-2,
  .theme-karting-championship-raceway .fx-item-3,
  .theme-space-rover-mars-colonizer .fx-item-1,
  .theme-space-rover-mars-colonizer .fx-item-2,
  .theme-space-rover-mars-colonizer .fx-item-3,
  .theme-fairy-enchanted-woodland-glade .fx-item-1,
  .theme-fairy-enchanted-woodland-glade .fx-item-2,
  .theme-fairy-enchanted-woodland-glade .fx-item-3,
  .theme-aquarium-sea-turtle-reef .fx-item-1,
  .theme-aquarium-sea-turtle-reef .fx-item-2,
  .theme-aquarium-sea-turtle-reef .fx-item-3,
  .theme-pirate-skull-island-voyage .fx-item-1,
  .theme-pirate-skull-island-voyage .fx-item-2,
  .theme-pirate-skull-island-voyage .fx-item-3,
  .theme-bali-puri-royal-agung .fx-item-1,
  .theme-bali-puri-royal-agung .fx-item-2,
  .theme-bali-puri-royal-agung .fx-item-3,
  .theme-betawi-palang-pintu-delman .fx-item-1,
  .theme-betawi-palang-pintu-delman .fx-item-2,
  .theme-betawi-palang-pintu-delman .fx-item-3,
  .theme-dayak-hudoq-borneo-royalty .fx-item-1,
  .theme-dayak-hudoq-borneo-royalty .fx-item-2,
  .theme-dayak-hudoq-borneo-royalty .fx-item-3,
  .theme-makassar-baju-bodo-silk .fx-item-1,
  .theme-makassar-baju-bodo-silk .fx-item-2,
  .theme-makassar-baju-bodo-silk .fx-item-3,
  .theme-kyoto-shinto-zen-sanctuary .fx-item-1,
  .theme-kyoto-shinto-zen-sanctuary .fx-item-2,
  .theme-kyoto-shinto-zen-sanctuary .fx-item-3,
  .theme-santorini-cliffside-bougainvillea .fx-item-1,
  .theme-santorini-cliffside-bougainvillea .fx-item-2,
  .theme-santorini-cliffside-bougainvillea .fx-item-3,
  .theme-art-deco-great-gatsby-gala .fx-item-1,
  .theme-art-deco-great-gatsby-gala .fx-item-2,
  .theme-art-deco-great-gatsby-gala .fx-item-3,
  .theme-provence-lavender-sunflower-meadow .fx-item-1,
  .theme-provence-lavender-sunflower-meadow .fx-item-2,
  .theme-provence-lavender-sunflower-meadow .fx-item-3,
  .theme-castle-fairytale-enchanted-gates .fx-item-1,
  .theme-castle-fairytale-enchanted-gates .fx-item-2,
  .theme-castle-fairytale-enchanted-gates .fx-item-3,
  .theme-crystal-cathedral-stained-glass .fx-item-1,
  .theme-crystal-cathedral-stained-glass .fx-item-2,
  .theme-crystal-cathedral-stained-glass .fx-item-3,
  .theme-sapphire-45th-royal-jubilee .fx-item-1,
  .theme-sapphire-45th-royal-jubilee .fx-item-2,
  .theme-sapphire-45th-royal-jubilee .fx-item-3,
  .theme-emerald-55th-eternal-devotion .fx-item-1,
  .theme-emerald-55th-eternal-devotion .fx-item-2,
  .theme-emerald-55th-eternal-devotion .fx-item-3,
  .theme-starlight-rooftop-acoustic-duet .fx-item-1,
  .theme-starlight-rooftop-acoustic-duet .fx-item-2,
  .theme-starlight-rooftop-acoustic-duet .fx-item-3,
  .theme-venetian-carnival-duet-masque .fx-item-1,
  .theme-venetian-carnival-duet-masque .fx-item-2,
  .theme-venetian-carnival-duet-masque .fx-item-3,
  .theme-cozy-log-cabin-autumn-embers .fx-item-1,
  .theme-cozy-log-cabin-autumn-embers .fx-item-2,
  .theme-cozy-log-cabin-autumn-embers .fx-item-3,
  .theme-hot-air-balloon-cappadocia-sunrise .fx-item-1,
  .theme-hot-air-balloon-cappadocia-sunrise .fx-item-2,
  .theme-hot-air-balloon-cappadocia-sunrise .fx-item-3,
  .theme-moonlit-waterfall-serenade .fx-item-1,
  .theme-moonlit-waterfall-serenade .fx-item-2,
  .theme-moonlit-waterfall-serenade .fx-item-3,
  .theme-amalfi-coast-lemon-terrace .fx-item-1,
  .theme-amalfi-coast-lemon-terrace .fx-item-2,
  .theme-amalfi-coast-lemon-terrace .fx-item-3,
  .theme-tahiti-overwater-bungalow-sunset .fx-item-1,
  .theme-tahiti-overwater-bungalow-sunset .fx-item-2,
  .theme-tahiti-overwater-bungalow-sunset .fx-item-3,
  .theme-golden-record-timeless-melody .fx-item-1,
  .theme-golden-record-timeless-melody .fx-item-2,
  .theme-golden-record-timeless-melody .fx-item-3,
  .theme-aviation-flight-captain-wings .fx-item-1,
  .theme-aviation-flight-captain-wings .fx-item-2,
  .theme-aviation-flight-captain-wings .fx-item-3,
  .theme-marine-oceanography-deep-dive .fx-item-1,
  .theme-marine-oceanography-deep-dive .fx-item-2,
  .theme-marine-oceanography-deep-dive .fx-item-3,
  .theme-petroleum-mining-engineering-gold .fx-item-1,
  .theme-petroleum-mining-engineering-gold .fx-item-2,
  .theme-petroleum-mining-engineering-gold .fx-item-3,
  .theme-neurology-brain-neuroscience-pulse .fx-item-1,
  .theme-neurology-brain-neuroscience-pulse .fx-item-2,
  .theme-neurology-brain-neuroscience-pulse .fx-item-3,
  .theme-quantum-computing-physicist .fx-item-1,
  .theme-quantum-computing-physicist .fx-item-2,
  .theme-quantum-computing-physicist .fx-item-3,
  .theme-agricultural-agronomy-green-harvest .fx-item-1,
  .theme-agricultural-agronomy-green-harvest .fx-item-2,
  .theme-agricultural-agronomy-green-harvest .fx-item-3,
  .theme-culinary-pastry-chef-patisserie .fx-item-1,
  .theme-culinary-pastry-chef-patisserie .fx-item-2,
  .theme-culinary-pastry-chef-patisserie .fx-item-3,
  .theme-journalism-broadcast-media-producer .fx-item-1,
  .theme-journalism-broadcast-media-producer .fx-item-2,
  .theme-journalism-broadcast-media-producer .fx-item-3,
  .theme-civil-infrastructure-bridge-builder .fx-item-1,
  .theme-civil-infrastructure-bridge-builder .fx-item-2,
  .theme-civil-infrastructure-bridge-builder .fx-item-3,
  .theme-cyber-forensics-security-analyst .fx-item-1,
  .theme-cyber-forensics-security-analyst .fx-item-2,
  .theme-cyber-forensics-security-analyst .fx-item-3,
  .theme-barongsai-lion-dance-festival .fx-item-1,
  .theme-barongsai-lion-dance-festival .fx-item-2,
  .theme-barongsai-lion-dance-festival .fx-item-3,
  .theme-toraja-rambu-solo-kabana .fx-item-1,
  .theme-toraja-rambu-solo-kabana .fx-item-2,
  .theme-toraja-rambu-solo-kabana .fx-item-3,
  .theme-hawaian-luau-tiki-torch .fx-item-1,
  .theme-hawaian-luau-tiki-torch .fx-item-2,
  .theme-hawaian-luau-tiki-torch .fx-item-3,
  .theme-mexican-fiesta-mariachi-maracas .fx-item-1,
  .theme-mexican-fiesta-mariachi-maracas .fx-item-2,
  .theme-mexican-fiesta-mariachi-maracas .fx-item-3,
  .theme-carnival-venice-water-parade .fx-item-1,
  .theme-carnival-venice-water-parade .fx-item-2,
  .theme-carnival-venice-water-parade .fx-item-3,
  .theme-harajuku-cyber-jpop-festival .fx-item-1,
  .theme-harajuku-cyber-jpop-festival .fx-item-2,
  .theme-harajuku-cyber-jpop-festival .fx-item-3,
  .theme-reog-ponorogo-singa-barong .fx-item-1,
  .theme-reog-ponorogo-singa-barong .fx-item-2,
  .theme-reog-ponorogo-singa-barong .fx-item-3,
  .theme-maroccan-desert-caravan-oasis .fx-item-1,
  .theme-maroccan-desert-caravan-oasis .fx-item-2,
  .theme-maroccan-desert-caravan-oasis .fx-item-3,
  .theme-festival-kembang-api-hanabi-matsuri .fx-item-1,
  .theme-festival-kembang-api-hanabi-matsuri .fx-item-2,
  .theme-festival-kembang-api-hanabi-matsuri .fx-item-3,
  .theme-circus-grand-carnival-bigtop .fx-item-1,
  .theme-circus-grand-carnival-bigtop .fx-item-2,
  .theme-circus-grand-carnival-bigtop .fx-item-3,

  /* 40 New Templates Reduced Motion Disables */
  .theme-dino-jurassic-adventure .fx-item-1,
  .theme-dino-jurassic-adventure .fx-item-2,
  .theme-dino-jurassic-adventure .fx-item-3,
  .theme-space-astronot-kosmik .fx-item-1,
  .theme-space-astronot-kosmik .fx-item-2,
  .theme-space-astronot-kosmik .fx-item-3,
  .theme-sweet-sixteen-glitz .fx-item-1,
  .theme-sweet-sixteen-glitz .fx-item-2,
  .theme-sweet-sixteen-glitz .fx-item-3,
  .theme-gamer-level-up-quest .fx-item-1,
  .theme-gamer-level-up-quest .fx-item-2,
  .theme-gamer-level-up-quest .fx-item-3,
  .theme-matcha-tea-garden .fx-item-1,
  .theme-matcha-tea-garden .fx-item-2,
  .theme-matcha-tea-garden .fx-item-3,
  .theme-circus-vintage-carnival .fx-item-1,
  .theme-circus-vintage-carnival .fx-item-2,
  .theme-circus-vintage-carnival .fx-item-3,
  .theme-sweet-sixty-golden-age .fx-item-1,
  .theme-sweet-sixty-golden-age .fx-item-2,
  .theme-sweet-sixty-golden-age .fx-item-3,
  .theme-roller-skate-disco-funk .fx-item-1,
  .theme-roller-skate-disco-funk .fx-item-2,
  .theme-roller-skate-disco-funk .fx-item-3,
  .theme-perak-25th-silver-anniversary .fx-item-1,
  .theme-perak-25th-silver-anniversary .fx-item-2,
  .theme-perak-25th-silver-anniversary .fx-item-3,
  .theme-lavender-provence-fields .fx-item-1,
  .theme-lavender-provence-fields .fx-item-2,
  .theme-lavender-provence-fields .fx-item-3,
  .theme-paris-eiffel-twilight .fx-item-1,
  .theme-paris-eiffel-twilight .fx-item-2,
  .theme-paris-eiffel-twilight .fx-item-3,
  .theme-candlelight-jazz-loft .fx-item-1,
  .theme-candlelight-jazz-loft .fx-item-2,
  .theme-candlelight-jazz-loft .fx-item-3,
  .theme-cherry-blossom-kyoto .fx-item-1,
  .theme-cherry-blossom-kyoto .fx-item-2,
  .theme-cherry-blossom-kyoto .fx-item-3,
  .theme-desert-glamping-stargaze .fx-item-1,
  .theme-desert-glamping-stargaze .fx-item-2,
  .theme-desert-glamping-stargaze .fx-item-3,
  .theme-cozy-fireplace-chalet .fx-item-1,
  .theme-cozy-fireplace-chalet .fx-item-2,
  .theme-cozy-fireplace-chalet .fx-item-3,
  .theme-love-lock-pont-des-arts .fx-item-1,
  .theme-love-lock-pont-des-arts .fx-item-2,
  .theme-love-lock-pont-des-arts .fx-item-3,
  .theme-sunda-silih-asih .fx-item-1,
  .theme-sunda-silih-asih .fx-item-2,
  .theme-sunda-silih-asih .fx-item-3,
  .theme-toraja-tongkonan-gold .fx-item-1,
  .theme-toraja-tongkonan-gold .fx-item-2,
  .theme-toraja-tongkonan-gold .fx-item-3,
  .theme-palembang-aesan-gede .fx-item-1,
  .theme-palembang-aesan-gede .fx-item-2,
  .theme-palembang-aesan-gede .fx-item-3,
  .theme-glasshouse-botanical-greenhouse .fx-item-1,
  .theme-glasshouse-botanical-greenhouse .fx-item-2,
  .theme-glasshouse-botanical-greenhouse .fx-item-3,
  .theme-uluwatu-cliff-ocean-sunset .fx-item-1,
  .theme-uluwatu-cliff-ocean-sunset .fx-item-2,
  .theme-uluwatu-cliff-ocean-sunset .fx-item-3,
  .theme-versailles-baroque-palace .fx-item-1,
  .theme-versailles-baroque-palace .fx-item-2,
  .theme-versailles-baroque-palace .fx-item-3,
  .theme-boho-desert-pampas .fx-item-1,
  .theme-boho-desert-pampas .fx-item-2,
  .theme-boho-desert-pampas .fx-item-3,
  .theme-garden-pergola-white-rose .fx-item-1,
  .theme-garden-pergola-white-rose .fx-item-2,
  .theme-garden-pergola-white-rose .fx-item-3,
  .theme-farmasi-apoteker-mortar .fx-item-1,
  .theme-farmasi-apoteker-mortar .fx-item-2,
  .theme-farmasi-apoteker-mortar .fx-item-3,
  .theme-akpol-akmil-perwira-pedang .fx-item-1,
  .theme-akpol-akmil-perwira-pedang .fx-item-2,
  .theme-akpol-akmil-perwira-pedang .fx-item-3,
  .theme-seni-desain-kreatif-portfolio .fx-item-1,
  .theme-seni-desain-kreatif-portfolio .fx-item-2,
  .theme-seni-desain-kreatif-portfolio .fx-item-3,
  .theme-psikologi-klinis-humaniora .fx-item-1,
  .theme-psikologi-klinis-humaniora .fx-item-2,
  .theme-psikologi-klinis-humaniora .fx-item-3,
  .theme-it-ai-computer-science .fx-item-1,
  .theme-it-ai-computer-science .fx-item-2,
  .theme-it-ai-computer-science .fx-item-3,
  .theme-pilot-wing-aviation .fx-item-1,
  .theme-pilot-wing-aviation .fx-item-2,
  .theme-pilot-wing-aviation .fx-item-3,
  .theme-arsitektur-lanskap-hijau .fx-item-1,
  .theme-arsitektur-lanskap-hijau .fx-item-2,
  .theme-arsitektur-lanskap-hijau .fx-item-3,
  .theme-doktor-riset-promosi-phd .fx-item-1,
  .theme-doktor-riset-promosi-phd .fx-item-2,
  .theme-doktor-riset-promosi-phd .fx-item-3,
  .theme-syukuran-rumah-skandinavia .fx-item-1,
  .theme-syukuran-rumah-skandinavia .fx-item-2,
  .theme-syukuran-rumah-skandinavia .fx-item-3,
  .theme-ramadhan-iftar-berkah .fx-item-1,
  .theme-ramadhan-iftar-berkah .fx-item-2,
  .theme-ramadhan-iftar-berkah .fx-item-3,
  .theme-waisak-borobudur-lantern .fx-item-1,
  .theme-waisak-borobudur-lantern .fx-item-2,
  .theme-waisak-borobudur-lantern .fx-item-3,
  .theme-pesta-panen-kopi-nusantara .fx-item-1,
  .theme-pesta-panen-kopi-nusantara .fx-item-2,
  .theme-pesta-panen-kopi-nusantara .fx-item-3,
  .theme-pagelaran-wayang-kulit .fx-item-1,
  .theme-pagelaran-wayang-kulit .fx-item-2,
  .theme-pagelaran-wayang-kulit .fx-item-3,
  .theme-donor-darah-kemanusiaan .fx-item-1,
  .theme-donor-darah-kemanusiaan .fx-item-2,
  .theme-donor-darah-kemanusiaan .fx-item-3,
  .theme-peresmian-bistro-kuliner .fx-item-1,
  .theme-peresmian-bistro-kuliner .fx-item-2,
  .theme-peresmian-bistro-kuliner .fx-item-3,
  .theme-konser-akustik-indie-senja .fx-item-1,
  .theme-konser-akustik-indie-senja .fx-item-2,
  .theme-konser-akustik-indie-senja .fx-item-3,

  /* 20 New Undangan Reduced Motion Disables */
  .theme-khitanan-barokah-nusantara .fx-item-1,
  .theme-khitanan-barokah-nusantara .fx-item-2,
  .theme-khitanan-barokah-nusantara .fx-item-3,
  .theme-reuni-akbar-nostalgia .fx-item-1,
  .theme-reuni-akbar-nostalgia .fx-item-2,
  .theme-reuni-akbar-nostalgia .fx-item-3,
  .theme-sunset-bbq-garden-party .fx-item-1,
  .theme-sunset-bbq-garden-party .fx-item-2,
  .theme-sunset-bbq-garden-party .fx-item-3,
  .theme-siraman-pengajian-jawa .fx-item-1,
  .theme-siraman-pengajian-jawa .fx-item-2,
  .theme-siraman-pengajian-jawa .fx-item-3,
  .theme-akad-glassmorphism-aurora .fx-item-1,
  .theme-akad-glassmorphism-aurora .fx-item-2,
  .theme-akad-glassmorphism-aurora .fx-item-3,
  .theme-lamaran-peony-blush .fx-item-1,
  .theme-lamaran-peony-blush .fx-item-2,
  .theme-lamaran-peony-blush .fx-item-3,
  .theme-grand-opening-ceremony .fx-item-1,
  .theme-grand-opening-ceremony .fx-item-2,
  .theme-grand-opening-ceremony .fx-item-3,
  .theme-sleepover-slumber-party .fx-item-1,
  .theme-sleepover-slumber-party .fx-item-2,
  .theme-sleepover-slumber-party .fx-item-3,
  .theme-summer-pool-party .fx-item-1,
  .theme-summer-pool-party .fx-item-2,
  .theme-summer-pool-party .fx-item-3,
  .theme-peluncuran-buku-penulis .fx-item-1,
  .theme-peluncuran-buku-penulis .fx-item-2,
  .theme-peluncuran-buku-penulis .fx-item-3,
  .theme-aqiqah-safari-pastel .fx-item-1,
  .theme-aqiqah-safari-pastel .fx-item-2,
  .theme-aqiqah-safari-pastel .fx-item-3,
  .theme-batak-ulos-gorga .fx-item-1,
  .theme-batak-ulos-gorga .fx-item-2,
  .theme-batak-ulos-gorga .fx-item-3,
  .theme-wisuda-dental-dentist .fx-item-1,
  .theme-wisuda-dental-dentist .fx-item-2,
  .theme-wisuda-dental-dentist .fx-item-3,
  .theme-wisuda-hukum-lex-justitia .fx-item-1,
  .theme-wisuda-hukum-lex-justitia .fx-item-2,
  .theme-wisuda-hukum-lex-justitia .fx-item-3,
  .theme-vernissage-galeri-seni .fx-item-1,
  .theme-vernissage-galeri-seni .fx-item-2,
  .theme-vernissage-galeri-seni .fx-item-3,
  .theme-pantai-sunset-beach-wedding .fx-item-1,
  .theme-pantai-sunset-beach-wedding .fx-item-2,
  .theme-pantai-sunset-beach-wedding .fx-item-3,
  .theme-golden-50th-anniversary .fx-item-1,
  .theme-golden-50th-anniversary .fx-item-2,
  .theme-golden-50th-anniversary .fx-item-3,
  .theme-wisuda-magister-doktor .fx-item-1,
  .theme-wisuda-magister-doktor .fx-item-2,
  .theme-wisuda-magister-doktor .fx-item-3,
  .theme-venetian-masquerade-ball .fx-item-1,
  .theme-venetian-masquerade-ball .fx-item-2,
  .theme-venetian-masquerade-ball .fx-item-3,
  .theme-tahun-baru-countdown-gala .fx-item-1,
  .theme-tahun-baru-countdown-gala .fx-item-2,
  .theme-tahun-baru-countdown-gala .fx-item-3,
  .theme-cyber-hologram-party .fx-item-1,
  .theme-cyber-hologram-party .fx-item-2,
  .theme-cyber-hologram-party .fx-item-3,
  .theme-safari-jungle-carnival .fx-item-1,
  .theme-safari-jungle-carnival .fx-item-2,
  .theme-safari-jungle-carnival .fx-item-3,
  .theme-magic-wizard-academy .fx-item-1,
  .theme-magic-wizard-academy .fx-item-2,
  .theme-magic-wizard-academy .fx-item-3,
  .theme-candy-wonderland-pop .fx-item-1,
  .theme-candy-wonderland-pop .fx-item-2,
  .theme-candy-wonderland-pop .fx-item-3,
  .theme-pirate-treasure-island .fx-item-1,
  .theme-pirate-treasure-island .fx-item-2,
  .theme-pirate-treasure-island .fx-item-3,
  .theme-supercar-speed-grand-prix .fx-item-1,
  .theme-supercar-speed-grand-prix .fx-item-2,
  .theme-supercar-speed-grand-prix .fx-item-3,
  .theme-space-alien-ufo-odyssey .fx-item-1,
  .theme-space-alien-ufo-odyssey .fx-item-2,
  .theme-space-alien-ufo-odyssey .fx-item-3,
  .theme-mermaid-underwater-coral .fx-item-1,
  .theme-mermaid-underwater-coral .fx-item-2,
  .theme-mermaid-underwater-coral .fx-item-3,
  .theme-super-chef-cooking-gala .fx-item-1,
  .theme-super-chef-cooking-gala .fx-item-2,
  .theme-super-chef-cooking-gala .fx-item-3,
  .theme-golden-balloon-fiesta .fx-item-1,
  .theme-golden-balloon-fiesta .fx-item-2,
  .theme-golden-balloon-fiesta .fx-item-3,
  .theme-aurora-boreal-nordic-love .fx-item-1,
  .theme-aurora-boreal-nordic-love .fx-item-2,
  .theme-aurora-boreal-nordic-love .fx-item-3,
  .theme-venice-gondola-serenade .fx-item-1,
  .theme-venice-gondola-serenade .fx-item-2,
  .theme-venice-gondola-serenade .fx-item-3,
  .theme-autumn-maple-whisper .fx-item-1,
  .theme-autumn-maple-whisper .fx-item-2,
  .theme-autumn-maple-whisper .fx-item-3,
  .theme-diamond-forever-jubilee .fx-item-1,
  .theme-diamond-forever-jubilee .fx-item-2,
  .theme-diamond-forever-jubilee .fx-item-3,
  .theme-santorini-sunset-bliss .fx-item-1,
  .theme-santorini-sunset-bliss .fx-item-2,
  .theme-santorini-sunset-bliss .fx-item-3,
  .theme-moonlight-lake-swan .fx-item-1,
  .theme-moonlight-lake-swan .fx-item-2,
  .theme-moonlight-lake-swan .fx-item-3,
  .theme-tuscany-vineyard-romance .fx-item-1,
  .theme-tuscany-vineyard-romance .fx-item-2,
  .theme-tuscany-vineyard-romance .fx-item-3,
  .theme-stargazing-celestial-dome .fx-item-1,
  .theme-stargazing-celestial-dome .fx-item-2,
  .theme-stargazing-celestial-dome .fx-item-3,
  .theme-ruby-40th-anniversary .fx-item-1,
  .theme-ruby-40th-anniversary .fx-item-2,
  .theme-ruby-40th-anniversary .fx-item-3,
  .theme-casablanca-mon-amour .fx-item-1,
  .theme-casablanca-mon-amour .fx-item-2,
  .theme-casablanca-mon-amour .fx-item-3,
  .theme-aceh-pinto-khop-mahkota .fx-item-1,
  .theme-aceh-pinto-khop-mahkota .fx-item-2,
  .theme-aceh-pinto-khop-mahkota .fx-item-3,
  .theme-banjar-baamar-alas .fx-item-1,
  .theme-banjar-baamar-alas .fx-item-2,
  .theme-banjar-baamar-alas .fx-item-3,
  .theme-lampung-siger-agung .fx-item-1,
  .theme-lampung-siger-agung .fx-item-2,
  .theme-lampung-siger-agung .fx-item-3,
  .theme-papua-cendrawasih-harmony .fx-item-1,
  .theme-papua-cendrawasih-harmony .fx-item-2,
  .theme-papua-cendrawasih-harmony .fx-item-3,
  .theme-cinderella-glass-carriage .fx-item-1,
  .theme-cinderella-glass-carriage .fx-item-2,
  .theme-cinderella-glass-carriage .fx-item-3,
  .theme-gothic-victorian-glamour .fx-item-1,
  .theme-gothic-victorian-glamour .fx-item-2,
  .theme-gothic-victorian-glamour .fx-item-3,
  .theme-moroccan-tent-oasis .fx-item-1,
  .theme-moroccan-tent-oasis .fx-item-2,
  .theme-moroccan-tent-oasis .fx-item-3,
  .theme-zen-shinto-bamboo-wedding .fx-item-1,
  .theme-zen-shinto-bamboo-wedding .fx-item-2,
  .theme-zen-shinto-bamboo-wedding .fx-item-3,
  .theme-bohemian-macrame-sunset .fx-item-1,
  .theme-bohemian-macrame-sunset .fx-item-2,
  .theme-bohemian-macrame-sunset .fx-item-3,
  .theme-celestial-galaxy-nuptials .fx-item-1,
  .theme-celestial-galaxy-nuptials .fx-item-2,
  .theme-celestial-galaxy-nuptials .fx-item-3,
  .theme-maritime-kapten-pelayaran .fx-item-1,
  .theme-maritime-kapten-pelayaran .fx-item-2,
  .theme-maritime-kapten-pelayaran .fx-item-3,
  .theme-culinary-arts-mastery .fx-item-1,
  .theme-culinary-arts-mastery .fx-item-2,
  .theme-culinary-arts-mastery .fx-item-3,
  .theme-veterinary-animal-healer .fx-item-1,
  .theme-veterinary-animal-healer .fx-item-2,
  .theme-veterinary-animal-healer .fx-item-3,
  .theme-music-conservatory-maestro .fx-item-1,
  .theme-music-conservatory-maestro .fx-item-2,
  .theme-music-conservatory-maestro .fx-item-3,
  .theme-aerospace-rocket-engineer .fx-item-1,
  .theme-aerospace-rocket-engineer .fx-item-2,
  .theme-aerospace-rocket-engineer .fx-item-3,
  .theme-fine-arts-sculptor-studio .fx-item-1,
  .theme-fine-arts-sculptor-studio .fx-item-2,
  .theme-fine-arts-sculptor-studio .fx-item-3,
  .theme-diplomatic-international-relations .fx-item-1,
  .theme-diplomatic-international-relations .fx-item-2,
  .theme-diplomatic-international-relations .fx-item-3,
  .theme-cyber-security-hacker-defense .fx-item-1,
  .theme-cyber-security-hacker-defense .fx-item-2,
  .theme-cyber-security-hacker-defense .fx-item-3,
  .theme-environmental-green-forestry .fx-item-1,
  .theme-environmental-green-forestry .fx-item-2,
  .theme-environmental-green-forestry .fx-item-3,
  .theme-astronomy-astrophysics-phd .fx-item-1,
  .theme-astronomy-astrophysics-phd .fx-item-2,
  .theme-astronomy-astrophysics-phd .fx-item-3,
  .theme-festival-lampion-terbang .fx-item-1,
  .theme-festival-lampion-terbang .fx-item-2,
  .theme-festival-lampion-terbang .fx-item-3,
  .theme-tahfidz-quran-khataman .fx-item-1,
  .theme-tahfidz-quran-khataman .fx-item-2,
  .theme-tahfidz-quran-khataman .fx-item-3,
  .theme-housewarming-villa-tropis .fx-item-1,
  .theme-housewarming-villa-tropis .fx-item-2,
  .theme-housewarming-villa-tropis .fx-item-3,
  .theme-pesta-barbeque-pantai .fx-item-1,
  .theme-pesta-barbeque-pantai .fx-item-2,
  .theme-pesta-barbeque-pantai .fx-item-3,
  .theme-carnival-rio-samba .fx-item-1,
  .theme-carnival-rio-samba .fx-item-2,
  .theme-carnival-rio-samba .fx-item-3,
  .theme-pesta-taman-vintage-tea .fx-item-1,
  .theme-pesta-taman-vintage-tea .fx-item-2,
  .theme-pesta-taman-vintage-tea .fx-item-3,
  .theme-inagurasi-ceo-korporat .fx-item-1,
  .theme-inagurasi-ceo-korporat .fx-item-2,
  .theme-inagurasi-ceo-korporat .fx-item-3,
  .theme-festival-layang-layang-pantai .fx-item-1,
  .theme-festival-layang-layang-pantai .fx-item-2,
  .theme-festival-layang-layang-pantai .fx-item-3,
  .theme-oktoberfest-bavarian-cheers .fx-item-1,
  .theme-oktoberfest-bavarian-cheers .fx-item-2,
  .theme-oktoberfest-bavarian-cheers .fx-item-3,
  .theme-festival-kembang-api-milenium .fx-item-1,
  .theme-festival-kembang-api-milenium .fx-item-2,
  .theme-festival-kembang-api-milenium .fx-item-3,
  .theme-placeholder-dummy { animation: none !important; }

  .theme-tirai-teater-broadway .fx-door-left,
  .theme-tirai-teater-broadway .fx-door-right,
  .theme-tirai-teater-broadway .fx-beam,
  .theme-pesiar-sunset-ocean .fx-item-1,
  .theme-pesiar-sunset-ocean .fx-item-2,
  .theme-taman-kunang-kunang .fx-item-1,
  .theme-taman-kunang-kunang .fx-item-2,
  .theme-kincir-festival-sakura .fx-item-1,
  .theme-kincir-festival-sakura .fx-item-2,
  .theme-disko-retro-neon .fx-item-1,
  .theme-disko-retro-neon .fx-beam,
  .theme-jawa-keraton-gunungan .fx-door-left,
  .theme-jawa-keraton-gunungan .fx-door-right,
  .theme-kastil-neuschwanstein .fx-item-2,
  .theme-salju-wonderland .fx-item-1,
  .theme-salju-wonderland .fx-item-2,
  .theme-taman-kupu-kupu-flora .fx-item-1,
  .theme-piramida-arabian-nights .fx-item-2,
  .theme-royal-emerald .fx-beam,
  .theme-sakura-blossom .fx-item-1,
  .theme-sakura-blossom .fx-item-2,
  .theme-sakura-blossom .fx-item-3,
  .theme-sakura-blossom .fx-item-4,
  .theme-sakura-blossom .fx-item-5,
  .theme-sakura-blossom .fx-item-6,
  .theme-wisuda-prestise .fx-item-1,
  .theme-wisuda-prestise .fx-item-2,
  .theme-wisuda-prestise .fx-item-3,
  .theme-galaxy-aurora .fx-mesh,
  .theme-festive-carnival .fx-item-1,
  .theme-festive-carnival .fx-item-2,
  .theme-oriental-lantern .fx-item-1,
  .theme-oriental-lantern .fx-item-2,
  .theme-ocean-pearl .fx-mesh,
  .theme-ocean-pearl .fx-beam,
  .theme-minimalist-monochrome .fx-beam,
  .theme-lebaran-fitri .fx-item-1,
  .theme-champagne-glamour .fx-item-1,
  .theme-champagne-glamour .fx-item-2,
  .theme-champagne-glamour .fx-item-3,
  .theme-champagne-glamour .fx-item-4,
  .theme-champagne-glamour .fx-item-5,
  .theme-champagne-glamour .fx-item-6,
  .theme-champagne-glamour .fx-item-7,
  .theme-champagne-glamour .fx-item-8,
  .theme-vintage-romantic .fx-frame-glow,
  .theme-vintage-romantic .fx-item-1,
  .theme-vintage-romantic .fx-item-2,
  .theme-vintage-romantic .fx-item-3,
  .theme-vintage-romantic .fx-item-4,
  .theme-tiup-lilin-kue .fx-mesh,
  .theme-tiup-lilin-kue .fx-item-1,
  .theme-tiup-lilin-kue .fx-item-2,
  .theme-amplop-surat-cinta .fx-door-left,
  .theme-amplop-surat-cinta .fx-door-right,
  .theme-amplop-surat-cinta .fx-item-1,
  .theme-golden-gate-wedding .fx-door-left,
  .theme-golden-gate-wedding .fx-door-right,
  .theme-golden-gate-wedding .fx-item-1,
  .theme-pesta-balon-udara .fx-item-1,
  .theme-pesta-balon-udara .fx-item-2,
  .theme-lilin-aroma-spa .fx-mesh,
  .theme-lilin-aroma-spa .fx-item-1,
  .theme-amplop-bordir-songket .fx-beam,
  .theme-kembang-api-milestone .fx-item-1,
  .theme-kembang-api-milestone .fx-item-2,
  .theme-wisuda-topi-toga .fx-item-1,
  .theme-wisuda-topi-toga .fx-item-2,
  .theme-petik-bintang-nebula .fx-mesh,
  .theme-petik-bintang-nebula .fx-item-1,
  .theme-undangan-pintu-ukir-bali .fx-door-left,
  .theme-undangan-pintu-ukir-bali .fx-door-right,
  .theme-undangan-pintu-ukir-bali .fx-item-1,
  .theme-cyberpunk-arcade-pixel .fx-item-1,
  .theme-cyberpunk-arcade-pixel .fx-item-2,
  .theme-cyberpunk-arcade-pixel .fx-beam,
  .theme-boho-safari-watercolor .fx-item-1,
  .theme-boho-safari-watercolor .fx-item-2,
  .theme-superhero-comic-boom .fx-item-1,
  .theme-superhero-comic-boom .fx-item-2,
  .theme-underwater-aquarium-glow .fx-item-1,
  .theme-underwater-aquarium-glow .fx-item-2,
  .theme-underwater-aquarium-glow .fx-mesh,
  .theme-vinyl-jazz-noir .fx-item-1,
  .theme-vinyl-jazz-noir .fx-item-2,
  .theme-vinyl-jazz-noir .fx-beam,
  .theme-starlit-campfire-glamping .fx-item-1,
  .theme-starlit-campfire-glamping .fx-item-2,
  .theme-origami-crane-serenade .fx-item-1,
  .theme-origami-crane-serenade .fx-item-2,
  .theme-rooftop-cinema-under-stars .fx-item-1,
  .theme-rooftop-cinema-under-stars .fx-item-2,
  .theme-rooftop-cinema-under-stars .fx-beam,
  .theme-rustic-barn-wooden .fx-item-1,
  .theme-rustic-barn-wooden .fx-item-2,
  .theme-maroko-riadh-mosaic .fx-item-1,
  .theme-maroko-riadh-mosaic .fx-item-2,
  .theme-maroko-riadh-mosaic .fx-item-3,
  .theme-minang-rumah-gadang .fx-item-1,
  .theme-minang-rumah-gadang .fx-item-2,
  .theme-nordic-fjord-aurora .fx-item-1,
  .theme-nordic-fjord-aurora .fx-item-2,
  .theme-nordic-fjord-aurora .fx-mesh,
  .theme-summa-cum-laude-gold .fx-item-1,
  .theme-summa-cum-laude-gold .fx-item-2,
  .theme-summa-cum-laude-gold .fx-item-3,
  .theme-summa-cum-laude-gold .fx-beam,
  .theme-blueprint-arsitek-teknik .fx-item-1,
  .theme-blueprint-arsitek-teknik .fx-item-2,
  .theme-blueprint-arsitek-teknik .fx-mesh,
  .theme-stetoskop-medika-hippocrates .fx-item-1,
  .theme-stetoskop-medika-hippocrates .fx-item-2,
  .theme-buku-literasi-scholar .fx-item-1,
  .theme-buku-literasi-scholar .fx-item-2,
  .theme-akikah-baby-cloud .fx-item-1,
  .theme-akikah-baby-cloud .fx-item-2,
  .theme-housewarming-tedak-siten .fx-item-1,
  .theme-housewarming-tedak-siten .fx-item-2,
  .theme-chinese-new-year-dragon .fx-item-1,
  .theme-chinese-new-year-dragon .fx-item-2,
  .theme-chinese-new-year-dragon .fx-item-4,
  .theme-tedak-siten-jawa-tradisi .fx-item-1,
  .theme-tedak-siten-jawa-tradisi .fx-item-2,
  .candle-flame-halo .flame-outer,
  .candle-smoke-rise .smoke-trail {
    animation: none !important;
  }
}

/* Tipografi Dinamis pada Kartu */
.greeting-card.font-playfair .card-title-text,
.greeting-card.font-playfair .card-recipient-name {
  font-family: var(--font-serif-display);
}

.greeting-card.font-cinzel .card-title-text,
.greeting-card.font-cinzel .card-recipient-name {
  font-family: var(--font-serif-royal);
  letter-spacing: 0.05em;
}

.greeting-card.font-sans .card-title-text,
.greeting-card.font-sans .card-recipient-name {
  font-family: var(--font-ui);
  font-weight: 700;
}

/* Aksi Penyebaran & Ekspor Kartu Toolbar */
.preview-actions-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}

.preview-actions-bar .btn {
  flex: 1 1 100%;
  width: 100%;
  justify-content: center;
}

@media (min-width: 480px) {
  .preview-actions-bar .btn {
    flex: 1 1 calc(50% - var(--sp-2));
    width: auto;
  }
}

@media (min-width: 768px) {
  .preview-actions-bar .btn {
    flex: 1;
    width: auto;
  }
}

.export-note {
  font-size: 0.8125rem;
  color: var(--text-muted);
  line-height: 1.4;
  text-align: center;
}

/* ==========================================================================
   Steps Section (Natural Indonesian Copywriting, Active Voice)
   ========================================================================== */
.steps-section {
  padding: var(--sp-16) 0;
  background: transparent;
  border-top: 1px solid var(--border-subtle);
}

.steps-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-6);
}

@media (min-width: 768px) {
  .steps-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.step-card {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  padding: var(--sp-6);
  position: relative;
}

.step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: var(--color-primary-subtle);
  color: var(--color-primary);
  font-weight: 700;
  font-size: 1.125rem;
  margin-bottom: var(--sp-4);
  font-variant-numeric: tabular-nums;
}

.step-title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: var(--sp-2);
}

.step-desc {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  line-height: 1.5;
}

/* ==========================================================================
   FAQ Section
   ========================================================================== */
.faq-section {
  padding: var(--sp-16) 0;
  background: transparent;
  border-top: 1px solid var(--border-subtle);
}

.faq-list {
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}

.faq-item {
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  background-color: var(--bg-canvas);
  overflow: hidden;
  transition: border-color 150ms ease;
}

.faq-item[open] {
  border-color: var(--border-strong);
}

.faq-question {
  padding: var(--sp-4) var(--sp-5);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 44px;
}

.faq-question::-webkit-details-marker {
  display: none;
}

.faq-question::after {
  content: "+";
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--text-muted);
  transition: transform 180ms ease;
}

.faq-item[open] .faq-question::after {
  content: "−";
}

.faq-answer {
  padding: 0 var(--sp-5) var(--sp-5);
  font-size: 0.9375rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer {
  background-color: var(--bg-surface);
  border-top: 1px solid var(--border-subtle);
  padding: var(--sp-12) 0 var(--sp-6);
}

.footer-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-8);
  margin-bottom: var(--sp-10);
}

@media (min-width: 768px) {
  .footer-container {
    grid-template-columns: 2fr 1fr 1fr;
  }
}

.footer-logo {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin-bottom: var(--sp-3);
}

.footer-logo .brand-title {
  font-size: 1.25rem;
  font-weight: 700;
}

.footer-tagline {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  max-width: 380px;
  line-height: 1.5;
}

.footer-col-title {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--sp-3);
}

.footer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}

.footer-links a {
  text-decoration: none;
  color: var(--text-secondary);
  font-size: 0.875rem;
  transition: color 150ms ease;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
}

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

.btn-filter-link {
  background: none;
  border: none;
  font-family: inherit;
  font-size: 0.875rem;
  color: var(--text-secondary);
  text-align: left;
  cursor: pointer;
  padding: 0;
}

.btn-filter-link:hover {
  color: var(--color-primary);
}

.footer-bottom {
  border-top: 1px solid var(--border-subtle);
  padding-top: var(--sp-6);
}

.footer-bottom-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--sp-6);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--sp-3);
}

.footer-copyright,
.footer-meta {
  font-size: 0.8125rem;
  color: var(--text-muted);
}

/* ==========================================================================
   Modal Dialog System (Accessible, Keyboard Focus Trap, Escape to Close)
   ========================================================================== */
.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background-color: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-4);
  animation: fadeIn 200ms ease;
}

.modal-backdrop.hidden {
  display: none;
}

.modal-dialog {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-xl);
  max-width: 520px;
  width: 100%;
  box-shadow: var(--shadow-xl);
  overflow: hidden;
  animation: scaleUp 220ms ease;
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--sp-5) var(--sp-6);
  border-bottom: 1px solid var(--border-subtle);
}

.modal-title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--text-primary);
}

.btn-close-modal {
  background: transparent;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 150ms ease;
}

.btn-close-modal:hover {
  background-color: var(--surface-hover);
  color: var(--text-primary);
}

.modal-body {
  padding: var(--sp-6);
}

.modal-desc {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  margin-bottom: var(--sp-4);
}

.share-url-box {
  display: flex;
  gap: var(--sp-2);
  margin-bottom: var(--sp-6);
}

@media (max-width: 480px) {
  .modal-dialog {
    max-width: 100%;
    border-radius: var(--radius-lg);
  }

  .modal-header,
  .modal-body {
    padding: var(--sp-4);
  }

  .share-url-box {
    flex-direction: column;
  }

  .share-url-box .btn {
    width: 100%;
    justify-content: center;
  }
}

.share-url-field {
  font-size: 0.875rem;
  background-color: var(--bg-canvas);
}

.qr-code-section {
  text-align: center;
  padding: var(--sp-4);
  background-color: var(--bg-canvas);
  border-radius: var(--radius-md);
  margin-bottom: var(--sp-6);
}

.qr-hint {
  font-size: 0.8125rem;
  color: var(--text-muted);
  margin-bottom: var(--sp-3);
}

.qr-canvas-wrap {
  display: inline-block;
  padding: var(--sp-2);
  background: #ffffff;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-subtle);
}

.qr-canvas-wrap canvas {
  display: block;
}

/* ==========================================================================
   Toast Notifications (Semantic Status Colors, Aria-Live)
   ========================================================================== */
.toast-container {
  position: fixed;
  bottom: var(--sp-6);
  right: var(--sp-6);
  z-index: 3000;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  max-width: 360px;
  width: calc(100% - var(--sp-8));
  pointer-events: none;
}

.toast {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  font-size: 0.875rem;
  font-weight: 500;
  animation: slideInRight 220ms ease;
  min-height: 48px;
}

.toast-success {
  background-color: var(--color-success-bg);
  border: 1px solid var(--color-success-border);
  color: var(--color-success);
}

.toast-error {
  background-color: var(--color-error-bg);
  border: 1px solid var(--color-error-border);
  color: var(--color-error);
}

.toast-info {
  background-color: var(--color-info-bg);
  border: 1px solid var(--color-info-border);
  color: var(--color-info);
}

/* ==========================================================================
   Keyframe Animations & Motion Discipline (150-300ms)
   ========================================================================== */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes slideInRight {
  from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes scaleUp {
  from { opacity: 0; transform: scale(0.96); }
  to { opacity: 1; transform: scale(1); }
}

/* Strict prefers-reduced-motion observance */

/* --- 50 Additional Templates Festive Keyframe Animations --- */
@keyframes rollerSkatingSpinNeon {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #f43f5e); }
  50% { transform: translateY(-8px) rotate(15deg) scale(1.15); filter: drop-shadow(0 0 20px #22d3ee); }
  100% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #f43f5e); }
}
@keyframes dinoJurassicRoarBounce {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #22c55e); }
  25% { transform: scale(1.15) translateY(-6px) rotate(-6deg); filter: drop-shadow(0 0 18px #eab308); }
  50% { transform: scale(0.95) translateY(2px) rotate(4deg); }
  75% { transform: scale(1.1) translateY(-4px) rotate(-3deg); filter: drop-shadow(0 0 15px #22c55e); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes potionBubbleSteamRise {
  0% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 8px #c084fc); }
  50% { transform: translateY(-10px) scale(1.18) rotate(12deg); filter: drop-shadow(0 0 22px #38bdf8); }
  100% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 8px #c084fc); }
}
@keyframes superheroComicZapBoom {
  0% { transform: scale(1) translateY(0) rotate(0deg); filter: drop-shadow(0 0 10px #ef4444); }
  30% { transform: scale(1.22) translateY(-6px) rotate(-8deg); filter: drop-shadow(0 0 24px #facc15); }
  60% { transform: scale(0.92) translateY(2px) rotate(6deg); }
  100% { transform: scale(1) translateY(0) rotate(0deg); }
}
@keyframes bobaPearlJumpBounce {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 8px #f472b6); }
  40% { transform: translateY(-12px) scale(1.15) rotate(10deg); filter: drop-shadow(0 0 20px #fbbf24); }
  60% { transform: translateY(2px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes kartingDriftSmokeDash {
  0% { transform: translateX(0) scale(1) skewX(0); filter: drop-shadow(0 0 8px #f97316); }
  50% { transform: translateX(-10px) scale(1.14) skewX(-10deg); filter: drop-shadow(0 0 22px #eab308); }
  100% { transform: translateX(0) scale(1) skewX(0); }
}
@keyframes marsRoverAntennaRotate {
  0% { transform: rotate(0deg) scale(1); filter: drop-shadow(0 0 8px #38bdf8); }
  50% { transform: rotate(180deg) scale(1.15); filter: drop-shadow(0 0 20px #fb923c); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes fairyDustSparkleSwirl {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #34d399); }
  50% { transform: translateY(-10px) rotate(-14deg) scale(1.2); filter: drop-shadow(0 0 24px #f472b6); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes seaTurtleGlideReef {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #38bdf8); }
  50% { transform: translateY(-8px) translateX(6px) rotate(6deg) scale(1.1); filter: drop-shadow(0 0 20px #2dd4bf); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes pirateCannonFireWave {
  0% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 10px #38bdf8); }
  25% { transform: translateY(-6px) scale(1.18) rotate(-8deg); filter: drop-shadow(0 0 22px #eab308); }
  50% { transform: translateY(2px) scale(0.95); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}
@keyframes baliGapuraBlessingGlow {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #facc15); opacity: 0.95; }
  50% { transform: scale(1.15) translateY(-6px); filter: drop-shadow(0 0 24px #f97316); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 0.95; }
}
@keyframes palangPintuRebanaBeat {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #f43f5e); }
  50% { transform: translateY(-8px) rotate(12deg) scale(1.18); filter: drop-shadow(0 0 22px #eab308); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes dayakEnggangFeatherSway {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #fb923c); }
  50% { transform: translateY(-8px) rotate(-10deg) scale(1.15); filter: drop-shadow(0 0 22px #ca8a04); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes makassarSalokoGleam {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: scale(1.16) translateY(-7px); filter: drop-shadow(0 0 24px #34d399); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes shintoToriiLanternSway {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #dc2626); }
  50% { transform: translateY(-6px) rotate(-8deg) scale(1.14); filter: drop-shadow(0 0 22px #f87171); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes santoriniBreezeBougainvillea {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #38bdf8); }
  50% { transform: translateY(-8px) scale(1.16) rotate(6deg); filter: drop-shadow(0 0 24px #f43f5e); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes artDecoGatsbyGoldGlint {
  0% { transform: scale(1) rotate(0deg); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: scale(1.18) rotate(14deg); filter: drop-shadow(0 0 24px #ca8a04); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes provenceSunMeadowBreeze {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: translateY(-8px) rotate(-12deg) scale(1.15); filter: drop-shadow(0 0 22px #c084fc); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes castleCarriageSparkleGlide {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #e879f9); }
  50% { transform: scale(1.16) translateY(-8px) rotate(6deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes stainedGlassPrismRefract {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #60a5fa); opacity: 0.9; }
  50% { transform: translateY(-8px) scale(1.18); filter: drop-shadow(0 0 24px #f472b6); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.9; }
}
@keyframes sapphireFacetShimmer {
  0% { transform: rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #38bdf8); }
  50% { transform: rotate(15deg) scale(1.18); filter: drop-shadow(0 0 24px #e2e8f0); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes emeraldLaurelCrownGleam {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #34d399); }
  50% { transform: scale(1.15) translateY(-8px); filter: drop-shadow(0 0 24px #ca8a04); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes acousticGuitarNoteFloat {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #f472b6); }
  50% { transform: translateY(-10px) rotate(12deg) scale(1.18); filter: drop-shadow(0 0 22px #facc15); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes venetianMasqueFloatGlow {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #e879f9); }
  50% { transform: translateY(-8px) rotate(-10deg) scale(1.15); filter: drop-shadow(0 0 24px #ca8a04); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes cabinFireEmbersRise {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #fb923c); }
  50% { transform: translateY(-10px) scale(1.18); filter: drop-shadow(0 0 24px #eab308); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes cappadociaBalloonRiseFloat {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #fb7185); }
  50% { transform: translateY(-12px) scale(1.15) rotate(5deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes waterfallSilverMistRipple {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #38bdf8); }
  50% { transform: translateY(-8px) scale(1.16); filter: drop-shadow(0 0 24px #2dd4bf); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes amalfiLemonBreezeSway {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: translateY(-8px) rotate(-14deg) scale(1.18); filter: drop-shadow(0 0 22px #2dd4bf); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes tahitiLagoonRippleSunset {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #f43f5e); }
  50% { transform: translateY(-7px) scale(1.15) rotate(6deg); filter: drop-shadow(0 0 24px #38bdf8); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes goldenRecordVinylSpin {
  0% { transform: rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: rotate(180deg) scale(1.15); filter: drop-shadow(0 0 24px #f97316); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes captainWingsRadarSweep {
  0% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 10px #38bdf8); }
  50% { transform: translateY(-10px) scale(1.18) rotate(8deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}
@keyframes submersibleSonarPulse {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #2dd4bf); }
  50% { transform: translateY(-8px) scale(1.16) rotate(6deg); filter: drop-shadow(0 0 24px #38bdf8); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes oilRigFlameTorchGlow {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #f59e0b); }
  50% { transform: scale(1.18) translateY(-7px); filter: drop-shadow(0 0 24px #ef4444); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes brainSynapseElectricPulse {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #818cf8); }
  50% { transform: scale(1.18) translateY(-6px); filter: drop-shadow(0 0 24px #38bdf8); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes quantumAtomOrbitSpins {
  0% { transform: rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #c084fc); }
  50% { transform: rotate(180deg) scale(1.2); filter: drop-shadow(0 0 24px #22d3ee); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes padiFieldGoldenBreeze {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #facc15); }
  50% { transform: translateY(-8px) rotate(12deg) scale(1.15); filter: drop-shadow(0 0 22px #4ade80); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes pastryChefWhiskFlourSprinkle {
  0% { transform: scale(1) translateY(0) rotate(0deg); filter: drop-shadow(0 0 10px #fb923c); }
  50% { transform: scale(1.18) translateY(-8px) rotate(-10deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: scale(1) translateY(0) rotate(0deg); }
}
@keyframes broadcastOnAirSignalFlash {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #ef4444); opacity: 0.9; }
  50% { transform: scale(1.18) translateY(-6px); filter: drop-shadow(0 0 24px #38bdf8); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 0.9; }
}
@keyframes bridgeCableSuspensionGlow {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #60a5fa); }
  50% { transform: translateY(-8px) scale(1.16); filter: drop-shadow(0 0 24px #f59e0b); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes cyberForensicsMatrixScan {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #22c55e); }
  50% { transform: scale(1.18) translateY(-6px); filter: drop-shadow(0 0 24px #38bdf8); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes barongsaiLionJumpBlink {
  0% { transform: scale(1) translateY(0) rotate(0deg); filter: drop-shadow(0 0 10px #facc15); }
  25% { transform: scale(1.22) translateY(-10px) rotate(-8deg); filter: drop-shadow(0 0 24px #dc2626); }
  50% { transform: scale(0.95) translateY(2px) rotate(6deg); }
  75% { transform: scale(1.15) translateY(-5px) rotate(-4deg); }
  100% { transform: scale(1) translateY(0) rotate(0deg); }
}
@keyframes torajaTongkonanGleam {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #f97316); }
  50% { transform: translateY(-8px) scale(1.16); filter: drop-shadow(0 0 24px #ca8a04); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes tikiTorchFireDance {
  0% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 10px #fb923c); }
  50% { transform: translateY(-10px) scale(1.2) rotate(10deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}
@keyframes mariachiMaracasShake {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #f43f5e); }
  25% { transform: translateY(-8px) rotate(-16deg) scale(1.18); filter: drop-shadow(0 0 22px #22c55e); }
  50% { transform: translateY(2px) rotate(12deg) scale(0.95); }
  75% { transform: translateY(-5px) rotate(-8deg); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes veniceWaterParadeGlow {
  0% { transform: translateY(0) scale(1) rotate(0deg); filter: drop-shadow(0 0 10px #818cf8); }
  50% { transform: translateY(-8px) scale(1.16) rotate(6deg); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}
@keyframes harajukuLaserBeatHop {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #ec4899); }
  40% { transform: translateY(-12px) scale(1.2) rotate(-8deg); filter: drop-shadow(0 0 24px #22d3ee); }
  70% { transform: translateY(2px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes dadakMerakFeatherTremor {
  0% { transform: scale(1) translateY(0); filter: drop-shadow(0 0 10px #f59e0b); }
  25% { transform: scale(1.18) translateY(-6px) rotate(6deg); filter: drop-shadow(0 0 24px #ef4444); }
  50% { transform: scale(0.96) translateY(2px) rotate(-4deg); }
  75% { transform: scale(1.12) translateY(-4px) rotate(3deg); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes desertCaravanCampfireWarmth {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 10px #fb923c); }
  50% { transform: translateY(-8px) scale(1.16) rotate(6deg); filter: drop-shadow(0 0 24px #ca8a04); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hanabiMatsuriBurstEpic {
  0% { transform: scale(0.85) rotate(0deg); filter: drop-shadow(0 0 8px #f43f5e); opacity: 0.85; }
  45% { transform: scale(1.3) rotate(15deg); filter: drop-shadow(0 0 28px #facc15); opacity: 1; }
  70% { transform: scale(1.1) rotate(-8deg); filter: drop-shadow(0 0 16px #38bdf8); }
  100% { transform: scale(0.85) rotate(0deg); opacity: 0.85; }
}
@keyframes bigTopCircusAcrobatSwing {
  0% { transform: translateY(0) rotate(0deg) scale(1); filter: drop-shadow(0 0 10px #e11d48); }
  50% { transform: translateY(-10px) rotate(14deg) scale(1.18); filter: drop-shadow(0 0 24px #facc15); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}

@media (prefers-reduced-motion: reduce) {

  /* 50 Additional Templates Reduced Motion Disables */
  .theme-neon-roller-skating-rink .fx-item-1,
  .theme-neon-roller-skating-rink .fx-item-2,
  .theme-neon-roller-skating-rink .fx-item-3,
  .theme-dino-jurassic-safari-expedition .fx-item-1,
  .theme-dino-jurassic-safari-expedition .fx-item-2,
  .theme-dino-jurassic-safari-expedition .fx-item-3,
  .theme-magic-potion-alchemy-party .fx-item-1,
  .theme-magic-potion-alchemy-party .fx-item-2,
  .theme-magic-potion-alchemy-party .fx-item-3,
  .theme-superhero-comic-city-defense .fx-item-1,
  .theme-superhero-comic-city-defense .fx-item-2,
  .theme-superhero-comic-city-defense .fx-item-3,
  .theme-kawaii-boba-pastel-tea .fx-item-1,
  .theme-kawaii-boba-pastel-tea .fx-item-2,
  .theme-kawaii-boba-pastel-tea .fx-item-3,
  .theme-karting-championship-raceway .fx-item-1,
  .theme-karting-championship-raceway .fx-item-2,
  .theme-karting-championship-raceway .fx-item-3,
  .theme-space-rover-mars-colonizer .fx-item-1,
  .theme-space-rover-mars-colonizer .fx-item-2,
  .theme-space-rover-mars-colonizer .fx-item-3,
  .theme-fairy-enchanted-woodland-glade .fx-item-1,
  .theme-fairy-enchanted-woodland-glade .fx-item-2,
  .theme-fairy-enchanted-woodland-glade .fx-item-3,
  .theme-aquarium-sea-turtle-reef .fx-item-1,
  .theme-aquarium-sea-turtle-reef .fx-item-2,
  .theme-aquarium-sea-turtle-reef .fx-item-3,
  .theme-pirate-skull-island-voyage .fx-item-1,
  .theme-pirate-skull-island-voyage .fx-item-2,
  .theme-pirate-skull-island-voyage .fx-item-3,
  .theme-bali-puri-royal-agung .fx-item-1,
  .theme-bali-puri-royal-agung .fx-item-2,
  .theme-bali-puri-royal-agung .fx-item-3,
  .theme-betawi-palang-pintu-delman .fx-item-1,
  .theme-betawi-palang-pintu-delman .fx-item-2,
  .theme-betawi-palang-pintu-delman .fx-item-3,
  .theme-dayak-hudoq-borneo-royalty .fx-item-1,
  .theme-dayak-hudoq-borneo-royalty .fx-item-2,
  .theme-dayak-hudoq-borneo-royalty .fx-item-3,
  .theme-makassar-baju-bodo-silk .fx-item-1,
  .theme-makassar-baju-bodo-silk .fx-item-2,
  .theme-makassar-baju-bodo-silk .fx-item-3,
  .theme-kyoto-shinto-zen-sanctuary .fx-item-1,
  .theme-kyoto-shinto-zen-sanctuary .fx-item-2,
  .theme-kyoto-shinto-zen-sanctuary .fx-item-3,
  .theme-santorini-cliffside-bougainvillea .fx-item-1,
  .theme-santorini-cliffside-bougainvillea .fx-item-2,
  .theme-santorini-cliffside-bougainvillea .fx-item-3,
  .theme-art-deco-great-gatsby-gala .fx-item-1,
  .theme-art-deco-great-gatsby-gala .fx-item-2,
  .theme-art-deco-great-gatsby-gala .fx-item-3,
  .theme-provence-lavender-sunflower-meadow .fx-item-1,
  .theme-provence-lavender-sunflower-meadow .fx-item-2,
  .theme-provence-lavender-sunflower-meadow .fx-item-3,
  .theme-castle-fairytale-enchanted-gates .fx-item-1,
  .theme-castle-fairytale-enchanted-gates .fx-item-2,
  .theme-castle-fairytale-enchanted-gates .fx-item-3,
  .theme-crystal-cathedral-stained-glass .fx-item-1,
  .theme-crystal-cathedral-stained-glass .fx-item-2,
  .theme-crystal-cathedral-stained-glass .fx-item-3,
  .theme-sapphire-45th-royal-jubilee .fx-item-1,
  .theme-sapphire-45th-royal-jubilee .fx-item-2,
  .theme-sapphire-45th-royal-jubilee .fx-item-3,
  .theme-emerald-55th-eternal-devotion .fx-item-1,
  .theme-emerald-55th-eternal-devotion .fx-item-2,
  .theme-emerald-55th-eternal-devotion .fx-item-3,
  .theme-starlight-rooftop-acoustic-duet .fx-item-1,
  .theme-starlight-rooftop-acoustic-duet .fx-item-2,
  .theme-starlight-rooftop-acoustic-duet .fx-item-3,
  .theme-venetian-carnival-duet-masque .fx-item-1,
  .theme-venetian-carnival-duet-masque .fx-item-2,
  .theme-venetian-carnival-duet-masque .fx-item-3,
  .theme-cozy-log-cabin-autumn-embers .fx-item-1,
  .theme-cozy-log-cabin-autumn-embers .fx-item-2,
  .theme-cozy-log-cabin-autumn-embers .fx-item-3,
  .theme-hot-air-balloon-cappadocia-sunrise .fx-item-1,
  .theme-hot-air-balloon-cappadocia-sunrise .fx-item-2,
  .theme-hot-air-balloon-cappadocia-sunrise .fx-item-3,
  .theme-moonlit-waterfall-serenade .fx-item-1,
  .theme-moonlit-waterfall-serenade .fx-item-2,
  .theme-moonlit-waterfall-serenade .fx-item-3,
  .theme-amalfi-coast-lemon-terrace .fx-item-1,
  .theme-amalfi-coast-lemon-terrace .fx-item-2,
  .theme-amalfi-coast-lemon-terrace .fx-item-3,
  .theme-tahiti-overwater-bungalow-sunset .fx-item-1,
  .theme-tahiti-overwater-bungalow-sunset .fx-item-2,
  .theme-tahiti-overwater-bungalow-sunset .fx-item-3,
  .theme-golden-record-timeless-melody .fx-item-1,
  .theme-golden-record-timeless-melody .fx-item-2,
  .theme-golden-record-timeless-melody .fx-item-3,
  .theme-aviation-flight-captain-wings .fx-item-1,
  .theme-aviation-flight-captain-wings .fx-item-2,
  .theme-aviation-flight-captain-wings .fx-item-3,
  .theme-marine-oceanography-deep-dive .fx-item-1,
  .theme-marine-oceanography-deep-dive .fx-item-2,
  .theme-marine-oceanography-deep-dive .fx-item-3,
  .theme-petroleum-mining-engineering-gold .fx-item-1,
  .theme-petroleum-mining-engineering-gold .fx-item-2,
  .theme-petroleum-mining-engineering-gold .fx-item-3,
  .theme-neurology-brain-neuroscience-pulse .fx-item-1,
  .theme-neurology-brain-neuroscience-pulse .fx-item-2,
  .theme-neurology-brain-neuroscience-pulse .fx-item-3,
  .theme-quantum-computing-physicist .fx-item-1,
  .theme-quantum-computing-physicist .fx-item-2,
  .theme-quantum-computing-physicist .fx-item-3,
  .theme-agricultural-agronomy-green-harvest .fx-item-1,
  .theme-agricultural-agronomy-green-harvest .fx-item-2,
  .theme-agricultural-agronomy-green-harvest .fx-item-3,
  .theme-culinary-pastry-chef-patisserie .fx-item-1,
  .theme-culinary-pastry-chef-patisserie .fx-item-2,
  .theme-culinary-pastry-chef-patisserie .fx-item-3,
  .theme-journalism-broadcast-media-producer .fx-item-1,
  .theme-journalism-broadcast-media-producer .fx-item-2,
  .theme-journalism-broadcast-media-producer .fx-item-3,
  .theme-civil-infrastructure-bridge-builder .fx-item-1,
  .theme-civil-infrastructure-bridge-builder .fx-item-2,
  .theme-civil-infrastructure-bridge-builder .fx-item-3,
  .theme-cyber-forensics-security-analyst .fx-item-1,
  .theme-cyber-forensics-security-analyst .fx-item-2,
  .theme-cyber-forensics-security-analyst .fx-item-3,
  .theme-barongsai-lion-dance-festival .fx-item-1,
  .theme-barongsai-lion-dance-festival .fx-item-2,
  .theme-barongsai-lion-dance-festival .fx-item-3,
  .theme-toraja-rambu-solo-kabana .fx-item-1,
  .theme-toraja-rambu-solo-kabana .fx-item-2,
  .theme-toraja-rambu-solo-kabana .fx-item-3,
  .theme-hawaian-luau-tiki-torch .fx-item-1,
  .theme-hawaian-luau-tiki-torch .fx-item-2,
  .theme-hawaian-luau-tiki-torch .fx-item-3,
  .theme-mexican-fiesta-mariachi-maracas .fx-item-1,
  .theme-mexican-fiesta-mariachi-maracas .fx-item-2,
  .theme-mexican-fiesta-mariachi-maracas .fx-item-3,
  .theme-carnival-venice-water-parade .fx-item-1,
  .theme-carnival-venice-water-parade .fx-item-2,
  .theme-carnival-venice-water-parade .fx-item-3,
  .theme-harajuku-cyber-jpop-festival .fx-item-1,
  .theme-harajuku-cyber-jpop-festival .fx-item-2,
  .theme-harajuku-cyber-jpop-festival .fx-item-3,
  .theme-reog-ponorogo-singa-barong .fx-item-1,
  .theme-reog-ponorogo-singa-barong .fx-item-2,
  .theme-reog-ponorogo-singa-barong .fx-item-3,
  .theme-maroccan-desert-caravan-oasis .fx-item-1,
  .theme-maroccan-desert-caravan-oasis .fx-item-2,
  .theme-maroccan-desert-caravan-oasis .fx-item-3,
  .theme-festival-kembang-api-hanabi-matsuri .fx-item-1,
  .theme-festival-kembang-api-hanabi-matsuri .fx-item-2,
  .theme-festival-kembang-api-hanabi-matsuri .fx-item-3,
  .theme-circus-grand-carnival-bigtop .fx-item-1,
  .theme-circus-grand-carnival-bigtop .fx-item-2,
  .theme-circus-grand-carnival-bigtop .fx-item-3,
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   Recipient Mode Experience (Pure Full Digital Invitation Ala Ultah-Echa)
   Rasio Penuh & Fokus Undangan — Tanpa Header/Katalog/Studio Editor
   ========================================================================== */
body.recipient-mode {
  min-height: 100vh;
  min-height: 100dvh;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  position: relative;
  background-color: var(--bg-canvas);
  background-image: radial-gradient(circle at 50% 35%, var(--surface-card) 0%, var(--bg-canvas) 92%);
}

/* Sembunyikan bagian navbar, hero, katalog, langkah, FAQ, footer, toolbar pada mode penerima */
body.recipient-mode .site-header,
body.recipient-mode .hero-section,
body.recipient-mode .catalog-section,
body.recipient-mode .steps-section,
body.recipient-mode .faq-section,
body.recipient-mode .site-footer,
body.recipient-mode .mobile-jump-bar,
body.recipient-mode .recipient-floating-theme,
body.recipient-mode #dramatic-role-banner,
body.recipient-mode #btn-toggle-dramatic-role,
body.recipient-mode #btn-switch-dramatic-role,
body.recipient-mode .floating-role-btn,
body.recipient-mode .role-switch-btn,
body.recipient-mode #btn-close-dramatic-preview {
  display: none !important;
}

/* Sembunyikan elemen banner/editor saat mode dramatis aktif */
body.recipient-mode.recipient-dramatic-mode #recipient-banner,
body.recipient-mode.recipient-dramatic-mode .editor-section {
  display: none !important;
}

/* Mode Kartu Standar untuk 217 Template Tematik Lainnya */
body.recipient-mode.recipient-card-mode .dramatic-invitation-view,
body.recipient-mode.recipient-card-mode .dramatic-floating-controls,
body.recipient-mode.recipient-card-mode .envelope-modal-overlay {
  display: none !important;
}

body.recipient-mode.recipient-card-mode #recipient-banner {
  display: block !important;
}

body.recipient-mode.recipient-card-mode .editor-section {
  display: block !important;
  padding: var(--sp-6) var(--sp-4) var(--sp-20);
  background: transparent;
}

body.recipient-mode.recipient-card-mode .editor-panel-form,
body.recipient-mode.recipient-card-mode .preview-toolbar,
body.recipient-mode.recipient-card-mode .preview-actions-bar,
body.recipient-mode.recipient-card-mode .export-note {
  display: none !important;
}

body.recipient-mode.recipient-card-mode .editor-workspace {
  grid-template-columns: 1fr !important;
  max-width: 680px !important;
  margin: 0 auto !important;
}

body.recipient-mode.recipient-card-mode .editor-panel-preview {
  position: static !important;
  width: 100% !important;
  margin: 0 auto !important;
}

body.recipient-mode.recipient-card-mode .recipient-actions-bar {
  display: block !important;
  margin-top: var(--sp-6);
}

body.recipient-mode #main-content {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  display: block;
}

body.recipient-mode.recipient-dramatic-mode .dramatic-invitation-view {
  display: block !important;
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
  padding: var(--sp-6) var(--sp-4) var(--sp-20);
  box-sizing: border-box;
  animation: recipientViewEntrance 450ms cubic-bezier(0.16, 1, 0.3, 1);
}

body.recipient-mode.recipient-dramatic-mode .dramatic-floating-controls {
  display: flex !important;
}

body.recipient-mode.recipient-dramatic-mode .envelope-modal-overlay {
  display: flex;
}

@keyframes recipientViewEntrance {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Responsif Mobile Khusus Mode Penerima: Full Edge-to-Edge Padding & Spacing */
@media (max-width: 600px) {
  body.recipient-mode {
    padding: 0;
  }

  body.recipient-mode .dramatic-invitation-view {
    padding: var(--sp-4) var(--sp-3) var(--sp-16);
  }

  body.recipient-mode .dramatic-hero-card {
    padding: var(--sp-6) var(--sp-4);
    border-radius: var(--radius-xl);
  }

  body.recipient-mode .dramatic-hero-heading {
    font-size: 1.875rem;
    line-height: 1.25;
  }
}

.recipient-actions-bar {
  display: none;
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  animation: recipientActionsFade 400ms ease 120ms both;
}

@keyframes recipientActionsFade {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Actions bar styling (kept for studio or fallback) */

.recipient-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  justify-content: center;
  margin-bottom: var(--sp-6);
}

.recipient-action-row .btn {
  min-height: 48px;
  padding: var(--sp-3) var(--sp-5);
  font-size: 0.9375rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
}

.recipient-explore-box {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  padding: var(--sp-6);
  text-align: center;
  box-shadow: var(--shadow-sm);
}

.recipient-explore-text {
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: var(--sp-4);
  max-width: 440px;
  margin-left: auto;
  margin-right: auto;
}

.recipient-explore-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  justify-content: center;
}

/* Floating Theme Toggle (Hanya Muncul di Mode Penerima) */
.recipient-floating-theme {
  display: none;
  position: fixed;
  top: var(--sp-4);
  right: var(--sp-4);
  z-index: 100;
  width: 44px;
  height: 44px;
  border-radius: 9999px;
  background-color: var(--bg-surface);
  color: var(--text-primary);
  border: 1px solid var(--border-strong);
  box-shadow: var(--shadow-md);
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.recipient-floating-theme:hover {
  transform: scale(1.08);
  box-shadow: var(--shadow-lg);
}

.recipient-floating-theme:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

@media (max-width: 540px) {
  .recipient-action-row {
    flex-direction: column;
    width: 100%;
  }

  .recipient-action-row .btn {
    width: 100%;
    justify-content: center;
  }

  .recipient-explore-buttons {
    flex-direction: column;
    width: 100%;
  }

  .recipient-explore-buttons .btn {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   Mobile Quick Jump Bar (Enhanced Mobile UX for Studio Editor)
   ========================================================================== */
.mobile-jump-bar {
  display: none;
}

@media (max-width: 991px) {
  .mobile-jump-bar {
    display: block;
    position: fixed;
    bottom: 24px;
    right: 20px;
    z-index: 95;
    pointer-events: auto;
    animation: jumpBarSlideUp 250ms ease;
  }

  .btn-mobile-jump {
    min-height: 48px;
    border-radius: 9999px;
    background-color: var(--color-primary);
    color: #ffffff;
    border: none;
    padding: 10px 18px;
    font-family: var(--font-ui);
    font-size: 0.875rem;
    font-weight: 600;
    box-shadow: 0 10px 25px -5px rgba(190, 18, 60, 0.45), 0 4px 6px -2px rgba(190, 18, 60, 0.2);
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: transform 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
  }

  .btn-mobile-jump:hover {
    background-color: var(--color-primary-hover);
    transform: translateY(-2px);
    box-shadow: 0 14px 28px -5px rgba(190, 18, 60, 0.55);
  }

  .btn-mobile-jump:active {
    transform: translateY(0);
  }

  .btn-mobile-jump:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 2px;
  }

  body.recipient-mode .mobile-jump-bar {
    display: none !important;
  }
}

@keyframes jumpBarSlideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Quick Copy Link Button States */
#btn-quick-copy {
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease, transform 150ms ease;
}

#btn-quick-copy.copied {
  background-color: var(--color-success-bg) !important;
  color: var(--color-success) !important;
  border-color: var(--color-success-border) !important;
  font-weight: 600;
}

/* Live Synchronization Shimmer on Input */
.status-indicator-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--color-success);
  box-shadow: 0 0 0 2px var(--color-success-border);
  display: inline-block;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.status-indicator-dot.pulse {
  animation: statusDotPulse 500ms ease;
}

@keyframes statusDotPulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 2px var(--color-success-border);
  }
  50% {
    transform: scale(1.4);
    box-shadow: 0 0 0 6px rgba(34, 197, 94, 0.45);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 2px var(--color-success-border);
  }
}

/* ==========================================================================
   Dramatic Invitation Experience (Signature Ala Ultah-Echa)
   Full-page, Cinematic, Highly Emotional Digital Invitation Architecture
   Accessibility: WCAG AA, font-variant-numeric: tabular-nums, 0 horizontal scroll
   ========================================================================== */

.font-script {
  font-family: 'Dancing Script', cursive;
}

.dramatic-name-gradient {
  background: linear-gradient(135deg, #e11d48, #db2777, #ea580c);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* --- 1. Envelope Modal Opening Overlay --- */
.envelope-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-4);
  background: rgba(76, 5, 25, 0.75);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: opacity 500ms cubic-bezier(0.16, 1, 0.3, 1), visibility 500ms;
}

.envelope-modal-overlay.hidden {
  display: none !important;
}

.envelope-modal-box {
  position: relative;
  width: 100%;
  max-width: 440px;
  background: linear-gradient(145deg, #ffffff 0%, #fff5f6 60%, #ffe4e6 100%);
  border-radius: var(--radius-xl);
  padding: var(--sp-8) var(--sp-6) var(--sp-6);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(254, 205, 211, 0.7);
  text-align: center;
  transform: scale(1) translateY(0);
  transition: transform 450ms cubic-bezier(0.16, 1, 0.3, 1), opacity 450ms ease;
}

.envelope-modal-overlay.closing .envelope-modal-box {
  transform: scale(0.9) translateY(-30px);
  opacity: 0;
}

.envelope-modal-stamp {
  position: absolute;
  top: -26px;
  left: 50%;
  transform: translateX(-50%);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f43f5e, #be123c);
  border: 4px solid #ffffff;
  box-shadow: 0 10px 20px rgba(225, 29, 72, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
}

@keyframes heartBeat {
  0%, 100% { transform: translateX(-50%) scale(1); }
  14% { transform: translateX(-50%) scale(1.18); }
  28% { transform: translateX(-50%) scale(1); }
  42% { transform: translateX(-50%) scale(1.18); }
  70% { transform: translateX(-50%) scale(1); }
}

.animate-heartbeat {
  animation: heartBeat 2.2s infinite ease-in-out;
}

.envelope-modal-badge {
  display: inline-block;
  margin-top: var(--sp-3);
  margin-bottom: var(--sp-3);
  padding: 4px var(--sp-3);
  background: rgba(244, 63, 94, 0.12);
  color: #be123c;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 9999px;
  border: 1px solid rgba(254, 205, 211, 0.85);
}

.envelope-modal-title {
  font-family: var(--font-serif-display);
  font-size: 2rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 var(--sp-1);
  line-height: 1.2;
}

.envelope-modal-script {
  font-family: 'Dancing Script', cursive;
  font-size: 1.45rem;
  color: #e11d48;
  font-weight: 600;
  margin: 0 0 var(--sp-4);
}

.envelope-modal-desc {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #4b5563;
  margin: 0 0 var(--sp-6);
}

.btn-dramatic-open-cta {
  width: 100%;
  min-height: 52px;
  padding: var(--sp-3) var(--sp-6);
  background: linear-gradient(135deg, #f43f5e 0%, #e11d48 50%, #be123c 100%);
  color: #ffffff;
  font-weight: 700;
  font-size: 1.0625rem;
  border-radius: var(--radius-lg);
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  box-shadow: 0 10px 25px -4px rgba(225, 29, 72, 0.45);
  transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}

.btn-dramatic-open-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 15px 30px -4px rgba(225, 29, 72, 0.55);
  filter: brightness(1.06);
}

.btn-dramatic-open-cta:active {
  transform: translateY(0);
}

.envelope-modal-hint {
  font-size: 0.75rem;
  color: #9ca3af;
  margin: var(--sp-3) 0 0;
}

/* --- 2. Floating Dramatic Controls --- */
.dramatic-floating-controls {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 9998;
  display: flex;
  align-items: center;
  gap: 8px;
}

.dramatic-floating-controls.hidden {
  display: none !important;
}

.floating-ctrl-btn {
  min-height: 44px;
  min-width: 44px;
  padding: 8px 14px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(226, 232, 240, 0.9);
  border-radius: 9999px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
  color: var(--text-primary);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.floating-ctrl-btn:hover {
  background: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12);
}

.floating-confetti-btn {
  font-size: 1.15rem;
  background: linear-gradient(135deg, #fef08a 0%, #fde047 100%);
  border-color: #facc15;
  color: #713f12;
}

.floating-close-btn {
  background: #1e293b;
  color: #ffffff;
  border-color: #0f172a;
}
.floating-close-btn:hover {
  background: #0f172a;
  color: #ffffff;
}

/* Obsolete / Deprecated Dramatic Mode Role Switchers (User requested removal) */
#btn-toggle-dramatic-role,
#btn-switch-dramatic-role,
#dramatic-role-banner,
.floating-role-btn,
.role-switch-btn {
  display: none !important;
}

/* --- 3. Dramatic Invitation View Structure --- */
.dramatic-invitation-view {
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
  padding: var(--sp-6) var(--sp-4) var(--sp-16);
  box-sizing: border-box;
}

.dramatic-invitation-view.hidden {
  display: none !important;
}

.dramatic-invitation-inner {
  display: flex;
  flex-direction: column;
  gap: var(--sp-8);
  width: 100%;
}

/* Hero Card */
.dramatic-hero-card {
  position: relative;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(255, 245, 246, 0.92));
  backdrop-filter: blur(14px);
  border: 1px solid rgba(253, 164, 175, 0.5);
  border-radius: var(--radius-xl);
  padding: var(--sp-8) var(--sp-6);
  text-align: center;
  box-shadow: 0 20px 45px -10px rgba(244, 63, 94, 0.15);
  overflow: hidden;
}

.dramatic-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(50px);
  pointer-events: none;
  opacity: 0.45;
}
.dramatic-orb-1 {
  top: -40px;
  left: -40px;
  width: 180px;
  height: 180px;
  background: rgba(244, 63, 94, 0.35);
}
.dramatic-orb-2 {
  bottom: -40px;
  right: -40px;
  width: 180px;
  height: 180px;
  background: rgba(245, 158, 11, 0.35);
}

.dramatic-badge-wrap {
  margin-bottom: var(--sp-3);
}

.dramatic-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px var(--sp-4);
  background: rgba(244, 63, 94, 0.1);
  border: 1px solid rgba(253, 164, 175, 0.7);
  color: #be123c;
  font-size: 0.78125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 9999px;
}

.dramatic-hero-heading {
  font-family: var(--font-serif-display);
  font-size: 2.25rem;
  font-weight: 700;
  color: #111827;
  margin: 0 0 var(--sp-3);
  line-height: 1.25;
}

.dramatic-hero-milestone {
  font-size: 1rem;
  line-height: 1.6;
  color: #4b5563;
  max-width: 600px;
  margin: 0 auto var(--sp-6);
  font-style: italic;
}

/* Banner Frame */
.dramatic-banner-frame {
  position: relative;
  max-width: 620px;
  margin: 0 auto var(--sp-8);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.2);
  border: 4px solid #ffffff;
}

.dramatic-banner-media {
  background: linear-gradient(135deg, #f43f5e 0%, #fb7185 45%, #f59e0b 100%);
  padding: var(--sp-10) var(--sp-6);
  color: #ffffff;
  position: relative;
  text-align: center;
  transition: transform 600ms ease;
}

.dramatic-banner-frame:hover .dramatic-banner-media {
  transform: scale(1.02);
}

.dramatic-banner-cake-icon {
  font-size: 3.5rem;
  margin-bottom: var(--sp-2);
  filter: drop-shadow(0 4px 10px rgba(0,0,0,0.15));
}

.dramatic-banner-tag {
  display: inline-block;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  background: rgba(0,0,0,0.22);
  padding: 4px 12px;
  border-radius: 9999px;
  margin-bottom: 6px;
}

.dramatic-banner-title {
  font-family: var(--font-serif-display);
  font-size: 1.85rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 4px;
}

.dramatic-banner-sub {
  font-size: 0.875rem;
  color: #fff1f2;
  margin: 0;
}

/* Countdown Box */
.dramatic-countdown-box {
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(254, 205, 211, 0.85);
  border-radius: var(--radius-lg);
  padding: var(--sp-4);
  max-width: 520px;
  margin: 0 auto;
  box-shadow: var(--shadow-sm);
}

.dramatic-countdown-title {
  font-size: 0.75rem;
  font-weight: 700;
  color: #be123c;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 var(--sp-3);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.dramatic-countdown-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.countdown-card {
  background: #fff5f6;
  border: 1px solid #fecdd3;
  border-radius: var(--radius-md);
  padding: 10px 4px;
  text-align: center;
}

.countdown-value {
  display: block;
  font-family: var(--font-serif-display);
  font-size: 1.85rem;
  font-weight: 700;
  color: #be123c;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}

.countdown-label {
  font-size: 0.6875rem;
  color: var(--text-muted);
  text-transform: uppercase;
  font-weight: 600;
}

/* Section 1: Surat Hangat (Washi Tape Love Letter) */
.dramatic-letter-card {
  position: relative;
  background: #ffffff;
  border: 1px solid rgba(254, 205, 211, 0.85);
  border-radius: var(--radius-xl);
  padding: var(--sp-10) var(--sp-8) var(--sp-8);
  box-shadow: 0 15px 35px -5px rgba(244, 63, 94, 0.08);
}

.washi-tape {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  width: 76px;
  height: 24px;
  background-color: rgba(254, 205, 211, 0.9);
  backdrop-filter: blur(2px);
  border: 1px dashed rgba(244, 63, 94, 0.4);
  border-radius: 2px;
  z-index: 5;
}

.dramatic-letter-header {
  text-align: center;
  margin-bottom: var(--sp-6);
}

.letter-stamp-icon {
  font-size: 2rem;
  display: block;
  margin-bottom: 4px;
}

.dramatic-letter-title {
  font-family: var(--font-serif-display);
  font-size: 1.75rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 4px;
}

.dramatic-letter-sub {
  font-family: 'Dancing Script', cursive;
  font-size: 1.25rem;
  color: #e11d48;
  margin: 0;
}

.dramatic-letter-content {
  font-size: 1rem;
  line-height: 1.8;
  color: #374151;
  max-width: 640px;
  margin: 0 auto var(--sp-6);
}

.dramatic-letter-sign {
  font-family: 'Dancing Script', cursive;
  font-size: 1.45rem;
  font-weight: 700;
  color: #e11d48;
  text-align: right;
  margin: 0;
  padding-top: var(--sp-2);
}

/* Section 2: Virtual Birthday Cake */
.dramatic-cake-card {
  position: relative;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(254, 205, 211, 0.85);
  border-radius: var(--radius-xl);
  padding: var(--sp-8) var(--sp-6);
  text-align: center;
  box-shadow: 0 15px 35px -5px rgba(244, 63, 94, 0.08);
}

.dramatic-badge-cake {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 9999px;
  background: #fef3c7;
  color: #92400e;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: var(--sp-2);
}

.dramatic-section-title {
  font-family: var(--font-serif-display);
  font-size: 1.85rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 var(--sp-2);
}

.dramatic-section-subtitle {
  font-size: 0.9375rem;
  color: #6b7280;
  max-width: 500px;
  margin: 0 auto var(--sp-6);
  line-height: 1.5;
}

.dramatic-cake-stage {
  position: relative;
  width: 220px;
  height: 220px;
  margin: 0 auto var(--sp-6);
}

.dramatic-cake-svg {
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.12));
}

@keyframes flicker {
  0%, 100% {
    transform: scale(1) rotate(-1deg);
    opacity: 0.95;
    filter: drop-shadow(0 0 8px rgba(251, 191, 36, 0.9));
  }
  25% {
    transform: scale(1.08, 0.95) rotate(1deg);
    opacity: 1;
    filter: drop-shadow(0 0 12px rgba(245, 158, 11, 1));
  }
  50% {
    transform: scale(0.96, 1.05) rotate(-2deg);
    opacity: 0.9;
    filter: drop-shadow(0 0 7px rgba(251, 191, 36, 0.8));
  }
  75% {
    transform: scale(1.04, 1.02) rotate(2deg);
    opacity: 1;
    filter: drop-shadow(0 0 10px rgba(245, 158, 11, 0.95));
  }
}

.dramatic-flame {
  animation: flicker 1.8s infinite ease-in-out;
  transform-origin: bottom center;
  transition: opacity 400ms ease, transform 400ms ease;
}

.dramatic-flame.blown-out {
  opacity: 0 !important;
  transform: scale(0.15) translateY(-18px) !important;
  filter: none !important;
}

@keyframes smokeRise {
  0% {
    opacity: 0.85;
    transform: translateY(0) scale(0.6);
  }
  50% {
    opacity: 0.5;
    transform: translateY(-28px) scale(1.5) translateX(5px);
  }
  100% {
    opacity: 0;
    transform: translateY(-56px) scale(2.2) translateX(-8px);
  }
}

.dramatic-smoke {
  position: absolute;
  width: 12px;
  height: 12px;
  background: rgba(160, 160, 160, 0.65);
  border-radius: 50%;
  pointer-events: none;
  opacity: 0;
}
.dramatic-smoke.s-1 { top: 22%; left: 38%; }
.dramatic-smoke.s-2 { top: 18%; left: 49%; }
.dramatic-smoke.s-3 { top: 22%; left: 60%; }
.dramatic-smoke.active {
  animation: smokeRise 1.6s ease-out forwards;
}

/* Section 3: Detail Acara & Lokasi */
.dramatic-event-section {
  text-align: center;
}

.dramatic-section-header {
  margin-bottom: var(--sp-6);
}

.dramatic-chip-label {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #be123c;
  background: #fff1f2;
  border: 1px solid #fecdd3;
  padding: 4px 14px;
  border-radius: 9999px;
  margin-bottom: var(--sp-2);
}

.dramatic-details-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--sp-4);
  text-align: left;
}

.dramatic-info-card {
  background: #ffffff;
  border: 1px solid rgba(254, 205, 211, 0.8);
  border-radius: var(--radius-xl);
  padding: var(--sp-6);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.04);
  display: flex;
  align-items: flex-start;
  gap: var(--sp-4);
  transition: transform 200ms ease, box-shadow 200ms ease;
}

.dramatic-info-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 25px rgba(244, 63, 94, 0.1);
}

.info-card-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  flex-shrink: 0;
  background: #fff1f2;
  border: 1px solid #fecdd3;
}

.info-card-body {
  flex: 1;
}

.info-card-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 4px;
}

.info-card-highlight {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #be123c;
  margin: 0 0 2px;
}

.info-card-desc {
  font-size: 0.8125rem;
  color: #6b7280;
  margin: 0;
  line-height: 1.45;
}

.info-card-tag {
  display: inline-block;
  margin-top: var(--sp-3);
  font-size: 0.75rem;
  font-weight: 600;
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fde68a;
  padding: 2px 8px;
  border-radius: 6px;
}

.info-card-action {
  margin-top: var(--sp-3);
}

/* Section 4: Polaroid Photo Cards */
.dramatic-gallery-section {
  text-align: center;
}

.dramatic-polaroids-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--sp-6);
  padding-top: var(--sp-2);
}

.polaroid-card {
  position: relative;
  background: #ffffff;
  border-radius: 6px;
  padding: 12px 12px 20px;
  box-shadow: 0 12px 28px rgba(0,0,0,0.1), 0 4px 10px rgba(0,0,0,0.05);
  transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 300ms ease;
  text-align: center;
}

.polaroid-card.pol-1 { transform: rotate(-2deg); }
.polaroid-card.pol-2 { transform: rotate(2deg); }
.polaroid-card.pol-3 { transform: rotate(-1deg); }

.polaroid-card:hover {
  transform: translateY(-8px) scale(1.03) rotate(0deg) !important;
  box-shadow: 0 20px 35px rgba(244, 63, 94, 0.2);
  z-index: 10;
}

.polaroid-frame {
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #fff1f2, #ffe4e6);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.25rem;
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.05);
  position: relative;
  overflow: hidden;
}

.polaroid-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 3px;
  transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.polaroid-card:hover .polaroid-photo-img {
  transform: scale(1.05);
}

.polaroid-card.custom-photo {
  cursor: pointer;
}

.polaroid-card.custom-photo:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 4px;
}

.polaroid-card.pol-4 { transform: rotate(1.5deg); }
.polaroid-card.pol-5 { transform: rotate(-2.5deg); }
.polaroid-card.pol-6 { transform: rotate(1.8deg); }

.polaroid-zoom-badge {
  position: absolute;
  bottom: 8px;
  right: 8px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(4px);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  opacity: 0;
  transform: scale(0.8);
  transition: opacity 200ms ease, transform 200ms ease;
  pointer-events: none;
}

.polaroid-card:hover .polaroid-zoom-badge,
.polaroid-card:focus-visible .polaroid-zoom-badge {
  opacity: 1;
  transform: scale(1);
}

.washi-tape.tape-variant-1 { background: rgba(244, 63, 94, 0.4); }
.washi-tape.tape-variant-2 { background: rgba(245, 158, 11, 0.4); }
.washi-tape.tape-variant-3 { background: rgba(59, 130, 246, 0.4); }
.washi-tape.tape-variant-4 { background: rgba(16, 185, 129, 0.4); }

.polaroid-caption {
  font-family: 'Dancing Script', cursive;
  font-size: 1.15rem;
  font-weight: 700;
  color: #1f2937;
  margin: var(--sp-3) 0 2px;
  word-break: break-word;
}

.polaroid-sub {
  font-size: 0.6875rem;
  color: #9ca3af;
  margin: 0;
  word-break: break-word;
}

/* ==========================================================================
   Gallery Upload Form Components (Step 3: Galeri Foto Kenangan)
   ========================================================================== */
.gallery-upload-container {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
  margin-top: var(--sp-2);
}

.gallery-upload-dropzone {
  border: 2px dashed var(--border-strong);
  border-radius: var(--radius-lg);
  padding: var(--sp-6) var(--sp-4);
  background: var(--bg-subtle);
  text-align: center;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  transition: border-color 200ms ease, background-color 200ms ease, transform 150ms ease;
  outline: none;
}

.gallery-upload-dropzone:hover,
.gallery-upload-dropzone.dragover {
  border-color: var(--color-primary);
  background: var(--color-primary-subtle);
}

.gallery-upload-dropzone:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.dropzone-icon {
  font-size: 2.25rem;
  line-height: 1;
  margin-bottom: 2px;
}

.dropzone-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
}

.dropzone-subtitle {
  font-size: 0.8125rem;
  color: var(--text-muted);
  margin: 2px 0 var(--sp-2);
}

.dropzone-limits {
  display: inline-block;
  font-size: 0.75rem;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
  margin-bottom: var(--sp-2);
}

.gallery-list-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--sp-2) 0;
  border-bottom: 1px solid var(--border-subtle);
}

.gallery-count-badge {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-secondary);
  font-variant-numeric: tabular-nums;
}

.gallery-header-actions {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
}

.btn-danger-action {
  color: var(--color-error) !important;
}

.btn-danger-action:hover {
  color: #991b1b !important;
}

.gallery-empty-state {
  text-align: center;
  padding: var(--sp-6) var(--sp-4);
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  margin-top: var(--sp-2);
}

.gallery-empty-state .empty-icon {
  font-size: 2rem;
  display: block;
  margin-bottom: var(--sp-2);
}

.gallery-empty-state .empty-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 var(--sp-1);
}

.gallery-empty-state .empty-desc {
  font-size: 0.8125rem;
  color: var(--text-muted);
  margin: 0;
  max-width: 440px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.5;
}

.gallery-upload-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  margin-top: var(--sp-2);
}

.gallery-photo-item {
  display: flex;
  gap: var(--sp-3);
  align-items: center;
  padding: var(--sp-3);
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

.gallery-photo-item:hover {
  border-color: var(--border-strong);
  box-shadow: var(--shadow-md);
}

.photo-thumb-wrap {
  position: relative;
  width: 72px;
  height: 72px;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 1px solid var(--border-subtle);
  background: var(--bg-subtle);
}

.photo-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.photo-order-tag {
  position: absolute;
  top: 4px;
  left: 4px;
  background: rgba(15, 23, 42, 0.75);
  color: #ffffff;
  font-size: 0.625rem;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 4px;
  font-variant-numeric: tabular-nums;
}

.photo-fields-wrap {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.photo-input-caption,
.photo-input-sub {
  width: 100%;
  min-height: 34px;
  padding: 6px 10px;
  font-size: 0.8125rem;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  background: var(--bg-canvas);
  color: var(--text-primary);
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

.photo-input-caption:focus,
.photo-input-sub:focus {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 2px var(--color-primary-ring);
}

.photo-delete-btn {
  background: transparent;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  color: var(--text-muted);
  cursor: pointer;
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease;
}

.photo-delete-btn:hover {
  color: var(--color-error);
  border-color: var(--color-error-border);
  background: var(--color-error-bg);
}

.photo-delete-btn:focus-visible {
  outline: 2px solid var(--color-error);
  outline-offset: 2px;
}

/* Card Preview Mini Photo Strip */
.card-photos-preview-strip {
  margin: var(--sp-3) 0;
  padding: var(--sp-2) var(--sp-3);
  background: rgba(255, 255, 255, 0.5);
  border: 1px dashed rgba(190, 18, 60, 0.35);
  border-radius: var(--radius-md);
  backdrop-filter: blur(4px);
}

.card-photos-strip-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text-secondary);
  margin-bottom: 6px;
  font-variant-numeric: tabular-nums;
}

.card-photos-strip-thumbs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.card-strip-thumb-item {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border-radius: 4px;
  border: 2px solid #ffffff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  background: #f1f5f9;
}

.card-strip-thumb-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Gallery Lightbox Modal */
.lightbox-dialog {
  position: relative;
  max-width: 92vw;
  max-height: 92vh;
  margin: auto;
  background: var(--bg-surface);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border-subtle);
  animation: modalPopIn 220ms cubic-bezier(0.16, 1, 0.3, 1);
}

.lightbox-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-height: 90vh;
}

.lightbox-image-wrap {
  background: #000000;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  max-height: 72vh;
  overflow: hidden;
}

.lightbox-photo {
  max-width: 88vw;
  max-height: 70vh;
  object-fit: contain;
  display: block;
}

.lightbox-caption-wrap {
  width: 100%;
  padding: var(--sp-4) var(--sp-6);
  text-align: center;
  background: var(--bg-surface);
  border-top: 1px solid var(--border-subtle);
}

.lightbox-caption {
  font-family: 'Dancing Script', cursive;
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 2px;
}

.lightbox-sub {
  font-size: 0.8125rem;
  color: var(--text-muted);
  margin: 0;
}

.lightbox-close-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 25;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.7);
  backdrop-filter: blur(4px);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 150ms ease, transform 150ms ease;
}

.lightbox-close-btn:hover {
  background: rgba(15, 23, 42, 0.95);
  transform: scale(1.06);
}

.lightbox-close-btn:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}

/* Section 5: Guestbook & RSVP */
.dramatic-guestbook-card {
  background: #ffffff;
  border: 1px solid rgba(254, 205, 211, 0.85);
  border-radius: var(--radius-xl);
  padding: var(--sp-8) var(--sp-6);
  box-shadow: 0 15px 35px -5px rgba(244, 63, 94, 0.08);
}

.dramatic-wish-form {
  max-width: 540px;
  margin: 0 auto var(--sp-8);
  background: #fff5f6;
  border: 1px solid #fecdd3;
  border-radius: var(--radius-lg);
  padding: var(--sp-6);
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}

.dramatic-wishes-board {
  max-width: 540px;
  margin: 0 auto;
}

.wishes-board-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #fecdd3;
  padding-bottom: var(--sp-3);
  margin-bottom: var(--sp-4);
}

.wishes-board-title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.badge-count {
  font-size: 0.75rem;
  font-weight: 600;
  background: #ffe4e6;
  color: #be123c;
  padding: 4px 10px;
  border-radius: 9999px;
}

.wishes-cards-stack {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  max-height: 420px;
  overflow-y: auto;
  padding-right: 4px;
}

.wish-item-card {
  background: #ffffff;
  border: 1px solid #fecdd3;
  border-radius: var(--radius-md);
  padding: var(--sp-4);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
}

.wish-item-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-2);
}

.wish-sender-info {
  display: flex;
  align-items: center;
  gap: 10px;
}

.wish-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #fff1f2;
  border: 1px solid #fecdd3;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
}

.wish-name {
  font-weight: 700;
  font-size: 0.9375rem;
  color: #1f2937;
  margin: 0;
}

.wish-time {
  font-size: 0.6875rem;
  color: #9ca3af;
}

.wish-status-badge {
  font-size: 0.6875rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 9999px;
  border: 1px solid transparent;
}
.wish-status-badge.hadir {
  background: #dcfce7;
  color: #15803d;
  border-color: #86efac;
}
.wish-status-badge.ragu {
  background: #dbeafe;
  color: #1d4ed8;
  border-color: #93c5fd;
}
.wish-status-badge.berhalangan {
  background: #fef3c7;
  color: #92400e;
  border-color: #fde68a;
}

.wish-text {
  font-size: 0.875rem;
  line-height: 1.5;
  color: #4b5563;
  margin: 0;
}

/* Section 6: Bagikan */
.dramatic-share-card {
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(254, 205, 211, 0.85);
  border-radius: var(--radius-xl);
  padding: var(--sp-8) var(--sp-6);
  text-align: center;
}

.dramatic-share-title {
  font-family: var(--font-serif-display);
  font-size: 1.65rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 var(--sp-2);
}

.dramatic-share-subtitle {
  font-size: 0.875rem;
  color: #6b7280;
  max-width: 520px;
  margin: 0 auto var(--sp-6);
  line-height: 1.5;
}

.dramatic-share-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--sp-3);
}

.btn-whatsapp {
  background: #25D366;
  color: #ffffff;
  border: none;
}
.btn-whatsapp:hover {
  background: #20bd5a;
  color: #ffffff;
  box-shadow: 0 8px 20px rgba(37, 211, 102, 0.35);
}

.btn-telegram {
  background: #229ED9;
  color: #ffffff;
  border: none;
}
.btn-telegram:hover {
  background: #1e8bc0;
  color: #ffffff;
  box-shadow: 0 8px 20px rgba(34, 158, 217, 0.35);
}

/* Footer & Action Bar */
.dramatic-footer {
  text-align: center;
  padding-top: var(--sp-4);
}

.dramatic-footer-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--sp-3);
  margin-bottom: var(--sp-6);
}

.dramatic-footer-love {
  font-size: 0.8125rem;
  color: #9ca3af;
  margin: 0;
}

/* Celebration Prayer Popup Modal */
.celebration-popup-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-4);
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.celebration-popup-overlay.hidden {
  display: none !important;
}

.celebration-popup-box {
  position: relative;
  width: 100%;
  max-width: 400px;
  background: #ffffff;
  border-radius: var(--radius-xl);
  padding: var(--sp-8) var(--sp-6);
  text-align: center;
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(254, 205, 211, 0.85);
  animation: popScale 350ms cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
  overflow: hidden;
}

@keyframes popScale {
  from { transform: scale(0.85); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

.popup-star-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #fef3c7;
  color: #d97706;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.25rem;
  margin: 0 auto var(--sp-4);
  animation: bounceSoft 2s infinite ease-in-out;
}

@keyframes bounceSoft {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

.popup-title {
  font-family: var(--font-serif-display);
  font-size: 1.6rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 var(--sp-2);
}

.popup-message {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #4b5563;
  margin: 0 0 var(--sp-6);
}

.celebration-popup-box .btn,
#btn-close-celebration-popup {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
  line-height: 1.45;
  height: auto;
  min-height: 48px;
  padding: var(--sp-3) var(--sp-5);
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 480px) {
  .celebration-popup-box {
    padding: var(--sp-6) var(--sp-4);
  }

  .celebration-popup-box .btn,
  #btn-close-celebration-popup {
    font-size: 0.875rem;
    padding: var(--sp-3) var(--sp-3);
  }
}

/* Display Rules for Dramatic Preview Mode (Studio Editor Preview Only) */
body.dramatic-preview-mode .site-header,
body.dramatic-preview-mode #recipient-banner,
body.dramatic-preview-mode .hero-section,
body.dramatic-preview-mode .catalog-section,
body.dramatic-preview-mode .steps-section,
body.dramatic-preview-mode .faq-section,
body.dramatic-preview-mode .editor-section,
body.dramatic-preview-mode .site-footer,
body.dramatic-preview-mode .mobile-jump-bar {
  display: none !important;
}

body.dramatic-preview-mode .dramatic-invitation-view {
  display: block !important;
}

body.dramatic-preview-mode .dramatic-floating-controls {
  display: flex !important;
}

body.dramatic-preview-mode #btn-close-dramatic-preview {
  display: inline-flex !important;
}

/* Refined Warm Light Styling for Dramatic Invitation Components */
.dramatic-hero-card,
.dramatic-role-banner,
.dramatic-letter-card,
.dramatic-cake-card,
.dramatic-guestbook-card,
.dramatic-share-card,
.celebration-popup-box,
.polaroid-card {
  background: #ffffff;
  border-color: #fecdd3;
  color: var(--text-primary);
}

.polaroid-caption {
  color: #1c1917;
}

.polaroid-sub {
  color: #78716c;
}

.gallery-upload-dropzone {
  background: var(--bg-subtle);
  border-color: var(--border-strong);
}

.gallery-photo-item {
  background: var(--bg-surface);
  border-color: var(--border-subtle);
}

.photo-input-caption,
.photo-input-sub {
  background: var(--bg-canvas);
  border-color: var(--border-subtle);
  color: var(--text-primary);
}

.card-photos-preview-strip {
  background: rgba(255, 255, 255, 0.9);
  border-color: rgba(244, 63, 94, 0.3);
}

.role-selector-section {
  background: #ffffff;
  border-color: #e7e1d6;
}

.role-option-card {
  background: #faf8f5;
  border-color: #e7e1d6;
}

.role-option-card:hover {
  background: #f5f0e8;
}

.role-option-card.active {
  background: #fff1f2;
  border-color: #be123c;
}

.role-badge-greeting {
  background: #dbeafe;
  color: #1d4ed8;
  border-color: #93c5fd;
}

.role-badge-invitation {
  background: #dcfce7;
  color: #15803d;
  border-color: #86efac;
}

.dramatic-hero-heading,
.dramatic-letter-title,
.dramatic-section-title,
.dramatic-share-title,
.info-card-title,
.wishes-board-title,
.popup-title,
.wish-name {
  color: #1c1917;
}

.dramatic-hero-milestone,
.dramatic-letter-content,
.dramatic-section-subtitle,
.dramatic-share-subtitle,
.popup-message,
.wish-text {
  color: #44403c;
}

.dramatic-countdown-box,
.dramatic-wish-form,
.dramatic-info-card,
.wish-item-card {
  background: #ffffff;
  border-color: #fecdd3;
  box-shadow: 0 4px 15px -3px rgba(244, 63, 94, 0.08);
}

.countdown-card {
  background: #fff5f5;
  border-color: #fecdd3;
}

.countdown-value {
  color: #be123c;
  font-variant-numeric: tabular-nums;
}

.floating-ctrl-btn {
  background: rgba(255, 255, 255, 0.95);
  border-color: #e7e1d6;
  color: #1c1917;
  box-shadow: 0 8px 20px -4px rgba(44, 30, 20, 0.12);
}

.envelope-modal-box {
  background: linear-gradient(145deg, #ffffff 0%, #fff7ed 100%);
  border-color: #fecdd3;
  color: #1c1917;
  box-shadow: 0 25px 50px -12px rgba(190, 18, 60, 0.25);
}

.envelope-modal-title {
  color: #1c1917;
}

.envelope-modal-desc {
  color: #44403c;
}

@media (max-width: 640px) {
  .dramatic-hero-heading {
    font-size: 1.75rem;
  }
  .dramatic-countdown-grid {
    gap: 6px;
  }
  .countdown-value {
    font-size: 1.45rem;
  }
  .countdown-card {
    padding: 8px 2px;
  }
  .dramatic-letter-card {
    padding: var(--sp-8) var(--sp-4) var(--sp-6);
  }
  .dramatic-details-grid {
    grid-template-columns: 1fr;
  }
  .dramatic-polaroids-row {
    grid-template-columns: 1fr;
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
  }
  .dramatic-footer-actions {
    flex-direction: column;
    width: 100%;
  }
  .dramatic-footer-actions .btn {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   Print Styles (Clean Greeting Card Printout)
   ========================================================================== */
@media print {
  body {
    background: #ffffff;
    color: #000000;
  }

  .site-header,
  .site-footer,
  .hero-section,
  .catalog-section,
  .steps-section,
  .faq-section,
  .editor-intro,
  .preset-bar,
  .editor-panel-form,
  .preview-toolbar,
  .preview-actions-bar,
  .export-note,
  .modal-backdrop,
  .toast-container,
  .envelope-body,
  .recipient-actions-bar,
  .recipient-floating-theme {
    display: none !important;
  }

  .editor-section,
  .preview-stage {
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .greeting-card {
    box-shadow: none !important;
    border: 2px solid #000000 !important;
    page-break-inside: avoid;
    width: 100% !important;
    max-width: 600px !important;
    margin: 0 auto;
  }
}
