/* The first moment on a phone, before the shop's code has run: the shape of the page instead of a word. Every look shares it, so
   it reads the shop's tokens where they've loaded and works without them; it's gone as soon as the first screen draws. */
.boot-sk { min-height: 100dvh; padding: 16px; display: grid; gap: 16px; align-content: start; }
.boot-sk i { display: block; border-radius: 14px; background: var(--surface-2, rgba(127, 127, 127, .14));
  animation: boot-sk 1.4s ease-in-out infinite alternate; }
.boot-sk__head { height: 48px; width: 56%; }
.boot-sk__row { display: flex; gap: 8px; }
.boot-sk__row i { height: 36px; flex: 0 0 72px; border-radius: 18px; }
.boot-sk__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.boot-sk__grid i { aspect-ratio: 4 / 5; }
@keyframes boot-sk { from { opacity: .55; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .boot-sk i { animation: none; } }
