.mappage{min-height:100dvh;background:#fbf6ee;padding:20px 16px 40px}.mappage-head{max-width:900px;margin:0 auto 16px;text-align:center}.mappage-title{font-size:clamp(24px,5vw,36px);font-weight:900;color:#2a2118;margin:0 0 6px}.mappage-sub{font-size:14px;color:#6b5f4d;margin:0}.mappage .places-map-wrap{max-width:900px;margin:0 auto}.mappage .places-map{height:min(70vh,620px)}.mappage-loading{padding:60px 0;text-align:center;color:#8a7f6a;font-weight:700}.mappage-foot{max-width:900px;margin:18px auto 0;text-align:center;font-size:12px;color:#9c907c}.maplang{min-height:100dvh;background:radial-gradient(1200px 600px at 50% -10%,#2a1b54 0,transparent 60%),linear-gradient(180deg,#140c2b,#0a0614);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px 24px}.maplang-inner{width:min(520px,100%);text-align:center}.maplang-logo{width:96px;height:96px;object-fit:contain;margin:0 auto 18px;display:block;filter:drop-shadow(0 6px 20px rgba(139,92,246,.45))}.maplang-title{font-size:clamp(26px,6vw,38px);font-weight:900;color:#fff;margin:0 0 2px;letter-spacing:-.5px}.maplang-en{font-size:14px;font-weight:700;color:#a78bfa;margin:0 0 22px;letter-spacing:.5px}.maplang-pick{font-size:13px;color:#9c8fc7;margin:0 0 20px;font-weight:700}.maplang-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:11px;gap:11px}.maplang-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:hsla(0,0%,100%,.06);border:1px solid rgba(167,139,250,.28);border-radius:14px;padding:15px 12px;cursor:pointer;transition:transform .12s,background .12s,border-color .12s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.maplang-btn:hover{transform:translateY(-2px);background:rgba(139,92,246,.18);border-color:rgba(167,139,250,.6)}.maplang-flag{font-size:19px;font-weight:900;color:#fff;letter-spacing:1px}.maplang-label{font-size:13.5px;font-weight:700;color:#c7bce8}.maplang-grid .maplang-btn:last-child:nth-child(odd){grid-column:1/-1}.maplang-foot{margin-top:28px;font-size:12px;color:#6b5f91;letter-spacing:.3px}.mappage-back{background:#fff;border:1px solid #ece3d6;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:800;color:#2a2118;cursor:pointer;margin-bottom:10px}.mappage-back:hover{background:#f4efe6}