/* The approved Lion Rock map comes to life one fold at a time. */
#appBootStatus {
  --boot-surface:rgba(255,253,247,.98);--boot-ink:#173b50;--boot-muted:#61736f;
  --boot-line:#e6dfcf;--boot-accent:#2465aa;--boot-button:#f2eee3;
  --boot-blue:#2465aa;--boot-green:#476d64;--boot-red:#e4543f;--boot-gold:#b09b70;
  --boot-cycle:3.6s;
  position:fixed;z-index:9000;top:50%;left:50%;transform:translate(-50%,-50%);
  box-sizing:border-box;width:248px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);
  padding:20px 20px 18px;overflow:auto;
  display:grid;justify-items:center;gap:8px;
  border:1px solid var(--boot-line);border-radius:24px;
  background:var(--boot-surface);color:var(--boot-ink);
  box-shadow:0 20px 64px #283f4a1f,0 2px 8px #283f4a06;
  backdrop-filter:blur(18px);
  font:400 14px/1.45 var(--font-body,"Source Sans 3","Chiron Hei HK",sans-serif);
}
html[data-theme=dark] #appBootStatus {
  --boot-surface:rgba(25,40,47,.98);--boot-ink:#eef2ef;--boot-muted:#bac7c4;
  --boot-line:#43534f;--boot-accent:#8bcdec;--boot-button:#2c4148;
  box-shadow:0 20px 64px #0005;
}
#appBootStatus[hidden],#appBootRetry[hidden] {display:none!important;}
.app-boot__identity {display:grid;justify-items:center;gap:10px;box-sizing:border-box;width:100%;padding:0;border-radius:20px;}
html[data-theme=dark] .app-boot__identity {padding:12px 10px 6px;background:#f6f3e9;}
.app-boot__art {
  position:relative;width:100%;max-width:194px;aspect-ratio:864/538;
  margin:8px 0 0;perspective:700px;isolation:isolate;
}
.app-boot__panel {
  position:absolute;inset:0;display:block;transform:translateY(0) rotateY(0deg);
  backface-visibility:hidden;transform-origin:var(--boot-origin) 50%;
}
.app-boot__panel img {display:block;width:100%;height:100%;}
.app-boot__panel--blue {--boot-origin:13%;--boot-angle:-15deg;--boot-delay:0s;clip-path:inset(0 73.5% 0 0);}
.app-boot__panel--green {--boot-origin:38%;--boot-angle:15deg;--boot-delay:.18s;clip-path:inset(0 49.85% 0 26.5%);}
.app-boot__panel--red {--boot-origin:62%;--boot-angle:-15deg;--boot-delay:.36s;clip-path:inset(0 25.85% 0 50.15%);}
.app-boot__panel--gold {--boot-origin:87%;--boot-angle:15deg;--boot-delay:.54s;clip-path:inset(0 0 0 74.15%);}
.app-boot__beacon {
  position:absolute;left:63.8%;top:36.7%;width:9%;aspect-ratio:1;box-sizing:border-box;
  border:1.5px solid var(--boot-red);border-radius:50%;opacity:0;
  transform:translate(-50%,-50%) scale(.5);pointer-events:none;
}
.app-boot__brand {display:grid;place-items:center;width:174px;max-width:100%;height:36px;border-radius:12px;}
.app-boot__brand img {display:block;width:150px;max-width:calc(100% - 20px);height:auto;}
.app-boot__copy {text-align:center;}
#appBootTitle {margin:0;color:var(--boot-ink);font:600 16px/1.4 var(--font-body,"Source Sans 3","Chiron Hei HK",sans-serif);letter-spacing:0;}
#appBootStatus[data-state=loading] #appBootMessage {display:none;}
#appBootMessage {margin:10px 0;color:var(--boot-muted);font-size:14px;}
#appBootRetry {min-height:44px;min-width:104px;margin:6px 0 0;padding:10px 18px;border:1px solid var(--boot-line);border-radius:12px;background:var(--boot-button);color:var(--boot-ink);font:600 14px var(--font-body);cursor:pointer;}
#appBootRetry:focus-visible {outline:2px solid var(--boot-accent);outline-offset:3px;}
.app-boot__activity {display:flex;align-items:center;justify-content:center;gap:8px;height:8px;margin-top:1px;}
.app-boot__activity span {display:block;width:6px;height:6px;border-radius:50%;background:var(--dot-color);opacity:.4;}
.app-boot__activity span:nth-child(1) {--dot-color:var(--boot-blue);--dot-delay:0s;}
.app-boot__activity span:nth-child(2) {--dot-color:var(--boot-green);--dot-delay:.18s;}
.app-boot__activity span:nth-child(3) {--dot-color:var(--boot-red);--dot-delay:.36s;}
.app-boot__activity span:nth-child(4) {--dot-color:var(--boot-gold);--dot-delay:.54s;}
#appBootStatus[data-state=loading] .app-boot__panel {animation:app-boot-unfold var(--boot-cycle) cubic-bezier(.4,0,.2,1) var(--boot-delay) infinite;}
#appBootStatus[data-state=loading] .app-boot__beacon {animation:app-boot-locate var(--boot-cycle) ease-out infinite;}
#appBootStatus[data-state=loading] .app-boot__activity span {animation:app-boot-dot var(--boot-cycle) ease-in-out var(--dot-delay) infinite;}
#appBootStatus[hidden] :is(.app-boot__panel,.app-boot__beacon,.app-boot__activity span) {animation-play-state:paused;}
#appBootStatus[data-state=error] {width:min(328px,calc(100vw - 32px));}
#appBootStatus[data-state=error] .app-boot__activity {display:none;}
@keyframes app-boot-unfold {
  0%,12%,48%,100% {transform:translateY(0) rotateY(0deg);}
  26% {transform:translateY(-7px) rotateY(var(--boot-angle));}
}
@keyframes app-boot-locate {
  0%,44%,100% {opacity:0;transform:translate(-50%,-50%) scale(.5);}
  52% {opacity:.65;transform:translate(-50%,-50%) scale(.8);}
  76% {opacity:0;transform:translate(-50%,-50%) scale(1.8);}
}
@keyframes app-boot-dot {
  0%,10%,52%,100% {opacity:.35;transform:translateY(0);}
  26% {opacity:1;transform:translateY(-2px);}
}
@media(prefers-reduced-motion:reduce) {
  #appBootStatus :is(.app-boot__panel,.app-boot__beacon,.app-boot__activity span) {animation:none!important;}
  .app-boot__activity span {opacity:.7;}
}
@media(max-height:420px) {
  #appBootStatus {width:248px;padding:16px 20px;gap:8px;border-radius:24px;}
  .app-boot__art {max-width:180px;margin-top:0;}
  .app-boot__brand {height:36px;}
  .app-boot__brand img {width:146px;}
  .app-boot__identity {gap:8px;}
  html[data-theme=dark] .app-boot__identity {padding:8px 8px 2px;}
}
html[data-app-layout=desktop] #appBootStatus[data-state=degraded] {width:min(360px,calc(100vw - 32px));}
html[data-app-layout=desktop] #appBootStatus[data-state=degraded] .app-boot__activity {display:none;}
html[data-app-layout=desktop] #appBootStatus[data-state=degraded] button {min-height:44px;padding:10px 18px;border:1px solid var(--boot-line);border-radius:12px;background:var(--boot-button);color:var(--boot-ink);font:600 14px var(--font-body);cursor:pointer;}
html[data-app-layout=desktop] #appBootStatus[data-state=degraded] button:focus-visible {outline:2px solid var(--boot-accent);outline-offset:3px;}
