/* boot.css — the launch screen (see index.html). A file, not an inline <style>,
   so the site's content security policy can refuse inline styles. */
/* Launch screen: shown by index.html before the bundle runs, and reused by
   the session check in React (auth/guards.jsx), so launch reads as one
   screen. Continues the native splash: maroon with the coin. */
.boot { position: fixed; inset: 0; z-index: 9999; background: linear-gradient(175deg, #7e1a2c 0%, #5e1220 100%); }
/* coin.png is the coin on a maroon square. The coin (with its rim shadow)
   spans 173×179 of the 256px image, so an ellipse keeps all of it and
   drops the square. The coin, name and tagline are centred as a group. */
.boot-coin { position: absolute; left: 50%; top: 50%; width: 168px; height: 168px; margin: -112px 0 0 -84px;
  clip-path: ellipse(34.2% 35.4% at 50% 50%); }
.boot-name { position: absolute; left: 0; right: 0; top: calc(50% + 44px); margin: 0; text-align: center;
  font: 800 24px/1.1 Inter, system-ui, sans-serif; letter-spacing: -0.01em; color: #fff; }
.boot-sub { position: absolute; left: 0; right: 0; top: calc(50% + 76px); margin: 0; text-align: center;
  font: 700 10.5px/1 Inter, system-ui, sans-serif; letter-spacing: 0.32em; text-transform: uppercase; color: #f3d9a8; }
.boot-bar { position: absolute; left: 50%; bottom: calc(64px + env(safe-area-inset-bottom)); width: 72px; height: 3px;
  margin-left: -36px; overflow: hidden; border-radius: 3px; background: rgba(243, 217, 168, 0.18);
  opacity: 0; animation: boot-in 300ms ease-out 400ms forwards; }
.boot-bar::after { content: ''; position: absolute; top: 0; bottom: 0; width: 40%; border-radius: 3px;
  background: #f3d9a8; animation: boot-slide 1.1s cubic-bezier(0.45, 0, 0.55, 1) infinite; }
@keyframes boot-in { to { opacity: 1; } }
@keyframes boot-slide { from { transform: translateX(-100%); } to { transform: translateX(250%); } }
@media (prefers-reduced-motion: reduce) { .boot-bar::after { animation: none; left: 30%; } }
/* Website (not the Android app): no launch screen. Until the page's code
   runs (a moment), the screen is simply the colour of the page about to
   appear, so it opens without a flash; the app never waits on a loader. */
.boot-web .boot-coin, .boot-web .boot-name, .boot-web .boot-sub, .boot-web .boot-bar { display: none; }
.boot-maroon .boot { background: #7e1a2c; }
.boot-cream .boot { background: #fbf6ee; }
.boot-noscript { top: auto; bottom: 40px; letter-spacing: 0; text-transform: none; font-size: 14px; }
