/* 앱 시작 화면(자동 버전 확인) — 2026-10-10 사장님 지시.
   EHPA 직원앱의 시작 화면(v644 · `.eln`)을 그대로 옮겨 왔다. 고치는 곳은 여기 한 곳이다.
   고정 = G 로고 · GRAV-BIZ · 문구 / 움직임 = 배경 흰 곡선(천천히) + 아래 확인 표시(원형 로딩 → ✓ · 새 버전이면 막대).
   화면을 띄우고 걷는 일은 public/app-launch.js 가 한다(설치한 앱에서 하루 한 번). */
.gln { --navy:#152033; --mut:#536078;
  position:fixed; inset:0; z-index:2147483000; display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:#F3F6FC;   /* = 콘솔·직원 화면 바탕색(걷힐 때 색이 튀지 않게) */ overflow:hidden; color:var(--navy);
  font-family:"Noto Sans KR","Malgun Gothic",system-ui,sans-serif; -webkit-user-select:none; user-select:none;
  transition:opacity .48s ease, transform .48s ease, filter .48s ease; }
.gln.gln-out { opacity:0; transform:scale(1.03); filter:blur(6px); pointer-events:none; }
/* 배경 — 흰 실크 곡선이 천천히 흐른다 */
.gln-bg { position:absolute; inset:-25%; pointer-events:none; }
.gln-bg i { position:absolute; border-radius:50%; border:44px solid rgba(255,255,255,.8); filter:blur(16px); }
.gln-bg i:nth-child(1) { width:130%; height:70%; left:-35%; top:6%; animation:gln-d1 9s ease-in-out infinite alternate; }
.gln-bg i:nth-child(2) { width:115%; height:60%; right:-45%; top:42%; border-color:rgba(255,255,255,.65); animation:gln-d2 11s ease-in-out infinite alternate; }
.gln-bg i:nth-child(3) { width:85%; height:46%; left:8%; bottom:-8%; border-color:rgba(220,226,237,.6); animation:gln-d3 13s ease-in-out infinite alternate; }
@keyframes gln-d1 { from { transform:rotate(-18deg) translate(0,0); } to { transform:rotate(-10deg) translate(5%,-4%); } }
@keyframes gln-d2 { from { transform:rotate(22deg) translate(0,0); } to { transform:rotate(14deg) translate(-6%,3%); } }
@keyframes gln-d3 { from { transform:rotate(-6deg) translate(0,0); } to { transform:rotate(4deg) translate(4%,-3%); } }
/* 가운데(고정) */
.gln-mid { position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; }
.gln-logo { width:112px; height:auto; filter:drop-shadow(0 18px 26px rgba(21,32,51,.22)) drop-shadow(0 4px 8px rgba(21,32,51,.12)); }
.gln-wm { margin-top:28px; font-size:30px; font-weight:700; letter-spacing:.16em; text-indent:.16em; line-height:1; color:var(--navy); }
.gln-sl { margin-top:12px; font-size:14px; line-height:1.6; color:var(--mut); }
/* 아래 — 자동 버전 확인(움직임) */
.gln-up { position:absolute; left:0; right:0; bottom:14%; display:flex; flex-direction:column; align-items:center; gap:10px; }
.gln-up .gln-st { font-size:14px; font-weight:500; color:var(--mut); }
.gln-up small { font-size:11px; color:#8A96AB; letter-spacing:.04em; }
.gln-ico { display:flex; align-items:center; justify-content:center; min-height:34px; }
.gln-spin { width:34px; height:34px; border-radius:50%; box-sizing:border-box;
  border:2px solid rgba(21,32,51,.1); border-top-color:var(--navy); border-right-color:var(--navy); animation:gln-spin .9s linear infinite; }
@keyframes gln-spin { to { transform:rotate(360deg); } }
.gln-chk { width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:radial-gradient(ellipse at 15% 0%, rgba(69,104,168,.45), transparent 65%), linear-gradient(135deg,#25395F,#152033);
  animation:gln-pop .35s ease both; }
.gln-chk svg { width:18px; height:18px; stroke:#fff; fill:none; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; }
@keyframes gln-pop { from { transform:scale(.6); opacity:0; } to { transform:scale(1); opacity:1; } }
.gln-bar { width:150px; height:3px; margin:15px 0 16px; border-radius:3px; background:rgba(21,32,51,.08); overflow:hidden; }
.gln-bar i { display:block; height:100%; width:0; border-radius:3px; background:linear-gradient(90deg,#25395F,#4568A8); transition:width .25s linear; }
/* 움직임 줄이기 설정 = 배경은 멈추고 로딩만 천천히 */
@media (prefers-reduced-motion: reduce) {
  .gln-bg i { animation:none !important; }
  .gln-spin { animation-duration:2s; }
}
