/* Interactive Letter/Envelope Component */
.letter-section {
  position: relative;
  padding: 100px 0 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: auto;
  background: linear-gradient(135deg, #FAF8F5 0%, #F5F2ED 50%, #F0EBE5 100%);
}

.letter-container {
  position: relative;
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
  perspective: 1500px;
}

/* Dotted Background Pattern */
.letter-bg-pattern {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0.15;
  background-image: radial-gradient(circle, currentColor 1.5px, transparent 1.5px);
  background-size: 40px 40px;
  color: #C9A587;
}

/* Envelope */
.envelope {
  position: relative;
  width: 100%;
  max-width: 420px;
  height: 260px;
  margin: 0 auto;
  cursor: pointer;
  transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  filter: drop-shadow(0 8px 24px rgba(139, 100, 70, 0.12));
}

@media (hover: hover) {
  .envelope:hover:not(.opened) {
    transform: translateY(-6px) scale(1.015);
    filter: drop-shadow(0 12px 32px rgba(139, 100, 70, 0.18));
  }
}

.envelope-base {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 175px;
  background: linear-gradient(145deg, #D4B59E 0%, #C9A587 30%, #B08968 100%);
  border-radius: 0 0 20px 20px;
  box-shadow:
    0 0 0 1px rgba(176, 137, 104, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    inset 0 -2px 4px rgba(0, 0, 0, 0.08);
  transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  /* Paper texture overlay */
  background-image:
    repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.015) 2px, rgba(0,0,0,0.015) 4px),
    repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(0,0,0,0.015) 2px, rgba(0,0,0,0.015) 4px),
    linear-gradient(145deg, #D4B59E 0%, #C9A587 30%, #B08968 100%);
}

.envelope-flap {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 130px;
  background: linear-gradient(145deg, #E5CEBA 0%, #D4B59E 50%, #C9A587 100%);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform-origin: top center;
  transition: all 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  z-index: 10;
  box-shadow:
    0 0 0 1px rgba(176, 137, 104, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    inset 0 -2px 4px rgba(0, 0, 0, 0.08);
  /* Paper texture overlay */
  background-image:
    repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.01) 2px, rgba(0,0,0,0.01) 4px),
    repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(0,0,0,0.01) 2px, rgba(0,0,0,0.01) 4px),
    linear-gradient(145deg, #E5CEBA 0%, #D4B59E 50%, #C9A587 100%);
}

/* Envelope seal/clasp at the flap point */
.envelope-flap::after {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 40px;
  background: radial-gradient(circle at 30% 30%, #F5E6D3 0%, #E5C9B0 50%, #D4B59E 100%);
  border-radius: 50%;
  box-shadow:
    0 0 0 1px rgba(176, 137, 104, 0.25),
    0 2px 8px rgba(139, 100, 70, 0.2),
    inset 0 1px 2px rgba(255, 255, 255, 0.5),
    inset 0 -1px 2px rgba(139, 100, 70, 0.2);
  z-index: 15;
  transition: all 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.envelope-flap-inner {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 96%;
  height: 96%;
  background: linear-gradient(145deg, #F5E6D3 0%, #E5CEBA 50%, #D4B59E 100%);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  box-shadow:
    inset 0 1px 4px rgba(255, 255, 255, 0.4),
    inset 0 -1px 2px rgba(0, 0, 0, 0.06);
  /* Paper texture */
  background-image:
    repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.008) 2px, rgba(0,0,0,0.008) 4px),
    repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(0,0,0,0.008) 2px, rgba(0,0,0,0.008) 4px),
    linear-gradient(145deg, #F5E6D3 0%, #E5CEBA 50%, #D4B59E 100%);
}

/* Elegant decorative elements on envelope */
.envelope-base::before {
  content: '✨';
  position: absolute;
  top: 20px;
  left: 28px;
  font-size: 1.1rem;
  opacity: 0.35;
  animation: pulse 2.5s ease-in-out infinite;
  z-index: 5;
}

.envelope-base::after {
  content: '✉️';
  position: absolute;
  top: 18px;
  right: 28px;
  font-size: 1.2rem;
  opacity: 0.4;
  animation: sparkle 3s ease-in-out infinite;
  z-index: 5;
}

/* Back envelope flaps for depth */
.envelope::before,
.envelope::after {
  content: '';
  position: absolute;
  bottom: 0;
  width: 50%;
  height: 0;
  border-style: solid;
  z-index: 1;
}

.envelope::before {
  left: 0;
  border-width: 0 0 115px 210px;
  border-color: transparent transparent #B8967A transparent;
}

.envelope::after {
  right: 0;
  border-width: 0 210px 115px 0;
  border-color: transparent #B8967A transparent transparent;
}

@keyframes sparkle {
  0%, 100% {
    transform: scale(1) rotate(0deg);
    opacity: 0.6;
  }
  50% {
    transform: scale(1.2) rotate(180deg);
    opacity: 0.9;
  }
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.5;
  }
  50% {
    transform: scale(1.15);
    opacity: 0.8;
  }
}

.envelope.opened .envelope-base::before,
.envelope.opened .envelope-base::after {
  opacity: 0;
  transform: scale(0);
}

/* Hand icon on envelope */
.envelope-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 2.5rem;
  z-index: 5;
  animation: float 2.5s ease-in-out infinite;
  transition: all 0.4s ease;
  filter: drop-shadow(0 3px 8px rgba(139, 100, 70, 0.2));
  opacity: 0.9;
}

.envelope.opened .envelope-icon {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0) rotate(45deg);
}

@keyframes float {
  0%, 100% {
    transform: translate(-50%, -50%) translateY(0px) rotate(-3deg);
  }
  50% {
    transform: translate(-50%, -50%) translateY(-8px) rotate(3deg);
  }
}

/* Call to action text */
.envelope-cta {
  position: absolute;
  bottom: -48px;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  white-space: nowrap;
  font-size: 0.95rem;
  color: #8B6446;
  font-weight: 500;
  letter-spacing: 0.01em;
  opacity: 1;
  transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(8px);
  padding: 10px 22px;
  border-radius: 20px;
  border: 1px solid rgba(176, 137, 104, 0.2);
  box-shadow:
    0 4px 16px rgba(139, 100, 70, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

@media (hover: hover) {
  .envelope:hover:not(.opened) .envelope-cta {
    border-color: rgba(176, 137, 104, 0.4);
    transform: translateX(-50%) translateY(-2px) scale(1.02);
    background: rgba(255, 255, 255, 0.98);
    box-shadow:
      0 6px 24px rgba(139, 100, 70, 0.18),
      inset 0 1px 0 rgba(255, 255, 255, 1);
  }
}

.envelope.opened .envelope-cta {
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(10px);
}

/* Opened state */
.envelope.opened .envelope-flap {
  transform: rotateX(-180deg);
  box-shadow: 0 -8px 32px rgba(139, 100, 70, 0.15);
}

.envelope.opened .envelope-flap::after {
  opacity: 0;
  transform: translateX(-50%) scale(0);
}

.envelope.opened .envelope-base {
  box-shadow:
    0 0 0 1px rgba(176, 137, 104, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    inset 0 -2px 4px rgba(0, 0, 0, 0.08);
}

/* Letter/Message - Paper theme */
.letter-message {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 88%;
  max-width: 480px;
  background:
    linear-gradient(to bottom,
      rgba(255, 255, 255, 0.02) 0%,
      rgba(255, 255, 255, 0.02) 50%,
      transparent 50%,
      transparent 100%),
    linear-gradient(135deg, #FFFEFB 0%, #FFFDF8 50%, #FFFCF5 100%);
  background-size: 100% 20px, 100% 100%;
  border-radius: 12px;
  padding: 40px 36px 36px;
  box-shadow:
    0 0 0 1px rgba(176, 137, 104, 0.1),
    0 20px 60px rgba(139, 100, 70, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 1),
    inset 0 -1px 0 rgba(0, 0, 0, 0.02);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 20%) scale(0.75);
  transition: all 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
  z-index: 15;
  /* Paper texture effect */
  background-blend-mode: multiply, normal;
}

/* Add decorative corners like notebook paper */
.letter-message::before {
  content: '';
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(176, 137, 104, 0.2) 20%,
    rgba(176, 137, 104, 0.3) 50%,
    rgba(176, 137, 104, 0.2) 80%,
    transparent 100%);
  border-radius: 2px;
}

.letter-message::after {
  content: '';
  position: absolute;
  bottom: 12px;
  left: 12px;
  right: 12px;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(176, 137, 104, 0.2) 20%,
    rgba(176, 137, 104, 0.3) 50%,
    rgba(176, 137, 104, 0.2) 80%,
    transparent 100%);
  border-radius: 2px;
}

.envelope.opened .letter-message {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, -58%) scale(1);
}

.letter-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
  padding-bottom: 18px;
  border-bottom: 2px dashed rgba(176, 137, 104, 0.25);
}

.letter-icon-emoji {
  font-size: 2.25rem;
  filter: drop-shadow(0 2px 4px rgba(176, 137, 104, 0.3));
}

.letter-title {
  font-size: 1.55rem;
  font-weight: 700;
  color: #8B6446;
  margin: 0;
  letter-spacing: -0.02em;
}

.letter-greeting {
  font-size: 1.35rem;
  font-weight: 700;
  color: #8B6446;
  margin-bottom: 18px;
}

.letter-content {
  font-size: 1rem;
  line-height: 1.75;
  color: #4a5568;
  margin-bottom: 14px;
  position: relative;
}

.letter-content:first-of-type {
  font-size: 1.05rem;
  line-height: 1.75;
}

.letter-content strong {
  color: #8B6446;
  font-weight: 700;
  background: linear-gradient(120deg, rgba(176, 137, 104, 0.15) 0%, rgba(176, 137, 104, 0.05) 100%);
  padding: 2px 6px;
  border-radius: 4px;
}

.letter-signature {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 2px dashed rgba(176, 137, 104, 0.25);
}

.letter-signature p {
  font-size: 1rem;
  color: #4a5568;
  margin: 5px 0;
}

.letter-signature .signature-name {
  font-weight: 500;
  color: #8B6446;
  font-size: 1.25rem;
  font-family: var(--font-heading);
  font-style: italic;
}

/* Close button - elegant circle */
.letter-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #F5E6D3 0%, #E5CEBA 100%);
  border: 1px solid rgba(176, 137, 104, 0.2);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  color: #8B6446;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  z-index: 20;
  font-weight: 300;
  line-height: 1;
  box-shadow:
    0 2px 8px rgba(139, 100, 70, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

@media (hover: hover) {
  .letter-close:hover {
    background: linear-gradient(135deg, #E5CEBA 0%, #D4B59E 100%);
    border-color: rgba(176, 137, 104, 0.35);
    transform: rotate(90deg) scale(1.08);
    box-shadow:
      0 4px 12px rgba(139, 100, 70, 0.18),
      inset 0 1px 0 rgba(255, 255, 255, 0.9);
  }
}

.letter-close:active {
  transform: rotate(90deg) scale(0.96);
}

/* Dark mode support */
[data-theme="dark"] .letter-section {
  background: linear-gradient(135deg, #0a0d14 0%, #0d1018 50%, #10141c 100%);
}

[data-theme="dark"] .letter-message {
  background:
    linear-gradient(to bottom,
      rgba(255, 255, 255, 0.02) 0%,
      rgba(255, 255, 255, 0.02) 50%,
      transparent 50%,
      transparent 100%),
    linear-gradient(135deg, #FFFFFF 0%, #FAFAFA 50%, #F5F5F5 100%);
  background-size: 100% 20px, 100% 100%;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.1),
    0 20px 60px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

[data-theme="dark"] .letter-title {
  color: #8B6446;
}

[data-theme="dark"] .letter-greeting {
  color: #8B6446;
}

[data-theme="dark"] .letter-content {
  color: #4a5568;
}

[data-theme="dark"] .letter-content strong {
  color: #8B6446;
  background: linear-gradient(120deg, rgba(176, 137, 104, 0.15) 0%, rgba(176, 137, 104, 0.05) 100%);
}

[data-theme="dark"] .letter-signature .signature-name {
  color: #8B6446;
}

[data-theme="dark"] .letter-signature p {
  color: #4a5568;
}

[data-theme="dark"] .letter-header,
[data-theme="dark"] .letter-signature {
  border-color: rgba(176, 137, 104, 0.25);
}

[data-theme="dark"] .letter-close {
  background: linear-gradient(135deg, #F5E6D3 0%, #E5CEBA 100%);
  border: 1px solid rgba(176, 137, 104, 0.2);
  color: #8B6446;
}

@media (hover: hover) {
  [data-theme="dark"] .letter-close:hover {
    background: linear-gradient(135deg, #E5CEBA 0%, #D4B59E 100%);
    border-color: rgba(176, 137, 104, 0.35);
  }
}

[data-theme="dark"] .envelope-cta {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(12px);
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.2);
}

@media (hover: hover) {
  [data-theme="dark"] .envelope:hover:not(.opened) .envelope-cta {
    background: rgba(255, 255, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.35);
    box-shadow:
      0 6px 24px rgba(0, 0, 0, 0.3),
      inset 0 1px 0 rgba(255, 255, 255, 0.3);
  }
}

[data-theme="dark"] .letter-bg-pattern {
  opacity: 0.08;
  color: #C9A587;
}

/* Responsive */
@media (max-width: 768px) {
  .letter-section {
    padding: 80px 0 120px;
    min-height: 90vh;
  }

  .envelope {
    height: 340px;
    max-width: 480px;
  }

  .envelope-base {
    height: 240px;
  }

  .envelope-flap {
    height: 170px;
  }

  .envelope-icon {
    font-size: 3rem;
  }

  .envelope-cta {
    font-size: 0.95rem;
    bottom: -50px;
    padding: 9px 22px;
  }

  .letter-message {
    width: 92%;
    padding: 38px 28px 35px;
  }

  .letter-header {
    margin-bottom: 18px;
    padding-bottom: 14px;
    gap: 12px;
  }

  .letter-icon-emoji {
    font-size: 2rem;
  }

  .letter-title {
    font-size: 1.35rem;
  }

  .letter-greeting {
    font-size: 1.1rem;
    margin-bottom: 12px;
  }

  .letter-content {
    font-size: 0.95rem;
    line-height: 1.7;
    margin-bottom: 12px;
  }

  .letter-content:first-of-type {
    font-size: 1.05rem;
  }

  .letter-signature {
    margin-top: 24px;
    padding-top: 16px;
  }

  .letter-signature .signature-name {
    font-size: 1.05rem;
  }

  .letter-close {
    width: 34px;
    height: 34px;
    top: 15px;
    right: 15px;
    font-size: 1.25rem;
  }

  .envelope.opened .letter-message {
    transform: translate(-50%, -55%) scale(1);
  }
}

@media (max-width: 480px) {
  .letter-section {
    padding: 60px 0 100px;
    min-height: 85vh;
  }

  .envelope {
    height: 300px;
    max-width: 92%;
  }

  .envelope-base {
    height: 220px;
  }

  .envelope-flap {
    height: 150px;
  }

  .envelope-icon {
    font-size: 2.5rem;
  }

  .envelope-cta {
    font-size: 0.9rem;
    padding: 8px 18px;
    bottom: -48px;
  }

  .letter-message {
    width: 94%;
    padding: 32px 24px 28px;
  }

  .letter-header {
    gap: 10px;
    margin-bottom: 16px;
    padding-bottom: 12px;
  }

  .letter-icon-emoji {
    font-size: 1.85rem;
  }

  .letter-title {
    font-size: 1.2rem;
  }

  .letter-greeting {
    font-size: 1.05rem;
    margin-bottom: 10px;
  }

  .letter-content {
    font-size: 0.9rem;
    line-height: 1.65;
    margin-bottom: 10px;
  }

  .letter-content:first-of-type {
    font-size: 1rem;
  }

  .letter-signature {
    margin-top: 20px;
    padding-top: 14px;
  }

  .letter-signature p {
    font-size: 0.9rem;
  }

  .letter-signature .signature-name {
    font-size: 1rem;
  }

  .letter-close {
    width: 32px;
    height: 32px;
    top: 14px;
    right: 14px;
    font-size: 1.15rem;
  }

  .envelope.opened .letter-message {
    transform: translate(-50%, -52%) scale(1);
  }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .envelope,
  .envelope-flap,
  .envelope-base,
  .letter-message,
  .envelope-icon,
  .envelope-cta,
  .letter-close {
    animation: none !important;
    transition: none !important;
  }

  .envelope-icon {
    animation: none !important;
  }
}
