/* Dreamy Blur — Graduate Physics Lecture
 * Ethereal deep navy with soft lavender/rose/gold accents.
 * Heavy frosted glass, blur layers, elegant serif typography.
 * Self-contained theme — no dependency on neon-glass-dark.
 */
:root {
  --db-navy:     #0f172a;
  --db-lavender: #c4b5fd;
  --db-rose:     #f9a8d4;
  --db-gold:     #fbbf24;
  --db-frost:    #f1f5f9;
  --db-muted:    rgba(241,245,249,0.55);
  /* UI overrides */
  --ui-bar-fill: #c4b5fd;
  --ui-bar-bg:   rgba(196,181,253,.12);
  --ui-text:     rgba(196,181,253,.55);
  --ui-shadow:   0 1px 6px rgba(15,23,42,.5);
}

/* ── Base slide ──────────────────────────────────────────────────────────── */
.slide {
  font-family: 'Georgia', 'Cambria', 'Palatino Linotype', 'Times New Roman', serif;
  background: #0f172a !important;
  color: #f1f5f9;
}

/* Soft dual-radial aurora in LAVENDER/ROSE — distinctly NOT cyan/pink/violet */
.slide::before,
.slide::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.slide::before {
  inset: -20%;
  background:
    radial-gradient(ellipse 600px 500px at 15% 25%, rgba(196,181,253,.22), transparent 60%),
    radial-gradient(ellipse 500px 600px at 80% 65%, rgba(249,168,212,.16), transparent 55%),
    radial-gradient(ellipse 400px 400px at 50% 90%, rgba(251,191,36,.10), transparent 50%);
  filter: blur(8px);
}

/* Subtle grain texture — academic paper feel */
.slide::after {
  inset: 0;
  opacity: .035;
  background-image: repeating-conic-gradient(
    rgba(241,245,249,.30) 0deg 0.5deg,
    transparent 0.5deg 1.5deg
  );
  background-size: 4px 4px;
  mask-image: radial-gradient(ellipse at center, black, transparent 75%);
}

/* ── Template-generic selectors ─────────────────────────────────────────── */

/* Heavy frosted glass — lavender-tinted, MUCH blurrier than neon-glass */
[data-maliang-deck-id*="-glass"] {
  background-image: linear-gradient(
    135deg,
    rgba(196,181,253,.12),
    rgba(249,168,212,.06)
  ) !important;
  border: 1px solid rgba(196,181,253,.25);
  box-shadow:
    0 30px 100px rgba(15,23,42,.55),
    inset 0 1px 0 rgba(196,181,253,.15),
    inset 0 0 40px rgba(196,181,253,.04);
  backdrop-filter: blur(28px) saturate(1.5);
  -webkit-backdrop-filter: blur(28px) saturate(1.5);
  border-radius: 20px;
}

/* Title: lavender glow — warm, dreamy, NOT cyan */
[data-maliang-deck-id$="-title"] {
  text-shadow:
    0 0 20px rgba(196,181,253,.45),
    0 0 50px rgba(196,181,253,.18),
    0 0 100px rgba(249,168,212,.08);
}

/* Kicker: lavender accent, delicate letter-spacing */
[data-maliang-deck-id*="-kicker"] {
  color: #c4b5fd !important;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: 600;
}

/* Orb: soft rose/lavender/gold radials — dreamy bokeh feel, NOT screen blend */
[data-maliang-deck-id*="-orb"] {
  background-image:
    radial-gradient(circle at 35% 30%, rgba(249,168,212,.85), transparent 30%),
    radial-gradient(circle at 60% 65%, rgba(196,181,253,.70), transparent 40%),
    radial-gradient(circle at 50% 50%, rgba(251,191,36,.25), transparent 55%) !important;
  box-shadow:
    0 0 60px rgba(196,181,253,.30),
    0 0 120px rgba(249,168,212,.15);
  mix-blend-mode: normal;
  animation: dreamy-drift 6s ease-in-out infinite alternate;
}

/* Chip badges: lavender/rose gradient */
[data-maliang-deck-id*="-chip"][data-maliang-deck-type="rect"] {
  background-image: linear-gradient(135deg, rgba(196,181,253,.18), rgba(249,168,212,.10)) !important;
  border: 1px solid rgba(196,181,253,.20) !important;
  box-shadow: 0 12px 40px rgba(15,23,42,.30);
}

/* Connector lines: lavender glow pulse */
[data-maliang-deck-id*="-connector"] {
  filter: drop-shadow(0 0 8px rgba(196,181,253,.60));
  animation: glow-pulse 3s ease-in-out infinite alternate;
}

/* Glow emphasis: rose/lavender */
[data-maliang-deck-id*="-glow"] {
  text-shadow:
    0 0 24px rgba(196,181,253,.55),
    0 0 52px rgba(249,168,212,.30);
}

/* Ring: lavender orbital */
[data-maliang-deck-id*="-ring"] {
  box-shadow: 0 0 40px rgba(196,181,253,.20), inset 0 0 24px rgba(249,168,212,.06);
  animation: db-spin 15s linear infinite;
}
[data-maliang-deck-id$="-ring-b"] { animation-duration: 20s; animation-direction: reverse; }

/* Pulse: soft lavender breathing */
[data-maliang-deck-id*="-pulse"] {
  box-shadow: 0 0 18px rgba(196,181,253,.50);
  animation: db-node 2.5s ease-in-out infinite alternate;
}

/* ── Chart & table ──────────────────────────────────────────────────────── */
[data-maliang-deck-id*="chart"],
[data-maliang-deck-id*="-graph"] {
  --chart-palette-1: #c4b5fd;
  --chart-palette-2: #f9a8d4;
  --chart-palette-3: #fbbf24;
  --chart-palette-4: #93c5fd;
  --chart-palette-5: #6ee7b7;
  --chart-axis:  rgba(241,245,249,.25);
  --chart-grid:  rgba(241,245,249,.08);
  --chart-label: rgba(241,245,249,.60);
  filter: drop-shadow(0 20px 50px rgba(196,181,253,.12));
}

/* 3D orbital plot: match the static PDF/PPTX projected surface frame. */
[data-maliang-deck-id="orbital-graph-3d"] {
  border: 1px solid rgba(148,163,184,.25);
  border-radius: 18px;
  overflow: hidden;
  background:
    radial-gradient(ellipse 560px 340px at 42% 20%, rgba(196,181,253,.15), transparent 58%),
    radial-gradient(ellipse 460px 320px at 68% 70%, rgba(249,168,212,.10), transparent 60%),
    rgba(15,23,42,.42);
  box-shadow:
    0 30px 90px rgba(15,23,42,.45),
    inset 0 1px 0 rgba(241,245,249,.08),
    inset 0 0 44px rgba(196,181,253,.06);
  backdrop-filter: blur(18px) saturate(1.25);
  -webkit-backdrop-filter: blur(18px) saturate(1.25);
}

[data-maliang-deck-id="orbital-graph-3d"] canvas {
  border-radius: 18px !important;
  filter:
    saturate(1.08)
    drop-shadow(0 18px 34px rgba(196,181,253,.14));
}

[data-maliang-deck-id*="table"] table {
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 18px 60px rgba(15,23,42,.35);
}

/* ── Keyframes ──────────────────────────────────────────────────────────── */

/* Dreamy float — gentle vertical bob with slight blur shift */
@keyframes dreamy-drift {
  from { transform: translateY(-4px) scale(1.00); }
  to   { transform: translateY(4px) scale(1.02); }
}

/* Glow pulse — lavender to rose shift */
@keyframes glow-pulse {
  from { opacity: .70; filter: drop-shadow(0 0 6px rgba(196,181,253,.40)); }
  to   { opacity: 1.00; filter: drop-shadow(0 0 18px rgba(249,168,212,.65)); }
}

@keyframes db-spin { to { transform: rotate(360deg); } }

@keyframes db-node {
  from { transform: scale(.95); opacity: .70; }
  to   { transform: scale(1.08); opacity: 1; }
}
