/* Moonlit atlas: fixed controls, draggable art, and real accessible map pins. */
body.world-camp{overflow:hidden;padding:0;overscroll-behavior:none}
body.world-camp>header,body.world-camp>footer,body.world-camp #battle-controls{display:none}
body.world-camp main{width:100%;height:100dvh;max-width:none;margin:0;padding:0}
body.world-camp main>.arena{height:100dvh;min-height:0;width:100%;border:0;border-radius:0}
#world-map{position:absolute;inset:0;z-index:8;background:#152b44;color:#f4e6c9;isolation:isolate;user-select:none;-webkit-user-select:none}
#world-map::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;box-shadow:inset 0 0 100px #06102099;background:linear-gradient(#040d2090,transparent 20%,transparent 77%,#040c1cea)}
#world-viewport{position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:none}
#world-viewport.dragging{cursor:grabbing}
#world-stage{position:absolute;left:0;top:0;will-change:transform}
#world-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;object-fit:fill}
.world-pin{position:absolute;z-index:2;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;gap:3px;border:0;padding:7px;background:transparent!important;box-shadow:none;color:var(--pin-color);touch-action:none;border-radius:16px;filter:drop-shadow(0 3px 4px #0009);font-family:'Noto Serif SC','Songti SC',SimSun,serif;white-space:nowrap}
.world-pin-number{display:grid;place-items:center;width:48px;height:48px;border:2px solid #fbe2a5;border-radius:50%;background:radial-gradient(circle at 40% 25%,#705035,#2a2530 75%);box-shadow:inset 0 0 0 3px #1b1d2b,inset 0 0 0 4px #af9163,0 0 0 4px #102139b5;color:#fff0c9;font:bold 23px/1 Georgia,serif}
.world-pin-name{padding:5px 17px;border:1px solid #c2a574;border-radius:4px;background:linear-gradient(110deg,#0c1b33ef,#263047f5,#0c1b33ef);font-size:17px;font-weight:700;letter-spacing:2px;box-shadow:inset 0 0 0 2px #152437,0 3px 8px #0008}
.world-pin-tag{color:#ebdfc6;font:11px/1.4 system-ui;text-shadow:0 2px 3px #000;letter-spacing:3px;background:#10203499;padding:2px 7px;border-radius:2px}
.world-pin.selected .world-pin-number,.world-pin:hover .world-pin-number{background:radial-gradient(circle at 40% 25%,#c99250,#634020 80%);box-shadow:inset 0 0 0 3px #503420,0 0 0 4px #fff0bd33,0 0 22px #fcd68088}
.world-pin.selected .world-pin-name{border-color:#ffe5ad;color:#fff2ca}
.world-pin:focus-visible{outline:3px solid #fff1b6;outline-offset:4px;background:#10223a80!important}
#world-header{position:absolute;z-index:3;inset:max(20px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) auto max(28px,env(safe-area-inset-left));display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:18px;pointer-events:none}
#world-header>*{pointer-events:auto}
.world-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 17px;border:1px solid #b49b70;border-radius:7px;background:linear-gradient(#273b55ed,#101b32f5);color:#f2dbad;box-shadow:inset 0 0 0 2px #0c1929,0 4px 14px #0007;touch-action:manipulation;font:600 15px/1.3 'Noto Serif SC','Songti SC',serif;letter-spacing:2px;text-shadow:0 1px 2px #000}
.world-button:hover{background:linear-gradient(#3b5066,#243047);border-color:#ffe4ad}
.world-icon{display:block;width:28px;height:28px;flex:none;color:#e0c391}
.world-icon svg{display:block;width:100%;height:100%}
#world-settings{justify-self:start}
#world-brand{text-align:center;text-shadow:0 2px 8px #040d20,0 0 20px #040d20}
#world-brand h1{font:700 31px/1.4 'Noto Serif SC','Songti SC',SimSun,serif;letter-spacing:8px;margin:2px 0 0 8px;color:#f2e7cd}
#world-brand small{font-size:10px;letter-spacing:4px;color:#d8d8cc}
#world-wallet{justify-self:end;display:grid;grid-template-columns:1fr auto;gap:0 7px;text-shadow:0 1px 4px #000;background:#101c2edc;border:1px solid #8e826a;border-radius:6px;padding:7px 15px}
#world-wallet small{grid-column:1/-1;font-size:10px;letter-spacing:3px;color:#b8c6d3}
#world-wallet strong{font:700 23px Georgia,serif;color:#f7dba6;font-variant-numeric:tabular-nums}
#world-wallet span{align-self:center;font-size:12px;color:#c5b494}
#world-nav{position:absolute;z-index:3;bottom:max(23px,env(safe-area-inset-bottom));left:max(28px,env(safe-area-inset-left));right:max(28px,env(safe-area-inset-right));display:flex;gap:12px;align-items:end;pointer-events:none}
#world-nav>button{pointer-events:auto;min-width:84px;min-height:76px;flex-direction:column;gap:4px;font-size:16px}
#world-nav>button>.world-icon{width:32px;height:32px}
#world-nav>.world-chest{position:relative;margin-right:auto;min-width:112px;min-height:94px;border-color:#e0b566;background:linear-gradient(#5a412cea,#2b2833f7);color:#ffe1a0}
#world-nav>.world-chest .world-icon{width:43px;height:43px}
#world-box-count{position:absolute;top:-7px;right:-7px;min-width:24px;min-height:24px;border-radius:13px;border:1px solid #f7d89e;background:#3e3943;color:#ddd4c4;padding:3px 5px;font:700 13px/17px system-ui;letter-spacing:0}
#world-chest.has-boxes #world-box-count{background:#ac4838;color:#fff5d5}
#world-story{position:relative}#world-story-count{position:absolute;top:-7px;right:-5px;min-width:20px;border:1px solid #d6c192;border-radius:12px;background:#77543d;color:#f7e6ba;padding:2px 5px;font:700 12px/16px system-ui;letter-spacing:0}#world-story-count[hidden]{display:none}
#world-chest.has-boxes{box-shadow:inset 0 0 0 2px #44301c,0 0 24px #e8b66350}
#world-tools{position:absolute;z-index:3;top:100px;left:max(28px,env(safe-area-inset-left));display:flex;gap:9px}
#world-tools .world-button{font-size:12px;letter-spacing:1px;min-height:36px;padding:7px 11px;background:#13253ace}
#world-rail{position:absolute;z-index:3;left:50%;transform:translateX(-50%);bottom:125px;display:flex;gap:7px}
.world-shortcut{width:34px;height:34px;min-height:34px;padding:0;border-radius:50%;border:1px solid #ab9570;background:#0d1c31dd;color:#d5d1c4;font:600 15px Georgia,serif;touch-action:manipulation}
.world-shortcut[aria-current=location]{background:#977146;color:#fff1d2;border-color:#f8dba3}
#world-hint{position:absolute;z-index:2;bottom:94px;left:50%;transform:translateX(-50%);margin:0;color:#ebdcc4;text-shadow:0 1px 4px #000;font-size:11px;letter-spacing:2px;white-space:nowrap;pointer-events:none}
#world-confirm{position:absolute;z-index:45;inset:0;display:grid;place-items:center;padding:24px;background:#061126bd;backdrop-filter:blur(5px)}
.world-confirm-card{width:min(580px,100%);max-height:100%;overflow:auto;border:1px solid #b59b70;border-radius:12px;padding:26px;background:linear-gradient(150deg,#253a50,#111b2a);box-shadow:inset 0 0 0 4px #162538,0 30px 80px #0009;color:#e0e1dd}
.world-card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.world-card-heading>small{font-size:12px;color:#c3b894;letter-spacing:2px}
#world-cancel{font-size:12px;letter-spacing:0;min-height:38px;padding:8px 10px}
#world-level-title{font:600 32px/1.4 'Noto Serif SC',serif;letter-spacing:4px;margin:18px 0;color:#f6e4be}
#world-level-brief,#world-level-rewards,#world-level-kit{font-size:14px;line-height:1.8}
#world-level-rewards{padding:12px 16px;border-left:2px solid #c4a66e;background:#0c1c2c88;color:#e6d6b8}
#world-level-kit{color:#adbfcc}
#world-level-warning{font-size:12px;color:#e4af94;line-height:1.65}
#world-level-warning:empty{display:none}
.world-confirm-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:12px;margin-top:24px}
.world-depart{border:1px solid #ffe0a1;border-radius:6px;min-height:49px;padding:10px;background:linear-gradient(#e0bb78,#bd9254);color:#251e18;font-weight:700;letter-spacing:2px;box-shadow:inset 0 0 0 2px #c19b63}
.world-depart:hover{background:#f1d392}
.world-depart:disabled{opacity:.5;cursor:not-allowed}
body.world-home #overlay{display:none!important}
body.world-camp #overlay{z-index:30;align-items:center;justify-content:center;padding:22px;background:#071425a6;backdrop-filter:blur(4px)}
body.world-camp #overlay>.modal{max-width:960px;width:100%;padding:22px 26px 16px;border-color:#9c926e;background:linear-gradient(150deg,#20354bfa,#102333fa);box-shadow:0 20px 80px #0008}
#world-panel-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
#world-panel-bar .world-button{font-size:13px;letter-spacing:1px;padding:7px 12px;min-height:42px}
#world-panel-bar .world-icon{width:22px;height:22px}
body.world-camp #toast{z-index:120;top:auto;bottom:180px;width:max-content;max-width:calc(100% - 40px);white-space:normal;text-align:center;line-height:1.6}
#world-map.world-fit-all .world-pin-tag{display:none}
@media(max-width:900px){
 #world-header{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));gap:8px}
 #world-brand h1{font-size:25px;letter-spacing:4px;margin-left:4px}#world-brand small{letter-spacing:1px;font-size:9px}
 #world-wallet{padding:5px 9px}#world-wallet strong{font-size:19px}#world-wallet small{letter-spacing:1px}
 #world-settings{font-size:13px;padding:8px;letter-spacing:0}#world-settings .world-icon{width:22px;height:22px}
 #world-tools{top:82px;left:16px}#world-nav{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));gap:8px;bottom:max(16px,env(safe-area-inset-bottom))}
 #world-nav>button{min-width:68px;min-height:64px;padding:7px 12px;font-size:14px}#world-nav>.world-chest{min-width:84px;min-height:78px}
 #world-rail{bottom:111px}#world-hint{bottom:88px;font-size:10px;letter-spacing:1px}
 .world-pin-number{width:44px;height:44px;font-size:21px}.world-pin-name{font-size:15px;letter-spacing:1px;padding:5px 12px}
}
@media(max-width:560px){
 #world-header{grid-template-columns:1fr 1fr}#world-brand{grid-column:1/-1;grid-row:1;text-align:center;pointer-events:none}#world-brand h1{font-size:24px}#world-brand small{display:none}
 #world-settings{grid-column:1;grid-row:2;justify-self:start}#world-wallet{grid-column:2;grid-row:2}
 #world-tools{top:118px;right:16px;justify-content:space-between}#world-tools .world-button{font-size:11px}
 #world-nav{gap:6px;bottom:max(17px,env(safe-area-inset-bottom));left:10px;right:10px;display:grid;grid-template-columns:repeat(5,1fr)}
 #world-nav>button,#world-nav>.world-chest{min-width:0;min-height:68px;padding:6px 2px;margin:0;font-size:13px;letter-spacing:1px;border-radius:5px}
 #world-nav>button>.world-icon,#world-nav>.world-chest .world-icon{width:30px;height:30px}#world-box-count{right:-4px;top:-8px}
 #world-rail{bottom:calc(max(17px,env(safe-area-inset-bottom)) + 104px);gap:7px}.world-shortcut{width:38px;height:38px;min-height:38px}
 #world-hint{bottom:calc(max(17px,env(safe-area-inset-bottom)) + 80px)}
 #world-map.world-fit-all .world-pin-name{font-size:10px;letter-spacing:0;padding:4px 5px}
 #world-map.world-fit-all .world-pin-number{width:36px;height:36px;font-size:16px}
 #world-confirm{padding:14px}.world-confirm-card{padding:20px}#world-level-title{font-size:27px}#world-level-brief,#world-level-rewards,#world-level-kit{font-size:13px}.world-card-heading>small{letter-spacing:0}
 body.world-camp #overlay{padding:10px}body.world-camp #overlay>.modal{padding:16px 14px 10px}#world-panel-bar{margin-bottom:10px}
}
@media(max-height:550px) and (min-width:561px){
 #world-header{top:max(10px,env(safe-area-inset-top))}#world-brand h1{font-size:24px}#world-brand small{display:none}#world-wallet small{display:none}
 #world-tools{top:65px}#world-nav{bottom:10px}#world-nav>button,#world-nav>.world-chest{flex-direction:row;min-height:44px;min-width:72px;padding:8px;font-size:13px}#world-nav>button>.world-icon,#world-nav>.world-chest .world-icon{width:24px;height:24px}
 #world-rail{bottom:64px}#world-hint{bottom:40px}.world-pin-tag{display:none}.world-pin-number{width:38px;height:38px;font-size:18px}.world-pin-name{font-size:13px;padding:3px 8px}
 .world-confirm-card{padding:18px}#world-level-title{font-size:25px;margin:8px 0}.world-confirm-actions{margin-top:14px}
}
@media(prefers-reduced-motion:reduce){#world-map *{transition:none!important;animation:none!important}}
