/* まるよの絵の動き */
.maruyo-img {
  display: block; width: 100%; height: auto;
  animation: m-float 4.6s ease-in-out infinite;
  filter: drop-shadow(0 10px 16px rgba(30, 80, 120, .18));
}
.avatar { display: block; border-radius: 50%; background: var(--blue-soft); border: 3px solid var(--blue); object-fit: cover; }

/* 404のドットがちらつく */
.px { position: absolute; width: 8px; height: 8px; background: var(--blue); opacity: 0; animation: m-flicker 2.8s steps(1, end) infinite; pointer-events: none; }
.px:nth-child(2) { animation-delay: -.8s; width: 6px; height: 6px; }
.px:nth-child(3) { animation-delay: -1.5s; }
.px:nth-child(4) { animation-delay: -2.1s; width: 5px; height: 5px; }

@keyframes m-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes m-flicker { 0% { opacity: 0; } 20% { opacity: .9; } 55% { opacity: .15; } 75% { opacity: .8; } 100% { opacity: 0; } }
@keyframes m-glow { 0%, 100% { opacity: .75; transform: scale(1); } 50% { opacity: 1; transform: scale(1.06); } }
