/* =========================
   styles-mobile.css (<= 700px)
   Only overrides. No base styles.
   ========================= */

:root{
  --section-gap: 120px;
  --carousel-lift: -120px;
}
html, body{
  width: 100%;
  max-width: 100%;
  overflow-x: hidden; /* prevents sideways space/scroll */
  margin: 0;
  padding: 0;
}

.page{
  width: 100%;
  max-width: none;      /* 🔑 remove the “min(980px, 96vw)” constraint on mobile */
  padding: 0 12px;      /* keep a small safe padding */
  place-items: initial; /* if you used grid centering anywhere */
}

/* Layout */
body{ display: block; }

.page{
  width: 100%;
  padding: 18px 12px 30px;
  margin: 0 auto;
}

/* Scene */
.scene{
  width: min(760px, 96vw);
  aspect-ratio: auto;
  height: 420px;
}

.envelope{
  left: 56%;
  transform: translateX(-50%);
  width: 128%;
  height: 115%;
  bottom: 0%;
}

/* Cards */
.card-left{
  width: 45%;
  left: 3%;
  top: 76%;
  transform: translateX(2%);
}

.card-right{
  width: 45%;
  right: 3%;
  top: 65%;
  bottom: auto;

  transform: translateX(-5%);
  height: 80%;
  min-height: 32%;

  padding: 12px;
  box-sizing: border-box;

  display: flex;          /* ✅ important */
  align-items: stretch;   /* ✅ important */
}

.card-right-photo{
  right: -0.5%;
  padding-top: 10px;
  transform: translateY(5%);
}

.date-photo{
  transform: translateY(10%) scale(1.48);
}
.card-left-inner{
  justify-content: flex-start;
  padding-top: 14px;
  display: grid;
  place-items: center;
}

.card-right-inner{
  width: 100%;
  /* ❌ remove height: 100% */
  height: auto;

  margin: 0;              /* ✅ ensure no offset */
  box-sizing: border-box;

  border: 2px solid #542020;
  border-radius: 12px;

  padding: 12px;          /* content spacing (doesn't affect border gap) */

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

.card-right .details{ font-size: 8px; line-height: 1.45; }
.card-right .month{ font-size: 32px; }
.card-right .day{ font-size: 26px; }
.card-right .year{ font-size: 15px; }

.small{ font-size: 10px; }
.names .script{ font-size: clamp(30px, 7vw, 46px); }
.amp{ font-size: 16px; }

.card-left-photo{
  transform: translate(-17%,135%) scale(1.5);
}

.card-left-photo-std{
  transform: translate(-47%,-60%) scale(1.5);
}

.ftwo{
  transform: translate(0%, 200%) scale(.6);
}

.std-names{
  transform: translate(30%, 60%) scale(.8);
}

/* Music */
.music-section{
  transform: translate(2%, 84%);
}

.music-text{ font-size: 18px; }
.music-progress{ width: 120px; }

/* Carousel message */
.carousel-message{
  font-size: 22px;
  transform: translateY(120%) scale(.8);
}

/* Carousel */
.photos-section{
  transform: translateY(2%);
}

.carousel-btn{ display: none; }

.carousel-track{
  padding: 12px 14px;
  grid-auto-columns: minmax(240px, 86vw);
  gap: 16px;
}

/* =========================
   TIMELINE (MOBILE = SAME AS WEB, JUST SCALED)
   ========================= */

.timeline-section{
  /* keep it centered like web */
  width: min(760px, 92vw);
  margin: 0 auto;

  /* you can tweak this if you want it closer to carousel */
  margin-top: 2%;

  padding: 24px 0;
  text-align: center;

  /* ✅ SCALE EVERYTHING DOWN IN ONE SHOT */
  transform: scale(.78);
  transform-origin: top center;
}

/* keep same title look, just smaller */
.timeline-title{
  font-size: 34px;
  margin-bottom: 26px;
}

.timeline-subtext{
  transform: translateY(-30%);
  font-size: 13px;
}

/* ✅ KEEP THE WEB TIMELINE LAYOUT */
.timeline{
  position: relative;
  min-height: 650px; /* keep same structure */
}

.timeline-line{
  display: block; /* ✅ DO NOT HIDE IT */
}

/* keep items positioned the same, but slightly narrower so they fit */
.timeline-item{
  width: 240px;
}

.timeline-item.right{ left: 45%; }
.timeline-item.left{ right: 45%; }

/* .timeline-item.top{ top: 0; }
.timeline-item.middle{ top: 200px; }
.timeline-item.bottom{ top: 400px; transform: scale(.8);} */

/* keep hover behavior (fine on mobile, but also make click work) */
.timeline-info{
  display: block; /* ✅ don't hide on mobile */
  opacity: 0;
  transform: translateY(-6px);
  transition: all .3s ease;
}

/* click-to-open (your JS toggles .active) */
.timeline-item.active .timeline-info{
  opacity: 1;
  transform: translateY(0);
}

/* OPTIONAL: make buttons slightly smaller so they fit */
.timeline-btn{
  font-size: 13px;
  padding: 9px 14px;
}

/* OPTIONAL: make images smaller */
.timeline-img{
  width: 70%;
  height: auto;
}
@media (hover: hover) and (pointer: fine) {
  .timeline-item:hover .timeline-info{
    opacity: 1;
    transform: translateY(0);
  }
}

/* Countdown */
.countdown-content{
  gap: 12px;
}
.countdown-banner{
    /* keep it centered */
    transform: translateY(-90%) scale(0.82);            /* 🔑 overall size */
    transform-origin: top center;      /* scale from the top */
    
    margin-top: 0;
    margin-bottom: 0;

    /* optional: reduce height slightly */
    min-height: 160px;
  }

.countdown-timer{ gap: 8px; }

.time-box{
  padding: 6px 6px;
  border-radius: 10px;
}

.time-box .num{
  font-size: 22px;
  line-height: 1.1;
}

.time-box .label{
  font-size: 9px;
  margin-top: 2px;
  letter-spacing: 1.4px;
}

/* RSVP mobile tweak you had */
.rsvp-box{
  transform: translate(30%, -200%) scale(.8);
}
.rsvp-seal{
  transform: translate(220%, 115%);
}