.world-screen{position:absolute;inset:0;z-index:35;background:#0c1612;display:flex;flex-direction:column;padding:max(24px,env(safe-area-inset-top,0px)) max(5vw,env(safe-area-inset-right,0px)) max(14px,env(safe-area-inset-bottom,0px)) max(5vw,env(safe-area-inset-left,0px));color:#e4dfc8;overflow:auto;overscroll-behavior:contain;scroll-behavior:auto}.world-screen[hidden]{display:none}.world-header{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.world-wordmark{font:30px Cinzel,serif;letter-spacing:6px;color:#e6d6a1}.world-header p{color:#92a58b;font-size:12px;letter-spacing:2px;margin:6px 0 0}.world-header button{border:1px solid #68795b;background:#1d2e22;color:#d9d5bb;width:38px;height:38px;border-radius:50%;font-size:25px}.world-heading{flex:none;text-align:center;margin:21px 0 14px}.world-heading>span{font:10px Cinzel,serif;letter-spacing:4px;color:#b5a36a}.world-heading h1{font:500 26px var(--serif);letter-spacing:2px;margin:9px 0}.world-heading p{font-size:13px;line-height:1.8;color:#a4b59c;margin:0}.world-map-frame{position:relative;flex:1 0 180px;min-height:180px;max-height:none;border:1px solid #697b494d;border-radius:10px;overflow:hidden;background:#0b1812;box-shadow:inset 0 0 40px #0005}#world-map-canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none;cursor:grab}#world-map-canvas:active{cursor:grabbing}#atlas-loading{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:#12231e;color:#bbc5a3;line-height:2;font-size:14px}#atlas-loading[hidden]{display:none}.world-map-tools{position:absolute;right:14px;bottom:45px;display:flex;border:1px solid #829564;border-radius:5px;overflow:hidden}.world-map-tools button{background:#17291eeb;border:0;border-right:1px solid #74855366;color:#dedbb5;min-width:36px;height:34px;font-size:16px}.world-map-tools button:nth-child(2){font-size:12px;padding:0 10px}.world-key{position:absolute;left:14px;top:12px;display:flex;gap:15px;color:#ddcd91;font-size:11px;background:#14221ad9;padding:7px 10px;border-radius:3px}.world-place{position:absolute;bottom:12px;left:14px;right:14px;text-align:center;color:#d7d9bb;font-size:12px;line-height:1.6;text-shadow:0 1px 3px #000;background:#112019bf;border-radius:3px}.world-footer{flex:none;display:flex;gap:30px;align-items:center;justify-content:space-between;padding:20px 0 8px}.world-progress{flex:1;max-width:550px}.world-progress>span{display:block;color:#a9b995;font-size:12px;margin-bottom:5px}.world-progress strong{font:31px Cinzel,serif;color:#f0d68d;letter-spacing:1px}.world-progress small{color:#84977c;margin-left:8px;font:13px Cinzel,serif}.world-progress-track{height:4px;background:#33432b;border-radius:5px;margin:10px 0}.world-progress-track span{display:block;height:100%;background:#e1c880;box-shadow:0 0 8px #ebcb8477;border-radius:5px}.world-progress p{font-size:12px;color:#b0bca0;margin:7px 0}.world-entry{display:flex;flex-direction:column;gap:8px;min-width:240px;text-align:center}.world-entry>span:first-child{font-size:13px;color:#c0c6a2}.world-entry button{padding:13px 30px;font-size:15px}.world-entry>span:last-child{font-size:11px;color:#9aaa8c}.world-credit{flex:none;font-size:10px;color:#657a64;text-align:center}.world-credit a{color:#91a783;margin-left:12px}.world-screen.liberated{background:#193123}.liberated .world-heading h1{color:#ffedac;text-shadow:0 0 20px #edcd5955}.liberated .world-wordmark{color:#fff0b2}
@media(orientation:portrait){.world-screen{padding:max(16px,env(safe-area-inset-top)) 16px max(12px,env(safe-area-inset-bottom))}.world-wordmark{font-size:25px;letter-spacing:4px}.world-header p{font-size:10px;letter-spacing:1px}.world-heading{margin:23px 0 15px}.world-heading h1{font-size:21px;line-height:1.6}.world-heading p{font-size:12px;max-width:310px;margin:auto}.world-map-frame{min-height:180px;max-height:none}.world-footer{display:block;padding:15px 0 8px}.world-progress strong{font-size:27px}.world-progress>span{display:inline;margin-right:12px}.world-progress p{font-size:11px}.world-entry{margin-top:17px;gap:7px}.world-entry button{width:100%}.world-credit{font-size:9px}.world-key{font-size:10px;gap:10px;left:8px;top:8px}.world-map-tools{right:9px;bottom:47px}.world-place{font-size:11px;left:8px;right:8px}.world-screen.liberated .world-heading h1{font-size:19px}#game-shell.portrait-mode .adventurer-hud{max-width:calc(100% - 139px)}#game-shell.portrait-mode .name-line small{display:none}#game-shell.portrait-mode .adventurer-stats{max-width:118px}#game-shell.portrait-mode .health-track{width:72px}#game-shell.portrait-mode .system-hud{gap:7px}#game-shell.portrait-mode .round-button.small{width:34px;height:34px}}
@media(orientation:landscape) and (max-height:600px){.world-screen{padding:10px 23px}.world-header{position:absolute;top:10px;left:23px;right:23px;pointer-events:none}.world-header button{pointer-events:auto;width:30px;height:30px;font-size:21px}.world-wordmark{font-size:19px;letter-spacing:3px}.world-header p{display:none}.world-heading{margin:0 150px 10px}.world-heading>span{font-size:8px}.world-heading h1{font-size:18px;margin:4px}.world-heading p{display:none}.world-map-frame{min-height:110px;flex-basis:110px}.world-footer{padding:9px 0 3px;gap:20px}.world-progress strong{font-size:23px}.world-progress>span{display:inline;margin-right:8px;font-size:11px}.world-progress-track{margin:6px 0}.world-progress p{font-size:10px;margin:0}.world-entry{min-width:205px;gap:4px}.world-entry button{padding:8px 15px;font-size:13px}.world-entry>span:last-child{display:none}.world-credit{font-size:8px}.world-place{font-size:10px;bottom:7px}.world-key{font-size:9px}.world-map-tools{bottom:35px}.world-map-tools button{height:28px}}

#game-shell #world-screen h1{white-space:normal;line-height:1.5;font-size:26px;letter-spacing:1px}
@media(orientation:portrait){#game-shell #world-screen h1{font-size:21px}}
@media(orientation:landscape) and (max-height:600px){#game-shell #world-screen h1{font-size:18px}}

/* The atlas absorbs the available height; surrounding content never shrinks
   away above it. Only this panel scrolls on very short or enlarged displays. */
.world-screen{outline:none}
.world-header>div,.world-footer>div{min-width:0}
.world-map-tools button{min-width:44px;min-height:44px}
.world-header button{flex:none;min-width:44px;min-height:44px}
.world-map-tools{bottom:48px}
.world-place{padding:2px 5px;overflow-wrap:anywhere}
.world-entry button{min-height:44px}
#game-shell.portrait-mode .world-screen{padding: max(12px,env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) max(10px,env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px))}
#game-shell.portrait-mode .world-heading{margin:12px 0}
#game-shell.portrait-mode .world-footer{padding:12px 0 6px}
#game-shell.portrait-mode .world-entry{min-width:0;margin-top:10px;gap:5px}
#game-shell.portrait-mode .world-progress-track{margin:7px 0}
#game-shell.portrait-mode .world-progress p{margin:5px 0}
#game-shell.short-portrait .world-header p,#game-shell.short-portrait .world-heading>span{display:none}
#game-shell.short-portrait .world-heading{margin:5px 0 10px}
#game-shell.short-portrait .world-heading p{display:none}
#game-shell.short-portrait #world-screen h1{font-size:19px;margin:4px 0}
#game-shell.short-portrait .world-map-frame{min-height:150px;flex-basis:150px}
#game-shell.compact:not(.portrait-mode) .world-header{top:max(10px,env(safe-area-inset-top,0px));left:max(23px,env(safe-area-inset-left,0px));right:max(23px,env(safe-area-inset-right,0px))}
#game-shell.compact:not(.portrait-mode) .world-screen{padding: max(10px,env(safe-area-inset-top,0px)) max(23px,env(safe-area-inset-right,0px)) max(8px,env(safe-area-inset-bottom,0px)) max(23px,env(safe-area-inset-left,0px))}
#game-shell.compact:not(.portrait-mode) .world-key{left:8px;top:8px;font-size:11px}
#game-shell.compact:not(.portrait-mode) .world-map-tools{bottom:32px;right:8px}

.world-map-frame{touch-action:none;user-select:none;-webkit-user-select:none}
.world-key,.world-place{pointer-events:none}
#world-map-canvas{touch-action:none;-webkit-user-select:none;user-select:none}
