/*
 * The boot screen, in its own file rather than a <style> block in the shell.
 *
 * Two reasons it lives here. It has to paint on the first frame, so it cannot
 * wait for the main CSS bundle. And the site's CSP is `style-src 'self'` with no
 * 'unsafe-inline', which blocks an inline <style> outright — this file is
 * same-origin, render-blocking, and about 1KB, so it arrives with the shell and
 * keeps the policy tight.
 *
 * The indicator is a pebble dropping and rippling outward: the same picture the
 * whole game is built on, rather than a generic spinner.
 */

html,
body {
  height: 100%;
  margin: 0;
  background: #f1f5e9;
}

#boot {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 26px;
  background: #f1f5e9;
  font-family: 'Baloo 2', ui-rounded, 'Segoe UI Rounded', system-ui, sans-serif;
  transition: opacity 0.4s ease;
}

#boot.is-gone {
  opacity: 0;
  pointer-events: none;
}

.boot-pond {
  position: relative;
  width: 108px;
  height: 108px;
  display: grid;
  place-items: center;
}

.boot-pond i {
  position: absolute;
  border: 3px solid #4c8dd6;
  border-radius: 50%;
  opacity: 0;
  animation: bootRipple 2.1s cubic-bezier(0.2, 0.6, 0.3, 1) infinite;
}
.boot-pond i:nth-child(1) { animation-delay: 0s; }
.boot-pond i:nth-child(2) { animation-delay: 0.55s; }
.boot-pond i:nth-child(3) { animation-delay: 1.1s; }

.boot-pebble {
  width: 20px;
  height: 16px;
  border-radius: 50%;
  background: #93897a;
  transform: rotate(-14deg);
  animation: bootDrop 2.1s ease-in-out infinite;
}

@keyframes bootRipple {
  0%   { width: 14px; height: 11px; opacity: 0; }
  18%  { opacity: 0.75; }
  100% { width: 104px; height: 80px; opacity: 0; }
}

@keyframes bootDrop {
  0%, 12% { transform: translateY(-10px) rotate(-14deg); opacity: 0.55; }
  22%     { transform: translateY(0) rotate(-14deg); opacity: 1; }
  100%    { transform: translateY(0) rotate(-14deg); opacity: 1; }
}

.boot-word {
  margin: 0;
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #23301f;
}

@media (prefers-reduced-motion: reduce) {
  .boot-pond i,
  .boot-pebble {
    animation: none;
  }
  .boot-pond i:nth-child(2) {
    width: 72px;
    height: 56px;
    opacity: 0.5;
  }
}
