/* ===== ЛОКАЦИИ: слой среды за персонажем + тематические плейсхолдеры ===== */
/* #locLayer внутри .char-stage, z0 (над фоном char-stage, под charStatic z1). */
.loc-layer{position:absolute;inset:0;z-index:0;overflow:hidden}
.loc-fill{position:absolute;inset:0;opacity:0;transition:opacity .55s ease;will-change:opacity}
/* когда появится арт: .loc-* можно дополнить background-image:url(...) поверх градиента */

/* --- ОФИС ЛЕНЫ: холодный кабинет аналитика, «мониторы», бордо-эмбиент --- */
.loc-office{
  background:
    radial-gradient(120% 80% at 50% 16%, color-mix(in srgb, var(--bordeaux) 32%, transparent), transparent 60%),
    repeating-linear-gradient(90deg, color-mix(in srgb, var(--neon) 6%, transparent) 0 2px, transparent 2px 58px),
    linear-gradient(180deg, #0a0a0f 0%, #08080b 55%, #060609 100%);
}

/* --- ГАРАЖ КИРЫ: бетон + горизонтальная неон-полоса + сетка плит --- */
.loc-garage{
  background:
    linear-gradient(0deg, color-mix(in srgb, var(--neon) 24%, transparent), color-mix(in srgb, var(--neon) 24%, transparent)) 0 62%/100% 3px no-repeat,
    radial-gradient(120% 72% at 50% 30%, color-mix(in srgb, var(--bordeaux) 28%, transparent), transparent 62%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.014) 0 1px, transparent 1px 36px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.014) 0 1px, transparent 1px 90px),
    linear-gradient(180deg, #0b0a08 0%, #080705 60%, #060504 100%);
}

/* --- НЕЙТРАЛЬНЫЙ ХАБ: командный центр, симметричная сетка + центральный свет --- */
.loc-hub{
  background:
    radial-gradient(90% 58% at 50% 26%, color-mix(in srgb, var(--neon) 13%, transparent), transparent 60%),
    repeating-linear-gradient(90deg, color-mix(in srgb, var(--neon-soft) 4%, transparent) 0 1px, transparent 1px 44px),
    repeating-linear-gradient(0deg,  color-mix(in srgb, var(--neon-soft) 4%, transparent) 0 1px, transparent 1px 44px),
    linear-gradient(180deg, #0a0a0c, #070608);
}

/* --- ХАОС ВАЛЕРЫ: кислотные плитки нулевых (поверх ещё ляжет valera-chaos.css) --- */
.loc-chaos{
  background:
    repeating-linear-gradient(45deg, rgba(255,0,255,.10) 0 16px, rgba(0,255,255,.10) 16px 32px, rgba(255,255,0,.10) 32px 48px),
    radial-gradient(82% 60% at 50% 28%, rgba(170,255,0,.20), transparent 60%),
    linear-gradient(180deg, #190030 0%, #0a0018 60%, #06000a 100%);
}

/* стильный лоадер среды (короткий индикатор смены локации) */
.loc-loader{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);z-index:34;
  display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;
  opacity:0;transition:opacity .2s ease}
.loc-loader.on{opacity:1}
.loc-loader-t{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.3em;
  color:var(--neon-soft);text-shadow:0 0 8px var(--neon)}
.loc-loader-bar{position:relative;width:96px;height:3px;overflow:hidden;
  background:color-mix(in srgb, var(--bordeaux-2) 60%, #000);border:1px solid var(--bordeaux-2)}
.loc-loader-bar i{position:absolute;left:-42%;top:0;height:100%;width:42%;
  background:linear-gradient(90deg,transparent,var(--neon),transparent);animation:locScan .85s linear infinite}
@keyframes locScan{to{left:120%}}

@media (prefers-reduced-motion:reduce){
  .loc-fill{transition:opacity .2s ease}
  .loc-loader-bar i{animation:none}
  .loc-loader{transition:none}
}
