body {
  margin: 0;
  font-family: "Helvetica","PingFang SC",sans-serif;
}

.hero {
  height: 40vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.title {
  font-size: 2rem;
  opacity: 0;
  text-align: center;
}

.gallery {
  padding: 20px;
  max-width: 900px;
  margin: auto;
}

.item {
  margin-bottom: 40px;
  opacity: 0;
  transform: translateY(30px);
}

.item img {
  width: 100%;
  border-radius: 15px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.item p {
  margin-top: 10px;
  text-align: center;
  opacity: 0.8;
}


@keyframes float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}

body {
  margin: 0;
  font-family: "Helvetica","PingFang SC",sans-serif;
}

.hero {
  height: 40vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.title {
  font-size: 2rem;
  opacity: 0;
  text-align: center;
}

.gallery {
  padding: 20px;
  max-width: 900px;
  margin: auto;
}

.item {
  margin-bottom: 40px;
  opacity: 0;
  transform: translateY(30px);
}

.item img {
  width: 100%;
  border-radius: 15px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.item p {
  margin-top: 10px;
  text-align: center;
  opacity: 0.8;
}

.floating-back {
  position: fixed;
  top: 20px;
  left: 20px;
  background: #ffc1cc;
  color: white;
  padding: 10px 18px;
  border-radius: 20px;
  cursor: pointer;
  box-shadow: 0 6px 12px rgba(255, 130, 150, .3);
  font-size: 1rem;
  z-index: 999;
  animation: float 2s infinite ease-in-out;
}

@keyframes float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}

/* Emoji map markers */
.emoji-marker {
  width: 32px !important;
  height: 32px !important;
  font-size: 2rem;
  line-height: 32px;
  text-align: center;
  background: transparent !important;
  border: none !important;
  user-select: none;
  animation: emojiBounce 1.4s infinite ease-in-out;
}

@keyframes emojiBounce {
  0%   { margin-top: 0; }
  50%  { margin-top: -6px; }
  100% { margin-top: 0; }
}

/* Fix Leaflet default marker sizing so emoji markers display correctly */
.leaflet-marker-icon,
.leaflet-marker-shadow {
  background: none !important;
  border: none !important;
  overflow: visible !important;
  opacity: 1 !important;
  box-shadow: none !important;
}

/* Ensure emoji markers have fixed size so Leaflet can position them correctly */
.leaflet-marker-icon.emoji-marker,
.leaflet-marker-icon.emoji-marker.leaflet-zoom-animated {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  width: 32px !important;
  height: 32px !important;
}

/* Petal particle effect */
.petal {
  position: absolute;
  width: 10px;
  height: 10px;
  background: rgba(255, 182, 193, 0.8);
  border-radius: 50%;
  filter: blur(1px);
  animation: petalFloat 2.2s ease-out forwards;
  opacity: 0;
}

@keyframes petalFloat {
  0% { transform: translateY(20px) scale(0.4); opacity: 0; }
  40% { opacity: 1; }
  100% { transform: translateY(-40px) scale(1); opacity: 0; }
}

.city-name-marker {
  background: #ffebbdb0;
  border-left: 5px solid #ffc107;
  padding: 5px 10px;
  border-radius: 0 5px 5px 0;
  font-weight: bold;
  color: #504216;
  white-space: nowrap;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.2);
  font-family: 'LXGW WenKai', sans-serif;
}
