/* Available before the app bundle, shared by desktop and mobile entry points. */
body{margin:0}
.ds-boot{box-sizing:border-box;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:32px 24px calc(80px + env(safe-area-inset-bottom,0px));background:#f7f8fa;color:#202a3b;font:500 16px/1.5 Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;text-align:center}
.ds-boot-content{width:min(100%,320px)}
.ds-boot-logo{display:block;width:64px;height:64px;object-fit:contain;margin:0 auto 24px;border-radius:16px;background:#fff;box-shadow:0 4px 16px #233b6410}
.ds-boot h1{margin:0;font-size:24px;line-height:1.35;letter-spacing:-.04em;font-weight:750}
.ds-boot-caption{margin:8px 0 32px;font-size:14px;color:#657084}
.ds-boot-track{height:4px;width:128px;margin:auto;background:#e4eaf2;border-radius:8px;overflow:hidden}
.ds-boot-track span{display:block;width:40%;height:100%;border-radius:8px;background:#246cda;animation:ds-boot-progress 1.6s ease-in-out infinite alternate}
.ds-boot-status{margin:16px 0 0;font-size:15px;color:#596579}
.ds-boot-late{margin:24px 0 0;opacity:0;animation:ds-boot-late .2s 12s forwards;font-size:14px;color:#596579}
.ds-boot-late a{color:#246cda;text-underline-offset:4px}
.ds-boot-error p{font-size:16px;line-height:1.6;margin:0 0 16px;color:#596579;word-break:keep-all}
.ds-boot-error button{border:0;border-radius:12px;background:#246cda;color:#fff;font-family:inherit;font-size:16px;font-weight:600;line-height:1.5;padding:12px 24px;min-height:48px;cursor:pointer}
.ds-page-pending{padding:24px;box-sizing:border-box;width:100%;color:var(--muted,#657084)}
.ds-page-pending-title{font-size:16px;font-weight:600;margin-bottom:24px}
.ds-page-skeleton{display:grid;gap:16px}
.ds-page-skeleton i{display:block;height:48px;border-radius:8px;background:var(--line-soft,#eef1f5);animation:ds-pulse 1.5s ease-in-out infinite alternate}
.ds-page-skeleton i:first-child{width:40%;height:24px;margin-bottom:8px}
@keyframes ds-boot-progress{from{transform:translateX(0)}to{transform:translateX(150%)}}
@keyframes ds-boot-late{to{opacity:1}}
@keyframes ds-pulse{to{opacity:.5}}
@media(prefers-reduced-motion:reduce){.ds-boot-track span,.ds-page-skeleton i{animation:none}.ds-boot-late{animation:none;opacity:1}}
