/*! BLOCROWN © 2026 Airony Company Inc. (주식회사 아이러니컴퍼니) · All rights reserved · 무단 복제·배포·역설계 금지(이용약관 제11조~제11조의4 · 저작권법) · BLOCROWN-BUILD:20261113.6791816.415c40b1fd */
/* First-load screen (2026-11-10 owner): a small BLOCROWN logo mark in the centre fills up from the bottom
   with the real load progress, the BLOCROWN wordmark sits under it, then one plain number. loading-dancers.mjs sets --p (0..1),
   the number, data-slow and data-state=done. Cream background = native splash and #loading. */
#bootProgress.bs{position:fixed;inset:0;z-index:4000;pointer-events:none;overflow:hidden;color-scheme:light;
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#faf9f1;color:#093329;
 font:600 13px/1.35 system-ui,-apple-system,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;text-align:center}
.bs-logo{position:relative;width:clamp(124px,40vw,176px);aspect-ratio:410/200}
.bs-logo img{position:absolute;inset:0;display:block;width:100%;height:100%}
/* wordmark under the mark (brand lockup: 1.5x the mark width); width/height on the img reserve its box, it only fades in */
.bs-word{display:block;width:clamp(186px,60vw,264px);height:auto;aspect-ratio:640/67;margin-top:-6px;animation:bsWord .7s .15s ease-out both}
/* faint silhouette = the outline the logo fills into */
.bs-ghost{filter:brightness(0);opacity:.09}
.bs-fill{clip-path:inset(calc((1 - var(--p,0))*100%) 0 0 0);transition:clip-path .45s ease-out}
.bs[data-state=done] .bs-fill{clip-path:none}
.bs[data-state=done] .bs-logo{animation:bsPop .5s ease-out both}
.bs .bc-boot-pct{display:block;min-width:3ch;font:700 15px/1 system-ui,-apple-system,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:#2b4a43}
.bs .bc-boot-pct::after{content:"%";margin-left:1px;font-size:.78em;color:#5b726c}
.bs .bc-boot-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#bootProgress.bs .bc-boot-slow{display:none;flex-direction:column;align-items:center;gap:8px;pointer-events:auto}
#bootProgress.bs[data-slow] .bc-boot-slow{display:flex}
#bootProgress.bs .bc-boot-slow-text{color:#51666a;font-size:12.5px;font-weight:700}
#bootProgress.bs .bc-boot-retry{min-height:44px;padding:0 18px;border:1.5px solid #09332955;border-radius:12px;background:#fff;color:#093329;font:700 14px system-ui,sans-serif}
#bootProgress.bs .first-visit-note{position:absolute;left:50%;bottom:calc(max(16px,env(safe-area-inset-bottom)) + 12px);transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);margin:0;padding:6px 12px;border-radius:12px;background:#eef9d4;color:#093329;font-size:12.5px;font-weight:700;line-height:1.4}
#bootProgress.bs .first-visit-note[hidden]{display:none}
/* the centre logo stays hidden under this screen; boot-logo.mjs still flies its clone to the header */
body:has(#bootProgress.bs) #bootLogo{opacity:0}
#bootProgress.bs.gone{animation:bsOut .35s forwards}
body.finder-discovery-open #bootProgress,body:has([data-space-view]) #bootProgress,body:has(#nearbyStart:not([hidden])) #bootProgress,body:has(#loading>button) #bootProgress{display:none}
@keyframes bsWord{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes bsPop{0%{transform:scale(1)}45%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes bsOut{to{opacity:0;visibility:hidden}}
/* reduced motion: the whole logo stays still, only the number changes */
@media(prefers-reduced-motion:reduce){.bs-fill{clip-path:none;transition:none}.bs-ghost{display:none}.bs[data-state=done] .bs-logo{animation:none}.bs-word{animation:none}#bootProgress.bs.gone{animation:none;opacity:0}}
