/* author: https://codepen.io/GreenSock/pen/YzbPYMx
GSAP
 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.wrapper,
.content {
    position: relative;
    width: 100%;
    z-index: 1;
}

.content {
    overflow-x: hidden;
}

.content .section {
    width: 100%;
    height: 100vh;
    position: relative;
}

.content .section.hero {
    background-image: url(assets/img/hero3.jpeg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    z-index: 3;
    perspective: 1000px;
}

.hero-title {
    margin-top: 50px;
    opacity: 0;
    transform: translateY(20px); 
    text-align: center;
    color: #595959;
    transition: all 0.6s cubic-bezier(.45,1.9,.66,1);
    z-index: 4;
}

.hero-title h3 {
    font-family: 'EB Garamond', serif;
    font-size: 2.2rem;
    font-weight: 500;
    letter-spacing: .06em;
    margin-bottom: 0.6rem;
}

.hero-title h1 {
    font-family: 'Tangerine', cursive;
    font-size: 4.2rem;
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: .02em;
    color: #ad89ab;
}

.image-container {
    width: 100%;
    height: 100vh;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2;
    perspective: 500px;
    overflow: hidden;
}

.image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    filter: brightness(1.08) sepia(0.09) saturate(1.1) hue-rotate(-5deg);
}

@media (min-width: 768px) {
    .content .section.hero {
        padding-top: 80px;
        padding-bottom: 80px;
    }
}


.section.ayat {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #f9f6fa 60%, #ede1f4 100%);
  padding: 54px 10px 54px 10px;
  position: relative;
  overflow: hidden;
  z-index: 5;
  perspective: 1200px;     /* Biar 3D flipnya kelihatan */
}

.ayat-card.floral {
  background: rgba(255,255,255,0.94);
  border-radius: 1.9em;
  box-shadow: 0 10px 44px #ad89ab23, 0 0 0 6px #fff8 inset;
  padding: 2.8em 2em 2.3em 2em;
  max-width: 420px;
  width: 100%;
  text-align: center;
  border: 1.5px solid #ece6f0;
  z-index: 7;
  position: relative;
  /* Tambahan efek 3D dan transisi */
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: opacity, filter, transform;
  /* Nilai awal diatur via GSAP JS, jadi tidak perlu opacity/transform awal di sini */
  transition: box-shadow 0.45s cubic-bezier(.45,1.9,.66,1);

  display: block;
  opacity: 0;
  transform: translateY(50px);
  filter: blur(8px);
  transition: all 0.5s;
}

.floral-frame-top,
.floral-frame-bottom {
  width: 210px;
  margin: 0 auto;
  pointer-events: none;
}
.floral-frame-top img,
.floral-frame-bottom img {
  width: 100%;
  display: block;
  opacity: 0.88;
  filter: drop-shadow(0 8px 36px #ad89ab21);
}
.floral-frame-top { margin-bottom: -129px; z-index: 6; }
.floral-frame-bottom { margin-top: -149px; z-index: 6; }

.ayat-card blockquote {
  margin: 0;
  padding: 0;
  font-family: 'EB Garamond', serif;
  font-size: 1.23rem;
  color: #7c6286;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: .01em;
  background: none;
}
.ayat-line {
  display: block;
  margin-bottom: .65em;
  font-size: 1.16rem;
  font-family: inherit;
}
.ayat-surat {
  display: block;
  margin-top: 1.1em;
  color: #ad89ab;
  font-style: italic;
  font-weight: 600;
  font-size: 1.06rem;
  letter-spacing: .02em;
}
@media (max-width: 600px) {
  .floral-frame-top, .floral-frame-bottom { width: 135px; }
  .ayat-card.floral { padding: 1.2em 0.8em 1.1em 0.8em; font-size: 1rem; }
  .section.ayat { padding: 38px 2vw 38px 2vw; }
}

.split-line {
  display: block;
  opacity: 0;
  transform: translateY(50px);
  filter: blur(8px);
  transition: all 0.5s;
}


.love-timeline {
  position: relative;
  background: #f9f4fc;
  padding: 56px 0 30px 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.timeline-title {
  font-family: 'Tangerine', cursive;
  font-size: 2.4rem;
  color: #b989d5;
  font-weight: bold;
  margin-bottom: 32px;
  letter-spacing: 1px;
  text-align: center;
}
.timeline-container {
  position: relative;
  width: 100%;
  max-width: 430px;
  padding: 0 12px;
}
.timeline-line {
  position: absolute;
  left: 30px;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(to bottom, #d1b3ea 40%, #b989d5 90%);
  z-index: 1;
  border-radius: 2px;
}
.timeline-item {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  margin-bottom: 60px;
  position: relative;
  z-index: 2;
}
.timeline-dot {
  width: 22px; height: 22px;
  background: #fff;
  border: 5px solid #be90d6;
  border-radius: 50%;
  margin-top: 8px;
  margin-right: 16px;
  box-shadow: 0 2px 16px #d4b5ea70;
  z-index: 3;
}
.timeline-content {
  background: rgba(255,255,255,0.97);
  border-radius: 18px;
  box-shadow: 0 8px 24px #d1b3ea27;
  padding: 16px 18px;
  min-width: 0;
  max-width: 340px;
  flex: 1;
  position: relative;
  left: 0;
  transition: box-shadow 0.3s;
  font-family: 'EB Garamond', serif;
  font-size: 1.13rem;
  color: #755285;
}
.timeline-year {
  font-family: 'Tangerine', cursive;
  color: #b989d5;
  font-size: 2rem;
  margin-bottom: 8px;
  font-weight: bold;
}
.timeline-bubble {
  color: #7c6286;
  font-size: 1.03rem;
}
@media (max-width: 600px) {
  .timeline-container { max-width: 99vw; }
  .timeline-content { font-size: 1rem; max-width: 86vw; padding: 13px 10px;}
  .timeline-line { left: 14px; }
  .timeline-dot { margin-right: 10px; }
}
