/* ========================================
   yamaka ローディングオーバーレイ CSS
   ======================================== */
#loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #f0f4f8;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s;
}
#loading-overlay.is-hidden {
  opacity: 0;
  pointer-events: none;
}
#loading-overlay .loader-container {
  width: 500px;
  max-width: 90vw;
}
#loading-overlay .loader-svg {
  width: 100%;
  height: auto;
}

/* バウンス: 車体 */
.bounce-body { animation: truckBounce 3s ease-in-out infinite; }
@keyframes truckBounce {
  0%{transform:translateY(0)}3%{transform:translateY(1.5px)}6%{transform:translateY(-.8px)}8%{transform:translateY(.3px)}10%{transform:translateY(0)}30%{transform:translateY(0)}33%{transform:translateY(1.8px)}36%{transform:translateY(-.9px)}38.5%{transform:translateY(.5px)}40%{transform:translateY(-.15px)}42%{transform:translateY(0)}100%{transform:translateY(0)}
}
/* バウンス: 前輪 */
.bounce-front-wheel { animation: wheelBounceFront 3s ease-in-out infinite; }
@keyframes wheelBounceFront {
  0%{transform:translateY(0)}1.5%{transform:translateY(0)}4.5%{transform:translateY(1.2px)}7%{transform:translateY(-.5px)}9%{transform:translateY(.15px)}11%{transform:translateY(0)}30%{transform:translateY(0)}31.5%{transform:translateY(0)}34.5%{transform:translateY(1.5px)}37%{transform:translateY(-.8px)}39%{transform:translateY(.4px)}41%{transform:translateY(-.1px)}43%{transform:translateY(0)}100%{transform:translateY(0)}
}
/* バウンス: 後輪 */
.bounce-rear-wheel { animation: wheelBounceRear 3s ease-in-out infinite; }
@keyframes wheelBounceRear {
  0%{transform:translateY(0)}3%{transform:translateY(0)}6%{transform:translateY(1.2px)}8.5%{transform:translateY(-.5px)}10.5%{transform:translateY(.15px)}12.5%{transform:translateY(0)}30%{transform:translateY(0)}33%{transform:translateY(0)}36%{transform:translateY(1.5px)}38.5%{transform:translateY(-.6px)}40.5%{transform:translateY(.4px)}42%{transform:translateY(-.1px)}44.5%{transform:translateY(0)}100%{transform:translateY(0)}
}
/* タイヤ回転 */
.wheel-spin { animation: wheelRotate 1.2s linear infinite; }
@keyframes wheelRotate { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
/* 山並みスライド */
.slide-mountains { animation: mountainSlide 32s linear infinite; }
@keyframes mountainSlide { from{transform:translateX(0)} to{transform:translateX(480px)} }
/* 街並みスライド */
.slide-cityscape { animation: cityscapeSlide 12s linear infinite; }
@keyframes cityscapeSlide { from{transform:translateX(0)} to{transform:translateX(480px)} }
/* 道路スライド */
.slide-road { animation: roadSlide 1s linear infinite; }
@keyframes roadSlide { from{transform:translateX(0)} to{transform:translateX(100px)} }
