.collection-root{--cp-yellow:#ffdc2e;--cp-yellow-hover:#f0cc00;--cp-black:#111;--cp-bg:#f5f5f5;--cp-card:#fff;--cp-muted:#6b7280}.dark .collection-root{--cp-bg:#0a0a0a;--cp-card:#171717;--cp-muted:#a3a3a3;--cp-black:#fafafa}.dark .occasion-cream :where(h1,h2,h3).text-neutral-900{color:#f5f5f5}.dark .occasion-cream :where(p).text-neutral-600,.dark .occasion-cream :where(p).text-neutral-700,.dark .occasion-cream :where(p).text-neutral-800{color:#d4d4d4}.dark .occasion-cream :where(p).text-neutral-900.font-extrabold{color:#f5f5f5}.dark .collection-root{color:#fafafa}.dark .collection-root :where(.text-red-600){color:#f87171}.dark .collection-root :where(.text-sky-700,.text-\[\#2563eb\]){color:#60a5fa}.dark .cp-on-light :where(.text-neutral-900,.text-neutral-800,.text-neutral-700){color:#171717}.dark .cp-on-light :where(.text-neutral-600){color:#525252}@keyframes memory-live-zoom{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}@keyframes memory-mix-slide-in{0%{opacity:0;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.memory-wall-grid{perspective:1200px}.memory-wall-card:hover{filter:brightness(1.05) saturate(1.08)}.memory-wall-card:hover .memory-wall-live-img{animation:memory-live-zoom 2.4s ease-in-out infinite}.memory-mix-slide-active{animation:memory-mix-slide-in .85s cubic-bezier(.22,1,.36,1) forwards}@keyframes occasion-upcoming-ring{0%,to{box-shadow:0 0 0 0 rgba(255,204,0,.55),0 4px 14px rgba(255,204,0,.25)}50%{box-shadow:0 0 0 7px rgba(255,204,0,0),0 6px 20px rgba(255,204,0,.35)}}@keyframes occasion-upcoming-border{0%{border-color:#fc0}50%{border-color:#ff9500}to{border-color:#fc0}}.occasion-upcoming{animation:occasion-upcoming-ring 1.8s ease-in-out infinite,occasion-upcoming-border 2.4s ease-in-out infinite}.occasion-upcoming-active{animation:occasion-upcoming-ring 1.2s ease-in-out infinite,occasion-upcoming-border 1.8s ease-in-out infinite}.occasion-upcoming:before{content:"";position:absolute;inset:-3px;border-radius:9999px;border:2px dashed rgba(255,149,0,.65);animation:occasion-upcoming-spin 6s linear infinite;pointer-events:none}@keyframes occasion-upcoming-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}