:root{
  --bg: #ffffff;
}

*{ box-sizing: border-box; }

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

/* ---------- page title ---------- */

.page-title{
  position: fixed;
  top: 20px;
  left: 24px;
  z-index: 50;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 24px;
  font-weight: 400;
  color: #000;
}

/* ---------- card stack ---------- */

.stack-viewport{
  position: relative;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.stack-col{
  display: flex;
  flex-direction: column;
  width: min(80vw, 768px);
  overflow: visible;
}

.stack{
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: visible;
  touch-action: none;
  cursor: grab;
}

.stack.is-dragging{
  cursor: grabbing;
}

.stack-caption{
  margin-top: 56px;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #000;
  text-align: left;
}

.postcard{
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transform-origin: center center;
  user-select: none;
}

.postcard img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  -webkit-user-drag: none;
}

/* ---------- edge arrows ---------- */

.edge-arrow{
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  z-index: 60;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: #000;
  cursor: pointer;
  opacity: 1;
  transition: opacity 0.2s ease;
}

.edge-arrow:hover{
  opacity: 0.7;
}

.edge-arrow:focus,
.edge-arrow:focus-visible{
  outline: none;
}

.edge-arrow-left{
  left: 20px;
}

.edge-arrow-right{
  right: 20px;
}

/* ---------- book cta ---------- */

.book-cta{
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 60;
  height: 101px;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 22px 8px 16px;
  background: #EECFDE;
  border: 1px solid #EECFDE;
  border-radius: 0;
  text-decoration: none;
  cursor: pointer;
}

.book-cta:focus,
.book-cta:focus-visible{
  outline: none;
}

.book-cta img{
  height: 100%;
  width: auto;
  display: block;
  border-radius: 0;
}

.book-cta-text{
  display: inline-block;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  color: #000;
  white-space: nowrap;
  transform: translateY(-4px);
}

.book-cta-arrow{
  display: inline-block;
  vertical-align: middle;
  margin-left: 3px;
  margin-top: -2px;
  color: #000;
}

@media (max-width: 560px){
  .edge-arrow{
    width: 40px;
    height: 40px;
  }
  .edge-arrow-left{
    left: 6px;
  }
  .edge-arrow-right{
    right: 6px;
  }
}
