.mapRoot{position:fixed;inset:0;z-index:40;background:linear-gradient(180deg,#7ec8f0,#c8ecff 42%,#d8f5c4);color:#1e2a5a;font-family:Hiragino Maru Gothic ProN,Hiragino Maru Gothic Pro,Yu Gothic,Hiragino Sans,Noto Sans JP,sans-serif;overflow:hidden;height:100dvh;touch-action:none;overscroll-behavior:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mapCanvas{display:block;width:100%;height:100%;cursor:-webkit-grab;cursor:grab;touch-action:none}.mapLabels{position:absolute;inset:0;pointer-events:none}.mapNameTag{position:absolute;left:0;top:0;padding:4px 10px;border:2px solid #1e2a5a;background:rgba(255,255,255,.92);color:#1e2a5a;font-size:12px;font-weight:700;white-space:nowrap;border-radius:999px;box-shadow:0 4px 0 #1e2a5a}.mapNameTag.collected{border-color:#d4a017;background:#fff6d0;color:#8a5a00;box-shadow:0 4px 0 #d4a017}.mapMinimap{right:18px;bottom:18px;width:148px;height:148px;border-radius:24px;box-shadow:0 8px 0 rgba(30,42,90,.18);overflow:hidden}.mapHudTop,.mapMinimap{position:absolute;pointer-events:none}.mapHudTop{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:8px}.mapHudTop>*{pointer-events:auto}.mapAreaGrid button,.mapBookList button,.mapExit,.mapGhost,.mapMenuButton,.mapMenuNav button,.mapPrimary,.mapPrompt button{font:inherit;cursor:pointer}.mapExit,.mapMenuButton{color:#1e2a5a;text-decoration:none;background:#ffffff;font-weight:700}.mapAreaBadge,.mapExit,.mapMenuButton{border:2px solid #1e2a5a;padding:8px 16px;border-radius:999px;box-shadow:0 4px 0 #1e2a5a}.mapAreaBadge{display:flex;align-items:baseline;gap:10px;background:rgba(255,255,255,.92)}.mapAreaBadge small{color:#3d4f7c}.mapHint{position:absolute;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));margin:0;padding:8px 14px;background:rgba(255,255,255,.88);border:2px solid #1e2a5a;border-radius:16px;font-size:13px;color:#1e2a5a;font-weight:700;box-shadow:0 4px 0 #1e2a5a;pointer-events:none}.mapRootTouch .mapHintDesktop{display:none}.mapRootTouch .mapHintTouch{display:inline}.mapRootTouch .mapPromptKeyHint{display:none}.mapRootTouch .mapHint{left:auto;right:max(12px,env(safe-area-inset-right));bottom:max(28px,calc(env(safe-area-inset-bottom) + 12px));max-width:42%}.mapDialog,.mapMenuWrap,.mapPrompt{position:absolute;background:rgba(255,255,255,.96);border:3px solid #1e2a5a;border-radius:24px;box-shadow:0 10px 0 rgba(30,42,90,.22)}.mapPrompt{left:50%;bottom:88px;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:12px 16px}.mapPrimary,.mapPrompt button{background:#f5c542;color:#1e2a5a;border:2px solid #1e2a5a;padding:8px 14px;font-weight:700;border-radius:999px;box-shadow:0 3px 0 #1e2a5a}.mapDialog{left:50%;bottom:28px;transform:translateX(-50%);width:min(560px,calc(100% - 32px));padding:18px}.mapDialogName{margin:0 0 8px;color:#1e2a5a}.mapDialogStatus,.mapDialogText,.mapMenuPanel p{margin:0 0 12px;line-height:1.6}.mapDialogActions{display:flex;justify-content:flex-end;gap:10px}.mapGhost{display:inline-block;color:#1e2a5a;background:#c8ecff;border:2px solid #1e2a5a;padding:8px 12px;text-decoration:none;border-radius:999px;font-weight:700}.mapCardSheet{display:grid;grid-template-columns:72px 1fr;grid-gap:12px;gap:12px;margin:12px 0;padding:12px;background:#fff8dc;border:2px solid #f5c542;border-radius:18px}.mapCardPlaceholder,.mapCardSheet img{width:72px;height:72px;object-fit:cover;background:#c8ecff;border-radius:16px}.mapCardSheet h3{margin:0 0 4px}.mapCardMeta,.mapCardProfile{margin:0 0 6px;color:#3d4f7c;font-size:13px}.mapCardSheet dl{margin:0}.mapCardSheet dt{color:#d4a017;font-size:12px}.mapCardSheet dd{margin:0 0 6px}.mapMenuWrap{inset:max(48px,calc(env(safe-area-inset-top) + 44px)) max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:grid;grid-template-columns:220px 1fr;overflow:hidden}.mapMenuNav{border-right:2px solid rgba(30,42,90,.16);padding:16px 10px;display:flex;flex-direction:column;gap:6px;background:#e8f8d8}.mapMenuNav p{margin:0 8px 8px;color:#1e2a5a;font-weight:800}.mapMenuNav button{text-align:left;background:transparent;color:#1e2a5a;border:0;padding:10px 12px;border-radius:14px;font-weight:700}.mapBookList button.active,.mapMenuNav button.active,.mapMenuNav button:hover{background:#f5c542;color:#1e2a5a}.mapMenuPanel{overflow:auto;padding:20px 24px}.mapMenuPanel h2{margin:0 0 12px;color:#1e2a5a}.mapMenuPanel h2 small{margin-left:8px;color:#3d4f7c;font-size:14px}.mapAreaGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:10px;gap:10px}.mapAreaGrid button{text-align:left;background:#c8ecff;color:inherit;border:2px solid #1e2a5a;padding:12px;display:flex;flex-direction:column;gap:6px;border-radius:18px;font-weight:700}.mapAreaGrid button.current{border-color:#d4a017;background:#fff6d0}.mapAreaGrid small{color:#3d4f7c;line-height:1.4;font-weight:500}.mapBookLayout{display:grid;grid-template-columns:minmax(180px,240px) 1fr;grid-gap:16px;gap:16px}.mapBookList{list-style:none;margin:0;padding:0;border-right:2px solid rgba(30,42,90,.12)}.mapBookList button{width:100%;text-align:left;background:transparent;color:inherit;border:0;padding:10px 8px;display:flex;flex-direction:column;gap:2px;border-radius:12px}.mapBookList span{color:#3d4f7c;font-size:12px}.mapHelpList{padding-left:18px;line-height:1.8}.mapEditor{display:flex;flex-direction:column;gap:10px;max-width:520px}.mapEditor input,.mapEditor label,.mapEditor textarea{display:block;width:100%;font:inherit}.mapEditor input,.mapEditor textarea{margin-top:4px;background:#f4fbff;color:#1e2a5a;border:2px solid #1e2a5a;padding:8px;border-radius:12px}.mapCheck{display:flex;gap:8px;align-items:center}.mapCheck input{width:auto}.mapRowEditor{display:flex;flex-direction:column;gap:8px}.mapRowEditor>div{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.mapAvatarEditor{display:flex;flex-direction:column;gap:12px;max-width:560px}.mapAvatarPreview{width:120px;height:150px;align-self:center}.mapAvatarField{margin:0;padding:0;border:0}.mapAvatarField legend{font-weight:800;margin-bottom:6px}.mapStyleChips,.mapSwatches{display:flex;flex-wrap:wrap;gap:8px}.mapSwatches button{width:28px;height:28px;padding:0;border:2px solid #1e2a5a;border-radius:999px;box-shadow:0 2px 0 #1e2a5a}.mapStyleChips button.active,.mapSwatches button.active{outline:3px solid #f5c542;outline-offset:2px}.mapStyleChips button{background:#c8ecff;color:#1e2a5a;border:2px solid #1e2a5a;border-radius:999px;padding:6px 12px;font-weight:700}.mapJoystick{position:absolute;left:max(16px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));width:132px;height:132px;z-index:5;touch-action:none}.mapJoystickBase,.mapJoystickThumb{position:absolute;border-radius:999px;pointer-events:none}.mapJoystickBase{inset:14px;background:rgba(255,255,255,.55);border:3px solid #1e2a5a;box-shadow:0 6px 0 rgba(30,42,90,.2)}.mapJoystickThumb{left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;background:#f5c542;border:3px solid #1e2a5a;box-shadow:0 4px 0 #1e2a5a}.mapEditor input,.mapEditor textarea,.mapMenuPanel{-webkit-user-select:text;-moz-user-select:text;user-select:text}.mapDialog,.mapEditor,.mapMenuPanel,.mapMenuWrap{touch-action:pan-y}.mapRoot input,.mapRoot textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text;touch-action:manipulation}@media (hover:none),(max-width:800px),(pointer:coarse){.mapHint{left:auto;right:max(12px,env(safe-area-inset-right));bottom:max(28px,calc(env(safe-area-inset-bottom) + 12px));max-width:42%;font-size:12px}.mapHintDesktop{display:none}.mapHintTouch{display:inline}.mapPromptKeyHint{display:none}.mapPrompt{left:50%;right:auto;bottom:max(168px,calc(env(safe-area-inset-bottom) + 148px));width:min(420px,calc(100% - 24px));flex-wrap:wrap;justify-content:space-between;padding:12px}.mapExit,.mapGhost,.mapMenuButton,.mapPrimary,.mapPrompt button{min-height:44px;padding:10px 16px;touch-action:manipulation}.mapPrompt button{width:100%;font-size:18px}.mapDialog{bottom:max(16px,env(safe-area-inset-bottom));max-height:min(70dvh,calc(100% - 96px));overflow:auto;width:min(560px,calc(100% - 16px))}.mapAreaBadge{padding:8px 10px;gap:6px;min-width:0}.mapAreaBadge small{display:none}.mapBookLayout,.mapMenuWrap{grid-template-columns:1fr}.mapMenuNav{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:2px solid rgba(30,42,90,.16);padding:10px}.mapMenuNav button{min-height:44px;padding:10px 12px}.mapSwatches button{width:40px;height:40px}.mapStyleChips button{min-height:40px}.mapMinimap{top:max(64px,calc(env(safe-area-inset-top) + 56px));right:max(12px,env(safe-area-inset-right));bottom:auto;width:96px;height:96px}.mapNameTag{font-size:11px;padding:3px 8px}}