.shell { max-width: none; box-shadow: none; }
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  justify-items: center;
  gap: 16px;
  min-height: calc(100svh - 18px);
  padding: clamp(32px, 6vw, 76px) clamp(22px, 7vw, 110px);
}
.hero::before {
  inset: clamp(10px, 2vw, 28px);
  border-radius: clamp(32px, 7vw, 110px);
}
.hero > .floating { display: none; }
.hero-copy, .hero-art { min-width: 0; width: 100%; }
.hero-copy .script { font-size: clamp(58px, 10vw, 108px); line-height: 1.18; }
.hero-copy .six { font-size: clamp(41px, 7vw, 88px); line-height: 1.08; text-wrap: balance; }
.hero-copy .subtitle { max-width: 360px; font-size: clamp(15px, 2vw, 19px); }
.hero-copy .date-chip { margin-top: 18px; }
.hero-copy .scroll { margin-top: 17px; }
.hero-art .berry-surprise { width: min(100%, 430px); }
.hero-art .character {
  width: min(100%, 430px);
  height: clamp(215px, 42svh, 460px);
}
.section { padding-inline: clamp(20px, 5vw, 64px); }
.section > p, .section .place-card { max-width: 560px; margin-inline: auto; }
.footer { padding-inline: clamp(20px, 5vw, 64px); }

@media (min-width: 760px) {
  .hero {
    grid-template-columns: repeat(2, minmax(0, 510px));
    justify-content: center;
    align-items: center;
    column-gap: clamp(24px, 5vw, 88px);
  }
  .hero > .bow { grid-column: 1; grid-row: 1; margin: 0; }
  .hero-copy { grid-column: 1; grid-row: 2; }
  .hero-art { grid-column: 2; grid-row: 1 / span 2; }
  .hero > .tiny { grid-column: 1 / -1; }
  .hero-art .character { height: clamp(290px, 58svh, 530px); }
}

.music-toggle {
  display: block;
  margin: 14px auto 0;
  padding: 9px 14px;
  border: 1px solid #eca5b8;
  border-radius: 100px;
  background: #ffe5ed;
  color: var(--dark);
  font-weight: 700;
  cursor: pointer;
}
.music-toggle[hidden] { display: none; }

.calendar-options { margin-top: 8px; }
.calendar-download {
  display: block;
  width: fit-content;
  margin: 9px auto 0;
  padding: 8px;
  color: var(--dark);
  text-underline-offset: 3px;
}
