/* ==========================================================
   DECORART — REVEAL ANIMATIONS
   ========================================================== */

[data-reveal] {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 1s cubic-bezier(0.22, 1, 0.36, 1), transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}
[data-reveal="fade-up"] { transform: translateY(40px); }
[data-reveal="fade-left"] { transform: translateX(-40px); }
[data-reveal="fade-right"] { transform: translateX(40px); }
[data-reveal="scale"] { transform: scale(0.9); }
[data-reveal="fade"] { transform: none; }

[data-reveal].is-visible {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}

/* Mobilde yatay translate sayfa scroll’unu şişirmesin */
@media (max-width: 991.98px) {
  [data-reveal="fade-left"],
  [data-reveal="fade-right"] {
    transform: translateY(28px);
  }
}

/* Stagger child reveals */
[data-reveal-stagger] > * {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
[data-reveal-stagger].is-visible > *:nth-child(1) { transition-delay: 0.05s; }
[data-reveal-stagger].is-visible > *:nth-child(2) { transition-delay: 0.12s; }
[data-reveal-stagger].is-visible > *:nth-child(3) { transition-delay: 0.19s; }
[data-reveal-stagger].is-visible > *:nth-child(4) { transition-delay: 0.26s; }
[data-reveal-stagger].is-visible > *:nth-child(5) { transition-delay: 0.33s; }
[data-reveal-stagger].is-visible > *:nth-child(6) { transition-delay: 0.40s; }
[data-reveal-stagger].is-visible > *:nth-child(7) { transition-delay: 0.47s; }
[data-reveal-stagger].is-visible > *:nth-child(8) { transition-delay: 0.54s; }
[data-reveal-stagger].is-visible > * { opacity: 1; transform: translateY(0); }

/* Cinematic slow zoom on images */
.cinematic-zoom { overflow: hidden; }
.cinematic-zoom img { transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1); }
.cinematic-zoom:hover img { transform: scale(1.08); }

/* Hover glow */
.hover-glow { position: relative; transition: all 0.4s ease; }
.hover-glow::before { content: ''; position: absolute; inset: -2px; border-radius: inherit; background: linear-gradient(135deg, var(--gold-400), var(--gold-600)); opacity: 0; z-index: -1; transition: opacity 0.4s ease; filter: blur(12px); }
.hover-glow:hover::before { opacity: 0.4; }

/* Glassmorphism */
.glass { background: rgba(255, 255, 255, 0.7); backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); border: 1px solid rgba(255, 255, 255, 0.5); }
.glass-dark { background: rgba(14, 14, 14, 0.6); backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); border: 1px solid rgba(201, 162, 75, 0.2); color: #fff; }

/* Page transition */
.page-enter { animation: pageEnter 0.8s cubic-bezier(0.22, 1, 0.36, 1) both; }
@keyframes pageEnter { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

/* Marquee */
.marquee { overflow: hidden; white-space: nowrap; }
.marquee-track { display: inline-flex; gap: 3rem; animation: marquee 30s linear infinite; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Hover underline effect */
.hover-underline { position: relative; }
.hover-underline::after { content: ''; position: absolute; left: 0; bottom: -3px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
.hover-underline:hover::after { transform: scaleX(1); transform-origin: left; }

/* Pulse dot */
.pulse-dot { position: relative; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--gold-500); }
.pulse-dot::before { content: ''; position: absolute; inset: -3px; border-radius: 50%; background: var(--gold-500); opacity: 0.4; animation: pulseDot 1.8s ease-out infinite; }
@keyframes pulseDot { 0% { transform: scale(1); opacity: 0.4; } 100% { transform: scale(2.5); opacity: 0; } }

/* Image reveal */
.img-reveal { position: relative; overflow: hidden; }
.img-reveal::after { content: ''; position: absolute; inset: 0; background: var(--ink-900); transform-origin: right; transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1); }
.img-reveal.in-view::after { transform: scaleX(0); }
.img-reveal img { opacity: 0; transition: opacity 0.6s ease 0.6s; }
.img-reveal.in-view img { opacity: 1; }

/* Hover lift */
.hover-lift { transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s ease; }
.hover-lift:hover { transform: translateY(-6px); box-shadow: 0 24px 60px rgba(0, 0, 0, 0.12); }

/* Compare bar */
.compare-bar { position: fixed; bottom: 0; left: 0; right: 0; background: var(--ink-900); color: #fff; padding: 1rem 1.5rem; z-index: 980; transform: translateY(100%); transition: transform 0.4s ease; display: flex; align-items: center; justify-content: space-between; gap: 1rem; box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.2); }
.compare-bar.visible { transform: translateY(0); }
.compare-bar .count { background: var(--gold-500); color: var(--ink-900); width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; margin-right: 0.6rem; }
.compare-bar .actions { display: flex; gap: 0.5rem; }

/* Side mini cart */
.side-minicart { position: fixed; top: 0; right: 0; bottom: 0; width: 420px; max-width: 90vw; background: #fff; z-index: 1060; transform: translateX(100%); transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); display: flex; flex-direction: column; box-shadow: -20px 0 60px rgba(0, 0, 0, 0.15); }
.side-minicart.open { transform: translateX(0); }
.side-minicart-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.4); z-index: 1055; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; }
.side-minicart-overlay.open { opacity: 1; visibility: visible; }
.side-minicart-header { padding: 1.5rem; border-bottom: 1px solid var(--ink-200); display: flex; align-items: center; justify-content: space-between; }
.side-minicart-body { flex: 1; overflow-y: auto; padding: 1rem 1.5rem; }
.side-minicart-footer { padding: 1.5rem; border-top: 1px solid var(--ink-200); }
.minicart-item { display: flex; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--ink-100); }
.minicart-item:last-child { border: 0; }
.minicart-item-img { width: 70px; height: 70px; border-radius: 6px; overflow: hidden; background: var(--ink-50); flex-shrink: 0; }
.minicart-item-img img { width: 100%; height: 100%; object-fit: cover; }
.minicart-item-info { flex: 1; }
.minicart-item-info h6 { font-size: 0.9rem; margin: 0 0 0.2rem; }
.minicart-item-info p { font-size: 0.8rem; color: var(--ink-500); margin: 0 0 0.4rem; }
.minicart-item-price { font-weight: 600; font-size: 0.95rem; }
.minicart-remove { color: var(--ink-400); transition: color 0.2s ease; }
.minicart-remove:hover { color: var(--danger); }
