/* =========================================================================
   Coffelorvia — showroom ekranı
   Yalnızca görsel. Arayüz öğesi yok.
   ========================================================================= */

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --bg: #08080c;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --dur: 900ms;
}

html,
body {
  height: 100%;
  background: var(--bg);
  overflow: hidden;
}

body.is-idle {
  cursor: none;
}

.showroom {
  position: relative;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  background: var(--bg);
  isolation: isolate;
}

/* ------------------------------------------------------------------ slaytlar */
.slides {
  position: absolute;
  inset: 0;
  perspective: 1600px;
}

.slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
  transition:
    opacity var(--dur) var(--ease),
    transform var(--dur) var(--ease),
    filter var(--dur) var(--ease);
  will-change: opacity, transform;
  backface-visibility: hidden;
  transform: translateZ(0);
}

.slides .slide.is-active {
  opacity: 1;
  z-index: 2;
  transform: none;
}

/* Görsel yerleşimi ------------------------------------------------------- */
/* cover: ekranı doldur (kırpar) */
.slide-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  user-select: none;
  -webkit-user-drag: none;
}

/* contain-blur: görselin tamamı görünür, arkası bulanık dolgu */
.slide-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transform: scale(1.18);
  filter: blur(34px) saturate(1.15) brightness(0.52);
  pointer-events: none;
}

.slide[data-fit='contain-blur'] {
  background: #06060a;
}

.slide[data-fit='contain-blur'] .slide-bg {
  opacity: 1;
}

.slide[data-fit='contain-blur'] .slide-photo {
  object-fit: contain;
}

/* contain-black: görselin tamamı görünür, zemin siyah */
.slide[data-fit='contain-black'] {
  background: #000;
}

.slide[data-fit='contain-black'] .slide-photo {
  object-fit: contain;
}

/* --- geçiş türleri ------------------------------------------------------- */
.slide[data-transition='fade'] {
  transform: scale(1.005);
}

.slide[data-transition='slide'] {
  transform: translateX(7%) scale(1.03);
}

.slide[data-transition='slide'].is-exiting {
  transform: translateX(-7%) scale(1.03);
}

.slide[data-transition='zoom'] {
  transform: scale(1.09);
  filter: blur(6px);
}

.slide[data-transition='zoom'].is-active {
  filter: blur(0);
}

.slide[data-transition='3d-flip'] {
  transform: rotateY(14deg) scale(0.97);
  transform-origin: 50% 50%;
}

.slide[data-transition='3d-flip'].is-exiting {
  transform: rotateY(-14deg) scale(0.97);
}

.slide[data-transition='kenburns'][data-fit='cover'].is-active .slide-photo {
  animation: kenburns var(--slide-duration, 6000ms) linear both;
}

@keyframes kenburns {
  from {
    transform: scale(1) translate3d(0, 0, 0);
  }
  to {
    transform: scale(1.07) translate3d(0, -1.2%, 0);
  }
}

/* ------------------------------------------------------------------ durumlar */
.state {
  position: absolute;
  inset: 0;
  display: none;
  place-items: center;
  padding: 24px;
  background: var(--bg);
  color: rgba(255, 255, 255, 0.42);
  font: 500 clamp(0.85rem, 1.2vw, 1rem) / 1.6 system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  letter-spacing: 0.04em;
  text-align: center;
  z-index: 5;
}

.state[hidden] {
  display: none;
}

.state.is-visible {
  display: grid;
}

/* ------------------------------------------------------------------ uyum */
@media (prefers-reduced-motion: reduce) {
  .slide,
  .slide-photo,
  .slide-bg {
    transition-duration: 200ms !important;
    animation: none !important;
    transform: none !important;
  }
  .slide-bg {
    filter: blur(34px) saturate(1.15) brightness(0.52) !important;
  }
}
