body {
  min-height: 100vh;
}

.page-shell {
  position: relative;
}

.page-shell::before {
  content: "";
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at 20% 0%, rgba(232, 190, 115, 0.24), transparent 30%),
    radial-gradient(circle at 100% 15%, rgba(157, 89, 104, 0.18), transparent 28%),
    linear-gradient(180deg, #f7f1e8 0%, #f2e6d9 100%);
  z-index: -2;
}

.page-shell::after {
  content: "";
  position: fixed;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.35) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.35) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.28), transparent 65%);
  z-index: -1;
  pointer-events: none;
}

.section-kicker {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #9d6c61;
}

.hero-reel-card {
  background:
    linear-gradient(180deg, rgba(19, 14, 14, 0.08), rgba(19, 14, 14, 0.3)),
    radial-gradient(circle at top left, rgba(232, 190, 115, 0.28), transparent 35%),
    linear-gradient(135deg, #54343f 0%, #1e1719 100%);
}

.character-card,
.diary-card,
.signal-card,
.memory-card,
.testimonial-card,
.faq-card {
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.character-card:hover,
.diary-card:hover,
.signal-card:hover,
.memory-card:hover,
.testimonial-card:hover,
.faq-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 60px rgba(32, 24, 21, 0.1);
}

.cover-frame {
  position: relative;
  overflow: hidden;
}

.cover-frame img {
  transition: transform 300ms ease;
}

.cover-frame:hover img {
  transform: scale(1.04);
}

.blur-premium {
  position: relative;
}

.blur-premium::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 42%;
  backdrop-filter: blur(11px);
  background: linear-gradient(180deg, rgba(247, 241, 232, 0), rgba(247, 241, 232, 0.92));
}

.device-chat {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(249, 243, 236, 0.92));
}

.chat-bubble-user {
  background: #231917;
  color: white;
}

.chat-bubble-ai {
  background: #f0e1d3;
  color: #2a1d19;
}

.line-clamp-4 {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 768px) {
  .page-shell::after {
    background-size: 48px 48px;
  }
}
