/* Shared public page chrome surrounds the map controls. */
body.pubv2.vmap-page .vmap-tool{padding-top:26px;padding-bottom:30px}
body.pubv2.vmap-page .page-title p{margin:6px 0 0;color:#aaa}
.vmap-intro{max-width:850px;margin:0 0 22px;color:#bbb}
.vmap-app{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;color:#ddd}
.vmap-app [hidden]{display:none!important}
.vmap-app aside{padding:18px;background:#1c1c1e;border:1px solid #373738;border-radius:5px}
.vmap-app button,.vmap-app input,.vmap-app summary{font:inherit;touch-action:manipulation}
.vmap-app button{color:#ddd;background:#252527;border:1px solid #555;padding:8px 12px;border-radius:4px;cursor:pointer;line-height:1.4}
.vmap-app button:hover{background:#303033;border-color:#eaa824}
.vmap-app button:disabled{opacity:.45;cursor:not-allowed}
.vmap-app :is(button,a,input,summary,canvas):focus-visible{outline:2px solid #eaa824;outline-offset:3px}
.vmap-app #seed-form{padding:0}
.vmap-app #seed-form>label{display:block;margin:0 0 7px;font-weight:600}
.vmap-app .seed-entry{display:flex;gap:7px}
body.pubv2 .vmap-app #seed{width:100%;min-width:0;height:40px;padding:8px 10px;margin:0;border:1px solid #646466;border-radius:4px;background:#141415;color:#fff;font:14px monospace}
.vmap-app #random{font-size:12px;padding:6px 8px}
.vmap-app #seed-help,.vmap-app .hint{font-size:12px;line-height:1.6;color:#aaa;margin:7px 0 12px}
.vmap-app #generation{font-size:12px;color:#bbb;margin:12px 0;min-height:38px}
.vmap-app progress{display:block;width:100%;height:6px;accent-color:#eaa824;margin-top:8px}
body.pubv2 .vmap-app aside section{padding:15px 0 0;margin:15px 0 0;border-top:1px solid #38383a;background:none}
body.pubv2 .vmap-app h2{font-size:14px;font-weight:600;margin:0 0 10px;color:#eee;line-height:1.4}
.vmap-app .examples{display:flex;flex-wrap:wrap;gap:6px}
.vmap-app .examples button{font:12px monospace;padding:7px 8px}
.vmap-app .segmented{display:flex}
.vmap-app .segmented button{flex:1;font-size:13px;border-radius:0}
.vmap-app .segmented button:first-child{border-radius:4px 0 0 4px}
.vmap-app .segmented button:last-child{border-radius:0 4px 4px 0;border-left:0}
.vmap-app .segmented button[aria-pressed=true]{background:#493919;color:#ffe2a7;border-color:#a97d26}
.vmap-app .layers label{display:flex;align-items:center;gap:8px;min-height:34px;margin:0;font-size:13px;font-weight:400;cursor:pointer}
.vmap-app .layers input{accent-color:#eaa824;margin:0}
.vmap-app .layers span{margin-left:auto;color:#aaa;font-size:12px}
.vmap-app details{margin-top:15px;padding-top:14px;border-top:1px solid #38383a}
.vmap-app summary{cursor:pointer;font-size:13px;font-weight:600}
.vmap-app #legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;font-size:11px}
.vmap-app #legend span{display:flex;align-items:center;gap:6px}
.vmap-app #legend i{display:inline-block;width:11px;height:11px;border:1px solid #888;flex:none}
.vmap-app .map-section{min-width:0;display:flex;flex-direction:column}
.vmap-app .map-bar,.vmap-app .map-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px}
.vmap-app .map-bar strong{font-size:16px;color:#fff;font-weight:600}
.vmap-app #game-version{margin-left:12px;font-size:12px;color:#aaa}
.vmap-app #coordinates{font-size:12px;color:#aaa}
.vmap-app #viewport{position:relative;min-height:570px;flex:1;background:#16243d;border:1px solid #41434a;border-radius:4px;overflow:hidden}
.vmap-app canvas{display:block;position:absolute;inset:0;width:100%;height:100%;cursor:grab;touch-action:none}
.vmap-app canvas.dragging{cursor:grabbing}
.vmap-app .map-controls{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:6px}
.vmap-app .map-controls button{min-width:40px;min-height:40px;padding:6px;background:#1c1c1ef0}
.vmap-app .north{position:absolute;right:16px;top:16px;pointer-events:none;color:#e1e7f0}
.vmap-app .empty{position:absolute;top:47%;width:100%;padding:0 55px;text-align:center;color:#c4cfde;pointer-events:none;font-size:16px}
.vmap-app #map-tooltip{position:absolute;max-width:210px;border:1px solid #777;padding:7px 10px;border-radius:4px;background:#1c1c1ef5;color:#eee;font-size:12px;pointer-events:none;z-index:4}
.vmap-app .map-footer{justify-content:flex-start;flex-wrap:wrap;color:#aaa;font-size:12px;padding-top:9px}
.vmap-app .map-footer button{font-size:12px;padding:6px 8px}
.vmap-app .map-footer #copy{margin-left:auto}
body.pubv2.vmap-page .vmap-guide{border-top:1px solid #333;padding-top:35px;padding-bottom:40px}
.vmap-guide h3{font-size:18px;margin-top:26px}
.vmap-live{padding-left:40px}
.vmap-hosting{margin-top:22px;font-size:13px}
@media(min-width:1400px){.vmap-app #viewport{min-height:650px}}
@media(max-width:1100px){.vmap-app{grid-template-columns:235px minmax(0,1fr);gap:18px}.vmap-app #coordinates{display:none}.vmap-app aside{padding:15px}}
@media(max-width:767px){.vmap-app{grid-template-columns:1fr;gap:14px}.vmap-app aside{display:contents}.vmap-app #seed-form{grid-row:1}.vmap-app #generation{grid-row:2;margin:0;min-height:0}.vmap-app .map-section{grid-row:3}.vmap-app #viewport{min-height:430px}.vmap-app .map-bar{flex-wrap:wrap}.vmap-app .map-footer{gap:9px}.vmap-app .map-footer>span{width:100%}.vmap-app .map-footer #copy{margin-left:0}.vmap-app .map-controls button{min-width:44px;min-height:44px}.vmap-app .examples button,.vmap-app .segmented button{min-height:44px}.vmap-app .layers label{min-height:44px}.vmap-app summary{min-height:32px}.vmap-live{padding-left:15px;margin-top:26px}body.pubv2.vmap-page .vmap-tool{padding-top:20px}.vmap-intro{margin-bottom:18px}.vmap-app #legend{grid-template-columns:repeat(3,1fr)}.vmap-app .map-footer a{padding:10px 0}}
@media(max-width:360px){.vmap-app #viewport{min-height:360px}.vmap-app #legend{grid-template-columns:1fr 1fr}.vmap-app #game-version{margin-left:8px}}

/* Preserve the wordmark's proportions as the shared header narrows. */
body.vmap-page.v2hdr #c2brand .c2logo img{height:auto;max-height:34px}
body.pubv2.vmap-page #seed-help a,body.pubv2.vmap-page .vmap-guide p a{text-decoration:underline;text-underline-offset:3px}
