/* Reelym Mood Pack visual system */
.upload-wizard-steps{display:flex;gap:8px;margin-bottom:24px}
.upload-wizard-step{flex:1;text-align:center;padding:10px 8px;border-radius:10px;background:var(--card);border:1px solid #1a1a2a;font-size:.75rem;color:var(--muted);transition:.2s}
.upload-wizard-step.active{border-color:var(--gold);color:var(--gold);background:rgba(201,168,76,.08)}
.upload-wizard-step.done{color:var(--success)}
.upload-wizard-panel.hidden{display:none!important}

.mood-pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin:16px 0}
@media(max-width:520px){.mood-pack-grid{grid-template-columns:repeat(2,1fr)}}

.mood-pack-card{
  position:relative;border-radius:14px;padding:14px 12px;cursor:pointer;
  border:2px solid transparent;background:var(--mp-bg,var(--card));
  color:var(--mp-text,var(--text));min-height:120px;display:flex;flex-direction:column;
  align-items:flex-start;gap:4px;transition:transform .2s,border-color .2s,box-shadow .2s;
}
.mood-pack-card:hover:not(.disabled){transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.mood-pack-card.selected{border-color:var(--mp-primary,var(--gold));box-shadow:0 0 0 1px var(--mp-primary)}
.mood-pack-card.disabled{opacity:.55;cursor:not-allowed}
.mood-pack-card .mp-emoji,.mood-pack-card .mp-icon{font-size:1.6rem;line-height:1}
.mood-pack-card .mp-name{font-weight:600;font-size:.9rem}
.mood-pack-card .mp-tagline{font-size:.7rem;color:var(--mp-muted,var(--muted));line-height:1.3}
.mood-pack-lock{position:absolute;top:8px;right:8px;font-size:.75rem;opacity:.85}

.mood-preview-panel{
  border-radius:16px;padding:24px;margin-top:16px;min-height:180px;
  background:var(--mp-bg);background-image:var(--mp-bg-gradient);color:var(--mp-text);
  border:1px solid var(--mp-border);position:relative;overflow:hidden;
}
.mood-preview-panel::before{
  content:'';position:absolute;inset:0;background:var(--mp-overlay);pointer-events:none;
}
.mood-preview-inner{position:relative;z-index:1}
.mood-preview-heading{
  font-family:var(--mp-heading-font,'Playfair Display',serif);
  font-weight:var(--mp-heading-weight,600);
  letter-spacing:var(--mp-heading-spacing,0);
  line-height:var(--mp-line-height,1.55);
  font-size:1.35rem;margin-bottom:8px;color:var(--mp-primary);
}
.mood-preview-body{
  font-family:var(--mp-body-font,'Inter',sans-serif);
  font-weight:var(--mp-body-weight,400);
  letter-spacing:var(--mp-body-spacing,0);
  line-height:var(--mp-line-height,1.6);
  font-size:.9rem;color:var(--mp-text);
  opacity:.92;
}
.mood-preview-badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;padding:4px 10px;border-radius:99px;border:1px solid var(--mp-border);margin-bottom:12px;color:var(--mp-muted)}

.memory-card.mood-themed{
  border-radius:14px;overflow:hidden;border:1px solid var(--mp-border,#1a1a2a);
  background:var(--mp-bg,var(--card));color:var(--mp-text,var(--text));
  transition:transform .2s;
}
.memory-card.mood-themed:hover{transform:translateY(-2px)}
.memory-card.mood-themed .memory-card-accent{height:4px;background:linear-gradient(90deg,var(--mp-primary),var(--mp-secondary))}
.memory-card.mood-themed .memory-card-body{padding:14px}
.memory-card.mood-themed .memory-card-title{
  font-family:var(--mp-heading-font,'Playfair Display',serif);
  font-weight:var(--mp-heading-weight,600);font-size:.95rem;margin-bottom:4px;
}
.memory-card.mood-themed .memory-card-meta{font-size:.72rem;color:var(--mp-muted,var(--muted))}

.mood-effect-glow-warm{box-shadow:inset 0 0 80px rgba(232,184,74,.06)}
.mood-effect-glow-soft{box-shadow:inset 0 0 60px rgba(201,123,132,.06)}
.mood-effect-vignette-sepia::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 100px rgba(0,0,0,.45);pointer-events:none}
.mood-effect-sparkle-subtle{background-image:radial-gradient(circle at 20% 30%,rgba(201,168,76,.08),transparent 40%),var(--mp-bg-gradient)}
.mood-effect-frame-classic{border:1px solid var(--mp-border);outline:1px solid rgba(201,168,76,.15);outline-offset:4px}

.viewer-mood-wrap{border-radius:var(--radius-lg);padding:2px;background:linear-gradient(135deg,var(--mp-primary,#c9a84c),transparent)}
.viewer-mood-inner{border-radius:calc(var(--radius-lg) - 2px);overflow:hidden;background:var(--mp-bg,var(--bg))}
.mood-change-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:12px;background:var(--card);border-radius:10px;border:1px solid #1a1a2a}
.mood-upsell-banner{padding:12px 16px;border-radius:10px;background:rgba(201,168,76,.1);border:1px solid var(--gold-dim);font-size:.82rem;margin-top:12px}
.seasonal-upsell-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:.88rem}
.seasonal-upsell-badge{font-size:.68rem;padding:3px 8px;border-radius:99px;background:rgba(201,168,76,.18);color:var(--gold);white-space:nowrap}
.seasonal-upsell-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.seasonal-bundle-cta{border-color:var(--gold-dim)!important}

/* Textures */
.mood-texture-grain::after{content:'';position:absolute;inset:0;opacity:.06;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.mood-texture-gold-dust::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 30% 20%,var(--mp-texture-hint,rgba(201,168,76,.12)),transparent 50%),radial-gradient(circle at 70% 80%,var(--mp-texture-hint,rgba(201,168,76,.08)),transparent 40%)}
.mood-texture-velvet-blur::after{content:'';position:absolute;inset:0;pointer-events:none;backdrop-filter:blur(1px);background:var(--mp-overlay)}
.mood-texture-film-vignette::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 120px rgba(0,0,0,.5);pointer-events:none}
.mood-texture-soft-gradient::after{content:'';position:absolute;inset:0;background:var(--mp-bg-gradient);opacity:.4;pointer-events:none}
.mood-texture-matte-charcoal{background-image:linear-gradient(180deg,rgba(255,255,255,.02),transparent)}
.mood-texture-pastel-wash::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--mp-overlay),transparent);pointer-events:none}
.mood-texture-rugged-paper::after{content:'';position:absolute;inset:0;opacity:.08;pointer-events:none;background-image:repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(255,255,255,.03) 2px,rgba(255,255,255,.03) 4px)}

/* Micro-animations */
@keyframes moodFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes moodGlowPulse{0%,100%{box-shadow:inset 0 0 40px var(--mp-overlay)}50%{box-shadow:inset 0 0 80px var(--mp-overlay)}}
@keyframes moodGrainDissolve{from{opacity:0;filter:blur(4px)}to{opacity:1;filter:none}}
@keyframes moodSlideIn{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}
@keyframes moodSparkle{0%,100%{opacity:1}50%{opacity:.85;filter:brightness(1.08)}}
.mood-anim-fade-in,.mood-anim-enter{animation:moodFadeIn .6s ease-out both}
.mood-anim-glow-pulse:hover{animation:moodGlowPulse 1.2s ease-in-out infinite}
.mood-anim-grain-dissolve{animation:moodGrainDissolve .9s ease-out both}
.mood-anim-slide-in{animation:moodSlideIn .5s cubic-bezier(.22,1,.36,1) both}
.mood-anim-sparkle-shimmer:hover{animation:moodSparkle 1.4s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.mood-anim-fade-in,.mood-anim-enter,.mood-anim-grain-dissolve,.mood-anim-slide-in{animation:none}}

/* AI suggestion + reflection */
.mood-ai-suggest{padding:14px 16px;border-radius:12px;background:var(--card);border:1px solid var(--gold-dim);margin-bottom:16px}
.mood-ai-suggest.locked{opacity:.75;border-style:dashed}
.mood-ai-suggest-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.85rem;margin-bottom:6px}
.mood-ai-confidence{font-size:.72rem;color:var(--gold);padding:2px 8px;border-radius:99px;background:rgba(201,168,76,.12)}
.mood-reflection-prompt{margin-top:14px;padding-top:12px;border-top:1px solid var(--mp-border);font-size:.82rem;font-style:italic;color:var(--mp-muted)}
.mood-depth-row{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}
.mood-depth-btn{padding:6px 14px;border-radius:99px;border:1px solid #1a1a2a;background:var(--card);font-size:.75rem;cursor:pointer;color:var(--muted)}
.mood-depth-btn.active{border-color:var(--gold);color:var(--gold);background:rgba(201,168,76,.08)}
.mp-premium-badge{position:absolute;bottom:8px;right:8px;font-size:.6rem;padding:2px 6px;border-radius:4px;background:rgba(201,168,76,.15);color:var(--gold)}
.mood-analytics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:12px}
.mood-analytics-chip{padding:12px;border-radius:10px;background:var(--card);border:1px solid #1a1a2a;text-align:center}
.mood-analytics-chip .count{font-size:1.4rem;font-weight:700;color:var(--gold)}
.mood-analytics-chip .label{font-size:.72rem;color:var(--muted);margin-top:4px}

/* Story layout variants */
.mood-story-bright-rounded .memory-card-accent{border-radius:0 0 4px 4px}
.mood-story-scrapbook{border:2px solid var(--mp-border);transform:rotate(-0.3deg)}
.mood-story-postcard .memory-card-body{font-family:var(--mp-body-font)}
.mood-story-memorial .memory-card-accent{height:2px;opacity:.6}
.mood-story-spotlight .memory-card-accent{height:6px;box-shadow:0 0 12px var(--mp-primary)}
.mood-story-achievement-card .memory-card-title{text-transform:uppercase;letter-spacing:.04em;font-size:.85rem}

.mood-pack-grid-compact{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}
.mood-pack-grid-compact .mood-pack-card{min-height:90px;padding:10px}
.mood-pack-grid-compact .mp-tagline{display:none}
