<template>
  <section class="section-padding">
    <div class="container-content">
      <div class="grid items-center gap-12 md:grid-cols-2">
        <!-- Book cover -->
        <UiScrollReveal>
          <div class="book-cover-wrapper relative">
            <!-- Shadok pumper -->
            <svg class="shadok-pumper" viewBox="0 0 200 240" fill="none" aria-hidden="true">
              <ellipse cx="100" cy="130" rx="55" ry="65" fill="currentColor" opacity="0.9"/>
              <ellipse cx="100" cy="60" rx="30" ry="28" fill="currentColor" opacity="0.85"/>
              <circle cx="88" cy="54" r="6" fill="currentColor" opacity="0.2"/>
              <circle cx="112" cy="54" r="6" fill="currentColor" opacity="0.2"/>
              <circle cx="90" cy="53" r="2.5" fill="currentColor" opacity="0.5"/>
              <circle cx="114" cy="53" r="2.5" fill="currentColor" opacity="0.5"/>
              <polygon points="100,68 115,78 85,78" fill="currentColor" opacity="0.6"/>
              <line x1="80" y1="192" x2="70" y2="230" stroke="currentColor" stroke-width="4" stroke-linecap="round" opacity="0.7"/>
              <line x1="120" y1="192" x2="130" y2="230" stroke="currentColor" stroke-width="4" stroke-linecap="round" opacity="0.7"/>
              <line x1="70" y1="230" x2="55" y2="232" stroke="currentColor" stroke-width="3" stroke-linecap="round" opacity="0.5"/>
              <line x1="130" y1="230" x2="145" y2="232" stroke="currentColor" stroke-width="3" stroke-linecap="round" opacity="0.5"/>
              <line x1="155" y1="110" x2="190" y2="90" stroke="currentColor" stroke-width="4" stroke-linecap="round" opacity="0.6"/>
              <line x1="190" y1="90" x2="190" y2="120" stroke="currentColor" stroke-width="4" stroke-linecap="round" opacity="0.6"/>
              <rect x="180" y="118" width="18" height="40" rx="3" fill="currentColor" opacity="0.4"/>
            </svg>
            <div class="book-cover-3d">
              <img
                :src="content?.book.coverImage"
                :alt="content?.book.coverAlt"
                class="book-cover-img"
              />
            </div>
          </div>
        </UiScrollReveal>

        <!-- Content + CTAs -->
        <div>
          <UiScrollReveal>
            <p class="mb-2 font-mono text-sm tracking-widest text-accent uppercase">{{ content?.book.kicker }}</p>
            <h2 class="heading-section font-display font-bold tracking-tight text-white">
              {{ content?.book.title }}
            </h2>
          </UiScrollReveal>

          <UiScrollReveal :delay="100">
            <p class="mt-4 text-lg leading-relaxed text-white/60">
              {{ content?.book.description }}
            </p>
          </UiScrollReveal>

          <UiScrollReveal :delay="200">
            <div class="mt-8 flex flex-col gap-3 sm:flex-row sm:gap-4">
              <UiBaseButton @click="$emit('open-player')">
                <div class="i-lucide-play mr-2 h-5 w-5" />
                {{ content?.book.cta.player }}
              </UiBaseButton>
              <UiBaseButton variant="accent" @click="$emit('open-pdf')">
                <div class="i-lucide-book-open mr-2 h-5 w-5" />
                {{ content?.book.cta.pdf }}
              </UiBaseButton>
            </div>
          </UiScrollReveal>
        </div>
      </div>
    </div>
  </section>
</template>

<script setup lang="ts">
defineEmits<{
  'open-player': []
  'open-pdf': []
}>()

const { data: content } = await usePageContent('home')
</script>

<style scoped>
.book-cover-wrapper {
  perspective: 800px;
  display: flex;
  justify-content: center;
}

.book-cover-3d {
  aspect-ratio: 3 / 4;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid hsl(var(--color-text) / 0.1);
  box-shadow:
    0 12px 40px hsl(var(--color-text) / 0.15),
    0 0 0 1px hsl(var(--color-text) / 0.08);
  transition: transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1),
              box-shadow 0.5s ease;
  max-width: 360px;
}

.book-cover-3d:hover {
  transform: rotateY(-8deg) rotateX(3deg) scale(1.02);
  box-shadow:
    12px 16px 48px hsl(var(--color-text) / 0.2),
    0 0 0 1px hsl(var(--color-primary) / 0.2);
}

.book-cover-img {
  width: 200%;
  height: 100%;
  object-fit: cover;
  transform: translateX(-50%);
}

.heading-section {
  font-size: clamp(1.625rem, 4vw, 2.125rem);
}

.shadok-pumper {
  position: absolute;
  right: 3%;
  bottom: 8%;
  width: clamp(90px, 12vw, 180px);
  opacity: 0.28;
  pointer-events: none;
  color: hsl(var(--color-primary));
  animation: shadok-float 10s ease-in-out infinite;
  z-index: 1;
}

@keyframes shadok-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

@media (max-width: 768px) {
  .shadok-pumper { display: none; }
}
</style>
