#preloader {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  flex-direction: column; gap: 25px; padding: 30px;
  background: #f5f1e8; color: #143b30; text-align: center;
  font: 14px/1.6 system-ui, sans-serif;
  transition: opacity .4s ease, visibility .4s ease;
}
#preloader img { width: 155px; height: 100px; object-fit: contain; }
#preloader.loaded { opacity: 0; visibility: hidden; pointer-events: none; }
#load-progress { width: 170px; height: 3px; appearance: none; border: 0; background: #dedfd3; color: #b49862; }
#load-progress::-webkit-progress-bar { background: #dedfd3; }
#load-progress::-webkit-progress-value { background: #b49862; transition: width .25s; }
#load-progress::-moz-progress-bar { background: #b49862; }
#load-retry { padding: 12px 24px; min-height: 48px; border: 1px solid #143b30; border-radius: 5px; cursor: pointer; }
#load-retry:active { transform: scale(.98); }
@media (prefers-reduced-motion: reduce) { #preloader { transition: none; } }
