#world-toolbar{display:flex;align-items:center;gap:6px;padding:6px 11px;background:#263b37;border-top:1px solid #60765c}
#sound-dialog .world-mode .battle-stage{height:var(--world-field-height,clamp(220px,calc(100dvh - 455px),560px));min-height:220px;max-height:none;aspect-ratio:auto}
#world-toolbar button,#world-strip button,.world-save button{font:inherit;cursor:pointer;font-size:12px;color:#ebe2bd;background:#354c41;border:1px solid #778866;min-height:34px;padding:5px 11px}
#world-location{margin-left:auto;font-size:11px;color:#bdc6a5}
#world-strip{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 13px;background:#405440;color:#e9dfaf;font-size:12px;min-height:34px}
#world-strip button{padding:3px 8px;min-height:25px;font-size:11px}
#world-portals{position:absolute;inset:0;pointer-events:none;z-index:107}
#world-portals button{position:absolute;transform:translate(-50%,-50%);font:inherit;padding:3px;background:transparent;border:0;color:#fff0bd;cursor:pointer;min-width:50px;min-height:48px;pointer-events:auto;text-shadow:1px 2px #263b35}
#world-portals button>span{display:block;width:26px;height:32px;margin:auto;border:2px solid #b6c59b;background:#526c5080;font-size:24px;box-shadow:0 0 0 2px #354c3a}
#world-portals button>small{display:block;margin-top:5px;font-size:10px;white-space:nowrap;background:#253c36d9;padding:3px 5px}
#world-portals button.near>span{border-color:#fff0a5;background:#9fa567;color:#233d33;box-shadow:0 0 0 3px #dbce8a}
#world-portals button:disabled{cursor:default;color:#d3d8be;opacity:.65}#world-portals button:disabled>span{border-color:#748669;background:#3e5040}
#world-npc{position:absolute;z-index:92;left:57%;top:34%;transform:translate(-50%,-50%);background:transparent;border:0;cursor:pointer;color:#eddeb2;font:inherit;padding:4px;text-shadow:1px 2px #233b30}
#world-npc>span{display:block;width:38px;margin:auto}#world-npc svg{width:100%}#world-npc small{display:block;font-size:10px;background:#243c33e3;line-height:1.5;padding:3px 7px;margin-top:4px}
#world-toolbar[hidden],#world-strip[hidden],#world-portals[hidden],#world-npc[hidden],#world-interact[hidden],#world-explore[hidden],#world-retry[hidden]{display:none}
.world-save{font-size:12px;margin:6px 13px;color:#526a42;display:flex;align-items:center;gap:8px}.world-save:has(#world-status:empty):has(#world-retry[hidden]){display:none}
.world-safe .battle-enemy-title,.world-safe #battle-monster,.world-safe .battle-health,.world-safe #arcade-aim,.world-safe .arcade-action-buttons [data-arcade-action]{display:none!important}
.world-map-scroll{overflow:auto;border:1px solid #8b9f7b;background:#2b423d;scrollbar-color:#899e7a #2b423d;scrollbar-width:thin}
.world-map{position:relative;min-width:904px;height:330px;background:radial-gradient(ellipse at 12% 65%,#4f6448 0,transparent 35%),radial-gradient(ellipse at 68% 30%,#344b57 0,transparent 40%),#293f3b}
.world-map>svg{position:absolute;inset:0;width:100%;height:100%}.world-map line{stroke:#687b67;stroke-width:2;stroke-dasharray:5 6}.world-map line.opened{stroke:#b1b888}.world-map line.walked{stroke:#bdaf79;stroke-width:3;stroke-dasharray:none}
.world-map-node{position:absolute;transform:translate(-50%,-30px);width:96px;min-height:80px;display:flex;align-items:center;flex-direction:column;padding:0 2px;background:none;border:0;font:inherit;color:#d4dac0;cursor:pointer}
.world-map-node i{font:20px ui-monospace,monospace;font-style:normal;display:grid;place-items:center;width:35px;height:39px;border:2px solid #82977b;background:#344f40;box-shadow:0 0 0 3px #243d33;margin:2px 0 6px}
.world-map-node b{font-size:10px;line-height:1.5;background:#243c35df;padding:1px 4px;color:#dce0c4}
#journey-dialog .world-map-node small{font-size:9px;line-height:1.6;color:#bfccab}
.world-map-node.current i{color:#2a4236;background:#dac98f;border-color:#f0dda0;box-shadow:0 0 0 4px #8e9c71}
.world-map-node.visited i{border-color:#b7bc88}.world-map-node.cleared i{background:#52684b;color:#e2dca2}.world-map-node.current i{background:#dac98f;color:#2a4236}
.world-map-node:disabled{cursor:default}.world-map-node:disabled:not(.visited){opacity:.5}.world-map-node:focus-visible{outline:2px solid #f4e0a0;outline-offset:3px}
.world-map-legend{display:flex;flex-wrap:wrap;gap:16px;margin:10px 0;font-size:11px;color:#617352}
.world-dialog-actions{display:flex;gap:7px;flex-wrap:wrap;margin:17px 0}
.world-dialog-actions button,.world-gear button,.world-quests button,.world-arrival button{cursor:pointer;border:1px solid #899b77;background:#405c46;color:#f1e5bc;padding:10px 15px;min-height:40px;font:inherit;font-size:12px}
.world-purse{display:flex;flex-wrap:wrap;gap:15px;padding:16px;background:#e5e6cb;border:1px solid #a3ae85}.world-purse span{font-size:12px}
.world-gear{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.world-gear article{padding:20px;border:1px solid #a6b28d;background:#f9f5e6;text-align:center}.world-gear-art{width:72px;margin:0 auto 15px}
.world-gear h3{font-size:17px;margin-top:7px}.world-gear button:disabled,.world-quests button:disabled{cursor:default;background:#d9deca;border-color:#b4bda4;color:#697961}
.world-quests{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:18px 0}.world-quests article{padding:18px;border:1px solid #b3b99a;background:#f8f5e6}.world-quests h3{font-size:16px}.world-quests article>span{display:block;font-size:12px;margin:12px 0}.world-quests button{margin:3px 5px 0 0}
.world-arrival{text-align:center}.world-arrival>.pixel-landscape{width:100%;height:200px;position:static}.world-arrival h3{font-size:25px;margin:16px}.world-arrival button{margin:10px 5px}.world-medal{display:grid;place-items:center;width:100px;height:100px;border:4px double #b79f62;background:#344b43;color:#e8cb82;font:52px ui-monospace,monospace;margin:23px auto}
[data-camp-theme="night"] .world-purse,[data-camp-theme="night"] .world-gear article,[data-camp-theme="night"] .world-quests article{background:#2b4238;border-color:#78876c;color:#e1ddbd}
[data-camp-theme="night"] .world-map-legend,[data-camp-theme="night"] .world-save{color:#cad1b0}
@media(max-width:620px){
 #world-toolbar{gap:4px;padding:5px 8px}#world-toolbar button{font-size:11px;padding:5px 8px}#world-location{font-size:9px;text-align:right;max-width:96px}#world-strip{font-size:10px;padding:5px 9px}
 #world-portals button>small{font-size:8px;max-width:68px;white-space:normal}#world-portals button>span{width:22px;height:27px;font-size:20px}
 #world-npc>span{width:28px}#world-npc small{font-size:8px}#world-npc{top:37%}
 .world-gear,.world-quests{grid-template-columns:1fr}.world-save{font-size:11px}.world-purse{gap:10px;padding:12px}.world-arrival h3{font-size:20px}
}
/* Seoul Star Road map: the Han River, Yeouido and district labels drawn in SVG under the node buttons. */
.world-map.seoul-map{min-width:1240px;height:560px;background:radial-gradient(ellipse at 18% 25%,#4f6448 0,transparent 32%),radial-gradient(ellipse at 70% 80%,#344b57 0,transparent 38%),#293f3b}
.seoul-map .han-river{fill:none;stroke:#3f7791;stroke-width:34;stroke-linejoin:round;stroke-linecap:round}
.seoul-map .han-river-glint{fill:none;stroke:#7fb0c3;stroke-width:3;stroke-dasharray:16 28;stroke-linecap:round;opacity:.8}
.seoul-map .yeouido{fill:#4a6b4a;stroke:#7d9a70;stroke-width:2}
.seoul-map .map-label{fill:#d2dbbb;font:12px ui-sans-serif,system-ui,sans-serif;letter-spacing:1px}
.seoul-map .river-label{fill:#e4f0f4;font:bold 14px ui-sans-serif,system-ui,sans-serif;letter-spacing:4px}
.seoul-map .map-north{fill:#c9d3b2;font:bold 13px ui-monospace,monospace}
/* Road travel: the hero keeps walking while the scenery slides under them. */
.road-travelling #battle-field{cursor:progress}
.road-strip text{paint-order:stroke;stroke:#efe3b9;stroke-width:.6}
.road-travelling #world-portals,.road-travelling #arcade-enemies,.road-travelling #combat-drops,.road-travelling #world-npc,.road-travelling #arcade-effects{visibility:hidden}
#road-controls{position:absolute;z-index:115;left:12px;bottom:12px;display:flex;gap:6px;pointer-events:none}
#road-controls[hidden]{display:none}
#road-controls button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;cursor:pointer;font:inherit;font-size:12px;min-width:74px;min-height:40px;color:#f0e5bd;background:#263d37e8;border:1px solid #a6b18a;box-shadow:0 2px #162725;padding:6px 10px}
#road-controls button[aria-pressed="true"]{background:#647953}
#road-controls button:disabled{opacity:.45;cursor:default}
.arcade-mode #road-controls{display:none}
@media(max-width:720px){#road-controls{left:6px;bottom:6px;gap:4px}#road-controls button{min-width:58px;min-height:34px;font-size:11px;padding:4px 7px}}
