.material-symbols-outlined {
  font-variation-settings:
    "FILL" 0,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
}
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.8s ease-out;
}
.reveal.active {
  opacity: 1;
  transform: translateY(0);
}
.pattern-seigaiha {
  background-image: url("data:image/svg+xml,%3Csvg width='40' height='24' viewBox='0 0 40 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 6c4.418 0 8-3.582 8-8H0v8zm40 0c-4.418 0-8-3.582-8-8h8v8zM0 18c4.418 0 8-3.582 8-8s-3.582-8-8-8v16zm40 0c-4.418 0-8-3.582-8-8s3.582-8-8-8v16zM20 12c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8z' fill='%23864e5a' fill-opacity='0.05' fill-rule='evenodd'/%3E%3C/svg%3E");
}
.pattern-washi {
  background-color: #fcf9f8;
  background-image: url(../images/washi_texture.jpg);
}
.shoji-line-v {
  width: 1px;
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(134, 78, 90, 0.1),
    transparent
  );
}
.shoji-line-h {
  height: 1px;
  background: linear-gradient(
    to right,
    transparent,
    rgba(134, 78, 90, 0.1),
    transparent
  );
}
.enso-decoration {
  border: 2px solid rgba(134, 78, 90, 0.15);
  border-radius: 48% 52% 55% 45%/48% 54% 46% 52%;
}
.petal {
  position: fixed;
  top: -50px;
  background-color: #ffb7c5;
  border-radius: 150% 0 150% 0;
  opacity: 0.8;
  z-index: 100;
  pointer-events: none;
}
/* Improved Masonry Grid for Menu Module */
.masonry-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 280px;
  gap: 12px; /* Re-added gaps as requested */
  grid-auto-flow: dense;
}
.masonry-item {
  position: relative;
  overflow: hidden;
  border-radius: 2px;
}
.masonry-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.masonry-item-large {
  grid-row: span 2;
  grid-column: span 2;
}
.masonry-item-tall {
  grid-row: span 2;
}
.masonry-item-wide {
  grid-column: span 2;
}
@media (max-width: 1024px) {
  .masonry-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .masonry-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 400px;
  }
  .masonry-item {
    min-height: 400px;
  }
  .masonry-item-large, .masonry-item-tall, .masonry-item-wide {
    grid-row: span 1 !important;
    grid-column: span 1 !important;
  }
}

/* Slider Custom Styles */
.slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
}
.slide.active {
  opacity: 1;
}

/* Sakura Visual Overlays */
.sakura-float {
  pointer-events: none;
  user-select: none;
}
