/* Décors vectoriels CSS : aucun calque ne reçoit les clics ni les cartes. */
.sector[data-terrain] { --terrain:#8aa6b8; isolation:isolate; border-color:color-mix(in srgb,var(--terrain) 65%,transparent); }
.terrain-scenery { position:absolute; z-index:-1; inset:0; overflow:hidden; pointer-events:none; background:linear-gradient(160deg,color-mix(in srgb,var(--terrain) 20%,#09111dcc),#060f1988); }
.terrain-scenery::before { content:''; position:absolute; inset:0; opacity:.45; background:var(--terrain-pattern); }
.terrain-emblem { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); color:var(--terrain); opacity:.1; font:normal 170px/1 sans-serif; text-shadow:0 0 35px var(--terrain); }
.terrain-title-icon { color:var(--terrain); font-family:sans-serif; margin-right:4px; }
.sector[data-terrain] .location-panel { background:linear-gradient(110deg,#07111bf5,color-mix(in srgb,var(--terrain) 18%,#07111b),#07111bf5); border-color:color-mix(in srgb,var(--terrain) 75%,transparent); }
.sector[data-terrain] .location-copy>b { color:var(--terrain); }
.sector[data-terrain] .location-copy>small { color:#deebf3; }
.terrain-scan { position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,color-mix(in srgb,var(--terrain) 14%,transparent) 50%,transparent 60%); animation:terrain-sweep 8s linear infinite; }
.terrain-sparks { position:absolute; inset:0; background:radial-gradient(circle at 10% 20%,var(--terrain) 0 1px,transparent 2px),radial-gradient(circle at 86% 75%,var(--terrain) 0 1px,transparent 2px),radial-gradient(circle at 70% 12%,var(--terrain) 0 1px,transparent 2px); animation:terrain-flicker 4s ease-in-out infinite alternate; }
.sector[data-terrain="lowtown"] { --terrain:#ffb936; --terrain-pattern:repeating-linear-gradient(0deg,transparent 0 37px,#ffb93633 38px 40px),repeating-linear-gradient(90deg,transparent 0 68px,#ffb93644 69px 72px); }
.sector[data-terrain="nexus"] { --terrain:#19ddea; --terrain-pattern:repeating-linear-gradient(90deg,transparent 0 32px,#19ddea33 33px 34px),repeating-linear-gradient(0deg,transparent 0 32px,#19ddea33 33px 34px); }
.sector[data-terrain="helios"] { --terrain:#ffd873; --terrain-pattern:repeating-conic-gradient(from 0deg at 50% 50%,#ffd87333 0deg 2deg,transparent 2deg 24deg); }
.sector[data-terrain="rooftops"] { --terrain:#929dff; --terrain-pattern:repeating-linear-gradient(155deg,transparent 0 60px,#929dff44 61px 63px,transparent 64px 110px); }
.sector[data-terrain="barricade"] { --terrain:#cef04a; --terrain-pattern:repeating-linear-gradient(135deg,#cef04a22 0 12px,transparent 12px 38px); }
.sector[data-terrain="relay"] { --terrain:#52b7ff; --terrain-pattern:repeating-linear-gradient(65deg,transparent 0 70px,#52b7ff44 71px 73px,transparent 74px 110px),repeating-linear-gradient(-65deg,transparent 0 70px,#52b7ff22 71px 73px,transparent 74px 110px); }
.sector[data-terrain="underdogs"] { --terrain:#f08acf; --terrain-pattern:radial-gradient(ellipse at 20% 20%,#f08acf55,transparent 28%),repeating-linear-gradient(90deg,transparent 0 58px,#f08acf33 59px 62px); }
.sector[data-terrain="static"] { --terrain:#b69bff; --terrain-pattern:repeating-linear-gradient(0deg,transparent 0 6px,#b69bff33 7px 8px); }
.sector[data-terrain="static"] .terrain-scan { animation:terrain-flicker 1.8s steps(3) infinite alternate; }
.sector[data-terrain="duel"] { --terrain:#ff718c; --terrain-pattern:repeating-radial-gradient(ellipse at center,transparent 0 35px,#ff718c33 36px 38px,transparent 39px 60px); }
.sector[data-terrain="resistance"] { --terrain:#6cf5bd; --terrain-pattern:repeating-linear-gradient(60deg,transparent 0 48px,#6cf5bd33 49px 51px),repeating-linear-gradient(-60deg,transparent 0 48px,#6cf5bd33 49px 51px); }
.sector[data-terrain="encrypted"] { --terrain:#8b9baa; --terrain-pattern:repeating-linear-gradient(135deg,transparent 0 18px,#71859822 19px 30px); }
.sector[data-terrain="encrypted"] .terrain-sparks { display:none; }
.terrain-unveiling .terrain-scenery { animation:terrain-reveal .85s ease-out both; }
.terrain-unveiling .location-panel { animation:terrain-panel-reveal .85s ease-out; }
@keyframes terrain-sweep { from { translate:0 -100%; } to { translate:0 100%; } }
@keyframes terrain-flicker { from { opacity:.2; } to { opacity:.7; } }
@keyframes terrain-reveal { from { opacity:0; filter:brightness(2); } to { opacity:1; filter:brightness(1); } }
@keyframes terrain-panel-reveal { 30% { box-shadow:0 0 30px color-mix(in srgb,var(--terrain) 65%,transparent); } }
@media(prefers-reduced-motion:reduce) { .terrain-scan,.terrain-sparks,.terrain-unveiling .terrain-scenery,.terrain-unveiling .location-panel { animation:none; } }
