/* theme: aurora */
.avatar-frame-aurora.avatar-frame-glow { filter: drop-shadow(0 0 10px oklch(0.62 0.22 285 / 0.45)); }
.avatar-frame-aurora.avatar-frame-ring { background-image: conic-gradient(from 0deg, #7c3aed, #06b6d4, #34d399, #a855f7, #7c3aed); }
.avatar-frame-aurora .avatar-frame-aura { background-image: conic-gradient(from 0deg, #7c3aed, #06b6d4, #34d399, #7c3aed); filter: blur(10px); }
.banner-style-aurora { background: linear-gradient(118deg, rgba(124, 58, 237, 0.55) 0%, transparent 45%), linear-gradient(298deg, rgba(6, 182, 212, 0.45) 0%, transparent 50%), linear-gradient(188deg, transparent 50%, rgba(52, 211, 153, 0.35) 100%); background-size: 200% 200%; animation: banner-aurora-shift 10s ease infinite; opacity: 0.92; }
.chat-list-style-aurora { background: radial-gradient(ellipse at 15% 30%, oklch(0.62 0.2 285 / 0.2), transparent 50%), radial-gradient(ellipse at 85% 70%, oklch(0.58 0.18 200 / 0.14), transparent 48%), radial-gradient(ellipse at 50% 50%, oklch(0.55 0.16 155 / 0.08), transparent 60%), color-mix(in oklch, var(--card) 84%, transparent); border-color: oklch(0.62 0.2 285 / 0.24); background-size: 200% 200%; animation: frame-gradient 7s ease infinite; }
.chat-list-style-aurora .chat-row-name { background: linear-gradient(90deg, oklch(0.88 0.12 285), oklch(0.85 0.14 200), oklch(0.86 0.1 155)); -webkit-background-clip: text; background-clip: text; color: transparent; background-size: 200% auto; animation: name-shimmer 4s linear infinite; }

/* theme: nebula */
.avatar-frame-nebula.avatar-frame-glow { filter: drop-shadow(0 0 12px oklch(0.58 0.24 320 / 0.5)); }
.avatar-frame-nebula.avatar-frame-ring { background-image: conic-gradient(from 45deg, #6366f1, #c026d3, #ec4899, #818cf8, #6366f1); }
.avatar-frame-nebula .avatar-frame-aura { background-image: conic-gradient(from 45deg, #6366f1, #c026d3, #ec4899, #6366f1); filter: blur(11px); }
.avatar-frame-nebula .avatar-frame-sparkle { opacity: 1; background: radial-gradient(circle at 22% 28%, rgba(255,255,255,0.95) 0 1px, transparent 2px), radial-gradient(circle at 72% 38%, rgba(255,255,255,0.75) 0 0.75px, transparent 1.5px); animation: sparkle-twinkle 2.8s ease-in-out infinite; }
.banner-style-nebula { background: radial-gradient(ellipse 80% 60% at 18% 35%, rgba(192,38,211,0.5), transparent 58%), radial-gradient(ellipse 70% 55% at 82% 65%, rgba(99,102,241,0.42), transparent 55%), linear-gradient(135deg, rgba(236,72,153,0.28), transparent 62%); animation: banner-nebula-drift 12s ease-in-out infinite; opacity: 0.88; }
.chat-list-style-glow { background: radial-gradient(ellipse at 8% 50%, oklch(0.58 0.22 320 / 0.2), transparent 55%), radial-gradient(ellipse at 92% 50%, oklch(0.52 0.2 260 / 0.16), transparent 50%), color-mix(in oklch, var(--card) 86%, transparent); border-color: oklch(0.58 0.22 320 / 0.25); animation: list-glow 3s ease-in-out infinite; }
.chat-list-style-glow .chat-row-name { background: linear-gradient(90deg, oklch(0.86 0.14 320), oklch(0.82 0.16 280)); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* theme: ember */
.avatar-frame-ember.avatar-frame-glow { filter: drop-shadow(0 0 11px oklch(0.68 0.22 35 / 0.55)); }
.avatar-frame-ember.avatar-frame-ring { background-image: conic-gradient(from 180deg, #f97316, #ef4444, #facc15, #fb923c, #f97316); }
.avatar-frame-ember .avatar-frame-aura { background-image: conic-gradient(from 180deg, #f97316, #ef4444, #facc15, #f97316); animation: frame-flicker 2.2s ease-in-out infinite; filter: blur(10px); }
.banner-style-ember { background: linear-gradient(160deg, rgba(249,115,22,0.52) 0%, transparent 48%), radial-gradient(ellipse 90% 70% at 75% 80%, rgba(239,68,68,0.42), transparent 62%), linear-gradient(0deg, rgba(250,204,21,0.28), transparent 52%); animation: banner-ember-flicker 4s ease-in-out infinite; opacity: 0.9; }
.chat-list-style-pulse { background: radial-gradient(ellipse at 20% 50%, oklch(0.62 0.22 35 / 0.18), transparent 55%), radial-gradient(ellipse at 80% 50%, oklch(0.55 0.18 55 / 0.12), transparent 50%), color-mix(in oklch, var(--card) 88%, transparent); border-color: oklch(0.62 0.22 35 / 0.22); animation: list-pulse-glow 2.6s ease-in-out infinite; }
.chat-list-style-pulse .chat-row-name { background: linear-gradient(90deg, oklch(0.88 0.16 35), oklch(0.84 0.14 55)); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* theme: cosmos */
.avatar-frame-cosmos.avatar-frame-glow { filter: drop-shadow(0 0 14px oklch(0.52 0.2 260 / 0.55)); }
.avatar-frame-cosmos.avatar-frame-ring { background-image: conic-gradient(from 90deg, #0ea5e9, #312e81, #9333ea, #38bdf8, #0ea5e9); }
.avatar-frame-cosmos .avatar-frame-aura { background-image: conic-gradient(from 90deg, #0ea5e9, #312e81, #9333ea, #0ea5e9); filter: blur(12px); }
.banner-style-cosmos { background: radial-gradient(circle at 22% 28%, rgba(255,255,255,0.55) 0 1px, transparent 2px), linear-gradient(125deg, rgba(14,165,233,0.42), transparent 52%), linear-gradient(305deg, rgba(147,51,234,0.38), transparent 58%); animation: banner-cosmos-twinkle 6s ease-in-out infinite; opacity: 0.95; }

/* theme: lavender */
.avatar-frame-lavender.avatar-frame-glow { filter: drop-shadow(0 0 10px oklch(0.65 0.18 300 / 0.45)); }
.avatar-frame-lavender.avatar-frame-ring { background-image: conic-gradient(from 270deg, #c084fc, #818cf8, #f472b6, #e879f9, #c084fc); }
.avatar-frame-lavender .avatar-frame-aura { background-image: conic-gradient(from 270deg, #c084fc, #818cf8, #f472b6, #c084fc); filter: blur(10px); }
.banner-style-lavender { background: linear-gradient(135deg, rgba(192,132,252,0.48), transparent 55%), radial-gradient(ellipse 75% 55% at 60% 40%, rgba(244,114,182,0.38), transparent 60%), linear-gradient(315deg, rgba(129,140,248,0.32), transparent 52%); animation: banner-lavender-shift 9s ease-in-out infinite; opacity: 0.85; }
.chat-list-style-shimmer { background: radial-gradient(ellipse at 0% 50%, oklch(0.62 0.2 155 / 0.18), transparent 58%), radial-gradient(ellipse at 100% 50%, oklch(0.55 0.18 285 / 0.14), transparent 52%), color-mix(in oklch, var(--card) 88%, transparent); border-color: oklch(0.62 0.2 155 / 0.22); }
.chat-list-style-shimmer::after { content: ''; position: absolute; inset: 0; clip-path: inset(0 round 0.75rem); background: linear-gradient(105deg, transparent 35%, oklch(0.75 0.14 155 / 0.12) 48%, oklch(0.72 0.16 285 / 0.1) 52%, transparent 65%); transform: translateX(-130%); animation: list-shimmer 4s ease-in-out infinite; pointer-events: none; }
.chat-list-style-shimmer .chat-row-name { background: linear-gradient(90deg, oklch(0.88 0.1 155), oklch(0.84 0.12 285)); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* theme: bloods */
@keyframes blood-pulse {
  0%, 100% { box-shadow: inset 0 0 0 1px oklch(0.45 0.28 25 / 0.18); }
  50% { box-shadow: inset 0 0 0 1px oklch(0.55 0.32 22 / 0.42), 0 0 20px oklch(0.45 0.28 25 / 0.14); }
}
@keyframes blood-drip {
  0% { transform: translateY(-110%) scaleY(0.2); opacity: 0; }
  12% { opacity: 0.95; }
  100% { transform: translateY(115%) scaleY(1.05); opacity: 0.35; }
}
@keyframes blood-trickle-banner {
  0%, 100% { background-position: 0% 0%; }
  50% { background-position: 100% 6%; }
}
@keyframes blood-aura-pulse {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 0.88; }
}
.avatar-frame-blood.avatar-frame-glow { filter: drop-shadow(0 0 10px oklch(0.48 0.26 25 / 0.5)); animation: blood-aura-pulse 2.6s ease-in-out infinite; }
.avatar-frame-blood.avatar-frame-ring { background-image: conic-gradient(from 210deg, #2a0505, #7f1d1d, #dc2626, #991b1b, #450a0a, #2a0505); }
.avatar-frame-blood .avatar-frame-aura { background-image: conic-gradient(from 210deg, #2a0505, #7f1d1d, #dc2626, #991b1b, #450a0a, #2a0505); filter: blur(11px); animation: blood-aura-pulse 2.6s ease-in-out infinite; }
.avatar-frame-blood .avatar-frame-sparkle { opacity: 0.85; background: radial-gradient(circle at 28% 22%, rgba(254,202,202,0.95) 0 1px, transparent 2px), radial-gradient(circle at 72% 38%, rgba(220,38,38,0.9) 0 1px, transparent 2px), radial-gradient(circle at 48% 68%, rgba(127,29,29,0.85) 0 0.75px, transparent 1.5px); }
.banner-style-overlay.banner-style-blood, .banner-style-overlay.banner-style-ichor { overflow: hidden; }
.banner-style-blood { background: linear-gradient(180deg, rgba(127,29,29,0.82) 0%, rgba(69,10,10,0.55) 38%, transparent 68%), radial-gradient(ellipse 130% 90% at 50% -15%, rgba(220,38,38,0.7), transparent 58%), repeating-linear-gradient(92deg, transparent 0 14px, rgba(69,10,10,0.12) 14px 15px); background-size: 100% 100%, 100% 100%, 200% 100%; animation: blood-trickle-banner 7s ease-in-out infinite; opacity: 0.96; }
.banner-style-blood::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 7px 26px at 14% 100%, rgba(185,28,28,0.9), transparent 72%), radial-gradient(ellipse 5px 20px at 36% 100%, rgba(239,68,68,0.8), transparent 72%), radial-gradient(ellipse 9px 30px at 58% 100%, rgba(153,27,27,0.95), transparent 72%), radial-gradient(ellipse 4px 16px at 78% 100%, rgba(220,38,38,0.75), transparent 72%), radial-gradient(ellipse 6px 22px at 92% 100%, rgba(127,29,29,0.85), transparent 72%); animation: blood-drip 4.5s ease-in infinite; }
.chat-list-style-blood:not(.chat-list-effect-layer), .chat-row-premium.chat-list-has-effect:not(.chat-list-layered) .chat-list-effect-layer.chat-list-style-blood { position: relative; background: radial-gradient(ellipse at 10% 120%, oklch(0.42 0.28 25 / 0.55), transparent 58%), radial-gradient(ellipse at 90% 115%, oklch(0.38 0.24 20 / 0.45), transparent 52%), linear-gradient(180deg, oklch(0.22 0.08 25 / 0.98), oklch(0.16 0.06 22 / 0.98)); border: 1px solid oklch(0.48 0.28 25 / 0.38); animation: blood-pulse 2.2s ease-in-out infinite; overflow: hidden; }
.chat-list-layered .chat-list-effect-layer.chat-list-style-blood { background: radial-gradient(ellipse at 10% 120%, oklch(0.48 0.3 25 / 0.5), transparent 58%), radial-gradient(ellipse at 90% 115%, oklch(0.44 0.26 20 / 0.42), transparent 52%), linear-gradient(180deg, oklch(0.45 0.24 25 / 0.4), oklch(0.38 0.2 22 / 0.3)); border: none; animation: blood-pulse 2.2s ease-in-out infinite; overflow: hidden; }
.chat-list-style-blood:not(.chat-list-effect-layer)::after, .chat-row-premium .chat-list-effect-layer.chat-list-style-blood::after { content: ''; position: absolute; inset: 0; clip-path: inset(0 round 0.75rem); background: linear-gradient(180deg, transparent 50%, rgba(127,29,29,0.25) 72%, rgba(69,10,10,0.45) 100%), radial-gradient(ellipse 4px 18px at 20% 0%, rgba(220,38,38,0.85), transparent 70%), radial-gradient(ellipse 3px 14px at 48% 0%, rgba(239,68,68,0.75), transparent 70%), radial-gradient(ellipse 5px 22px at 74% 0%, rgba(185,28,28,0.8), transparent 70%); animation: blood-drip 5.5s ease-in infinite; pointer-events: none; }
.chat-list-style-blood .chat-row-name, .chat-list-layered .chat-list-style-blood .chat-row-name { background: linear-gradient(90deg, oklch(0.8 0.16 25), oklch(0.62 0.26 22), oklch(0.74 0.18 25)); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* theme: ichor */
@keyframes ichor-aura-pulse {
  0%, 100% { opacity: 0.55; }
  50% { opacity: 0.92; }
}
@keyframes ichor-bubble {
  0% { transform: translateY(8%) scale(0.85); opacity: 0.35; }
  50% { transform: translateY(-6%) scale(1.05); opacity: 0.85; }
  100% { transform: translateY(8%) scale(0.85); opacity: 0.35; }
}
@keyframes ichor-seep {
  0%, 100% { background-position: 0% 0%; }
  50% { background-position: 100% 12%; }
}
@keyframes ichor-row-hum {
  0%, 100% { box-shadow: inset 0 0 0 1px oklch(0.62 0.16 130 / 0.15); }
  50% { box-shadow: inset 0 0 0 1px oklch(0.68 0.2 125 / 0.32), 0 0 16px oklch(0.62 0.16 130 / 0.1); }
}
.avatar-frame-ichor.avatar-frame-glow { filter: drop-shadow(0 0 11px oklch(0.72 0.18 130 / 0.45)); animation: ichor-aura-pulse 3.4s ease-in-out infinite; }
.avatar-frame-ichor.avatar-frame-ring { background-image: conic-gradient(from 120deg, #14532d, #84cc16, #ca8a04, #3f6212, #a3e635, #14532d); }
.avatar-frame-ichor .avatar-frame-aura { background-image: conic-gradient(from 120deg, #14532d, #84cc16, #ca8a04, #3f6212, #a3e635, #14532d); filter: blur(11px); animation: ichor-aura-pulse 3.4s ease-in-out infinite; }
.avatar-frame-ichor .avatar-frame-sparkle { opacity: 1; background: radial-gradient(circle at 24% 30%, rgba(236,253,203,0.95) 0 1.25px, transparent 2.5px), radial-gradient(circle at 58% 22%, rgba(163,230,53,0.9) 0 1px, transparent 2px), radial-gradient(circle at 76% 58%, rgba(250,204,21,0.85) 0 1px, transparent 2px); animation: ichor-bubble 3s ease-in-out infinite; }
.banner-style-overlay.banner-style-blood, .banner-style-overlay.banner-style-ichor { overflow: hidden; }
.banner-style-ichor { background: linear-gradient(145deg, rgba(20,83,45,0.55) 0%, transparent 45%), radial-gradient(ellipse 90% 70% at 20% 20%, rgba(132,204,22,0.42), transparent 55%), radial-gradient(ellipse 80% 60% at 85% 75%, rgba(202,138,4,0.38), transparent 52%), repeating-linear-gradient(60deg, transparent 0 22px, rgba(132,204,22,0.06) 22px 23px); background-size: 100% 100%, 100% 100%, 100% 100%, 180% 180%; animation: ichor-seep 11s ease-in-out infinite; opacity: 0.9; }
.banner-style-ichor::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 15% 80%, rgba(163,230,53,0.35) 0 8px, transparent 24px), radial-gradient(circle at 45% 90%, rgba(250,204,21,0.28) 0 6px, transparent 20px), radial-gradient(circle at 72% 85%, rgba(132,204,22,0.32) 0 10px, transparent 28px); animation: ichor-bubble 5s ease-in-out infinite; }
.chat-list-style-ichor:not(.chat-list-effect-layer), .chat-row-premium.chat-list-has-effect:not(.chat-list-layered) .chat-list-effect-layer.chat-list-style-ichor { position: relative; background: radial-gradient(ellipse at 0% 50%, oklch(0.44 0.14 130 / 0.42), transparent 55%), radial-gradient(ellipse at 100% 50%, oklch(0.4 0.12 95 / 0.35), transparent 50%), linear-gradient(135deg, oklch(0.18 0.06 145 / 0.98), oklch(0.15 0.05 120 / 0.98)); border: 1px solid oklch(0.62 0.16 130 / 0.32); animation: ichor-row-hum 3.8s ease-in-out infinite; overflow: hidden; }
.chat-list-layered .chat-list-effect-layer.chat-list-style-ichor { background: radial-gradient(ellipse at 0% 50%, oklch(0.48 0.16 130 / 0.45), transparent 55%), radial-gradient(ellipse at 100% 50%, oklch(0.44 0.14 95 / 0.38), transparent 50%), linear-gradient(135deg, oklch(0.42 0.14 145 / 0.38), oklch(0.38 0.12 120 / 0.28)); border: none; animation: ichor-row-hum 3.8s ease-in-out infinite; overflow: hidden; }
.chat-list-style-ichor:not(.chat-list-effect-layer)::before, .chat-row-premium .chat-list-effect-layer.chat-list-style-ichor::before { content: ''; position: absolute; inset: 0; clip-path: inset(0 round 0.75rem); background: radial-gradient(circle at 18% 60%, rgba(163,230,53,0.18) 0 12px, transparent 32px), radial-gradient(circle at 62% 40%, rgba(250,204,21,0.12) 0 10px, transparent 28px), radial-gradient(circle at 88% 70%, rgba(132,204,22,0.15) 0 14px, transparent 36px); animation: ichor-bubble 6s ease-in-out infinite; pointer-events: none; }
.chat-list-style-ichor .chat-row-name, .chat-list-layered .chat-list-style-ichor .chat-row-name { background: linear-gradient(90deg, oklch(0.86 0.12 130), oklch(0.8 0.14 95), oklch(0.84 0.1 125)); -webkit-background-clip: text; background-clip: text; color: transparent; }