.game-loading-screen {
  --loader-gold: #f2d58a;
  position: fixed;
  z-index: 100000;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  isolation: isolate;
  background: #06140f;
  color: #eff5db;
  opacity: 1;
  transition: opacity .42s ease, filter .42s ease;
}
.game-loading-screen.hidden { display: none !important; }
.game-loading-screen.is-leaving { opacity: 0; filter: blur(7px); pointer-events: none; }
.game-loading-scene,
.game-loading-vignette,
.game-loading-particles { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.game-loading-scene { z-index: -3; object-fit: cover; object-position: center; filter: brightness(.57) saturate(1.12); transform: scale(1.04); animation: loader-scene-breathe 24s ease-in-out infinite alternate; }
.game-loading-vignette { z-index: -2; background: radial-gradient(ellipse at 50% 42%,rgba(12,41,29,.15),rgba(3,15,14,.5) 68%,rgba(2,10,11,.82)),linear-gradient(115deg,rgba(5,19,15,.2),rgba(18,56,37,.18),rgba(4,16,16,.38)); }
.game-loading-vignette::after { content:""; position:absolute; inset:-20%; background:radial-gradient(ellipse at 30% 30%,rgba(111,255,169,.16),transparent 33%),radial-gradient(ellipse at 74% 72%,rgba(247,204,111,.15),transparent 31%); animation:loader-aurora 11s ease-in-out infinite alternate; }
.game-loading-particles { z-index: -1; overflow: hidden; }
.game-loading-particles i { position:absolute; left:var(--x); top:var(--y); width:4px; height:4px; opacity:0; background:var(--tone,#dfff9d); box-shadow:0 0 9px 3px var(--tone,#dfff9d),0 0 25px 8px color-mix(in srgb,var(--tone,#dfff9d) 42%,transparent); animation:loader-firefly var(--duration,8s) ease-in-out var(--delay,0s) infinite; }
.game-loading-particles i:nth-child(1) { --x:8%; --y:68%; --duration:7s; --delay:-3s; }
.game-loading-particles i:nth-child(2) { --x:17%; --y:28%; --duration:9s; --delay:-7s; --tone:#f3d58e; }
.game-loading-particles i:nth-child(3) { --x:28%; --y:81%; --duration:8s; --delay:-5s; }
.game-loading-particles i:nth-child(4) { --x:41%; --y:14%; --duration:10s; --delay:-2s; --tone:#b5f5d2; }
.game-loading-particles i:nth-child(5) { --x:57%; --y:86%; --duration:7.5s; --delay:-6s; --tone:#f3d58e; }
.game-loading-particles i:nth-child(6) { --x:67%; --y:19%; --duration:9s; --delay:-4s; }
.game-loading-particles i:nth-child(7) { --x:78%; --y:71%; --duration:8.5s; --delay:-1s; --tone:#b5f5d2; }
.game-loading-particles i:nth-child(8) { --x:91%; --y:37%; --duration:10s; --delay:-8s; --tone:#f3d58e; }
.game-loading-particles i:nth-child(9) { --x:4%; --y:46%; --duration:8.8s; --delay:-2s; }
.game-loading-particles i:nth-child(10) { --x:33%; --y:53%; --duration:11s; --delay:-9s; --tone:#b5f5d2; }
.game-loading-particles i:nth-child(11) { --x:73%; --y:43%; --duration:7.8s; --delay:-3s; }
.game-loading-particles i:nth-child(12) { --x:96%; --y:82%; --duration:9.6s; --delay:-5s; }
.game-loading-card { position:relative; width:min(520px,calc(100vw - 32px)); padding:24px clamp(22px,5vw,48px) 25px; border:1px solid rgba(223,204,133,.84); border-radius:15px; background:linear-gradient(150deg,rgba(12,44,33,.94),rgba(4,23,23,.96)); box-shadow:0 0 0 5px rgba(5,20,17,.6),inset 0 0 0 2px rgba(205,236,165,.09),0 25px 80px #000b,0 0 44px rgba(118,234,151,.13); backdrop-filter:blur(11px); animation:loader-card-arrive .65s cubic-bezier(.2,.8,.2,1) both; }
.game-loading-card::before,.game-loading-card::after { content:""; position:absolute; width:27px; height:27px; border-color:#b9db8d; border-style:solid; opacity:.75; }
.game-loading-card::before { top:9px; left:9px; border-width:2px 0 0 2px; border-radius:6px 0 0; }
.game-loading-card::after { right:9px; bottom:9px; border-width:0 2px 2px 0; border-radius:0 0 6px; }
.game-loading-brand { display:flex; flex-direction:column; align-items:center; gap:1px; }
.game-loading-brand img { width:min(225px,56vw); height:84px; object-fit:contain; filter:drop-shadow(0 3px 8px #0009) drop-shadow(0 0 12px #8fff9e44); animation:loader-logo-float 4s ease-in-out infinite; }
.game-loading-brand span { margin-top:-3px; color:#d6c98a; font:800 9px/1.4 "Segoe UI",Tahoma,sans-serif; letter-spacing:.2em; }
.game-loading-emblem { position:relative; display:grid; place-items:center; width:81px; height:81px; margin:14px auto 11px; }
.loading-emblem-ring { position:absolute; inset:6px; border:1px solid rgba(207,231,154,.59); border-radius:50%; box-shadow:0 0 18px #8eff9c27,inset 0 0 14px #8eff9c1c; animation:loader-ring-spin 12s linear infinite; }
.loading-emblem-ring::before,.loading-emblem-ring::after { content:""; position:absolute; width:7px; height:7px; background:#f2d58a; box-shadow:0 0 10px #f2d58a; transform:rotate(45deg); }
.loading-emblem-ring::before { top:-4px; left:34px; }
.loading-emblem-ring::after { bottom:-4px; right:34px; }
.loading-emblem-seed { display:grid; place-items:center; width:39px; height:45px; color:#fff1a0; font-size:23px; text-shadow:0 0 9px #fff4a7,0 0 24px #8fff9e; border:2px solid #94d57a; border-radius:45% 45% 52% 52%; background:radial-gradient(ellipse at 50% 28%,#ddffad,#4da86e 50%,#174b3c 85%); box-shadow:0 0 0 4px #102e28,0 0 26px #8fff9e77; animation:loader-seed-pulse 1.7s ease-in-out infinite; }
.loading-emblem-leaf { position:absolute; top:9px; color:#b4f89b; font-size:17px; text-shadow:0 0 9px #9cffb1; }
.loading-emblem-leaf.leaf-one { left:9px; transform:rotate(-32deg); animation:loader-leaf-one 2.2s ease-in-out infinite; }
.loading-emblem-leaf.leaf-two { right:8px; transform:rotate(34deg); animation:loader-leaf-two 2.2s ease-in-out infinite; }
.game-loading-kicker { color:#d8c983; text-align:center; font:800 10px/1.4 "Segoe UI",Tahoma,sans-serif; letter-spacing:.14em; }
.game-loading-card h1 { margin:5px 0 4px; color:#f2edcf; text-align:center; font:900 clamp(21px,5vw,27px)/1.25 "Segoe UI",Tahoma,sans-serif; text-shadow:0 2px #142519,0 0 20px #b9eaa233; }
.game-loading-detail { min-height:22px; color:#b8cdb8; text-align:center; font:600 12px/1.55 "Segoe UI",Tahoma,sans-serif; }
.game-loading-progress { position:relative; height:14px; margin-top:18px; overflow:hidden; border:1px solid #607856; border-radius:999px; background:#071814; box-shadow:inset 0 2px 5px #0009,0 1px #ffffff12; }
.game-loading-progress > i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#4aa879,#b1db75 64%,#f2d58a); box-shadow:0 0 13px #9cf29a99; transition:width .28s ease; }
.game-loading-progress-glint { position:absolute; inset:0 auto 0 -30%; width:24%; background:linear-gradient(90deg,transparent,#fff9,transparent); transform:skewX(-24deg); animation:loader-progress-glint 1.9s ease-in-out infinite; }
.game-loading-progress-meta { display:flex; justify-content:space-between; gap:10px; margin-top:7px; color:#abc3a5; font:700 10px/1.5 "Segoe UI",Tahoma,sans-serif; }
.game-loading-progress-meta #game-loading-percent { color:var(--loader-gold); font-size:12px; font-variant-numeric:tabular-nums; }
.game-loading-stages { display:flex; align-items:center; justify-content:center; gap:10px; margin:21px 0 20px; }
.game-loading-stages > div { display:flex; align-items:center; gap:6px; color:#728a78; font:700 9px/1.25 "Segoe UI",Tahoma,sans-serif; transition:color .2s ease; white-space:nowrap; }
.game-loading-stages > div i { display:grid; place-items:center; width:22px; height:22px; border:1px solid #435e4d; border-radius:50%; color:#83988a; background:#0a2019; font:800 8px/1 monospace; font-style:normal; }
.game-loading-stages > div.is-current { color:#f2e2a5; }
.game-loading-stages > div.is-current i { border-color:#dbc979; color:#fff0a7; box-shadow:0 0 12px #e7ce7655; }
.game-loading-stages > div.is-done { color:#aee1a5; }
.game-loading-stages > div.is-done i { border-color:#77c78e; color:#d2ffc0; background:#1d6448; }
.game-loading-stages > b { width:min(45px,8vw); height:1px; background:linear-gradient(90deg,#4a6750,#a09a5b,#4a6750); opacity:.7; }
.game-loading-tip { display:grid; gap:4px; padding:10px 12px; border:1px solid rgba(149,177,118,.28); border-radius:7px; background:rgba(3,17,16,.45); }
.game-loading-tip span { color:#d7c47f; font:800 9px/1.4 "Segoe UI",Tahoma,sans-serif; letter-spacing:.05em; }
.game-loading-tip b { color:#b9cdb8; font:600 10px/1.45 "Segoe UI",Tahoma,sans-serif; }
.game-loading-footer { position:absolute; right:max(18px,env(safe-area-inset-right)); bottom:max(14px,env(safe-area-inset-bottom)); left:max(18px,env(safe-area-inset-left)); display:flex; justify-content:space-between; gap:14px; color:#b5c6a599; font:700 8px/1.4 "Segoe UI",Tahoma,sans-serif; letter-spacing:.12em; }
@keyframes loader-scene-breathe { from { transform:scale(1.04) translate3d(0,0,0); filter:brightness(.55) saturate(1.08); } to { transform:scale(1.095) translate3d(-.6%,.3%,0); filter:brightness(.64) saturate(1.16); } }
@keyframes loader-aurora { from { transform:translate3d(-1.5%,1%,0) scale(.98); opacity:.45; } to { transform:translate3d(1.5%,-1%,0) scale(1.04); opacity:.86; } }
@keyframes loader-firefly { 0%,100% { opacity:0; transform:translate3d(0,12px,0) scale(.55); } 25% { opacity:.84; } 55% { opacity:.4; transform:translate3d(14px,-22px,0) scale(1.15); } 80% { opacity:.9; transform:translate3d(-9px,-35px,0) scale(.8); } }
@keyframes loader-ring-spin { to { transform:rotate(360deg); } }
@keyframes loader-seed-pulse { 0%,100% { transform:translateY(1px) scale(.96); filter:brightness(.92); } 50% { transform:translateY(-3px) scale(1.06); filter:brightness(1.2); } }
@keyframes loader-leaf-one { 0%,100% { transform:translate(-1px,0) rotate(-32deg); } 50% { transform:translate(-4px,-4px) rotate(-48deg); } }
@keyframes loader-leaf-two { 0%,100% { transform:translate(1px,0) rotate(34deg); } 50% { transform:translate(4px,-5px) rotate(49deg); } }
@keyframes loader-logo-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes loader-progress-glint { 0% { left:-30%; } 65%,100% { left:112%; } }
@keyframes loader-card-arrive { from { opacity:0; transform:translateY(13px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@media (max-width:520px) {
  .game-loading-card { padding:16px 18px 18px; }
  .game-loading-brand img { height:67px; }
  .game-loading-emblem { width:67px; height:67px; margin:10px auto 7px; }
  .game-loading-stages { gap:5px; margin:16px 0; }
  .game-loading-stages > div { flex-direction:column; gap:3px; font-size:8px; }
  .game-loading-stages > b { width:8vw; }
  .game-loading-footer { font-size:7px; }
}
@media (max-height:600px) and (min-width:521px) {
  .game-loading-card { padding-top:12px; padding-bottom:13px; }
  .game-loading-brand img { height:56px; }
  .game-loading-emblem { width:58px; height:58px; margin:5px auto; }
  .game-loading-stages { margin:12px 0; }
  .game-loading-progress { margin-top:12px; }
}
@media (prefers-reduced-motion: reduce) {
  .game-loading-screen *, .game-loading-scene, .game-loading-vignette::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
