/* Dark Swords region map popup */
:root {
    --map-ink: #381208;
    --map-link: #71171f;
    --map-muted: #86644b;
    --map-parchment: #c1bcad;
    --map-paper: #d8d0bc;
    --map-font: Arial, Times, FreeSerif, serif;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    max-width: 100%;
    overflow-x: hidden;
    min-height: 100%;
    background: var(--map-parchment);
    color: var(--map-ink);
    font-family: var(--map-font);
    font-size: 13px;
}

a { color: var(--map-link); text-decoration: none; }
a:hover { text-decoration: underline; }

.map-page {
    max-width: 100%;
    padding: 12px 0 20px;
    overflow-x: hidden;
}

.map-frame {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
    border: 1px solid #6b4a32;
    box-shadow: 0 2px 10px rgba(56, 18, 8, 0.18);
    background: var(--map-paper);
}

.map-frame-top,
.map-frame-bottom {
    height: 8px;
    background: linear-gradient(#9a7350, #6b4a32 55%, #8a6344);
}

.map-frame-body {
    padding: 10px 12px 12px;
}

.map-brand {
    margin: 0 0 4px;
    color: var(--map-muted);
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: center;
}

.map-title {
    margin: 0 0 10px;
    padding: 0 10px;
    color: var(--map-link);
    font-size: 15px;
    font-weight: bold;
    line-height: 1.3;
    text-align: center;
}

.map-levels-label {
    margin: 0 0 6px;
    text-align: center;
    color: var(--map-ink);
    font-size: 13px;
}

.map-levels {
    margin: 0 0 10px;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    justify-content: center;
}

.map-levels a {
    display: inline-block;
    min-width: 1.75em;
    padding: 3px 9px;
    border: 1px solid #a07850;
    background: linear-gradient(#f3e6c6, #d2bd93);
    color: var(--map-ink);
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.map-levels a:hover {
    border-color: var(--map-link);
    text-decoration: none;
}

.map-levels a.is-active {
    color: #fff8e8;
    border-color: #5a1018;
    background: linear-gradient(#c43a3a, #7a1414);
}

.map-stage-wrap {
    margin: 0 auto;
    padding: 6px;
    width: fit-content;
    max-width: 100%;
    background: var(--map-parchment);
    border: 2px solid #6b4a32;
    box-shadow: inset 0 0 0 1px rgba(248, 203, 113, 0.2);
    overflow: hidden;
}

.map-stage {
    position: relative;
    margin: 0 auto;
    background: var(--map-parchment);
    overflow: hidden;
}

.map-layer {
    position: absolute;
    display: block;
    border: 0;
    max-width: none;
    pointer-events: none;
    image-rendering: pixelated;
    transition: opacity 0.18s ease;
}

.map-hint {
    margin: 10px 0 0;
    text-align: center;
    color: var(--map-muted);
    font-size: 12px;
}

.map-hint a {
    color: var(--map-link);
    font-weight: bold;
}
