/* PROJECT OHANA V40 · WORLD GRAPH MAP */
/* An illustrated atlas, backed by the actual room graph. */
#map-overlay .panel{width:min(960px,calc(100vw - 24px))!important;max-height:calc(100dvh - 28px)!important;overflow:auto;padding:28px!important;background:#f4efdF!important;color:#193d43;border:1px solid #fff7dc;border-radius:24px!important;box-shadow:0 28px 100px #001d2b88;text-align:left;}
#map-title{font:600 32px Fredoka,sans-serif;color:#183b40;margin:4px 0 8px;}
.map-eyebrow{font:700 10px Outfit,sans-serif;letter-spacing:.18em;color:#54776e;margin:0;}
.map-intro{font-size:13px;color:#54706e;margin:0 0 16px;}
#map-grid{display:block!important;position:relative!important;width:100%!important;aspect-ratio:auto!important;min-height:0!important;margin:0!important;overflow:visible!important;background:none!important;border:0!important;box-shadow:none!important;}
.world-map-v40{position:relative!important;inset:auto!important;background:none!important;border:0!important;}
.wm-summary{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font:700 10px Outfit,sans-serif;letter-spacing:.1em;color:#5b756d;}
.wm-summary strong{font:600 22px Fredoka,sans-serif;color:#234b48;letter-spacing:0;}.wm-summary strong small{font:500 12px Outfit,sans-serif;color:#58756e;}
.wm-scroll{overflow-x:auto;border-radius:16px;border:1px solid #87b8b0;background:#b9d9d5;scrollbar-color:#629b91 #b9d9d5;scrollbar-width:thin;}
.wm-board{position:relative;min-width:680px;aspect-ratio:1000/560;background:radial-gradient(ellipse at 50% 30%,#e8edcb44,transparent 75%);}
.wm-chart{position:absolute;width:100%;height:100%;inset:0;}.wm-shore{fill:#dee4b8;stroke:#9cbe9d;stroke-width:12;stroke-linejoin:round;}.wm-highland{fill:#e5e7c9;stroke:#a6bfa6;stroke-width:10;}.wm-contour{fill:none;stroke:#a8bf9566;stroke-width:2;}.wm-sea-label{fill:#4e8a8a;font:500 14px Outfit,sans-serif;letter-spacing:7px;text-anchor:middle;}.wm-waves{fill:none;stroke:#77aaa4;stroke-width:2;}
.wm-edge{fill:none;stroke:#728c6d;stroke-width:3;stroke-linecap:round;opacity:.8;}.wm-edge.locked{stroke:#a1aaa1;opacity:.4;stroke-dasharray:3 8;}.wm-edge.wm-drop{stroke-dasharray:3 7;stroke:#5a9293;}.wm-edge.wm-catapult{stroke:#bc8f4d;stroke-dasharray:6 8;}.wm-edge.wm-vortex{stroke:#8b77ac;stroke-dasharray:2 8;}
.wm-node{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:grid;justify-items:center;gap:3px;width:76px;min-height:70px;padding:4px 0;background:none;border:0;color:#264d46;box-shadow:none;cursor:pointer;z-index:2;transition:transform .16s ease;}
.wm-marker{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#f6f0dc;border:1px solid #9aaa83;box-shadow:0 3px 0 #77966a55;}.wm-marker svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.wm-node b{font:700 10px Outfit,sans-serif;letter-spacing:.05em;background:#eeeccbdd;border-radius:5px;padding:2px 5px;}.wm-node small{font:600 7px Outfit,sans-serif;letter-spacing:.02em;white-space:nowrap;color:#4e6e63;background:#f4efdfdd;padding:1px 4px;border-radius:3px;}
.wm-node.lock{color:#788579;}.wm-node.lock .wm-marker{background:#d9dfcb;border-style:dashed;box-shadow:none;}.wm-node.here .wm-marker{background:#244e48;color:#fff1bd;border-color:#244e48;box-shadow:0 0 0 5px #fff5d988,0 4px 0 #193a34;}.wm-node.selected:not(.here) .wm-marker{border:2px solid #265e55;box-shadow:0 0 0 4px #fff5d9aa;}.wm-node:hover{transform:translate(-50%,-54%);}.wm-node:focus-visible{outline:2px solid #183d41;outline-offset:4px;border-radius:10px;}
.wm-north{position:absolute;right:22px;top:16px;text-align:center;color:#4d7d78;font:600 11px Outfit,sans-serif;line-height:1.5;}
.wm-legend{position:static;display:flex;flex-wrap:wrap;gap:16px;margin:12px 0;font:500 11px Outfit,sans-serif;color:#5a756c;}.wm-legend span{display:flex;align-items:center;gap:6px;}.wm-legend i{display:block;width:15px;height:3px;background:#728c6d;border-radius:2px;}.wm-legend .drop{background:#5a9293;}.wm-legend .catapult{background:#bc8f4d;}.wm-legend .vortex{background:#8b77ac;}
.wm-detail{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;padding:18px 0 8px;border-top:1px solid #ced5b8;}.wm-detail-kicker{font:700 10px Outfit,sans-serif;letter-spacing:.08em;color:#508174;}.wm-detail h3{font:600 24px Fredoka,sans-serif;margin:4px 0 8px;color:#224b45;}.wm-detail p{font:400 13px/1.6 Outfit,sans-serif;margin:0;color:#526d62;}.wm-detail ul{list-style:none;padding:0;margin:0;display:grid;gap:6px;align-content:start;}.wm-detail li{display:flex;justify-content:space-between;gap:8px;font:600 12px Outfit,sans-serif;border-bottom:1px solid #dce0c9;padding:6px 0;}.wm-detail li small{font-weight:400;color:#657e72;text-align:right;}
#map-overlay #btn-close-map{margin-top:14px;background:#244e48;color:#fff3d5;border:0;border-radius:12px;padding:12px 22px;min-height:44px;box-shadow:none;}
@media(max-width:640px){#map-overlay .panel{padding:18px!important;border-radius:18px!important;}#map-title{font-size:27px;}.wm-detail{grid-template-columns:1fr;gap:12px;}.wm-scroll{overflow-y:hidden;}.wm-board{min-width:680px;}.wm-legend{gap:10px;font-size:10px;}.wm-detail h3{font-size:22px;}.wm-detail p{font-size:12px;}}
@media(prefers-reduced-motion:reduce){.wm-node{transition:none;}.wm-node:hover{transform:translate(-50%,-50%);}}
