anchor.diff:          ctx.restore();
         });
   
  +
  +    });
  +  });
  +
  +  world.continents.forEach((Continent continent) {
  +    continent.countries.forEach((Country country) {
         if(highlightedCountry == null || highlightedCountry == country || (connectedCountries[highlightedCountry] != null && connectedCountries[highlightedCountry].contains(country))) {
           var dim = ctx.measureText(country.name);
           ctx.textBaseline="middle";
  -        ctx.fillStyle = 'rgba(255,255,255,0.75)';
  +        ctx.fillStyle = 'rgba(255,255,255,0.85)';
           ctx.fillRect(country.middle.x - dim.width/2 - 10/2, country.middle.y-16/2, dim.width+10, 16);
           ctx.fillStyle = 'black';
           ctx.fillText(country.name, country.middle.x - dim.width/2, country.middle.y);
         }
       });
     });
  +
     ctx.restore();
   }
   
   void setMapSize() {
  -  map.width = game_container.clientWidth;
  -  map.height = game_container.clientHeight;
  -
  -  double containerRatio  = map.width / map.height;
  +  canvas.width = game_container.clientWidth;
  +  canvas.height = game_container.clientHeight;
  +
  +  double canvasRatio  = canvas.width / canvas.height;
     double mapRatio = world.dimension.width / world.dimension.height;
  -  // Width > Height
  -  if(containerRatio > 1) {
  -    // Width > Height
  -    if(mapRatio > 1) {
  -      scaleX = map.width / world.dimension.width;
  -      scaleY = scaleX;
  -      // scaleY =
  -    }
  +
  +  if(canvasRatio > mapRatio) {
  +    scaleX = (canvas.height - 2*MAP_MARGIN - 2*MAP_PADDING) / world.dimension.height;
  +    scaleY = scaleX;
     } else {
  -
  +    scaleX = (canvas.width - 2*MAP_MARGIN - 2*MAP_PADDING) / world.dimension.width;
  +    scaleY = scaleX;
     }
   
     window.animationFrame.then(render);
   }
   
   void main() {
  -  map = querySelector('#map');
  -  ctx = map.getContext('2d');
  +  canvas = querySelector('#map');
  +  ctx = canvas.getContext('2d');
     game_container = querySelector('#game');
   
     bg_gradient = ctx.createLinearGradient(0,0,1920,1080);
  
positive.code:     ctx.restore();
    });
  
    map.onClick.listen((MouseEvent ev) {
      if(hoveredCountry != null) {
        highlightedCountry = hoveredCountry;
      } else {
  
negative.code: 
    // Outline
    ctx.save();
    ctx.lineWidth = 5;
    ctx.setLineDash([35]);
    ctx.beginPath();
    ctx.rect(-MAP_PADDING,-MAP_PADDING,world.dimension.width+2*MAP_PADDING,world.dimension.height+2*MAP_PADDING);
    ctx.closePath();
    ctx.stroke();
  
    ctx.restore();
  
    world.connectors.forEach((Connector connector) {
  